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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@darkwiiplayer/better-select

v3.1.1

Published

* `placeholder` Placeholder displayed when nothing is selected * `search-placeholder` Placeholder passed to the search input in the drop-down

Readme

Attributes

  • placeholder Placeholder displayed when nothing is selected
  • search-placeholder Placeholder passed to the search input in the drop-down

Slots

  • clear: Overrides the default "x" clear button

  • loading: Hidden by default, shown instead of items while populate() runs

  • placeholder: Only shown when nothing is selected (replaces attribute placeholder if present)

  • top: Insert content at the top of the drop-down

  • below-search: Insert content beltween the search box and item list

  • bottom: Insert content at the bottom of the drop-down

Parts

  • clear: The slot containing the clear button
  • display-text: The text representing the currently selected value
  • display: The outer display box that is always shown
  • drop-down: The dialog element that pops up when the list is opened
  • item: The individual selectable list items
    • item disabled: Any item corresponding to a disabled option
    • item enabled: Any item correesponding to a not disabled option
  • list: The wrapper containing the items
  • placeholder: The slot containing the placeholder text
  • search: The search input box

Hooks

  • populate(): If present, gets called after opening to populate the options list
  • search(string): Called on search input to update the list of options
  • match(string, element): Used by search to compare each option to the search string

Properties

  • closeSignal: (read-only) An AbortSignal that fires when the drop-down closes

Events

  • change: Fired whenever the value changes, even if via JavaScript
  • input: Fired when the value is changed by selecting an option (after change)