@bison-lab/payload-blocks 3.0.0 → 3.2.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 +146 -1
- package/dist/index.d.mts +156 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +856 -1
- package/dist/index.mjs.map +1 -1
- package/dist/react.d.mts +64 -7
- package/dist/react.d.mts.map +1 -1
- package/dist/react.mjs +182 -15
- package/dist/react.mjs.map +1 -1
- package/dist/rich-text.d.mts +1 -1
- package/dist/{types-BBumyFd-.d.mts → types-CJAvoZMk.d.mts} +97 -7
- package/dist/types-CJAvoZMk.d.mts.map +1 -0
- package/package.json +2 -2
- package/dist/types-BBumyFd-.d.mts.map +0 -1
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ Payload site already has).
|
|
|
20
20
|
| Import | Contents | Runs where |
|
|
21
21
|
| --- | --- | --- |
|
|
22
22
|
| `@bison-lab/payload-blocks` | Block configs, field builders, row types, `resolveMedia` | Node. This is what `payload.config.ts` imports, and it touches no React. |
|
|
23
|
-
| `@bison-lab/payload-blocks/react` | Renderers, `RenderBlocks`, the rendering types | Client (`"use client"`). |
|
|
23
|
+
| `@bison-lab/payload-blocks/react` | Renderers, `RenderBlocks`, the image and link seams, the rendering types | Client (`"use client"`). |
|
|
24
24
|
| `@bison-lab/payload-blocks/rich-text` | The `richText` renderer, alone | Client. Split out because it is the only thing that needs `@payloadcms/richtext-lexical`. |
|
|
25
25
|
| `@bison-lab/payload-blocks/admin` | `MinRowsArrayField`, the admin field the configs reference by path | Client, inside the Payload admin. Resolved through the site's import map, never imported by hand. |
|
|
26
26
|
|
|
@@ -130,6 +130,7 @@ renderer. Never widen that type to get past the error; add the entry.
|
|
|
130
130
|
registry={blockRegistry}
|
|
131
131
|
containerClassName={CONTAINER}
|
|
132
132
|
imageComponent={NextBlockImage}
|
|
133
|
+
linkComponent={NextBlockLink}
|
|
133
134
|
/>
|
|
134
135
|
```
|
|
135
136
|
|
|
@@ -156,6 +157,96 @@ Uploads are served from `/api/media/file/…`, so widen `next.config.ts`
|
|
|
156
157
|
`images.localPatterns` (or `remotePatterns`) to match before any CMS image
|
|
157
158
|
renders.
|
|
158
159
|
|
|
160
|
+
`linkComponent` is the same seam for links. No renderer writes an `<a>`
|
|
161
|
+
itself: every `href` a block emits — a hero call to action, a showcase panel's
|
|
162
|
+
corner action, a NAP `tel:` link, a menu — goes through the component you pass,
|
|
163
|
+
so a Next site's navigation stays client-side. `newTab` arrives as a flag
|
|
164
|
+
**and** as `target`/`rel` already expanded from it, so the adapter only has to
|
|
165
|
+
drop the flag before spreading:
|
|
166
|
+
|
|
167
|
+
```tsx
|
|
168
|
+
'use client'
|
|
169
|
+
import Link from 'next/link'
|
|
170
|
+
import type { BlockLinkComponent } from '@bison-lab/payload-blocks/react'
|
|
171
|
+
|
|
172
|
+
export const NextBlockLink: BlockLinkComponent = ({ newTab, ...props }) => <Link {...props} />
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Without one, `DefaultBlockLink` renders a plain anchor and sets `target` and
|
|
176
|
+
`rel` together whenever `newTab` is on.
|
|
177
|
+
|
|
178
|
+
## Wiring a header
|
|
179
|
+
|
|
180
|
+
Two more blocks build a header rather than a page: `megaMenuBlock` and
|
|
181
|
+
`LinkBlock`. They go in a global's `items` array, and the site owns that
|
|
182
|
+
global. `megaMenuBlock` is a factory because the featured-link variants and
|
|
183
|
+
the icon list are the site's — the CMS only ever offers approved values:
|
|
184
|
+
|
|
185
|
+
```ts
|
|
186
|
+
import { LinkBlock, megaMenuBlock } from '@bison-lab/payload-blocks'
|
|
187
|
+
|
|
188
|
+
export const Navigation: GlobalConfig = {
|
|
189
|
+
slug: 'navigation',
|
|
190
|
+
fields: [
|
|
191
|
+
{
|
|
192
|
+
name: 'items',
|
|
193
|
+
type: 'blocks',
|
|
194
|
+
blocks: [
|
|
195
|
+
megaMenuBlock({
|
|
196
|
+
variants: [
|
|
197
|
+
{ label: 'Lumbar', value: 'lumbar' },
|
|
198
|
+
{ label: 'SI joint', value: 'si' },
|
|
199
|
+
],
|
|
200
|
+
icons: [{ label: 'Help', value: 'help' }],
|
|
201
|
+
}),
|
|
202
|
+
LinkBlock,
|
|
203
|
+
],
|
|
204
|
+
},
|
|
205
|
+
],
|
|
206
|
+
}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Then `payload generate:types` and `payload migrate:create`.
|
|
210
|
+
|
|
211
|
+
An editor sees: label, landing page, the panel's max width, one to four
|
|
212
|
+
columns (each a width, an optional divider, and sections of links), a footer
|
|
213
|
+
with an overview link and a call to action, and an **Advanced** collapsible
|
|
214
|
+
for CSS widths. The column widths, read as fractions, must add up to 100%:
|
|
215
|
+
the rule is the array's own `validate`, so the editor sees "The columns add
|
|
216
|
+
up to 75%. They need to add up to 100%." as they build, and the global's
|
|
217
|
+
publish refuses the same. Custom widths skip it.
|
|
218
|
+
|
|
219
|
+
In the site header, one call turns the rows into `FloatingNavBlock` items.
|
|
220
|
+
The variants and icons here are the looks behind the values above:
|
|
221
|
+
|
|
222
|
+
```tsx
|
|
223
|
+
'use client'
|
|
224
|
+
import { FloatingNavBlock } from '@bison-lab/ui'
|
|
225
|
+
import { headerItemsFromBlocks } from '@bison-lab/payload-blocks/react'
|
|
226
|
+
import { usePathname } from 'next/navigation'
|
|
227
|
+
|
|
228
|
+
export function SiteHeader({ items }: { items: Navigation['items'] }) {
|
|
229
|
+
const pathname = usePathname()
|
|
230
|
+
return (
|
|
231
|
+
<FloatingNavBlock
|
|
232
|
+
breakpoint="lg" // the panel flattens below lg; the bar must switch there too
|
|
233
|
+
items={headerItemsFromBlocks(items, {
|
|
234
|
+
variants: { lumbar: { chip: '…', title: '…', icon: <Marker region="lumbar" /> }, si: { … } },
|
|
235
|
+
icons: { help: <CircleHelp className="size-4" aria-hidden /> },
|
|
236
|
+
isActive: (href) => pathname.startsWith(href),
|
|
237
|
+
linkComponent: NextBlockLink,
|
|
238
|
+
})}
|
|
239
|
+
renderLink={({ href, children, ...rest }) => <Link href={href} {...rest}>{children}</Link>}
|
|
240
|
+
/>
|
|
241
|
+
)
|
|
242
|
+
}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
`MegaMenuBlockRenderer` renders one panel on its own, which is what a live
|
|
246
|
+
preview of the row wants; it is not a page block and has no place in the
|
|
247
|
+
registry. A row with no columns, or whose columns hold no complete links,
|
|
248
|
+
renders nothing, and `headerItemsFromBlocks` drops it.
|
|
249
|
+
|
|
159
250
|
## Blocks
|
|
160
251
|
|
|
161
252
|
| Slug | Renders | Notes |
|
|
@@ -167,11 +258,55 @@ renders.
|
|
|
167
258
|
| `faqColumns` | `FAQColumnsBlock` | Answers are plain text, not Lexical — see the config for why. |
|
|
168
259
|
| `testimonialMasonry` | `TestimonialMasonry` | Avatars fall back to initials. |
|
|
169
260
|
| `nap` | `NapBlock` + `JsonLd` | Emits schema.org `LocalBusiness`; `phoneE164` is what the `tel:` link uses. |
|
|
261
|
+
| `megaMenu` | `MegaMenuPanel` | A header block, from `megaMenuBlock({ variants, icons })`. See "Wiring a header". |
|
|
262
|
+
| `navLink` | — | A header block: a plain bar item. `headerItemsFromBlocks` maps it. |
|
|
170
263
|
|
|
171
264
|
A row whose upload has not resolved is dropped rather than rendered empty, and a
|
|
172
265
|
block left with nothing to show renders nothing at all. Draft saves skip Payload
|
|
173
266
|
validation, so live preview genuinely hands renderers incomplete rows.
|
|
174
267
|
|
|
268
|
+
## Samples
|
|
269
|
+
|
|
270
|
+
Every block ships a sample row, so it can be rendered with no CMS behind it:
|
|
271
|
+
|
|
272
|
+
```ts
|
|
273
|
+
import { blockSamples } from '@bison-lab/payload-blocks'
|
|
274
|
+
|
|
275
|
+
blockSamples.showcasePanels // a ShowcasePanelsBlockData with three panels
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
`blockSamples` is one map keyed by `blockType`, typed per block
|
|
279
|
+
(`BlockSamples`) and assignable to `Record<BisonBlockType, BisonBlockData>`.
|
|
280
|
+
The header blocks are in it too: `megaMenu` renders through
|
|
281
|
+
`MegaMenuBlockRenderer`, and its sample fits a config built with
|
|
282
|
+
`megaMenuBlock(megaMenuSampleOptions)`, the options it was written against;
|
|
283
|
+
`navLink` is data only.
|
|
284
|
+
It comes from the main entry and is React-free, so a Global's field config and
|
|
285
|
+
a route handler can both read it. The Block library page that renders these
|
|
286
|
+
live for an admin is a separate piece of work (BIS-52); this package ships the
|
|
287
|
+
data, not the page.
|
|
288
|
+
|
|
289
|
+
Each sample has realistic copy at the length the layout was designed for
|
|
290
|
+
(three showcase panels, four process steps, six testimonials), and sets every
|
|
291
|
+
field its config has at least once, so a preview shows the block's full range.
|
|
292
|
+
|
|
293
|
+
**Images travel with the sample.** No site media exists in a preview, so every
|
|
294
|
+
upload in a sample is an inline SVG `data:` URL in the `MediaDoc` shape, with
|
|
295
|
+
`width` and `height` set. `resolveMedia` accepts it as-is, and the `data:`
|
|
296
|
+
scheme is how an adapter knows what it has: `next/image` marks a `data:` src
|
|
297
|
+
`unoptimized` by itself, so the adapter above needs no special case. A site
|
|
298
|
+
that wants the same placeholders for its own blocks can build them with
|
|
299
|
+
`sampleImage({ label, width, height, alt })`.
|
|
300
|
+
|
|
301
|
+
The `nap` sample sets `emitJsonLd: false`. The block emits schema.org
|
|
302
|
+
`LocalBusiness` by default, and a preview must not put a fictional clinic into
|
|
303
|
+
a site's structured data.
|
|
304
|
+
|
|
305
|
+
Only what this package ships has a sample here. A site's own blocks supply
|
|
306
|
+
theirs through the Block library factory, whose option BIS-52 names. The hero
|
|
307
|
+
family (BIS-45) adds a sample per hero as each one lands; the plain `hero`
|
|
308
|
+
renderer's is here.
|
|
309
|
+
|
|
175
310
|
## Conventions for contributors
|
|
176
311
|
|
|
177
312
|
- **No generated types.** `src/types.ts` hand-writes each block's row shape to
|
|
@@ -192,3 +327,13 @@ validation, so live preview genuinely hands renderers incomplete rows.
|
|
|
192
327
|
- **Changing a field is a schema change in every consuming site.** Update
|
|
193
328
|
`src/types.ts` and the field-name lock in `src/__tests__/configs.test.ts` in
|
|
194
329
|
the same change, and say "run `payload migrate:create`" in the changeset.
|
|
330
|
+
- **Every block ships a sample.** A new block adds `src/blocks/<slug>/sample.ts`
|
|
331
|
+
beside its `config.ts` and `component.tsx`, typed to its row shape, using
|
|
332
|
+
`sampleImage` for every upload, and registers it in `src/samples.ts`.
|
|
333
|
+
`src/__tests__/samples.test.tsx` fails until it does, and again if the sample
|
|
334
|
+
leaves a config field unset. A new field on an existing block means its
|
|
335
|
+
sample sets that field too.
|
|
336
|
+
- **A factory block takes only what the site must decide.** `megaMenuBlock`
|
|
337
|
+
takes the approved variants and icons and nothing else; a select whose
|
|
338
|
+
options come from the site is omitted when the site passes none, so the
|
|
339
|
+
field-name lock tests the factory with both lists given.
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Block, CollectionSlug, Field, GroupField, UploadField } from "payload";
|
|
1
|
+
import { ArrayFieldValidation, Block, CollectionSlug, Field, GroupField, TextFieldSingleValidation, UploadField } from "payload";
|
|
2
2
|
|
|
3
3
|
//#region src/blocks/hero/config.d.ts
|
|
4
4
|
/**
|
|
@@ -43,6 +43,51 @@ declare const TestimonialMasonryBlock: Block;
|
|
|
43
43
|
*/
|
|
44
44
|
declare const NapBlock: Block;
|
|
45
45
|
//#endregion
|
|
46
|
+
//#region src/blocks/mega-menu/config.d.ts
|
|
47
|
+
/**
|
|
48
|
+
* The blocks a header global's `items` array takes.
|
|
49
|
+
*
|
|
50
|
+
* `megaMenuBlock({ variants, icons })` is the first factory-built block in the
|
|
51
|
+
* package. Every other config is a static `Block`; this one cannot be, because
|
|
52
|
+
* the featured-link variants and the icon list are the site's: the CMS only
|
|
53
|
+
* ever offers approved values, the same rule the sites use for block
|
|
54
|
+
* backgrounds. `LinkBlock` is the plain bar item beside it.
|
|
55
|
+
*
|
|
56
|
+
* Until SPI-52 lands in the Spinal Simplicity repo, no site renders its header
|
|
57
|
+
* from these rows; the Storybook `Blocks/CMS/MegaMenu` fixture is the only
|
|
58
|
+
* header built from them.
|
|
59
|
+
*/
|
|
60
|
+
/** One approved value, as a select option. */
|
|
61
|
+
interface MegaMenuOption {
|
|
62
|
+
label: string;
|
|
63
|
+
value: string;
|
|
64
|
+
}
|
|
65
|
+
interface MegaMenuBlockOptions {
|
|
66
|
+
/** Looks a featured link can take. Empty or absent drops the select. */
|
|
67
|
+
variants?: MegaMenuOption[];
|
|
68
|
+
/** Glyphs a list link can carry. Empty or absent drops the select. */
|
|
69
|
+
icons?: MegaMenuOption[];
|
|
70
|
+
}
|
|
71
|
+
/** The percent tokens a column can take, as Payload stores them. */
|
|
72
|
+
declare const MEGA_MENU_WIDTHS: readonly ["25", "33", "50", "66", "75", "100"];
|
|
73
|
+
type MegaMenuWidthValue = (typeof MEGA_MENU_WIDTHS)[number];
|
|
74
|
+
/**
|
|
75
|
+
* The rule on `columns`: read as fractions, the widths must total 100%. It is
|
|
76
|
+
* the array's own `validate`, so the editor sees the message as they build,
|
|
77
|
+
* and Payload runs field validation again on publish (only draft saves skip
|
|
78
|
+
* it), so nothing publishes with a short row. Skipped when Advanced has custom
|
|
79
|
+
* widths on.
|
|
80
|
+
*/
|
|
81
|
+
declare const validateColumnWidths: ArrayFieldValidation;
|
|
82
|
+
/** The renderer would fall back to the preset silently; the editor should hear it here instead. */
|
|
83
|
+
declare const validateRemWidth: TextFieldSingleValidation;
|
|
84
|
+
declare function megaMenuBlock({
|
|
85
|
+
variants,
|
|
86
|
+
icons
|
|
87
|
+
}?: MegaMenuBlockOptions): Block;
|
|
88
|
+
/** A plain bar item: label and destination, nothing to open. */
|
|
89
|
+
declare const LinkBlock: Block;
|
|
90
|
+
//#endregion
|
|
46
91
|
//#region src/fields/image.d.ts
|
|
47
92
|
/**
|
|
48
93
|
* Payload's `UploadField` is a union over the polymorphic (`relationTo: [...]`)
|
|
@@ -347,10 +392,118 @@ interface NapBlockData extends BlockRow<"nap"> {
|
|
|
347
392
|
headingLevel?: ("h2" | "h3" | "h4") | null;
|
|
348
393
|
emitJsonLd?: boolean | null;
|
|
349
394
|
}
|
|
395
|
+
interface MegaMenuLinkData extends LinkValue {
|
|
396
|
+
description?: string | null;
|
|
397
|
+
/** A value from the `variants` the site passed to `megaMenuBlock`. */
|
|
398
|
+
variant?: string | null;
|
|
399
|
+
/** A value from the `icons` the site passed to `megaMenuBlock`. */
|
|
400
|
+
icon?: string | null;
|
|
401
|
+
id?: string | null;
|
|
402
|
+
}
|
|
403
|
+
interface MegaMenuSectionData {
|
|
404
|
+
eyebrow?: string | null;
|
|
405
|
+
display?: ("featured" | "list") | null;
|
|
406
|
+
hideDescriptionsOnMobile?: boolean | null;
|
|
407
|
+
links?: MegaMenuLinkData[] | null;
|
|
408
|
+
id?: string | null;
|
|
409
|
+
}
|
|
410
|
+
interface MegaMenuColumnData {
|
|
411
|
+
width?: ("25" | "33" | "50" | "66" | "75" | "100") | null;
|
|
412
|
+
customWidth?: string | null;
|
|
413
|
+
divider?: boolean | null;
|
|
414
|
+
sections?: MegaMenuSectionData[] | null;
|
|
415
|
+
id?: string | null;
|
|
416
|
+
}
|
|
417
|
+
interface MegaMenuBlockData extends BlockRow<"megaMenu"> {
|
|
418
|
+
label?: string | null;
|
|
419
|
+
href?: string | null;
|
|
420
|
+
panel?: {
|
|
421
|
+
maxWidth?: ("narrow" | "standard" | "wide") | null;
|
|
422
|
+
columns?: MegaMenuColumnData[] | null;
|
|
423
|
+
footer?: {
|
|
424
|
+
overview?: LinkValue;
|
|
425
|
+
cta?: LinkValue;
|
|
426
|
+
};
|
|
427
|
+
customWidths?: boolean | null; /** In rem: "30" or "30rem". */
|
|
428
|
+
customMaxWidth?: string | null;
|
|
429
|
+
};
|
|
430
|
+
}
|
|
431
|
+
interface NavLinkBlockData extends BlockRow<"navLink">, LinkValue {}
|
|
350
432
|
/** Every block this package ships, as one union. */
|
|
351
|
-
type BisonBlockData = HeroBlockData | RichTextBlockData | ShowcasePanelsBlockData | ProcessStepsBlockData | FaqColumnsBlockData | TestimonialMasonryBlockData | NapBlockData;
|
|
433
|
+
type BisonBlockData = HeroBlockData | RichTextBlockData | ShowcasePanelsBlockData | ProcessStepsBlockData | FaqColumnsBlockData | TestimonialMasonryBlockData | NapBlockData | MegaMenuBlockData | NavLinkBlockData;
|
|
352
434
|
/** The `blockType` of every block this package ships. */
|
|
353
435
|
type BisonBlockType = BisonBlockData["blockType"];
|
|
354
436
|
//#endregion
|
|
355
|
-
|
|
437
|
+
//#region src/samples.d.ts
|
|
438
|
+
/**
|
|
439
|
+
* One sample row per block, each typed to its own row shape. Assignable to
|
|
440
|
+
* `Record<BisonBlockType, BisonBlockData>` wherever the wider type is wanted.
|
|
441
|
+
*/
|
|
442
|
+
type BlockSamples = { [K in BisonBlockType]: Extract<BisonBlockData, {
|
|
443
|
+
blockType: K;
|
|
444
|
+
}> };
|
|
445
|
+
/**
|
|
446
|
+
* Every block the package ships, rendered without a CMS row.
|
|
447
|
+
*
|
|
448
|
+
* A Block library page (BIS-52) renders these live so an admin can see each
|
|
449
|
+
* block before enabling it. Each sample lives beside its block's `config.ts`
|
|
450
|
+
* and `component.tsx` as `sample.ts`, and `src/__tests__/samples.test.tsx`
|
|
451
|
+
* locks the contract: one entry per slug, `blockType` matching the key, every
|
|
452
|
+
* config field exercised at least once, and every image self-contained.
|
|
453
|
+
*
|
|
454
|
+
* React-free on purpose: it is read from a Global's field config, which
|
|
455
|
+
* Payload loads in plain Node like the rest of this entry, as well as from a
|
|
456
|
+
* route handler. Only what this package ships is here; a site supplies samples
|
|
457
|
+
* for its own blocks through the Block library factory, whose option BIS-52
|
|
458
|
+
* names.
|
|
459
|
+
*/
|
|
460
|
+
declare const blockSamples: BlockSamples;
|
|
461
|
+
//#endregion
|
|
462
|
+
//#region src/blocks/mega-menu/sample.d.ts
|
|
463
|
+
/**
|
|
464
|
+
* The options the mega menu sample was written against. A factory block's
|
|
465
|
+
* sample only fits a config built with the same approved values, so a
|
|
466
|
+
* preview builds its block with `megaMenuBlock(megaMenuSampleOptions)`.
|
|
467
|
+
*/
|
|
468
|
+
declare const megaMenuSampleOptions: {
|
|
469
|
+
variants: {
|
|
470
|
+
label: string;
|
|
471
|
+
value: string;
|
|
472
|
+
}[];
|
|
473
|
+
icons: {
|
|
474
|
+
label: string;
|
|
475
|
+
value: string;
|
|
476
|
+
}[];
|
|
477
|
+
};
|
|
478
|
+
//#endregion
|
|
479
|
+
//#region src/sample-image.d.ts
|
|
480
|
+
interface SampleImageOptions {
|
|
481
|
+
/** Text drawn across the placeholder, e.g. "Panel 1 · 1400 × 1000". */
|
|
482
|
+
label: string;
|
|
483
|
+
width: number;
|
|
484
|
+
height: number;
|
|
485
|
+
/** Alt text for the document. Defaults to the label. */
|
|
486
|
+
alt?: string;
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* A placeholder upload document for a block sample.
|
|
490
|
+
*
|
|
491
|
+
* A preview has no site media behind it, so the image has to travel with the
|
|
492
|
+
* sample. This is an inline SVG as a `data:` URL, in the `MediaDoc` shape
|
|
493
|
+
* `resolveMedia` already narrows, with `width` and `height` set so an image
|
|
494
|
+
* adapter can reserve the box. The scheme is what tells an adapter which kind
|
|
495
|
+
* of source it has: `next/image` treats a `data:` src as `unoptimized` on its
|
|
496
|
+
* own, so a site's adapter needs no special case for samples.
|
|
497
|
+
*
|
|
498
|
+
* Neutral greys rather than theme tokens: the SVG is a standalone document
|
|
499
|
+
* and cannot see the page's custom properties.
|
|
500
|
+
*/
|
|
501
|
+
declare function sampleImage({
|
|
502
|
+
label,
|
|
503
|
+
width,
|
|
504
|
+
height,
|
|
505
|
+
alt
|
|
506
|
+
}: SampleImageOptions): MediaDoc;
|
|
507
|
+
//#endregion
|
|
508
|
+
export { type BisonBlockData, type BisonBlockType, type BlockSamples, FaqColumnsBlock, type FaqColumnsBlockData, type FaqColumnsItemData, type HeadingFieldsOptions, HeroBlock, type HeroBlockData, type ImageFieldOptions, LinkBlock, type LinkFieldOptions, type LinkFieldsOptions, type LinkValue, MEGA_MENU_WIDTHS, MIN_ROWS_ARRAY_FIELD, type MediaDoc, type MediaValue, type MegaMenuBlockData, type MegaMenuBlockOptions, type MegaMenuColumnData, type MegaMenuLinkData, type MegaMenuOption, type MegaMenuSectionData, type MegaMenuWidthValue, NapBlock, type NapBlockData, type NapDepartmentData, type NavLinkBlockData, ProcessStepsBlock, type ProcessStepsBlockData, type ProcessStepsItemData, type ResolvedMedia, RichTextBlock, type RichTextBlockData, type RichTextContent, type SampleImageOptions, ShowcasePanelsBlock, type ShowcasePanelsBlockData, type ShowcasePanelsItemData, TestimonialMasonryBlock, type TestimonialMasonryBlockData, type TestimonialMasonryItemData, blockSamples, emptyRows, headingFields, imageField, linkField, linkFields, megaMenuBlock, megaMenuSampleOptions, resolveMedia, sampleImage, validateColumnWidths, validateRemWidth };
|
|
356
509
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/blocks/hero/config.ts","../src/blocks/rich-text/config.ts","../src/blocks/showcase-panels/config.ts","../src/blocks/process-steps/config.ts","../src/blocks/faq-columns/config.ts","../src/blocks/testimonial-masonry/config.ts","../src/blocks/nap/config.ts","../src/fields/image.ts","../src/fields/link.ts","../src/fields/heading.ts","../src/fields/min-rows.ts","../src/media.ts","../src/types.ts"],"mappings":";;;;;AAcA;;;;;;;cAAa,SAAA,EAAW,KAAA;;;;cCXX,aAAA,EAAe,KAAA;;;;cCGf,mBAAA,EAAqB,KAAA;;;;cCArB,iBAAA,EAAmB,KAAA;;;;cCAnB,eAAA,EAAiB,KAAA;;;;cCEjB,uBAAA,EAAyB,KAAA;;;;;ALMtC;;;;;;cMFa,QAAA,EAAU,KAAA;;;;;ANEvB;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/blocks/hero/config.ts","../src/blocks/rich-text/config.ts","../src/blocks/showcase-panels/config.ts","../src/blocks/process-steps/config.ts","../src/blocks/faq-columns/config.ts","../src/blocks/testimonial-masonry/config.ts","../src/blocks/nap/config.ts","../src/blocks/mega-menu/config.ts","../src/fields/image.ts","../src/fields/link.ts","../src/fields/heading.ts","../src/fields/min-rows.ts","../src/media.ts","../src/types.ts","../src/samples.ts","../src/blocks/mega-menu/sample.ts","../src/sample-image.ts"],"mappings":"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"}
|