feat: complete legacy parity and modernize operator UI

This commit is contained in:
2026-07-22 12:34:46 +09:00
parent fc4007d676
commit 939c252d23
149 changed files with 26515 additions and 1736 deletions

View File

@@ -68,10 +68,10 @@ public sealed class LegacyWorkspaceLayoutContractTests
}
[Fact]
public void WorkAndScheduleUseResponsiveTwoToOneColumns()
public void WorkAndScheduleGiveTheAlwaysVisibleScheduleAWiderResponsiveShare()
{
Assert.Contains(
"grid-template-columns: minmax(900px, 2fr) minmax(600px, 1fr);",
"grid-template-columns: minmax(900px, 1.75fr) minmax(600px, 1fr);",
Styles,
StringComparison.Ordinal);
Assert.Contains(
@@ -139,6 +139,13 @@ public sealed class LegacyWorkspaceLayoutContractTests
Assert.Contains(".playout-actions .take-in:not(:disabled)", Styles, StringComparison.Ordinal);
Assert.Contains(".playout-actions .next:not(:disabled)", Styles, StringComparison.Ordinal);
Assert.Contains(".playout-actions .take-out:not(:disabled)", Styles, StringComparison.Ordinal);
Assert.Contains(
"Contemporary density refinement: keep operator geometry, clarify visual hierarchy",
Styles,
StringComparison.Ordinal);
Assert.Contains(".stock-result.selected", Styles, StringComparison.Ordinal);
Assert.Contains(".playlist-heading-count", Styles, StringComparison.Ordinal);
Assert.Contains(".playlist-rows:empty::after", Styles, StringComparison.Ordinal);
Assert.Contains(
".playlist-data-row[data-active=\"true\"]:not(.on-air)",
Styles,
@@ -169,6 +176,16 @@ public sealed class LegacyWorkspaceLayoutContractTests
@"class=""playlist-heading-icon""[\s\S]*?<svg[^>]*viewBox=""0 0 24 24""",
RegexOptions.CultureInvariant),
Markup);
Assert.Matches(
new Regex(
@"id=""playlist-heading-count""[^>]*role=""status""[^>]*aria-live=""polite""[^>]*aria-atomic=""true""",
RegexOptions.CultureInvariant),
Markup);
Assert.Contains("const nextHeadingCount = `", App, StringComparison.Ordinal);
Assert.Contains(
"if (playlistHeadingCount.textContent !== nextHeadingCount)",
App,
StringComparison.Ordinal);
}
[Fact]
@@ -224,6 +241,16 @@ public sealed class LegacyWorkspaceLayoutContractTests
Assert.Contains("menuButton.click()", Navigation, StringComparison.Ordinal);
Assert.Contains("pendingKeyboardMarketTabId", Navigation, StringComparison.Ordinal);
Assert.Contains("pendingButton.focus()", Navigation, StringComparison.Ordinal);
Assert.Contains("window.requestAnimationFrame(function", Navigation,
StringComparison.Ordinal);
Assert.Contains("options.authoritativeNativeRender === true", Navigation,
StringComparison.Ordinal);
Assert.Contains("hasPendingKeyboardMarketFocus", Navigation,
StringComparison.Ordinal);
Assert.Contains("document.addEventListener(\"pointerdown\"", Navigation,
StringComparison.Ordinal);
Assert.DoesNotContain("catalogWorkspace.contains(active)", Navigation,
StringComparison.Ordinal);
Assert.Contains("LegacyWorkspaceNavigation", Navigation, StringComparison.Ordinal);
Assert.Contains("nav-collapsed", Navigation, StringComparison.Ordinal);
Assert.DoesNotContain("postMessage", Navigation, StringComparison.Ordinal);