@measured/puck-plugin-heading-analyzer 0.21.0-canary.77444503 → 0.21.0-canary.7c2f9283

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();
@@ -621,12 +656,12 @@ var walkObject = ({
621
656
  }
622
657
  return flatten(newProps);
623
658
  };
624
- function mapFields(item, mappers, config, recurseSlots = false) {
659
+ function mapFields(item, mappers, config, recurseSlots = false, shouldDefaultSlots = true) {
625
660
  var _a, _b, _c, _d, _e;
626
661
  const itemType = "type" in item ? item.type : "root";
627
662
  const componentConfig = itemType === "root" ? config.root : (_a = config.components) == null ? void 0 : _a[itemType];
628
663
  const newProps = walkObject({
629
- value: defaultSlots((_b = item.props) != null ? _b : {}, (_c = componentConfig == null ? void 0 : componentConfig.fields) != null ? _c : {}),
664
+ value: shouldDefaultSlots ? defaultSlots((_b = item.props) != null ? _b : {}, (_c = componentConfig == null ? void 0 : componentConfig.fields) != null ? _c : {}) : item.props,
630
665
  fields: (_d = componentConfig == null ? void 0 : componentConfig.fields) != null ? _d : {},
631
666
  mappers,
632
667
  id: item.props ? (_e = item.props.id) != null ? _e : "root" : "root",
@@ -656,9 +691,28 @@ var stripSlots = (data, config) => {
656
691
 
657
692
  // ../core/lib/data/flatten-node.ts
658
693
  var { flatten: flatten2, unflatten } = import_flat.default;
694
+ function isEmptyArrayOrObject(val) {
695
+ if (Array.isArray(val)) {
696
+ return val.length === 0;
697
+ }
698
+ if (val != null && Object.prototype.toString.call(val) === "[object Object]") {
699
+ return Object.keys(val).length === 0;
700
+ }
701
+ return false;
702
+ }
703
+ function stripEmptyObjects(props) {
704
+ const result = {};
705
+ for (const key in props) {
706
+ if (!Object.prototype.hasOwnProperty.call(props, key)) continue;
707
+ const val = props[key];
708
+ if (isEmptyArrayOrObject(val)) continue;
709
+ result[key] = val;
710
+ }
711
+ return result;
712
+ }
659
713
  var flattenNode = (node, config) => {
660
714
  return __spreadProps(__spreadValues({}, node), {
661
- props: flatten2(stripSlots(node, config).props)
715
+ props: stripEmptyObjects(flatten2(stripSlots(node, config).props))
662
716
  });
663
717
  };
664
718
 
@@ -1410,7 +1464,8 @@ init_react_import();
1410
1464
  var defaultViewports = [
1411
1465
  { width: 360, height: "auto", icon: "Smartphone", label: "Small" },
1412
1466
  { width: 768, height: "auto", icon: "Tablet", label: "Medium" },
1413
- { width: 1280, height: "auto", icon: "Monitor", label: "Large" }
1467
+ { width: 1280, height: "auto", icon: "Monitor", label: "Large" },
1468
+ { width: "100%", height: "auto", icon: "FullWidth", label: "Full-width" }
1414
1469
  ];
1415
1470
 
1416
1471
  // ../../node_modules/zustand/esm/vanilla.mjs
@@ -2216,15 +2271,34 @@ var createFieldsSlice = (_set, _get) => {
2216
2271
 
2217
2272
  // ../core/lib/resolve-component-data.ts
2218
2273
  init_react_import();
2274
+
2275
+ // ../core/lib/data/to-component.ts
2276
+ init_react_import();
2277
+ var toComponent = (item) => {
2278
+ return "type" in item ? item : __spreadProps(__spreadValues({}, item), {
2279
+ props: __spreadProps(__spreadValues({}, item.props), { id: "root" }),
2280
+ type: "root"
2281
+ });
2282
+ };
2283
+
2284
+ // ../core/lib/resolve-component-data.ts
2219
2285
  var cache = { lastChange: {} };
2220
- var resolveComponentData = (_0, _1, ..._2) => __async(null, [_0, _1, ..._2], function* (item, config, metadata = {}, onResolveStart, onResolveEnd, trigger = "replace") {
2286
+ var resolveComponentData = (_0, _1, ..._2) => __async(null, [_0, _1, ..._2], function* (item, config, metadata = {}, onResolveStart, onResolveEnd, trigger = "replace", parent = null) {
2221
2287
  const configForItem = "type" in item && item.type !== "root" ? config.components[item.type] : config.root;
2222
2288
  const resolvedItem = __spreadValues({}, item);
2223
2289
  const shouldRunResolver = (configForItem == null ? void 0 : configForItem.resolveData) && item.props;
2224
2290
  const id = "id" in item.props ? item.props.id : "root";
2225
2291
  if (shouldRunResolver) {
2226
- const { item: oldItem = null, resolved = {} } = cache.lastChange[id] || {};
2227
- if (trigger !== "force" && item && deepEqual(item, oldItem)) {
2292
+ const {
2293
+ item: oldItem = null,
2294
+ resolved = {},
2295
+ parentId: oldParentId = null
2296
+ } = cache.lastChange[id] || {};
2297
+ const isRootOrInserted = oldParentId === null;
2298
+ const parentChanged = !isRootOrInserted && (parent == null ? void 0 : parent.props.id) !== oldParentId;
2299
+ const dataChanged = item && !deepEqual(item, oldItem);
2300
+ const shouldSkip = trigger === "move" && !parentChanged || trigger !== "move" && trigger !== "force" && !dataChanged;
2301
+ if (shouldSkip) {
2228
2302
  return { node: resolved, didChange: false };
2229
2303
  }
2230
2304
  const changed = getChanged(item, oldItem);
@@ -2235,13 +2309,15 @@ var resolveComponentData = (_0, _1, ..._2) => __async(null, [_0, _1, ..._2], fun
2235
2309
  changed,
2236
2310
  lastData: oldItem,
2237
2311
  metadata: __spreadValues(__spreadValues({}, metadata), configForItem.metadata),
2238
- trigger
2312
+ trigger,
2313
+ parent
2239
2314
  });
2240
2315
  resolvedItem.props = __spreadValues(__spreadValues({}, item.props), resolvedProps);
2241
2316
  if (Object.keys(readOnly).length) {
2242
2317
  resolvedItem.readOnly = readOnly;
2243
2318
  }
2244
2319
  }
2320
+ const itemAsComponentData = toComponent(resolvedItem);
2245
2321
  let itemWithResolvedChildren = yield mapFields(
2246
2322
  resolvedItem,
2247
2323
  {
@@ -2256,7 +2332,8 @@ var resolveComponentData = (_0, _1, ..._2) => __async(null, [_0, _1, ..._2], fun
2256
2332
  metadata,
2257
2333
  onResolveStart,
2258
2334
  onResolveEnd,
2259
- trigger
2335
+ trigger,
2336
+ itemAsComponentData
2260
2337
  )).node;
2261
2338
  })
2262
2339
  )
@@ -2270,7 +2347,8 @@ var resolveComponentData = (_0, _1, ..._2) => __async(null, [_0, _1, ..._2], fun
2270
2347
  }
2271
2348
  cache.lastChange[id] = {
2272
2349
  item,
2273
- resolved: itemWithResolvedChildren
2350
+ resolved: itemWithResolvedChildren,
2351
+ parentId: parent == null ? void 0 : parent.props.id
2274
2352
  };
2275
2353
  return {
2276
2354
  node: itemWithResolvedChildren,
@@ -2315,7 +2393,8 @@ var defaultAppState = {
2315
2393
  options: [],
2316
2394
  controlsVisible: true
2317
2395
  },
2318
- field: { focus: null }
2396
+ field: { focus: null },
2397
+ plugin: { current: null }
2319
2398
  },
2320
2399
  indexes: {
2321
2400
  nodes: {},
@@ -2331,6 +2410,7 @@ var createAppStore = (initialAppStore) => create()(
2331
2410
  subscribeWithSelector((set, get) => {
2332
2411
  var _a, _b;
2333
2412
  return __spreadProps(__spreadValues({
2413
+ instanceId: generateId(),
2334
2414
  state: defaultAppState,
2335
2415
  config: { components: {} },
2336
2416
  componentState: {},
@@ -2351,6 +2431,11 @@ var createAppStore = (initialAppStore) => create()(
2351
2431
  history: createHistorySlice(set, get),
2352
2432
  nodes: createNodesSlice(set, get),
2353
2433
  permissions: createPermissionsSlice(set, get),
2434
+ getCurrentData: () => {
2435
+ var _a2;
2436
+ const s = get();
2437
+ return (_a2 = s.selectedItem) != null ? _a2 : s.state.data.root;
2438
+ },
2354
2439
  getComponentConfig: (type) => {
2355
2440
  var _a2;
2356
2441
  const { config, selectedItem } = get();
@@ -2440,7 +2525,12 @@ var createAppStore = (initialAppStore) => create()(
2440
2525
  return __spreadProps(__spreadValues({}, s), { state, selectedItem });
2441
2526
  }),
2442
2527
  resolveComponentData: (componentData, trigger) => __async(null, null, function* () {
2443
- const { config, metadata, setComponentLoading, permissions } = get();
2528
+ var _a2, _b2;
2529
+ const { config, metadata, setComponentLoading, permissions, state } = get();
2530
+ const componentId = "id" in componentData.props ? componentData.props.id : "root";
2531
+ const parentId = (_a2 = state.indexes.nodes[componentId]) == null ? void 0 : _a2.parentId;
2532
+ const parentNode = parentId ? state.indexes.nodes[parentId] : null;
2533
+ const parentData = (_b2 = parentNode == null ? void 0 : parentNode.data) != null ? _b2 : null;
2444
2534
  const timeouts = {};
2445
2535
  return yield resolveComponentData(
2446
2536
  componentData,
@@ -2459,7 +2549,8 @@ var createAppStore = (initialAppStore) => create()(
2459
2549
  }
2460
2550
  timeouts[id]();
2461
2551
  }),
2462
- trigger
2552
+ trigger,
2553
+ parentData
2463
2554
  );
2464
2555
  }),
2465
2556
  resolveAndCommitData: () => __async(null, null, function* () {
@@ -2501,203 +2592,14 @@ var createAppStore = (initialAppStore) => create()(
2501
2592
  })
2502
2593
  );
2503
2594
  var appStoreContext = (0, import_react9.createContext)(createAppStore());
2504
- function useAppStore(selector) {
2505
- const context = (0, import_react9.useContext)(appStoreContext);
2506
- return useStore(context, selector);
2507
- }
2508
- function useAppStoreApi() {
2509
- return (0, import_react9.useContext)(appStoreContext);
2510
- }
2511
-
2512
- // ../core/lib/use-breadcrumbs.ts
2513
- var useBreadcrumbs = (renderCount) => {
2514
- const selectedId = useAppStore((s) => {
2515
- var _a;
2516
- return (_a = s.selectedItem) == null ? void 0 : _a.props.id;
2517
- });
2518
- const config = useAppStore((s) => s.config);
2519
- const path = useAppStore((s) => {
2520
- var _a;
2521
- return (_a = s.state.indexes.nodes[selectedId]) == null ? void 0 : _a.path;
2522
- });
2523
- const appStore = useAppStoreApi();
2524
- return (0, import_react10.useMemo)(() => {
2525
- const breadcrumbs = (path == null ? void 0 : path.map((zoneCompound) => {
2526
- var _a, _b, _c;
2527
- const [componentId] = zoneCompound.split(":");
2528
- if (componentId === "root") {
2529
- return {
2530
- label: "Page",
2531
- selector: null
2532
- };
2533
- }
2534
- const node = appStore.getState().state.indexes.nodes[componentId];
2535
- const parentId = node.path[node.path.length - 1];
2536
- const contentIds = ((_a = appStore.getState().state.indexes.zones[parentId]) == null ? void 0 : _a.contentIds) || [];
2537
- const index = contentIds.indexOf(componentId);
2538
- const label = node ? (_c = (_b = config.components[node.data.type]) == null ? void 0 : _b.label) != null ? _c : node.data.type : "Component";
2539
- return {
2540
- label,
2541
- selector: node ? {
2542
- index,
2543
- zone: node.path[node.path.length - 1]
2544
- } : null
2545
- };
2546
- })) || [];
2547
- if (renderCount) {
2548
- return breadcrumbs.slice(breadcrumbs.length - renderCount);
2549
- }
2550
- return breadcrumbs;
2551
- }, [path, renderCount]);
2552
- };
2553
-
2554
- // ../core/components/Loader/index.tsx
2555
- init_react_import();
2556
-
2557
- // ../core/lib/index.ts
2558
- init_react_import();
2559
-
2560
- // ../core/lib/filter.ts
2561
- init_react_import();
2562
-
2563
- // ../core/lib/data/reorder.ts
2564
- init_react_import();
2565
-
2566
- // ../core/lib/data/replace.ts
2567
- init_react_import();
2568
-
2569
- // ../core/lib/use-reset-auto-zoom.ts
2570
- init_react_import();
2571
2595
 
2572
2596
  // ../core/lib/get-zoom-config.ts
2573
2597
  init_react_import();
2574
2598
 
2575
- // css-module:/home/runner/work/puck/puck/packages/core/components/Loader/styles.module.css#css-module
2576
- init_react_import();
2577
- var styles_module_default3 = { "Loader": "_Loader_nacdm_13", "loader-animation": "_loader-animation_nacdm_1" };
2578
-
2579
- // ../core/components/Loader/index.tsx
2580
- var import_jsx_runtime2 = require("react/jsx-runtime");
2581
- var getClassName2 = get_class_name_factory_default("Loader", styles_module_default3);
2582
- var Loader = (_a) => {
2583
- var _b = _a, {
2584
- color,
2585
- size = 16
2586
- } = _b, props = __objRest(_b, [
2587
- "color",
2588
- "size"
2589
- ]);
2590
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2591
- "span",
2592
- __spreadValues({
2593
- className: getClassName2(),
2594
- style: {
2595
- width: size,
2596
- height: size,
2597
- color
2598
- },
2599
- "aria-label": "loading"
2600
- }, props)
2601
- );
2602
- };
2603
-
2604
- // ../core/components/SidebarSection/index.tsx
2605
- var import_jsx_runtime3 = require("react/jsx-runtime");
2606
- var getClassName3 = get_class_name_factory_default("SidebarSection", styles_module_default);
2607
- var SidebarSection = ({
2608
- children,
2609
- title,
2610
- background,
2611
- showBreadcrumbs,
2612
- noBorderTop,
2613
- noPadding,
2614
- isLoading
2615
- }) => {
2616
- const setUi = useAppStore((s) => s.setUi);
2617
- const breadcrumbs = useBreadcrumbs(1);
2618
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
2619
- "div",
2620
- {
2621
- className: getClassName3({ noBorderTop, noPadding }),
2622
- style: { background },
2623
- children: [
2624
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName3("title"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: getClassName3("breadcrumbs"), children: [
2625
- showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: getClassName3("breadcrumb"), children: [
2626
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2627
- "button",
2628
- {
2629
- type: "button",
2630
- className: getClassName3("breadcrumbLabel"),
2631
- onClick: () => setUi({ itemSelector: breadcrumb.selector }),
2632
- children: breadcrumb.label
2633
- }
2634
- ),
2635
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ChevronRight, { size: 16 })
2636
- ] }, i)) : null,
2637
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName3("heading"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Heading, { rank: "2", size: "xs", children: title }) })
2638
- ] }) }),
2639
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName3("content"), children }),
2640
- isLoading && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName3("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Loader, { size: 32 }) })
2641
- ]
2642
- }
2643
- );
2644
- };
2645
-
2646
- // ../core/components/OutlineList/index.tsx
2647
- init_react_import();
2648
-
2649
- // css-module:/home/runner/work/puck/puck/packages/core/components/OutlineList/styles.module.css#css-module
2650
- init_react_import();
2651
- var styles_module_default4 = { "OutlineList": "_OutlineList_w4lzv_1", "OutlineListItem": "_OutlineListItem_w4lzv_25", "OutlineListItem--clickable": "_OutlineListItem--clickable_w4lzv_45" };
2652
-
2653
- // ../core/components/OutlineList/index.tsx
2654
- var import_jsx_runtime4 = require("react/jsx-runtime");
2655
- var getClassName4 = get_class_name_factory_default("OutlineList", styles_module_default4);
2656
- var getClassNameItem = get_class_name_factory_default("OutlineListItem", styles_module_default4);
2657
- var OutlineList = ({ children }) => {
2658
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("ul", { className: getClassName4(), children });
2659
- };
2660
- OutlineList.Clickable = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: getClassNameItem({ clickable: true }), children });
2661
- OutlineList.Item = ({
2662
- children,
2663
- onClick
2664
- }) => {
2665
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
2666
- "li",
2667
- {
2668
- className: getClassNameItem({ clickable: !!onClick }),
2669
- onClick,
2670
- children
2671
- }
2672
- );
2673
- };
2674
-
2675
- // ../core/lib/scroll-into-view.ts
2676
- init_react_import();
2677
- var scrollIntoView = (el) => {
2678
- const oldStyle = __spreadValues({}, el.style);
2679
- el.style.scrollMargin = "256px";
2680
- if (el) {
2681
- el == null ? void 0 : el.scrollIntoView({ behavior: "smooth" });
2682
- el.style.scrollMargin = oldStyle.scrollMargin || "";
2683
- }
2684
- };
2685
-
2686
- // ../core/lib/get-frame.ts
2687
- init_react_import();
2688
- var getFrame = () => {
2689
- if (typeof window === "undefined") return;
2690
- let frameEl = document.querySelector("#preview-frame");
2691
- if ((frameEl == null ? void 0 : frameEl.tagName) === "IFRAME") {
2692
- return frameEl.contentDocument || document;
2693
- }
2694
- return (frameEl == null ? void 0 : frameEl.ownerDocument) || document;
2695
- };
2696
-
2697
2599
  // src/HeadingAnalyzer.tsx
