Skip to content

docs: document KPI per-block styling/format and is empty/is not empty filter operators - #11450

Open
keydunov wants to merge 1 commit into
masterfrom
claude/gallant-ramanujan-16sacy
Open

docs: document KPI per-block styling/format and is empty/is not empty filter operators#11450
keydunov wants to merge 1 commit into
masterfrom
claude/gallant-ramanujan-16sacy

Conversation

@keydunov

@keydunov keydunov commented Aug 2, 2026

Copy link
Copy Markdown
Member

Summary

Two small, shipped console-ui features found undocumented while cross-checking recent cubejs-enterprise changes against these docs:

  • KPI chart per-block styling controls (cubedevinc/cubejs-enterprise#13162, #13113, #13540 — merged, live). The KPI chart builder's Style tab now exposes a Background color on every block type (Number, Comparison, Progress bar, Sparkline, HTML), a Neutral color alongside Positive/Negative on Comparison blocks, and a per-block Format override on Progress bar and Sparkline blocks (previously Number-only). Updated docs/explore-analyze/charts/chart-types/kpi.mdx's block-type tables accordingly. (The circular-ring Progress style was already documented as "Bar or circle".)
  • is empty / is not empty filter operators (cubedevinc/cubejs-enterprise#13456 — merged, live, and already in the in-app changelog). These are first-class value-less operators for string dimensions in dashboard filter widgets, distinct from the existing is null / is not null checks. Added them to the operators table in docs/explore-analyze/dashboards/widgets/controls.mdx with a one-line clarification of the semantic difference.

Both changes were verified against the shipped console-ui source and the in-app changelog copy in cubejs-enterprise before writing, per the customer-facing criteria in that repo's .claude/shared/customer-facing-criteria.md.

Not included: the "dashboard apps" authoring editor work (CUB-3544/3494/3588) — per its own design doc, that feature is gated by a tenant flag that is not enabled on any tenant and is explicitly an internal experiment, so it doesn't meet the bar for customer docs yet.

Test plan

  • Read the current kpi.mdx and controls.mdx pages and cross-checked the additions against the actual commits/changelog copy in cubejs-enterprise
  • Docs site preview (Mintlify) renders the updated tables correctly

🤖 Generated with Claude Code

https://claude.ai/code/session_01QTe1Pp6rwEtSckrNTL3smf


Generated by Claude Code

… filter operators

- KPI blocks (Number, Comparison, Progress bar, Sparkline, HTML) gained
  per-block background color, a neutral comparison color, and per-block
  value format on Progress bar and Sparkline (cubejs-enterprise #13162,
  #13113, #13540).
- Dashboard filter widgets on string dimensions gained is empty / is not
  empty operators, distinct from the null checks (cubejs-enterprise #13456).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mintlify

mintlify Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
cubed3 🟢 Ready View Preview Aug 2, 2026, 12:14 AM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@claude

claude Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Claude finished @keydunov's task in 1m 11s —— View job


Review: docs-only, looks good — 1 medium, 2 low

Docs-only change to two docs-mintlify pages; accurate, concise, and correctly scoped to the active docs site per CLAUDE.md. One coverage gap worth fixing before merge (Comparison block missing its Background row), plus two wording nits — all posted as inline comments with suggestions.

Full review

Todos

  • Gather context (read PR diff, both changed files, repo + docs CLAUDE.md)
  • Classify request — code review, no implementation asked for
  • Review kpi.mdx changes
  • Review controls.mdx changes
  • Check for stale/duplicate Claude review threads (none existed)
  • Post inline comments and summary

Findings

# Severity File Issue
1 Medium kpi.mdx:46 Comparison block table is missing the **Background** row. Number, Progress bar, and Sparkline all got one, and the PR description lists Comparison among the block types that gained it. The new HTML sentence ("Like the other block types, it accepts a background color") makes the omission read as a contradiction.
2 Low kpi.mdx:98 "Like the other block types" over-generalizes — Text documents no settings, including no background. Suggested a direct phrasing instead.
3 Low controls.mdx:25 Clarification is the right call, but "a missing value" is vaguer than the concept it contrasts with. Suggested naming NULL and '' explicitly, plus a note that both operators are value-less (the practical thing a reader wants from that row).

Notes

  • Table alignment, |---|---| separators, and MDX syntax are all valid; nothing here should break the Mintlify build. The preview deploy will confirm the render (test-plan item still unchecked).
  • Style conventions followed: surgical edits to existing pages rather than new ones, no padding, no H1 added, no images committed.
  • Row-label casing: **Positive / negative / neutral color** mixes cases where the surrounding rows use capitalized UI labels (**Font size / color** is the same pattern, so this is consistent with at least one neighbor — not worth changing unless the actual Style tab labels are capitalized).
  • No security, performance, or test-coverage surface in this change — it touches no executable code, so those review dimensions don't apply.
  • The decision to exclude the tenant-flag-gated "dashboard apps" editor from these docs looks right; documenting a feature enabled on zero tenants would be premature.

Since these are cubejs-enterprise features, I can't independently verify the shipped UI labels from this repo — the review takes the PR author's cross-check at face value and focuses on internal consistency of the docs.

• Branch: `claude/gallant-ramanujan-16sacy`

| **Previous field / row** | The value to compare against — can be a different column or a different row from the same column |
| **Difference format** | Absolute, percentage, or both |
| **Positive color / Negative color** | Colors applied based on whether the change is positive or negative |
| **Positive / negative / neutral color** | Colors applied based on whether the change is positive, negative, or unchanged |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Comparison block is the one block type listed in the PR description as gaining a Background color that doesn't get a **Background** row here. Number (line 32), Progress bar (line 63), and Sparkline (line 84) all got one, and the HTML section (line 98) now says "Like the other block types, it accepts a background color" — which reads as a promise this table doesn't keep.

Suggested change
| **Positive / negative / neutral color** | Colors applied based on whether the change is positive, negative, or unchanged |
| **Positive / negative / neutral color** | Colors applied based on whether the change is positive, negative, or unchanged |
| **Background** | Background color for the block |

Fix this →

### HTML

A free-form HTML block rendered inside the KPI tile. Use this for advanced custom layouts that go beyond what the other block types support.
A free-form HTML block rendered inside the KPI tile. Use this for advanced custom layouts that go beyond what the other block types support. Like the other block types, it accepts a background color.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor: "Like the other block types" over-generalizes — Text (line 88) documents no settings at all, including no background. Since HTML is the only block whose settings live in prose rather than a table, stating it directly avoids a claim about the whole set:

Suggested change
A free-form HTML block rendered inside the KPI tile. Use this for advanced custom layouts that go beyond what the other block types support. Like the other block types, it accepts a background color.
A free-form HTML block rendered inside the KPI tile. Use this for advanced custom layouts that go beyond what the other block types support. It also accepts a background color.

| **Number** | `is`, `is not`, `greater than`, `greater than or equal`, `less than`, `less than or equal`, `is null`, `is not null` |
| **Time** | `is`, `is not`, `before date`, `before or on date`, `after date`, `after or on date`, `between`, `relative date`, `is null`, `is not null` |

`is empty` and `is not empty` test for an empty string and are distinct from `is null` / `is not null`, which test for a missing value.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good clarification to include — the two pairs are easy to confuse. Two small wording nits: "a missing value" is vaguer than the thing it's contrasting against, and the sentence would read better naming NULL explicitly. Also worth flagging that these are value-less operators (no input required), which is the other thing a reader hitting this row wants to know.

Suggested change
`is empty` and `is not empty` test for an empty string and are distinct from `is null` / `is not null`, which test for a missing value.
`is empty` and `is not empty` test for an empty string (`''`), while `is null` / `is not null` test for a `NULL` value. Like the null checks, they take no input value.

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.

2 participants