@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.mjs CHANGED
@@ -269,17 +269,17 @@ import { useEffect as useEffect5, useState } from "react";
269
269
 
270
270
  // css-module:/home/runner/work/puck/puck/packages/plugin-heading-analyzer/src/HeadingAnalyzer.module.css#css-module
271
271
  init_react_import();
272
- var HeadingAnalyzer_module_default = { "HeadingAnalyzer": "_HeadingAnalyzer_116v6_1", "HeadingAnalyzer-cssWarning": "_HeadingAnalyzer-cssWarning_116v6_5", "HeadingAnalyzerItem": "_HeadingAnalyzerItem_116v6_9", "HeadingAnalyzerItem--missing": "_HeadingAnalyzerItem--missing_116v6_13" };
272
+ var HeadingAnalyzer_module_default = { "HeadingAnalyzer": "_HeadingAnalyzer_yg0s7_1", "HeadingAnalyzer-cssWarning": "_HeadingAnalyzer-cssWarning_yg0s7_6", "HeadingAnalyzerItem": "_HeadingAnalyzerItem_yg0s7_10", "HeadingAnalyzerItem--missing": "_HeadingAnalyzerItem--missing_yg0s7_14" };
273
273
 
274
274
  // src/HeadingAnalyzer.tsx
275
275
  import { createUsePuck } from "@measured/puck";
276
276
 
277
- // ../core/components/SidebarSection/index.tsx
277
+ // ../core/components/OutlineList/index.tsx
278
278
  init_react_import();
279
279
 
280
- // css-module:/home/runner/work/puck/puck/packages/core/components/SidebarSection/styles.module.css#css-module
280
+ // css-module:/home/runner/work/puck/puck/packages/core/components/OutlineList/styles.module.css#css-module
281
281
  init_react_import();
282
- 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" };
282
+ var styles_module_default = { "OutlineList": "_OutlineList_w4lzv_1", "OutlineListItem": "_OutlineListItem_w4lzv_25", "OutlineListItem--clickable": "_OutlineListItem--clickable_w4lzv_45" };
283
283
 
284
284
  // ../core/lib/get-class-name-factory.ts
285
285
  init_react_import();
@@ -308,29 +308,50 @@ var getClassNameFactory = (rootClass, styles, config = { baseClass: "" }) => (op
308
308
  };
309
309
  var get_class_name_factory_default = getClassNameFactory;
310
310
 
311
- // ../core/components/Heading/index.tsx
312
- init_react_import();
313
-
314
- // css-module:/home/runner/work/puck/puck/packages/core/components/Heading/styles.module.css#css-module
315
- init_react_import();
316
- 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" };
317
-
318
- // ../core/components/Heading/index.tsx
311
+ // ../core/components/OutlineList/index.tsx
319
312
  import { jsx } from "react/jsx-runtime";
