@bison-lab/payload-blocks 3.2.0 → 3.3.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.
@@ -0,0 +1,54 @@
1
+ "use client";
2
+ //#region src/cx.ts
3
+ /**
4
+ * Class joining, locally.
5
+ *
6
+ * `cn()` from `@bison-lab/ui` cannot be used here: that barrel is stamped
7
+ * `"use client"`, so calling it from a Server Component throws. The renderers
8
+ * only ever concatenate their own literals with a caller-supplied string —
9
+ * there are no conflicting Tailwind utilities to merge — so a join is enough.
10
+ */
11
+ function cx(...parts) {
12
+ return parts.filter(Boolean).join(" ");
13
+ }
14
+ //#endregion
15
+ //#region src/seam.ts
16
+ /**
17
+ * The seam contract: how a block that floats across the join between two
18
+ * bands gets its neighbours to make room.
19
+ *
20
+ * A floating block pulls itself up over the block above and down over the
21
+ * block below with `SEAM_PULL_UP` / `SEAM_PULL_DOWN`, and each neighbour adds
22
+ * the same distance on its own side, so the block sits across the seam
23
+ * without covering copy. `RenderBlocks` decides which rows float (its
24
+ * `floats` prop, defaulting to `overlapsSeam`) and hands every renderer two
25
+ * booleans, `overlapAbove` and `overlapBelow`; a renderer's band wrapper adds
26
+ * `seamClasses(props)` and never looks at a neighbour's row.
27
+ *
28
+ * The four distances are one number in two directions, which is why they all
29
+ * live here: change 16/20 in one place.
30
+ */
31
+ /** How far a floating block pulls itself up over the block above. */
32
+ const SEAM_PULL_UP = "-mt-16 lg:-mt-20";
33
+ /** How far a floating block pulls itself down over the block below. */
34
+ const SEAM_PULL_DOWN = "-mb-16 lg:-mb-20";
35
+ /** Extra top padding for the block *below* a floating block. */
36
+ const OVERLAP_ABOVE_CLEARANCE = "pt-16 lg:pt-20";
37
+ /** Extra bottom padding for the block *above* a floating block. */
38
+ const OVERLAP_BELOW_CLEARANCE = "pb-16 lg:pb-20";
39
+ /**
40
+ * The default `floats`: the package's stats band with `overlap` on. A site
41
+ * with its own floating block composes it —
42
+ * `floats={(row) => overlapsSeam(row) || row.blockType === "bookingCard"}`.
43
+ */
44
+ function overlapsSeam(block) {
45
+ return block?.blockType === "statsBand" && Boolean(block.overlap);
46
+ }
47
+ /** The clearance a band wrapper needs for its neighbours, as one class string. */
48
+ function seamClasses({ overlapAbove, overlapBelow }) {
49
+ return cx(overlapAbove && "pt-16 lg:pt-20", overlapBelow && "pb-16 lg:pb-20");
50
+ }
51
+ //#endregion
52
+ export { overlapsSeam as a, SEAM_PULL_UP as i, OVERLAP_BELOW_CLEARANCE as n, seamClasses as o, SEAM_PULL_DOWN as r, cx as s, OVERLAP_ABOVE_CLEARANCE as t };
53
+
54
+ //# sourceMappingURL=seam-BDFZlV3F.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seam-BDFZlV3F.mjs","names":[],"sources":["../src/cx.ts","../src/seam.ts"],"sourcesContent":["/**\n * Class joining, locally.\n *\n * `cn()` from `@bison-lab/ui` cannot be used here: that barrel is stamped\n * `\"use client\"`, so calling it from a Server Component throws. The renderers\n * only ever concatenate their own literals with a caller-supplied string —\n * there are no conflicting Tailwind utilities to merge — so a join is enough.\n */\nexport function cx(...parts: (string | false | null | undefined)[]): string {\n return parts.filter(Boolean).join(\" \");\n}\n","import { cx } from \"./cx\";\nimport type { BlockLike, BlockRendererProps } from \"./render-blocks\";\nimport type { StatsBandBlockData } from \"./types\";\n\n/**\n * The seam contract: how a block that floats across the join between two\n * bands gets its neighbours to make room.\n *\n * A floating block pulls itself up over the block above and down over the\n * block below with `SEAM_PULL_UP` / `SEAM_PULL_DOWN`, and each neighbour adds\n * the same distance on its own side, so the block sits across the seam\n * without covering copy. `RenderBlocks` decides which rows float (its\n * `floats` prop, defaulting to `overlapsSeam`) and hands every renderer two\n * booleans, `overlapAbove` and `overlapBelow`; a renderer's band wrapper adds\n * `seamClasses(props)` and never looks at a neighbour's row.\n *\n * The four distances are one number in two directions, which is why they all\n * live here: change 16/20 in one place.\n */\n\n/** How far a floating block pulls itself up over the block above. */\nexport const SEAM_PULL_UP = \"-mt-16 lg:-mt-20\";\n\n/** How far a floating block pulls itself down over the block below. */\nexport const SEAM_PULL_DOWN = \"-mb-16 lg:-mb-20\";\n\n/** Extra top padding for the block *below* a floating block. */\nexport const OVERLAP_ABOVE_CLEARANCE = \"pt-16 lg:pt-20\";\n\n/** Extra bottom padding for the block *above* a floating block. */\nexport const OVERLAP_BELOW_CLEARANCE = \"pb-16 lg:pb-20\";\n\n/**\n * The default `floats`: the package's stats band with `overlap` on. A site\n * with its own floating block composes it —\n * `floats={(row) => overlapsSeam(row) || row.blockType === \"bookingCard\"}`.\n */\nexport function overlapsSeam(block: BlockLike | undefined): boolean {\n return (\n block?.blockType === \"statsBand\" &&\n Boolean((block as StatsBandBlockData).overlap)\n );\n}\n\n/** The clearance a band wrapper needs for its neighbours, as one class string. */\nexport function seamClasses({\n overlapAbove,\n overlapBelow,\n}: Pick<BlockRendererProps, \"overlapAbove\" | \"overlapBelow\">): string {\n return cx(\n overlapAbove && OVERLAP_ABOVE_CLEARANCE,\n overlapBelow && OVERLAP_BELOW_CLEARANCE,\n );\n}\n"],"mappings":";;;;;;;;;;AAQA,SAAgB,GAAG,GAAG,OAAsD;AAC1E,QAAO,MAAM,OAAO,QAAQ,CAAC,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;ACYxC,MAAa,eAAe;;AAG5B,MAAa,iBAAiB;;AAG9B,MAAa,0BAA0B;;AAGvC,MAAa,0BAA0B;;;;;;AAOvC,SAAgB,aAAa,OAAuC;AAClE,QACE,OAAO,cAAc,eACrB,QAAS,MAA6B,QAAQ;;;AAKlD,SAAgB,YAAY,EAC1B,cACA,gBACoE;AACpE,QAAO,GACL,gBAAA,kBACA,gBAAA,iBACD"}
@@ -104,7 +104,8 @@ interface BlockLike {
104
104
  * The neighbour props let a block adapt to what sits around it: `prevType` to
105
105
  * close a seam against the block above, `runIndex` to alternate surfaces across
106
106
  * back-to-back blocks of one type, `isLast` because the final block sits
107
- * against the site footer.
107
+ * against the site footer, and `overlapAbove` / `overlapBelow` when the
108
+ * neighbour on that side floats across the seam (see `seam.ts`).
108
109
  *
109
110
  * `containerClassName`, `imageComponent` and `linkComponent` are the three
110
111
  * things a package block cannot decide for itself — the site's page measure,
@@ -120,6 +121,13 @@ interface BlockRendererProps<B extends BlockLike = BlockLike> {
120
121
  /** Position within a run of consecutive same-type blocks, from 0. */
121
122
  runIndex: number;
122
123
  isLast: boolean;
124
+ /**
125
+ * The block before this one floats down over the seam, so this block's band
126
+ * wrapper needs clearance at the top. Decided by `RenderBlocks`' `floats`.
127
+ */
128
+ overlapAbove?: boolean;
129
+ /** The block after this one floats up over the seam; clearance at the bottom. */
130
+ overlapBelow?: boolean;
123
131
  /** The site's page measure, for the band wrapper. */
124
132
  containerClassName: string;
125
133
  /** How this block turns a resolved image into an element. */
@@ -151,6 +159,13 @@ interface RenderBlocksProps<B extends BlockLike> {
151
159
  imageComponent?: BlockImageComponent;
152
160
  /** Defaults to a plain `<a>`; a Next site passes a `next/link` adapter. */
153
161
  linkComponent?: BlockLinkComponent;
162
+ /**
163
+ * Which rows float across their seams, so their neighbours make room.
164
+ * Defaults to `overlapsSeam`: the package's stats band with `overlap` on. A
165
+ * site with its own floating block extends it:
166
+ * `floats={(row) => overlapsSeam(row) || row.blockType === "bookingCard"}`.
167
+ */
168
+ floats?: (block: B) => boolean;
154
169
  }
155
170
  /**
156
171
  * Renders a page's blocks in order through the registry. A Server Component:
@@ -161,7 +176,8 @@ declare function RenderBlocks<B extends BlockLike>({
161
176
  registry,
162
177
  containerClassName,
163
178
  imageComponent,
164
- linkComponent
179
+ linkComponent,
180
+ floats
165
181
  }: RenderBlocksProps<B>): ReactElement;
166
182
  //#endregion
167
183
  //#region src/fields/link.d.ts
@@ -321,6 +337,24 @@ interface TestimonialMasonryBlockData extends BlockRow<"testimonialMasonry"> {
321
337
  minItemsForFade?: number | null;
322
338
  maxVisibleRows?: number | null;
323
339
  }
340
+ interface StatsBandItemData {
341
+ value?: string | null;
342
+ label?: string | null;
343
+ href?: string | null;
344
+ wide?: boolean | null;
345
+ id?: string | null;
346
+ }
347
+ interface StatsBandBlockData extends BlockRow<"statsBand"> {
348
+ eyebrow?: string | null;
349
+ title?: string | null;
350
+ description?: string | null;
351
+ items?: StatsBandItemData[] | null;
352
+ /** A select, so the value is the digit as a string. */
353
+ columns?: ("2" | "3" | "4" | "5" | "6") | null;
354
+ tone?: ("card" | "plain") | null;
355
+ align?: ("start" | "center") | null;
356
+ overlap?: boolean | null;
357
+ }
324
358
  interface NapDepartmentData {
325
359
  name?: string | null;
326
360
  departmentType?: string | null;
@@ -382,5 +416,5 @@ interface MegaMenuBlockData extends BlockRow<"megaMenu"> {
382
416
  }
383
417
  interface NavLinkBlockData extends BlockRow<"navLink">, LinkValue {}
384
418
  //#endregion
385
- export { DefaultBlockImage as C, BlockImageProps as S, BlockLinkProps as _, NavLinkBlockData as a, renderLinkWith as b, ShowcasePanelsBlockData as c, BlockRegistryFor as d, BlockRendererProps as f, BlockLinkComponent as g, RenderBlocksProps as h, NapBlockData as i, TestimonialMasonryBlockData as l, RenderBlocks as m, HeroBlockData as n, ProcessStepsBlockData as o, DEFAULT_CONTAINER as p, MegaMenuBlockData as r, RichTextBlockData as s, FaqColumnsBlockData as t, BlockLike as u, DefaultBlockLink as v, BlockImageComponent as x, newTabAttributes as y };
386
- //# sourceMappingURL=types-CJAvoZMk.d.mts.map
419
+ export { BlockImageProps as C, BlockImageComponent as S, BlockLinkComponent as _, NavLinkBlockData as a, newTabAttributes as b, ShowcasePanelsBlockData as c, BlockLike as d, BlockRegistryFor as f, RenderBlocksProps as g, RenderBlocks as h, NapBlockData as i, StatsBandBlockData as l, DEFAULT_CONTAINER as m, HeroBlockData as n, ProcessStepsBlockData as o, BlockRendererProps as p, MegaMenuBlockData as r, RichTextBlockData as s, FaqColumnsBlockData as t, TestimonialMasonryBlockData as u, BlockLinkProps as v, DefaultBlockImage as w, renderLinkWith as x, DefaultBlockLink as y };
420
+ //# sourceMappingURL=types-D9rg0BoW.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-D9rg0BoW.d.mts","names":[],"sources":["../src/image.tsx","../src/link.tsx","../src/render-blocks.tsx","../src/fields/link.ts","../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.2.0",
3
+ "version": "3.3.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": {
@@ -74,7 +74,7 @@
74
74
  "tsdown": "^0.21.0",
75
75
  "typescript": "^5.9.3",
76
76
  "vitest": "^4.1.2",
77
- "@bison-lab/ui": "3.2.0"
77
+ "@bison-lab/ui": "3.3.0"
78
78
  },
79
79
  "publishConfig": {
80
80
  "access": "public"
@@ -1,17 +0,0 @@
1
- "use client";
2
- //#region src/cx.ts
3
- /**
4
- * Class joining, locally.
5
- *
6
- * `cn()` from `@bison-lab/ui` cannot be used here: that barrel is stamped
7
- * `"use client"`, so calling it from a Server Component throws. The renderers
8
- * only ever concatenate their own literals with a caller-supplied string —
9
- * there are no conflicting Tailwind utilities to merge — so a join is enough.
10
- */
11
- function cx(...parts) {
12
- return parts.filter(Boolean).join(" ");
13
- }
14
- //#endregion
15
- export { cx as t };
16
-
17
- //# sourceMappingURL=cx-BKHSv3xT.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cx-BKHSv3xT.mjs","names":[],"sources":["../src/cx.ts"],"sourcesContent":["/**\n * Class joining, locally.\n *\n * `cn()` from `@bison-lab/ui` cannot be used here: that barrel is stamped\n * `\"use client\"`, so calling it from a Server Component throws. The renderers\n * only ever concatenate their own literals with a caller-supplied string —\n * there are no conflicting Tailwind utilities to merge — so a join is enough.\n */\nexport function cx(...parts: (string | false | null | undefined)[]): string {\n return parts.filter(Boolean).join(\" \");\n}\n"],"mappings":";;;;;;;;;;AAQA,SAAgB,GAAG,GAAG,OAAsD;AAC1E,QAAO,MAAM,OAAO,QAAQ,CAAC,KAAK,IAAI"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-CJAvoZMk.d.mts","names":[],"sources":["../src/image.tsx","../src/link.tsx","../src/render-blocks.tsx","../src/fields/link.ts","../src/media.ts","../src/types.ts"],"mappings":"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"}