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

@kevin-courbet/aperture

v0.2.0

Published

React chart components and composable widgets built on TanStack Charts.

Readme

Aperture

Aperture is a React chart component library built on TanStack Charts. It includes typed charts, widget slots, controls, exact-value tables, semantic CSS tokens, and replaceable icons.

The API is unstable while Aperture is in the 0.x release series.

Install

pnpm add @kevin-courbet/aperture react react-dom

Import components from @kevin-courbet/aperture. Browser-aware bundlers load the Aperture styles through the package browser export.

import { ChartProvider, LineChart } from '@kevin-courbet/aperture'

Import @kevin-courbet/aperture/styles.css when the build does not use package browser exports.

Use @kevin-courbet/aperture/tanstack only when the common API does not meet an advanced chart requirement. TanStack Charts is pre-alpha and pinned by Aperture.

Exact Values

One ChartWidget.Root contains one Aperture chart. Set exactValues to available for ready chart data and unavailable when no table exists. A controlled tableVisible value requires onTableVisibleChange.

Time Axes

Time charts select calendar ticks from the chart width, date domain, locale, and time zone. Labels show the year or date when calendar context changes. Calendar intervals use the Gregorian calendar and localize its labels with the provider locale.

Use the automatic policy unless the reader task requires a fixed interval or ticks at observations:

<LineChart
  {...props}
  timeAxis={{
    kind: 'calendar',
    interval: { unit: 'quarter', step: 1 },
  }}
/>

Fixed calendar intervals reject invalid steps and domains that exceed the supported tick limit. Use the advanced entry point for arbitrary tick values or formatting.

Clock steps must divide their containing unit. For example, seconds can use 1, 2, 5, 10, 15, 20, or 30. They cannot use 7.

Dense fixed intervals keep their calendar tick marks. Their labels use self-contained dates and thin to prevent overlap.

Responsive Server Output

Set initialWidth to the expected server container width when it differs from the 640 px default. Set width only when the chart must have a fixed width.

Use SVG when server output must include a visible chart. Canvas charts keep their accessible exact values in server HTML and paint the chart after browser hydration.

Candlesticks

date is the observation instant at the center of a candle. Set candleInterval to the period represented by each candle. Aperture derives body width from that calendar interval and rejects observations that are too close for it. This supports sparse series and calendar month-end observations without inferring candle width from the gap between records.