133 lines
3.6 KiB
TypeScript
133 lines
3.6 KiB
TypeScript
import type { Block } from 'payload'
|
|
|
|
export const FDCardGridBlock: Block = {
|
|
slug: 'fdCardGrid',
|
|
interfaceName: 'FDCardGridBlock',
|
|
labels: {
|
|
singular: 'FD Card Grid',
|
|
plural: 'FD Card Grid',
|
|
},
|
|
fields: [
|
|
{
|
|
name: 'layout',
|
|
type: 'select',
|
|
label: 'Layout',
|
|
defaultValue: '1-1-1',
|
|
required: true,
|
|
options: [
|
|
{ label: '1/3 + 2/3', value: '1-2' },
|
|
{ label: '2/3 + 1/3', value: '2-1' },
|
|
{ label: '1/3 + 1/3 + 1/3', value: '1-1-1' },
|
|
{ label: '1/2 + 1/2', value: '1-1' },
|
|
],
|
|
},
|
|
{
|
|
name: 'cardStyle',
|
|
type: 'select',
|
|
label: 'Kortstil',
|
|
defaultValue: 'outlined',
|
|
required: true,
|
|
options: [
|
|
{ label: 'Navy (mörk)', value: 'navy' },
|
|
{ label: 'Grå', value: 'gray' },
|
|
{ label: 'Gul', value: 'yellow' },
|
|
{ label: 'Grön', value: 'green' },
|
|
{ label: 'Kontur (vit med ram)', value: 'outlined' },
|
|
],
|
|
},
|
|
{
|
|
name: 'cards',
|
|
type: 'array',
|
|
label: 'Kort',
|
|
minRows: 1,
|
|
maxRows: 6,
|
|
fields: [
|
|
{
|
|
name: 'displayMode',
|
|
type: 'select',
|
|
label: 'Visningsläge',
|
|
defaultValue: 'content',
|
|
options: [
|
|
{ label: 'Rubrik + innehåll', value: 'content' },
|
|
{ label: 'Centrerad stor rubrik', value: 'centeredHeading' },
|
|
{ label: 'Centrerad brödtext', value: 'centeredBody' },
|
|
],
|
|
admin: {
|
|
description: '"Centrerad stor rubrik" visar bara rubrikfältet centrerat med stor text. "Centrerad brödtext" visar bara brödtext centrerat.',
|
|
},
|
|
},
|
|
{
|
|
name: 'heading',
|
|
type: 'text',
|
|
label: 'Rubrik (valfri)',
|
|
},
|
|
{
|
|
name: 'centeredBodyText',
|
|
type: 'textarea',
|
|
label: 'Centrerad brödtext',
|
|
admin: {
|
|
condition: (_, siblingData) => siblingData?.displayMode === 'centeredBody',
|
|
},
|
|
},
|
|
{
|
|
name: 'contentLines',
|
|
type: 'array',
|
|
label: 'Innehållsrader',
|
|
minRows: 0,
|
|
maxRows: 10,
|
|
admin: {
|
|
condition: (_, siblingData) => siblingData?.displayMode === 'content',
|
|
},
|
|
fields: [
|
|
{
|
|
name: 'text',
|
|
type: 'text',
|
|
label: 'Text',
|
|
required: true,
|
|
},
|
|
{
|
|
name: 'style',
|
|
type: 'select',
|
|
label: 'Stil',
|
|
defaultValue: 'normal',
|
|
options: [
|
|
{ label: 'Normal', value: 'normal' },
|
|
{ label: 'Fet (Bold)', value: 'bold' },
|
|
{ label: 'Kursiv (Italic)', value: 'italic' },
|
|
{ label: 'Fet + Kursiv', value: 'boldItalic' },
|
|
],
|
|
},
|
|
{
|
|
name: 'link',
|
|
type: 'text',
|
|
label: 'Länk (valfri)',
|
|
admin: {
|
|
description: 'Om ifylld blir texten en klickbar länk med understruken stil',
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'cardLink',
|
|
type: 'text',
|
|
label: 'Kortlänk (valfri)',
|
|
admin: {
|
|
description: 'Gör hela kortet klickbart',
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'sectionBackground',
|
|
type: 'select',
|
|
label: 'Sektionsbakgrund',
|
|
defaultValue: 'white',
|
|
options: [
|
|
{ label: 'Vit', value: 'white' },
|
|
{ label: 'Navy', value: 'navy' },
|
|
{ label: 'Grå', value: 'gray' },
|
|
],
|
|
},
|
|
],
|
|
}
|