Skip to content

docs(design-system): Data Table and Data Grid documentation#41252

Merged
dnywh merged 20 commits into
masterfrom
dnywh/docs/data-table-data-grid
Dec 11, 2025
Merged

docs(design-system): Data Table and Data Grid documentation#41252
dnywh merged 20 commits into
masterfrom
dnywh/docs/data-table-data-grid

Conversation

@dnywh

@dnywh dnywh commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

What kind of change does this PR introduce?

Design documentation. Resolves DEPR-270.

What is the current behavior?

We don’t reference reference DataGrid in the design system. We do reference DataTable but it just uses the Shadcn source. Neither of these are true ui components. The difference between these two (and Table) is confusing.

What is the new behavior?

  • General pattern documentation for tables is expanded, including the difference between all three table types
    • Documentation and examples created for DataTable and DataGrid
    • Removal of DataTable component page (which wasn’t actually a component)
    • Link to Shadcn guide on creating bespoke DataTable components added

Summary by CodeRabbit

  • New Features

    • Added interactive Data Grid demo with row selection and a Data Table demo with sorting, filtering, pagination, column visibility, and row actions.
    • Added a dedicated Data Grid empty-state preview.
  • Documentation

    • Consolidated guidance to distinguish Table, Data Table, and Data Grid patterns and added previews for the new demos.
    • Removed the previous standalone Data Table guide and updated sidebar navigation.

✏️ Tip: You can customize this high-level summary in your review settings.

@vercel

vercel Bot commented Dec 11, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
design-system Ready Ready Preview Comment Dec 11, 2025 8:46am
7 Skipped Deployments
Project Deployment Preview Comments Updated (UTC)
studio Ignored Ignored Dec 11, 2025 8:46am
cms Skipped Skipped Dec 11, 2025 8:46am
docs Skipped Skipped Dec 11, 2025 8:46am
studio-self-hosted Skipped Skipped Dec 11, 2025 8:46am
studio-staging Skipped Skipped Dec 11, 2025 8:46am
ui-library Skipped Skipped Dec 11, 2025 8:46am
zone-www-dot-com Skipped Skipped Dec 11, 2025 8:46am

@coderabbitai

coderabbitai Bot commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Note

Reviews paused

Use the following commands to manage reviews:

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

Walkthrough

Replaces a legacy empty-state registry entry with three examples (data-grid-demo, data-grid-empty-state, data-table-demo), adds demo components (react-data-grid and TanStack Table), removes the old Data Table MDX and sidebar entry, updates UI-pattern docs/links, and adds @tanstack/react-table dependency.

Changes

