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

clr-lift

v21.0.0

Published

Production-ready Angular component library built on Clarity Design System. Includes 15+ reusable components, utilities, and operators for Clarity-based applications. Built for Angular 21+ with full TypeScript support.

Readme

🎨 clr-lift

Production-ready Angular components built on Clarity Design System

npm version npm downloads License: MIT Angular Clarity

📖 Documentation🎮 Live Demo💻 Source Code


A comprehensive Angular component library built on top of the Clarity Design System. clr-lift extends Clarity's capabilities by providing a rich set of production-ready, reusable components, utilities, and operators that simplify common development tasks.

Why clr-lift?

  • 🎨 15+ Components - Alerts, toasts, wizards, spinners, and more
  • 🏗️ Built on Clarity - Consistent with VMware Clarity Design System
  • Accessible - WCAG compliant with ARIA support
  • 🎯 Type-Safe - Full TypeScript support with strict mode
  • 🌓 Theme Support - Light and dark mode out of the box
  • 📦 Tree-Shakable - Import only what you need

Features

🎨 Components

  • cll-alert - Enhanced alert component with customizable types and styling
  • cll-alerts - Alert container service for managing multiple alerts
  • cll-callout - Callout component for highlighting important information
  • cll-certificate-signpost - Certificate display and validation component
  • cll-file-reader - File input component with drag-and-drop support
  • cll-idle-detection - Idle detection component with configurable timeouts
  • cll-key-value-inputs - Key-value pair input component for forms
  • cll-page-container - Page layout container component
  • cll-spinner - Loading spinner component
  • cll-status-indicator - Status indicator component with various states
  • cll-theme-toggle - Theme toggle component for light/dark mode
  • cll-timeline-wizard - Timeline wizard component for multi-step flows
  • cll-toast - Toast notification component
  • cll-tooltip - Advanced tooltip component with rich content support

🔧 Operators

  • dgState - Streamlines Clarity datagrid state management, making it easier to work with datagrid state changes

🛠️ Utilities

  • convertToHttpParams - Converts Clarity datagrid state to HTTP query parameters
  • Datagrid Utilities - Helper functions for working with Clarity datagrids

📦 Models

  • PageQuery - Type for pagination query parameters
  • Rde - Type for RDE (Resource Definition Entity) objects

🌐 Services

  • TranslationService - Service for managing translations and i18n

🔤 Pipes

  • translate - Translation pipe for displaying translated text

Requirements

  • Angular: >= 21.0.0
  • @clr/angular: >= 18.0.0
  • ngx-lift: >= 21.0.0
  • RxJS: >= 7.8.0

Installation

Install clr-lift and its peer dependencies:

npm install clr-lift @clr/angular ngx-lift
# or
yarn add clr-lift @clr/angular ngx-lift
# or
pnpm add clr-lift @clr/angular ngx-lift

🚀 Quick Start

Installation

npm install clr-lift @clr/angular ngx-lift
# or
yarn add clr-lift @clr/angular ngx-lift
# or
pnpm add clr-lift @clr/angular ngx-lift

Using the dgState Operator

Simplified Datagrid State Management - Streamline Clarity datagrid state handling:

import {dgState, convertToHttpParams} from 'clr-lift';
import {BehaviorSubject, switchMap, share} from 'rxjs';
import {ClrDatagridStateInterface} from '@clr/angular';

export class UserDatagridComponent {
  private dgSource = new BehaviorSubject<ClrDatagridStateInterface | null>(null);
  private dgState$ = this.dgSource.pipe(dgState());

  usersState$ = this.dgState$.pipe(
    switchMap((state) => {
      const params = convertToHttpParams(state);
      return this.userService.getUsers(params);
    }),
    share(),
  );

  refresh(state: ClrDatagridStateInterface) {
    this.dgSource.next(state);
  }
}

Using Components

Standalone Components - Import only what you need:

import {Component} from '@angular/core';
import {AlertComponent, SpinnerComponent, PageContainerComponent, ToastService} from 'clr-lift';

@Component({
  selector: 'app-example',
  imports: [AlertComponent, SpinnerComponent, PageContainerComponent],
  template: `
    <cll-alert [type]="'success'" [closable]="true"> Operation completed successfully! </cll-alert>

    <cll-spinner [size]="'lg'"></cll-spinner>

    <cll-page-container>
      <h1>Page Content</h1>
    </cll-page-container>

    <button (click)="showToast()">Show Toast</button>
  `,
})
export class ExampleComponent {
  private toastService = inject(ToastService);

  showToast() {
    this.toastService.show({
      type: 'success',
      message: 'Operation completed!',
    });
  }
}

Using File Reader Component

<cll-file-reader
  [(ngModel)]="file"
  [accept]="'.pdf,.doc,.docx'"
  [maxSize]="5242880"
  [multiple]="false"
></cll-file-reader>

Using Theme Toggle

<cll-theme-toggle></cll-theme-toggle>

Using Timeline Wizard

<cll-timeline-wizard
  [steps]="wizardSteps"
  [currentStep]="currentStep"
  (stepChange)="onStepChange($event)"
></cll-timeline-wizard>

📚 Documentation

🎯 Use Cases

clr-lift is perfect for:

  • 🎨 UI Components - Production-ready components for Clarity-based applications
  • 📊 Data Grids - Simplified state management for Clarity datagrids
  • 🔔 Notifications - Toast notifications and alerts
  • 📝 Forms - Enhanced form components (file uploads, key-value inputs)
  • 🧭 Navigation - Wizards, timelines, and multi-step flows
  • 🎭 Theming - Easy theme switching between light and dark modes

🧪 Testing

Run the unit tests for clr-lift:

nx test clr-lift

Run tests with coverage:

nx test clr-lift --coverage

🤝 Contributing

We welcome contributions! Whether you're fixing bugs, adding features, or improving documentation, your help makes this project better.

📄 License

clr-lift is licensed under the MIT License.

🙏 Acknowledgments

We would like to express our gratitude to the Clarity Design System maintainers and contributors for their foundational work that enables the development of clr-lift.

⭐ Show Your Support

If this library helped you, please consider giving it a ⭐ on GitHub!


Made with ❤️ for the Angular and Clarity community

Report BugRequest FeatureView Documentation