docs: document KPI per-block styling/format and is empty/is not empty filter operators - #11450
docs: document KPI per-block styling/format and is empty/is not empty filter operators#11450keydunov wants to merge 1 commit into
Conversation
… 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>
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
|
Claude finished @keydunov's task in 1m 11s —— View job Review: docs-only, looks good — 1 medium, 2 lowDocs-only change to two Full reviewTodos
Findings
Notes
Since these are |
| | **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 | |
There was a problem hiding this comment.
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.
| | **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 | |
| ### 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. |
There was a problem hiding this comment.
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:
| 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. |
There was a problem hiding this comment.
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.
| `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. |
Summary
Two small, shipped console-ui features found undocumented while cross-checking recent
cubejs-enterprisechanges against these docs: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 emptyfilter 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 existingis null/is not nullchecks. Added them to the operators table indocs/explore-analyze/dashboards/widgets/controls.mdxwith 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-enterprisebefore 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
kpi.mdxandcontrols.mdxpages and cross-checked the additions against the actual commits/changelog copy incubejs-enterprise🤖 Generated with Claude Code
https://claude.ai/code/session_01QTe1Pp6rwEtSckrNTL3smf
Generated by Claude Code