feat(dashboards): table conditional formatting - #51
Conversation
Per-column format (string or object) combining number display with value-based coloring: flat fills, gradients with domain anchors (value/percent/percentile), built-in schemes and custom palettes, rule-based styling with cross-column comparisons, text styles, and like to mirror another column.
Prompt To Fix All With AI### Issue 1
frontend/src/components/widgets/TableWidget.tsx:65-66
**Chained `like` resolves wrong source**
When column A uses `like: B` and B uses `like: C`, A adopts B's unresolved format but uses B's data index while B uses C's values, causing A to render different colors from the column it is configured to mirror.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Reviews (1): Last reviewed commit: "feat(dashboards): add table conditional ..." | Re-trigger Greptile |
|
Reviews (2): Last reviewed commit: "fix(dashboards): resolve chained format...." | Re-trigger Greptile |
|
Reviews (3): Last reviewed commit: "revert(dashboards): drop custom palettes..." | Re-trigger Greptile |
Prompt To Fix All With AI### Issue 1
frontend/src/components/widgets/TableWidget.tsx:60-64
**Cyclic `like` resolves wrong source**
When configured columns form a multi-column cycle such as A → B → A, validation accepts it and this traversal returns the revisited A as a terminal source, causing cells to silently use the wrong format and value source.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Reviews (4): Last reviewed commit: "polish(dashboards): softer table fills a..." | Re-trigger Greptile |
|
Reviews (5): Last reviewed commit: "fix(dashboards): bail out of cyclic form..." | Re-trigger Greptile |
|
Reviews (6): Last reviewed commit: "polish(dashboards): let cell text follow..." | Re-trigger Greptile |
…lace domain/scheme
|
Reviews (7): Last reviewed commit: "refactor(dashboards): format is an order..." | Re-trigger Greptile |
|
Reviews (8): Last reviewed commit: "style: gofmt" | Re-trigger Greptile |
|
Reviews (9): Last reviewed commit: "fix(dashboards): scaffold + example tabl..." | Re-trigger Greptile |
…ain wording; bump skill to v6
|
Reviews (10): Last reviewed commit: "chore(dashboards): keep create-dashboard..." | Re-trigger Greptile |
|
Reviews (11): Last reviewed commit: "polish(dashboards): square table cells (..." | Re-trigger Greptile |
…shipped template A/B test (8 conditional-formatting tasks x verbose/compact reference, validated with dac validate) showed the compact section matches the verbose one on pass rate and semantic correctness with zero hallucinations, so align the local skill's CF section with the already -compact bundled template. Full detail stays in docs/dashboards/widgets.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Reviews (12): Last reviewed commit: "docs(dashboards): compact create-dashboa..." | Re-trigger Greptile |
…s, not exhaustive coverage The prose already enumerates every operator, unit, and color, so the worked example only needs to show each distinct shape once. Drop redundant columns (flat fill now shown via is_empty, percentile folded into the range/unit comment, date operators listed in prose): 10 columns -> 7, ~54 -> ~39 lines. Applied identically to the bundled template and the local copy. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Reviews (13): Last reviewed commit: "docs(dashboards): trim conditional-forma..." | Re-trigger Greptile |
Summary
Adds table conditional formatting: a per-column
format(string shorthand or object) that combines number display with value-based coloring. Supports flat fills, gradients withdomainanchors (value / percent / percentile), built-in schemes and dashboard-level custompalettes, rule-based styling (all operators, cross-column comparisons, text styles), andliketo mirror another column. Works in both YAML and TSX, is validated bydac validate, and named colors adapt to light/dark mode.