Repository navigation
Conversation
The chart pages (BarChart, LineChart, AreaChart, PieChart, DonutChart, HeatmapChart, RadarChart, ScatterChart) vanished from the docs and from `appkit docs --full` in #170: knip flagged the doc-only `*ChartDoc` wrapper exports as unused, they were made private, and the generator only documented charts named `*Doc`. react-docgen-typescript already reads the exported `createChart` consts with their JSDoc and full props, so document those directly and delete the dead wrappers. They are public API, so knip can't drop them again. Also render union ("enum") prop types as their literal values, e.g. `"horizontal" | "vertical"` instead of `enum`, falling back to the type name for unions of more than 8 values. Adds a test that every chart component has a generated page with a props table. Co-authored-by: Isaac <no-reply@databricks.com> Signed-off-by: Fabian Jakobs <fabian.jakobs@databricks.com>
Contributor
📦 Bundle size reportCompared against
|
| dist | raw | gzip |
|---|---|---|
| JS (runtime) | 1.3 MB | 459 KB |
| Type declarations | 465 KB | 169 KB (+1 B) |
| Source maps | 2.5 MB | 859 KB |
| Other | 11 KB | 3.7 KB |
| Total | 4.2 MB | 1.5 MB (+1 B) |
Per-entry composition (own code — deps external (as shipped))
| Entry | Initial (gz) | Lazy (gz) | Total (gz) | node_modules (min) | Own code (min) |
|---|---|---|---|---|---|
. |
106 KB | 2.5 KB | 109 KB | external | 344 KB |
./beta |
103 KB | 482 B | 104 KB | external | 310 KB |
./testing |
45 KB | 32 KB | 77 KB | external | 223 KB |
./tsdown |
520 B | 0 B | 520 B | external | 813 B |
./type-generator |
26 KB | 0 B | 26 KB | external | 74 KB |
Chunks:
| Entry | Chunk | Load | Size (gz) |
|---|---|---|---|
. |
index.js |
initial | 102 KB |
. |
utils.js |
initial | 4.6 KB |
. |
remote-tunnel-manager.js |
lazy | 2.5 KB |
./beta |
beta.js |
initial | 83 KB |
./beta |
modular.js |
initial | 6.0 KB |
./beta |
stream-manager.js |
initial | 5.9 KB |
./beta |
service-context.js |
initial | 4.2 KB |
./beta |
databricks.js |
initial | 3.3 KB |
./beta |
client.js |
initial | 647 B |
./beta |
index.js |
initial | 20 B |
./beta |
supervisor-api.js |
lazy | 192 B |
./beta |
databricks.js |
lazy | 176 B |
./beta |
index.js |
lazy | 114 B |
./testing |
manifest.js |
initial | 32 KB |
./testing |
index.js |
initial | 10 KB |
./testing |
wide-event-emitter.js |
initial | 2.9 KB |
./testing |
index.js |
lazy | 28 KB |
./testing |
remote-tunnel-manager.js |
lazy | 2.5 KB |
./testing |
utils.js |
lazy | 1.8 KB |
./tsdown |
index.js |
initial | 520 B |
./type-generator |
index.js |
initial | 26 KB |
@databricks/appkit-ui
npm tarball (packed): 397 KB (-278 B) — gzipped download (dist + bin; excludes release-only docs/NOTICE).
| dist | raw | gzip |
|---|---|---|
| JS (runtime) | 429 KB | 147 KB |
| Type declarations | 267 KB | 98 KB |
| Source maps | 848 KB (-5.2 KB) | 285 KB (-757 B) |
| CSS | 16 KB | 3.2 KB |
| Total | 1.5 MB (-5.2 KB) | 533 KB (-757 B) |
Per-entry composition (consumer bundle — deps bundled, peerDeps external)
| Entry | Initial (gz) | Lazy (gz) | Total (gz) | node_modules (min) | Own code (min) |
|---|---|---|---|---|---|
./js |
5.3 KB | 49 KB | 55 KB | 208 KB | 14 KB |
./js/beta |
2.1 KB | 0 B | 2.1 KB | 0 B | 5.0 KB |
./react |
433 KB | 49 KB | 481 KB | 1.3 MB | 177 KB |
./react/beta |
4.9 KB | 0 B | 4.9 KB | 0 B | 12 KB |
Chunks:
| Entry | Chunk | Load | Size (gz) |
|---|---|---|---|
./js |
index.js |
initial | 5.2 KB |
./js |
chunk |
initial | 120 B |
./js |
apache-arrow |
lazy | 49 KB |
./js/beta |
beta.js |
initial | 2.1 KB |
./react |
index.js |
initial | 431 KB |
./react |
tslib |
initial | 2.1 KB |
./react |
apache-arrow |
lazy | 49 KB |
./react/beta |
beta.js |
initial | 4.9 KB |
Contributor
🤖 AppKit PR bot🔬 Run evalsStart an eval for this PR from the evals-monitor app: Go to Evals Monitor → 📦 Try this PR's app templateScaffolds a new app from this PR's SDK build. Run it in any folder (requires the GitHub CLI — gh run download 42242950011 -R databricks/appkit -n appkit-template-0.90.0-pr.e4cdd7a-fjakobs-la-2229-docs-chart-components-713 -D appkit-pr-713 \
&& unzip -o "appkit-pr-713/appkit-template-0.90.0-pr.e4cdd7a-fjakobs-la-2229-docs-chart-components-713.zip" -d "appkit-pr-713" \
&& databricks apps init --template "appkit-pr-713"The template pins |
MarioCadenas
approved these changes
Nov 6, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The chart components (
AreaChart,BarChart,DonutChart,HeatmapChart,LineChart,PieChart,RadarChart,ScatterChart) are missing from the appkit-ui API reference, both on the docs site and in theappkit docsCLI index that coding agents rely on. On the current release:docs/docs/api/appkit-ui/data/contains onlyDataTable.mdx, so agents end up readingnode_modules/@databricks/appkit-ui/dist/**/*.d.tsto find chart props such asxKey,yKey,orientation,valueFormatterandcolorPalette, and to learn aboutdatavsqueryKey.Root cause
The chart pages came from doc-only wrappers (
export function BarChartDoc(props: BarChartProps), and so on), andtools/generate-component-mdx.tsonly documented chart components whose name ends inDoc. When knip was introduced (#170), it flagged those wrappers as unused exports. They were made private (function _BarChartDoc), react-docgen-typescript stopped seeing them, and regenerating the docs deleted the 8 chart pages in that same commit.Fix
export const BarChart = createChart<BarChartProps>(...)), including their JSDoc and full typed props. So the generator now documents those directly, one page per chart (pie/index.tsxexports bothPieChartandDonutChart), and the*Docsuffix handling is removed. These components are public API re-exported fromcharts/index.ts, so knip can't remove them._XChartDocwrappers and their duplicated JSDoc. No runtime or public API change.enum(88 rows across the appkit-ui reference). They now show their literal values, e.g.orientation→"horizontal" | "vertical"andcolorPalette→"categorical" | "sequential" | "diverging". Unions with more than 8 members fall back to the declared type name (e.g.keyof HTMLElementTagNameMap) so tables stay readable.docs/docs/api/appkit-ui: adds the 8 chart pages underdata/and updates the Type column of the previously-enumrows. No other generated content changes.Tests
tools/generate-component-mdx.test.ts: every component created withcreateChartincharts/*/index.tsxmust have a generateddata/<Name>.mdxpage with a props table (includingqueryKeyanddata). I checked that it fails when a chart page is removed, which is what happened in chore: add knip #170.pnpm test: 310 files and 5936 tests pass.Verification
This change only affects the generated documentation and the
appkit docsCLI output. It doesn't change runtime behavior, so it needs no workspace. I verified it end to end through the real distribution path:pnpm build && pnpm docs:build, then packing@databricks/appkitwithpnpm tarball, installing that tarball into a clean project and running the CLI:appkit docsnow reports 73 pages in the appkit-ui API reference section (65 before).pnpm check:fix,pnpm -r typecheckandpnpm knippass.Follow-up (not in this PR)
The generated "Usage" snippet on every appkit-ui page imports from
@databricks/appkit-ui, but the package has no root export. The working path is@databricks/appkit-ui/react, which the Example sections already use. That fix is a one-line generator change that regenerates every page, so it's left for a separate PR.This pull request and its description were written by Isaac.