Skip to content

P1 UI: unify premium cool-blue inputs, dropdowns, dialogs and empty states (#730) - #732

Closed
masarray wants to merge 6 commits into
ui/p0-smv-coolblue-normal-window-20261024from
ui/p1-premium-shared-controls-20261024
Closed

masarray wants to merge 6 commits into
ui/p0-smv-coolblue-normal-window-20261024from
ui/p1-premium-shared-controls-20261024

Conversation

@masarray

Copy link
Copy Markdown
Owner

P1 — reusable premium component visual language (stacked on P0 #731)

P1 implements the second phase of #730. It intentionally targets ui/p0-smv-coolblue-normal-window-20261024 so the diff contains P1 only (no RC control/engine changes, no cross-thread overwrite).

Changes

  • Reusable cool-blue WorkstationTextBox: compact 34 DIP input, rounded surface, PART_ContentHost, hover/focus/read-only/disabled/validation error states.
  • Reusable WorkstationComboBox: preserves approved ModernComboBox dropdown presentation, popup/item navigation/text search, selection, 34 DIP compact toolbar height. Exposes compatibility ModernComboBox and implicit ComboBox for generic workstation dropdowns.
  • Control safety: command value can become editable via AllowCustomValue; ControlCommandWindow.CommandValueBox explicitly uses WorkstationEditableComboBox with no custom template, preserving native PART_EditableTextBox and two-way Text behavior.
  • Consistent WorkstationEmptyState with cool-blue panel/border token; replaces GOOSE publisher and event empty-state chrome without changing bindings/visibility logic.
  • Task dialog named brushes now inherit canonical app palette (CoolCanvasColor, CoolBorderColor, InkColor, etc.) via DynamicResource. Compacted task dialog card radius/padding/title without touching IP-octet editor behavior.
  • Shared scrollbar thumbs use cool-blue interaction colors. Base Card uses compact 10 DIP corner/11 DIP padding rather than bulky surfaces.
  • New P1 source-level regression tests protect visual and keyboard/command binding contracts.

Must verify

  • Exact-SHA Windows Build, application tests + IO List workflow
  • WPF resource creation at first paint (no XAML resource-not-found)
  • Editable CommandValueBox accepts typed custom values when AllowCustomValue is true
  • GOOSE empty states render, show and hide identically except shared chrome
  • IP octet editor and advanced disclosure behavior unchanged
  • SMV phasor/waveform/measurement headers and graph scaling unchanged
  • Multi-resolution / DPI visual acceptance in Windows
  • No false positives for command safety / control results

Scope: XAML components and tests only. No changes to ARIEC61850, report, RCB, MMS, GOOSE, SV packet logic, or backend state. Keep draft until CI and operator visual acceptance. This PR depends on P0 #731 and should not be merged directly into RC/main out of order.

masarray commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner Author

P1 exact-SHA CI qualified — 2026-10-24

Source commit: c47a622037110a09ed1e16653aac0c44b5f40de2.
Windows Build: https://github.com/masarray/arsas/actions/runs/40092556401

ALL AUTOMATED CHECKS PASS on this SHA

  • Windows restore/build, P10 pinned ARIEC identity + SCL regression
  • Full ARSAS application regression suite, including new P1SharedComponentVisualContractsTests
  • WCAG dialog contrast regression (dynamic token resolution fixed)
  • Canonical exact-SHA test attestation and evidence upload
  • Pinned ArdIrec native CTest and packaged bridge managed tests
  • Real single-EXE portable publish and smoke test
  • Sealed Windows package input and artifact uploads
  • CI P1 advisory classifier (run 40092556406)

The earlier 1 failing test (IedTaskDialogVisualRegressionTests.SharedDialogPalette_MeetsReadableForegroundContrast) only assumed literal colors; the amended test resolves shared DynamicResource names and still enforces the original readable contrast thresholds. Calculated WCAG ratios: ink/canvas 11.96, muted/canvas 4.65, ink/card 12.74, muted/card 4.95.

Remaining human acceptance: visual screenshots at 100/125/150% DPI (8 main tabs + modal dialogs), and operator inspection of command/free-text and Smart IP workflows. PR stays draft, stacked on P0 #731; no main/RC merge until the visual gates and dependency integration are approved. Engine, control and SSOT untouched.

Copy link
Copy Markdown
Owner Author

D28 maintainer-directed backlog closure: this historical candidate is obsolete, not merged. The operator confirmed that newer successful field evidence is the working baseline and will not supply more captures for old branches. Rather than reopen past FAT/rebase cycles, archive this draft and preserve its exact source HEAD c47a622037110a09ed1e16653aac0c44b5f40de2, comments and code history. This does not imply every unmerged change in this PR is already included in RC or stable, and does not weaken IEC 61850 Write/control safety. Accepted published v1.6.42 is unchanged; no new device test, release or engine repin is requested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant