From ed3b9b319e97a5671e9c22391417aae1e64818c9 Mon Sep 17 00:00:00 2001
From: Tushar <72930233+tusharmane-tm@users.noreply.github.com>
Date: Mon, 2 Feb 2026 21:45:03 +0530
Subject: [PATCH] feat: Migrate component definitions from DA to XWalk plugins
and standardize model file naming with an underscore prefix.
---
component-definition.json | 355 +++++++++---
component-filters.json | 40 +-
component-models.json | 507 +++++++++++++++---
package.json | 6 +-
ue/models/_button.json | 59 ++
...nition.json => _component-definition.json} | 14 +-
...t-filters.json => _component-filters.json} | 4 +-
ue/models/_component-models.json | 23 +
ue/models/{image.json => _image.json} | 18 +-
ue/models/{page.json => _page.json} | 20 +-
ue/models/{section.json => _section.json} | 23 +-
ue/models/_text.json | 17 +
ue/models/_title.json | 61 +++
ue/models/blocks/_accordion.json | 63 +++
ue/models/blocks/_cards.json | 61 +++
.../blocks/{carousel.json => _carousel.json} | 31 +-
ue/models/blocks/_columns.json | 50 ++
ue/models/blocks/_embed.json | 47 ++
ue/models/blocks/_form.json | 38 ++
ue/models/blocks/_fragment.json | 32 ++
ue/models/blocks/{hero.json => _hero.json} | 20 +-
ue/models/blocks/_modal.json | 37 ++
ue/models/blocks/_quote.json | 41 ++
ue/models/blocks/_search.json | 52 ++
ue/models/blocks/_table.json | 255 +++++++++
ue/models/blocks/_tabs.json | 104 ++++
ue/models/blocks/_video.json | 71 +++
ue/models/blocks/accordion.json | 57 --
ue/models/blocks/cards.json | 61 ---
ue/models/blocks/columns.json | 73 ---
ue/models/blocks/fragment.json | 32 --
ue/models/blocks/quote.json | 36 --
ue/models/blocks/search.json | 36 --
ue/models/blocks/tabs.json | 47 --
ue/models/blocks/video.json | 48 --
ue/models/component-models.json | 17 -
ue/models/text.json | 15 -
37 files changed, 1838 insertions(+), 633 deletions(-)
create mode 100644 ue/models/_button.json
rename ue/models/{component-definition.json => _component-definition.json} (54%)
rename ue/models/{component-filters.json => _component-filters.json} (50%)
create mode 100644 ue/models/_component-models.json
rename ue/models/{image.json => _image.json} (61%)
rename ue/models/{page.json => _page.json} (51%)
rename ue/models/{section.json => _section.json} (64%)
create mode 100644 ue/models/_text.json
create mode 100644 ue/models/_title.json
create mode 100644 ue/models/blocks/_accordion.json
create mode 100644 ue/models/blocks/_cards.json
rename ue/models/blocks/{carousel.json => _carousel.json} (52%)
create mode 100644 ue/models/blocks/_columns.json
create mode 100644 ue/models/blocks/_embed.json
create mode 100644 ue/models/blocks/_form.json
create mode 100644 ue/models/blocks/_fragment.json
rename ue/models/blocks/{hero.json => _hero.json} (53%)
create mode 100644 ue/models/blocks/_modal.json
create mode 100644 ue/models/blocks/_quote.json
create mode 100644 ue/models/blocks/_search.json
create mode 100644 ue/models/blocks/_table.json
create mode 100644 ue/models/blocks/_tabs.json
create mode 100644 ue/models/blocks/_video.json
delete mode 100644 ue/models/blocks/accordion.json
delete mode 100644 ue/models/blocks/cards.json
delete mode 100644 ue/models/blocks/columns.json
delete mode 100644 ue/models/blocks/fragment.json
delete mode 100644 ue/models/blocks/quote.json
delete mode 100644 ue/models/blocks/search.json
delete mode 100644 ue/models/blocks/tabs.json
delete mode 100644 ue/models/blocks/video.json
delete mode 100644 ue/models/component-models.json
delete mode 100644 ue/models/text.json
diff --git a/component-definition.json b/component-definition.json
index 4ee09df..7d2c3e8 100644
--- a/component-definition.json
+++ b/component-definition.json
@@ -8,9 +8,25 @@
"title": "Text",
"id": "text",
"plugins": {
- "da": {
- "name": "text",
- "type": "text"
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/text/v1/text",
+ "template": {}
+ }
+ }
+ }
+ },
+ {
+ "title": "Title",
+ "id": "title",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/title/v1/title",
+ "template": {
+ "model": "title"
+ }
+ }
}
}
},
@@ -18,9 +34,25 @@
"title": "Image",
"id": "image",
"plugins": {
- "da": {
- "name": "image",
- "type": "image"
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/image/v1/image",
+ "template": {}
+ }
+ }
+ }
+ },
+ {
+ "title": "Button",
+ "id": "button",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/button/v1/button",
+ "template": {
+ "model": "button"
+ }
+ }
}
}
}
@@ -34,12 +66,15 @@
"title": "Section",
"id": "section",
"plugins": {
- "da": {
- "unsafeHTML": "
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur volutpat consequat dui, sit amet ...
"
+ }
+ }
}
}
},
@@ -73,29 +118,45 @@
"title": "Cards",
"id": "cards",
"plugins": {
- "da": {
- "unsafeHTML": ""
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Carousel",
+ "model": "carousel",
+ "filter": "carousel"
+ }
+ }
}
}
},
@@ -103,8 +164,14 @@
"title": "Carousel Slide",
"id": "carousel-item",
"plugins": {
- "da": {
- "unsafeHTML": "
"
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block/item",
+ "template": {
+ "name": "Carousel Slide",
+ "model": "carousel-item"
+ }
+ }
}
}
},
@@ -112,31 +179,44 @@
"title": "Columns",
"id": "columns",
"plugins": {
- "da": {
- "name": "columns",
- "rows": 1,
- "columns": 2,
- "behaviour": "columns"
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/columns/v1/columns",
+ "template": {
+ "columns": "2",
+ "rows": "1"
+ }
+ }
}
}
},
{
- "title": "Columns Row",
- "id": "columns-row",
+ "title": "Embed",
+ "id": "embed",
"plugins": {
- "da": {
- "name": "columns-row",
- "behaviour": "columns-row"
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Embed",
+ "model": "embed"
+ }
+ }
}
}
},
{
- "title": "Columns Cell",
- "id": "columns-cell",
+ "title": "Form",
+ "id": "form",
"plugins": {
- "da": {
- "unsafeHTML": "
",
- "behaviour": "columns-cell"
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Form",
+ "model": "form"
+ }
+ }
}
}
},
@@ -144,8 +224,14 @@
"title": "Fragment",
"id": "fragment",
"plugins": {
- "da": {
- "unsafeHTML": "
"
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Fragment",
+ "model": "fragment"
+ }
+ }
}
}
},
@@ -153,8 +239,29 @@
"title": "Hero",
"id": "hero",
"plugins": {
- "da": {
- "unsafeHTML": "
"
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Hero",
+ "model": "hero"
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Modal",
+ "id": "modal",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Modal",
+ "model": "modal"
+ }
+ }
}
}
},
@@ -162,10 +269,14 @@
"title": "Quote",
"id": "quote",
"plugins": {
- "da": {
- "name": "quote",
- "rows": 1,
- "columns": 1
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Quote",
+ "model": "quote"
+ }
+ }
}
}
},
@@ -173,10 +284,101 @@
"title": "Search",
"id": "search",
"plugins": {
- "da": {
- "name": "search",
- "rows": 1,
- "columns": 1
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Search",
+ "model": "search",
+ "filter": "search"
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Table",
+ "id": "table",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Table",
+ "model": "table",
+ "filter": "table"
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Row",
+ "id": "table-row",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block/item",
+ "template": {
+ "name": "Row",
+ "model": "table-row",
+ "column1text": "Column1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Row",
+ "id": "table-col-2",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block/item",
+ "template": {
+ "name": "Row",
+ "model": "table-col-2",
+ "column1text": "Column1",
+ "column2text": "Column2"
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Row",
+ "id": "table-col-3",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block/item",
+ "template": {
+ "name": "Row",
+ "model": "table-col-3",
+ "column1text": "Column1",
+ "column2text": "Column2",
+ "column3text": "Column3"
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Row",
+ "id": "table-col-4",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block/item",
+ "template": {
+ "name": "Row",
+ "model": "table-col-4",
+ "column1text": "Column1",
+ "column2text": "Column2",
+ "column3text": "Column3",
+ "column4text": "Column4"
+ }
+ }
}
}
},
@@ -184,8 +386,14 @@
"title": "Tabs",
"id": "tabs",
"plugins": {
- "da": {
- "unsafeHTML": "
"
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Tabs",
+ "filter": "tabs"
+ }
+ }
}
}
},
@@ -193,8 +401,16 @@
"title": "Tabs Item",
"id": "tabs-item",
"plugins": {
- "da": {
- "unsafeHTML": "
"
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block/item",
+ "template": {
+ "name": "Tab",
+ "model": "tabs-item",
+ "title": "Tab Name",
+ "content_headingType": "h3"
+ }
+ }
}
}
},
@@ -202,10 +418,15 @@
"title": "Video",
"id": "video",
"plugins": {
- "da": {
- "name": "video",
- "rows": 1,
- "columns": 1
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Video",
+ "model": "video",
+ "filter": "video"
+ }
+ }
}
}
}
diff --git a/component-filters.json b/component-filters.json
index b2cd7e8..428df18 100644
--- a/component-filters.json
+++ b/component-filters.json
@@ -9,6 +9,7 @@
"id": "section",
"components": [
"accordion",
+ "button",
"cards",
"carousel",
"columns",
@@ -22,6 +23,7 @@
"tabs",
"table",
"text",
+ "title",
"video"
]
},
@@ -46,18 +48,40 @@
{
"id": "columns",
"components": [
- "columns-row"
+ "column"
]
},
{
- "id": "columns-row",
- "components": []
+ "id": "column",
+ "components": [
+ "text",
+ "image",
+ "button",
+ "title"
+ ]
},
{
- "id": "columns-cell",
+ "id": "table",
"components": [
- "text",
- "image"
+ "table-row"
+ ]
+ },
+ {
+ "id": "table-2-columns",
+ "components": [
+ "table-col-2"
+ ]
+ },
+ {
+ "id": "table-3-columns",
+ "components": [
+ "table-col-3"
+ ]
+ },
+ {
+ "id": "table-4-columns",
+ "components": [
+ "table-col-4"
]
},
{
@@ -65,5 +89,9 @@
"components": [
"tabs-item"
]
+ },
+ {
+ "id": "video",
+ "components": []
}
]
\ No newline at end of file
diff --git a/component-models.json b/component-models.json
index fa827df..86ec2ca 100644
--- a/component-models.json
+++ b/component-models.json
@@ -4,24 +4,22 @@
"fields": [
{
"component": "text",
- "name": "title",
+ "valueType": "string",
+ "name": "jcr:title",
"label": "Title"
},
{
"component": "text",
- "name": "description",
+ "valueType": "string",
+ "name": "jcr:description",
"label": "Description"
},
- {
- "component": "reference",
- "name": "image",
- "label": "Image"
- },
{
"component": "text",
- "name": "robots",
- "label": "Robots",
- "description": "Index control via robots"
+ "valueType": "string",
+ "name": "keywords",
+ "multi": true,
+ "label": "Keywords"
}
]
},
@@ -31,25 +29,105 @@
{
"component": "reference",
"name": "image",
- "hidden": true,
- "multi": false
- },
- {
- "component": "reference",
- "name": "img:nth-child(3)[src]",
"label": "Image",
"multi": false
},
{
"component": "text",
- "name": "img:nth-child(3)[alt]",
+ "name": "imageAlt",
"label": "Alt Text"
}
]
},
+ {
+ "id": "title",
+ "fields": [
+ {
+ "component": "text",
+ "name": "title",
+ "label": "Title"
+ },
+ {
+ "component": "select",
+ "name": "titleType",
+ "label": "Title Type",
+ "options": [
+ {
+ "name": "h1",
+ "value": "h1"
+ },
+ {
+ "name": "h2",
+ "value": "h2"
+ },
+ {
+ "name": "h3",
+ "value": "h3"
+ },
+ {
+ "name": "h4",
+ "value": "h4"
+ },
+ {
+ "name": "h5",
+ "value": "h5"
+ },
+ {
+ "name": "h6",
+ "value": "h6"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id": "button",
+ "fields": [
+ {
+ "component": "aem-content",
+ "name": "link",
+ "label": "Link"
+ },
+ {
+ "component": "text",
+ "name": "linkText",
+ "label": "Text"
+ },
+ {
+ "component": "text",
+ "name": "linkTitle",
+ "label": "Title"
+ },
+ {
+ "component": "select",
+ "name": "linkType",
+ "label": "Type",
+ "options": [
+ {
+ "name": "default",
+ "value": ""
+ },
+ {
+ "name": "primary",
+ "value": "primary"
+ },
+ {
+ "name": "secondary",
+ "value": "secondary"
+ }
+ ]
+ }
+ ]
+ },
{
"id": "section",
"fields": [
+ {
+ "component": "text",
+ "name": "name",
+ "label": "Section Name",
+ "description": "The label shown for this section in the Content Tree"
+ },
{
"component": "multiselect",
"name": "style",
@@ -67,20 +145,18 @@
"id": "accordion-item",
"fields": [
{
- "component": "richtext",
+ "component": "text",
"valueType": "string",
- "name": "div:nth-child(1)",
+ "name": "summary",
"value": "",
- "label": "Summary",
- "required": true
+ "label": "Summary"
},
{
"component": "richtext",
- "name": "div:nth-child(2)",
+ "name": "text",
"value": "",
"label": "Text",
- "valueType": "string",
- "required": true
+ "valueType": "string"
}
]
},
@@ -90,20 +166,13 @@
{
"component": "reference",
"valueType": "string",
- "name": "div:nth-child(1)>picture:nth-child(1)>img:nth-child(3)[src]",
+ "name": "image",
"label": "Image",
"multi": false
},
- {
- "component": "text",
- "valueType": "string",
- "name": "div:nth-child(1)>picture:nth-child(1)>img:nth-child(3)[alt]",
- "label": "Image Alt",
- "multi": false
- },
{
"component": "richtext",
- "name": "div:nth-child(2)",
+ "name": "text",
"value": "",
"label": "Text",
"valueType": "string"
@@ -116,19 +185,21 @@
{
"component": "reference",
"valueType": "string",
- "name": "div:nth-child(1)>picture:nth-child(1)>img:nth-child(3)[src]",
+ "name": "media_image",
"label": "Background Image",
"multi": false
},
{
"component": "text",
"valueType": "string",
- "name": "div:nth-child(1)>picture:nth-child(1)>img:nth-child(3)[alt]",
- "label": "Background Image Alt"
+ "name": "media_imageAlt",
+ "value": "",
+ "label": "Bacgkround Alt"
},
{
"component": "richtext",
- "name": "div:nth-child(2)",
+ "name": "content_text",
+ "value": "",
"label": "Text",
"valueType": "string"
}
@@ -138,31 +209,69 @@
"id": "columns",
"fields": [
{
- "component": "number",
+ "component": "text",
"valueType": "number",
"name": "columns",
- "label": "Number of Columns",
- "value": 2,
- "validation": {
- "numberMin": 1,
- "numberMax": 6
- }
+ "value": "",
+ "label": "Columns"
+ },
+ {
+ "component": "text",
+ "valueType": "number",
+ "name": "rows",
+ "value": "",
+ "label": "Rows"
}
]
},
{
- "id": "fragment",
+ "id": "embed",
"fields": [
+ {
+ "component": "reference",
+ "valueType": "string",
+ "name": "embed_placeholder",
+ "label": "Placeholder Image",
+ "multi": false
+ },
{
"component": "text",
- "name": "div:nth-child(1)>div:nth-child(1)>p:nth-child(1)>a:nth-child(1)[href]",
- "label": "Fragment URL",
- "required": true
+ "valueType": "string",
+ "name": "embed_placeholderAlt",
+ "value": "",
+ "label": "Placeholder Image Alt Text"
},
{
"component": "text",
- "name": "div:nth-child(1)>div:nth-child(1)>p:nth-child(1)>a:nth-child(1)",
- "label": "Fragment URL Text"
+ "valueType": "string",
+ "name": "embed_uri",
+ "label": "URI"
+ }
+ ]
+ },
+ {
+ "id": "form",
+ "fields": [
+ {
+ "component": "aem-content",
+ "name": "reference",
+ "label": "Form"
+ },
+ {
+ "component": "text",
+ "name": "action",
+ "label": "Action URL",
+ "valueType": "string"
+ }
+ ]
+ },
+ {
+ "id": "fragment",
+ "fields": [
+ {
+ "component": "aem-content",
+ "name": "reference",
+ "label": "Reference"
}
]
},
@@ -172,40 +281,56 @@
{
"component": "reference",
"valueType": "string",
- "name": "div:nth-child(1)>div:nth-child(1)>picture:nth-child(1)>img:nth-child(3)[src]",
+ "name": "image",
"label": "Image",
"multi": false
},
{
"component": "text",
"valueType": "string",
- "name": "div:nth-child(1)>div:nth-child(1)>picture:nth-child(1)>img:nth-child(3)[alt]",
+ "name": "imageAlt",
"label": "Alt",
"value": ""
},
{
- "component": "text",
- "name": "div:nth-child(1)>div:nth-child(1)>h1:nth-child(2)",
+ "component": "richtext",
+ "name": "text",
"value": "",
"label": "Text",
"valueType": "string"
}
]
},
+ {
+ "id": "modal",
+ "fields": [
+ {
+ "component": "aem-content",
+ "name": "link",
+ "label": "Link"
+ },
+ {
+ "component": "text",
+ "name": "linkText",
+ "label": "Text"
+ }
+ ]
+ },
{
"id": "quote",
"fields": [
{
"component": "richtext",
"valueType": "string",
- "name": "div:nth-child(1)>div:nth-child(1)",
- "label": "Quote",
- "required": true
+ "name": "quotation",
+ "value": "",
+ "label": "Quotation"
},
{
- "component": "text",
- "name": "div:nth-child(2)>div:nth-child(1)>p:nth-child(1)",
- "label": "Author",
+ "component": "richtext",
+ "name": "attribution",
+ "value": "",
+ "label": "Attribution",
"valueType": "string"
}
]
@@ -216,15 +341,171 @@
{
"component": "text",
"valueType": "string",
- "name": "div:nth-child(1)>div:nth-child(1)>p:nth-child(1)>a:nth-child(1)[href]",
- "label": "Search URL",
- "required": true
+ "name": "index",
+ "label": "Index"
},
{
- "component": "text",
- "name": "div:nth-child(1)>div:nth-child(1)>p:nth-child(1)>a:nth-child(1)",
- "label": "Search URL Text",
- "valueType": "string"
+ "component": "multiselect",
+ "name": "classes",
+ "value": "",
+ "label": "Options",
+ "valueType": "string",
+ "options": [
+ {
+ "name": "Search Type",
+ "children": [
+ {
+ "name": "Minimal",
+ "value": "minimal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id": "table",
+ "fields": [
+ {
+ "component": "multiselect",
+ "name": "classes",
+ "value": "",
+ "label": "Options",
+ "valueType": "string",
+ "options": [
+ {
+ "name": "Border",
+ "children": [
+ {
+ "name": "Striped",
+ "value": "striped"
+ },
+ {
+ "name": "Bordered",
+ "value": "bordered"
+ }
+ ]
+ },
+ {
+ "name": "Header",
+ "children": [
+ {
+ "name": "No Header",
+ "value": "no-header"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "component": "select",
+ "name": "filter",
+ "label": "Columns",
+ "valueType": "string",
+ "value": "table",
+ "options": [
+ {
+ "name": "1 Column",
+ "value": "table"
+ },
+ {
+ "name": "2 Columns",
+ "value": "table-2-columns"
+ },
+ {
+ "name": "3 Columns",
+ "value": "table-3-columns"
+ },
+ {
+ "name": "4 Columns",
+ "value": "table-4-columns"
+ },
+ {
+ "name": "5 Columns",
+ "value": "table-5-columns"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id": "table-row",
+ "fields": [
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column1text",
+ "label": "Column1"
+ }
+ ]
+ },
+ {
+ "id": "table-col-2",
+ "fields": [
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column1text",
+ "label": "Column1"
+ },
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column2text",
+ "label": "Column2"
+ }
+ ]
+ },
+ {
+ "id": "table-col-3",
+ "fields": [
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column1text",
+ "label": "Column1"
+ },
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column2text",
+ "label": "Column2"
+ },
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column3text",
+ "label": "Column3"
+ }
+ ]
+ },
+ {
+ "id": "table-col-4",
+ "fields": [
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column1text",
+ "label": "Column1"
+ },
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column2text",
+ "label": "Column2"
+ },
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column3text",
+ "label": "Column3"
+ },
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column4text",
+ "label": "Column4"
}
]
},
@@ -233,13 +514,54 @@
"fields": [
{
"component": "text",
- "name": "div:nth-child(1)>p:nth-child(1)",
"valueType": "string",
- "label": "Tab Name"
+ "name": "title",
+ "value": "",
+ "label": "Tab Title"
+ },
+ {
+ "component": "text",
+ "valueType": "string",
+ "name": "content_heading",
+ "value": "",
+ "label": "Heading"
+ },
+ {
+ "component": "select",
+ "valueType": "string",
+ "name": "content_headingType",
+ "value": "",
+ "label": "Heading Type",
+ "options": [
+ {
+ "name": "H3",
+ "value": "h3"
+ },
+ {
+ "name": "H4",
+ "value": "h4"
+ },
+ {
+ "name": "H5",
+ "value": "h5"
+ },
+ {
+ "name": "H6",
+ "value": "h6"
+ }
+ ]
+ },
+ {
+ "component": "reference",
+ "valueType": "string",
+ "name": "content_image",
+ "label": "Image",
+ "multi": false
},
{
"component": "richtext",
- "name": "div:nth-child(2)",
+ "name": "content_richtext",
+ "value": "",
"label": "Content",
"valueType": "string"
}
@@ -249,29 +571,42 @@
"id": "video",
"fields": [
{
- "component": "boolean",
- "name": "classes_autoplay",
- "label": "Autoplay Video",
- "valueType": "boolean"
+ "component": "aem-content",
+ "valueType": "string",
+ "name": "uri",
+ "label": "Video"
},
{
- "component": "text",
- "name": "div:nth-child(1)>div:nth-child(1)>p:nth-child(1)>a:nth-child(1)[href]",
- "label": "Video URL",
+ "component": "multiselect",
+ "name": "classes",
+ "value": "",
+ "label": "Options",
"valueType": "string",
- "required": true
+ "options": [
+ {
+ "name": "Auto Play",
+ "children": [
+ {
+ "name": "AutoPlay",
+ "value": "autoplay"
+ }
+ ]
+ }
+ ]
},
{
- "component": "text",
- "name": "div:nth-child(1)>div:nth-child(1)>p:nth-child(1)>a:nth-child(1)",
- "label": "Video URL Text",
- "valueType": "string"
+ "component": "reference",
+ "valueType": "string",
+ "name": "placeholder_image",
+ "label": "Placeholder Image",
+ "multi": true
},
{
- "component": "reference",
- "name": "div:nth-child(1)>div:nth-child(1)>picture:nth-child(2)>img:nth-child(3)[src]",
- "label": "Poster Image",
- "valueType": "string"
+ "component": "text",
+ "valueType": "string",
+ "name": "placeholder_imageAlt",
+ "value": "",
+ "label": "Placeholder Image Alt Text"
}
]
}
diff --git a/package.json b/package.json
index d323d94..399daaa 100644
--- a/package.json
+++ b/package.json
@@ -10,9 +10,9 @@
"lint": "npm run lint:js && npm run lint:css",
"lint:fix": "npm run lint:js -- --fix && npm run lint:css -- --fix",
"build:json": "npm-run-all -p build:json:models build:json:definitions build:json:filters",
- "build:json:models": "merge-json-cli -i \"ue/models/component-models.json\" -o \"component-models.json\"",
- "build:json:definitions": "merge-json-cli -i \"ue/models/component-definition.json\" -o \"component-definition.json\"",
- "build:json:filters": "merge-json-cli -i \"ue/models/component-filters.json\" -o \"component-filters.json\""
+ "build:json:models": "merge-json-cli -i \"ue/models/_component-models.json\" -o \"component-models.json\"",
+ "build:json:definitions": "merge-json-cli -i \"ue/models/_component-definition.json\" -o \"component-definition.json\"",
+ "build:json:filters": "merge-json-cli -i \"ue/models/_component-filters.json\" -o \"component-filters.json\""
},
"repository": {
"type": "git",
diff --git a/ue/models/_button.json b/ue/models/_button.json
new file mode 100644
index 0000000..a11c5e2
--- /dev/null
+++ b/ue/models/_button.json
@@ -0,0 +1,59 @@
+{
+ "definitions": [
+ {
+ "title": "Button",
+ "id": "button",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/button/v1/button",
+ "template": {
+ "model": "button"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "models": [
+ {
+ "id": "button",
+ "fields": [
+ {
+ "component": "aem-content",
+ "name": "link",
+ "label": "Link"
+ },
+ {
+ "component": "text",
+ "name": "linkText",
+ "label": "Text"
+ },
+ {
+ "component": "text",
+ "name": "linkTitle",
+ "label": "Title"
+ },
+ {
+ "component": "select",
+ "name": "linkType",
+ "label": "Type",
+ "options": [
+ {
+ "name": "default",
+ "value": ""
+ },
+ {
+ "name": "primary",
+ "value": "primary"
+ },
+ {
+ "name": "secondary",
+ "value": "secondary"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/ue/models/component-definition.json b/ue/models/_component-definition.json
similarity index 54%
rename from ue/models/component-definition.json
rename to ue/models/_component-definition.json
index 974a1a3..c41c143 100644
--- a/ue/models/component-definition.json
+++ b/ue/models/_component-definition.json
@@ -5,10 +5,16 @@
"id": "default",
"components": [
{
- "...": "./text.json#/definitions"
+ "...": "./_text.json#/definitions"
},
{
- "...": "./image.json#/definitions"
+ "...": "./_title.json#/definitions"
+ },
+ {
+ "...": "./_image.json#/definitions"
+ },
+ {
+ "...": "./_button.json#/definitions"
}
]
},
@@ -17,7 +23,7 @@
"id": "sections",
"components": [
{
- "...": "./section.json#/definitions"
+ "...": "./_section.json#/definitions"
}
]
},
@@ -26,7 +32,7 @@
"id": "blocks",
"components": [
{
- "...": "./blocks/*.json#/definitions"
+ "...": "./blocks/_*.json#/definitions"
}
]
}
diff --git a/ue/models/component-filters.json b/ue/models/_component-filters.json
similarity index 50%
rename from ue/models/component-filters.json
rename to ue/models/_component-filters.json
index a16d258..833b8a2 100644
--- a/ue/models/component-filters.json
+++ b/ue/models/_component-filters.json
@@ -4,9 +4,9 @@
"components": ["section"]
},
{
- "...": "./section.json#/filters"
+ "...": "./_section.json#/filters"
},
{
- "...": "./blocks/*.json#/filters"
+ "...": "./blocks/_*.json#/filters"
}
]
diff --git a/ue/models/_component-models.json b/ue/models/_component-models.json
new file mode 100644
index 0000000..7dec8ff
--- /dev/null
+++ b/ue/models/_component-models.json
@@ -0,0 +1,23 @@
+[
+ {
+ "...": "./_page.json#/models"
+ },
+ {
+ "...": "./_image.json#/models"
+ },
+ {
+ "...": "./_title.json#/models"
+ },
+ {
+ "...": "./_text.json#/models"
+ },
+ {
+ "...": "./_button.json#/models"
+ },
+ {
+ "...": "./_section.json#/models"
+ },
+ {
+ "...": "./blocks/_*.json#/models"
+ }
+]
diff --git a/ue/models/image.json b/ue/models/_image.json
similarity index 61%
rename from ue/models/image.json
rename to ue/models/_image.json
index 43c4833..add08e0 100644
--- a/ue/models/image.json
+++ b/ue/models/_image.json
@@ -4,9 +4,11 @@
"title": "Image",
"id": "image",
"plugins": {
- "da": {
- "name": "image",
- "type": "image"
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/image/v1/image",
+ "template": {}
+ }
}
}
}
@@ -18,21 +20,15 @@
{
"component": "reference",
"name": "image",
- "hidden": true,
- "multi": false
- },
- {
- "component": "reference",
- "name": "img:nth-child(3)[src]",
"label": "Image",
"multi": false
},
{
"component": "text",
- "name": "img:nth-child(3)[alt]",
+ "name": "imageAlt",
"label": "Alt Text"
}
]
}
]
-}
\ No newline at end of file
+}
diff --git a/ue/models/page.json b/ue/models/_page.json
similarity index 51%
rename from ue/models/page.json
rename to ue/models/_page.json
index 1bccf7b..e6233b7 100644
--- a/ue/models/page.json
+++ b/ue/models/_page.json
@@ -5,26 +5,24 @@
"fields": [
{
"component": "text",
- "name": "title",
+ "valueType": "string",
+ "name": "jcr:title",
"label": "Title"
},
{
"component": "text",
- "name": "description",
+ "valueType": "string",
+ "name": "jcr:description",
"label": "Description"
},
- {
- "component": "reference",
- "name": "image",
- "label": "Image"
- },
{
"component": "text",
- "name": "robots",
- "label": "Robots",
- "description": "Index control via robots"
+ "valueType": "string",
+ "name": "keywords",
+ "multi": true,
+ "label": "Keywords"
}
]
}
]
-}
+}
\ No newline at end of file
diff --git a/ue/models/section.json b/ue/models/_section.json
similarity index 64%
rename from ue/models/section.json
rename to ue/models/_section.json
index 3dfa510..c42ed03 100644
--- a/ue/models/section.json
+++ b/ue/models/_section.json
@@ -4,18 +4,27 @@
"title": "Section",
"id": "section",
"plugins": {
- "da": {
- "unsafeHTML": "
"
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/section/v1/section",
+ "template": {
+ "model": "section"
+ }
+ }
}
- },
- "filter": "section",
- "model": "section"
+ }
}
],
"models": [
{
"id": "section",
"fields": [
+ {
+ "component": "text",
+ "name": "name",
+ "label": "Section Name",
+ "description": "The label shown for this section in the Content Tree"
+ },
{
"component": "multiselect",
"name": "style",
@@ -35,6 +44,7 @@
"id": "section",
"components": [
"accordion",
+ "button",
"cards",
"carousel",
"columns",
@@ -48,8 +58,9 @@
"tabs",
"table",
"text",
+ "title",
"video"
]
}
]
-}
\ No newline at end of file
+}
diff --git a/ue/models/_text.json b/ue/models/_text.json
new file mode 100644
index 0000000..133c8a7
--- /dev/null
+++ b/ue/models/_text.json
@@ -0,0 +1,17 @@
+{
+ "definitions": [
+ {
+ "title": "Text",
+ "id": "text",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/text/v1/text",
+ "template": {}
+ }
+ }
+ }
+ }
+ ],
+ "models": []
+}
diff --git a/ue/models/_title.json b/ue/models/_title.json
new file mode 100644
index 0000000..922a799
--- /dev/null
+++ b/ue/models/_title.json
@@ -0,0 +1,61 @@
+{
+ "definitions": [
+ {
+ "title": "Title",
+ "id": "title",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/title/v1/title",
+ "template": {
+ "model": "title"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "models": [
+ {
+ "id": "title",
+ "fields": [
+ {
+ "component": "text",
+ "name": "title",
+ "label": "Title"
+ },
+ {
+ "component": "select",
+ "name": "titleType",
+ "label": "Title Type",
+ "options": [
+ {
+ "name": "h1",
+ "value": "h1"
+ },
+ {
+ "name": "h2",
+ "value": "h2"
+ },
+ {
+ "name": "h3",
+ "value": "h3"
+ },
+ {
+ "name": "h4",
+ "value": "h4"
+ },
+ {
+ "name": "h5",
+ "value": "h5"
+ },
+ {
+ "name": "h6",
+ "value": "h6"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/ue/models/blocks/_accordion.json b/ue/models/blocks/_accordion.json
new file mode 100644
index 0000000..c7a03a7
--- /dev/null
+++ b/ue/models/blocks/_accordion.json
@@ -0,0 +1,63 @@
+{
+ "definitions": [
+ {
+ "title": "Accordion",
+ "id": "accordion",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Accordion",
+ "filter": "accordion"
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Accordion Item",
+ "id": "accordion-item",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block/item",
+ "template": {
+ "name": "Accordion Item",
+ "model": "accordion-item",
+ "summary": "Lorem Ipsum",
+ "text": "
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur volutpat consequat dui, sit amet ...
"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "models": [
+ {
+ "id": "accordion-item",
+ "fields": [
+ {
+ "component": "text",
+ "valueType": "string",
+ "name": "summary",
+ "value": "",
+ "label": "Summary"
+ },
+ {
+ "component": "richtext",
+ "name": "text",
+ "value": "",
+ "label": "Text",
+ "valueType": "string"
+ }
+ ]
+ }
+ ],
+ "filters": [
+ {
+ "id": "accordion",
+ "components": ["accordion-item"]
+ }
+ ]
+}
diff --git a/ue/models/blocks/_cards.json b/ue/models/blocks/_cards.json
new file mode 100644
index 0000000..3bb4d5f
--- /dev/null
+++ b/ue/models/blocks/_cards.json
@@ -0,0 +1,61 @@
+{
+ "definitions": [
+ {
+ "title": "Cards",
+ "id": "cards",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Cards",
+ "filter": "cards"
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Card",
+ "id": "card",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block/item",
+ "template": {
+ "name": "Card",
+ "model": "card"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "models": [
+ {
+ "id": "card",
+ "fields": [
+ {
+ "component": "reference",
+ "valueType": "string",
+ "name": "image",
+ "label": "Image",
+ "multi": false
+ },
+ {
+ "component": "richtext",
+ "name": "text",
+ "value": "",
+ "label": "Text",
+ "valueType": "string"
+ }
+ ]
+ }
+ ],
+ "filters": [
+ {
+ "id": "cards",
+ "components": ["card"]
+ }
+ ]
+}
diff --git a/ue/models/blocks/carousel.json b/ue/models/blocks/_carousel.json
similarity index 52%
rename from ue/models/blocks/carousel.json
rename to ue/models/blocks/_carousel.json
index e822e18..79d3d79 100644
--- a/ue/models/blocks/carousel.json
+++ b/ue/models/blocks/_carousel.json
@@ -4,8 +4,15 @@
"title": "Carousel",
"id": "carousel",
"plugins": {
- "da": {
- "unsafeHTML": "
"
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Carousel",
+ "model": "carousel",
+ "filter": "carousel"
+ }
+ }
}
}
},
@@ -13,8 +20,14 @@
"title": "Carousel Slide",
"id": "carousel-item",
"plugins": {
- "da": {
- "unsafeHTML": "
"
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block/item",
+ "template": {
+ "name": "Carousel Slide",
+ "model": "carousel-item"
+ }
+ }
}
}
}
@@ -26,19 +39,21 @@
{
"component": "reference",
"valueType": "string",
- "name": "div:nth-child(1)>picture:nth-child(1)>img:nth-child(3)[src]",
+ "name": "media_image",
"label": "Background Image",
"multi": false
},
{
"component": "text",
"valueType": "string",
- "name": "div:nth-child(1)>picture:nth-child(1)>img:nth-child(3)[alt]",
- "label": "Background Image Alt"
+ "name": "media_imageAlt",
+ "value": "",
+ "label": "Bacgkround Alt"
},
{
"component": "richtext",
- "name": "div:nth-child(2)",
+ "name": "content_text",
+ "value": "",
"label": "Text",
"valueType": "string"
}
diff --git a/ue/models/blocks/_columns.json b/ue/models/blocks/_columns.json
new file mode 100644
index 0000000..2e5f0c2
--- /dev/null
+++ b/ue/models/blocks/_columns.json
@@ -0,0 +1,50 @@
+{
+ "definitions": [
+ {
+ "title": "Columns",
+ "id": "columns",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/columns/v1/columns",
+ "template": {
+ "columns": "2",
+ "rows": "1"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "models": [
+ {
+ "id": "columns",
+ "fields": [
+ {
+ "component": "text",
+ "valueType": "number",
+ "name": "columns",
+ "value": "",
+ "label": "Columns"
+ },
+ {
+ "component": "text",
+ "valueType": "number",
+ "name": "rows",
+ "value": "",
+ "label": "Rows"
+ }
+ ]
+ }
+ ],
+ "filters": [
+ {
+ "id": "columns",
+ "components": ["column"]
+ },
+ {
+ "id": "column",
+ "components": ["text", "image", "button", "title"]
+ }
+ ]
+}
diff --git a/ue/models/blocks/_embed.json b/ue/models/blocks/_embed.json
new file mode 100644
index 0000000..453c4b4
--- /dev/null
+++ b/ue/models/blocks/_embed.json
@@ -0,0 +1,47 @@
+{
+ "definitions": [
+ {
+ "title": "Embed",
+ "id": "embed",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Embed",
+ "model": "embed"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "models": [
+ {
+ "id": "embed",
+ "fields": [
+ {
+ "component": "reference",
+ "valueType": "string",
+ "name": "embed_placeholder",
+ "label": "Placeholder Image",
+ "multi": false
+ },
+ {
+ "component": "text",
+ "valueType": "string",
+ "name": "embed_placeholderAlt",
+ "value": "",
+ "label": "Placeholder Image Alt Text"
+ },
+ {
+ "component": "text",
+ "valueType": "string",
+ "name": "embed_uri",
+ "label": "URI"
+ }
+ ]
+ }
+ ],
+ "filters": []
+}
diff --git a/ue/models/blocks/_form.json b/ue/models/blocks/_form.json
new file mode 100644
index 0000000..0e8e79c
--- /dev/null
+++ b/ue/models/blocks/_form.json
@@ -0,0 +1,38 @@
+{
+ "definitions": [
+ {
+ "title": "Form",
+ "id": "form",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Form",
+ "model": "form"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "models": [
+ {
+ "id": "form",
+ "fields": [
+ {
+ "component": "aem-content",
+ "name": "reference",
+ "label": "Form"
+ },
+ {
+ "component": "text",
+ "name": "action",
+ "label": "Action URL",
+ "valueType": "string"
+ }
+ ]
+ }
+ ],
+ "filters": []
+}
diff --git a/ue/models/blocks/_fragment.json b/ue/models/blocks/_fragment.json
new file mode 100644
index 0000000..d57d011
--- /dev/null
+++ b/ue/models/blocks/_fragment.json
@@ -0,0 +1,32 @@
+{
+ "definitions": [
+ {
+ "title": "Fragment",
+ "id": "fragment",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Fragment",
+ "model": "fragment"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "models": [
+ {
+ "id": "fragment",
+ "fields": [
+ {
+ "component": "aem-content",
+ "name": "reference",
+ "label": "Reference"
+ }
+ ]
+ }
+ ],
+ "filters": []
+}
diff --git a/ue/models/blocks/hero.json b/ue/models/blocks/_hero.json
similarity index 53%
rename from ue/models/blocks/hero.json
rename to ue/models/blocks/_hero.json
index abc9125..0e64ea4 100644
--- a/ue/models/blocks/hero.json
+++ b/ue/models/blocks/_hero.json
@@ -4,8 +4,14 @@
"title": "Hero",
"id": "hero",
"plugins": {
- "da": {
- "unsafeHTML": "
"
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Hero",
+ "model": "hero"
+ }
+ }
}
}
}
@@ -17,20 +23,20 @@
{
"component": "reference",
"valueType": "string",
- "name": "div:nth-child(1)>div:nth-child(1)>picture:nth-child(1)>img:nth-child(3)[src]",
+ "name": "image",
"label": "Image",
"multi": false
},
{
"component": "text",
"valueType": "string",
- "name": "div:nth-child(1)>div:nth-child(1)>picture:nth-child(1)>img:nth-child(3)[alt]",
+ "name": "imageAlt",
"label": "Alt",
"value": ""
},
{
- "component": "text",
- "name": "div:nth-child(1)>div:nth-child(1)>h1:nth-child(2)",
+ "component": "richtext",
+ "name": "text",
"value": "",
"label": "Text",
"valueType": "string"
@@ -39,4 +45,4 @@
}
],
"filters": []
-}
\ No newline at end of file
+}
diff --git a/ue/models/blocks/_modal.json b/ue/models/blocks/_modal.json
new file mode 100644
index 0000000..ae98cb1
--- /dev/null
+++ b/ue/models/blocks/_modal.json
@@ -0,0 +1,37 @@
+{
+ "definitions": [
+ {
+ "title": "Modal",
+ "id": "modal",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Modal",
+ "model": "modal"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "models": [
+ {
+ "id": "modal",
+ "fields": [
+ {
+ "component": "aem-content",
+ "name": "link",
+ "label": "Link"
+ },
+ {
+ "component": "text",
+ "name": "linkText",
+ "label": "Text"
+ }
+ ]
+ }
+ ],
+ "filters": []
+}
diff --git a/ue/models/blocks/_quote.json b/ue/models/blocks/_quote.json
new file mode 100644
index 0000000..9db9eab
--- /dev/null
+++ b/ue/models/blocks/_quote.json
@@ -0,0 +1,41 @@
+{
+ "definitions": [
+ {
+ "title": "Quote",
+ "id": "quote",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Quote",
+ "model": "quote"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "models": [
+ {
+ "id": "quote",
+ "fields": [
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "quotation",
+ "value": "",
+ "label": "Quotation"
+ },
+ {
+ "component": "richtext",
+ "name": "attribution",
+ "value": "",
+ "label": "Attribution",
+ "valueType": "string"
+ }
+ ]
+ }
+ ],
+ "filters": []
+}
diff --git a/ue/models/blocks/_search.json b/ue/models/blocks/_search.json
new file mode 100644
index 0000000..382f44c
--- /dev/null
+++ b/ue/models/blocks/_search.json
@@ -0,0 +1,52 @@
+{
+ "definitions": [
+ {
+ "title": "Search",
+ "id": "search",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Search",
+ "model": "search",
+ "filter": "search"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "models": [
+ {
+ "id": "search",
+ "fields": [
+ {
+ "component": "text",
+ "valueType": "string",
+ "name": "index",
+ "label": "Index"
+ },
+ {
+ "component": "multiselect",
+ "name": "classes",
+ "value": "",
+ "label": "Options",
+ "valueType": "string",
+ "options": [
+ {
+ "name": "Search Type",
+ "children": [
+ {
+ "name": "Minimal",
+ "value": "minimal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "filters": []
+}
diff --git a/ue/models/blocks/_table.json b/ue/models/blocks/_table.json
new file mode 100644
index 0000000..6c31b3a
--- /dev/null
+++ b/ue/models/blocks/_table.json
@@ -0,0 +1,255 @@
+{
+ "definitions": [
+ {
+ "title": "Table",
+ "id": "table",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Table",
+ "model": "table",
+ "filter": "table"
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Row",
+ "id": "table-row",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block/item",
+ "template": {
+ "name": "Row",
+ "model": "table-row",
+ "column1text": "Column1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Row",
+ "id": "table-col-2",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block/item",
+ "template": {
+ "name": "Row",
+ "model": "table-col-2",
+ "column1text": "Column1",
+ "column2text": "Column2"
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Row",
+ "id": "table-col-3",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block/item",
+ "template": {
+ "name": "Row",
+ "model": "table-col-3",
+ "column1text": "Column1",
+ "column2text": "Column2",
+ "column3text": "Column3"
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Row",
+ "id": "table-col-4",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block/item",
+ "template": {
+ "name": "Row",
+ "model": "table-col-4",
+ "column1text": "Column1",
+ "column2text": "Column2",
+ "column3text": "Column3",
+ "column4text": "Column4"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "models": [
+ {
+ "id": "table",
+ "fields": [
+ {
+ "component": "multiselect",
+ "name": "classes",
+ "value": "",
+ "label": "Options",
+ "valueType": "string",
+ "options": [
+ {
+ "name": "Border",
+ "children": [
+ {
+ "name": "Striped",
+ "value": "striped"
+ },
+ {
+ "name": "Bordered",
+ "value": "bordered"
+ }
+ ]
+ },
+ {
+ "name": "Header",
+ "children": [
+ {
+ "name": "No Header",
+ "value": "no-header"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "component": "select",
+ "name": "filter",
+ "label": "Columns",
+ "valueType": "string",
+ "value": "table",
+ "options": [
+ {
+ "name": "1 Column",
+ "value": "table"
+ },
+ {
+ "name": "2 Columns",
+ "value": "table-2-columns"
+ },
+ {
+ "name": "3 Columns",
+ "value": "table-3-columns"
+ },
+ {
+ "name": "4 Columns",
+ "value": "table-4-columns"
+ },
+ {
+ "name": "5 Columns",
+ "value": "table-5-columns"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id": "table-row",
+ "fields": [
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column1text",
+ "label": "Column1"
+ }
+ ]
+ },
+ {
+ "id": "table-col-2",
+ "fields": [
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column1text",
+ "label": "Column1"
+ },
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column2text",
+ "label": "Column2"
+ }
+ ]
+ },
+ {
+ "id": "table-col-3",
+ "fields": [
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column1text",
+ "label": "Column1"
+ },
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column2text",
+ "label": "Column2"
+ },
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column3text",
+ "label": "Column3"
+ }
+ ]
+ },
+ {
+ "id": "table-col-4",
+ "fields": [
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column1text",
+ "label": "Column1"
+ },
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column2text",
+ "label": "Column2"
+ },
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column3text",
+ "label": "Column3"
+ },
+ {
+ "component": "richtext",
+ "valueType": "string",
+ "name": "column4text",
+ "label": "Column4"
+ }
+ ]
+ }
+ ],
+ "filters": [
+ {
+ "id": "table",
+ "components": ["table-row"]
+ },
+ {
+ "id": "table-2-columns",
+ "components": ["table-col-2"]
+ },
+ {
+ "id": "table-3-columns",
+ "components": ["table-col-3"]
+ },
+ {
+ "id": "table-4-columns",
+ "components": ["table-col-4"]
+ }
+ ]
+}
diff --git a/ue/models/blocks/_tabs.json b/ue/models/blocks/_tabs.json
new file mode 100644
index 0000000..e693e6a
--- /dev/null
+++ b/ue/models/blocks/_tabs.json
@@ -0,0 +1,104 @@
+{
+ "definitions": [
+ {
+ "title": "Tabs",
+ "id": "tabs",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Tabs",
+ "filter": "tabs"
+ }
+ }
+ }
+ }
+ },
+ {
+ "title": "Tabs Item",
+ "id": "tabs-item",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block/item",
+ "template": {
+ "name": "Tab",
+ "model": "tabs-item",
+ "title": "Tab Name",
+ "content_headingType": "h3"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "models": [
+ {
+ "id": "tabs-item",
+ "fields": [
+ {
+ "component": "text",
+ "valueType": "string",
+ "name": "title",
+ "value": "",
+ "label": "Tab Title"
+ },
+ {
+ "component": "text",
+ "valueType": "string",
+ "name": "content_heading",
+ "value": "",
+ "label": "Heading"
+ },
+ {
+ "component": "select",
+ "valueType": "string",
+ "name": "content_headingType",
+ "value": "",
+ "label": "Heading Type",
+ "options": [
+ {
+ "name": "H3",
+ "value": "h3"
+ },
+ {
+ "name": "H4",
+ "value": "h4"
+ },
+ {
+ "name": "H5",
+ "value": "h5"
+ },
+ {
+ "name": "H6",
+ "value": "h6"
+ }
+ ]
+ },
+ {
+ "component": "reference",
+ "valueType": "string",
+ "name": "content_image",
+ "label": "Image",
+ "multi": false
+ },
+ {
+ "component": "richtext",
+ "name": "content_richtext",
+ "value": "",
+ "label": "Content",
+ "valueType": "string"
+ }
+ ]
+ }
+ ],
+ "filters": [
+ {
+ "id": "tabs",
+ "components": [
+ "tabs-item"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/ue/models/blocks/_video.json b/ue/models/blocks/_video.json
new file mode 100644
index 0000000..3cc38fd
--- /dev/null
+++ b/ue/models/blocks/_video.json
@@ -0,0 +1,71 @@
+{
+ "definitions": [
+ {
+ "title": "Video",
+ "id": "video",
+ "plugins": {
+ "xwalk": {
+ "page": {
+ "resourceType": "core/franklin/components/block/v1/block",
+ "template": {
+ "name": "Video",
+ "model": "video",
+ "filter": "video"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "models": [
+ {
+ "id": "video",
+ "fields": [
+ {
+ "component": "aem-content",
+ "valueType": "string",
+ "name": "uri",
+ "label": "Video"
+ },
+ {
+ "component": "multiselect",
+ "name": "classes",
+ "value": "",
+ "label": "Options",
+ "valueType": "string",
+ "options": [
+ {
+ "name": "Auto Play",
+ "children": [
+ {
+ "name": "AutoPlay",
+ "value": "autoplay"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "component": "reference",
+ "valueType": "string",
+ "name": "placeholder_image",
+ "label": "Placeholder Image",
+ "multi": true
+ },
+ {
+ "component": "text",
+ "valueType": "string",
+ "name": "placeholder_imageAlt",
+ "value": "",
+ "label": "Placeholder Image Alt Text"
+ }
+ ]
+ }
+ ],
+ "filters": [
+ {
+ "id": "video",
+ "components": []
+ }
+ ]
+}
diff --git a/ue/models/blocks/accordion.json b/ue/models/blocks/accordion.json
deleted file mode 100644
index 519ab0c..0000000
--- a/ue/models/blocks/accordion.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
- "definitions": [
- {
- "title": "Accordion",
- "id": "accordion",
- "plugins": {
- "da": {
- "name": "accordion",
- "rows": 1,
- "columns": 2
- }
- }
- },
- {
- "title": "Accordion Item",
- "id": "accordion-item",
- "plugins": {
- "da": {
- "name": "accordion-item",
- "rows": 2,
- "columns": 0
- }
- }
- }
- ],
- "models": [
- {
- "id": "accordion-item",
- "fields": [
- {
- "component": "richtext",
- "valueType": "string",
- "name": "div:nth-child(1)",
- "value": "",
- "label": "Summary",
- "required": true
- },
- {
- "component": "richtext",
- "name": "div:nth-child(2)",
- "value": "",
- "label": "Text",
- "valueType": "string",
- "required": true
- }
- ]
- }
- ],
- "filters": [
- {
- "id": "accordion",
- "components": [
- "accordion-item"
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/ue/models/blocks/cards.json b/ue/models/blocks/cards.json
deleted file mode 100644
index 3626aab..0000000
--- a/ue/models/blocks/cards.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "definitions": [
- {
- "title": "Cards",
- "id": "cards",
- "plugins": {
- "da": {
- "unsafeHTML": "
"
- }
- },
- "model": "cards",
- "filter": "cards"
- },
- {
- "title": "Card",
- "id": "card",
- "plugins": {
- "da": {
- "unsafeHTML": "
"
- }
- },
- "model": "card"
- }
- ],
- "models": [
- {
- "id": "card",
- "fields": [
- {
- "component": "reference",
- "valueType": "string",
- "name": "div:nth-child(1)>picture:nth-child(1)>img:nth-child(3)[src]",
- "label": "Image",
- "multi": false
- },
- {
- "component": "text",
- "valueType": "string",
- "name": "div:nth-child(1)>picture:nth-child(1)>img:nth-child(3)[alt]",
- "label": "Image Alt",
- "multi": false
- },
- {
- "component": "richtext",
- "name": "div:nth-child(2)",
- "value": "",
- "label": "Text",
- "valueType": "string"
- }
- ]
- }
- ],
- "filters": [
- {
- "id": "cards",
- "components": [
- "card"
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/ue/models/blocks/columns.json b/ue/models/blocks/columns.json
deleted file mode 100644
index b0909ab..0000000
--- a/ue/models/blocks/columns.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "definitions": [
- {
- "title": "Columns",
- "id": "columns",
- "plugins": {
- "da": {
- "name": "columns",
- "rows": 1,
- "columns": 2,
- "behaviour": "columns"
- }
- }
- },
- {
- "title": "Columns Row",
- "id": "columns-row",
- "plugins": {
- "da": {
- "name": "columns-row",
- "behaviour": "columns-row"
- }
- }
- },
- {
- "title": "Columns Cell",
- "id": "columns-cell",
- "plugins": {
- "da": {
- "unsafeHTML": "
",
- "behaviour": "columns-cell"
- }
- }
- }
- ],
- "models": [
- {
- "id": "columns",
- "fields": [
- {
- "component": "number",
- "valueType": "number",
- "name": "columns",
- "label": "Number of Columns",
- "value": 2,
- "validation": {
- "numberMin": 1,
- "numberMax": 6
- }
- }
- ]
- }
- ],
- "filters": [
- {
- "id": "columns",
- "components": [
- "columns-row"
- ]
- },
- {
- "id": "columns-row",
- "components": []
- },
- {
- "id": "columns-cell",
- "components": [
- "text",
- "image"
- ]
- }
- ]
-}
diff --git a/ue/models/blocks/fragment.json b/ue/models/blocks/fragment.json
deleted file mode 100644
index 1ee10c9..0000000
--- a/ue/models/blocks/fragment.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "definitions": [
- {
- "title": "Fragment",
- "id": "fragment",
- "plugins": {
- "da": {
- "unsafeHTML": "
"
- }
- }
- }
- ],
- "models": [
- {
- "id": "fragment",
- "fields": [
- {
- "component": "text",
- "name": "div:nth-child(1)>div:nth-child(1)>p:nth-child(1)>a:nth-child(1)[href]",
- "label": "Fragment URL",
- "required": true
- },
- {
- "component": "text",
- "name": "div:nth-child(1)>div:nth-child(1)>p:nth-child(1)>a:nth-child(1)",
- "label": "Fragment URL Text"
- }
- ]
- }
- ],
- "filters": []
-}
\ No newline at end of file
diff --git a/ue/models/blocks/quote.json b/ue/models/blocks/quote.json
deleted file mode 100644
index 2f61b9f..0000000
--- a/ue/models/blocks/quote.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "definitions": [
- {
- "title": "Quote",
- "id": "quote",
- "plugins": {
- "da": {
- "name": "quote",
- "rows": 1,
- "columns": 1
- }
- }
- }
- ],
- "models": [
- {
- "id": "quote",
- "fields": [
- {
- "component": "richtext",
- "valueType": "string",
- "name": "div:nth-child(1)>div:nth-child(1)",
- "label": "Quote",
- "required": true
- },
- {
- "component": "text",
- "name": "div:nth-child(2)>div:nth-child(1)>p:nth-child(1)",
- "label": "Author",
- "valueType": "string"
- }
- ]
- }
- ],
- "filters": []
-}
diff --git a/ue/models/blocks/search.json b/ue/models/blocks/search.json
deleted file mode 100644
index 07af882..0000000
--- a/ue/models/blocks/search.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "definitions": [
- {
- "title": "Search",
- "id": "search",
- "plugins": {
- "da": {
- "name": "search",
- "rows": 1,
- "columns": 1
- }
- }
- }
- ],
- "models": [
- {
- "id": "search",
- "fields": [
- {
- "component": "text",
- "valueType": "string",
- "name": "div:nth-child(1)>div:nth-child(1)>p:nth-child(1)>a:nth-child(1)[href]",
- "label": "Search URL",
- "required": true
- },
- {
- "component": "text",
- "name": "div:nth-child(1)>div:nth-child(1)>p:nth-child(1)>a:nth-child(1)",
- "label": "Search URL Text",
- "valueType": "string"
- }
- ]
- }
- ],
- "filters": []
-}
diff --git a/ue/models/blocks/tabs.json b/ue/models/blocks/tabs.json
deleted file mode 100644
index a16a981..0000000
--- a/ue/models/blocks/tabs.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "definitions": [
- {
- "title": "Tabs",
- "id": "tabs",
- "plugins": {
- "da": {
- "unsafeHTML": "
"
- }
- }
- },
- {
- "title": "Tabs Item",
- "id": "tabs-item",
- "plugins": {
- "da": {
- "unsafeHTML": "
"
- }
- }
- }
- ],
- "models": [
- {
- "id": "tabs-item",
- "fields": [
- {
- "component": "text",
- "name": "div:nth-child(1)>p:nth-child(1)",
- "valueType": "string",
- "label": "Tab Name"
- },
- {
- "component": "richtext",
- "name": "div:nth-child(2)",
- "label": "Content",
- "valueType": "string"
- }
- ]
- }
- ],
- "filters": [
- {
- "id": "tabs",
- "components": ["tabs-item"]
- }
- ]
-}
diff --git a/ue/models/blocks/video.json b/ue/models/blocks/video.json
deleted file mode 100644
index b164292..0000000
--- a/ue/models/blocks/video.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "definitions": [
- {
- "title": "Video",
- "id": "video",
- "plugins": {
- "da": {
- "name": "video",
- "rows": 1,
- "columns": 1
- }
- }
- }
- ],
- "models": [
- {
- "id": "video",
- "fields": [
- {
- "component": "boolean",
- "name": "classes_autoplay",
- "label": "Autoplay Video",
- "valueType": "boolean"
- },
- {
- "component": "text",
- "name": "div:nth-child(1)>div:nth-child(1)>p:nth-child(1)>a:nth-child(1)[href]",
- "label": "Video URL",
- "valueType": "string",
- "required": true
- },
- {
- "component": "text",
- "name": "div:nth-child(1)>div:nth-child(1)>p:nth-child(1)>a:nth-child(1)",
- "label": "Video URL Text",
- "valueType": "string"
- },
- {
- "component": "reference",
- "name": "div:nth-child(1)>div:nth-child(1)>picture:nth-child(2)>img:nth-child(3)[src]",
- "label": "Poster Image",
- "valueType": "string"
- }
- ]
- }
- ],
- "filters": []
-}
\ No newline at end of file
diff --git a/ue/models/component-models.json b/ue/models/component-models.json
deleted file mode 100644
index 7735b50..0000000
--- a/ue/models/component-models.json
+++ /dev/null
@@ -1,17 +0,0 @@
-[
- {
- "...": "./page.json#/models"
- },
- {
- "...": "./text.json#/models"
- },
- {
- "...": "./image.json#/models"
- },
- {
- "...": "./section.json#/models"
- },
- {
- "...": "./blocks/*.json#/models"
- }
-]
diff --git a/ue/models/text.json b/ue/models/text.json
deleted file mode 100644
index 5dc48d7..0000000
--- a/ue/models/text.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "definitions": [
- {
- "title": "Text",
- "id": "text",
- "plugins": {
- "da": {
- "name": "text",
- "type": "text"
- }
- }
- }
- ],
- "models": []
-}
\ No newline at end of file