open-index/open-npm huggingface dataset:
npm package: @pedrule/spinner
Description: Webcomponent spinner following open-wc recommendations
Author: spinner
Latest version: 0.0.8

<p align="center">
  <img width="200" src="https://open-wc.org/hero.png"></img>
</p>

## Open-wc Starter App

[![Built with open-wc recommendations](https://img.shields.io/badge/built%20with-open--wc-blue.svg)](https://github.com/open-wc)

## Quickstart

To get started:

```sh
npm init @open-wc
# requires node 10 & npm 6 or higher
```

## Scripts

- `start` runs your app for development, reloading on file changes
- `start:build` runs your app after it has been built using the build command
- `build` builds your app and outputs it in your `dist` directory
- `test` runs your test suite with Karma
- `lint` runs the linter for your project
npm package: @pedrule/virtual-scroll
Description: Webcomponent virtual-scroll following open-wc recommendations
Author: virtual-scroll
Latest version: 2.0.7

<p align="center">
  <img width="200" src="https://open-wc.org/hero.png"></img>
</p>

## Open-wc Starter App

[![Built with open-wc recommendations](https://img.shields.io/badge/built%20with-open--wc-blue.svg)](https://github.com/open-wc)

## Quickstart

To get started:

```sh
npm init @open-wc
# requires node 10 & npm 6 or higher
```

## Scripts

- `start` runs your app for development, reloading on file changes
- `start:build` runs your app after it has been built using the build command
- `build` builds your app and outputs it in your `dist` directory
- `test` runs your test suite with Karma
- `lint` runs the linter for your project
npm package: @peeeky/viewer
Description: Open-source PDF viewer with built-in engagement tracking. React component.
Latest version: 1.0.0

# @peeeky/viewer

> Open-source PDF viewer with built-in engagement tracking. React component.

[![npm](https://img.shields.io/npm/v/@peeeky/viewer)](https://www.npmjs.com/package/@peeeky/viewer)
[![license](https://img.shields.io/npm/l/@peeeky/viewer)](./LICENSE)

## Install

```bash
npm install @peeeky/viewer
```

## Quick Start

```tsx
import { PeeekyViewer } from '@peeeky/viewer'

function App() {
  return (
    <PeeekyViewer
      src="/documents/proposal.pdf"
      apiKey="pk_live_your_key"
      viewerEmail="recipient@company.com"
      onPageView={(page, seconds) => console.log(`Page ${page}: ${seconds}s`)}
    />
  )
}
```

## Standalone (no tracking)

```tsx
<PeeekyViewer src="/doc.pdf" />
```

Works without `apiKey` — just a clean PDF viewer with no external calls.

## Props

| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `src` | `string` | required | URL or path to PDF file |
| `apiKey` | `string` | — | Peeeky API key (enables tracking) |
| `endpoint` | `string` | `https://peeeky.com/api/track` | Custom tracking endpoint |
| `viewerEmail` | `string` | — | Identify the viewer |
| `width` | `string \| number` | `"100%"` | Container width |
| `height` | `string \| number` | `"600px"` | Container height |
| `showToolbar` | `boolean` | `true` | Show navigation toolbar |
| `showPageNumbers` | `boolean` | `true` | Show page counter |
| `theme` | `"light" \| "dark"` | `"light"` | Color theme |
| `onPageView` | `(page, seconds) => void` | — | Callback per page |
| `onViewStart` | `(viewId) => void` | — | When view session starts |
| `onViewEnd` | `(totalSeconds) => void` | — | When view session ends |
| `onError` | `(error) => void` | — | On PDF load error |

## Dashboard

Connect to [Peeeky](https://peeeky.com) to get:
- Per-page engagement heatmaps
- AI Chat for document recipients
- Smart follow-up alerts
- Engagement scoring

## License

MIT
npm package: @peeeng/eslint-config
Description: Peeeng's ESLint config
Author: lijiapeng001
Latest version: 0.0.17

# @peeeng/eslint-config

## Usage

### Install

```bash
pnpm add -D eslint @peeeng/eslint-config
```

### Config `.eslintrc`

```json
{
  "extends": "@peeeng"
}
```