@measured/puck-plugin-heading-analyzer 0.21.0-canary.15fe8d60 → 0.21.0-canary.17395b2c

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.js CHANGED
@@ -277,21 +277,21 @@ init_react_import();
277
277
 
278
278
  // src/HeadingAnalyzer.tsx
279
279
  init_react_import();
280
- var import_react11 = require("react");
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": "_HeadingAnalyzer_116v6_1", "HeadingAnalyzer-cssWarning": "_HeadingAnalyzer-cssWarning_116v6_5", "HeadingAnalyzerItem": "_HeadingAnalyzerItem_116v6_9", "HeadingAnalyzerItem--missing": "_HeadingAnalyzerItem--missing_116v6_13" };
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/SidebarSection/index.tsx
289
+ // ../core/components/OutlineList/index.tsx
290
290
  init_react_import();
291
291
 
292
- // css-module:/home/runner/work/puck/puck/packages/core/components/SidebarSection/styles.module.css#css-module
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 = { "SidebarSection": "_SidebarSection_8boj8_1", "SidebarSection-title": "_SidebarSection-title_8boj8_12", "SidebarSection--noBorderTop": "_SidebarSection--noBorderTop_8boj8_20", "SidebarSection-content": "_SidebarSection-content_8boj8_24", "SidebarSection--noPadding": "_SidebarSection--noPadding_8boj8_28", "SidebarSection-breadcrumbLabel": "_SidebarSection-breadcrumbLabel_8boj8_41", "SidebarSection-breadcrumbs": "_SidebarSection-breadcrumbs_8boj8_70", "SidebarSection-breadcrumb": "_SidebarSection-breadcrumb_8boj8_41", "SidebarSection-heading": "_SidebarSection-heading_8boj8_82", "SidebarSection-loadingOverlay": "_SidebarSection-loadingOverlay_8boj8_86" };
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/Heading/index.tsx
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("Heading", styles_module_default2);
333
- var Heading = ({ children, rank, size = "m" }) => {
334
- const Tag = rank ? `h${rank}` : "span";
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
- Tag,
336
+ "li",
337
337
  {
338
- className: getClassName({
339
- [size]: true
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/chevron-right.js
454
+ // ../../node_modules/lucide-react/dist/esm/icons/heading-1.js
434
455
  init_react_import();
435
- var ChevronRight = createLucideIcon("ChevronRight", [
436
- ["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]
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/use-breadcrumbs.ts
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();
@@ -1006,7 +1041,9 @@ var replaceAction = (state, action, appStore) => {
1006
1041
  });
1007
1042
  });
1008
1043
  });
1009
- const stateWithDeepSlotsRemoved = __spreadValues({}, state);
1044
+ const stateWithDeepSlotsRemoved = __spreadProps(__spreadValues({}, state), {
1045
+ ui: __spreadValues(__spreadValues({}, state.ui), action.ui)
1046
+ });
1010
1047
  Object.keys(state.indexes.zones).forEach((zoneCompound) => {
1011
1048
  const id = zoneCompound.split(":")[0];
1012
1049
  if (id === originalId) {
@@ -1408,7 +1445,8 @@ init_react_import();
1408
1445
  var defaultViewports = [
1409
1446
  { width: 360, height: "auto", icon: "Smartphone", label: "Small" },
1410
1447
  { width: 768, height: "auto", icon: "Tablet", label: "Medium" },
1411
- { width: 1280, height: "auto", icon: "Monitor", label: "Large" }
1448
+ { width: 1280, height: "auto", icon: "Monitor", label: "Large" },
1449
+ { width: "100%", height: "auto", icon: "FullWidth", label: "Full-width" }
1412
1450
  ];
1413
1451
 
1414
1452
  // ../../node_modules/zustand/esm/vanilla.mjs
@@ -1518,9 +1556,9 @@ function debounce(func, timeout = 300) {
1518
1556
  var tidyState = (state) => {
1519
1557
  return __spreadProps(__spreadValues({}, state), {
1520
1558
  ui: __spreadProps(__spreadValues({}, state.ui), {
1521
- field: {
1559
+ field: __spreadProps(__spreadValues({}, state.ui.field), {
1522
1560
  focus: null
1523
- }
1561
+ })
1524
1562
  })
1525
1563
  });
1526
1564
  };
@@ -2090,26 +2128,34 @@ var createPermissionsSlice = (set, get) => {
2090
2128
  const resolvePermissions = (..._0) => __async(null, [..._0], function* (params = {}, force) {
2091
2129
  const { state, permissions, config } = get();
2092
2130
  const { cache: cache2, globalPermissions } = permissions;
2093
- const resolveDataForItem = (item2, force2 = false) => __async(null, null, function* () {
2094
- var _a, _b, _c;
2131
+ const resolvePermissionsForItem = (item2, force2 = false) => __async(null, null, function* () {
2132
+ var _a, _b;
2095
2133
  const { config: config2, state: appState, setComponentLoading } = get();
2134
+ const itemCache = cache2[item2.props.id];
2135
+ const nodes = appState.indexes.nodes;
2136
+ const parentId = (_a = nodes[item2.props.id]) == null ? void 0 : _a.parentId;
2137
+ const parentNode = parentId ? nodes[parentId] : null;
2138
+ const parentData = (_b = parentNode == null ? void 0 : parentNode.data) != null ? _b : null;
2096
2139
  const componentConfig = item2.type === "root" ? config2.root : config2.components[item2.type];
2097
2140
  if (!componentConfig) {
2098
2141
  return;
2099
2142
  }
2100
2143
  const initialPermissions = __spreadValues(__spreadValues({}, globalPermissions), componentConfig.permissions);
2101
2144
  if (componentConfig.resolvePermissions) {
2102
- const changed = getChanged(item2, (_a = cache2[item2.props.id]) == null ? void 0 : _a.lastData);
2103
- if (Object.values(changed).some((el) => el === true) || force2) {
2145
+ const changed = getChanged(item2, itemCache == null ? void 0 : itemCache.lastData);
2146
+ const propsChanged = Object.values(changed).some((el) => el === true);
2147
+ const parentChanged = (itemCache == null ? void 0 : itemCache.lastParentId) !== parentId;
2148
+ if (propsChanged || parentChanged || force2) {
2104
2149
  const clearTimeout2 = setComponentLoading(item2.props.id, true, 50);
2105
2150
  const resolvedPermissions = yield componentConfig.resolvePermissions(
2106
2151
  item2,
2107
2152
  {
2108
2153
  changed,
2109
- lastPermissions: ((_b = cache2[item2.props.id]) == null ? void 0 : _b.lastPermissions) || null,
2154
+ lastPermissions: (itemCache == null ? void 0 : itemCache.lastPermissions) || null,
2110
2155
  permissions: initialPermissions,
2111
2156
  appState: makeStatePublic(appState),
2112
- lastData: ((_c = cache2[item2.props.id]) == null ? void 0 : _c.lastData) || null
2157
+ lastData: (itemCache == null ? void 0 : itemCache.lastData) || null,
2158
+ parent: parentData
2113
2159
  }
2114
2160
  );
2115
2161
  const latest = get().permissions;
@@ -2117,6 +2163,7 @@ var createPermissionsSlice = (set, get) => {
2117
2163
  permissions: __spreadProps(__spreadValues({}, latest), {
2118
2164
  cache: __spreadProps(__spreadValues({}, latest.cache), {
2119
2165
  [item2.props.id]: {
2166
+ lastParentId: parentId,
2120
2167
  lastData: item2,
2121
2168
  lastPermissions: resolvedPermissions
2122
2169
  }
@@ -2130,9 +2177,9 @@ var createPermissionsSlice = (set, get) => {
2130
2177
  }
2131
2178
  }
2132
2179
  });
2133
- const resolveDataForRoot = (force2 = false) => {
2180
+ const resolvePermissionsForRoot = (force2 = false) => {
2134
2181
  const { state: appState } = get();
2135
- resolveDataForItem(
2182
+ resolvePermissionsForItem(
2136
2183
  // Shim the root data in by conforming to component data shape
2137
2184
  {
2138
2185
  type: "root",
@@ -2143,16 +2190,16 @@ var createPermissionsSlice = (set, get) => {
2143
2190
  };
2144
2191
  const { item, type, root } = params;
2145
2192
  if (item) {
2146
- yield resolveDataForItem(item, force);
2193
+ yield resolvePermissionsForItem(item, force);
2147
2194
  } else if (type) {
2148
2195
  flattenData(state, config).filter((item2) => item2.type === type).map((item2) => __async(null, null, function* () {
2149
- yield resolveDataForItem(item2, force);
2196
+ yield resolvePermissionsForItem(item2, force);
2150
2197
  }));
2151
2198
  } else if (root) {
2152
- resolveDataForRoot(force);
2199
+ resolvePermissionsForRoot(force);
2153
2200
  } else {
2154
2201
  flattenData(state, config).map((item2) => __async(null, null, function* () {
2155
- yield resolveDataForItem(item2, force);
2202
+ yield resolvePermissionsForItem(item2, force);
2156
2203
  }));
2157
2204
  }
2158
2205
  });
@@ -2304,7 +2351,8 @@ var defaultAppState = {
2304
2351
  options: [],
2305
2352
  controlsVisible: true
2306
2353
  },
2307
- field: { focus: null }
2354
+ field: { focus: null },
2355
+ plugin: { current: null }
2308
2356
  },
2309
2357
  indexes: {
2310
2358
  nodes: {},
@@ -2320,6 +2368,7 @@ var createAppStore = (initialAppStore) => create()(
2320
2368
  subscribeWithSelector((set, get) => {
2321
2369
  var _a, _b;
2322
2370
  return __spreadProps(__spreadValues({
2371
+ instanceId: generateId(),
2323
2372
  state: defaultAppState,
2324
2373
  config: { components: {} },
2325
2374
  componentState: {},
@@ -2340,6 +2389,11 @@ var createAppStore = (initialAppStore) => create()(
2340
2389
  history: createHistorySlice(set, get),
2341
2390
  nodes: createNodesSlice(set, get),
2342
2391
  permissions: createPermissionsSlice(set, get),
2392
+ getCurrentData: () => {
2393
+ var _a2;
2394
+ const s = get();
2395
+ return (_a2 = s.selectedItem) != null ? _a2 : s.state.data.root;
2396
+ },
2343
2397
  getComponentConfig: (type) => {
2344
2398
  var _a2;
2345
2399
  const { config, selectedItem } = get();
@@ -2490,203 +2544,14 @@ var createAppStore = (initialAppStore) => create()(
2490
2544
  })
2491
2545
  );
2492
2546
  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
2547
 
2561
2548
  // ../core/lib/get-zoom-config.ts
2562
2549
  init_react_import();
2563
2550
 
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
2551
  // src/HeadingAnalyzer.tsx
2687
2552
  var import_react_from_json = __toESM(require("react-from-json"));
2688
- var import_jsx_runtime5 = require("react/jsx-runtime");
2689
- var getClassName5 = get_class_name_factory_default("HeadingAnalyzer", HeadingAnalyzer_module_default);
2553
+ var import_jsx_runtime2 = require("react/jsx-runtime");
2554
+ var getClassName2 = get_class_name_factory_default("HeadingAnalyzer", HeadingAnalyzer_module_default);
2690
2555
  var getClassNameItem2 = get_class_name_factory_default("HeadingAnalyzerItem", HeadingAnalyzer_module_default);
2691
2556
  var ReactFromJSON = import_react_from_json.default.default || import_react_from_json.default;
2692
2557
  var getOutline = ({ frame } = {}) => {
@@ -2741,8 +2606,8 @@ function buildHierarchy(frame) {
2741
2606
  var usePuck = (0, import_puck.createUsePuck)();
2742
2607
  var HeadingAnalyzer = () => {
2743
2608
  const data = usePuck((s) => s.appState.data);
2744
- const [hierarchy, setHierarchy] = (0, import_react11.useState)([]);
2745
- (0, import_react11.useEffect)(() => {
2609
+ const [hierarchy, setHierarchy] = (0, import_react10.useState)([]);
2610
+ (0, import_react10.useEffect)(() => {
2746
2611
  const frame = getFrame();
2747
2612
  let entry = frame == null ? void 0 : frame.querySelector(`[data-puck-entry]`);
2748
2613
  const createHierarchy = () => {
@@ -2777,11 +2642,11 @@ var HeadingAnalyzer = () => {
2777
2642
  frameObserver.disconnect();
2778
2643
  };
2779
2644
  }, [data]);
2780
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: getClassName5(), children: [
2781
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
2645
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: getClassName2(), children: [
2646
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
2782
2647
  "small",
2783
2648
  {
2784
- className: getClassName5("cssWarning"),
2649
+ className: getClassName2("cssWarning"),
2785
2650
  style: {
2786
2651
  color: "var(--puck-color-red-04)",
2787
2652
  display: "block",
@@ -2790,19 +2655,19 @@ var HeadingAnalyzer = () => {
2790
2655
  children: [
2791
2656
  "Heading analyzer styles not loaded. Please review the",
2792
2657
  " ",
2793
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("a", { href: "https://github.com/measuredco/puck/blob/main/packages/plugin-heading-analyzer/README.md", children: "README" }),
2658
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("a", { href: "https://github.com/measuredco/puck/blob/main/packages/plugin-heading-analyzer/README.md", children: "README" }),
2794
2659
  "."
2795
2660
  ]
2796
2661
  }
2797
2662
  ),
2798
- hierarchy.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { children: "No headings." }),
2799
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(OutlineList, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
2663
+ hierarchy.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { children: "No headings." }),
2664
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(OutlineList, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2800
2665
  ReactFromJSON,
2801
2666
  {
2802
2667
  mapping: {
2803
- Root: (props) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_jsx_runtime5.Fragment, { children: props.children }),
2804
- OutlineListItem: (props) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(OutlineList.Item, { children: [
2805
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(OutlineList.Clickable, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
2668
+ Root: (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: props.children }),
2669
+ OutlineListItem: (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(OutlineList.Item, { children: [
2670
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(OutlineList.Clickable, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2806
2671
  "small",
2807
2672
  {
2808
2673
  className: getClassNameItem2({ missing: props.missing }),
@@ -2820,14 +2685,14 @@ var HeadingAnalyzer = () => {
2820
2685
  }, 2e3);
2821
2686
  }
2822
2687
  },
2823
- children: props.missing ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
2824
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("b", { children: [
2688
+ children: props.missing ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
2689
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("b", { children: [
2825
2690
  "H",
2826
2691
  props.rank
2827
2692
  ] }),
2828
2693
  ": Missing"
2829
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
2830
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("b", { children: [
2694
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
2695
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("b", { children: [
2831
2696
  "H",
2832
2697
  props.rank
2833
2698
  ] }),
@@ -2836,7 +2701,7 @@ var HeadingAnalyzer = () => {
2836
2701
  ] })
2837
2702
  }
2838
2703
  ) }),
2839
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(OutlineList, { children: props.children })
2704
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(OutlineList, { children: props.children })
2840
2705
  ] })
2841
2706
  },
2842
2707
  entry: {
@@ -2857,12 +2722,10 @@ var HeadingAnalyzer = () => {
2857
2722
  ] });
2858
2723
  };
2859
2724
  var headingAnalyzer = {
2860
- overrides: {
2861
- fields: ({ children, itemSelector }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
2862
- children,
2863
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { display: itemSelector ? "none" : "block" }, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(SidebarSection, { title: "Heading Outline", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(HeadingAnalyzer, {}) }) })
2864
- ] })
2865
- }
2725
+ name: "heading-analyzer",
2726
+ label: "Audit",
2727
+ render: HeadingAnalyzer,
2728
+ icon: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Heading1, {})
2866
2729
  };
2867
2730
  var HeadingAnalyzer_default = headingAnalyzer;
2868
2731
  /*! Bundled license information:
@@ -2878,7 +2741,7 @@ lucide-react/dist/esm/shared/src/utils.js:
2878
2741
  lucide-react/dist/esm/defaultAttributes.js:
2879
2742
  lucide-react/dist/esm/Icon.js:
2880
2743
  lucide-react/dist/esm/createLucideIcon.js:
2881
- lucide-react/dist/esm/icons/chevron-right.js:
2744
+ lucide-react/dist/esm/icons/heading-1.js:
2882
2745
  lucide-react/dist/esm/lucide-react.js:
2883
2746
  (**
2884
2747
  * @license lucide-react v0.468.0 - ISC