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

tabular-svelte

v0.1.13

Published

A Svelte component to display tabular data

Readme

tabular-svelte

Tabular Screenshot

Overview

tabular-svelte provides a simple way to present data in a tabular format. Its major functionality includes:

  • Support for text, image, & pill components
  • Forward & backward scrolling
  • Ascending & descending sort controls on each column

These are the only functions available at this time. However, this is an active project and there are plans to add additional features over time.

Installation

To install this package use the following NPM command:

npm install --save-dev tabular-svelte

Usage

All you have to do to use tabular-svelte is to import the module like so:

import Tabular from 'tabular-svelte/src/Tabular.svelte'

Next, create a Javascript object defining where your data is coming from and the format of each cell in a column, and then include the <Tabular> component in your markup.

Format Object

The Javascript object you create is referred to as the "format" object. You can name it anything you'd like and the following issues an example of how it's formatted:

const personRpt = {
		dataSource: {
			reader: getPersonData,
			rowsPerPage: 4, // Specify -1 for all rows
			totalRows: PersonData.length,
		},
		columns: [
			{ type: 'image', heading: 'Avatar', dataName: 'avatarImg' },
			{ type: 'text', heading: 'email', dataName: 'email' },
			{ type: 'text', heading: 'Last Name', dataName: 'lastName' },
			{ type: 'text', heading: 'First Name', dataName: 'firstName' },
			{ type: 'pill', heading: 'Status', dataName: 'status',
					styles: [ 
						{ value: 'Active', pillColor: 'bg-green-400' },
						{ value: 'Inactive', pillColor: 'bg-red-400' },
					]
			}
		]
	}

dataSource Section

dataSource defines a reference to a reader function that supplies the data rows, the number of rows to be displayed on each page, and the total number of rows provided by your reader function.

| Attribute | Value | |:----------|:------| | reader | A function Tabular will invoke to get the rows to be displayed. This function should return all available rows and Tabular will figure out how to format them and allow the user to scroll through them them | | rowsPerPage | The maximum number of rows to be displayed on the page. This also defines the number of rows that will be moved backward or forward during a scrolling operation. | | totalRows | The total number of rows in the JS object returned by reader. |

columns Section

columns defines the format of the cells in each column. There are are currently three format types:

  • text: Plain text
  • image: An image
  • pill: Text styled in a color-filled oval

| Attribute | Value | |:---------------|:------| | type | May be one of the following to specify have values in this column will be formatted:text: Plain textimage: An image with a round borderpill: Text value encolosed in a color-filled oval | | heading | The heading for this column | | dataName | Name of the key for this field in the JS object returned by the reader | | styles | Specifies the background color to be applied to the cell. Currently this is only used on pill columns.value:The data value the style will be applied to.pillColor: The background color to be used for pill columns. You may use a key of either styles or decorators. However, decorators will be deprecated in release 2.0 |

Tabular Component

Once you've defined a format object all you need to do is include a <Tabular> component as markup in your Svelte file like so:

<Tabular definition={ personRpt } />

That's it! Tabular will call the reader function you supply to get the data and will then render it based using the columns specification you defined in the format object.

You can see an example in this repo.

Support

If you have questions or encounter any issues feel free to open an issue and we will address it as soon as possible.

Better yet, consider contributing to this project by proposing enhancements and working on issues. You can find more information about contributing in these project documents:

Release History

You can find what changed, when in the release history

License

Copyright 2020

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.