Data seeding, filter overhaul, UI scaling fixes, sanitized AlarmAnalysis copy

Data & simulation:
- simulation_tags.json: re-prioritize 10 tags to Medium so all four
  priorities appear in live data (backfilled journal history to match)
- SimHarness probe P2: ack-user/includeData ground truth + filtered-bundle
  verification against the live journal

Data layer (PrimeControls.calc/alarms):
- filters now drive every metric: queryStatus rows (Active Now/Unacked/
  Standing) filtered via calc.apply_status_filters; event_count counts only
  filtered instances (per-instance n_events); dropdown options enumerate
  unfiltered data so choices never collapse
- build_bundle refactored into _assemble(); when filters are active an
  unfiltered mirror is attached as bundle.overview - the Overview tab stays
  a plant-wide summary while all other consumers bind filtered sections
- _fetch_journal now honors includeData (required for ackUserName; without
  it ack attribution is always None); enabled for journal rows + source
  detail so Top Ack Users and the Ack By column populate

FilterBar/Dashboard:
- root-cause fix: bidirectional bindings never wrote dropdown selections
  back to session props, so filters silently did nothing; Apply now pulls
  values directly from the sibling controls, Clear resets both
- multi-select dropdowns cap at 280px and wrap chips; filter bar row is
  auto-height so wrapped chips push tabs down instead of overlapping
- filter bar hidden on the Overview tab (not applicable there)

UI scaling:
- Header: Prime logo added; KpiCard compacted to fit the 71px KPI row
  (basis-95% overflow fix, chip hugs text, embeds clipped) - no scrollbars
- Overview timeline: thinned x labels (minDistance 140), labels anchored
  below the axis, smaller legend markers
- Bad Actors focus chip shows the full source string with the clear X
- popup repeaters (Daily Activity, ScoreBars) no longer overflow
  (useDefaultViewWidth/Height off, taller strip); 5px table cell padding

Tooling/tests:
- lint_project.py: accept propConfig params.* as param declarations
  (Designer saves strip null params entries)
- tests: 31 -> 34 (status-filter semantics, overview mirror, filtered
  event counts)
- .gitignore: runtime churn (valueStore.idb, local-system-properties,
  migration logs, thumbnails, .schemas)

