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

@jet-w/astro-blog.component.product-card

v0.1.2

Published

Reusable product card Vue component for @jet-w/astro-blog

Readme

@jet-w/astro-blog.component.img-viewer

A reusable, feature-rich image viewer Vue 3 component for @jet-w/astro-blog.

Features

  • Category Filtering — Filter images by categories with multi-select checkbox filters and counts
  • Keyboard Navigation — Arrow keys to navigate, Space/Up/Down to toggle descriptions, F for full page, Escape to exit
  • Multiple Layouts — Stack (vertical) and side-by-side layout modes
  • Random Mode — Shuffle through images randomly
  • Zoom Toggle — Expand images to fill the available width
  • Full Page Mode — Take over the viewport while staying in-page
  • Native Fullscreen — Browser fullscreen API support
  • Rich Descriptions — Show/hide HTML descriptions with .hi highlight class
  • Dark Mode — Full dark mode support including fullscreen variants
  • Click Navigation — Click left/right half of the image area to navigate

Installation

npm install @jet-w/astro-blog.component.img-viewer

Peer Dependencies

  • vue >= 3.5.0

Usage

In Astro MDX

import ImageViewer from '@jet-w/astro-blog.component.img-viewer/components/ImageViewer.vue';

export const images = [
  {
    src: '/images/chart.png',
    title: 'Revenue Chart',
    categories: ['graph'],
    description: 'Quarterly revenue with <span class="hi">Q3 peak</span>.',
  },
  {
    src: '/images/flowchart.png',
    title: 'CI/CD Pipeline',
    categories: ['flowchart'],
  },
];

<ImageViewer client:load images={images} />

Props

| Prop | Type | Required | Description | |------|------|----------|-------------| | images | ImageItem[] | Yes | Array of image objects to display |

Types

interface ImageItem {
  src: string;
  title: string;
  categories?: string[];
  description?: string;
}

interface CategoryOption {
  value: string;
  label: string;
}

Keyboard Shortcuts

| Key | Action | |-----|--------| | / | Previous / Next image | | Space / / | Toggle description | | F | Toggle full page mode | | Escape | Exit full page mode |

Built-in Categories

The component includes built-in category filters:

  • Important — Highlighted items
  • Graph — Charts and graphs
  • Flowchart — Flow diagrams
  • Map — Maps and geographic visuals
  • Image — General images

Description Highlights

Use the .hi CSS class inside description HTML to highlight key terms:

<span class="hi">highlighted text</span>

Development

# Install dependencies
npm install

# Build the package
npm run build

# Watch mode
npm run dev

Template (Demo Site)

The template/ directory contains an Astro site for development and documentation:

# Build and preview the demo site
make build

Publishing

# Dry run
make publish-dry

# Publish to npm (requires NODE_AUTH_TOKEN)
make publish

# Bump version and publish
make release VERSION=patch

License

Apache-2.0