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

@disciple.tools/web-components

v0.8.6

Published

Disciple.Tools Web components following open-wc recommendations

Readme

Disciple Tools Web Component Library

A set of standard components to be used across the Disciple.Tools system

See the live documentation on the Storybook.

Get Started

These components are already included in the Disciple.Tools theme. If you are working in the theme or a plugin that is within the standard user interface, you can start using the components now without any extra including of scripts or styles.

In other cases, see the below samples for how to use the components in other scenarios.

Samples

Developing Components

Installation

Clone the Repo then runnpm install

Build for use in HTML

To build/transpile the components for use in basic HTML as a script include, run the following:

npm run build

This will create a dist directory with all of the final javascript files that can be included in any HTML page like so:

<script src="/dist/index.js"></script>

You can then use any of the new elements in your HTML and they will be used from this library.

Demoing with Storybook

See the current Storybook here.

To run a local instance of Storybook for your component, run

npm run storybook

To build a production version of Storybook, run

npm run storybook:build

Coding Standards

Linting

To scan the project for linting and formatting errors, run

npm run lint

Formatting

To automatically fix linting and formatting errors, run

npm run format

Component Standards

The Standards file contains a description of the implementation details that are expected for components.

They are written so that you can provide them to an AI coding agent and have it update the component for you:

Use the Standards.md file to make sure everything in src/components/form/dt-my-component is up to date

Automated Testing

Test Status

To execute a single test run:

npm run test

To run the tests in interactive watch mode run:

npm run test:watch

Resources for writing tests

Local Demo with web-dev-server

npm start

To run a local development server that serves the basic demo located in demo/index.html

Localization

Localization happens in 3 steps:

  1. Use localized strings in code
  2. Extract all of the strings used in the code to XLIFF file
  3. Build localized templates for use in code

Using localized strings

See Lit Localize docs for full documentation.

When outputting text within a component that is not coming from the user (and would thus be translated by the user), use the msg function:

import {msg} from '@lit/localize';

class MyComp extends LitElement {
  render() {
    return msg(html`Hello <b>${this.who}</b>`);
  }
}
customElements.define('my-comp', MyComp);

The locale can either be passed into the component via attribute/property, or else it will attempt to read the direction and language from the nearest parent elements with dir and/or lang attributes.

Extract Messages

See Lit Localize docs for full documentation.

Run lit-localize extract in the console to generate XLIFF files into the /xliff/ directory. These should be able to be imported into translation software for translators to set the values.

The XLIFF files should be updated by translators and saved back into the space directory with correct translations.

Build localized templates

See Lit Localize docs for full documentation.

Run lit-localize build to process XLIFF files into javascript files that are saved into /i18n/generated/{locale}.js. These files are used by the msg function to use the correct localized string based on the selected locale.