open-index/open-npm huggingface dataset:
npm package: @kaiu/material-contextual-menu
Description: This package provide an @angular/material compatible contextual menu.
Author: Noémi Salaün
Latest version: 21.0.0

# Kaiu - Material contextual menu

This package provide an `@angular/material` compatible contextual menu.
It is heavily based on the already existing `MatMenu` and use a new service inspired
by the Material `DialogService`.

## Getting started

### Install the NPM package

```sh
npm install --save @kaiu/material-contextual-menu
```

### Declare a `KaiuMenuContainer`

```typescript
import { KaiuMenuContainer } from '@kaiu/material-contextual-menu';

@Component({
  template: `
      <mat-menu #mainMenu="matMenu">
          <button mat-menu-item (click)="select.emit('foo')">Foo</button>
          <button mat-menu-item (click)="select.emit('bar')">Bar</button>
          <button mat-menu-item [matMenuTriggerFor]="subMenu">Others</button>
      </mat-menu>

      <mat-menu #subMenu="matMenu">
          <button mat-menu-item (click)="select.emit({prop: 1})">First</button>
          <button mat-menu-item (click)="select.emit({prop: 2})">Second</button>
          <button mat-menu-item (click)="select.emit({prop: 3})">Third</button>
      </mat-menu>
  `,
})
export class ContextualMenuComponent implements KaiuMenuContainer {

  // To be a KaiuMenuContainer a component must...

  // ...give access to an inner MatMenu directive
  @ViewChild('mainMenu') matMenu: MatMenu;

  // ...and use an observable to communicate with the menu opener.
  select = new EventEmitter<string>();
}
```

### Import the module

```typescript
import { KaiuMenuModule } from '@kaiu/material-contextual-menu';

@NgModule({
  declarations: [ AppComponent ],
  imports: [
    BrowserAnimationsModule, // Or NoopAnimationsModule
    KaiuMenuModule, // The MatMenuModule is shipped with.
  ],
  bootstrap: [ AppComponent ],
})
export class AppModule {}
```

### Open the menu

```typescript
import { KaiuMenuService } from '@kaiu/material-contextual-menu';

@Component({
  selector: 'app-demo',
  template: `<h1>Hello world</h1>`,
})
export class DemoComponent {

  constructor(private menuService: KaiuMenuService, private viewContainerRef: ViewContainerRef) {}

  @HostListener('contextmenu', ['$event']) onContextMenu(event: MouseEvent) {
    // Prevent the browser native contextual menu.
    event.preventDefault();

    // Open a new ContextualMenuComponent at the cursor position.
    const menuRef = this.menuService.openMenu(
        ContextualMenuComponent,
        { x: event.clientX, y: event.clientY },
        this.viewContainerRef
    );

    // Listen for selected item in the menu.
    menuRef.afterClosed().subscribe((value) => {
      console.log('Menu closed with value: ', value);
    });
  }

  @HostListener('click') onClick() {
    // Close already opened menus when clicking outside a menu.
    this.menuService.closeAll();
  }
}
```

## Development

A demo application is provided, based on Angular CLI.

Run `npm start` and then go to `http://localhost:4200`.

## License

Everything in this repository is licensed under the MIT License unless otherwise specified.

Copyright (c) 2026 - Kaiu Lab
npm package: @kaiu/ng-serializer
Description: Angular wrapper for @kaiu/serializer library
Author: Supamiu
Latest version: 2.0.0

