๐ ngx-lift Monorepo
June 16, 2026 ยท View on GitHub
๐ ngx-lift Monorepo
Powerful Angular utilities and Clarity Design System components to supercharge your development
๐ Documentation โข ๐ฎ Live Demo โข ๐ Report Bug โข ๐ก Request Feature
A modern monorepo containing ngx-lift and clr-lift - two powerful Angular libraries designed to enhance and simplify your development experience. Built with Angular 21, TypeScript 5.9, and modern best practices.
โจ What's Inside?
๐ ngx-lift
A comprehensive Angular utility library that provides essential tools for modern Angular development:
- ๐ RxJS Operators - Specialized operators for async state management, polling, and reactive patterns
- โก Signal Utilities - Powerful signal-based utilities for Angular's Signals API
- ๐ง Pipes - Ready-to-use pipes for common transformations (bytes, masking, arrays)
- โ Validators - Advanced form validators (date ranges, URLs, unique values)
- ๐ ๏ธ Utilities - Helper functions for forms, dates, objects, and more
๐ฆ View on npm โข ๐ Documentation โข ๐ป Source Code
๐จ clr-lift
An Angular component library built on top of VMware Clarity Design System:
- ๐งฉ 15+ Production-Ready Components - Alerts, toasts, spinners, wizards, and more
- ๐ง Clarity Utilities - Enhanced datagrid state management and helpers
- ๐ฏ Type-Safe - Full TypeScript support with strict mode
- โฟ Accessible - Built with accessibility in mind
- ๐ Theme Support - Light and dark mode support
๐ฆ View on npm โข ๐ Documentation โข ๐ป Source Code
๐ฎ Demo Application
A fully-featured showcase application demonstrating all capabilities of both libraries with live examples, code snippets, and interactive demos.
๐ฎ Live Demo โข ๐ป Source Code
๐ Quick Start
Install the Libraries
# Install ngx-lift
npm install ngx-lift
# Install clr-lift (includes ngx-lift as peer dependency)
npm install clr-lift @clr/angular ngx-lift
Use in Your Project
// ngx-lift - RxJS Operators
import {createAsyncState, poll} from 'ngx-lift';
// ngx-lift - Signal Utilities
import {injectParams, injectQueryParams, combineFrom} from 'ngx-lift';
// clr-lift - Components
import {AlertComponent, ToastService} from 'clr-lift';
Development Setup
Prerequisites:
- Node.js 24.x or higher
- npm 10.x or higher
# Clone the repository
git clone https://github.com/wghglory/ngx-lift-workspace.git
cd ngx-lift-workspace
# Install dependencies
npm install
# Start the demo application
npm start
The demo app will be available at http://localhost:4200.
๐ Development
Project Structure
ngx-lift-workspace/
โโโ apps/
โ โโโ demo/ # Demo application
โโโ libs/
โ โโโ ngx-lift/ # ngx-lift library
โ โโโ clr-lift/ # clr-lift library
โโโ dist/ # Build outputs
โโโ .github/workflows/ # CI/CD workflows
Common Commands
Development
# Start demo app
npm start
# Build all projects
npm run build
# Build only libraries
npm run build:libs
# Build specific library
npm run build:ngx
npm run build:clr
# Watch mode for development
npm run watch:ngx
npm run watch:clr
Testing
# Run all tests
npm test
# Test specific library
npm run test:ngx
npm run test:clr
# Run tests with coverage
npm run test:coverage
Linting & Formatting
# Lint all projects
npm run lint
# Lint and fix
npm run lint:fix
# Format code
npm run format
# Check formatting
npm run format:check
Nx Commands
# View project graph
npm run graph
# Run affected tests
npm run affected:test
# Build affected projects
npm run affected:build
# Lint affected projects
npm run affected:lint
๐งช Testing
This project uses Vitest with @analogjs/vitest-angular for testing.
Running Tests
# Run all tests
nx run-many -t test
# Run tests for a specific library
nx test ngx-lift
nx test clr-lift
# Run tests in watch mode
nx test ngx-lift --watch
# Run tests with coverage
nx test ngx-lift --coverage
# Run tests with UI
nx test ngx-lift --ui
Test Configuration
Each library has its own vite.config.mts with test configuration. The test setup is in src/test-setup.ts.
๐ง Configuration Files
nx.json: Nx workspace configurationtsconfig.base.json: TypeScript base configuration with path mappingspackage.json: Dependencies and scripts
๐ Additional Documentation
For maintainers and contributors:
docs/QUICK_START.md: Quick start guide for new developersdocs/COMMANDS.md: Comprehensive command referencedocs/DEPLOYMENT.md: Publishing, deployment, and CI/CD guides
๐ Library Usage
Installing Libraries
# Install ngx-lift
npm install ngx-lift
# Install clr-lift (requires ngx-lift)
npm install clr-lift ngx-lift @clr/angular
Using in Your Project
// Import from ngx-lift
import {createAsyncState, poll} from 'ngx-lift';
// Import from clr-lift
import {AlertComponent, ToastService} from 'clr-lift';
๐ค Contributing
We welcome contributions! Whether you're fixing bugs, adding features, or improving documentation, your help makes this project better.
How to Contribute
- Fork the repository and clone it locally
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes following our coding standards
- Write/update tests to ensure your changes work correctly
- Commit your changes using Conventional Commits
- Push to your fork (
git push origin feature/amazing-feature) - Open a Pull Request with a clear description
Commit Convention
This project follows Conventional Commits:
feat:New featuresfix:Bug fixesdocs:Documentation changesstyle:Code style changes (formatting, etc.)refactor:Code refactoringtest:Test changeschore:Build process or auxiliary tool changesperf:Performance improvementsci:CI/CD changes
Development Guidelines
- โ All code must pass ESLint and TypeScript strict mode
- โ Tests are required for new features (60%+ coverage minimum)
- โ JSDoc comments required for all exported APIs
- โ Follow Angular 21 best practices (signals, standalone components, OnPush)
- โ Use Clarity Design System components where applicable
See CONTRIBUTING.md for detailed guidelines.
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Links & Resources
- ๐ Homepage: ngx-lift.netlify.app
- ๐ฆ npm (ngx-lift): npmjs.com/package/ngx-lift
- ๐ฆ npm (clr-lift): npmjs.com/package/clr-lift
- ๐ Issues: GitHub Issues
- ๐ฌ Discussions: GitHub Discussions
- ๐ Changelog: CHANGELOG.md
๐ Support
- ๐ Found a bug? Open an issue
- ๐ก Have a feature request? Request a feature
- โ Have a question? Start a discussion
โญ Show Your Support
If this project helped you, please consider giving it a โญ on GitHub!
Built with โค๏ธ using Nx, Angular, and Clarity Design System
Made by Guanghui Wang