Skip to content

feat: Add data table explorer blocks to Mosaic dashboards - #668

Merged
ilyabo merged 7 commits into
mainfrom
add-data-table-block
May 31, 2026
Merged

ilyabo merged 7 commits into
mainfrom
add-data-table-block

Conversation

@ilyabo

@ilyabo ilyabo commented May 30, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Add a new data table explorer block and renderer to Mosaic dashboards
  • Wire the explorer into dashboard actions, empty states, and panel defaults
  • Extend AI/tooling, store types, and workspace integration so the block can be created and managed consistently
  • Add coverage for explorer clients, store behavior, dashboard slices, and AI helpers
  • Update README docs for packages/mosaic and apps/sqlrooms-cli-ui

Testing

  • Added and updated unit tests for explorer clients, store creation, dashboard slices, and AI/tool helper behavior
  • Added component-level tests for the explorer compound UI, status bar, and summary/query clients
  • Not run (not requested)

Summary by CodeRabbit

  • New Features

    • Data Table Explorer: new compound explorer (header, rows, status bar), embeddable data-table block, selector UI, and dashboard panel.
  • Changes

    • Dashboards now favor Data Table Explorer panels (auto-added after file uploads and via AI tools); empty-state copy and layout sizing updated; default dashboard layout clarified as grid.
    • Worksheet artifacts: stateful blocks now include data table explorers and markdown; titles/captions support editable callbacks.
  • Bug Fixes

    • Improved scroll overlay stacking to prevent visual overlap.
  • Documentation

    • READMEs updated to reflect Data Table Explorer and AI tool behavior.

@coderabbitai

coderabbitai Bot commented May 30, 2026 •

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR replaces the Mosaic Profiler feature with a Data Table Explorer across types, hooks/stores, query clients, React components, dashboard panel wiring, AI tools, CLI UI integration, tests, and documentation.

Changes

Data Table Explorer Feature Replacement

