feat: Divi-Adapter sperren je Fähigkeit – ReleaseGate::feature/assertFeature(s), DiviLocked und Ablehnung nennen die betroffenen Fähigkeiten (D6), DiviSaver prüft Seiten schreiben und die Fähigkeit des Speicherbereichs (D5), DesignArea::feature; Test-Standard alle Fähigkeiten freigegeben

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jan-Niclas Loosen
2026-10-18 22:10:41 +02:00
co-authored by Claude Opus 5.5
parent c4efeb3ba4
commit e387d8d29e
20 changed files with 525 additions and 65 deletions
@@ -94,12 +94,12 @@ class DesignSystemWriter implements DiviAdapter
* @param bool $mayRemove Deleting or restoring: fewer presets are allowed and removed ones
* leave Divi's legacy option (like a DELETE_* sync).
* @return array<array-key, mixed> The inventory Divi stored.
* @throws DiviLocked
* @throws DiviLocked When preset-write is not released – before anything is written.
* @throws RuntimeException When Divi refuses the inventory.
*/
public function savePresets(array $rest, bool $mayRemove): array
{
ReleaseGate::assertWritable();
ReleaseGate::assertFeature(DiviFeature::PresetWrite);
$prepared = GlobalPreset::prepare_data($rest);
$current = GlobalPreset::get_data();
$refusal = GlobalPreset::validate_preset_count(