You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Move DataVis NITRO stories into the datavis submodule and add the DataVisNitroChat display mode - #520
Relocates the DataVis NITRO Storybook stories (grid, graph, demos) out of src/components/DataVisNITRO/ and into the datavis submodule at packages/datavis/stories/. The top-level @mieweb/ui Storybook now globs that folder, so the catalog renders the exact same stories from their new home.
Why
The stories exercise the public @mieweb/datavis API, so they belong alongside the package they document. Keeping them in the submodule lets datavis own its own story fixtures while the @mieweb/ui catalog remains the single place they render.
Details
Submodule (mieweb/datavis, already merged to main as 75c98d0c): adds stories/DataVisNITRO.stories.tsx, stories/DataVisNITRO.demo.stories.tsx, stories/DataVisNitroGraph.stories.tsx, plus a stories/README.md. Imports repointed from the local ./DataVisNITRO wrappers to the public @mieweb/datavis API.
This repo:
.storybook/main.ts — stories glob extended with ../packages/datavis/stories/**/*.stories.@(js|jsx|mjs|ts|tsx).
Deleted the three original story files from src/components/DataVisNITRO/.
Bumped the packages/datavis submodule pointer.
The @mieweb/ui/datavis entry wrappers (DataVisNITRO.tsx, DataVisNitroGraph.tsx, index.ts) are unchanged.
Hierarchy preserved
Story id/title and catalog metadata are untouched, so the tree stays:
This branch also bumps the packages/datavis submodule to 4750e41, which adds a new chat display mode for DataVis.
What it does:DataVisNitroChat renders plain (ungrouped, unpivoted) view rows as messages in the @mieweb/uiSuperChat surface instead of as rows in a table. It's a drop-in alternative to TableRenderer inside <DataGrid>, or usable standalone with any plain ViewData.
Field semantics: row fields carry chat meaning, auto-detected from column names or overridden via a fieldMap prop:
sender → the bubble author's display name (one participant per distinct sender)
message → the message body, rendered as Markdown
time → the timestamp used to order the thread
kind → classifies the speaker as human, agent, or system
role / avatar / channel / id → participant sub-label, avatar, delivery channel, message id
Non-plain data (grouped/pivoted) renders an explanatory placeholder rather than a conversation.
Surfaced in:
New submodule source under packages/datavis/src/components/chat/ (DataVisNitroChat, chat-mapping, types), exported from the @mieweb/datavis package root.
A Chat tab in the datavis demo app (src/main.tsx) backed by a plain chat dataset, with a toggle to view the same rows as a table.
A new Storybook catalog entry Components/Grids/DataVis Chat (grids-datavis-chat) at packages/datavis/stories/DataVisChat.stories.tsx, with per-example documentation headers covering auto-detected fields, explicit fieldMap, feed ordering, and the grouped-data placeholder.
CHAT.* i18n keys in src/i18n/en-US.json.
import{DataVisNitroChat}from'@mieweb/datavis';<DataVisNitroChatviewData={viewState.data}columns={columns}fieldMap={{sender: 'who',message: 'body',time: 'when'}}currentSender="Dr. Alice Nguyen"/>
Verification
Ran Storybook: all 25 DataVis NITRO entries index under the identical titles, plus the new DataVis Chat stories.
pnpm test — 1202 passed.
pnpm lint and pnpm format — clean.
pnpm typecheck — only pre-existing, unrelated missing-module errors (Globe.tsx, editorKits.ts); no new errors.
Datavis submodule: npm run typecheck clean; new chat source and story lint clean (one pre-existing, unrelated PrefsToolbar.tsx a11y lint error remains on main).
The relocated DataVis NITRO stories fell outside the repo's quality gates.
Add packages/datavis/stories to the catalog guard's story roots (mirroring
the .storybook/main.ts globs) so their Meta ids resolve and the manifest
includes them, and extend the lint/format scripts and eslint file globs to
cover the new story root. Addresses PR #520 review.
The stories moved to packages/datavis/stories, so the ComponentDocsAudit
evidence links pointed at deleted src/components/DataVisNITRO/*.stories.tsx
files. Repoint them to the new location; line anchors shifted by -2 to match
the shorter import block. Addresses PR #520 review.
Heads up: this branch now also carries a new DataVisNitroChat display mode (datavis submodule bumped 75c98d0c → 4750e41). It renders plain view rows as SuperChat messages — sender becomes the bubble author, message is Markdown, time orders the thread, and kind marks human/agent/system — auto-detected from column names or overridden via fieldMap. Added a demo Chat tab and a new Components/Grids/DataVis Chat (grids-datavis-chat) Storybook entry. Full details in the updated PR description.
tvenable-mie
changed the title
Move DataVis NITRO stories into the datavis submodule
Move DataVis NITRO stories into the datavis submodule and add the DataVisNitroChat display mode
Sep 30, 2026
The new DataVis Chat story disables Storybook a11y checks on the claim that it shares DataVis grid caveats, but this component renders only the accessible SuperChat surface (or a placeholder), not the grid engine DOM. Keeping the override masks regressions in this new display mode; remove it and resolve any actual axe findings instead.
Add visual regression coverage for DataVis Chat
.storybook/main.ts:205
This glob adds a new rendering component, but there is no grids-datavis-chat capture in tests/visual. CONTRIBUTING.md:135-136 requires pnpm test:visual coverage for rendering changes; add a stable story screenshot (including the grouped placeholder if practical) so the new chat mapping/layout is regression-tested.
Re-audit stale evidence for relocated story
ComponentDocsAudit.md:95
This evidence link and score do not match the relocated story. In submodule commit 4750e41, lines 61-64 are the layout/a11y comment, while the component description starts around line 70 and explicitly states that NITRO is the default, compares Table and AGGrid, names the package/entry dependencies, and documents the accessibility limitation. Re-audit this entry and its repeated score/high-priority finding instead of carrying the stale assessment to the new path.
Update graph story audit note and score
ComponentDocsAudit.md:137
The relocated graph story now states the @mieweb/ui/datavis subpath and dependency model in its Limitations section and declares a catalog relationship to Sparkline, so this audit note says the opposite of the linked evidence. Re-score the entry and update the note to reflect the current story.
The relocated DataVis NITRO stories fell outside the repo's quality gates.
Add packages/datavis/stories to the catalog guard's story roots (mirroring
the .storybook/main.ts globs) so their Meta ids resolve and the manifest
includes them, and extend the lint/format scripts and eslint file globs to
cover the new story root. Addresses PR #520 review.
The stories moved to packages/datavis/stories, so the ComponentDocsAudit
evidence links pointed at deleted src/components/DataVisNITRO/*.stories.tsx
files. Repoint them to the new location; line anchors shifted by -2 to match
the shorter import block. Addresses PR #520 review.
…module fixes
- ComponentDocsAudit.md: links beneath the packages/datavis gitlink cannot
resolve on GitHub; point component links at mieweb/datavis and pin
line-level evidence to the audited ui snapshot (a8ca1ad).
- DataVisNITRO/MAINTAINERS.md: stories now live in packages/datavis/stories.
- Bump packages/datavis to 33c74cf: collision-safe chat participant ids and
required catalog tags on the DataVis Chat story.
The reason will be displayed to describe this comment to others. Learn more.
🔵 Needs a closer look
The unavailable datavis checkout and gitlink diff leave a maintainer to confirm that the PR pins inspected revision 8c95f15 and validate the new chat entry’s runtime integration.
The DataVis NITRO grid/graph/demo stories now live in the datavis
submodule (packages/datavis/stories) and are catalogued by the top-level
Storybook via a new stories glob. Story id/title and catalog metadata are
unchanged, so the Components/Grids/DataVis NITRO hierarchy and crosslinks
are preserved. The @mieweb/ui/datavis wrappers are untouched.
The relocated DataVis NITRO stories fell outside the repo's quality gates.
Add packages/datavis/stories to the catalog guard's story roots (mirroring
the .storybook/main.ts globs) so their Meta ids resolve and the manifest
includes them, and extend the lint/format scripts and eslint file globs to
cover the new story root. Addresses PR #520 review.
The stories moved to packages/datavis/stories, so the ComponentDocsAudit
evidence links pointed at deleted src/components/DataVisNITRO/*.stories.tsx
files. Repoint them to the new location; line anchors shifted by -2 to match
the shorter import block. Addresses PR #520 review.
…module fixes
- ComponentDocsAudit.md: links beneath the packages/datavis gitlink cannot
resolve on GitHub; point component links at mieweb/datavis and pin
line-level evidence to the audited ui snapshot (a8ca1ad).
- DataVisNITRO/MAINTAINERS.md: stories now live in packages/datavis/stories.
- Bump packages/datavis to 33c74cf: collision-safe chat participant ids and
required catalog tags on the DataVis Chat story.
- Bump packages/datavis to the commit documenting DataVisNitroChat's
read-only boundary and its relationships to SuperChat and the NITRO grid.
- SuperChat: point read-only DataVis rows at DataVisNitroChat so the
guidance is discoverable from both component pages.
GitHub can't browse into the packages/datavis gitlink, so the manager's
'View source on GitHub' tool and the preview footer produced dead links
for the relocated stories (the footer ignored non-src paths entirely).
Share one resolver that maps packages/datavis/ to mieweb/datavis and keeps
the stories/*.stories.tsx filename.
Bump packages/datavis: DataVisNitroChat shows every row inside DataGrid,
scrolls within a fixed-height panel, matches currentSender exactly, and
its story declares entry + Markdown peers.
The reason will be displayed to describe this comment to others. Learn more.
🟡 Changes recommended
The new DataVisChat story lacks required limitations guidance, leaving consumers unaware of localization, accessibility/RTL, virtualization, and bounded-height constraints.
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
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.
What
Relocates the DataVis NITRO Storybook stories (grid, graph, demos) out of
src/components/DataVisNITRO/and into the datavis submodule atpackages/datavis/stories/. The top-level@mieweb/uiStorybook now globs that folder, so the catalog renders the exact same stories from their new home.Why
The stories exercise the public
@mieweb/datavisAPI, so they belong alongside the package they document. Keeping them in the submodule lets datavis own its own story fixtures while the@mieweb/uicatalog remains the single place they render.Details
mieweb/datavis, already merged tomainas75c98d0c): addsstories/DataVisNITRO.stories.tsx,stories/DataVisNITRO.demo.stories.tsx,stories/DataVisNitroGraph.stories.tsx, plus astories/README.md. Imports repointed from the local./DataVisNITROwrappers to the public@mieweb/datavisAPI..storybook/main.ts—storiesglob extended with../packages/datavis/stories/**/*.stories.@(js|jsx|mjs|ts|tsx).src/components/DataVisNITRO/.packages/datavissubmodule pointer.@mieweb/ui/datavisentry wrappers (DataVisNITRO.tsx,DataVisNitroGraph.tsx,index.ts) are unchanged.Hierarchy preserved
Story
id/titleandcatalogmetadata are untouched, so the tree stays:Components/Grids/DataVis NITRO(grids-datavis-nitro)Components/Grids/DataVis NITRO Demos(grids-datavis-nitro-demos)Components/Grids/DataVis NITRO Graph(grids-datavis-nitro-graph)New:
DataVisNitroChatdisplay modeThis branch also bumps the
packages/datavissubmodule to4750e41, which adds a new chat display mode for DataVis.DataVisNitroChatrenders plain (ungrouped, unpivoted) view rows as messages in the@mieweb/uiSuperChat surface instead of as rows in a table. It's a drop-in alternative toTableRendererinside<DataGrid>, or usable standalone with any plainViewData.fieldMapprop:sender→ the bubble author's display name (one participant per distinct sender)message→ the message body, rendered as Markdowntime→ the timestamp used to order the threadkind→ classifies the speaker ashuman,agent, orsystemrole/avatar/channel/id→ participant sub-label, avatar, delivery channel, message idpackages/datavis/src/components/chat/(DataVisNitroChat,chat-mapping,types), exported from the@mieweb/datavispackage root.src/main.tsx) backed by a plain chat dataset, with a toggle to view the same rows as a table.Components/Grids/DataVis Chat(grids-datavis-chat) atpackages/datavis/stories/DataVisChat.stories.tsx, with per-example documentation headers covering auto-detected fields, explicitfieldMap, feed ordering, and the grouped-data placeholder.CHAT.*i18n keys insrc/i18n/en-US.json.Verification
pnpm test— 1202 passed.pnpm lintandpnpm format— clean.pnpm typecheck— only pre-existing, unrelated missing-module errors (Globe.tsx,editorKits.ts); no new errors.npm run typecheckclean; new chat source and story lint clean (one pre-existing, unrelatedPrefsToolbar.tsxa11y lint error remains onmain).