2698
2600
  var import_react_from_json = __toESM(require("react-from-json"));
2699
- var import_jsx_runtime5 = require("react/jsx-runtime");
2700
- var getClassName5 = get_class_name_factory_default("HeadingAnalyzer", HeadingAnalyzer_module_default);
2601
+ var import_jsx_runtime2 = require("react/jsx-runtime");
2602
+ var getClassName2 = get_class_name_factory_default("HeadingAnalyzer", HeadingAnalyzer_module_default);
2701
2603
  var getClassNameItem2 = get_class_name_factory_default("HeadingAnalyzerItem", HeadingAnalyzer_module_default);
2702
2604
  var ReactFromJSON = import_react_from_json.default.default || import_react_from_json.default;
2703
2605
  var getOutline = ({ frame } = {}) => {
@@ -2752,8 +2654,8 @@ function buildHierarchy(frame) {
2752
2654
  var usePuck = (0, import_puck.createUsePuck)();
2753
2655
  var HeadingAnalyzer = () => {
2754
2656
  const data = usePuck((s) => s.appState.data);
2755
- const [hierarchy, setHierarchy] = (0, import_react11.useState)([]);
2756
- (0, import_react11.useEffect)(() => {
2657
+ const [hierarchy, setHierarchy] = (0, import_react10.useState)([]);
2658
+ (0, import_react10.useEffect)(() => {
2757
2659
  const frame = getFrame();
2758
2660
  let entry = frame == null ? void 0 : frame.querySelector(`[data-puck-entry]`);
2759
2661
  const createHierarchy = () => {
@@ -2788,11 +2690,11 @@ var HeadingAnalyzer = () => {
2788
2690
  frameObserver.disconnect();
2789
2691
  };
2790
2692
  }, [data]);
2791
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: getClassName5(), children: [
2792
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
2693
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: getClassName2(), children: [
2694
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
2793
2695
  "small",
2794
2696
  {
2795
- className: getClassName5("cssWarning"),
2697
+ className: getClassName2("cssWarning"),
2796
2698
  style: {
2797
2699
  color: "var(--puck-color-red-04)",
2798
2700
  display: "block",
@@ -2801,19 +2703,19 @@ var HeadingAnalyzer = () => {
2801
2703
  children: [
2802
2704
  "Heading analyzer styles not loaded. Please review the",
2803
2705
  " ",
2804
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("a", { href: "https://github.com/measuredco/puck/blob/main/packages/plugin-heading-analyzer/README.md", children: "README" }),
2706
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("a", { href: "https://github.com/measuredco/puck/blob/main/packages/plugin-heading-analyzer/README.md", children: "README" }),
2805
2707
  "."
2806
2708
  ]
2807
2709
  }
2808
2710
  ),
2809
- hierarchy.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { children: "No headings." }),
2810
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(OutlineList, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
2711
+ hierarchy.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { children: "No headings." }),
2712
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(OutlineList, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2811
2713
  ReactFromJSON,
2812
2714
  {
2813
2715
  mapping: {
2814
- Root: (props) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_jsx_runtime5.Fragment, { children: props.children }),
2815
- OutlineListItem: (props) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(OutlineList.Item, { children: [
2816
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(OutlineList.Clickable, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
2716
+ Root: (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: props.children }),
2717
+ OutlineListItem: (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(OutlineList.Item, { children: [
2718
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(OutlineList.Clickable, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2817
2719
  "small",
2818
2720
  {
2819
2721
  className: getClassNameItem2({ missing: props.missing }),
@@ -2831,14 +2733,14 @@ var HeadingAnalyzer = () => {
2831
2733
  }, 2e3);
2832
2734
  }
2833
2735
  },
2834
- children: props.missing ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
2835
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("b", { children: [
2736
+ children: props.missing ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
2737
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("b", { children: [
2836
2738
  "H",
2837
2739
  props.rank
2838
2740
  ] }),
2839
2741
  ": Missing"
2840
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
2841
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("b", { children: [
2742
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
2743
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("b", { children: [
2842
2744
  "H",
2843
2745
  props.rank
2844
2746
  ] }),
@@ -2847,7 +2749,7 @@ var HeadingAnalyzer = () => {
2847
2749
  ] })
2848
2750
  }
2849
2751
  ) }),
2850
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(OutlineList, { children: props.children })
2752
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(OutlineList, { children: props.children })
2851
2753
  ] })
2852
2754
  },
2853
2755
  entry: {
@@ -2868,12 +2770,10 @@ var HeadingAnalyzer = () => {
2868
2770
  ] });
2869
2771
  };
2870
2772
  var headingAnalyzer = {
2871
- overrides: {
2872
- fields: ({ children, itemSelector }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
2873
- children,
2874
- /* @__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, {}) }) })
2875
- ] })
2876
- }
2773
+ name: "heading-analyzer",
2774
+ label: "Audit",
2775
+ render: HeadingAnalyzer,
2776
+ icon: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Heading1, {})
2877
2777
  };
2878
2778
  var HeadingAnalyzer_default = headingAnalyzer;
2879
2779
  /*! Bundled license information:
@@ -2889,7 +2789,7 @@ lucide-react/dist/esm/shared/src/utils.js:
2889
2789
  lucide-react/dist/esm/defaultAttributes.js:
2890
2790
  lucide-react/dist/esm/Icon.js:
2891
2791
  lucide-react/dist/esm/createLucideIcon.js:
2892
- lucide-react/dist/esm/icons/chevron-right.js:
2792
+ lucide-react/dist/esm/icons/heading-1.js:
2893
2793
  lucide-react/dist/esm/lucide-react.js:
2894
2794
  (**
2895
2795
  * @license lucide-react v0.468.0 - ISC