修改完成

This commit is contained in:
2026-07-21 07:53:03 +08:00
parent 01d246c47b
commit ff60119277
172 changed files with 7982 additions and 2999 deletions
+15 -5
View File
@@ -8,13 +8,23 @@ foreach ($expected in @(
'class="person-edit-action"','class="person-save-action"','class="person-cancel-action"',
'shortFields','longFields','person-field__label','person-long-field__label','const enterEdit = () =>','const savePerson = () =>',
'const returnToPeople = () =>','r01-person-name-card.png','module-content-frame.png','module-field-frame.png',
'class="person-card-skin"','pointer-events: none','ModulePageBackground','PageHeader','AppButton','AppLoading','AppToast'
'ModulePageBackground','PageHeader','AppButton','AppLoading','AppToast'
)) { Assert-Contains $page $expected }
foreach ($forbidden in @('<ModulePage page-id="r02"','import ModulePage from')) { if ($page.Contains($forbidden)) { throw "R02 retains forbidden dependency: $forbidden" } }
if ($catalog -match '(?m)^\s*r02\s*:') { throw 'R02 obsolete page-catalog owner must be removed' }
if ($page -notmatch '(?s)\.person-card-skin\s*\{[^}]*position\s*:\s*absolute\s*;') { throw 'R02 decorative skin must use a local absolute layer' }
foreach ($selector in @('.person-identity-card__copy','.person-field__label','.person-field input','.person-field-error','.person-long-field__label','.person-long-field textarea','.person-state-action')) {
$escaped = [regex]::Escape($selector)
if ($page -match "(?s)$escaped\s*\{[^}]*position\s*:\s*(absolute|fixed|sticky)\s*;") { throw "R02 normal content selector uses positioning: $selector" }
foreach ($forbidden in @('<image class="person-card-skin"','.person-card-skin')) {
if ($page.Contains($forbidden)) { throw "R02 must use container backgrounds instead of positioned decorative skins: $forbidden" }
}
if ($page -match '(?im)(?<![-\w])position\s*:') {
throw 'R02 must not contain position declarations'
}
foreach ($rule in @(
'(?s)\.person-detail-page\s*\{[^}]*display:\s*flex;[^}]*flex-direction:\s*column;',
'(?s)\.person-detail-header,\.person-detail-loading,\.person-detail-content\s*\{[^}]*z-index:\s*1;',
'(?s)\.person-identity-card\s*\{[^}]*background:\s*url\("/static/assets/modules/records/transparent/r01-person-name-card\.png"\) center / 100% 100% no-repeat;',
'(?s)\.person-archive-card,\.person-long-field,\.person-state-card\s*\{[^}]*background:\s*url\("/static/assets/modules/records/transparent/module-content-frame\.png"\) center / 100% 100% no-repeat;',
'(?s)\.person-field\s*\{[^}]*background:\s*url\("/static/assets/modules/records/transparent/module-field-frame\.png"\) center / 100% 100% no-repeat;'
)) {
if ($page -notmatch $rule) { throw "R02 document-flow background rule missing: $rule" }
}
Write-Output 'R02-PERSON-DETAIL-CONTRACT PASS'