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

@tuqs/insight-chart

v1.0.2

Published

A flexible Chart.js wrapper library with TypeScript support

Readme

Insight Chart

A flexible Chart.js wrapper library with TypeScript support for creating beautiful, customizable charts.

Features

  • 🎨 Multiple Chart Types: Bar, Line, Pie, Donut, Radar, and Area charts
  • 📦 TypeScript Support: Full type definitions included
  • 🎯 Easy to Use: Simple API with sensible defaults
  • 🔧 Highly Customizable: Extensive configuration options
  • 🌳 Tree-shakeable: Import only what you need
  • 📊 Built on Chart.js: Leverages the power of Chart.js 4.x

Installation

npm install @tuqs/insight-chart chart.js chartjs-plugin-datalabels

Peer Dependencies

This library requires the following peer dependencies:

  • chart.js ^4.0.0
  • chartjs-plugin-datalabels ^2.0.0

Usage

Tree-shaking with Named Imports

import { BarChart, LineChart, PieChart } from '@tuqs/insight-chart';

// Use specific chart types
BarChart.showVertical('chart1', labels, data, options);
LineChart.show('chart2', labels, data, options);
PieChart.show('chart3', labels, data, options);

Available Chart Types

Bar Chart

// Vertical Bar Chart
BarChart.showVertical(chartId, labels, data, options);

// Horizontal Bar Chart
BarChart.showHorizontal(chartId, labels, data, options);

Line Chart

LineChart.show(chartId, labels, data, options);

Pie Chart

PieChart.show(chartId, labels, data, {
    colors: ['#4e73df', '#1cc88a', '#36b9cc'],
    showPercentage: true
});

Donut Chart

DonutChart.show(chartId, labels, data, {
    centerText: '100',
    centerSubtext: 'Total',
    cutout: '70%'
});

Radar Chart

RadarChart.show(chartId, labels, data, options);

Area Chart

AreaChart.show(chartId, labels, data, {
    gradientStart: 'rgba(78, 115, 223, 0.4)',
    gradientEnd: 'rgba(78, 115, 223, 0.05)'
});

Configuration Options

Common Options

interface BaseChartOptions {
    label?: string;              // Dataset label
    suffix?: string;             // Value suffix (e.g., ' units')
    maxValue?: number;           // Maximum Y-axis value
    minValue?: number;           // Minimum Y-axis value
    showLegend?: boolean;        // Show/hide legend
    customConfig?: any;          // Custom Chart.js configuration
    title?: string;              // Chart title
}

Bar Chart Options

interface BarChartOptions extends BaseChartOptions {
    thresholds?: Threshold[];    // Conditional coloring
    defaultColor?: string;       // Default bar color
    backgroundColor?: string | string[];
    borderColor?: string;
    borderWidth?: number;
    formatter?: (value: number) => string;
}

Pie/Donut Chart Options

interface PieChartOptions {
    colors?: string[];           // Custom colors array
    showLegend?: boolean;
    legendPosition?: 'top' | 'bottom' | 'left' | 'right';
    showPercentage?: boolean;    // Show percentage in labels
    customLegendLabels?: boolean;
    formatter?: (value: number, context?: any) => string;
}

Donut Chart Specific Options

interface DonutChartOptions extends PieChartOptions {
    showCenterText?: boolean;
    centerText?: string;         // Main center text
    centerSubtext?: string;      // Subtitle center text
    centerFont?: string;
    centerSubfont?: string;
    centerColor?: string;
    centerSubcolor?: string;
    cutout?: string | number;    // Donut hole size
    showDataLabels?: boolean;
}

Advanced Usage

Conditional Coloring

BarChart.showVertical('chart', labels, data, {
    thresholds: [
        {
            condition: (value) => value > 50,
            color: '#1cc88a'  // Green for values > 50
        },
        {
            condition: (value) => value < 20,
            color: '#e74a3b'  // Red for values < 20
        }
    ],
    defaultColor: '#4e73df'  // Blue for other values
});

Custom Chart.js Configuration

LineChart.show('chart', labels, data, {
    customConfig: {
        options: {
            animation: {
                duration: 2000
            },
            scales: {
                y: {
                    grid: {
                        color: 'rgba(0, 0, 0, 0.1)'
                    }
                }
            }
        }
    }
});

Destroying Charts

// Destroy a specific chart
ChartManager.destroy('myChart');
ChartManager.destroyAll();  // Destroy all charts

TypeScript Support

This library is written in TypeScript and provides full type definitions. Import types as needed:

import {
    BarChartOptions,
    LineChartOptions,
    PieChartOptions,
    DonutChartOptions,
    RadarChartOptions,
    AreaChartOptions
} from '@tuqs/insight-chart';

Browser Support

This library supports all modern browsers that are supported by Chart.js 4.x.

License

ISC

Author

tuqs

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Changelog

1.0.2

  • Initial release
  • Support for Bar, Line, Pie, Donut, Radar, and Area charts
  • Full TypeScript support
  • Tree-shaking support