320
- var getClassName = get_class_name_factory_default("Heading", styles_module_default2);
321
- var Heading = ({ children, rank, size = "m" }) => {
322
- const Tag = rank ? `h${rank}` : "span";
313
+ var getClassName = get_class_name_factory_default("OutlineList", styles_module_default);
314
+ var getClassNameItem = get_class_name_factory_default("OutlineListItem", styles_module_default);
315
+ var OutlineList = ({ children }) => {
316
+ return /* @__PURE__ */ jsx("ul", { className: getClassName(), children });
317
+ };
318
+ OutlineList.Clickable = ({ children }) => /* @__PURE__ */ jsx("div", { className: getClassNameItem({ clickable: true }), children });
319
+ OutlineList.Item = ({
320
+ children,
321
+ onClick
322
+ }) => {
323
323
  return /* @__PURE__ */ jsx(
324
- Tag,
324
+ "li",
325
325
  {
326
- className: getClassName({
327
- [size]: true
328
- }),
326
+ className: getClassNameItem({ clickable: !!onClick }),
327
+ onClick,
329
328
  children
330
329
  }
331
330
  );
332
331
  };
333
332
 
333
+ // ../core/lib/scroll-into-view.ts
334
+ init_react_import();
335
+ var scrollIntoView = (el) => {
336
+ const oldStyle = __spreadValues({}, el.style);
337
+ el.style.scrollMargin = "256px";
338
+ if (el) {
339
+ el == null ? void 0 : el.scrollIntoView({ behavior: "smooth" });
340
+ el.style.scrollMargin = oldStyle.scrollMargin || "";
341
+ }
342
+ };
343
+
344
+ // ../core/lib/get-frame.ts
345
+ init_react_import();
346
+ var getFrame = () => {
347
+ if (typeof window === "undefined") return;
348
+ let frameEl = document.querySelector("#preview-frame");
349
+ if ((frameEl == null ? void 0 : frameEl.tagName) === "IFRAME") {
350
+ return frameEl.contentDocument || document;
351
+ }
352
+ return (frameEl == null ? void 0 : frameEl.ownerDocument) || document;
353
+ };
354
+
334
355
  // ../../node_modules/lucide-react/dist/esm/lucide-react.js
335
356
  init_react_import();
336
357
 
@@ -418,15 +439,29 @@ var createLucideIcon = (iconName, iconNode) => {
418
439
  return Component;
419
440
  };
420
441
 
421
- // ../../node_modules/lucide-react/dist/esm/icons/chevron-right.js
442
+ // ../../node_modules/lucide-react/dist/esm/icons/heading-1.js
422
443
  init_react_import();
423
- var ChevronRight = createLucideIcon("ChevronRight", [
424
- ["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]
444
+ var Heading1 = createLucideIcon("Heading1", [
445
+ ["path", { d: "M4 12h8", key: "17cfdx" }],
446
+ ["path", { d: "M4 18V6", key: "1rz3zl" }],
447
+ ["path", { d: "M12 18V6", key: "zqpxq5" }],
448
+ ["path", { d: "m17 12 3-2v8", key: "1hhhft" }]
425
449
  ]);
426
450
 
427
- // ../core/lib/use-breadcrumbs.ts
451
+ // ../core/lib/index.ts
452
+ init_react_import();
453
+
454
+ // ../core/lib/filter.ts
455
+ init_react_import();
456
+
457
+ // ../core/lib/data/reorder.ts
458
+ init_react_import();
459
+
460
+ // ../core/lib/data/replace.ts
461
+ init_react_import();
462
+
463
+ // ../core/lib/use-reset-auto-zoom.ts
428
464
  init_react_import();
429
- import { useMemo } from "react";
430
465
 
431
466
  // ../core/store/index.ts
432
467
  init_react_import();
@@ -994,7 +1029,9 @@ var replaceAction = (state, action, appStore) => {
994
1029
  });
995
1030
  });
996
1031
  });
