102 lines
2.0 KiB
TypeScript
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",
|
|
},
|
|
},
|
|
},
|
|
],
|
|
};
|