open-index/open-npm huggingface dataset:
npm package: @losfair-v2/helios-napi-linux-x64-gnu
Description: This is the **x86_64-unknown-linux-gnu** binary for `helios-napi`
Latest version: 0.1.0

# `helios-napi-linux-x64-gnu`

This is the **x86_64-unknown-linux-gnu** binary for `helios-napi`
npm package: @loskir/grammy-markup
Description: Markup plugin for grammY
Author: Kirill Loskutov
Latest version: 1.1.0

# Markup plugin for [grammY](https://grammy.dev)

This plugin provides [telegraf](https://telegraf.js.org)-like keyboard and inline keyboard builders.

## Motivation

The [official plugin](https://grammy.dev/plugins/keyboard.html) provides an imperative API, which I don't really like.
This plugin, on the other hand, provides declarative helper functions inspired by [telegraf](https://telegraf.js.org).

See the comparison:

```ts
new InlineKeyboard([
  [IButton.text("Get random music", "random")],
  [IButton.switchInline("Send music to friends")],
])
```

vs

```ts
new InlineKeyboard()
  .text("Get random music", "random").row()
  .switchInline("Send music to friends")
```

The declarative approach is especially useful when you want to represent dynamic data in the menu (for example, obtained from the database):

```ts
const inlineKeyboard = new InlineKeyboard(items.map(
  (item) => [IButton.text(item.name, item.id)]
))
```

vs

```ts
const inlineKeyboard = new InlineKeyboard()
for (const item of items) {
  inlineKeyboard.text(item.name, item.id).row()
}
```

Also it's easy to use all sorts of array utilities with declarative builder, like `chunk`:

```ts
const inlineKeyboard = new InlineKeyboard(chunk(
  items.map((item) => IButton.text(item.name, item.id))
  3,
))
```

## Installation

### Yarn

```bash
yarn add @loskir/grammy-markup
```

### NPM

```bash
npm i --save @loskir/grammy-markup
```

## Usage

### Deno

```ts
import {
    IButton,
    Button,
} from "https://github.com/Loskir/grammy-markup/raw/main/src/index.ts"
```

### Typescript

```ts
import {
    IButton,
    Button,
} from "@loskir/grammy-markup"
```

### Javascript

```js
const {
    IButton,
    Button,
} = require("@loskir/grammy-markup")
```

## Examples

### `IButton`

```ts
const inlineKeyboard = new InlineKeyboard([
    [IButton.text('text', 'callback_data')],
    [IButton.url('text', 'https://grammy.dev')],
    [IButton.webApp('text', 'https://grammy.dev?webApp')],
    [IButton.login('text', 'https://grammy.dev?login')],
    [
        IButton.switchInline('text', 'query'),
        IButton.switchInlineCurrent('text', 'query'),
    ],
    [IButton.game('text')],
    [IButton.pay('text')],
])
// ctx.reply('inline keyboard', {reply_markup: inlineKeyboard})
```

### `Button`

```ts
const keyboard = new Keyboard([
    [Button.text('text')],
    [Button.requestContact('text')],
    [Button.requestLocation('text')],
    [Button.requestPoll('text', 'quiz')],
    [Button.webApp('text', 'https://grammy.dev?webApp')],
])
// ctx.reply('keyboard', {reply_markup: keyboard})
```
npm package: @loskir/vue-emoji-picker
Description: ![Demo](demo.png)
Author: Loskir
Latest version: 1.0.4

# @Loskir/vue-emoji-picker

![Demo](demo.png)

## Demo 
[repo](https://github.com/Loskir/vue-emoji-picker-example), [website](https://loskir.github.io/vue-emoji-picker-demo)

## Installation

```shell script
yarn add @loskir/vue-emoji-picker
```
or
```shell script
npm i --save @loskir/vue-emoji-picker
```

## Features
- Fast. Instant wakeup.
- Efficient. Uses intersection observer to render only emojis that are visible
- Uses Apple emojis via [@loskir/emoji-sprite-stylesheet](https://npmjs.com/package/@loskir/emoji-sprite-stylesheet)
- Saves favourite emojis in local storage
npm package: @losmaquios/nova
Description: Composable custom elements
Author: Camilo Rodríguez
Latest version: 0.2.0

# Nova.js

  Microframework for composable custom-elements

[![LosMaquios](https://circleci.com/gh/LosMaquios/nova.svg?style=svg)](https://circleci.com/gh/LosMaquios/nova)
[![LosMaquios](https://codecov.io/github/LosMaquios/nova/coverage.svg?branch=master)](https://codecov.io/github/LosMaquios/nova)

## Installation

```bash
$ npm install @losmaquios/nova
```

## Example

```ts
import { 
  // Utils
  getElementInstance,

  // Composers
  attr, 
  prop,
  method,
  on,
  onConnected,
  onDisconnected,

  // Register functional custom element
  defineElement
} from '@losmaquios/nova'

function NovaButton () {
  const id = attr('id')
  const type = prop('type')

  const $element = getElementInstance()

  console.assert($element.tagName === 'button')

  const unwatchID = id.watch((oldID, newID) => {
    // ...
    console.assert(id.value === newID)
    unwatchID()
  })

  const unwatchType = type.watch((oldType, newType) => {
    // ...
    console.assert(type.value === newType)
    unwatchType()
  })

  const offOnConnected = onConnected(() => {
    console.log('Connected callback')
  })

  const offOnDisconnected = onDisconnected(() => {
    console.log('Disconnected callback')
  })

  function doSomething () {
    console.log('Doing something')
  }

  const doSomething = method('doSomething', doSomething)

  method(doSomething)

  const doSomething2 = method('doSomething') // Get method

  const offClick = on('click', () => {
    doSomething()
    offClick()
  })
}

defineElement(NovaButton, { 
  tag: 'nova-button',
  type: 'button' 
})
```

```ts
const $novaButton = document.createElement('nova-button')

$novaButton.setAttribute('id', 'some-id')
$novaButton.type = 'primary'

$novaButton.doSomething()
$novaButton.click()
```