fix: Task 6 review round 1 - admin label overlap, heading default level, structure deny-list, row widths (S41)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01At3V6SjwbMe6eMzVGW3Hs7
This commit is contained in:
2026-09-26 15:26:12 +02:00
co-authored by Claude Opus 5.5
parent 22bb1528db
commit 909ac82594
7 changed files with 294 additions and 11 deletions
@@ -22,6 +22,12 @@ final class AttrMap
'builderVersion', 'modulePreset', 'groupPreset', 'globalModule', 'globalParent', 'localAttrs',
];
/** Whether two attribute paths reach the same value: equal, or one lies below the other. */
public static function overlaps(string $a, string $b): bool
{
return $a === $b || str_starts_with($a, $b . '.') || str_starts_with($b, $a . '.');
}
/**
* @param array<string, mixed> $attrs
* @return array<string, mixed> Path => breakpoint map (or the raw value of an odd leaf).