Cohort / File(s) Summary
Registry updates
apps/design-system/__registry__/index.tsx, apps/design-system/registry/examples.ts
Removed empty-state-zero-items-data-grid; added data-grid-demo, data-grid-empty-state, and data-table-demo entries with lazy imports pointing to registry/default/example/*.tsx; updated keys/paths and registryDependencies for data-table-demo.
New demo components
apps/design-system/registry/default/example/data-grid-demo.tsx, apps/design-system/registry/default/example/data-table-demo.tsx
Added DataGridDemo (grid with checkbox selection and hardcoded users) and DataTableDemo (TanStack Table demo with sorting, filtering, column visibility, pagination, selection; exports Payment type and columns).
Demo rename
apps/design-system/registry/default/example/data-grid-empty-state.tsx
Renamed default export from EmptyStateZeroItemsDataGridDataGridEmptyState and updated JSDoc; functionality unchanged.
Documentation removal
apps/design-system/content/docs/components/data-table.mdx
Removed the comprehensive Data Table MDX documentation file.
Docs updates
apps/design-system/content/docs/components/table.mdx, apps/design-system/content/docs/ui-patterns/empty-states.mdx, apps/design-system/content/docs/ui-patterns/tables.mdx
Reworked UI-patterns to distinguish Table / Data Table / Data Grid, updated links/anchors, added previews (table-demo, data-table-demo, data-grid-demo), and consolidated wording.
Docs config & deps
apps/design-system/config/docs.ts, apps/design-system/package.json
Removed "Data Table" from sidebar navigation; added @tanstack/react-table dependency to package.json.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Areas to focus on:
    • apps/design-system/registry/default/example/data-table-demo.tsx — column definitions, state handling for sorting/filtering/visibility/pagination, exported types.
    • apps/design-system/registry/default/example/data-grid-demo.tsx — selection logic, renderCell checkbox behavior, Set-based selection state.
    • Registry files (__registry__/index.tsx, registry/examples.ts) — lazy import paths, keys, and registryDependencies correctness.
    • Docs removal (content/docs/components/data-table.mdx) — ensure no remaining references or broken links.

Possibly related PRs

Suggested labels

documentation

Suggested reviewers

  • SaxonF
  • joshenlim

Poem

🐇 I hopped through rows and column light,
New demos sprung from code tonight,
Grids that check and tables that sort,
Docs rearranged to guide the court,
A carrot nibble, code feels right.

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: documentation updates for Data Table and Data Grid, which aligns with the comprehensive documentation and example additions throughout the changeset.
Description check ✅ Passed The description addresses most required sections (kind of change, current behavior, new behavior) and provides context by linking to the issue (DEPR-270) and referencing the updated documentation. However, it does not explicitly confirm reading CONTRIBUTING.md as requested in the template.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dnywh/docs/data-table-data-grid

Comment @coderabbitai help to get the list of available commands and usage tips.

@supabase

supabase Bot commented Dec 11, 2025

Copy link
Copy Markdown

This pull request has been ignored for the connected project xguihxuzqibwxjnimxev because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

},
"dependencies": {
"@hookform/resolvers": "^3.1.1",
"@tanstack/react-table": "^8.21.3",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Required to show off DataTable in all its glory via examples.

@coveralls

coveralls commented Dec 11, 2025

Copy link
Copy Markdown

Coverage Status

coverage: 68.471%. remained the same
when pulling a6ca542 on dnywh/docs/data-table-data-grid
into 3d6be39 on master.

@github-actions

github-actions Bot commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

🎭 Playwright Test Results

passed  58 passed
flaky  1 flaky
skipped  4 skipped

Details

stats  63 tests across 10 suites
duration  11 minutes, 40 seconds
commit  a6ca542

Flaky tests

Features › database.spec.ts › Database › Schema Visualizer › actions works as expected

Skipped tests

Features › sql-editor.spec.ts › SQL Editor › snippet favourite works as expected
Features › sql-editor.spec.ts › SQL Editor › share with team works as expected
Features › sql-editor.spec.ts › SQL Editor › folders works as expected
Features › sql-editor.spec.ts › SQL Editor › other SQL snippets actions work as expected

@dnywh dnywh marked this pull request as ready for review December 11, 2025 07:07

@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

🧹 Nitpick comments (3)
apps/design-system/registry/default/example/data-table-demo.tsx (3)

137-137: Add error handling for clipboard operation.

The clipboard write operation can fail (e.g., due to permissions or browser security). Consider handling potential errors gracefully.

Apply this diff to add error handling:

-            <DropdownMenuItem onClick={() => navigator.clipboard.writeText(payment.id)}>
+            <DropdownMenuItem onClick={() => {
+              navigator.clipboard.writeText(payment.id).catch(() => {
+                // Optionally show a toast/notification on failure
+              })
+            }}>
               Copy payment ID
             </DropdownMenuItem>

150-195: Consider using TanStack Table's built-in sorting.

The current implementation manually handles sorting logic, but TanStack Table provides built-in sorting via getSortedRowModel and sorting state. Using the built-in features would simplify the code and leverage the library's optimizations.

Here's how you could refactor to use TanStack Table's built-in sorting:

-type ColumnSort =
-  | 'email:asc'
-  | 'email:desc'
-  | 'status:asc'
-  | 'status:desc'
-  | 'amount:asc'
-  | 'amount:desc'
-
 export default function DataTableDemo() {
-  const [sort, setSort] = React.useState<ColumnSort | ''>('')
+  const [sorting, setSorting] = React.useState<SortingState>([])
   const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([])
   const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>({})
   const [rowSelection, setRowSelection] = React.useState({})
 
-  const handleSortChange = (column: string) => {
-    const [currentCol, currentOrder] = sort.split(':') as [string, 'asc' | 'desc' | '']
-    if (currentCol === column) {
-      // Cycle through: asc -> desc -> no sort
-      if (currentOrder === 'asc') {
-        setSort(`${column}:desc` as ColumnSort)
-      } else {
-        setSort('')
-      }
-    } else {
-      // New column, start with asc
-      setSort(`${column}:asc` as ColumnSort)
-    }
-  }
-
-  const sortedData = React.useMemo(() => {
-    if (!sort) return data
-
-    const [sortCol, sortOrder] = sort.split(':') as [string, 'asc' | 'desc']
-    const orderMultiplier = sortOrder === 'asc' ? 1 : -1
-
-    return [...data].sort((a, b) => {
-      if (sortCol === 'email') {
-        return a.email.localeCompare(b.email) * orderMultiplier
-      } else if (sortCol === 'status') {
-        return a.status.localeCompare(b.status) * orderMultiplier
-      } else if (sortCol === 'amount') {
-        return (a.amount - b.amount) * orderMultiplier
-      }
-      return 0
-    })
-  }, [sort])
-
   const table = useReactTable({
-    data: sortedData,
+    data,
     columns,
+    onSortingChange: setSorting,
     onColumnFiltersChange: setColumnFilters,
     getCoreRowModel: getCoreRowModel(),
+    getSortedRowModel: getSortedRowModel(),
     getPaginationRowModel: getPaginationRowModel(),
     getFilteredRowModel: getFilteredRowModel(),
     onColumnVisibilityChange: setColumnVisibility,
     onRowSelectionChange: setRowSelection,
     state: {
+      sorting,
       columnFilters,
       columnVisibility,
       rowSelection,
     },
   })

Then update the columns to include sorting configuration:

{
  accessorKey: 'status',
  header: 'Status',
  enableSorting: true,
  cell: ({ row }) => <div className="capitalize">{row.getValue('status')}</div>,
},

And use TanStack's column API in the render:

-                      {header.isPlaceholder ? null : isSortableColumn ? (
-                        <TableHeadSort
-                          column={columnId}
-                          currentSort={sort}
-                          onSortChange={handleSortChange}
-                          className={columnId === 'amount' ? 'justify-end' : undefined}
-                        >
-                          {columnId === 'email'
-                            ? 'Email'
-                            : columnId === 'status'
-                              ? 'Status'
-                              : 'Amount'}
-                        </TableHeadSort>
-                      ) : (
-                        flexRender(header.column.columnDef.header, header.getContext())
-                      )}
+                      {flexRender(header.column.columnDef.header, header.getContext())}

255-287: Hardcoded sortable columns check.

The sortable columns are hardcoded at line 257. If you add or remove sortable columns, this array must be manually updated, which is error-prone.

If you adopt TanStack Table's built-in sorting (per the previous comment), this check becomes unnecessary as the library handles it. Otherwise, consider deriving this from column configuration:

// At the column definition level
const sortableColumns = columns
  .filter(col => col.enableSorting !== false && col.accessorKey)
  .map(col => col.id || col.accessorKey)
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3d6be39 and a3868b8.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (11)
  • apps/design-system/__registry__/index.tsx (1 hunks)
  • apps/design-system/config/docs.ts (0 hunks)
  • apps/design-system/content/docs/components/data-table.mdx (0 hunks)
  • apps/design-system/content/docs/components/table.mdx (1 hunks)
  • apps/design-system/content/docs/ui-patterns/empty-states.mdx (1 hunks)
  • apps/design-system/content/docs/ui-patterns/tables.mdx (1 hunks)
  • apps/design-system/package.json (1 hunks)
  • apps/design-system/registry/default/example/data-grid-demo.tsx (1 hunks)
  • apps/design-system/registry/default/example/data-grid-empty-state.tsx (1 hunks)
  • apps/design-system/registry/default/example/data-table-demo.tsx (1 hunks)
  • apps/design-system/registry/examples.ts (1 hunks)
💤 Files with no reviewable changes (2)
  • apps/design-system/config/docs.ts
  • apps/design-system/content/docs/components/data-table.mdx
🧰 Additional context used
🧠 Learnings (9)
📓 Common learnings
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Use generic ui table components for most tables, contained within a Card
📚 Learning: 2025-12-11T00:21:01.839Z
Learnt from: dnywh
Repo: supabase/supabase PR: 41215
File: apps/design-system/content/docs/accessibility.mdx:30-30
Timestamp: 2025-12-11T00:21:01.839Z
Learning: MDX link paths in apps/design-system/content/docs depend on the file's location. For root-level docs, link components as 'components/button'; for docs in subdirectories (ui-patterns/, components/), link as '../components/button'. Apply this pattern consistently to all MDX files under apps/design-system/content/docs and verify that relative links resolve correctly from each file's location.

Applied to files:

  • apps/design-system/content/docs/ui-patterns/empty-states.mdx
  • apps/design-system/content/docs/ui-patterns/tables.mdx
  • apps/design-system/content/docs/components/table.mdx
📚 Learning: 2025-12-11T02:40:11.135Z
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Use generic ui table components for most tables, contained within a Card

Applied to files:

  • apps/design-system/content/docs/ui-patterns/tables.mdx
  • apps/design-system/registry/default/example/data-table-demo.tsx
  • apps/design-system/content/docs/components/table.mdx
  • apps/design-system/registry/default/example/data-grid-demo.tsx
  • apps/design-system/registry/examples.ts
📚 Learning: 2025-12-11T02:40:11.135Z
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : For simple lists of objects, use ResourceList with ResourceListItem instead of tables

Applied to files:

  • apps/design-system/content/docs/ui-patterns/tables.mdx
  • apps/design-system/registry/default/example/data-table-demo.tsx
  • apps/design-system/content/docs/components/table.mdx
  • apps/design-system/registry/examples.ts
📚 Learning: 2025-12-11T02:40:11.135Z
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Place table search or filters on the left-hand side above the table

Applied to files:

  • apps/design-system/content/docs/ui-patterns/tables.mdx
  • apps/design-system/registry/default/example/data-table-demo.tsx
📚 Learning: 2025-12-11T02:40:11.135Z
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Place table-associated actions on the right-hand side above the table

Applied to files:

  • apps/design-system/content/docs/ui-patterns/tables.mdx
  • apps/design-system/registry/default/example/data-table-demo.tsx
  • apps/design-system/content/docs/components/table.mdx
📚 Learning: 2025-12-11T02:40:11.135Z
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Read packages/ui/index.tsx file for full list of available components before composing interfaces

Applied to files:

  • apps/design-system/content/docs/ui-patterns/tables.mdx
📚 Learning: 2025-12-11T02:40:11.135Z
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Build forms with react-hook-form + zod

Applied to files:

  • apps/design-system/registry/default/example/data-grid-demo.tsx
  • apps/design-system/package.json
📚 Learning: 2025-12-11T02:40:11.135Z
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Use Card component to group related pieces of information

Applied to files:

  • apps/design-system/registry/default/example/data-grid-demo.tsx
  • apps/design-system/registry/examples.ts
🧬 Code graph analysis (2)
apps/design-system/registry/default/example/data-table-demo.tsx (4)
apps/www/internals/generate-sitemap.mjs (1)
  • formatted (199-202)
apps/docs/components/Navigation/Navigation.types.ts (1)
  • DropdownMenuItem (30-32)
packages/ui/index.tsx (1)
  • Card (13-13)
packages/ui/src/components/shadcn/ui/table.tsx (1)
  • TableHeadSort (183-183)
apps/design-system/registry/default/example/data-grid-demo.tsx (2)
apps/design-system/registry/default/example/data-table-demo.tsx (1)
  • columns (76-148)
blocks/vue/registry/default/lib/utils.ts (1)
  • cn (5-7)
🪛 LanguageTool
apps/design-system/content/docs/ui-patterns/tables.mdx

[style] ~16-~16: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...eractive, spreadsheet-like surfaces and very large datasets. Use Table when: - You need ...

(EN_WEAK_ADJECTIVE)


[style] ~48-~48: Consider replacing this word to strengthen your wording.
Context: ...able Data Table is a pattern component and is not exposed as a Design System compo...

(AND_THAT)


[style] ~60-~60: This phrasing can be wordy, so consider using a more descriptive and concise alternative.
Context: ...="data-table-demo" peekCode wide /> As you can see from the above example, Data Table’s composi...

(AS_YOU_CAN_SEE)


[style] ~66-~66: Consider replacing this word to strengthen your wording.
Context: ... Grid Data Grid is a pattern component and is not exposed as a Design System compo...

(AND_THAT)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: test (1)
  • GitHub Check: typecheck
  • GitHub Check: test
  • GitHub Check: format
🔇 Additional comments (10)
apps/design-system/content/docs/ui-patterns/tables.mdx (2)

1-83: Documentation structure and content look good.

The documentation clearly distinguishes between Table, Data Table, and Data Grid patterns with appropriate use cases. The "Future" section provides helpful context about consolidation plans. Links to external resources (TanStack Table, Shadcn, React Data Grid) are appropriately included.


45-47: Inconsistent link reference for DataGrid.

Line 47 links DataGrid to ../components/data-table, but Data Table and Data Grid are distinct patterns per this documentation. The DataGrid section (line 66) references React Data Grid. Consider updating this link to point to the correct section or documentation.

 #### DataGrid
 
-[DataGrid](../components/data-table) typically spans the full height and width of a container. A classic example is [Users](https://supabase.com/dashboard/project/_/auth/users), which (as it sounds) displays a list of the project's registered users. Any instance with zero results should display a more prominent empty with a clear title, description, and supporting illustration.
+[DataGrid](../ui-patterns/tables#data-grid) typically spans the full height and width of a container. A classic example is [Users](https://supabase.com/dashboard/project/_/auth/users), which (as it sounds) displays a list of the project's registered users. Any instance with zero results should display a more prominent empty with a clear title, description, and supporting illustration.

Note: This change should be applied to the empty-states.mdx file, not this file. The reference appears in apps/design-system/content/docs/ui-patterns/empty-states.mdx at line 47.

⛔ Skipped due to learnings
Learnt from: dnywh
Repo: supabase/supabase PR: 41215
File: apps/design-system/content/docs/accessibility.mdx:30-30
Timestamp: 2025-12-11T00:21:01.839Z
Learning: In apps/design-system/content/docs/, MDX files use different relative path formats based on their location: root-level docs use `components/button` format, while subdirectory docs (ui-patterns/, components/) use `../components/button` format for linking to components.
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Use generic ui table components for most tables, contained within a Card
apps/design-system/content/docs/components/table.mdx (1)

218-218: Link update is correct.

The updated link to ../ui-patterns/tables#data-table aligns with the new documentation structure that consolidates table-related guidance under the tables pattern page. Based on learnings, relative links from components/ subdirectory correctly use ../ to navigate to sibling directories.

apps/design-system/package.json (1)

21-21: Dependency addition is appropriate.

The @tanstack/react-table dependency is correctly added to support the new data-table-demo component. The caret version range (^8.21.3) follows the existing pattern in this package.json.

apps/design-system/registry/examples.ts (1)

1478-1491: Registry entries are well-structured.

The three new entries (data-grid-demo, data-grid-empty-state, data-table-demo) follow the established pattern for registry examples. File paths correctly reference the corresponding files in example/.

apps/design-system/registry/default/example/data-grid-empty-state.tsx (1)

6-6: Component rename is appropriate.

The rename from EmptyStateZeroItemsDataGrid to DataGridEmptyState follows a clearer naming convention and aligns with the new registry entry name.

apps/design-system/registry/default/example/data-grid-demo.tsx (3)

23-25: Hook usage in renderCell is intentional but worth noting.

The useRowSelection hook from react-data-grid is designed to be called within renderCell, which is why the eslint-disable comment is necessary. This is the documented pattern for react-data-grid selection. The comment appropriately signals this intentional deviation.


140-151: Row styling logic is well-implemented.

The rowClass function properly computes conditional classes for selection state, borders, and row position. The use of cn utility ensures clean class composition. The border styling with [&>.rdg-cell] selectors provides fine-grained control over cell appearance.


1-157: Demo component is comprehensive and well-structured.

The DataGridDemo component effectively demonstrates:

  • Row selection with checkboxes
  • Column configuration with resizing
  • Custom styling and class composition
  • State management for selected rows

The sample data and column definitions provide a realistic example of DataGrid usage.

apps/design-system/__registry__/index.tsx (1)

2725-2757: LGTM! New registry entries follow the established pattern.

The three new registry entries (data-grid-demo, data-grid-empty-state, data-table-demo) are structured consistently with existing entries and point to the correct file paths.

Comment thread apps/design-system/content/docs/ui-patterns/empty-states.mdx Outdated
Comment thread apps/design-system/content/docs/ui-patterns/empty-states.mdx Outdated
dnywh and others added 2 commits December 11, 2025 18:11
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

@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: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8e0a65f and 1895b50.

📒 Files selected for processing (1)
  • apps/design-system/content/docs/ui-patterns/empty-states.mdx (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Use generic ui table components for most tables, contained within a Card
📚 Learning: 2025-12-11T00:21:01.839Z
Learnt from: dnywh
Repo: supabase/supabase PR: 41215
File: apps/design-system/content/docs/accessibility.mdx:30-30
Timestamp: 2025-12-11T00:21:01.839Z
Learning: MDX link paths in apps/design-system/content/docs depend on the file's location. For root-level docs, link components as 'components/button'; for docs in subdirectories (ui-patterns/, components/), link as '../components/button'. Apply this pattern consistently to all MDX files under apps/design-system/content/docs and verify that relative links resolve correctly from each file's location.

Applied to files:

  • apps/design-system/content/docs/ui-patterns/empty-states.mdx
📚 Learning: 2025-12-11T02:40:11.135Z
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Use generic ui table components for most tables, contained within a Card

Applied to files:

  • apps/design-system/content/docs/ui-patterns/empty-states.mdx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: test (1)
  • GitHub Check: test
  • GitHub Check: typecheck
🔇 Additional comments (1)
apps/design-system/content/docs/ui-patterns/empty-states.mdx (1)

45-51: Link and ComponentPreview updates correctly address prior review feedback.

The link target has been properly updated to ../ui-patterns/tables#data-grid, and the ComponentPreview name has been changed to the registered data-grid-empty-state. Both changes align with the PR objectives and resolve the prior review comments. The relative link paths correctly resolve from the subdirectory file location.

Comment thread apps/design-system/content/docs/ui-patterns/empty-states.mdx Outdated
@dnywh dnywh requested a review from a team December 11, 2025 07:23
@MildTomato

Copy link
Copy Markdown
Member

@coderabbitai generate docstrings

@coderabbitai

coderabbitai Bot commented Dec 11, 2025

Copy link
Copy Markdown
Contributor
✅ Actions performed

Initiated docstring generation; will generate only if new commits exist.

@coderabbitai

coderabbitai Bot commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

Note

Docstrings generation - SUCCESS
Generated docstrings for this pull request at #41255

coderabbitai Bot added a commit that referenced this pull request Dec 11, 2025
Docstrings generation was requested by @MildTomato.

* #41252 (comment)

The following files were modified:

* `apps/design-system/registry/default/example/data-grid-demo.tsx`
* `apps/design-system/registry/default/example/data-grid-empty-state.tsx`
* `apps/design-system/registry/default/example/data-table-demo.tsx`
Docstrings generation was requested by @MildTomato.

* #41252 (comment)

The following files were modified:

* `apps/design-system/registry/default/example/data-grid-demo.tsx`
* `apps/design-system/registry/default/example/data-grid-empty-state.tsx`
* `apps/design-system/registry/default/example/data-table-demo.tsx`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@dnywh dnywh enabled auto-merge (squash) December 11, 2025 08:38

@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: 1

🧹 Nitpick comments (1)
apps/design-system/registry/default/example/data-table-demo.tsx (1)

310-316: Consider using a structured empty state component.

The empty state currently uses two separate <p> tags. For consistency with the design system, consider using an EmptyState component if one exists in the UI library, or at minimum wrap the messages in a container div for better semantic structure.

-              <TableRow>
-                <TableCell colSpan={columns.length}>
-                  <p className="text-sm text-foreground">No results found</p>
-                  <p className="text-sm text-foreground-lighter">
-                    Your search did not return any results
-                  </p>
-                </TableCell>
-              </TableRow>
+              <TableRow>
+                <TableCell colSpan={columns.length}>
+                  <div className="flex flex-col gap-1">
+                    <p className="text-sm text-foreground">No results found</p>
+                    <p className="text-sm text-foreground-lighter">
+                      Your search did not return any results
+                    </p>
+                  </div>
+                </TableCell>
+              </TableRow>
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1895b50 and a6ab223.

📒 Files selected for processing (6)
  • apps/design-system/__registry__/index.tsx (1 hunks)
  • apps/design-system/content/docs/ui-patterns/empty-states.mdx (1 hunks)
  • apps/design-system/registry/default/example/data-grid-demo.tsx (1 hunks)
  • apps/design-system/registry/default/example/data-grid-empty-state.tsx (2 hunks)
  • apps/design-system/registry/default/example/data-table-demo.tsx (1 hunks)
  • apps/design-system/registry/examples.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (4)
  • apps/design-system/registry/default/example/data-grid-demo.tsx
  • apps/design-system/registry/default/example/data-grid-empty-state.tsx
  • apps/design-system/registry/index.tsx
  • apps/design-system/content/docs/ui-patterns/empty-states.mdx
🧰 Additional context used
🧠 Learnings (6)
📓 Common learnings
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Use generic ui table components for most tables, contained within a Card
📚 Learning: 2025-12-11T02:40:11.135Z
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Use generic ui table components for most tables, contained within a Card

Applied to files:

  • apps/design-system/registry/examples.ts
  • apps/design-system/registry/default/example/data-table-demo.tsx
📚 Learning: 2025-12-11T02:40:11.135Z
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Use Card component to group related pieces of information

Applied to files:

  • apps/design-system/registry/examples.ts
📚 Learning: 2025-12-11T02:40:11.135Z
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Read packages/ui/index.tsx file for full list of available components before composing interfaces

Applied to files:

  • apps/design-system/registry/examples.ts
📚 Learning: 2025-12-11T02:40:11.135Z
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Place table-associated actions on the right-hand side above the table

Applied to files:

  • apps/design-system/registry/default/example/data-table-demo.tsx
📚 Learning: 2025-12-11T02:40:11.135Z
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Place table search or filters on the left-hand side above the table

Applied to files:

  • apps/design-system/registry/default/example/data-table-demo.tsx
🧬 Code graph analysis (1)
apps/design-system/registry/default/example/data-table-demo.tsx (4)
apps/www/internals/generate-sitemap.mjs (1)
  • formatted (199-202)
apps/docs/components/Navigation/Navigation.types.ts (1)
  • DropdownMenuItem (30-32)
packages/ui/index.tsx (1)
  • Card (13-13)
packages/ui/src/components/shadcn/ui/table.tsx (1)
  • TableHeadSort (183-183)
🪛 GitHub Actions: Check Code with Prettier
apps/design-system/registry/default/example/data-table-demo.tsx

[error] 1-1: Prettier formatting check failed in this file. Run 'prettier --write' to fix code style issues.

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: typecheck
  • GitHub Check: test
  • GitHub Check: test (1)
🔇 Additional comments (9)
apps/design-system/registry/examples.ts (1)

1478-1492: LGTM! Registry entries align with PR objectives.

The three new registry entries correctly replace the legacy data-grid entry and establish clear distinctions between DataGrid and DataTable examples. The data-table-demo appropriately declares its dependency on the table component.

apps/design-system/registry/default/example/data-table-demo.tsx (8)

3-36: LGTM! Imports are well-organized.

The imports correctly include all necessary TanStack Table hooks, UI components, and utilities. The structure is clean and follows best practices.


38-76: LGTM! Data structure is appropriate for a demo.

The hardcoded sample data and exported Payment type are well-suited for demonstration purposes. Exporting the type enables reusability in documentation examples.


78-153: LGTM! Column definitions are well-implemented.

The column configuration correctly implements:

  • Row selection with proper accessibility labels
  • Sortable columns with appropriate flags
  • Currency formatting using Intl.NumberFormat
  • Action dropdown with screen reader support via sr-only

195-212: LGTM! TanStack Table configuration is correct.

The useReactTable setup properly includes all necessary row models (core, sorted, paginated, filtered) and correctly wires state management for sorting, filtering, column visibility, and row selection.


217-249: LGTM! Control layout follows design patterns.

The filter input on the left and column visibility dropdown on the right correctly align with the learned patterns for table controls.

Based on learnings: filters on the left, actions on the right.


251-321: LGTM! Table structure follows best practices.

The table is properly wrapped in a Card component and includes appropriate empty state handling. The implementation aligns with the learned pattern: "Use generic ui table components for most tables, contained within a Card."

Based on learnings: tables should be contained within Cards.


323-346: LGTM! Pagination controls are well-implemented.

The row selection count and pagination buttons are properly implemented with disabled states and clear UX.


169-193: TableHeadSort integration is correct, but the empty string handling is implicit.

The sorting logic correctly implements the "columnId:asc" / "columnId:desc" format expected by TableHeadSort. When getSortString returns an empty string (no active sort), the component's split on ':' produces [""], which safely results in isActive = false and displays the neutral sort indicator. However, this behavior relies on an undocumented edge case—the TableHeadSort component doesn't explicitly handle empty strings, making the API contract less clear than it could be.

Comment thread apps/design-system/registry/default/example/data-table-demo.tsx
@dnywh

dnywh commented Dec 11, 2025

Copy link
Copy Markdown
Contributor Author

@coderabbitai ignore

@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: 0

🧹 Nitpick comments (3)
apps/design-system/registry/default/example/data-grid-empty-state.tsx (1)

14-21: Align row type with the phone column for clearer typing

The grid defines a phone column, but the row type and rows array only include id, name, and email. Even though rows is empty, aligning the types with the visible columns will avoid confusion and potential type warnings.

You could tighten this up with something like:

-  const columns: Column<{ id: string; name: string; email: string }>[] = [
+  type User = { id: string; name: string; email: string; phone: string }
+
+  const columns: Column<User>[] = [
@@
-  const rows: { id: string; name: string; email: string }[] = []
+  const rows: User[] = []
apps/design-system/registry/default/example/data-grid-demo.tsx (2)

25-53: Consider aligning checkbox handler with onCheckedChange pattern

In this selection column, Checkbox_Shadcn_ is wired via onClick with stopPropagation, while elsewhere (for example in data-table-demo.tsx) it’s used with onCheckedChange. For consistency with the rest of the design system and with typical Checkbox semantics, consider routing the selection toggle through onCheckedChange and keeping onClick only for stopPropagation, e.g.:

-            <Checkbox_Shadcn_
-              checked={isRowSelected}
-              onClick={(e) => {
-                e.stopPropagation()
-                onRowSelectionChange({
-                  row,
-                  type: 'ROW',
-                  checked: !isRowSelected,
-                  isShiftClick: e.shiftKey,
-                })
-              }}
-            />
+            <Checkbox_Shadcn_
+              checked={isRowSelected}
+              onClick={(e) => e.stopPropagation()}
+              onCheckedChange={(checked) =>
+                onRowSelectionChange({
+                  row,
+                  type: 'ROW',
+                  checked: !!checked,
+                  // If shift-select support is important, you could extend this later
+                  isShiftClick: false,
+                })
+              }
+            />

That keeps the row-selection behavior while matching the Checkbox API used in other demos.


77-165: Optional: lift static rows out of the component to avoid re-allocation

Since rows is static demo data, you could define it (and optionally columns) outside the component. This avoids recreating the arrays on every render and makes it clearer that they’re constant example data, e.g.:

-type User = {
+type User = {
   id: string
   name: string
   email: string
   phone: string
 }
 
+const DEMO_ROWS: User[] = [/* ... */]
+
 export default function DataGridDemo() {
   const [selectedRows, setSelectedRows] = useState<Set<string>>(new Set())
@@
-  const rows: User[] = [
-    // ...
-  ]
+  const rows = DEMO_ROWS

Not required for correctness, but it’s a small cleanliness/perf win for a shared demo.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a6ab223 and a6ca542.

📒 Files selected for processing (3)
  • apps/design-system/registry/default/example/data-grid-demo.tsx (1 hunks)
  • apps/design-system/registry/default/example/data-grid-empty-state.tsx (1 hunks)
  • apps/design-system/registry/default/example/data-table-demo.tsx (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/design-system/registry/default/example/data-table-demo.tsx
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Use generic ui table components for most tables, contained within a Card
📚 Learning: 2025-12-11T02:40:11.135Z
Learnt from: CR
Repo: supabase/supabase PR: 0
File: .cursor/rules/studio-ui.mdc:0-0
Timestamp: 2025-12-11T02:40:11.135Z
Learning: Applies to apps/studio/**/*.{ts,tsx} : Use generic ui table components for most tables, contained within a Card

Applied to files:

  • apps/design-system/registry/default/example/data-grid-demo.tsx
🧬 Code graph analysis (1)
apps/design-system/registry/default/example/data-grid-demo.tsx (2)
apps/design-system/registry/default/example/data-table-demo.tsx (1)
  • columns (78-153)
blocks/vue/registry/default/lib/utils.ts (1)
  • cn (5-7)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: test
  • GitHub Check: test (1)
  • GitHub Check: typecheck
🔇 Additional comments (2)
apps/design-system/registry/default/example/data-grid-empty-state.tsx (1)

6-13: Docstring and component rename are clear and accurate

The JSDoc nicely captures the behavior of this example, and the DataGridEmptyState name matches the new registry entry naming. No functional concerns here.

apps/design-system/registry/default/example/data-grid-demo.tsx (1)

6-22: Data grid demo structure and typing look solid

The User type, hard-coded sample data, and JSDoc all line up with how the grid is configured. The component clearly demonstrates row selection and basic grid usage in a way that fits the design-system docs.

@coderabbitai

coderabbitai Bot commented Dec 11, 2025

Copy link
Copy Markdown
Contributor
✅ Actions performed

Reviews paused.

@dnywh dnywh merged commit ce294e3 into master Dec 11, 2025
23 checks passed
@dnywh dnywh deleted the dnywh/docs/data-table-data-grid branch December 11, 2025 09:05
stylessh pushed a commit that referenced this pull request Dec 11, 2025
* basic differentiation

* docs

* data-grid examples

* data-grid-demo

* data-table

* demo

* use existing components

* improvements

* markup

* docs

* remove data table

* lint

* Update apps/design-system/content/docs/ui-patterns/empty-states.mdx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix ref

* use TanStack sorting

* grammar

* dependency

* 📝 Add docstrings to `dnywh/docs/data-table-data-grid` (#41255)

Docstrings generation was requested by @MildTomato.

* #41252 (comment)

The following files were modified:

* `apps/design-system/registry/default/example/data-grid-demo.tsx`
* `apps/design-system/registry/default/example/data-grid-empty-state.tsx`
* `apps/design-system/registry/default/example/data-table-demo.tsx`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
stylessh added a commit that referenced this pull request Dec 16, 2025
* wip

* wip

* single page

* new sections and polishing up

* reponsive

* nits

* semantic titles

* optimize imgs

* nits

* wup

* hero bubbles

* Update apps/www/components/Wrapped/Pages/SupabaseSelect.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: Use `amaro` for stripping types in code samples (#41229)

* Fix the error for babel/preset-typescript in docs.

* Unfix the version.

* Try using amaro for type stripping.

* Run prettier after stripping types.

* Fix tests.

---------

Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>

* fix: Fix minor issue in the foreign key selector (#41235)

Change the isPending state to isLoading.

* docs: Remove empty troubleshooting fields (#41236)

* Remove emoty fields

* Fix lock file

* chore: update self-hosted image versions (#41234)

* Feature: show index advisor in table editor (#41166)

* added table advisor query

* updated to include table editor performance

* updated JSON B

* added side panel

* updated query indexes to show highlights context

* show index advisor in table editor

* updated invalidation logic

* added color updates

* added query indexes

* updated query performance type

* updated overflow and title

* put behind flag

* remove gap

* added on close

* Update apps/studio/data/database/table-index-advisor-query.ts

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* updated styling

---------

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* fix: useFlag to update initial check of flag store (#41209)

* fix flag lib

* updated uneeded logic

* updated logic

* remove line

* updated comment

* fix: Hide favourites and share snippets on self-hosted variant (#41227)

* Hide favorite and share actions for self-hosted version.

* Rename the query on save only on platform.

* Simplify useCheckOpenAiKeyQuery.

* Rename with AI now depends if the OPENAI_API_KEY is set.

* Minor fixes.

* Fix the tests to use .skip for skipping tests. Remove extra port params.

* Make the test for favourites work only on platform variant.

* feat(reports): support new database report granularity FE-2221 (#41228)

* handle new granularity

* undo unnecessary type change

* rm console log

* fix: blog auto scroll post app router migration for blog (#41220)

Enhance TOC highlighting and anchor scroll in blog posts

Refactored useActiveAnchors hook to support smooth hash scrolling and improved TOC highlighting based on scroll position. Added options for custom selectors and offset, and updated BlogPostClient to enable scroll-to-anchor and TOC highlight functionality.

* fix: remove flakiness with launch options and default timeouts (#41245)

* attempt to make table editor tests less flaky

* updated race conditions for table editor

* updated playwright config with optimized launch options

* reduce workers

* updated timeouts for tests

* updated config to have a global timeout of 20 seconds

* updated to be visible

* chore: update changelog and image versions file (#41244)

* feat(design-system): improve table docs (#41215)

* docs updates

* docs expansion

* minor docs fix

* improvements

* fix dependencies

* docs expansion

* more table examples

* map over data

* improve copy

* Update apps/design-system/registry/default/example/table-row-link-actions.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update apps/design-system/registry/default/example/table-row-link-actions.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fixes

* fix

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(studio): improve table presentation (#41217)

* billing improvements

* wrapper improvements

* border fix

* Nit adjustments

* fixes

* fix aria

* fix loading

* fixes

* fix

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>

* Save opened side bar in local storage, and init on new session (#41224)

* Save opened side bar in local storage, and init on new session

* Fix test

* Fix

* Nit

* docs(design-system): Data Table and Data Grid documentation (#41252)

* basic differentiation

* docs

* data-grid examples

* data-grid-demo

* data-table

* demo

* use existing components

* improvements

* markup

* docs

* remove data table

* lint

* Update apps/design-system/content/docs/ui-patterns/empty-states.mdx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix ref

* use TanStack sorting

* grammar

* dependency

* 📝 Add docstrings to `dnywh/docs/data-table-data-grid` (#41255)

Docstrings generation was requested by @MildTomato.

* #41252 (comment)

The following files were modified:

* `apps/design-system/registry/default/example/data-grid-demo.tsx`
* `apps/design-system/registry/default/example/data-grid-empty-state.tsx`
* `apps/design-system/registry/default/example/data-table-demo.tsx`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: fix grammatical error in generate-text-embeddings guide (#41187)

* docs: fix grammatical error in generate-text-embeddings guide

* Update generate-text-embeddings.mdx

Co-authored-by: Chris Chinchilla <chris@chrischinchilla.com>

---------

Co-authored-by: Chris Chinchilla <chris@chrischinchilla.com>

* chore: uniform card and panel padding-x (#41237)

* docs: Fix typo in API introduction documentation (#41251)

* chore(billing): regenerate api-types to include vanity subdomain entitlement (#41257)

chore(billing: regenerate api-types to include vanity subdomain entitlement

* Add liam to humans.txt (#41169)

* docs: Add link to restoring backup to new Supabase project (#39108)

Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>

* feat(code-block): add word wrap functionality and controls to code bl… (#39689)

* feat(code-block): add word wrap functionality and controls to code blocks

* feat(code-block): enhance layout of code block with improved line number display and structure

* fix h-full issue

* fix Prettier issue

---------

Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>

* wip

* wip

* single page

* optimize imgs

* revert

* pkg

* update new content

* rm overflow

* new data

* nits

* nits

* og

* border

* fix: improve AnimatedCounter and FloatingStatBubbles/Intro components

- Update AnimatedCounter to correctly reflect value changes in the DOM.
- Add lifetime management for timers in FloatingStatBubbles and FloatingBoxes to prevent memory leaks.
- Ensure cleanup of timers on component unmount for better resource management.

* dbs

* minify images

* text-brand-link on light mode

* fix grid

* max-width on images

* address comments

* fixes

* faster image rotation

* upd og

* new launch

* nitsgs

* last nits

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>
Co-authored-by: Andrey A. <56412611+aantti@users.noreply.github.com>
Co-authored-by: Ali Waseem <waseema393@gmail.com>
Co-authored-by: Jordi Enric <37541088+jordienr@users.noreply.github.com>
Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
Co-authored-by: Danny White <3104761+dnywh@users.noreply.github.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Co-authored-by: Dinesh Dawonauth <dineshddawo@gmail.com>
Co-authored-by: Chris Chinchilla <chris@chrischinchilla.com>
Co-authored-by: Francesco Sansalvadore <f.sansalvadore@gmail.com>
Co-authored-by: 李子衿 <160584929+hhhez@users.noreply.github.com>
Co-authored-by: Kanishk Dudeja <kanishk@kanishkdudeja.com>
Co-authored-by: lch-supa <liam.hogan@supabase.io>
Co-authored-by: Timothy Lim <tim.lim@supabase.io>
Co-authored-by: Priyanshu Thapliyal <114170980+Priyanshuthapliyal2005@users.noreply.github.com>
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.

3 participants