@bison-lab/payload-blocks 3.5.0 → 3.20.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 +54 -32
- package/dist/admin.d.mts +5 -2
- package/dist/admin.d.mts.map +1 -1
- package/dist/admin.mjs +818 -5
- package/dist/admin.mjs.map +1 -1
- package/dist/header-CznT9Uwv.mjs +203 -0
- package/dist/header-CznT9Uwv.mjs.map +1 -0
- package/dist/index.d.mts +30 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +44 -4
- package/dist/index.mjs.map +1 -1
- package/dist/link-32261jXB.mjs +49 -0
- package/dist/link-32261jXB.mjs.map +1 -0
- package/dist/react.d.mts +4 -3
- package/dist/react.d.mts.map +1 -1
- package/dist/react.mjs +4 -144
- package/dist/react.mjs.map +1 -1
- package/dist/rich-text.d.mts +1 -1
- package/dist/rich-text.mjs +2 -1
- package/dist/rich-text.mjs.map +1 -1
- package/dist/{seam-CmLb3BSo.mjs → seam-Cz7oiQ5z.mjs} +2 -47
- package/dist/seam-Cz7oiQ5z.mjs.map +1 -0
- package/dist/{types-ODMRyOpH.d.mts → types-DWEoAURf.d.mts} +3 -3
- package/dist/{types-ODMRyOpH.d.mts.map → types-DWEoAURf.d.mts.map} +1 -1
- package/package.json +7 -2
- package/dist/link-CnwLtm47.mjs +0 -41
- package/dist/link-CnwLtm47.mjs.map +0 -1
- package/dist/seam-CmLb3BSo.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -24,7 +24,7 @@ Payload site already has).
|
|
|
24
24
|
| `@bison-lab/payload-blocks` | Block configs, field builders, row types, `resolveMedia` | Node. This is what `payload.config.ts` imports, and it touches no React. |
|
|
25
25
|
| `@bison-lab/payload-blocks/react` | Renderers, `RenderBlocks`, the image and link seams, the rendering types | Client (`"use client"`). |
|
|
26
26
|
| `@bison-lab/payload-blocks/rich-text` | The `richText` renderer, `internalDocToHrefFrom`, and `richTextBlockRenderer()` to build one that resolves internal links | Client. Split out because it is the only thing that needs `@payloadcms/richtext-lexical`. |
|
|
27
|
-
| `@bison-lab/payload-blocks/admin` | `MinRowsArrayField` and `
|
|
27
|
+
| `@bison-lab/payload-blocks/admin` | `MinRowsArrayField`, `LinkField`, and `NavItemsField`, the admin fields the configs reference by path | Client, inside the Payload admin. Resolved through the site's import map, never imported by hand. |
|
|
28
28
|
|
|
29
29
|
The renderers are client components because the blocks they render are: every
|
|
30
30
|
`@bison-lab/ui` export is a client reference, and these blocks are interactive
|
|
@@ -110,6 +110,22 @@ for `type: external`, and `required` binds whichever is active. A site's own
|
|
|
110
110
|
block takes the same field through `linkFields()` or `linkField()`, and can
|
|
111
111
|
point it at another collection with `pagesCollection`.
|
|
112
112
|
|
|
113
|
+
`lookField()` and `colorTokenField()` read the published Theme. Options are
|
|
114
|
+
the scales Color Settings offers page editors (Primary, Secondary, Accent,
|
|
115
|
+
Highlight, plus every custom color) and only the included steps. Success and
|
|
116
|
+
Destructive stay off that list. Adding Coral on Colors makes `coral` /
|
|
117
|
+
`coral-400` appear with no package bump. The picker is
|
|
118
|
+
`@bison-lab/payload-core/admin#LookField` — run `payload generate:importmap`.
|
|
119
|
+
Pass the Theme document into `themeHeadFromDoc` so those keys paint
|
|
120
|
+
(`[data-look]` + `--coral-*`).
|
|
121
|
+
|
|
122
|
+
```ts
|
|
123
|
+
import { lookField, colorTokenField } from '@bison-lab/payload-blocks'
|
|
124
|
+
|
|
125
|
+
lookField()
|
|
126
|
+
colorTokenField({ name: 'fill' })
|
|
127
|
+
```
|
|
128
|
+
|
|
113
129
|
**2. Own the registry.**
|
|
114
130
|
|
|
115
131
|
The registry is a parameter, not an export, so the compile-time layout lock
|
|
@@ -321,43 +337,49 @@ stylesheet scans both packages:
|
|
|
321
337
|
## Wiring a header
|
|
322
338
|
|
|
323
339
|
Two more blocks build a header rather than a page: `megaMenuBlock` and
|
|
324
|
-
`LinkBlock`. They go in
|
|
325
|
-
|
|
326
|
-
the icon list are the site's — the CMS only ever offers approved values
|
|
340
|
+
`LinkBlock`. They go in `createNavigation({ blocks })`'s `header.items`.
|
|
341
|
+
`megaMenuBlock` is a factory because the featured-link variants and
|
|
342
|
+
the icon list are the site's — the CMS only ever offers approved values.
|
|
343
|
+
The items field uses `NAV_ITEMS_FIELD` (the kit editor) instead of
|
|
344
|
+
Payload's stock blocks UI:
|
|
327
345
|
|
|
328
346
|
```ts
|
|
347
|
+
import { createNavigation } from '@bison-lab/payload-core'
|
|
329
348
|
import { LinkBlock, megaMenuBlock } from '@bison-lab/payload-blocks'
|
|
330
349
|
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
LinkBlock,
|
|
346
|
-
],
|
|
347
|
-
},
|
|
348
|
-
],
|
|
349
|
-
}
|
|
350
|
+
globals: [
|
|
351
|
+
...createNavigation({
|
|
352
|
+
blocks: [
|
|
353
|
+
megaMenuBlock({
|
|
354
|
+
variants: [
|
|
355
|
+
{ label: 'Lumbar', value: 'lumbar' },
|
|
356
|
+
{ label: 'SI joint', value: 'si' },
|
|
357
|
+
],
|
|
358
|
+
icons: [{ label: 'Help', value: 'help' }],
|
|
359
|
+
}),
|
|
360
|
+
LinkBlock,
|
|
361
|
+
],
|
|
362
|
+
}),
|
|
363
|
+
]
|
|
350
364
|
```
|
|
351
365
|
|
|
352
|
-
Then `payload generate:types
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
366
|
+
Then `payload generate:types`, `payload generate:importmap`, and
|
|
367
|
+
`payload migrate:create`. Until the import map includes
|
|
368
|
+
`@bison-lab/payload-blocks/admin#NavItemsField`, the items field renders
|
|
369
|
+
as nothing, not the stock blocks UI.
|
|
370
|
+
|
|
371
|
+
An editor sees a rail of bar items (Link vs Mega type cards from
|
|
372
|
+
`@bison-lab/admin-ui`), destinations
|
|
373
|
+
through `LINK_FIELD`, a two-up column builder, and a sticky
|
|
374
|
+
`FloatingNavBlock` preview under the published theme. Advanced CSS
|
|
375
|
+
column widths stay on the schema so existing rows do not migrate; the
|
|
376
|
+
kit does not render them. The column widths, read as fractions, must add
|
|
377
|
+
up to 100%: the rule is the array's own `validate`, so the editor sees
|
|
378
|
+
"The columns add up to 75%. They need to add up to 100%." as they build,
|
|
379
|
+
and the global's publish refuses the same. Custom widths skip it. The
|
|
380
|
+
mega trigger's landing page is now the same `type` / `page` / `href`
|
|
381
|
+
picker as every other destination — a schema change, so sites run
|
|
382
|
+
`payload migrate:create`.
|
|
361
383
|
|
|
362
384
|
In the site header, one call turns the rows into `FloatingNavBlock` items.
|
|
363
385
|
The variants and icons here are the looks behind the values above:
|
package/dist/admin.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { ArrayFieldClientComponent, RowFieldClientComponent } from "payload";
|
|
2
|
+
import { ArrayFieldClientComponent, BlocksFieldClientComponent, RowFieldClientComponent } from "payload";
|
|
3
3
|
|
|
4
4
|
//#region src/admin/link-field.d.ts
|
|
5
5
|
declare const LinkField: RowFieldClientComponent;
|
|
@@ -26,5 +26,8 @@ declare const LinkField: RowFieldClientComponent;
|
|
|
26
26
|
*/
|
|
27
27
|
declare const MinRowsArrayField: ArrayFieldClientComponent;
|
|
28
28
|
//#endregion
|
|
29
|
-
|
|
29
|
+
//#region src/admin/nav-items-field.d.ts
|
|
30
|
+
declare const NavItemsField: BlocksFieldClientComponent;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { LinkField, MinRowsArrayField, NavItemsField };
|
|
30
33
|
//# sourceMappingURL=admin.d.mts.map
|
package/dist/admin.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.mts","names":[],"sources":["../src/admin/link-field.tsx","../src/admin/min-rows-array-field.tsx"],"mappings":";;;;cAuEa,SAAA,EAAW,uBAAA;;;;;AAAxB;;;;;;;;AChDA
|
|
1
|
+
{"version":3,"file":"admin.d.mts","names":[],"sources":["../src/admin/link-field.tsx","../src/admin/min-rows-array-field.tsx","../src/admin/nav-items-field.tsx"],"mappings":";;;;cAuEa,SAAA,EAAW,uBAAA;;;;;AAAxB;;;;;;;;AChDA;;;;;;;;ACqKA;cDrKa,iBAAA,EAAmB,yBAAA;;;cCqKnB,aAAA,EAAe,0BAAA"}
|