997
- const stateWithDeepSlotsRemoved = __spreadValues({}, state);
1032
+ const stateWithDeepSlotsRemoved = __spreadProps(__spreadValues({}, state), {
1033
+ ui: __spreadValues(__spreadValues({}, state.ui), action.ui)
1034
+ });
998
1035
  Object.keys(state.indexes.zones).forEach((zoneCompound) => {
999
1036
  const id = zoneCompound.split(":")[0];
1000
1037
  if (id === originalId) {
@@ -1396,7 +1433,8 @@ init_react_import();
1396
1433
  var defaultViewports = [
1397
1434
  { width: 360, height: "auto", icon: "Smartphone", label: "Small" },
1398
1435
  { width: 768, height: "auto", icon: "Tablet", label: "Medium" },
1399
- { width: 1280, height: "auto", icon: "Monitor", label: "Large" }
1436
+ { width: 1280, height: "auto", icon: "Monitor", label: "Large" },
1437
+ { width: "100%", height: "auto", icon: "FullWidth", label: "Full-width" }
1400
1438
  ];
1401
1439
 
1402
1440
  // ../../node_modules/zustand/esm/vanilla.mjs
@@ -1506,9 +1544,9 @@ function debounce(func, timeout = 300) {
1506
1544
  var tidyState = (state) => {
1507
1545
  return __spreadProps(__spreadValues({}, state), {
1508
1546
  ui: __spreadProps(__spreadValues({}, state.ui), {
1509
- field: {
1547
+ field: __spreadProps(__spreadValues({}, state.ui.field), {
1510
1548
  focus: null
1511
- }
1549
+ })
1512
1550
  })
1513
1551
  });
1514
1552
  };
@@ -2078,26 +2116,34 @@ var createPermissionsSlice = (set, get) => {
2078
2116
  const resolvePermissions = (..._0) => __async(null, [..._0], function* (params = {}, force) {
2079
2117
  const { state, permissions, config } = get();
2080
2118
  const { cache: cache2, globalPermissions } = permissions;
2081
- const resolveDataForItem = (item2, force2 = false) => __async(null, null, function* () {
2082
- var _a, _b, _c;
2119
+ const resolvePermissionsForItem = (item2, force2 = false) => __async(null, null, function* () {
2120
+ var _a, _b;
2083
2121
  const { config: config2, state: appState, setComponentLoading } = get();
2122
+ const itemCache = cache2[item2.props.id];
2123
+ const nodes = appState.indexes.nodes;
2124
+ const parentId = (_a = nodes[item2.props.id]) == null ? void 0 : _a.parentId;
2125
+ const parentNode = parentId ? nodes[parentId] : null;
2126
+ const parentData = (_b = parentNode == null ? void 0 : parentNode.data) != null ? _b : null;
2084
2127
  const componentConfig = item2.type === "root" ? config2.root : config2.components[item2.type];
2085
2128
  if (!componentConfig) {
2086
2129
  return;
2087
2130
  }
2088
2131
  const initialPermissions = __spreadValues(__spreadValues({}, globalPermissions), componentConfig.permissions);
2089
2132
  if (componentConfig.resolvePermissions) {
2090
- const changed = getChanged(item2, (_a = cache2[item2.props.id]) == null ? void 0 : _a.lastData);
2091
- if (Object.values(changed).some((el) => el === true) || force2) {
2133
+ const changed = getChanged(item2, itemCache == null ? void 0 : itemCache.lastData);
2134
+ const propsChanged = Object.values(changed).some((el) => el === true);
2135
+ const parentChanged = (itemCache == null ? void 0 : itemCache.lastParentId) !== parentId;
2136
+ if (propsChanged || parentChanged || force2) {
2092
2137
  const clearTimeout2 = setComponentLoading(item2.props.id, true, 50);
2093
2138
  const resolvedPermissions = yield componentConfig.resolvePermissions(
2094
2139
  item2,
2095
2140
  {
2096
2141
  changed,
2097
- lastPermissions: ((_b = cache2[item2.props.id]) == null ? void 0 : _b.lastPermissions) || null,
2142
+ lastPermissions: (itemCache == null ? void 0 : itemCache.lastPermissions) || null,
2098
2143
  permissions: initialPermissions,
2099
2144
  appState: makeStatePublic(appState),
2100
- lastData: ((_c = cache2[item2.props.id]) == null ? void 0 : _c.lastData) || null
2145
+ lastData: (itemCache == null ? void 0 : itemCache.lastData) || null,
2146
+ parent: parentData
2101
2147
  }
2102
2148
  );
2103
2149
  const latest = get().permissions;
@@ -2105,6 +2151,7 @@ var createPermissionsSlice = (set, get) => {
2105
2151
  permissions: __spreadProps(__spreadValues({}, latest), {
2106
2152
  cache: __spreadProps(__spreadValues({}, latest.cache), {
2107
2153
  [item2.props.id]: {
2154
+ lastParentId: parentId,
2108
2155
  lastData: item2,
2109
2156
  lastPermissions: resolvedPermissions
2110
2157
  }
@@ -2118,9 +2165,9 @@ var createPermissionsSlice = (set, get) => {
2118
2165
  }
2119
2166
  }
2120
2167
  });
2121
- const resolveDataForRoot = (force2 = false) => {
2168
+ const resolvePermissionsForRoot = (force2 = false) => {
2122
2169
  const { state: appState } = get();
2123
- resolveDataForItem(
2170
+ resolvePermissionsForItem(
2124
2171
  // Shim the root data in by conforming to component data shape
2125
2172
  {
2126
2173
  type: "root",
@@ -2131,16 +2178,16 @@ var createPermissionsSlice = (set, get) => {
2131
2178
  };
2132
2179
  const { item, type, root } = params;
2133
2180
  if (item) {
2134
- yield resolveDataForItem(item, force);
2181
+ yield resolvePermissionsForItem(item, force);
2135
2182
  } else if (type) {
2136
2183
  flattenData(state, config).filter((item2) => item2.type === type).map((item2) => __async(null, null, function* () {
2137
- yield resolveDataForItem(item2, force);
2184
+ yield resolvePermissionsForItem(item2, force);
2138
2185
  }));
2139
2186
  } else if (root) {
2140
- resolveDataForRoot(force);
2187
+ resolvePermissionsForRoot(force);
2141
2188
  } else {
2142
2189
  flattenData(state, config).map((item2) => __async(null, null, function* () {
2143
- yield resolveDataForItem(item2, force);
2190
+ yield resolvePermissionsForItem(item2, force);
2144
2191
  }));
2145
2192
  }
2146
2193
  });
@@ -2292,7 +2339,8 @@ var defaultAppState = {
2292
2339
  options: [],
2293
2340
  controlsVisible: true
2294
2341
  },
2295
- field: { focus: null }
2342
+ field: { focus: null },
2343
+ plugin: { current: null }
2296
2344
  },
2297
2345
  indexes: {
2298
2346
  nodes: {},
@@ -2308,6 +2356,7 @@ var createAppStore = (initialAppStore) => create()(
2308
2356
  subscribeWithSelector((set, get) => {
2309
2357
  var _a, _b;
2310
2358
  return __spreadProps(__spreadValues({
2359
+ instanceId: generateId(),
2311
2360
  state: defaultAppState,
2312
2361
  config: { components: {} },
2313
2362
  componentState: {},
@@ -2328,6 +2377,11 @@ var createAppStore = (initialAppStore) => create()(
2328
2377
  history: createHistorySlice(set, get),
2329
2378
  nodes: createNodesSlice(set, get),
2330
2379
  permissions: createPermissionsSlice(set, get),
2380
+ getCurrentData: () => {
2381
+ var _a2;
2382
+ const s = get();
2383
+ return (_a2 = s.selectedItem) != null ? _a2 : s.state.data.root;
2384
+ },
2331
2385
  getComponentConfig: (type) => {
2332
2386
  var _a2;
2333
2387
  const { config, selectedItem } = get();
@@ -2478,203 +2532,14 @@ var createAppStore = (initialAppStore) => create()(
2478
2532
  })
2479
2533
  );
2480
2534
  var appStoreContext = createContext(createAppStore());
2481
- function useAppStore(selector) {
2482
- const context = useContext(appStoreContext);
2483
- return useStore(context, selector);
2484
- }
2485
- function useAppStoreApi() {
2486
- return useContext(appStoreContext);
2487
- }
2488
-
2489
- // ../core/lib/use-breadcrumbs.ts
2490
- var useBreadcrumbs = (renderCount) => {
2491
- const selectedId = useAppStore((s) => {
2492
- var _a;
2493
- return (_a = s.selectedItem) == null ? void 0 : _a.props.id;
2494
- });
2495
- const config = useAppStore((s) => s.config);
2496
- const path = useAppStore((s) => {
2497
- var _a;
2498
- return (_a = s.state.indexes.nodes[selectedId]) == null ? void 0 : _a.path;
2499
- });
2500
- const appStore = useAppStoreApi();
2501
- return useMemo(() => {
2502
- const breadcrumbs = (path == null ? void 0 : path.map((zoneCompound) => {
2503
- var _a, _b, _c;
2504
- const [componentId] = zoneCompound.split(":");
2505
- if (componentId === "root") {
2506
- return {
2507
- label: "Page",
2508
- selector: null
2509
- };
2510
- }
2511
- const node = appStore.getState().state.indexes.nodes[componentId];
2512
- const parentId = node.path[node.path.length - 1];
2513
- const contentIds = ((_a = appStore.getState().state.indexes.zones[parentId]) == null ? void 0 : _a.contentIds) || [];
2514
- const index = contentIds.indexOf(componentId);
2515
- const label = node ? (_c = (_b = config.components[node.data.type]) == null ? void 0 : _b.label) != null ? _c : node.data.type : "Component";
2516
- return {
2517
- label,
2518
- selector: node ? {
2519
- index,
2520
- zone: node.path[node.path.length - 1]
2521
- } : null
2522
- };
2523
- })) || [];
2524
- if (renderCount) {
2525
- return breadcrumbs.slice(breadcrumbs.length - renderCount);
2526
- }
2527
- return breadcrumbs;
2528
- }, [path, renderCount]);
2529
- };
2530
-
2531
- // ../core/components/Loader/index.tsx
2532
- init_react_import();
2533
-
2534
- // ../core/lib/index.ts
2535
- init_react_import();
2536
-
2537
- // ../core/lib/filter.ts
2538
- init_react_import();
2539
-
2540
- // ../core/lib/data/reorder.ts
2541
- init_react_import();
2542
-
2543
- // ../core/lib/data/replace.ts
2544
- init_react_import();
2545
-
2546
- // ../core/lib/use-reset-auto-zoom.ts
2547
- init_react_import();
2548
2535
 
2549
2536
  // ../core/lib/get-zoom-config.ts
2550
2537
  init_react_import();
2551
2538
 
2552
- // css-module:/home/runner/work/puck/puck/packages/core/components/Loader/styles.module.css#css-module
2553
- init_react_import();
2554
- var styles_module_default3 = { "Loader": "_Loader_nacdm_13", "loader-animation": "_loader-animation_nacdm_1" };
2555
-
2556
- // ../core/components/Loader/index.tsx
2557
- import { jsx as jsx2 } from "react/jsx-runtime";
2558
- var getClassName2 = get_class_name_factory_default("Loader", styles_module_default3);
2559
- var Loader = (_a) => {
2560
- var _b = _a, {
2561
- color,
2562
- size = 16
2563
- } = _b, props = __objRest(_b, [
2564
- "color",
2565
- "size"
2566
- ]);
2567
- return /* @__PURE__ */ jsx2(
2568
- "span",
2569
- __spreadValues({
2570
- className: getClassName2(),
2571
- style: {
2572
- width: size,
2573
- height: size,
2574
- color
2575
- },
2576
- "aria-label": "loading"
2577
- }, props)
2578
- );
2579
- };
2580
-
2581
- // ../core/components/SidebarSection/index.tsx
2582
- import { jsx as jsx3, jsxs } from "react/jsx-runtime";
2583
- var getClassName3 = get_class_name_factory_default("SidebarSection", styles_module_default);
2584
- var SidebarSection = ({
2585
- children,
2586
- title,
2587
- background,
2588
- showBreadcrumbs,
2589
- noBorderTop,
2590
- noPadding,
2591
- isLoading
2592
- }) => {
2593
- const setUi = useAppStore((s) => s.setUi);
2594
- const breadcrumbs = useBreadcrumbs(1);
2595
- return /* @__PURE__ */ jsxs(
2596
- "div",
2597
- {
2598
- className: getClassName3({ noBorderTop, noPadding }),
2599
- style: { background },
2600
- children: [
2601
- /* @__PURE__ */ jsx3("div", { className: getClassName3("title"), children: /* @__PURE__ */ jsxs("div", { className: getClassName3("breadcrumbs"), children: [
2602
- showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ jsxs("div", { className: getClassName3("breadcrumb"), children: [
2603
- /* @__PURE__ */ jsx3(
2604
- "button",
2605
- {
2606
- type: "button",
2607
- className: getClassName3("breadcrumbLabel"),
2608
- onClick: () => setUi({ itemSelector: breadcrumb.selector }),
2609
- children: breadcrumb.label
2610
- }
2611
- ),
2612
- /* @__PURE__ */ jsx3(ChevronRight, { size: 16 })
2613
- ] }, i)) : null,
2614
- /* @__PURE__ */ jsx3("div", { className: getClassName3("heading"), children: /* @__PURE__ */ jsx3(Heading, { rank: "2", size: "xs", children: title }) })
2615
- ] }) }),
2616
- /* @__PURE__ */ jsx3("div", { className: getClassName3("content"), children }),
2617
- isLoading && /* @__PURE__ */ jsx3("div", { className: getClassName3("loadingOverlay"), children: /* @__PURE__ */ jsx3(Loader, { size: 32 }) })
2618
- ]
2619
- }
2620
- );
2621
- };
2622
-
2623
- // ../core/components/OutlineList/index.tsx
2624
- init_react_import();
2625
-
2626
- // css-module:/home/runner/work/puck/puck/packages/core/components/OutlineList/styles.module.css#css-module
2627
- init_react_import();
2628
- var styles_module_default4 = { "OutlineList": "_OutlineList_w4lzv_1", "OutlineListItem": "_OutlineListItem_w4lzv_25", "OutlineListItem--clickable": "_OutlineListItem--clickable_w4lzv_45" };
2629
-
2630
- // ../core/components/OutlineList/index.tsx
2631
- import { jsx as jsx4 } from "react/jsx-runtime";
2632
- var getClassName4 = get_class_name_factory_default("OutlineList", styles_module_default4);
2633
- var getClassNameItem = get_class_name_factory_default("OutlineListItem", styles_module_default4);
2634
- var OutlineList = ({ children }) => {
2635
- return /* @__PURE__ */ jsx4("ul", { className: getClassName4(), children });
2636
- };
2637
- OutlineList.Clickable = ({ children }) => /* @__PURE__ */ jsx4("div", { className: getClassNameItem({ clickable: true }), children });
2638
- OutlineList.Item = ({
2639
- children,
2640
- onClick
2641
- }) => {
2642
- return /* @__PURE__ */ jsx4(
2643
- "li",
2644
- {
2645
- className: getClassNameItem({ clickable: !!onClick }),
2646
- onClick,
2647
- children
2648
- }
2649
- );
2650
- };
2651
-
2652
- // ../core/lib/scroll-into-view.ts
2653
- init_react_import();
2654
- var scrollIntoView = (el) => {
2655
- const oldStyle = __spreadValues({}, el.style);
2656
- el.style.scrollMargin = "256px";
2657
- if (el) {
2658
- el == null ? void 0 : el.scrollIntoView({ behavior: "smooth" });
2659
- el.style.scrollMargin = oldStyle.scrollMargin || "";
2660
- }
2661
- };
2662
-
2663
- // ../core/lib/get-frame.ts
2664
- init_react_import();
2665
- var getFrame = () => {
2666
- if (typeof window === "undefined") return;
2667
- let frameEl = document.querySelector("#preview-frame");
2668
- if ((frameEl == null ? void 0 : frameEl.tagName) === "IFRAME") {
2669
- return frameEl.contentDocument || document;
2670
- }
2671
- return (frameEl == null ? void 0 : frameEl.ownerDocument) || document;
2672
- };
2673
-
2674
2539
  // src/HeadingAnalyzer.tsx
2675
2540
  import ReactFromJSONModule from "react-from-json";
2676
- import { Fragment, jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
2677
- var getClassName5 = get_class_name_factory_default("HeadingAnalyzer", HeadingAnalyzer_module_default);
2541
+ import { Fragment, jsx as jsx2, jsxs } from "react/jsx-runtime";
2542
+ var getClassName2 = get_class_name_factory_default("HeadingAnalyzer", HeadingAnalyzer_module_default);
2678
2543
  var getClassNameItem2 = get_class_name_factory_default("HeadingAnalyzerItem", HeadingAnalyzer_module_default);
2679
2544
  var ReactFromJSON = ReactFromJSONModule.default || ReactFromJSONModule;
2680
2545
  var getOutline = ({ frame } = {}) => {
@@ -2765,11 +2630,11 @@ var HeadingAnalyzer = () => {
2765
2630
  frameObserver.disconnect();
2766
2631
  };
2767
2632
  }, [data]);
2768
- return /* @__PURE__ */ jsxs2("div", { className: getClassName5(), children: [
2769
- /* @__PURE__ */ jsxs2(
2633
+ return /* @__PURE__ */ jsxs("div", { className: getClassName2(), children: [
2634
+ /* @__PURE__ */ jsxs(
2770
2635
  "small",
2771
2636
  {
2772
- className: getClassName5("cssWarning"),
2637
+ className: getClassName2("cssWarning"),
2773
2638
  style: {
2774
2639
  color: "var(--puck-color-red-04)",
2775
2640
  display: "block",
@@ -2778,19 +2643,19 @@ var HeadingAnalyzer = () => {
2778
2643
  children: [
2779
2644
  "Heading analyzer styles not loaded. Please review the",
2780
2645
  " ",
2781
- /* @__PURE__ */ jsx5("a", { href: "https://github.com/measuredco/puck/blob/main/packages/plugin-heading-analyzer/README.md", children: "README" }),
2646
+ /* @__PURE__ */ jsx2("a", { href: "https://github.com/measuredco/puck/blob/main/packages/plugin-heading-analyzer/README.md", children: "README" }),
2782
2647
  "."
2783
2648
  ]
2784
2649
  }
2785
2650
  ),
2786
- hierarchy.length === 0 && /* @__PURE__ */ jsx5("div", { children: "No headings." }),
2787
- /* @__PURE__ */ jsx5(OutlineList, { children: /* @__PURE__ */ jsx5(
2651
+ hierarchy.length === 0 && /* @__PURE__ */ jsx2("div", { children: "No headings." }),
2652
+ /* @__PURE__ */ jsx2(OutlineList, { children: /* @__PURE__ */ jsx2(
2788
2653
  ReactFromJSON,
2789
2654
  {
2790
2655
  mapping: {
2791
- Root: (props) => /* @__PURE__ */ jsx5(Fragment, { children: props.children }),
2792
- OutlineListItem: (props) => /* @__PURE__ */ jsxs2(OutlineList.Item, { children: [
2793
- /* @__PURE__ */ jsx5(OutlineList.Clickable, { children: /* @__PURE__ */ jsx5(
2656
+ Root: (props) => /* @__PURE__ */ jsx2(Fragment, { children: props.children }),
2657
+ OutlineListItem: (props) => /* @__PURE__ */ jsxs(OutlineList.Item, { children: [
2658
+ /* @__PURE__ */ jsx2(OutlineList.Clickable, { children: /* @__PURE__ */ jsx2(
2794
2659
  "small",
2795
2660
  {
2796
2661
  className: getClassNameItem2({ missing: props.missing }),
@@ -2808,14 +2673,14 @@ var HeadingAnalyzer = () => {
2808
2673
  }, 2e3);
2809
2674
  }
2810
2675
  },
2811
- children: props.missing ? /* @__PURE__ */ jsxs2(Fragment, { children: [
2812
- /* @__PURE__ */ jsxs2("b", { children: [
2676
+ children: props.missing ? /* @__PURE__ */ jsxs(Fragment, { children: [
2677
+ /* @__PURE__ */ jsxs("b", { children: [
2813
2678
  "H",
2814
2679
  props.rank
2815
2680
  ] }),
2816
2681
  ": Missing"
2817
- ] }) : /* @__PURE__ */ jsxs2(Fragment, { children: [
2818
- /* @__PURE__ */ jsxs2("b", { children: [
2682
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
2683
+ /* @__PURE__ */ jsxs("b", { children: [
2819
2684
  "H",
2820
2685
  props.rank
2821
2686
  ] }),
@@ -2824,7 +2689,7 @@ var HeadingAnalyzer = () => {
2824
2689
  ] })
2825
2690
  }
2826
2691
  ) }),
2827
- /* @__PURE__ */ jsx5(OutlineList, { children: props.children })
2692
+ /* @__PURE__ */ jsx2(OutlineList, { children: props.children })
2828
2693
  ] })
2829
2694
  },
2830
2695
  entry: {
@@ -2845,12 +2710,10 @@ var HeadingAnalyzer = () => {
2845
2710
  ] });
2846
2711
  };
2847
2712
  var headingAnalyzer = {
2848
- overrides: {
2849
- fields: ({ children, itemSelector }) => /* @__PURE__ */ jsxs2(Fragment, { children: [
2850
- children,
2851
- /* @__PURE__ */ jsx5("div", { style: { display: itemSelector ? "none" : "block" }, children: /* @__PURE__ */ jsx5(SidebarSection, { title: "Heading Outline", children: /* @__PURE__ */ jsx5(HeadingAnalyzer, {}) }) })
2852
- ] })
2853
- }
2713
+ name: "heading-analyzer",
2714
+ label: "Audit",
2715
+ render: HeadingAnalyzer,
2716
+ icon: /* @__PURE__ */ jsx2(Heading1, {})
2854
2717
  };
2855
2718
  var HeadingAnalyzer_default = headingAnalyzer;
2856
2719
  export {
@@ -2869,7 +2732,7 @@ lucide-react/dist/esm/shared/src/utils.js:
2869
2732
  lucide-react/dist/esm/defaultAttributes.js:
2870
2733
  lucide-react/dist/esm/Icon.js:
2871
2734
  lucide-react/dist/esm/createLucideIcon.js:
2872
- lucide-react/dist/esm/icons/chevron-right.js:
2735
+ lucide-react/dist/esm/icons/heading-1.js:
2873
2736
  lucide-react/dist/esm/lucide-react.js:
2874
2737
  (**
2875
2738
  * @license lucide-react v0.468.0 - ISC
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@measured/puck-plugin-heading-analyzer",
3
- "version": "0.21.0-canary.15fe8d60",
3
+ "version": "0.21.0-canary.17395b2c",
4
4
  "author": "Chris Villa <chris@puckeditor.com>",
5
5
  "repository": "measuredco/puck",
6
6
  "bugs": "https://github.com/measuredco/puck/issues",
@@ -25,7 +25,7 @@
25
25
  "dist"
26
26
  ],
27
27
  "devDependencies": {
28
- "@measured/puck": "^0.21.0-canary.15fe8d60",
28
+ "@measured/puck": "^0.21.0-canary.17395b2c",
29
29
  "@types/minimatch": "3.0.5",
30
30
  "@types/react": "^19.0.1",
31
31
  "@types/react-dom": "^19.0.2",