npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mui-tantable

v0.1.9

Published

A lightweight MUI-styled TanStack table with list-view, filters and virtualization.

Readme

🚀 Mui TanTable

GitHub stars GitHub forks GitHub issues GitHub pull requests License Code of Conduct Build (GitHub Actions) npm (latest) npm downloads Socket Badge

A table component based on TanStack Table and Material‑UI (MUI) designed for feature-rich, high-performance, and accessible lists and tables. ✨

Status: 🛠️ development — core functionality implemented (virtualization, cell selection, keyboard shortcuts, list view, expandable search).

Repository: 🔗 https://github.com/testx1011/mui-tantable

📚 Documentation

Quick Install (clone from GitHub)

git clone https://github.com/testx1011/mui-tantable.git
cd mui-tantable
npm install
# or use pnpm if you prefer
# pnpm install

Install from npm

npm install mui-tantable
# or with yarn
yarn add mui-tantable

🎯 Goal

  • Provide a highly customizable and efficient table for React applications with MUI styling.
  • Offer Data Grid features (filtering, sorting, pagination, selection, virtualization, and list view).

✨ Key Features

  • ⚙️ Flexible Rendering: Columns defined with ColumnDef and custom renderers.
  • ⚡️ Virtualization: Supports @tanstack/react-virtual for thousands of rows.
  • 📋 List View: enableListView + renderListViewItem to present data in a single-column list view style (inspired by MUI X List View).
  • 🔘 Cell & Row Selection: Visual cell selection and multi-row selection.
  • ⌨️ Keyboard Shortcuts: Ctrl+C copies cell/row content in tabular format compatible with Excel/Sheets.
  • 🔎 Expandable Search: Search UI with animation MUI Data Grid quick filter style.
  • ✍️ In-cell / In-row Editing: Support for cell-by-cell or row-by-row editing modes (configurable).
  • 🧭 Toolbar: Search, column visibility, export (CSV/Excel/JSON), density options, and view switcher (grid/list).

📁 Project Structure (summary)

  • src/components/TanTable.tsx — main component.
  • src/components/TableToolbar.tsx — toolbar (search, export, density, view switcher).
  • src/components/ExpandableSearch.tsx — expandable search.
  • src/components/cells/* — cell renderers (text, number, date, avatar...).
  • src/components/filters/* — built-in filters.
  • src/utils/* — exporters, formatters, and utilities.
  • stories/TanTable.stories.tsx — Storybook stories with examples (includes ListView, Virtualization).

Requirements

  • Node.js 18+ (recommended).
  • Dependencies managed in package.json.

🧰 Installation (local development)

# clone the repo
git clone https://github.com/testx1011/mui-tantable.git
cd mui-tantable

# install dependencies
npm install

# start storybook (if configured)
npm run storybook

# or build the package
npm run build

⚡ Basic Usage Minimal example with TanTable:

import React from "react";
import { TanTable } from "mui-tantable";

const columns = [
  { accessorKey: "id", header: "ID" },
  { accessorKey: "name", header: "Name", cellType: "text" },
  { accessorKey: "email", header: "Email", cellType: "link" },
];

const data = [
  { id: 1, name: "Alice", email: "[email protected]" },
  { id: 2, name: "Bob", email: "[email protected]" },
];

export default function App() {
  return (
    <TanTable
      data={data}
      columns={columns}
      enableVirtualization={true}
      enableRowSelection={true}
      toolbarConfig={{ title: "My Table" }}
    />
  );
}

Enable List View

<TanTable
  data={data}
  columns={columns}
  enableListView={true}
  renderListViewItem={(row) => (
    <div style={{ padding: 12, display: "flex", alignItems: "center" }}>
      <img
        src={row.original.avatar}
        alt="avatar"
        style={{ width: 40, height: 40, borderRadius: 20 }}
      />
      <div style={{ marginLeft: 12 }}>
        <div>{row.original.name}</div>
        <div style={{ color: "#666" }}>{row.original.email}</div>
      </div>
    </div>
  )}
/>

🛠️ Useful Commands

  • npm run build — compiles the library (uses tsup).
  • npm run dev — (if defined) local development.
  • npm run storybook — opens Storybook with interactive examples.

Development and Testing

  • Keep typescript and eslint clean (if configured).
  • Run npm run build after type or export changes.

🙌 Quick Contribution Guide See CONTRIBUTING for complete details: from cloning the repo to PR workflow and code standards.

  • Open an issue to discuss large changes.
  • Create small, focused PRs; include the objective and Storybook demos when possible.

🔮 Suggested Next Steps

  • Add badges (build, coverage, npm) to README.md.
  • Document ColumnDef API and cellType in detail.
  • Add integration examples (Next.js, CRA, Vite).

☕ Support

If you find this project useful, you can buy me a coffee!

Buy me a coffee