@bison-lab/payload-blocks 3.20.0 → 3.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -20
- package/dist/admin.d.mts +10 -2
- package/dist/admin.d.mts.map +1 -1
- package/dist/admin.mjs +992 -414
- package/dist/admin.mjs.map +1 -1
- package/dist/{header-CznT9Uwv.mjs → header-CTMSB4C0.mjs} +50 -24
- package/dist/header-CTMSB4C0.mjs.map +1 -0
- package/dist/index.d.mts +24 -12
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +14 -60
- package/dist/index.mjs.map +1 -1
- package/dist/react.d.mts +53 -5
- package/dist/react.d.mts.map +1 -1
- package/dist/react.mjs +2 -2
- package/dist/rich-text.d.mts +1 -1
- package/dist/{types-DWEoAURf.d.mts → types-BwWCwKJ4.d.mts} +15 -5
- package/dist/types-BwWCwKJ4.d.mts.map +1 -0
- package/package.json +4 -4
- package/dist/header-CznT9Uwv.mjs.map +0 -1
- package/dist/types-DWEoAURf.d.mts.map +0 -1
package/dist/react.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { n as newTabAttributes, r as renderLinkWith, t as DefaultBlockLink } from "./link-32261jXB.mjs";
|
|
3
3
|
import { a as overlapsSeam, i as SEAM_PULL_UP, n as OVERLAP_BELOW_CLEARANCE, o as seamClasses, r as SEAM_PULL_DOWN, s as cx, t as OVERLAP_ABOVE_CLEARANCE } from "./seam-Cz7oiQ5z.mjs";
|
|
4
|
-
import {
|
|
4
|
+
import { a as linkTypeOf, i as megaMenuPanelFromRow, n as headerItemsFromBlocks, r as MegaMenuBlockRenderer, s as resolveLink, t as headerFromNavigation } from "./header-CTMSB4C0.mjs";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { Button, FAQColumnsBlock, JsonLd, NapBlock, ProcessStepsBlock, ShowcasePanelsBlock, StatsBandBlock, TestimonialMasonry } from "@bison-lab/ui";
|
|
7
7
|
//#region src/image.tsx
|
|
@@ -457,6 +457,6 @@ function StatsBandBlockRenderer({ block, index, isLast, overlapAbove, overlapBel
|
|
|
457
457
|
});
|
|
458
458
|
}
|
|
459
459
|
//#endregion
|
|
460
|
-
export { BLOCK_ID_ATTRIBUTE, DEFAULT_CONTAINER, DefaultBlockImage, DefaultBlockLink, FaqColumnsBlockRenderer, HeroBlockRenderer, MegaMenuBlockRenderer, NapBlockRenderer, OVERLAP_ABOVE_CLEARANCE, OVERLAP_BELOW_CLEARANCE, ProcessStepsBlockRenderer, RenderBlocks, SEAM_PULL_DOWN, SEAM_PULL_UP, ShowcasePanelsBlockRenderer, StatsBandBlockRenderer, TestimonialMasonryBlockRenderer, headerItemsFromBlocks, linkTypeOf, megaMenuPanelFromRow, newTabAttributes, overlapsSeam, renderLinkWith, resolveLink, seamClasses };
|
|
460
|
+
export { BLOCK_ID_ATTRIBUTE, DEFAULT_CONTAINER, DefaultBlockImage, DefaultBlockLink, FaqColumnsBlockRenderer, HeroBlockRenderer, MegaMenuBlockRenderer, NapBlockRenderer, OVERLAP_ABOVE_CLEARANCE, OVERLAP_BELOW_CLEARANCE, ProcessStepsBlockRenderer, RenderBlocks, SEAM_PULL_DOWN, SEAM_PULL_UP, ShowcasePanelsBlockRenderer, StatsBandBlockRenderer, TestimonialMasonryBlockRenderer, headerFromNavigation, headerItemsFromBlocks, linkTypeOf, megaMenuPanelFromRow, newTabAttributes, overlapsSeam, renderLinkWith, resolveLink, seamClasses };
|
|
461
461
|
|
|
462
462
|
//# sourceMappingURL=react.mjs.map
|
package/dist/rich-text.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
2
|
+
import { S as ResolveLink, c as RichTextBlockData, h as BlockRendererProps } from "./types-BwWCwKJ4.mjs";
|
|
3
3
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
4
|
import { SerializedLinkNode } from "@payloadcms/richtext-lexical";
|
|
5
5
|
|
|
@@ -122,6 +122,7 @@ interface LinkDestination {
|
|
|
122
122
|
}
|
|
123
123
|
/** The shape `linkField`/`linkFields` produce once Payload generates types. */
|
|
124
124
|
interface LinkValue extends LinkDestination {
|
|
125
|
+
enabled?: boolean | null;
|
|
125
126
|
label?: string | null;
|
|
126
127
|
newTab?: boolean | null;
|
|
127
128
|
}
|
|
@@ -477,7 +478,6 @@ interface MegaMenuSectionData {
|
|
|
477
478
|
}
|
|
478
479
|
interface MegaMenuColumnData {
|
|
479
480
|
width?: ("25" | "33" | "50" | "66" | "75" | "100") | null;
|
|
480
|
-
customWidth?: string | null;
|
|
481
481
|
divider?: boolean | null;
|
|
482
482
|
sections?: MegaMenuSectionData[] | null;
|
|
483
483
|
id?: string | null;
|
|
@@ -492,11 +492,21 @@ interface MegaMenuBlockData extends BlockRow<"megaMenu">, LinkDestination {
|
|
|
492
492
|
overview?: LinkValue;
|
|
493
493
|
cta?: LinkValue;
|
|
494
494
|
};
|
|
495
|
-
customWidths?: boolean | null; /** In rem: "30" or "30rem". */
|
|
496
|
-
customMaxWidth?: string | null;
|
|
497
495
|
};
|
|
498
496
|
}
|
|
499
497
|
interface NavLinkBlockData extends BlockRow<"navLink">, LinkValue {}
|
|
498
|
+
/**
|
|
499
|
+
* Header `bar` settings. Featured looks are not here: they come from
|
|
500
|
+
* chrome roles (BIS-85 / SPI-89). Hidden in the admin (BIS-121); a
|
|
501
|
+
* site without the consume bump (SPI-99) still reads them through
|
|
502
|
+
* `headerFromNavigation`. Locked against `createNavigation` in
|
|
503
|
+
* `configs.test.ts`.
|
|
504
|
+
*/
|
|
505
|
+
interface NavigationSettingsData {
|
|
506
|
+
hideOnScroll?: boolean | null;
|
|
507
|
+
viewport?: boolean | null;
|
|
508
|
+
defaultMaxWidth?: ("narrow" | "standard" | "wide") | null;
|
|
509
|
+
}
|
|
500
510
|
//#endregion
|
|
501
|
-
export {
|
|
502
|
-
//# sourceMappingURL=types-
|
|
511
|
+
export { BlockImageComponent as A, linkTypeOf as C, DefaultBlockLink as D, BlockLinkProps as E, DefaultBlockImage as M, newTabAttributes as O, ResolveLink as S, BlockLinkComponent as T, RenderBlocks as _, NavLinkBlockData as a, LinkPageDoc as b, RichTextBlockData as c, TestimonialMasonryBlockData as d, BLOCK_ID_ATTRIBUTE as f, DEFAULT_CONTAINER as g, BlockRendererProps as h, NapBlockData as i, BlockImageProps as j, renderLinkWith as k, ShowcasePanelsBlockData as l, BlockRegistryFor as m, HeroBlockData as n, NavigationSettingsData as o, BlockLike as p, MegaMenuBlockData as r, ProcessStepsBlockData as s, FaqColumnsBlockData as t, StatsBandBlockData as u, RenderBlocksProps as v, resolveLink$1 as w, LinkValue as x, LinkDestination as y };
|
|
512
|
+
//# sourceMappingURL=types-BwWCwKJ4.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-BwWCwKJ4.d.mts","names":[],"sources":["../src/image.tsx","../src/link.tsx","../src/fields/link.ts","../src/render-blocks.tsx","../src/media.ts","../src/types.ts"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bison-lab/payload-blocks",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.22.0",
|
|
4
4
|
"description": "Payload CMS block configs and renderers for the Bison Lab marketing blocks",
|
|
5
5
|
"homepage": "https://components.bisonlab.ai",
|
|
6
6
|
"repository": {
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"dist"
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@bison-lab/admin-ui": "3.
|
|
39
|
+
"@bison-lab/admin-ui": "3.22.0"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"@bison-lab/payload-core": "^3.0.0",
|
|
@@ -78,8 +78,8 @@
|
|
|
78
78
|
"tsdown": "^0.21.0",
|
|
79
79
|
"typescript": "^5.9.3",
|
|
80
80
|
"vitest": "^4.1.2",
|
|
81
|
-
"@bison-lab/payload-core": "3.
|
|
82
|
-
"@bison-lab/ui": "3.
|
|
81
|
+
"@bison-lab/payload-core": "3.22.0",
|
|
82
|
+
"@bison-lab/ui": "3.22.0"
|
|
83
83
|
},
|
|
84
84
|
"publishConfig": {
|
|
85
85
|
"access": "public"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"header-CznT9Uwv.mjs","names":[],"sources":["../src/fields/link.ts","../src/blocks/mega-menu/rem-width.ts","../src/blocks/mega-menu/component.tsx","../src/blocks/mega-menu/header.tsx"],"sourcesContent":["import type { Condition, Field, GroupField, RowField } from \"payload\";\n\n/**\n * The import-map path of the link picker, `LinkField` in\n * `@bison-lab/payload-blocks/admin`.\n *\n * It sits on the row that holds a link's `type`, `page` and `href`, and\n * replaces those three inputs with one box: type to search published pages,\n * or paste a URL. Referenced here by package specifier, like\n * `MIN_ROWS_ARRAY_FIELD`; a site picks it up with `payload generate:importmap`.\n * Until it does, Payload logs the missing entry and renders the row as\n * nothing (a custom `Field` with no component behind it is an empty element,\n * not the stock fields), so the step is part of adopting this release.\n */\nexport const LINK_FIELD = \"@bison-lab/payload-blocks/admin#LinkField\";\n\nexport type LinkType = \"page\" | \"external\";\n\n/**\n * A page as the `page` relationship populates it: what `resolveLink` reads,\n * and what the picker shows. A site's generated `Page` is assignable to it.\n * `_status` is absent on a collection without drafts, which counts as\n * published.\n */\nexport interface LinkPageDoc {\n id: number | string;\n title?: string | null;\n slug?: string | null;\n _status?: (\"draft\" | \"published\") | null;\n}\n\n/** Where a link goes: the three fields the picker writes. */\nexport interface LinkDestination {\n /** `page` unless the editor pasted a URL. Rows saved before links had a type carry only `href`. */\n type?: LinkType | null;\n /** The page's id, or the page itself once a `depth >= 1` read populates it. */\n page?: LinkPageDoc | number | string | null;\n /** The pasted URL of an external link. */\n href?: string | null;\n}\n\n/** The shape `linkField`/`linkFields` produce once Payload generates types. */\nexport interface LinkValue extends LinkDestination {\n label?: string | null;\n newTab?: boolean | null;\n}\n\n/**\n * Turns a link's destination into the `href` a renderer emits, or `null`\n * when there is nothing to point at, in which case the renderer shows the\n * label as text. A site passes its own (`RenderBlocks`' `resolveLink`) when\n * a page's path is not `/<slug>`: the package has no way to know a site's\n * routes, the same reason it takes an `imageComponent`.\n */\nexport type ResolveLink = (link: LinkDestination) => string | null;\n\n/**\n * The package's resolver: a published, populated page is `/<slug>`; an\n * external link is its `href` as typed.\n *\n * A page that did not populate is `null`: Payload hands the public read the\n * bare id when the reader may not see the page, which is what an unpublished\n * page looks like from the site. A populated page whose `_status` is `draft`\n * is `null` too, for a read that can see drafts. A row from before links had\n * a `type` is an external link by `linkTypeOf`, here, in the stock fields'\n * conditions and in the picker alike: the site keeps rendering its `href`,\n * the admin shows it as an External chip, and the site's migration to\n * `type: external` only makes the stored row say what every reader already\n * assumes.\n */\nexport function resolveLink(\n link: LinkDestination | null | undefined,\n): string | null {\n if (!link) return null;\n if (linkTypeOf(link) === \"page\") {\n const page = link.page;\n if (!page || typeof page !== \"object\") return null;\n if (page._status === \"draft\") return null;\n return page.slug ? `/${page.slug}` : null;\n }\n return link.href ? link.href : null;\n}\n\n/**\n * Preview resolver for the Header items kit. `LinkField` stores a page as\n * its id; the public `resolveLink` treats that as unpublished. The editor\n * looks the id up (or uses a populated draft) so the sticky bar still\n * shows the destination the picker chose.\n */\nexport function resolveAdminPreviewLink(\n link: LinkDestination | null | undefined,\n pages: ReadonlyMap<string, LinkPageDoc>,\n): string | null {\n const live = resolveLink(link);\n if (live) return live;\n if (!link || linkTypeOf(link) !== \"page\") return null;\n const page = link.page;\n if (page && typeof page === \"object\") {\n return page.slug ? `/${page.slug}` : null;\n }\n if (page == null) return null;\n const doc = pages.get(String(page));\n return doc?.slug ? `/${doc.slug}` : null;\n}\n\n/**\n * Which of the two stored destinations a row is using. `type` decides; a row\n * with no `type` yet (saved before links had one) is read by what it holds,\n * an `href` making it external, the same reading `resolveLink` and the picker\n * make, so all three agree on every row.\n */\nexport function linkTypeOf(link: LinkDestination | null | undefined): LinkType {\n if (link?.type === \"external\") return \"external\";\n if (link?.type === \"page\") return \"page\";\n return link?.href ? \"external\" : \"page\";\n}\n\nconst whenPage: Condition = (_data, siblingData) =>\n linkTypeOf(siblingData as LinkDestination) === \"page\";\n\nconst whenExternal: Condition = (_data, siblingData) =>\n linkTypeOf(siblingData as LinkDestination) === \"external\";\n\nexport interface LinkDestinationOptions {\n /** Require a destination. Defaults to `false`. */\n required?: boolean;\n /** The collection a page link points into. Defaults to `pages`. */\n pagesCollection?: string;\n}\n\n/**\n * Where a link goes, as stored: `type`, `page` and `href` in one row.\n *\n * The row carries the picker (`LINK_FIELD`), which replaces all three inputs\n * with one box. The stored fields are the website template's shape and stay\n * editable on their own: `page` shows for a page link, `href` for an external\n * one, and `required` binds whichever is active, since Payload skips\n * validation on a field whose condition is false. `page` offers published\n * rows only, and Payload re-checks that on publish, so a page that was\n * unpublished after being picked has to be picked again or republished.\n */\nexport function linkDestinationFields({\n required = false,\n pagesCollection = \"pages\",\n}: LinkDestinationOptions = {}): RowField[] {\n return [\n {\n type: \"row\",\n admin: { components: { Field: LINK_FIELD } },\n fields: [\n {\n name: \"type\",\n type: \"radio\",\n label: \"Goes to\",\n defaultValue: \"page\",\n options: [\n { label: \"Page\", value: \"page\" },\n { label: \"URL\", value: \"external\" },\n ],\n admin: { layout: \"horizontal\" },\n },\n {\n name: \"page\",\n type: \"relationship\",\n relationTo: pagesCollection,\n required,\n filterOptions: { _status: { equals: \"published\" } },\n admin: { condition: whenPage },\n },\n {\n name: \"href\",\n type: \"text\",\n label: \"URL\",\n required,\n admin: {\n condition: whenExternal,\n description:\n 'A full URL (\"https://example.com\"), \"mailto:\" or \"tel:\", or a site path (\"/contact\").',\n },\n },\n ],\n },\n ];\n}\n\nexport interface LinkFieldsOptions extends LinkDestinationOptions {\n /** Require the label and destination. Defaults to `false`. */\n required?: boolean;\n /** Wording for the visible text field. Defaults to \"Label\". */\n labelFieldLabel?: string;\n}\n\n/**\n * The fields a call to action is made of, unwrapped: the destination row,\n * then the label and the new-tab flag.\n *\n * `newTab` drives `target=\"_blank\"` *and* the matching `rel`, which is why no\n * renderer takes one without the other.\n */\nexport function linkFields({\n required = false,\n labelFieldLabel = \"Label\",\n pagesCollection,\n}: LinkFieldsOptions = {}): Field[] {\n return [\n ...linkDestinationFields({ required, pagesCollection }),\n { name: \"label\", type: \"text\", label: labelFieldLabel, required },\n {\n name: \"newTab\",\n type: \"checkbox\",\n label: \"Open in a new tab\",\n defaultValue: false,\n },\n ];\n}\n\nexport interface LinkFieldOptions extends LinkFieldsOptions {\n /** Field name. Defaults to `link`. */\n name?: string;\n label?: GroupField[\"label\"];\n admin?: GroupField[\"admin\"];\n}\n\n/** `linkFields()` as one named group, for a block with a single CTA. */\nexport function linkField({\n name = \"link\",\n label,\n admin,\n ...rest\n}: LinkFieldOptions = {}): GroupField {\n return {\n name,\n type: \"group\",\n fields: linkFields(rest),\n ...(label === undefined ? {} : { label }),\n ...(admin === undefined ? {} : { admin }),\n };\n}\n","/**\n * The one rule for a typed panel width, shared by the config's validator and\n * the renderer's reader so the two cannot drift: if the validator accepted a\n * value the renderer dropped, the editor would be back to a width that\n * silently does nothing. React-free, because `config.ts` ships from the Node\n * entry.\n */\nconst REM_WIDTH = /^\\s*(\\d+(?:\\.\\d+)?)\\s*(rem)?\\s*$/;\n\n/** \"30\" and \"30rem\" both mean 30rem; anything else is not a width. */\nexport function remWidth(\n value: string | null | undefined,\n): `${number}rem` | null {\n const match = REM_WIDTH.exec(value ?? \"\");\n return match ? (`${Number(match[1])}rem` as `${number}rem`) : null;\n}\n","import {\n MegaMenuPanel,\n type MegaMenuColumn,\n type MegaMenuIcons,\n type MegaMenuLink,\n type MegaMenuPanelData,\n type MegaMenuSection,\n type MegaMenuVariants,\n type MegaMenuWidth,\n} from \"@bison-lab/ui\";\n\nimport { resolveLink, type LinkValue, type ResolveLink } from \"../../fields/link\";\nimport { renderLinkWith } from \"../../link\";\nimport type { BlockRendererProps } from \"../../render-blocks\";\nimport type { MegaMenuBlockData, MegaMenuLinkData } from \"../../types\";\nimport { remWidth } from \"./rem-width\";\n\n/**\n * A menu link needs both halves. Unlike a call to action, a link whose page\n * is missing or unpublished is dropped rather than shown as text: a menu\n * item that goes nowhere is worse than one fewer item.\n */\nfunction completeLink(\n row: MegaMenuLinkData,\n resolve: ResolveLink,\n): MegaMenuLink | null {\n const href = resolve(row);\n if (!row.label || !href) return null;\n return {\n label: row.label,\n href,\n ...(row.description ? { description: row.description } : {}),\n ...(row.variant ? { variant: row.variant } : {}),\n ...(row.icon ? { icon: row.icon } : {}),\n ...(row.newTab ? { newTab: true } : {}),\n };\n}\n\n/**\n * The row as `MegaMenuPanel` data, or `null` when there is nothing to open:\n * no columns, or columns whose links are not yet complete. Draft saves skip\n * validation, so a live preview genuinely hands this half-built rows.\n * `resolve` turns each link's page into a path; the package's own is the\n * default.\n */\nexport function megaMenuPanelFromRow(\n row: MegaMenuBlockData,\n resolve: ResolveLink = resolveLink,\n): MegaMenuPanelData | null {\n const panel = row.panel;\n if (!panel?.columns?.length) return null;\n const custom = Boolean(panel.customWidths);\n\n const columns: MegaMenuColumn[] = [];\n for (const column of panel.columns) {\n const sections: MegaMenuSection[] = [];\n for (const section of column.sections ?? []) {\n const links = (section.links ?? [])\n .map((link) => completeLink(link, resolve))\n .filter((link): link is MegaMenuLink => link !== null);\n if (!links.length) continue;\n sections.push({\n ...(section.eyebrow ? { eyebrow: section.eyebrow } : {}),\n display: section.display ?? \"list\",\n hideDescriptionsOnMobile: section.hideDescriptionsOnMobile ?? true,\n links,\n });\n }\n columns.push({\n ...(custom && column.customWidth\n ? { customWidth: column.customWidth }\n : { width: Number(column.width ?? \"100\") as MegaMenuWidth }),\n ...(column.divider ? { divider: true } : {}),\n sections,\n });\n }\n if (!columns.some((column) => column.sections.length)) return null;\n\n const overview = footerLink(panel.footer?.overview, resolve);\n const cta = footerLink(panel.footer?.cta, resolve);\n // Independent of the column checkbox: the config gates only `customWidth`\n // on it, and the help text promises a typed panel width is used.\n const customMax = remWidth(panel.customMaxWidth);\n\n return {\n maxWidth: customMax ?? panel.maxWidth ?? \"standard\",\n columns,\n footer: {\n ...(overview ? { overview } : {}),\n ...(cta ? { cta } : {}),\n },\n };\n}\n\n/** A footer link, complete, or nothing: same rule as `completeLink`. */\nfunction footerLink(\n row: LinkValue | undefined,\n resolve: ResolveLink,\n): { label: string; href: string; newTab?: true } | null {\n const href = row ? resolve(row) : null;\n if (!row?.label || !href) return null;\n return {\n label: row.label,\n href,\n ...(row.newTab ? { newTab: true } : {}),\n };\n}\n\nexport interface MegaMenuBlockRendererProps\n extends BlockRendererProps<MegaMenuBlockData> {\n /** The look behind each `variants` value the site passed to `megaMenuBlock`. */\n variants?: MegaMenuVariants;\n /** The glyph behind each `icons` value the site passed to `megaMenuBlock`. */\n icons?: MegaMenuIcons;\n}\n\n/**\n * One panel, standing alone: what a live preview shows while the row is being\n * edited. A whole header goes through `headerItemsFromBlocks` instead.\n */\nexport function MegaMenuBlockRenderer({\n block,\n linkComponent,\n resolveLink: resolve,\n variants,\n icons,\n}: MegaMenuBlockRendererProps) {\n const panel = megaMenuPanelFromRow(block, resolve);\n if (!panel) return null;\n return (\n <MegaMenuPanel\n {...panel}\n variants={variants}\n icons={icons}\n renderLink={renderLinkWith(linkComponent)}\n />\n );\n}\n","import {\n megaMenuToFloatingNavItems,\n type FloatingNavItem,\n type MegaMenuIcons,\n type MegaMenuItem,\n type MegaMenuVariants,\n} from \"@bison-lab/ui\";\n\nimport { resolveLink, type ResolveLink } from \"../../fields/link\";\nimport { renderLinkWith, type BlockLinkComponent } from \"../../link\";\nimport type { MegaMenuBlockData, NavLinkBlockData } from \"../../types\";\nimport { megaMenuPanelFromRow } from \"./component\";\n\n/** A row of a header global's `items`: either block, or whatever else a site added. */\nexport type HeaderBlockRow = MegaMenuBlockData | NavLinkBlockData;\n\nexport interface HeaderItemsOptions {\n variants?: MegaMenuVariants;\n icons?: MegaMenuIcons;\n /** Marks the current section; receives each item's `href`. */\n isActive?: (href: string) => boolean;\n /** The site's link adapter, applied to every link inside the panels. */\n linkComponent?: BlockLinkComponent;\n /** The site's resolver for page links; defaults to the package's `resolveLink`. */\n resolveLink?: ResolveLink;\n}\n\n/**\n * A global's `items` as `FloatingNavBlock` items, so a site's header is one\n * call. Rows the bar cannot show are dropped rather than rendered broken: a\n * row with no label, a mega menu with nothing to open, and any block type a\n * site added that this package does not know.\n *\n * A `navLink` row's `newTab` is not carried: `FloatingNavItem` has no such\n * field, because the bar renders its own links. A bar item whose page is\n * missing or unpublished is dropped, like a panel link. A mega menu's\n * landing page goes through the same resolver: unpublished or missing\n * pages omit the trigger `href` and keep the panel.\n */\nexport function headerItemsFromBlocks(\n blocks: HeaderBlockRow[],\n {\n variants,\n icons,\n isActive,\n linkComponent,\n resolveLink: resolve = resolveLink,\n }: HeaderItemsOptions = {},\n): FloatingNavItem[] {\n const items: MegaMenuItem[] = [];\n for (const row of blocks) {\n if (!row.label) continue;\n if (row.blockType === \"navLink\") {\n const href = resolve(row);\n if (!href) continue;\n items.push({ label: row.label, href });\n } else if (row.blockType === \"megaMenu\") {\n const panel = megaMenuPanelFromRow(row, resolve);\n if (!panel) continue;\n const href = resolve(row);\n items.push({\n label: row.label,\n ...(href ? { href } : {}),\n panel,\n });\n }\n }\n return megaMenuToFloatingNavItems(\n { items },\n {\n isActive,\n variants,\n icons,\n ...(linkComponent ? { renderLink: renderLinkWith(linkComponent) } : {}),\n },\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types-DWEoAURf.d.mts","names":[],"sources":["../src/image.tsx","../src/link.tsx","../src/fields/link.ts","../src/render-blocks.tsx","../src/media.ts","../src/types.ts"],"mappings":"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"}
|