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

@agility/plenum-ui

v2.1.17

Published

[![Agility Yellow Triangle Logo withe gray text reading Agility to the right of the triangle](https://cdn.agilitycms.com/content-manager/images/logos/agility-logo-storybook-350.png)](https://agilitycms.com/)

Downloads

1,242

Readme

Agility Yellow Triangle Logo withe gray text reading Agility to the right of the triangle

Agility Plenum UI Library

Welcome to Plenum, the definitive UI library for working within the Agility CMS ecosystem. Built with Next.js 13 and Storybook 7.1, Plenum is a comprehensive collection of components and patterns designed for building user interfaces in Agility CMS, as well as your own applications within the Agility CMS ecosystem.

Building for the Agility Marketplace

The Plenum library is designed to encourage and facilitate building applications for the Agility CMS Marketplace. Use the rich selection of components and patterns to build consistent, robust, and user-friendly applications for the Agility ecosystem.

Contributions to extend and improve this library are welcome! Feel free to fork the repository and submit pull requests.

Features

  • Comprehensive UI components library, designed for versatility and consistency.
  • Built with modern technologies like Next.js 13 and Storybook 7.1.
  • Includes automation scripts for efficient component creation.
  • Adopts Tailwind CSS for utility-first styling.
  • Easy to use, install, and integrate into your project.

Prerequisites

Before you begin, ensure that Tailwind CSS is installed in your project. Follow the instructions here: Install Tailwind CSS with Next.js

In your app entry point (i.e. `_app.tsx`), import the `globals.css` file from the previous step, and the `tailwind.css` file from Plenum:

import "<RELATIVE_PATH>/globals.css"
import "@agility/plenum-ui/dist/lib/tailwind.css"

Make sure to add any additional styles before these two import statements to prevent overwriting the Plenum styling.

Installation

You can install the Plenum library using npm or yarn:

# Using npm:
npm install @agility/plenum-ui

# Using yarn:
yarn add @agility/plenum-ui

Usage

Import and use the Plenum components in your React components:

import { Component } from "@agility/plenum-ui"
;<Component {...{ ComponentProps }} />

Scripts

Development and Build Scripts

Run your development server with Storybook:

npm run dev
# or
yarn dev

Build your project:

npm run build
# or
yarn build

Build your project locally and watch for changes

This will create symlinks for the current project and its necessary dependencies, so that it can be connected to other projects. It will also start the watch server, so it will automatically rebuild on any local changes.

yarn start:local

Use yarn link to locally test the library in another project:

In the Plenum project directory after having run a build, run:

yarn link.

You should see the following in your terminal:

yarn link v1.22.10
success Registered "@agility/plenum-ui".

You can now run

yarn link "@agility/plenum-ui"

in the projects where you want to consume this package and it will be used instead. It should output a message like

yarn link v1.22.10
success Using linked package for "@agility/plenum-ui".

Clean the `dist` directory:

npm run clean
# or
yarn clean

Lint your project:

npm run lint
# or
yarn lint

Build Tailwind CSS:

npm run build:tw
# or
yarn build:tw

Storybook Scripts

Build your Storybook:

npm run build-storybook
# or
yarn build-storybook

Run your Storybook in development mode:

npm run storybook:dev
# or
yarn storybook:dev

Generate Tailwind CSS for Storybook and watch for changes:

npm run storybook:tw
# or
yarn storybook:tw

Build specific parts of Storybook:

# Build Storybook
npm run sb-build:storybook
# or
yarn sb-build:storybook

# Build Tailwind CSS for Storybook
npm run sb-build:tw
# or
yarn sb-build:tw

Compile TypeScript files using custom build script:

npm run build:tsc
# or
yarn build:tsc

These scripts cover various tasks related to development, build processes, linting, and handling specific aspects like Storybook and Tailwind CSS. Make sure to run the appropriate script for the task you want to perform.

Component Generation Script

We have a Node.js script that automates the creation of new components for our Storybook library. This script generates a component directory, along with the necessary files like `Component.tsx`, `Component.stories.tsx`, and `index.tsx`.

How to use the script

To use the script, you should have Node.js installed. From the terminal, you can create a new component by running the following command:

node create-component.js ComponentName DestinationDirectory

This command takes two arguments:

  • `ComponentName` - The name of the new component you want to create. This should be in PascalCase (for example, "MyComponent").
  • `DestinationDirectory` - The directory where the new component will be created. This should be relative to the 'stories' directory. (for example, "atoms" or "Molecules").

The script will create a new directory with the given component name inside the specified destination directory (under the 'stories' directory). Then, it will generate three files in the new directory:

  • `ComponentName.tsx` - This is the component file. It contains a basic React functional component structure.
  • `ComponentName.stories.tsx` - This is the Storybook story file. It sets up a basic story for the new component.
  • `index.tsx` - This file simply exports the new component. It's used for cleaner imports.

Example

To create a new component named "Button" in the "atoms" directory, you would run:

node create-component.js Button atoms

This would create a directory structure like:

- stories
  - atoms
    - Button
      - Button.tsx
      - Button.stories.tsx
      - index.tsx

Each of the generated files will contain basic boilerplate code that you can start with.

Notes

This script does prompt the user before overwriting existing directories, so you can run it with confidence. Always use PascalCase for component names, and ensure the destination directory exists or can be created. If you encounter any issues, you can create the component and its files manually

Advanced

Old School Yarn Link Instructions :)

cd THIS_PACKAGE
yarn link
yarn install
cd node_modules/react
yarn link
cd ../../node_modules/react-dom
yarn link
cd YOUR_PROJECT
yarn link PACKAGE_YOU_DEBUG_LOCALLY
yarn link react
yarn link react-dom

Then, when you are done

cd YOUR_PROJECT
yarn unlink "@agility/plenum-ui"
yarn unlink react
yarn link react-dom

cd THIS_PACKAGE
yarn unlink
cd node_modules/react
yarn unlink
cd ../../node_modules/react-dom
yarn unlink