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

ppicons

v0.3.1

Published

A package for generating Prisma PHP icons

Readme

ppicons-cli — Icon Components for Prisma PHP and Caspian Python

Generate ready-to-use icon components (PHPX for PHP, and Python components for Caspian) directly from the terminal—no manual SVG copy/paste, no inconsistent markup, no “where did this icon come from?” drift.

Single icon: npx ppicons add anchor
Full library: npx ppicons add --all
Update existing icons: npx ppicons update


Why this exists

When you build UI systems (Prisma PHP / PHPXUI, or Caspian’s HTML-first Python stack), icons tend to become a maintenance tax:

  • SVGs copied from random sources end up inconsistent (attributes, sizing, classes).
  • Designers/devs tweak icons inline and the changes are never reusable.
  • Autocomplete and static analysis can’t help you when icons are plain strings.

ppicons-cli turns icons into first-class components so your UI stays consistent and your DX improves immediately.


Features

| Capability | What you get | | -------------------------- | -------------------------------------------------------------------------------------------- | | Single icon generation | ppicons add <name> downloads and writes one component file. | | Bulk generation | --all generates the entire icon set in one run. | | Update icons | ppicons update refreshes existing generated icons safely. | | Dual language support | PHP mode (Prisma PHP / PHPX) and Python mode (Caspian). | | Auto-detect language | Detects project type automatically: caspian.config.json → Python, prisma-php.json → PHP. | | Force overwrite | --force overwrites existing files when explicitly requested. | | Clean component names | Converts icon names to PascalCase (e.g. chevron-rightChevronRight). | | SVG normalization | Injects dynamic attributes and normalizes common SVG quirks. |


Requirements

  • Node.js (recommended: modern LTS)
  • Network access to fetch icons from the upstream endpoint used by the CLI

Quick start

Generate a single icon

npx ppicons add anchor

Generate the full icon library

npx ppicons add --all

Update previously generated icons

npx ppicons update

Force overwrite

npx ppicons add anchor --force
npx ppicons add --all --force

Language selection (PHP vs Python)

The CLI supports:

  • --lang php → generate PHPX components (Prisma PHP ecosystem)
  • --lang py → generate Python components (Caspian ecosystem)

Auto-detection

If you do not pass --lang, ppicons-cli attempts to pick the right mode:

  1. If caspian.config.json exists in the project root → Python mode
  2. Else if prisma-php.json exists in the project root → PHP mode
  3. Else → defaults to PHP mode

This makes it seamless to use inside Caspian projects without extra flags.

Explicit mode examples

# Force Python output
npx ppicons add user --lang py

# Force PHP output
npx ppicons add user --lang php

Usage reference

npx ppicons add <icon-name> [--all] [--force] [--lang php|py]

Flags

  • --all — generate all icons
  • --force — overwrite existing files
  • --lang php|py — explicitly choose output language

Using the generated icons

Because the generated artifacts are real components, you get:

  • consistent sizing and attribute handling
  • editor support (rename, search, “go to definition”, etc.)
  • fewer UI regressions from inconsistent SVG markup

Python (Caspian)

Icons are generated as .py modules using PascalCase filenames.

Typical usage:

  • treat the icon as a component/function
  • pass standard attributes (class, width/height, etc.) via the component’s attribute mechanism

PHP (Prisma PHP / PHPX)

Icons are generated as PHPX-compatible components with namespaces derived from the folder structure.

The stub is designed so icons behave like standard PHPX components and accept attributes cleanly.


Troubleshooting

“Detected caspian.config.json: Using Python mode” but I wanted PHP

Pass --lang php explicitly:

npx ppicons add anchor --lang php

My icons didn’t overwrite

Use --force:

npx ppicons add --all --force

Network errors fetching icons

Confirm:

  • you have internet access
  • your firewall/proxy allows Node fetch requests
  • the icon name exists upstream

👤 Author

The Steel Ninja Code
✉︎ [email protected]

License

Released under the MIT License.