$ErrorActionPreference = 'Stop' $root = Split-Path $PSScriptRoot -Parent $component = [System.IO.File]::ReadAllText((Join-Path $root 'components/tree/TreeMemberForm.vue'), [System.Text.Encoding]::UTF8) foreach ($expected in @( 'grid-template-columns: auto minmax(0, 1fr)', 'min-height: min(640px, calc((100vw - 16px) * 1.48))', 'pointer-events: none' )) { if (-not $component.Contains($expected)) { throw "TreeMemberForm document-flow contract missing: $expected" } } foreach ($selector in @('.member-form, .member-form-result','.member-field > text','.member-field input')) { $escaped = [regex]::Escape($selector) if ($component -match "(?s)$escaped\s*\{[^}]*position\s*:\s*(absolute|fixed|sticky)\s*;") { throw "TreeMemberForm normal content selector uses positioning: $selector" } } Write-Output 'TREE-MEMBER-FORM-DOCUMENT-FLOW-CONTRACT PASS'