Layer / File(s) Summary
README & CLI docs
apps/sqlrooms-cli-ui/README.md, packages/mosaic/README.md, packages/documents/README.md
Document Data Table Explorer as the default auto-created dashboard panel and clarify worksheet stateful block callbacks.
CLI UI integration
apps/sqlrooms-cli-ui/src/statefulBlockArtifactConfigs.ts, apps/sqlrooms-cli-ui/src/store.ts, apps/sqlrooms-cli-ui/src/store-types.ts, apps/sqlrooms-cli-ui/src/components/DataSourcesPanel.tsx, apps/sqlrooms-cli-ui/src/workspace/WorksheetArtifact.tsx
Add data-table artifact config, extend RoomState.dashboard API with addDataTableExplorerForTable, wire DataSourcesPanel to create explorers on file upload, and register worksheet data-table renderer with title-change handling.
Dashboard panel types & factory
packages/mosaic/src/dashboard/*
Add data-table-explorer panel type, Zod schemas, createMosaicDashboardDataTableExplorerPanelConfig, update panel union and grid sizing logic.
Chart tools & AI
packages/mosaic/src/chart-types/*, packages/mosaic/src/ai.ts, packages/mosaic/src/chart-types/tool-helpers.ts
Replace profiler tool with createDataTableExplorerTool, add createOrUpdateDataTableExplorerPanel helper, and update agent instructions and built-in toolset.
Types & utils
packages/mosaic/src/data-table-explorer/types.ts, packages/mosaic/src/data-table-explorer/utils.ts, packages/mosaic/src/data-table-explorer/layout.ts
Introduce DataTableExplorer types (sorting, pagination, summaries, columns), Arrow-type helpers, query builders, pagination normalization, and layout width utilities.
Query clients
packages/mosaic/src/data-table-explorer/*Client.ts
Rename and implement DataTableExplorer clients for page, count, histogram, category, and unsupported summaries (including total clients), preserving query/response behaviors.
Store & controller
packages/mosaic/src/data-table-explorer/createDataTableExplorerStore.ts, packages/mosaic/src/data-table-explorer/dataTableExplorerController.ts
New Zustand store factory and controller wiring for schema scoping, pagination normalization, sorting, summaries, and count updates.
Main hook orchestration
packages/mosaic/src/data-table-explorer/useDataTableExplorer.ts
Implement useDataTableExplorer: selection resolution, local store subscription, query derivation, lifecycle effects connecting clients, columns mapping, visible-page stabilization, and returned API shape.
React compound components
packages/mosaic/src/data-table-explorer/DataTableExplorer.tsx, DataTableExplorerHeader.tsx, DataTableExplorerRows.tsx, DataTableExplorerStatusBar.tsx
New DataTableExplorer compound component and subcomponents consuming UseDataTableExplorerReturn and rendering table, header, rows, and status bar.
Selector & Block renderer
packages/mosaic/src/data-table-explorer/DataTableSelector.tsx, packages/mosaic/src/data-table-explorer/DataTableBlockRenderer.tsx
Add DataTableSelector UI and DataTableBlockRenderer to embed explorers in documents; handle selection naming, disabled/readOnly behavior, and connection readiness states.
Dashboard renderer & actions
packages/mosaic/src/data-table-explorer/MosaicDashboardDataTableExplorerPanelRenderer.tsx, packages/mosaic/src/data-table-explorer/addDataTableExplorerPanelAction.ts, packages/mosaic/src/dashboard/defaultPanelActions.ts, defaultPanelRenderers.ts
Register dashboard panel renderer and add-panel action for Data Table Explorer; include explorer in default panel actions and renderer registry.
Public exports & index
packages/mosaic/src/index.ts
Replace Profiler exports with DataTableExplorer equivalents: components, hooks, types, layout helpers, panel constants, and tool parameters.
Tests
packages/mosaic/__tests__/*
Update tests to use DataTableExplorer variants for compound API, clients, store, dashboard slice, utils, and AI tooling.
Documents node view & callbacks
packages/documents/src/BlockDocumentEditor/node-views/BlockDocumentStatefulBlockNodeView.tsx, packages/documents/src/BlockDocumentStatefulBlockRendererContext.tsx
Add onTitleChange prop to renderer props and update node view to call updateAttributes with normalized title; early-return for horizontal wheel scrolling.
UI overlay tweak
packages/ui/src/components/modifier-scroll-overlay.tsx
Increase overlay z-index from z-20 to z-50.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Possibly related PRs

Suggested labels

codex

Suggested reviewers

  • dmitriy-kostianetskiy
  • igorDykhta

Poem

🐰 I hopped through types and tests today,
Swapped Profiler trails for Explorer's way.
Columns and counts now dance in view,
Dashboards bloom with panels new.
A carrot-coded, cheerful cue.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch add-data-table-block

@ilyabo ilyabo changed the title Add data table explorer blocks to Mosaic dashboards feat: Add data table explorer blocks to Mosaic dashboards May 30, 2026
@ilyabo
ilyabo marked this pull request as ready for review May 30, 2026 22:23

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/sqlrooms-cli-ui/README.md`:
- Line 69: Update the README text that still uses the old "profiler" term:
replace the phrase "Data Table Explorer/profiler" (and any other occurrences of
"profiler") with explorer-only wording such as "Data Table Explorer" or
"explorer" so the sentence reads consistently (e.g., "Data Table Explorer flows
use `grid`"); search for the string "profiler" and update references in the
README to match the profiler→explorer renaming.

In `@packages/mosaic/src/data-table-explorer/DataTableExplorerHeader.tsx`:
- Around line 27-36: The header builds Tailwind arbitrary-width classes with
template literals (COLUMN_WIDTH_CLASS, STICKY_ROW_NUMBER_CLASS,
getColumnWidthClass) which Tailwind’s scanner won’t pick up; change these to use
scanner-visible static class names or inline styles so header and rows can’t
diverge: create a shared mapping from the known constants
(DATA_TABLE_EXPLORER_DEFAULT_COLUMN_WIDTH_PX,
DATA_TABLE_EXPLORER_ROW_NUMBER_COLUMN_WIDTH_PX,
DATA_TABLE_EXPLORER_UNSUPPORTED_COLUMN_WIDTH_PX) to explicit static Tailwind
classes (e.g., precomputed "min-w-[140px] w-[140px] max-w-[140px]" strings) that
both DataTableExplorerHeader and DataTableExplorerRows import, or switch the
header/rows to set width/minWidth/maxWidth via style={{ width, minWidth,
maxWidth }} using those constants; update COLUMN_WIDTH_CLASS,
STICKY_ROW_NUMBER_CLASS and getColumnWidthClass to consume the shared mapping or
use inline styles so Tailwind scanning and sizing remain consistent.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ec6b1de2-f3c0-47f7-89dd-b735ce5fbc85

📥 Commits

Reviewing files that changed from the base of the PR and between aa9d9e1 and 16af133.

📒 Files selected for processing (50)
  • apps/sqlrooms-cli-ui/README.md
  • apps/sqlrooms-cli-ui/src/components/DataSourcesPanel.tsx
  • apps/sqlrooms-cli-ui/src/statefulBlockArtifactConfigs.ts
  • apps/sqlrooms-cli-ui/src/store-types.ts
  • apps/sqlrooms-cli-ui/src/store.ts
  • apps/sqlrooms-cli-ui/src/workspace/WorksheetArtifact.tsx
  • packages/mosaic/README.md
  • packages/mosaic/__tests__/DataTableExplorerCompound.test.tsx
  • packages/mosaic/__tests__/DataTableExplorerQueryClients.test.ts
  • packages/mosaic/__tests__/DataTableExplorerStatusBar.test.tsx
  • packages/mosaic/__tests__/DataTableExplorerSummaryClients.test.tsx
  • packages/mosaic/__tests__/MosaicDashboardSlice.test.ts
  • packages/mosaic/__tests__/createDataTableExplorerStore.test.ts
  • packages/mosaic/__tests__/dashboard-ai.test.ts
  • packages/mosaic/__tests__/data-table-explorer.utils.test.ts
  • packages/mosaic/src/ai.ts
  • packages/mosaic/src/chart-types/base-types.ts
  • packages/mosaic/src/chart-types/data-table-explorer-tool.ts
  • packages/mosaic/src/chart-types/index.ts
  • packages/mosaic/src/chart-types/tool-helpers.ts
  • packages/mosaic/src/dashboard/MosaicDashboardEmptyState.tsx
  • packages/mosaic/src/dashboard/MosaicDashboardSlice.ts
  • packages/mosaic/src/dashboard/core-types.ts
  • packages/mosaic/src/dashboard/dashboard-types.ts
  • packages/mosaic/src/dashboard/defaultPanelActions.ts
  • packages/mosaic/src/dashboard/defaultPanelRenderers.ts
  • packages/mosaic/src/dashboard/initial-state/BuildDashboardManuallyPanel.tsx
  • packages/mosaic/src/data-table-explorer/DataTableBlockRenderer.tsx
  • packages/mosaic/src/data-table-explorer/DataTableExplorer.tsx
  • packages/mosaic/src/data-table-explorer/DataTableExplorerCategoryClient.ts
  • packages/mosaic/src/data-table-explorer/DataTableExplorerCountClient.ts
  • packages/mosaic/src/data-table-explorer/DataTableExplorerHeader.tsx
  • packages/mosaic/src/data-table-explorer/DataTableExplorerHistogramClient.ts
  • packages/mosaic/src/data-table-explorer/DataTableExplorerPageClient.ts
  • packages/mosaic/src/data-table-explorer/DataTableExplorerRows.tsx
  • packages/mosaic/src/data-table-explorer/DataTableExplorerStatusBar.tsx
  • packages/mosaic/src/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.ts
  • packages/mosaic/src/data-table-explorer/MosaicDashboardDataTableExplorerPanelRenderer.tsx
  • packages/mosaic/src/data-table-explorer/addDataTableExplorerPanelAction.ts
  • packages/mosaic/src/data-table-explorer/createDataTableExplorerStore.ts
  • packages/mosaic/src/data-table-explorer/dataTableExplorerController.ts
  • packages/mosaic/src/data-table-explorer/layout.ts
  • packages/mosaic/src/data-table-explorer/types.ts
  • packages/mosaic/src/data-table-explorer/useDataTableExplorer.ts
  • packages/mosaic/src/data-table-explorer/utils.ts
  • packages/mosaic/src/index.ts
  • packages/mosaic/src/profiler/MosaicProfiler.tsx
  • packages/mosaic/src/profiler/addProfilerPanelAction.ts
  • packages/mosaic/src/profiler/layout.ts
  • packages/mosaic/src/profiler/types.ts
💤 Files with no reviewable changes (4)
  • packages/mosaic/src/profiler/layout.ts
  • packages/mosaic/src/profiler/addProfilerPanelAction.ts
  • packages/mosaic/src/profiler/types.ts
  • packages/mosaic/src/profiler/MosaicProfiler.tsx

layout. Explicit dashboard creation commands and AI tools require `layoutType`
so the choice is made once at creation time; auto-created dashboards from chart
or profiler flows use `grid`.
or Data Table Explorer flows use `grid`.

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.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Remove stale “profiler” wording in dashboard flow docs.

Line 69 still references Data Table Explorer/profiler flows, which conflicts with this PR’s profiler→explorer replacement. Please update to explorer-only wording to avoid confusion.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/sqlrooms-cli-ui/README.md` at line 69, Update the README text that still
uses the old "profiler" term: replace the phrase "Data Table Explorer/profiler"
(and any other occurrences of "profiler") with explorer-only wording such as
"Data Table Explorer" or "explorer" so the sentence reads consistently (e.g.,
"Data Table Explorer flows use `grid`"); search for the string "profiler" and
update references in the README to match the profiler→explorer renaming.

Comment thread packages/mosaic/src/data-table-explorer/DataTableExplorerHeader.tsx Outdated

@coderabbitai coderabbitai Bot left a comment

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.

🧹 Nitpick comments (1)
packages/mosaic/src/data-table-explorer/layout.ts (1)

7-12: ⚡ Quick win

Avoid duplicated width literals in class constants.

These class strings repeat pixel values already defined above, which can drift if one side is updated later. Build the classes from the numeric constants to keep a single source of truth.

♻️ Proposed refactor
 export const DATA_TABLE_EXPLORER_ROW_NUMBER_WIDTH_CLASS =
-  'min-w-[40px] w-[40px] max-w-[40px]';
+  `min-w-[${DATA_TABLE_EXPLORER_ROW_NUMBER_COLUMN_WIDTH_PX}px] w-[${DATA_TABLE_EXPLORER_ROW_NUMBER_COLUMN_WIDTH_PX}px] max-w-[${DATA_TABLE_EXPLORER_ROW_NUMBER_COLUMN_WIDTH_PX}px]`;
 export const DATA_TABLE_EXPLORER_DEFAULT_COLUMN_WIDTH_CLASS =
-  'min-w-[140px] w-[140px] max-w-[140px]';
+  `min-w-[${DATA_TABLE_EXPLORER_DEFAULT_COLUMN_WIDTH_PX}px] w-[${DATA_TABLE_EXPLORER_DEFAULT_COLUMN_WIDTH_PX}px] max-w-[${DATA_TABLE_EXPLORER_DEFAULT_COLUMN_WIDTH_PX}px]`;
 export const DATA_TABLE_EXPLORER_UNSUPPORTED_COLUMN_WIDTH_CLASS =
-  'min-w-[104px] w-[104px] max-w-[104px]';
+  `min-w-[${DATA_TABLE_EXPLORER_UNSUPPORTED_COLUMN_WIDTH_PX}px] w-[${DATA_TABLE_EXPLORER_UNSUPPORTED_COLUMN_WIDTH_PX}px] max-w-[${DATA_TABLE_EXPLORER_UNSUPPORTED_COLUMN_WIDTH_PX}px]`;

As per coding guidelines, “Prefer straightforward, maintainable code over clever code”.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/mosaic/src/data-table-explorer/layout.ts` around lines 7 - 12, The
three exported class constants DATA_TABLE_EXPLORER_ROW_NUMBER_WIDTH_CLASS,
DATA_TABLE_EXPLORER_DEFAULT_COLUMN_WIDTH_CLASS, and
DATA_TABLE_EXPLORER_UNSUPPORTED_COLUMN_WIDTH_CLASS duplicate hard-coded pixel
literals; introduce corresponding numeric width constants (e.g.,
ROW_NUMBER_WIDTH = 40, DEFAULT_COLUMN_WIDTH = 140, UNSUPPORTED_COLUMN_WIDTH =
104) and build each class string from those single-source numeric constants
(e.g., generate 'min-w-[{N}px] w-[{N}px] max-w-[{N}px]') so updates only change
the numeric value referenced by the class builders.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@packages/mosaic/src/data-table-explorer/layout.ts`:
- Around line 7-12: The three exported class constants
DATA_TABLE_EXPLORER_ROW_NUMBER_WIDTH_CLASS,
DATA_TABLE_EXPLORER_DEFAULT_COLUMN_WIDTH_CLASS, and
DATA_TABLE_EXPLORER_UNSUPPORTED_COLUMN_WIDTH_CLASS duplicate hard-coded pixel
literals; introduce corresponding numeric width constants (e.g.,
ROW_NUMBER_WIDTH = 40, DEFAULT_COLUMN_WIDTH = 140, UNSUPPORTED_COLUMN_WIDTH =
104) and build each class string from those single-source numeric constants
(e.g., generate 'min-w-[{N}px] w-[{N}px] max-w-[{N}px]') so updates only change
the numeric value referenced by the class builders.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8c403cbc-219a-4b51-81bf-86d4517d6f86

📥 Commits

Reviewing files that changed from the base of the PR and between 86a12c1 and a0bb116.

📒 Files selected for processing (3)
  • packages/mosaic/src/data-table-explorer/DataTableExplorerHeader.tsx
  • packages/mosaic/src/data-table-explorer/DataTableExplorerRows.tsx
  • packages/mosaic/src/data-table-explorer/layout.ts
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/mosaic/src/data-table-explorer/DataTableExplorerHeader.tsx
  • packages/mosaic/src/data-table-explorer/DataTableExplorerRows.tsx

@coderabbitai coderabbitai Bot left a comment

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.

🧹 Nitpick comments (2)
packages/mosaic/src/data-table-explorer/DataTableSelector.tsx (1)

18-176: ⚡ Quick win

Document the new public exports.

DataTableSelector, DataTableSelectorEmptyState, getDataTableSelectorReference, and DataTableSelectorProps are public exports of the mosaic package but carry no doc comments. Add brief JSDoc clarifying the contract — notably that onChange/value operate on the dotted table reference (database.schema.table) rather than the bare table name, which is non-obvious from the (tableName: string) signature.

As per coding guidelines, "Public exports in packages/ should be kept generic, composable, documented, and free of app/example-specific assumptions".

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/mosaic/src/data-table-explorer/DataTableSelector.tsx` around lines
18 - 176, Add brief JSDoc comments for the public exports DataTableSelector,
DataTableSelectorEmptyState, getDataTableSelectorReference, and
DataTableSelectorProps: document the component purpose, prop contracts, and
especially clarify that DataTableSelectorProps.onChange and the value prop
expect and return the dotted table reference format "database.schema.table" (not
just the bare table name); mention that getDataTableSelectorReference returns
that dotted reference and that DataTableSelectorEmptyState is a presentational
wrapper rendering the same selector in an empty-state layout. Ensure the
comments are concise, placed immediately above each export
(DataTableSelectorProps type, DataTableSelector component,
DataTableSelectorEmptyState function, and getDataTableSelectorReference
function), and avoid app-specific assumptions.
packages/mosaic/src/data-table-explorer/DataTableBlockRenderer.tsx (1)

96-156: ⚡ Quick win

Extract the duplicated selector header.

The header (border-b row with {tableSelector} + optional caption) is repeated verbatim across the loading, not-ready, and ready branches. Extract it once to avoid drift.

♻️ Hoist a single header element
   const tableSelector = (
     <DataTableSelector
       className="max-w-full"
       disabled={readOnly || !onTitleChange}
       onChange={handleTableNameChange}
       tables={selectableTables}
       value={tableName}
     />
   );
+  const header = (
+    <div className="border-border flex shrink-0 items-center gap-2 border-b px-3 py-2">
+      {tableSelector}
+      {caption ? (
+        <div className="min-w-0 truncate text-sm font-medium">{caption}</div>
+      ) : null}
+    </div>
+  );

Then replace each duplicated block with {header}.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/mosaic/src/data-table-explorer/DataTableBlockRenderer.tsx` around
lines 96 - 156, There is duplicated JSX for the selector header across the
loading, not-ready, and ready branches; hoist that markup into a single const
(e.g., const header = (<div className="border-border flex shrink-0 items-center
gap-2 border-b px-3 py-2">{tableSelector}{caption ? <div className="min-w-0
truncate text-sm font-medium">{caption}</div> : null}</div>);) inside
DataTableBlockRenderer.tsx, then replace the three repeated header blocks in the
connection.status === 'loading', connection.status !== 'ready', and the final
return branch with {header} so the header is defined once and reused.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@packages/mosaic/src/data-table-explorer/DataTableBlockRenderer.tsx`:
- Around line 96-156: There is duplicated JSX for the selector header across the
loading, not-ready, and ready branches; hoist that markup into a single const
(e.g., const header = (<div className="border-border flex shrink-0 items-center
gap-2 border-b px-3 py-2">{tableSelector}{caption ? <div className="min-w-0
truncate text-sm font-medium">{caption}</div> : null}</div>);) inside
DataTableBlockRenderer.tsx, then replace the three repeated header blocks in the
connection.status === 'loading', connection.status !== 'ready', and the final
return branch with {header} so the header is defined once and reused.

In `@packages/mosaic/src/data-table-explorer/DataTableSelector.tsx`:
- Around line 18-176: Add brief JSDoc comments for the public exports
DataTableSelector, DataTableSelectorEmptyState, getDataTableSelectorReference,
and DataTableSelectorProps: document the component purpose, prop contracts, and
especially clarify that DataTableSelectorProps.onChange and the value prop
expect and return the dotted table reference format "database.schema.table" (not
just the bare table name); mention that getDataTableSelectorReference returns
that dotted reference and that DataTableSelectorEmptyState is a presentational
wrapper rendering the same selector in an empty-state layout. Ensure the
comments are concise, placed immediately above each export
(DataTableSelectorProps type, DataTableSelector component,
DataTableSelectorEmptyState function, and getDataTableSelectorReference
function), and avoid app-specific assumptions.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a92bb43a-56bd-4e86-80b7-10a43f1accc7

📥 Commits

Reviewing files that changed from the base of the PR and between a0bb116 and 6878943.

📒 Files selected for processing (9)
  • apps/sqlrooms-cli-ui/src/workspace/WorksheetArtifact.tsx
  • packages/documents/README.md
  • packages/documents/src/BlockDocumentEditor/node-views/BlockDocumentStatefulBlockNodeView.tsx
  • packages/documents/src/BlockDocumentStatefulBlockRendererContext.tsx
  • packages/mosaic/src/data-table-explorer/DataTableBlockRenderer.tsx
  • packages/mosaic/src/data-table-explorer/DataTableSelector.tsx
  • packages/mosaic/src/data-table-explorer/createDataTableExplorerStore.ts
  • packages/mosaic/src/data-table-explorer/dataTableExplorerController.ts
  • packages/mosaic/src/data-table-explorer/useDataTableExplorer.ts
✅ Files skipped from review due to trivial changes (1)
  • packages/documents/README.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/mosaic/src/data-table-explorer/createDataTableExplorerStore.ts
  • packages/mosaic/src/data-table-explorer/dataTableExplorerController.ts

@ilyabo
ilyabo merged commit 72c628a into main May 31, 2026
3 checks passed
@ilyabo
ilyabo deleted the add-data-table-block branch May 31, 2026 13:15
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.

1 participant