attributes exists and contains itemsReusables\\ProductAttributes\\Default{
"attributes": [
{
"name": "Sample text",
"slug": "sample-slug",
"usedAsFilter": false,
"displayOnProduct": true,
"displayOnList": true,
"displayOnCompare": true,
"attributeId": "Attribute Id",
"attributeItemId": "Attribute Item Id",
"attributeItemValue": "Sample text"
},
"..."
],
"name": "ProductAttributes",
"view": "Default",
"section": "SectionA",
"settings": {
"id": "Component Id",
"section": "SectionA",
"type": "NoirProductAttributes",
"name": "ProductAttributes",
"configuredInContentApi": true,
"view": "Default",
"displayName": "",
"cssClass": "",
"header": "Sample text",
"alignment": "Center"
},
"translations": {
"...": "..."
}
}settings.idattributes[] (must have at least one item)settings.cssClasssettings.headersettings.alignment (Left | Center | Right)Components/ProductAttributes/Default.js exposes:x-data binding and no methods).Reusables\\ProductAttributes\\Defaultattributes.size > 0.Left → text-left items-startCenter → text-center items-centerRight → text-right items-endsettings.alignment.<section id="comp-{{ id }}" ...><h2> when settings.header is non-empty{% render 'Reusables\\ProductAttributes\\Default', attributes: attributes %}