New project: AlarmAnalysis - submission copy of PrimeBAT with client-visible
Prime Controls branding removed (logo, subtitle, project title, shift report
heading); PrimeControls organizational namespaces retained per spec.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 16:27:48 -05:00
parent b70b4d6991
commit d353c5001e
165 changed files with 13988 additions and 525 deletions

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,10 @@
{
"base": {
"style": {
"backgroundColor": "var(--neutral-10)",
"borderRadius": "8px",
"boxShadow": "0 1px 3px rgba(0,0,0,0.12)",
"padding": "12px"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,12 @@
{
"base": {
"style": {
"color": "var(--neutral-70)",
"fontSize": "12px",
"fontWeight": "bold",
"letterSpacing": "0.08em",
"marginBottom": "8px",
"textTransform": "uppercase"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,13 @@
{
"base": {
"style": {
"backgroundColor": "#D6455026",
"borderRadius": "10px",
"color": "#D64550",
"fontSize": "11px",
"fontWeight": "bold",
"paddingLeft": "6px",
"paddingRight": "6px"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,13 @@
{
"base": {
"style": {
"backgroundColor": "var(--neutral-30)",
"borderRadius": "10px",
"color": "var(--neutral-70)",
"fontSize": "11px",
"fontWeight": "bold",
"paddingLeft": "6px",
"paddingRight": "6px"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,13 @@
{
"base": {
"style": {
"backgroundColor": "#2E9E5B26",
"borderRadius": "10px",
"color": "#2E9E5B",
"fontSize": "11px",
"fontWeight": "bold",
"paddingLeft": "6px",
"paddingRight": "6px"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,9 @@
{
"base": {
"style": {
"color": "var(--neutral-50)",
"fontStyle": "italic",
"textAlign": "center"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,10 @@
{
"base": {
"style": {
"backgroundColor": "#2E9E5B",
"borderRadius": "8px",
"color": "#FFFFFF",
"fontWeight": "bold"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,10 @@
{
"base": {
"style": {
"backgroundColor": "#7CB342",
"borderRadius": "8px",
"color": "#FFFFFF",
"fontWeight": "bold"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,10 @@
{
"base": {
"style": {
"backgroundColor": "#E5C453",
"borderRadius": "8px",
"color": "#FFFFFF",
"fontWeight": "bold"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,10 @@
{
"base": {
"style": {
"backgroundColor": "#E8883A",
"borderRadius": "8px",
"color": "#FFFFFF",
"fontWeight": "bold"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,10 @@
{
"base": {
"style": {
"backgroundColor": "#D64550",
"borderRadius": "8px",
"color": "#FFFFFF",
"fontWeight": "bold"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,10 @@
{
"base": {
"style": {
"backgroundColor": "#8A94A6",
"borderRadius": "8px",
"color": "#FFFFFF",
"fontWeight": "bold"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,8 @@
{
"base": {
"style": {
"backgroundColor": "var(--neutral-20)",
"padding": "12px"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,15 @@
{
"base": {
"style": {
"backgroundColor": "#D64550",
"borderRadius": "4px",
"color": "#FFFFFF",
"fontSize": "12px",
"fontWeight": "bold",
"paddingBottom": "2px",
"paddingLeft": "8px",
"paddingRight": "8px",
"paddingTop": "2px"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,15 @@
{
"base": {
"style": {
"backgroundColor": "#8A94A6",
"borderRadius": "4px",
"color": "#FFFFFF",
"fontSize": "12px",
"fontWeight": "bold",
"paddingBottom": "2px",
"paddingLeft": "8px",
"paddingRight": "8px",
"paddingTop": "2px"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,15 @@
{
"base": {
"style": {
"backgroundColor": "#E8883A",
"borderRadius": "4px",
"color": "#FFFFFF",
"fontSize": "12px",
"fontWeight": "bold",
"paddingBottom": "2px",
"paddingLeft": "8px",
"paddingRight": "8px",
"paddingTop": "2px"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,15 @@
{
"base": {
"style": {
"backgroundColor": "#5B9BD5",
"borderRadius": "4px",
"color": "#FFFFFF",
"fontSize": "12px",
"fontWeight": "bold",
"paddingBottom": "2px",
"paddingLeft": "8px",
"paddingRight": "8px",
"paddingTop": "2px"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,15 @@
{
"base": {
"style": {
"backgroundColor": "#E5C453",
"borderRadius": "4px",
"color": "#FFFFFF",
"fontSize": "12px",
"fontWeight": "bold",
"paddingBottom": "2px",
"paddingLeft": "8px",
"paddingRight": "8px",
"paddingTop": "2px"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,10 @@
{
"base": {
"style": {
"backgroundColor": "#D6455026",
"borderRadius": "6px",
"color": "#D64550",
"fontWeight": "bold"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,10 @@
{
"base": {
"style": {
"backgroundColor": "#8A94A626",
"borderRadius": "6px",
"color": "#8A94A6",
"fontWeight": "bold"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,10 @@
{
"base": {
"style": {
"backgroundColor": "#E8883A26",
"borderRadius": "6px",
"color": "#E8883A",
"fontWeight": "bold"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,10 @@
{
"base": {
"style": {
"backgroundColor": "#5B9BD526",
"borderRadius": "6px",
"color": "#5B9BD5",
"fontWeight": "bold"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,10 @@
{
"base": {
"style": {
"backgroundColor": "#E5C45326",
"borderRadius": "6px",
"color": "#E5C453",
"fontWeight": "bold"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,8 @@
{
"base": {
"style": {
"backgroundColor": "#3B7DD818",
"color": "#3B7DD8"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,9 @@
{
"base": {
"style": {
"backgroundColor": "#D6455018",
"color": "#D64550",
"fontWeight": "bold"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,8 @@
{
"base": {
"style": {
"backgroundColor": "#2E9E5B18",
"color": "#2E9E5B"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,16 @@
{
"base": {
"style": {
"borderBottomColor": "#3B7DD8",
"borderBottomStyle": "solid",
"borderBottomWidth": "3px",
"color": "var(--neutral-90)",
"cursor": "pointer",
"fontWeight": "bold",
"paddingBottom": "6px",
"paddingLeft": "16px",
"paddingRight": "16px",
"paddingTop": "8px"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,23 @@
{
"base": {
"style": {
"borderBottomColor": "rgba(0,0,0,0)",
"borderBottomStyle": "solid",
"borderBottomWidth": "3px",
"color": "var(--neutral-60)",
"cursor": "pointer",
"paddingBottom": "6px",
"paddingLeft": "16px",
"paddingRight": "16px",
"paddingTop": "8px"
}
},
"variants": [
{
"pseudo": "hover",
"style": {
"color": "var(--neutral-90)"
}
}
]
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,9 @@
{
"base": {
"style": {
"color": "var(--neutral-90)",
"fontSize": "28px",
"fontWeight": "bold"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,9 @@
{
"base": {
"style": {
"color": "var(--neutral-90)",
"fontSize": "22px",
"fontWeight": "bold"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,8 @@
{
"base": {
"style": {
"color": "var(--neutral-60)",
"fontSize": "12px"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"style.json"
],
"attributes": {}
}

View File

@@ -0,0 +1,10 @@
{
"base": {
"style": {
"backgroundColor": "var(--neutral-10)",
"borderRadius": "8px",
"boxShadow": "0 1px 3px rgba(0,0,0,0.12)",
"padding": "8px"
}
}
}