feat: Divi tools edit Theme Builder layouts; visible layouts need confirm

TB layouts load through ThemeBuilderAccess (P12), live layouts (attached +
enabled, Q8) need a dry run and confirm (Q9) and get the shared restore point
of VisibleEdits, extracted from GlobalEdits (Q2: backup when revisions are
off, P9 refusals, P14 naming). divi/post-content only in body layouts (F22),
also for nested stored nodes. SaveScope::ThemeBuilderLayout sets Divi flags
and clears site CSS + TB cache.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-27 15:45:07 +02:00
co-authored by Claude Opus 5.5
parent 4ff1c1e2a5
commit b1dd35abd8
27 changed files with 1106 additions and 132 deletions
+88 -1
View File
@@ -4345,6 +4345,92 @@
}
}
}
},
{
"name": "divi/post-content",
"title": "Post Content",
"category": "module",
"appearance": {
"multiple": false,
"multipleAliases": [
"divi/fullwidth-post-content"
],
"themeBuilderLayouts": [
"body"
]
},
"attributes": {
"module": {
"settings": {
"meta": {
"meta": []
},
"advanced": {
"html": []
},
"decoration": {
"animation": [],
"attributes": [],
"background": [],
"bodyFont": [],
"border": [],
"boxShadow": [],
"conditions": [],
"disabledOn": [],
"filters": [],
"interactions": [],
"headingFont": [],
"overflow": [],
"order": [],
"position": [],
"scroll": [],
"sizing": [],
"spacing": [],
"sticky": [],
"transform": [],
"zIndex": []
}
}
},
"image": {
"settings": {
"decoration": {
"border": {
"groupType": "group-item",
"item": {
"groupSlug": "designImage",
"priority": 10,
"render": true,
"component": {
"type": "group",
"name": "divi/border",
"props": {
"grouped": false,
"fieldLabel": "Image"
}
}
}
},
"boxShadow": {
"groupType": "group-item",
"item": {
"groupSlug": "designImage",
"priority": 15,
"render": true,
"component": {
"type": "group",
"name": "divi/box-shadow",
"props": {
"grouped": false,
"fieldLabel": "Image"
}
}
}
}
}
}
}
}
}
],
"defaults": {
@@ -4887,6 +4973,7 @@
}
}
}
}
},
"divi/post-content": []
}
}