Files
docs-app/tina/templates/markdown-embeds/accordion.template.tsx
2026-04-01 09:38:50 +02:00

102 lines
2.0 KiB
TypeScript

const AccordionItemFields = [
{
name: "heading",
label: "Heading",
type: "string",
description:
"The heading text that will be displayed in the collapsed state",
},
{
name: "docText",
label: "Body Text",
isBody: true,
type: "rich-text",
},
{
name: "image",
label: "image",
type: "image",
},
];
export const AccordionTemplate = {
name: "accordion",
label: "Accordion",
ui: {
defaultItem: {
heading: "Click to expand",
//TODO: Need to configure this to be a rich text field
docText: {
type: "root",
children: [
{
type: "p",
children: [
{
type: "text",
text: "Default Text. Edit me!",
},
],
},
],
},
image: "/img/rico-replacement.jpg",
fullWidth: false,
},
},
fields: [
...AccordionItemFields,
{
name: "fullWidth",
label: "Full Width",
type: "boolean",
},
],
};
export default AccordionTemplate;
export const AccordionBlockTemplate = {
name: "accordionBlock",
label: "Accordion Block",
fields: [
{
name: "fullWidth",
label: "Full Width",
type: "boolean",
},
{
name: "accordionItems",
label: "Accordion Items",
type: "object",
list: true,
fields: AccordionItemFields,
ui: {
itemProps: (item) => {
return {
label: item.heading ?? "Accordion Item",
};
},
defaultItem: {
heading: "Click to expand",
docText: {
type: "root",
children: [
{
type: "p",
children: [
{
type: "text",
text: "Default Text. Edit me!",
},
],
},
],
},
image: "/img/rico-replacement.jpg",
},
},
},
],
};