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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@codvista/cvians-core

v2.1.9

Published

Core components for the Cvians UI library - Excel-like tables and more

Downloads

46

Readme

@codvista/cvians-core

Core components for the Cvians UI library, featuring Excel-like tables with advanced filtering and sorting capabilities.

✨ Features

  • 🔍 Excel-like filtering - Checkbox-based filtering with unique values
  • 📊 Multi-column sorting - Click headers to sort ascending/descending
  • 🎯 Type-aware - Handles string, number, date, and boolean data types
  • 🎨 Customizable - Built with Tailwind CSS and shadcn/ui design system
  • 📱 Responsive - Works seamlessly across all screen sizes
  • Accessible - Full keyboard navigation and screen reader support
  • 🔧 Easy to use - Same syntax as regular HTML tables
  • Framework agnostic - Works with both React and Preact

🚀 Installation

npm install @codvista/cvians-core

Or using the CLI (recommended):

# Install CLI globally
npm install -g @codvista/cvians-cli

# Initialize your project
cvians init

# Add components
cvians add excel-table

📖 Quick Start

import {
  ExcelTable,
  ExcelTableHeader,
  ExcelTableHead,
  ExcelTableBody,
  ExcelTableRow,
  ExcelTableCell,
} from "@codvista/cvians-core"

function MyTable() {
  const data = [
    { id: 1, name: "John Doe", age: 30, active: true },
    { id: 2, name: "Jane Smith", age: 25, active: false },
  ]

  return (
    <ExcelTable>
      <ExcelTableHeader>
        <ExcelTableRow>
          <ExcelTableHead sortable dataType="number">ID</ExcelTableHead>
          <ExcelTableHead filterable sortable dataType="string">Name</ExcelTableHead>
          <ExcelTableHead filterable sortable dataType="number">Age</ExcelTableHead>
          <ExcelTableHead filterable dataType="boolean">Active</ExcelTableHead>
        </ExcelTableRow>
      </ExcelTableHeader>
      <ExcelTableBody>
        {data.map((row) => (
          <ExcelTableRow key={row.id}>
            <ExcelTableCell>{row.id}</ExcelTableCell>
            <ExcelTableCell>{row.name}</ExcelTableCell>
            <ExcelTableCell>{row.age}</ExcelTableCell>
            <ExcelTableCell>{row.active ? 'Yes' : 'No'}</ExcelTableCell>
          </ExcelTableRow>
        ))}
      </ExcelTableBody>
    </ExcelTable>
  )
}

🎯 Data Types

The component supports different data types for proper sorting and filtering:

  • string - Text data (default)
  • number - Numeric data with proper numerical sorting
  • date - Date values (accepts various date formats)
  • boolean - Boolean values (true/false)

📚 API Reference

ExcelTable

Main container component.

| Prop | Type | Default | Description | |------|------|---------|-------------| | children | ReactNode | - | Table content | | className | string | - | Additional CSS classes |

ExcelTableHead

Table header cell with filtering and sorting capabilities.

| Prop | Type | Default | Description | |------|------|---------|-------------| | children | ReactNode | - | Header content | | filterable | boolean | false | Enable filtering for this column | | sortable | boolean | false | Enable sorting for this column | | dataType | 'string' \| 'number' \| 'date' \| 'boolean' | 'string' | Data type for proper filtering/sorting | | className | string | - | Additional CSS classes |

🎨 Styling

The components use Tailwind CSS and follow the shadcn/ui design system. Customize appearance using:

  • className props on any component
  • CSS variables for theming
  • Tailwind modifiers for responsive design

🔧 Framework Compatibility

React

Works out of the box with React 16.8+

Preact

Compatible with Preact 10+ using preact/compat

📄 License

MIT License

🔗 Links