$ErrorActionPreference = 'Stop' $root = Split-Path $PSScriptRoot -Parent $publish = [System.IO.File]::ReadAllText((Join-Path $root 'pages/family/f02-publish-feed.vue'), [System.Text.Encoding]::UTF8) $editor = [System.IO.File]::ReadAllText((Join-Path $root 'pages/family/f06-article-editor.vue'), [System.Text.Encoding]::UTF8) if ($publish -match 'position\s*:') { throw 'F02 must keep its editor in document flow' } if ($editor -match 'position\s*:') { throw 'F06 must keep its editor in document flow' } if (-not $publish.Contains('@include adaptive.adaptive-family-field;')) { throw 'F02 field frame must come from the adaptive profile owner' } if (-not $editor.Contains('@include adaptive.adaptive-family-field;')) { throw 'F06 field frame must come from the adaptive profile owner' } if ($publish -notmatch '(?s)]*\sauto-height(?:\s|>)') { throw 'F02 long-form textarea must grow with its content' } if ($editor -notmatch '(?s)]*\sauto-height(?:\s|>)') { throw 'F06 long-form textarea must grow with its content' } if ($publish -match '100%\s+100%\s+no-repeat' -or $editor -match '100%\s+100%\s+no-repeat') { throw 'Family editors must not stretch decorative backgrounds' } if ($editor -match ']+class="editor-control[^>]*>\s*