M2 conditional formatting and row-level styling engine
Problem
Implement conditional formatting primitives and row-level style application with deterministic rule ordering and conflict handling.
Context
- Table formatting work needs deterministic styling rules, especially when row-level and column-level rules overlap.
- Query-layer logic should keep data meaning and condition computation, while the table layer maps that data to presentation.
- The engine must be predictable enough for docs, examples, and QA to rely on.
Possible Solutions
- A - Support only static formatting and leave conditional behavior to custom render code: easy, but too limited.
- B - Allow freeform rule evaluation with broad override powers at every scope: flexible, but hard to reason about.
- C - Recommended: implement a bounded conditional-formatting engine with explicit rule order, limited style targets, and clear conflict resolution.
Plan
- Define the rule model, supported predicates, and allowed style outputs.
- Specify precedence between table defaults, column config, and row-level conditional rules.
- Implement the engine with deterministic merge behavior and compile-time validation.
- Add examples and tests for overlapping rules, invalid configs, and common BI-style use cases.
Implementation Progress
QA Exploration
- [ ] QA exploration completed (or N/A for non-UI tasks)
Review Feedback
- [ ] Review cleared