settings.header)settings.sets[]{
"name": "TextWithImage",
"view": "Default",
"section": "SectionA",
"settings": {
"sets": [
{
"image": {
"link": "https://example.com/media/sample.jpg",
"alt": "Sample text"
},
"title": "Sample title",
"text": "Sample text",
"buttonText": "Sample button text",
"buttonLink": "/sample",
"verticalAlignment": 0,
"horizontalAlignment": 2
},
"..."
],
"id": "Component Id",
"section": "SectionA",
"type": "NoirTextWithImage",
"name": "TextWithImage",
"configuredInContentApi": true,
"view": "Default",
"displayName": "Sample text",
"cssClass": "",
"header": "",
"alignment": "Left"
},
"translations": {
"clickToLearnMoreAbout": "Sample text",
"noImageAltAvailable": "Sample text"
}
}settings.idsettings.sets[]settings.cssClasssettings.headersettings.alignment (Left, Center, Right)set.image.linkset.image.altset.titleset.textset.buttonTextset.buttonLinkset.horizontalAlignment (numeric)set.verticalAlignment (numeric)translations.clickToLearnMoreAbouttranslations.noImageAltAvailableComponents/TextWithImage/Default.js currently exports an empty object:x-data) in this component’s Liquid template.horizontalAlignment and verticalAlignment are numeric enums interpreted in Liquid.alt falls back to: set.image.alt → set.title → settings.header → translations.noImageAltAvailable.widthClass based on how many sets exist:md:w-1/2md:w-1/3md:flex-1onlyImage = set.image and set.title == null to switch image sizing (cover vs contain).horizontalAlignment: 0 = left, 2 = center, 3 = rightverticalAlignment: 0 = top, 2 = center, 3 = bottombuttonText and buttonLink exist.