# ng serializer
[![Build Status](https://travis-ci.org/kaiu-lab/ng-serializer.svg?branch=master)](https://travis-ci.org/kaiu-lab/ng-serializer)
[![codecov](https://codecov.io/gh/kaiu-lab/ng-serializer/branch/master/graph/badge.svg)](https://codecov.io/gh/kaiu-lab/ng-serializer)
[![npm version](https://badge.fury.io/js/%40kaiu%2Fng-serializer.svg)](https://www.npmjs.com/package/@kaiu/ng-serializer)
[![devDependency Status](https://david-dm.org/kaiu-lab/ng-serializer/dev-status.svg)](https://david-dm.org/kaiu-lab/ng-serializer?type=dev)
[![GitHub issues](https://img.shields.io/github/issues/kaiu-lab/ng-serializer.svg)](https://github.com/kaiu-lab/ng-serializer/issues)
[![GitHub stars](https://img.shields.io/github/stars/kaiu-lab/ng-serializer.svg)](https://github.com/kaiu-lab/ng-serializer/stargazers)
[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/kaiu-lab/ng-serializer/master/LICENSE)

## Table of contents

- [About](#about)
- [Installation](#installation)
- [Documentation](#documentation)
- [Development](#development)
- [License](#license)

## About

Angular wrapper for [@kaiu/serializer](https://www.npmjs.com/package/@kaiu/serializer) library

## Installation

Install through npm:
```
npm install --save @kaiu/ng-serializer @kaiu/serializer
```

Then include in your apps module:

```typescript
import { NgModule } from '@angular/core';
import { NgSerializerModule } from 'ng-serializer';

@NgModule({
  imports: [
    NgSerializerModule.forRoot()
  ]
})
export class MyModule {}
```

Finally use in one of your apps components:
```typescript
import { Component, OnInit } from '@angular/core';
import { Http } from '@angular/http';
import { Foo } from './models/foo';
import { NgSerializerService } from '@kaiu/ng-serializer';

@Component({
  template: 'foo'
})
export class MyComponent implements OnInit {
    constructor(private http:Http, private serializerService:NgSerializerService){}
    
    ngOnInit():void{
        let data = this.http.get('https://foo.org/bar').map(response => {
           return this.serializerService.deserialize<Foo>(response.json(), Foo);
        });
        data.subscribe(fooModel => {
           fooModel.baz();//This will work ! 
        });
    }    
}
```

The full documentation of the serializer can be found on [@kaiu/serializer's website](https://kaiu-lab.github.io/serializer/).

### Usage without a module bundler
```
<script src="node_modules/ng-serializer/bundles/ng-serializer.umd.js"></script>
<script>
    // everything is exported ngSerializer namespace
</script>
```

## Development

### Prepare your environment
* Install [Node.js](http://nodejs.org/) and NPM
* Install local dev dependencies: `yarn install` while current directory is this repo

### Testing
Run `yarn test` to run tests once or `yarn test:watch` to continually run tests.

### Release
* Bump the version in package.json (once the module hits 1.0 this will become automatic)
```bash
yarn release
```

## License

MIT
npm package: @kaiu/serializer
Description: Simple JSON deserializer for typescipt applications
Latest version: 1.4.0

# serializer
[![Build Status](https://travis-ci.org/kaiu-lab/serializer.svg?branch=master)](https://travis-ci.org/kaiu-lab/serializer)
[![codecov](https://codecov.io/gh/kaiu-lab/serializer/branch/master/graph/badge.svg)](https://codecov.io/gh/kaiu-lab/serializer)
[![npm version](https://badge.fury.io/js/%40kaiu%2Fserializer.svg)](https://www.npmjs.com/package/@kaiu/serializer)
[![devDependency Status](https://david-dm.org/kaiu-lab/serializer/dev-status.svg)](https://david-dm.org/kaiu-lab/serializer?type=dev)
[![GitHub issues](https://img.shields.io/github/issues/kaiu-lab/serializer.svg)](https://github.com/kaiu-lab/serializer/issues)
[![GitHub stars](https://img.shields.io/github/stars/kaiu-lab/serializer.svg)](https://github.com/kaiu-lab/serializer/stargazers)
[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/kaiu-lab/serializer/master/LICENSE)

## Table of contents

- [About](#about)
- [Installation](#installation)
- [Documentation](#documentation)
- [Development](#development)
- [License](#license)

## About

Serializer is a serialization library written in Typescript made to handle typing in deserialized objects.

## Installation

Install through npm:
```bash 
npm install --save @kaiu/serializer
```

## Documentation

Everything is detailed on our [documentation website](https://kaiu-lab.github.io/serializer/).


## Development

### Prepare your environment
* Install [Node.js](http://nodejs.org/) and NPM
* Install local dev dependencies: `npm install` while current directory is this repo

### Testing
Run `npm test` to run tests once or `npm run test:watch` to continually run tests.

### Release
* Bump the version in package.json (once the module hits 1.0 this will become automatic)
```bash
npm run release
```

## License

MIT
npm package: @kaiverse/k
Description: A collection of powerful utility functions, feature-rich uncommon React components, and hooks.
Author: Vu Duc Khai
Latest version: 0.6.0

<div align="center">
<h1>Kaiverse</h1>

<p>Collection of powerful utility functions, uncommon React components & hooks.</p>

[![npm](https://img.shields.io/npm/v/@kaiverse/k)](https://www.npmjs.com/package/@kaiverse/k)
[![.github/workflows/ci.yml](https://github.com/kaisergeX/kaiverse/actions/workflows/ci.yml/badge.svg)](https://github.com/kaisergeX/kaiverse/actions/workflows/ci.yml)

</div>

## Docs

[Documentation page](https://kaisergex.github.io/kaiverse/)

## Installation

### Via `npmjs`

```
npm i @kaiverse/k
```

```
pnpm add @kaiverse/k
```

## Packages

- `@kaiverse/k/ui`: uncommon React components.
- `@kaiverse/k/hooks`: Hooks.
- `@kaiverse/k/utils`: Utility functions.

_Note:_ `@kaiverse/k/ui` is not a common React component library. It's a collection of rarely used components.

If you are looking for a component library with a wide range of components from basic (eg: `<Button>`, `<Input>`, `<Layout>`) to complex (such as `<RichTextEditor>`, `<Chart>`),
I highly recommend [shadcn UI](https://ui.shadcn.com/), [Mantine](https://mantine.dev/), and [daisyui](https://daisyui.com/).

## Usage with Server Components

All `@kaiverse/k/ui` components already have `'use client';` directive at the top of the file.

_Note:_ Some components like [Dialog](https://kaisergex.github.io/kaiverse/components/dialog/) have associated compound components. Compound
components cannot be used in server components. Instead of `Component.X` syntax, use `ComponentX`
or add `'use client'` directive to the top of your pages/layouts/components.
npm package: @kaiverse/signal-react
Description: React adapter for @kaiverse/signal
Author: Vu Duc Khai
Latest version: 0.3.1

[![npm](https://img.shields.io/npm/v/@kaiverse/signal-react)](https://www.npmjs.com/package/@kaiverse/signal-react)
[![JSR](https://jsr.io/badges/@kaiverse/signal-react)](https://jsr.io/@kaiverse/signal-react)
[![.github/workflows/ci.yml](https://github.com/kaisergeX/signal-proxy/actions/workflows/ci.yml/badge.svg)](https://github.com/kaisergeX/signal-proxy/actions/workflows/ci.yml)

<div align="center">
<h1>Signal React</h1>

React adapter for [`@kaiverse/signal`](https://jsr.io/@kaiverse/signal)

</div>

## Installation

No need to install the core package `@kaiverse/signal`.

### Via `npmjs`

```
npm i @kaiverse/signal-react
```

```
pnpm add @kaiverse/signal-react
```

### Via `jsr`

```
deno add jsr:@kaiverse/signal-react
```

```
npx jsr add @kaiverse/signal-react
```

```
pnpm dlx jsr add @kaiverse/signal-react
```

### Via CDN:

```
unpkg.com/@kaiverse/signal-react
```

## Compatibility

Signal is a [`Proxy`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy) object at its core, please check [compatibility section](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy#browser_compatibility).

## Documentation

[Functions & Types](https://jsr.io/@kaiverse/signal-react/doc)

## Example

[React playground](https://codesandbox.io/p/devbox/kaiverse-signal-react-port-c7sp3v) (codesandbox) - [source code](https://github.com/kaisergeX/signal-proxy/blob/main/apps/playground/src/routes/signal/route.lazy.tsx)