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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@digicatapult/ui-component-library

v0.19.176

Published

UI Component Library

Downloads

1,905

Readme

UI Component Library

React components built for Digital Catapult projects 🧠

See the latest version in our storybook

Installation / Adding to the Package.json

@digicatapult/ui-component-library are available as an npm package. This should get installed along with n In order to use your local version in the project please use npm link more on it -> here and below in this document

// with npm
npm install @digicatapult/ui-component-library

Usage

import React from 'react'
import ReactDOM from 'react-dom'
import { Button } from '@digicatapult/ui-component-library'

function App() {
  return <Button onClick={(e) => window.alert(e)}>My Button</Button>
}

ReactDOM.render(<App />, document.querySelector('#app'))

Accessing storybook locally

npm run storybook
# and if browser won't open visit http://localhost:9000/ url

Documentation

Check out our storybook for documentation of individual components.

Contributing

Read the contributing guide to learn about our development process, how to propose bugfixes and improvements.

License

This project is licensed under the terms of the Apache License.

Stack

React typescript styled-components Storybook Jest

Configuration

At BUILD time, storybook is configured using environment variables in a .env file at root:

| variable | required | default | description | | :--------------------- | :------: | :-----: | :-------------------------------------------------------------- | | STORYBOOK_MAPBOX_TOKEN | N | - | Required for the Map component. Token for your Mapbox account |

Dependency Installation

npm install

Run Storybook

start storybook

npm run storybook

This will open the browser and will run storybook at localhost:9000

Local linking for development

If you want to link @digicatapult/ui-component-library to your project while developing

run

npm run build:watch

In another terminal, npm link to your project's react. This prevents issues arising from two Reacts — one in the project folder and the one in ui-component-library. Next create a global symlink for ui-component-library e.g.

npm link ../hii-client/node_modules/react
npm link

Finally, in your project run the following command

npm link "@digicatapult/ui-component-library"

And you should be able to see the changes in your project as you add/change components in this library.

Bumping package versions

Following this guide

Guide

Given a version number MAJOR.MINOR.PATCH, increment the: MAJOR version when you make incompatible API changes, MINOR version when you add functionality in a backwards compatible manner, and PATCH version when you make backwards compatible bug fixes.

PATCH bump examples:

  • Updating docs
  • Refactoring while keeping the same usage, for instance, renaming files and things that do not affect behaviour
  • Fixing typos of variable or type names
  • Upgrading dependencies with minor or patch releases

MINOR bump examples:

  • New components
  • New features
  • CSS improvements without any style changes
  • Fixing small bugs such as bugs related to browser compatibility, or bugs with property types
  • Adding new property for a component

MAJOR bump examples:

  • Anything that breaks existing behaviour
  • Changing the styling of a component with any visually noticeable change that will break the desired UI.
  • Upgrading dependencies by major versions only if:
    • The component library somehow exposed the internals of the dependency upgraded (hence it becomes a public API change)
    • The component library needs to change its public API in a non-backward compatible way to adapt to the dependency upgraded.

      If none of the above (for instance a bump in the package.json and rebuild without changes for a non-exported dependency), it should be a patch release.

  • Changes/fixes/new features around security breaches.

Testing

Make sure you have installed all dependencies ( If you linked your project locally, npm run prelink has only installed dependencies, make sure you installed devDependencies before running tests)

npm
npm run test
  • Test with coverage report
npm run coverage
  • Update snapshots and test
npm run test -u

Dependency check

npm run depcheck