@measured/puck-plugin-heading-analyzer 0.21.0-canary.b818cb1f → 0.21.0-canary.c0db75c1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +5 -149
- package/dist/index.d.mts +71 -50
- package/dist/index.d.ts +71 -50
- package/dist/index.js +135 -314
- package/dist/index.mjs +129 -308
- package/package.json +3 -2
package/dist/index.js
CHANGED
|
@@ -268,30 +268,30 @@ var require_flat = __commonJS({
|
|
|
268
268
|
});
|
|
269
269
|
|
|
270
270
|
// index.ts
|
|
271
|
-
var
|
|
272
|
-
__export(
|
|
271
|
+
var index_exports = {};
|
|
272
|
+
__export(index_exports, {
|
|
273
273
|
default: () => HeadingAnalyzer_default
|
|
274
274
|
});
|
|
275
|
-
module.exports = __toCommonJS(
|
|
275
|
+
module.exports = __toCommonJS(index_exports);
|
|
276
276
|
init_react_import();
|
|
277
277
|
|
|
278
278
|
// src/HeadingAnalyzer.tsx
|
|
279
279
|
init_react_import();
|
|
280
|
-
var
|
|
280
|
+
var import_react10 = require("react");
|
|
281
281
|
|
|
282
282
|
// css-module:/home/runner/work/puck/puck/packages/plugin-heading-analyzer/src/HeadingAnalyzer.module.css#css-module
|
|
283
283
|
init_react_import();
|
|
284
|
-
var HeadingAnalyzer_module_default = { "HeadingAnalyzer": "
|
|
284
|
+
var HeadingAnalyzer_module_default = { "HeadingAnalyzer": "_HeadingAnalyzer_yg0s7_1", "HeadingAnalyzer-cssWarning": "_HeadingAnalyzer-cssWarning_yg0s7_6", "HeadingAnalyzerItem": "_HeadingAnalyzerItem_yg0s7_10", "HeadingAnalyzerItem--missing": "_HeadingAnalyzerItem--missing_yg0s7_14" };
|
|
285
285
|
|
|
286
286
|
// src/HeadingAnalyzer.tsx
|
|
287
287
|
var import_puck = require("@measured/puck");
|
|
288
288
|
|
|
289
|
-
// ../core/components/
|
|
289
|
+
// ../core/components/OutlineList/index.tsx
|
|
290
290
|
init_react_import();
|
|
291
291
|
|
|
292
|
-
// css-module:/home/runner/work/puck/puck/packages/core/components/
|
|
292
|
+
// css-module:/home/runner/work/puck/puck/packages/core/components/OutlineList/styles.module.css#css-module
|
|
293
293
|
init_react_import();
|
|
294
|
-
var styles_module_default = { "
|
|
294
|
+
var styles_module_default = { "OutlineList": "_OutlineList_w4lzv_1", "OutlineListItem": "_OutlineListItem_w4lzv_25", "OutlineListItem--clickable": "_OutlineListItem--clickable_w4lzv_45" };
|
|
295
295
|
|
|
296
296
|
// ../core/lib/get-class-name-factory.ts
|
|
297
297
|
init_react_import();
|
|
@@ -320,29 +320,50 @@ var getClassNameFactory = (rootClass, styles, config = { baseClass: "" }) => (op
|
|
|
320
320
|
};
|
|
321
321
|
var get_class_name_factory_default = getClassNameFactory;
|
|
322
322
|
|
|
323
|
-
// ../core/components/
|
|
324
|
-
init_react_import();
|
|
325
|
-
|
|
326
|
-
// css-module:/home/runner/work/puck/puck/packages/core/components/Heading/styles.module.css#css-module
|
|
327
|
-
init_react_import();
|
|
328
|
-
var styles_module_default2 = { "Heading": "_Heading_qxrry_1", "Heading--xxxxl": "_Heading--xxxxl_qxrry_12", "Heading--xxxl": "_Heading--xxxl_qxrry_18", "Heading--xxl": "_Heading--xxl_qxrry_22", "Heading--xl": "_Heading--xl_qxrry_26", "Heading--l": "_Heading--l_qxrry_30", "Heading--m": "_Heading--m_qxrry_34", "Heading--s": "_Heading--s_qxrry_38", "Heading--xs": "_Heading--xs_qxrry_42" };
|
|
329
|
-
|
|
330
|
-
// ../core/components/Heading/index.tsx
|
|
323
|
+
// ../core/components/OutlineList/index.tsx
|
|
331
324
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
332
|
-
var getClassName = get_class_name_factory_default("
|
|
333
|
-
var
|
|
334
|
-
|
|
325
|
+
var getClassName = get_class_name_factory_default("OutlineList", styles_module_default);
|
|
326
|
+
var getClassNameItem = get_class_name_factory_default("OutlineListItem", styles_module_default);
|
|
327
|
+
var OutlineList = ({ children }) => {
|
|
328
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ul", { className: getClassName(), children });
|
|
329
|
+
};
|
|
330
|
+
OutlineList.Clickable = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: getClassNameItem({ clickable: true }), children });
|
|
331
|
+
OutlineList.Item = ({
|
|
332
|
+
children,
|
|
333
|
+
onClick
|
|
334
|
+
}) => {
|
|
335
335
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
336
|
-
|
|
336
|
+
"li",
|
|
337
337
|
{
|
|
338
|
-
className:
|
|
339
|
-
|
|
340
|
-
}),
|
|
338
|
+
className: getClassNameItem({ clickable: !!onClick }),
|
|
339
|
+
onClick,
|
|
341
340
|
children
|
|
342
341
|
}
|
|
343
342
|
);
|
|
344
343
|
};
|
|
345
344
|
|
|
345
|
+
// ../core/lib/scroll-into-view.ts
|
|
346
|
+
init_react_import();
|
|
347
|
+
var scrollIntoView = (el) => {
|
|
348
|
+
const oldStyle = __spreadValues({}, el.style);
|
|
349
|
+
el.style.scrollMargin = "256px";
|
|
350
|
+
if (el) {
|
|
351
|
+
el == null ? void 0 : el.scrollIntoView({ behavior: "smooth" });
|
|
352
|
+
el.style.scrollMargin = oldStyle.scrollMargin || "";
|
|
353
|
+
}
|
|
354
|
+
};
|
|
355
|
+
|
|
356
|
+
// ../core/lib/get-frame.ts
|
|
357
|
+
init_react_import();
|
|
358
|
+
var getFrame = () => {
|
|
359
|
+
if (typeof window === "undefined") return;
|
|
360
|
+
let frameEl = document.querySelector("#preview-frame");
|
|
361
|
+
if ((frameEl == null ? void 0 : frameEl.tagName) === "IFRAME") {
|
|
362
|
+
return frameEl.contentDocument || document;
|
|
363
|
+
}
|
|
364
|
+
return (frameEl == null ? void 0 : frameEl.ownerDocument) || document;
|
|
365
|
+
};
|
|
366
|
+
|
|
346
367
|
// ../../node_modules/lucide-react/dist/esm/lucide-react.js
|
|
347
368
|
init_react_import();
|
|
348
369
|
|
|
@@ -430,15 +451,29 @@ var createLucideIcon = (iconName, iconNode) => {
|
|
|
430
451
|
return Component;
|
|
431
452
|
};
|
|
432
453
|
|
|
433
|
-
// ../../node_modules/lucide-react/dist/esm/icons/
|
|
454
|
+
// ../../node_modules/lucide-react/dist/esm/icons/heading-1.js
|
|
434
455
|
init_react_import();
|
|
435
|
-
var
|
|
436
|
-
["path", { d: "
|
|
456
|
+
var Heading1 = createLucideIcon("Heading1", [
|
|
457
|
+
["path", { d: "M4 12h8", key: "17cfdx" }],
|
|
458
|
+
["path", { d: "M4 18V6", key: "1rz3zl" }],
|
|
459
|
+
["path", { d: "M12 18V6", key: "zqpxq5" }],
|
|
460
|
+
["path", { d: "m17 12 3-2v8", key: "1hhhft" }]
|
|
437
461
|
]);
|
|
438
462
|
|
|
439
|
-
// ../core/lib/
|
|
463
|
+
// ../core/lib/index.ts
|
|
464
|
+
init_react_import();
|
|
465
|
+
|
|
466
|
+
// ../core/lib/filter.ts
|
|
467
|
+
init_react_import();
|
|
468
|
+
|
|
469
|
+
// ../core/lib/data/reorder.ts
|
|
470
|
+
init_react_import();
|
|
471
|
+
|
|
472
|
+
// ../core/lib/data/replace.ts
|
|
473
|
+
init_react_import();
|
|
474
|
+
|
|
475
|
+
// ../core/lib/use-reset-auto-zoom.ts
|
|
440
476
|
init_react_import();
|
|
441
|
-
var import_react10 = require("react");
|
|
442
477
|
|
|
443
478
|
// ../core/store/index.ts
|
|
444
479
|
init_react_import();
|
|
@@ -818,10 +853,10 @@ var insert = (list, index, item) => {
|
|
|
818
853
|
// ../core/lib/generate-id.ts
|
|
819
854
|
init_react_import();
|
|
820
855
|
|
|
821
|
-
//
|
|
856
|
+
// ../core/node_modules/uuid/dist/esm-node/index.js
|
|
822
857
|
init_react_import();
|
|
823
858
|
|
|
824
|
-
//
|
|
859
|
+
// ../core/node_modules/uuid/dist/esm-node/rng.js
|
|
825
860
|
init_react_import();
|
|
826
861
|
var import_crypto = __toESM(require("crypto"));
|
|
827
862
|
var rnds8Pool = new Uint8Array(256);
|
|
@@ -834,7 +869,7 @@ function rng() {
|
|
|
834
869
|
return rnds8Pool.slice(poolPtr, poolPtr += 16);
|
|
835
870
|
}
|
|
836
871
|
|
|
837
|
-
//
|
|
872
|
+
// ../core/node_modules/uuid/dist/esm-node/stringify.js
|
|
838
873
|
init_react_import();
|
|
839
874
|
var byteToHex = [];
|
|
840
875
|
for (let i = 0; i < 256; ++i) {
|
|
@@ -844,17 +879,17 @@ function unsafeStringify(arr, offset = 0) {
|
|
|
844
879
|
return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
|
|
845
880
|
}
|
|
846
881
|
|
|
847
|
-
//
|
|
882
|
+
// ../core/node_modules/uuid/dist/esm-node/v4.js
|
|
848
883
|
init_react_import();
|
|
849
884
|
|
|
850
|
-
//
|
|
885
|
+
// ../core/node_modules/uuid/dist/esm-node/native.js
|
|
851
886
|
init_react_import();
|
|
852
887
|
var import_crypto2 = __toESM(require("crypto"));
|
|
853
888
|
var native_default = {
|
|
854
889
|
randomUUID: import_crypto2.default.randomUUID
|
|
855
890
|
};
|
|
856
891
|
|
|
857
|
-
//
|
|
892
|
+
// ../core/node_modules/uuid/dist/esm-node/v4.js
|
|
858
893
|
function v4(options, buf, offset) {
|
|
859
894
|
if (native_default.randomUUID && !buf && !options) {
|
|
860
895
|
return native_default.randomUUID();
|
|
@@ -1408,7 +1443,8 @@ init_react_import();
|
|
|
1408
1443
|
var defaultViewports = [
|
|
1409
1444
|
{ width: 360, height: "auto", icon: "Smartphone", label: "Small" },
|
|
1410
1445
|
{ width: 768, height: "auto", icon: "Tablet", label: "Medium" },
|
|
1411
|
-
{ width: 1280, height: "auto", icon: "Monitor", label: "Large" }
|
|
1446
|
+
{ width: 1280, height: "auto", icon: "Monitor", label: "Large" },
|
|
1447
|
+
{ width: "100%", height: "auto", icon: "FullWidth", label: "Full-width" }
|
|
1412
1448
|
];
|
|
1413
1449
|
|
|
1414
1450
|
// ../../node_modules/zustand/esm/vanilla.mjs
|
|
@@ -1434,7 +1470,7 @@ var createStoreImpl = (createState) => {
|
|
|
1434
1470
|
const initialState = state = createState(setState, getState, api);
|
|
1435
1471
|
return api;
|
|
1436
1472
|
};
|
|
1437
|
-
var createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;
|
|
1473
|
+
var createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);
|
|
1438
1474
|
|
|
1439
1475
|
// ../../node_modules/zustand/esm/react.mjs
|
|
1440
1476
|
init_react_import();
|
|
@@ -1443,8 +1479,8 @@ var identity = (arg) => arg;
|
|
|
1443
1479
|
function useStore(api, selector = identity) {
|
|
1444
1480
|
const slice = import_react4.default.useSyncExternalStore(
|
|
1445
1481
|
api.subscribe,
|
|
1446
|
-
() => selector(api.getState()),
|
|
1447
|
-
() => selector(api.getInitialState())
|
|
1482
|
+
import_react4.default.useCallback(() => selector(api.getState()), [api, selector]),
|
|
1483
|
+
import_react4.default.useCallback(() => selector(api.getInitialState()), [api, selector])
|
|
1448
1484
|
);
|
|
1449
1485
|
import_react4.default.useDebugValue(slice);
|
|
1450
1486
|
return slice;
|
|
@@ -1455,13 +1491,13 @@ var createImpl = (createState) => {
|
|
|
1455
1491
|
Object.assign(useBoundStore, api);
|
|
1456
1492
|
return useBoundStore;
|
|
1457
1493
|
};
|
|
1458
|
-
var create = (createState) => createState ? createImpl(createState) : createImpl;
|
|
1494
|
+
var create = ((createState) => createState ? createImpl(createState) : createImpl);
|
|
1459
1495
|
|
|
1460
1496
|
// ../../node_modules/zustand/esm/middleware.mjs
|
|
1461
1497
|
init_react_import();
|
|
1462
1498
|
var subscribeWithSelectorImpl = (fn) => (set, get, api) => {
|
|
1463
1499
|
const origSubscribe = api.subscribe;
|
|
1464
|
-
api.subscribe = (selector, optListener, options) => {
|
|
1500
|
+
api.subscribe = ((selector, optListener, options) => {
|
|
1465
1501
|
let listener = selector;
|
|
1466
1502
|
if (optListener) {
|
|
1467
1503
|
const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;
|
|
@@ -1478,7 +1514,7 @@ var subscribeWithSelectorImpl = (fn) => (set, get, api) => {
|
|
|
1478
1514
|
}
|
|
1479
1515
|
}
|
|
1480
1516
|
return origSubscribe(listener);
|
|
1481
|
-
};
|
|
1517
|
+
});
|
|
1482
1518
|
const initialState = fn(set, get, api);
|
|
1483
1519
|
return initialState;
|
|
1484
1520
|
};
|
|
@@ -1695,9 +1731,9 @@ function createIsCircular(areItemsEqual) {
|
|
|
1695
1731
|
function getStrictProperties(object) {
|
|
1696
1732
|
return getOwnPropertyNames(object).concat(getOwnPropertySymbols(object));
|
|
1697
1733
|
}
|
|
1698
|
-
var hasOwn = Object.hasOwn || function(object, property) {
|
|
1734
|
+
var hasOwn = Object.hasOwn || (function(object, property) {
|
|
1699
1735
|
return hasOwnProperty.call(object, property);
|
|
1700
|
-
};
|
|
1736
|
+
});
|
|
1701
1737
|
function sameValueZeroEqual(a, b) {
|
|
1702
1738
|
return a === b || !a && !b && a !== a && b !== b;
|
|
1703
1739
|
}
|
|
@@ -2087,29 +2123,37 @@ var getChanged = (newItem, oldItem) => {
|
|
|
2087
2123
|
|
|
2088
2124
|
// ../core/store/slices/permissions.ts
|
|
2089
2125
|
var createPermissionsSlice = (set, get) => {
|
|
2090
|
-
const resolvePermissions = (..._0) => __async(
|
|
2126
|
+
const resolvePermissions = (..._0) => __async(null, [..._0], function* (params = {}, force) {
|
|
2091
2127
|
const { state, permissions, config } = get();
|
|
2092
2128
|
const { cache: cache2, globalPermissions } = permissions;
|
|
2093
|
-
const
|
|
2094
|
-
var _a, _b
|
|
2129
|
+
const resolvePermissionsForItem = (item2, force2 = false) => __async(null, null, function* () {
|
|
2130
|
+
var _a, _b;
|
|
2095
2131
|
const { config: config2, state: appState, setComponentLoading } = get();
|
|
2132
|
+
const itemCache = cache2[item2.props.id];
|
|
2133
|
+
const nodes = appState.indexes.nodes;
|
|
2134
|
+
const parentId = (_a = nodes[item2.props.id]) == null ? void 0 : _a.parentId;
|
|
2135
|
+
const parentNode = parentId ? nodes[parentId] : null;
|
|
2136
|
+
const parentData = (_b = parentNode == null ? void 0 : parentNode.data) != null ? _b : null;
|
|
2096
2137
|
const componentConfig = item2.type === "root" ? config2.root : config2.components[item2.type];
|
|
2097
2138
|
if (!componentConfig) {
|
|
2098
2139
|
return;
|
|
2099
2140
|
}
|
|
2100
2141
|
const initialPermissions = __spreadValues(__spreadValues({}, globalPermissions), componentConfig.permissions);
|
|
2101
2142
|
if (componentConfig.resolvePermissions) {
|
|
2102
|
-
const changed = getChanged(item2,
|
|
2103
|
-
|
|
2143
|
+
const changed = getChanged(item2, itemCache == null ? void 0 : itemCache.lastData);
|
|
2144
|
+
const propsChanged = Object.values(changed).some((el) => el === true);
|
|
2145
|
+
const parentChanged = (itemCache == null ? void 0 : itemCache.lastParentId) !== parentId;
|
|
2146
|
+
if (propsChanged || parentChanged || force2) {
|
|
2104
2147
|
const clearTimeout2 = setComponentLoading(item2.props.id, true, 50);
|
|
2105
2148
|
const resolvedPermissions = yield componentConfig.resolvePermissions(
|
|
2106
2149
|
item2,
|
|
2107
2150
|
{
|
|
2108
2151
|
changed,
|
|
2109
|
-
lastPermissions: (
|
|
2152
|
+
lastPermissions: (itemCache == null ? void 0 : itemCache.lastPermissions) || null,
|
|
2110
2153
|
permissions: initialPermissions,
|
|
2111
2154
|
appState: makeStatePublic(appState),
|
|
2112
|
-
lastData: (
|
|
2155
|
+
lastData: (itemCache == null ? void 0 : itemCache.lastData) || null,
|
|
2156
|
+
parent: parentData
|
|
2113
2157
|
}
|
|
2114
2158
|
);
|
|
2115
2159
|
const latest = get().permissions;
|
|
@@ -2117,6 +2161,7 @@ var createPermissionsSlice = (set, get) => {
|
|
|
2117
2161
|
permissions: __spreadProps(__spreadValues({}, latest), {
|
|
2118
2162
|
cache: __spreadProps(__spreadValues({}, latest.cache), {
|
|
2119
2163
|
[item2.props.id]: {
|
|
2164
|
+
lastParentId: parentId,
|
|
2120
2165
|
lastData: item2,
|
|
2121
2166
|
lastPermissions: resolvedPermissions
|
|
2122
2167
|
}
|
|
@@ -2130,9 +2175,9 @@ var createPermissionsSlice = (set, get) => {
|
|
|
2130
2175
|
}
|
|
2131
2176
|
}
|
|
2132
2177
|
});
|
|
2133
|
-
const
|
|
2178
|
+
const resolvePermissionsForRoot = (force2 = false) => {
|
|
2134
2179
|
const { state: appState } = get();
|
|
2135
|
-
|
|
2180
|
+
resolvePermissionsForItem(
|
|
2136
2181
|
// Shim the root data in by conforming to component data shape
|
|
2137
2182
|
{
|
|
2138
2183
|
type: "root",
|
|
@@ -2143,16 +2188,16 @@ var createPermissionsSlice = (set, get) => {
|
|
|
2143
2188
|
};
|
|
2144
2189
|
const { item, type, root } = params;
|
|
2145
2190
|
if (item) {
|
|
2146
|
-
yield
|
|
2191
|
+
yield resolvePermissionsForItem(item, force);
|
|
2147
2192
|
} else if (type) {
|
|
2148
|
-
flattenData(state, config).filter((item2) => item2.type === type).map((item2) => __async(
|
|
2149
|
-
yield
|
|
2193
|
+
flattenData(state, config).filter((item2) => item2.type === type).map((item2) => __async(null, null, function* () {
|
|
2194
|
+
yield resolvePermissionsForItem(item2, force);
|
|
2150
2195
|
}));
|
|
2151
2196
|
} else if (root) {
|
|
2152
|
-
|
|
2197
|
+
resolvePermissionsForRoot(force);
|
|
2153
2198
|
} else {
|
|
2154
|
-
flattenData(state, config).map((item2) => __async(
|
|
2155
|
-
yield
|
|
2199
|
+
flattenData(state, config).map((item2) => __async(null, null, function* () {
|
|
2200
|
+
yield resolvePermissionsForItem(item2, force);
|
|
2156
2201
|
}));
|
|
2157
2202
|
}
|
|
2158
2203
|
});
|
|
@@ -2206,7 +2251,7 @@ var createFieldsSlice = (_set, _get) => {
|
|
|
2206
2251
|
// ../core/lib/resolve-component-data.ts
|
|
2207
2252
|
init_react_import();
|
|
2208
2253
|
var cache = { lastChange: {} };
|
|
2209
|
-
var resolveComponentData = (_0, _1, ..._2) => __async(
|
|
2254
|
+
var resolveComponentData = (_0, _1, ..._2) => __async(null, [_0, _1, ..._2], function* (item, config, metadata = {}, onResolveStart, onResolveEnd, trigger = "replace") {
|
|
2210
2255
|
const configForItem = "type" in item && item.type !== "root" ? config.components[item.type] : config.root;
|
|
2211
2256
|
const resolvedItem = __spreadValues({}, item);
|
|
2212
2257
|
const shouldRunResolver = (configForItem == null ? void 0 : configForItem.resolveData) && item.props;
|
|
@@ -2234,11 +2279,11 @@ var resolveComponentData = (_0, _1, ..._2) => __async(void 0, [_0, _1, ..._2], f
|
|
|
2234
2279
|
let itemWithResolvedChildren = yield mapFields(
|
|
2235
2280
|
resolvedItem,
|
|
2236
2281
|
{
|
|
2237
|
-
slot: (_02) => __async(
|
|
2282
|
+
slot: (_02) => __async(null, [_02], function* ({ value }) {
|
|
2238
2283
|
const content = value;
|
|
2239
2284
|
return yield Promise.all(
|
|
2240
2285
|
content.map(
|
|
2241
|
-
(childItem) => __async(
|
|
2286
|
+
(childItem) => __async(null, null, function* () {
|
|
2242
2287
|
return (yield resolveComponentData(
|
|
2243
2288
|
childItem,
|
|
2244
2289
|
config,
|
|
@@ -2304,7 +2349,8 @@ var defaultAppState = {
|
|
|
2304
2349
|
options: [],
|
|
2305
2350
|
controlsVisible: true
|
|
2306
2351
|
},
|
|
2307
|
-
field: { focus: null }
|
|
2352
|
+
field: { focus: null },
|
|
2353
|
+
plugin: { current: null }
|
|
2308
2354
|
},
|
|
2309
2355
|
indexes: {
|
|
2310
2356
|
nodes: {},
|
|
@@ -2320,6 +2366,7 @@ var createAppStore = (initialAppStore) => create()(
|
|
|
2320
2366
|
subscribeWithSelector((set, get) => {
|
|
2321
2367
|
var _a, _b;
|
|
2322
2368
|
return __spreadProps(__spreadValues({
|
|
2369
|
+
instanceId: generateId(),
|
|
2323
2370
|
state: defaultAppState,
|
|
2324
2371
|
config: { components: {} },
|
|
2325
2372
|
componentState: {},
|
|
@@ -2428,7 +2475,7 @@ var createAppStore = (initialAppStore) => create()(
|
|
|
2428
2475
|
const selectedItem = state.ui.itemSelector ? getItem(state.ui.itemSelector, state) : null;
|
|
2429
2476
|
return __spreadProps(__spreadValues({}, s), { state, selectedItem });
|
|
2430
2477
|
}),
|
|
2431
|
-
resolveComponentData: (componentData, trigger) => __async(
|
|
2478
|
+
resolveComponentData: (componentData, trigger) => __async(null, null, function* () {
|
|
2432
2479
|
const { config, metadata, setComponentLoading, permissions } = get();
|
|
2433
2480
|
const timeouts = {};
|
|
2434
2481
|
return yield resolveComponentData(
|
|
@@ -2439,7 +2486,7 @@ var createAppStore = (initialAppStore) => create()(
|
|
|
2439
2486
|
const id = "id" in item.props ? item.props.id : "root";
|
|
2440
2487
|
timeouts[id] = setComponentLoading(id, true, 50);
|
|
2441
2488
|
},
|
|
2442
|
-
(item) => __async(
|
|
2489
|
+
(item) => __async(null, null, function* () {
|
|
2443
2490
|
const id = "id" in item.props ? item.props.id : "root";
|
|
2444
2491
|
if ("type" in item) {
|
|
2445
2492
|
yield permissions.refreshPermissions({ item });
|
|
@@ -2451,7 +2498,7 @@ var createAppStore = (initialAppStore) => create()(
|
|
|
2451
2498
|
trigger
|
|
2452
2499
|
);
|
|
2453
2500
|
}),
|
|
2454
|
-
resolveAndCommitData: () => __async(
|
|
2501
|
+
resolveAndCommitData: () => __async(null, null, function* () {
|
|
2455
2502
|
const { config, state, dispatch, resolveComponentData: resolveComponentData2 } = get();
|
|
2456
2503
|
walkAppState(
|
|
2457
2504
|
state,
|
|
@@ -2490,203 +2537,14 @@ var createAppStore = (initialAppStore) => create()(
|
|
|
2490
2537
|
})
|
|
2491
2538
|
);
|
|
2492
2539
|
var appStoreContext = (0, import_react9.createContext)(createAppStore());
|
|
2493
|
-
function useAppStore(selector) {
|
|
2494
|
-
const context = (0, import_react9.useContext)(appStoreContext);
|
|
2495
|
-
return useStore(context, selector);
|
|
2496
|
-
}
|
|
2497
|
-
function useAppStoreApi() {
|
|
2498
|
-
return (0, import_react9.useContext)(appStoreContext);
|
|
2499
|
-
}
|
|
2500
|
-
|
|
2501
|
-
// ../core/lib/use-breadcrumbs.ts
|
|
2502
|
-
var useBreadcrumbs = (renderCount) => {
|
|
2503
|
-
const selectedId = useAppStore((s) => {
|
|
2504
|
-
var _a;
|
|
2505
|
-
return (_a = s.selectedItem) == null ? void 0 : _a.props.id;
|
|
2506
|
-
});
|
|
2507
|
-
const config = useAppStore((s) => s.config);
|
|
2508
|
-
const path = useAppStore((s) => {
|
|
2509
|
-
var _a;
|
|
2510
|
-
return (_a = s.state.indexes.nodes[selectedId]) == null ? void 0 : _a.path;
|
|
2511
|
-
});
|
|
2512
|
-
const appStore = useAppStoreApi();
|
|
2513
|
-
return (0, import_react10.useMemo)(() => {
|
|
2514
|
-
const breadcrumbs = (path == null ? void 0 : path.map((zoneCompound) => {
|
|
2515
|
-
var _a, _b, _c;
|
|
2516
|
-
const [componentId] = zoneCompound.split(":");
|
|
2517
|
-
if (componentId === "root") {
|
|
2518
|
-
return {
|
|
2519
|
-
label: "Page",
|
|
2520
|
-
selector: null
|
|
2521
|
-
};
|
|
2522
|
-
}
|
|
2523
|
-
const node = appStore.getState().state.indexes.nodes[componentId];
|
|
2524
|
-
const parentId = node.path[node.path.length - 1];
|
|
2525
|
-
const contentIds = ((_a = appStore.getState().state.indexes.zones[parentId]) == null ? void 0 : _a.contentIds) || [];
|
|
2526
|
-
const index = contentIds.indexOf(componentId);
|
|
2527
|
-
const label = node ? (_c = (_b = config.components[node.data.type]) == null ? void 0 : _b.label) != null ? _c : node.data.type : "Component";
|
|
2528
|
-
return {
|
|
2529
|
-
label,
|
|
2530
|
-
selector: node ? {
|
|
2531
|
-
index,
|
|
2532
|
-
zone: node.path[node.path.length - 1]
|
|
2533
|
-
} : null
|
|
2534
|
-
};
|
|
2535
|
-
})) || [];
|
|
2536
|
-
if (renderCount) {
|
|
2537
|
-
return breadcrumbs.slice(breadcrumbs.length - renderCount);
|
|
2538
|
-
}
|
|
2539
|
-
return breadcrumbs;
|
|
2540
|
-
}, [path, renderCount]);
|
|
2541
|
-
};
|
|
2542
|
-
|
|
2543
|
-
// ../core/components/Loader/index.tsx
|
|
2544
|
-
init_react_import();
|
|
2545
|
-
|
|
2546
|
-
// ../core/lib/index.ts
|
|
2547
|
-
init_react_import();
|
|
2548
|
-
|
|
2549
|
-
// ../core/lib/filter.ts
|
|
2550
|
-
init_react_import();
|
|
2551
|
-
|
|
2552
|
-
// ../core/lib/data/reorder.ts
|
|
2553
|
-
init_react_import();
|
|
2554
|
-
|
|
2555
|
-
// ../core/lib/data/replace.ts
|
|
2556
|
-
init_react_import();
|
|
2557
|
-
|
|
2558
|
-
// ../core/lib/use-reset-auto-zoom.ts
|
|
2559
|
-
init_react_import();
|
|
2560
2540
|
|
|
2561
2541
|
// ../core/lib/get-zoom-config.ts
|
|
2562
2542
|
init_react_import();
|
|
2563
2543
|
|
|
2564
|
-
// css-module:/home/runner/work/puck/puck/packages/core/components/Loader/styles.module.css#css-module
|
|
2565
|
-
init_react_import();
|
|
2566
|
-
var styles_module_default3 = { "Loader": "_Loader_nacdm_13", "loader-animation": "_loader-animation_nacdm_1" };
|
|
2567
|
-
|
|
2568
|
-
// ../core/components/Loader/index.tsx
|
|
2569
|
-
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
2570
|
-
var getClassName2 = get_class_name_factory_default("Loader", styles_module_default3);
|
|
2571
|
-
var Loader = (_a) => {
|
|
2572
|
-
var _b = _a, {
|
|
2573
|
-
color,
|
|
2574
|
-
size = 16
|
|
2575
|
-
} = _b, props = __objRest(_b, [
|
|
2576
|
-
"color",
|
|
2577
|
-
"size"
|
|
2578
|
-
]);
|
|
2579
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
2580
|
-
"span",
|
|
2581
|
-
__spreadValues({
|
|
2582
|
-
className: getClassName2(),
|
|
2583
|
-
style: {
|
|
2584
|
-
width: size,
|
|
2585
|
-
height: size,
|
|
2586
|
-
color
|
|
2587
|
-
},
|
|
2588
|
-
"aria-label": "loading"
|
|
2589
|
-
}, props)
|
|
2590
|
-
);
|
|
2591
|
-
};
|
|
2592
|
-
|
|
2593
|
-
// ../core/components/SidebarSection/index.tsx
|
|
2594
|
-
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
2595
|
-
var getClassName3 = get_class_name_factory_default("SidebarSection", styles_module_default);
|
|
2596
|
-
var SidebarSection = ({
|
|
2597
|
-
children,
|
|
2598
|
-
title,
|
|
2599
|
-
background,
|
|
2600
|
-
showBreadcrumbs,
|
|
2601
|
-
noBorderTop,
|
|
2602
|
-
noPadding,
|
|
2603
|
-
isLoading
|
|
2604
|
-
}) => {
|
|
2605
|
-
const setUi = useAppStore((s) => s.setUi);
|
|
2606
|
-
const breadcrumbs = useBreadcrumbs(1);
|
|
2607
|
-
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
|
2608
|
-
"div",
|
|
2609
|
-
{
|
|
2610
|
-
className: getClassName3({ noBorderTop, noPadding }),
|
|
2611
|
-
style: { background },
|
|
2612
|
-
children: [
|
|
2613
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName3("title"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: getClassName3("breadcrumbs"), children: [
|
|
2614
|
-
showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: getClassName3("breadcrumb"), children: [
|
|
2615
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
2616
|
-
"button",
|
|
2617
|
-
{
|
|
2618
|
-
type: "button",
|
|
2619
|
-
className: getClassName3("breadcrumbLabel"),
|
|
2620
|
-
onClick: () => setUi({ itemSelector: breadcrumb.selector }),
|
|
2621
|
-
children: breadcrumb.label
|
|
2622
|
-
}
|
|
2623
|
-
),
|
|
2624
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ChevronRight, { size: 16 })
|
|
2625
|
-
] }, i)) : null,
|
|
2626
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName3("heading"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Heading, { rank: "2", size: "xs", children: title }) })
|
|
2627
|
-
] }) }),
|
|
2628
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName3("content"), children }),
|
|
2629
|
-
isLoading && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName3("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Loader, { size: 32 }) })
|
|
2630
|
-
]
|
|
2631
|
-
}
|
|
2632
|
-
);
|
|
2633
|
-
};
|
|
2634
|
-
|
|
2635
|
-
// ../core/components/OutlineList/index.tsx
|
|
2636
|
-
init_react_import();
|
|
2637
|
-
|
|
2638
|
-
// css-module:/home/runner/work/puck/puck/packages/core/components/OutlineList/styles.module.css#css-module
|
|
2639
|
-
init_react_import();
|
|
2640
|
-
var styles_module_default4 = { "OutlineList": "_OutlineList_w4lzv_1", "OutlineListItem": "_OutlineListItem_w4lzv_25", "OutlineListItem--clickable": "_OutlineListItem--clickable_w4lzv_45" };
|
|
2641
|
-
|
|
2642
|
-
// ../core/components/OutlineList/index.tsx
|
|
2643
|
-
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
2644
|
-
var getClassName4 = get_class_name_factory_default("OutlineList", styles_module_default4);
|
|
2645
|
-
var getClassNameItem = get_class_name_factory_default("OutlineListItem", styles_module_default4);
|
|
2646
|
-
var OutlineList = ({ children }) => {
|
|
2647
|
-
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("ul", { className: getClassName4(), children });
|
|
2648
|
-
};
|
|
2649
|
-
OutlineList.Clickable = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: getClassNameItem({ clickable: true }), children });
|
|
2650
|
-
OutlineList.Item = ({
|
|
2651
|
-
children,
|
|
2652
|
-
onClick
|
|
2653
|
-
}) => {
|
|
2654
|
-
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
2655
|
-
"li",
|
|
2656
|
-
{
|
|
2657
|
-
className: getClassNameItem({ clickable: !!onClick }),
|
|
2658
|
-
onClick,
|
|
2659
|
-
children
|
|
2660
|
-
}
|
|
2661
|
-
);
|
|
2662
|
-
};
|
|
2663
|
-
|
|
2664
|
-
// ../core/lib/scroll-into-view.ts
|
|
2665
|
-
init_react_import();
|
|
2666
|
-
var scrollIntoView = (el) => {
|
|
2667
|
-
const oldStyle = __spreadValues({}, el.style);
|
|
2668
|
-
el.style.scrollMargin = "256px";
|
|
2669
|
-
if (el) {
|
|
2670
|
-
el == null ? void 0 : el.scrollIntoView({ behavior: "smooth" });
|
|
2671
|
-
el.style.scrollMargin = oldStyle.scrollMargin || "";
|
|
2672
|
-
}
|
|
2673
|
-
};
|
|
2674
|
-
|
|
2675
|
-
// ../core/lib/get-frame.ts
|
|
2676
|
-
init_react_import();
|
|
2677
|
-
var getFrame = () => {
|
|
2678
|
-
if (typeof window === "undefined") return;
|
|
2679
|
-
let frameEl = document.querySelector("#preview-frame");
|
|
2680
|
-
if ((frameEl == null ? void 0 : frameEl.tagName) === "IFRAME") {
|
|
2681
|
-
return frameEl.contentDocument || document;
|
|
2682
|
-
}
|
|
2683
|
-
return (frameEl == null ? void 0 : frameEl.ownerDocument) || document;
|
|
2684
|
-
};
|
|
2685
|
-
|
|
2686
2544
|
// src/HeadingAnalyzer.tsx
|
|
2687
2545
|
var import_react_from_json = __toESM(require("react-from-json"));
|
|
2688
|
-
var
|
|
2689
|
-
var
|
|
2546
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
2547
|
+
var getClassName2 = get_class_name_factory_default("HeadingAnalyzer", HeadingAnalyzer_module_default);
|
|
2690
2548
|
var getClassNameItem2 = get_class_name_factory_default("HeadingAnalyzerItem", HeadingAnalyzer_module_default);
|
|
2691
2549
|
var ReactFromJSON = import_react_from_json.default.default || import_react_from_json.default;
|
|
2692
2550
|
var getOutline = ({ frame } = {}) => {
|
|
@@ -2741,8 +2599,8 @@ function buildHierarchy(frame) {
|
|
|
2741
2599
|
var usePuck = (0, import_puck.createUsePuck)();
|
|
2742
2600
|
var HeadingAnalyzer = () => {
|
|
2743
2601
|
const data = usePuck((s) => s.appState.data);
|
|
2744
|
-
const [hierarchy, setHierarchy] = (0,
|
|
2745
|
-
(0,
|
|
2602
|
+
const [hierarchy, setHierarchy] = (0, import_react10.useState)([]);
|
|
2603
|
+
(0, import_react10.useEffect)(() => {
|
|
2746
2604
|
const frame = getFrame();
|
|
2747
2605
|
let entry = frame == null ? void 0 : frame.querySelector(`[data-puck-entry]`);
|
|
2748
2606
|
const createHierarchy = () => {
|
|
@@ -2777,11 +2635,11 @@ var HeadingAnalyzer = () => {
|
|
|
2777
2635
|
frameObserver.disconnect();
|
|
2778
2636
|
};
|
|
2779
2637
|
}, [data]);
|
|
2780
|
-
return /* @__PURE__ */ (0,
|
|
2781
|
-
/* @__PURE__ */ (0,
|
|
2638
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: getClassName2(), children: [
|
|
2639
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
2782
2640
|
"small",
|
|
2783
2641
|
{
|
|
2784
|
-
className:
|
|
2642
|
+
className: getClassName2("cssWarning"),
|
|
2785
2643
|
style: {
|
|
2786
2644
|
color: "var(--puck-color-red-04)",
|
|
2787
2645
|
display: "block",
|
|
@@ -2790,19 +2648,19 @@ var HeadingAnalyzer = () => {
|
|
|
2790
2648
|
children: [
|
|
2791
2649
|
"Heading analyzer styles not loaded. Please review the",
|
|
2792
2650
|
" ",
|
|
2793
|
-
/* @__PURE__ */ (0,
|
|
2651
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("a", { href: "https://github.com/measuredco/puck/blob/main/packages/plugin-heading-analyzer/README.md", children: "README" }),
|
|
2794
2652
|
"."
|
|
2795
2653
|
]
|
|
2796
2654
|
}
|
|
2797
2655
|
),
|
|
2798
|
-
hierarchy.length === 0 && /* @__PURE__ */ (0,
|
|
2799
|
-
/* @__PURE__ */ (0,
|
|
2656
|
+
hierarchy.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { children: "No headings." }),
|
|
2657
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(OutlineList, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
2800
2658
|
ReactFromJSON,
|
|
2801
2659
|
{
|
|
2802
2660
|
mapping: {
|
|
2803
|
-
Root: (props) => /* @__PURE__ */ (0,
|
|
2804
|
-
OutlineListItem: (props) => /* @__PURE__ */ (0,
|
|
2805
|
-
/* @__PURE__ */ (0,
|
|
2661
|
+
Root: (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: props.children }),
|
|
2662
|
+
OutlineListItem: (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(OutlineList.Item, { children: [
|
|
2663
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(OutlineList.Clickable, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
2806
2664
|
"small",
|
|
2807
2665
|
{
|
|
2808
2666
|
className: getClassNameItem2({ missing: props.missing }),
|
|
@@ -2820,14 +2678,14 @@ var HeadingAnalyzer = () => {
|
|
|
2820
2678
|
}, 2e3);
|
|
2821
2679
|
}
|
|
2822
2680
|
},
|
|
2823
|
-
children: props.missing ? /* @__PURE__ */ (0,
|
|
2824
|
-
/* @__PURE__ */ (0,
|
|
2681
|
+
children: props.missing ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
|
|
2682
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("b", { children: [
|
|
2825
2683
|
"H",
|
|
2826
2684
|
props.rank
|
|
2827
2685
|
] }),
|
|
2828
2686
|
": Missing"
|
|
2829
|
-
] }) : /* @__PURE__ */ (0,
|
|
2830
|
-
/* @__PURE__ */ (0,
|
|
2687
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
|
|
2688
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("b", { children: [
|
|
2831
2689
|
"H",
|
|
2832
2690
|
props.rank
|
|
2833
2691
|
] }),
|
|
@@ -2836,7 +2694,7 @@ var HeadingAnalyzer = () => {
|
|
|
2836
2694
|
] })
|
|
2837
2695
|
}
|
|
2838
2696
|
) }),
|
|
2839
|
-
/* @__PURE__ */ (0,
|
|
2697
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(OutlineList, { children: props.children })
|
|
2840
2698
|
] })
|
|
2841
2699
|
},
|
|
2842
2700
|
entry: {
|
|
@@ -2857,12 +2715,10 @@ var HeadingAnalyzer = () => {
|
|
|
2857
2715
|
] });
|
|
2858
2716
|
};
|
|
2859
2717
|
var headingAnalyzer = {
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
2864
|
-
] })
|
|
2865
|
-
}
|
|
2718
|
+
name: "heading-analyzer",
|
|
2719
|
+
label: "Audit",
|
|
2720
|
+
render: HeadingAnalyzer,
|
|
2721
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Heading1, {})
|
|
2866
2722
|
};
|
|
2867
2723
|
var HeadingAnalyzer_default = headingAnalyzer;
|
|
2868
2724
|
/*! Bundled license information:
|
|
@@ -2875,45 +2731,10 @@ classnames/index.js:
|
|
|
2875
2731
|
*)
|
|
2876
2732
|
|
|
2877
2733
|
lucide-react/dist/esm/shared/src/utils.js:
|
|
2878
|
-
(**
|
|
2879
|
-
* @license lucide-react v0.468.0 - ISC
|
|
2880
|
-
*
|
|
2881
|
-
* This source code is licensed under the ISC license.
|
|
2882
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
2883
|
-
*)
|
|
2884
|
-
|
|
2885
2734
|
lucide-react/dist/esm/defaultAttributes.js:
|
|
2886
|
-
(**
|
|
2887
|
-
* @license lucide-react v0.468.0 - ISC
|
|
2888
|
-
*
|
|
2889
|
-
* This source code is licensed under the ISC license.
|
|
2890
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
2891
|
-
*)
|
|
2892
|
-
|
|
2893
2735
|
lucide-react/dist/esm/Icon.js:
|
|
2894
|
-
(**
|
|
2895
|
-
* @license lucide-react v0.468.0 - ISC
|
|
2896
|
-
*
|
|
2897
|
-
* This source code is licensed under the ISC license.
|
|
2898
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
2899
|
-
*)
|
|
2900
|
-
|
|
2901
2736
|
lucide-react/dist/esm/createLucideIcon.js:
|
|
2902
|
-
|
|
2903
|
-
* @license lucide-react v0.468.0 - ISC
|
|
2904
|
-
*
|
|
2905
|
-
* This source code is licensed under the ISC license.
|
|
2906
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
2907
|
-
*)
|
|
2908
|
-
|
|
2909
|
-
lucide-react/dist/esm/icons/chevron-right.js:
|
|
2910
|
-
(**
|
|
2911
|
-
* @license lucide-react v0.468.0 - ISC
|
|
2912
|
-
*
|
|
2913
|
-
* This source code is licensed under the ISC license.
|
|
2914
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
2915
|
-
*)
|
|
2916
|
-
|
|
2737
|
+
lucide-react/dist/esm/icons/heading-1.js:
|
|
2917
2738
|
lucide-react/dist/esm/lucide-react.js:
|
|
2918
2739
|
(**
|
|
2919
2740
|
* @license lucide-react v0.468.0 - ISC
|