open-index/open-npm huggingface dataset:
npm package: @sunoj/touchemulator
Description: Emulate touch input on your desktop.
Author: Jorik Tangelder
Latest version: 0.0.2

Touch Emulator
========

Emulate multi-touch input on your desktop. Triggers touch events as
[specified by W3C](http://www.w3.org/TR/touch-events). Press the `shift` key to pinch and rotate!

- [Example with Hammer.js](http://rawgit.com/hammerjs/touchemulator/master/tests/manual/hammer.html)
- [Example with Leaflet Maps](http://rawgit.com/hammerjs/touchemulator/master/tests/manual/leaflet.html)
- [View webpage](http://hammerjs.github.io/touch-emulator)

## Install
Download the script from this repo, via Bower:

```bash
bower install hammer-touchemulator
```

or NPM:

```bash
npm install hammer-touchemulator
```

## How to use
Include the javascript file, and call the `Emulator()` function before any other libraries that do something with the 
touch input. It will set some fake properties to spoof the touch detection of some libraries, and triggers `touchstart`, `touchmove` and `touchend` events on the mouse target.
 
````html
<script src="touch-emulator.js"></script>
<script> TouchEmulator(); </script>
````

````js
function log(ev) {
 console.log(ev);
}

document.body.addEventListener('touchstart', log, false);
document.body.addEventListener('touchmove', log, false);
document.body.addEventListener('touchend', log, false);
````

Also, the script includes polyfills for `document.createTouch` and `document.createTouchList`.

## How it works
It listens to the `mousedown`, `mousemove` and `mouseup` events, and translates them to touch events. If the mouseevent
has the `shiftKey` property to `true`, it enables multi-touch. 

The script also prevents the following mouse events on the page: 
`mousedown`, `mouseenter`, `mouseleave`, `mousemove`, `mouseout`, `mouseover` and `mouseup`.

## Web platform tests
The script has been tested with the [w3c web platform tests](/tests/web-platform-tests/touch-events) and passes all tests,  except these;
- *assert_true: event is a TouchEvent event expected true got false*
  - We trigger an event of the type `Event`
- *assert_equals: touch list is of type TouchList expected "[object TouchList]" but got "[object Array]"*
- *assert_equals: touch is of type Touch expected "[object Touch]" but got "[object Object]"*

## Bookmarklet
````js
javascript:!function(a){var b=a.createElement("script");b.onload=function(){TouchEmulator()},b.src="//cdn.rawgit.com/hammerjs/touchemulator/0.0.2/touch-emulator.js",a.body.appendChild(b)}(document);
````

## Options
#### TouchEmulator.template = Function(touch)
Change the css properties of the rendered touches.

#### TouchEmulator.multiTouchOffset = 75
The distance between the two touch points when entering the *multi-touch zone*.
npm package: @sunpietro/color-finder
Description: It's a small library that allows to find similar color in a given group of colors. Calculations are made Euclidean distance between 2 CIELab color definitions.
Author: Piotr Nalepa
Latest version: 0.10.2

# @sunpietro/color-finder

Checks the distance between 2 hex colors and finds the closest color to a given sample.

## Installation

```
npm install @sunpietro/color-finder
```

## How to use it?

```
import ColorFinder from `@sunpietro/color-finder`;

const colorsLibrary = [
  '#bb3300',
  '#aa22ff',
  '#b00053'
];
const finder = ColorFinder(colorsLibrary);
```

## Available methods

There are finder methods available:

### `updateColorsLibrary`

Updates a collection of colors used for comparing with sample colors. Takes one param: `colors` as `string[]`.

### `findClosestColor`

Finds the closest color to a sample color, in a colors library. Takes one param: `color` as `string`. Returns the closest color as `string`.

### `checkColorsSimilarity`

Compares 2 hex colors in terms of color similarity. Takes two params: `color1` as `string` and `color2` as `string`. Returns an Euclidean distance value as `number`. The lowest value, the more similar colors are.
npm package: @sunpietro/css-classnames
Description: A tiny helper to generate CSS classes based on provided conditions
Author: Piotr Nalepa
Latest version: 1.0.1

# css-classnames
A simple helper to generate CSS class names string based on provided conditions

## Usage sample

First of all you need to install the package in your project by running:

`npm install @sunpietro/css-classnames`

or 

`yarn install @sunpietro/css-classnames`

or by downloading files from this repository and including the file `css-classnames.min.js` in your HTML code using `script` tag:

`<script async src="./js/css-classnames.min.js"></script>`

Then if you installed it using either NPM or Yarn, you can start using it the following way:

```javascript
import * as classnames from '@sunpietro/css-classnames';

const isFluid = true;
const items = [1, 2, 3];
const classNameString = classnames({
    'container': true,
    'container--fluid': isFluid,
    'container--filled': items.length > 1,
    'container--empty': false
});

console.log(classNamesString);
// The output: 'container container--fluid container--filled'
```

Otherwise, the script above will slightly change to:

```javascript
const isFluid = true;
const items = [1, 2, 3];
const classNameString = window.classnames({
    'container': true,
    'container--fluid': isFluid,
    'container--filled': items.length > 1,
    'container--empty': false
});

console.log(classNamesString);
// The output: 'container container--fluid container--filled'
```

## Feedback and issues

If you have any feedback, please create an issue in this repository
npm package: @sunpix/claude-code-web
Description: A web-based interface for interacting with Claude Code CLI
Author: sunpix
Latest version: 1.2.2

# Claude Code Web - Claude Code UI

This product is in alpha state. There is not authentication! So you need to bring your own via a reverse proxy.

This is the production build of Claude Code Web, a web-based interface for interacting with Claude Code CLI.

## Video
https://github.com/user-attachments/assets/418a2aba-829c-40f5-9b04-8e92eae4e8e3

## Prerequisites

- Node.js 18+ 
- Claude Code CLI installed and configured

## Running the Application

1. Git clone
   ```bash
   npm -g install @sunpix/claude-code-web
   ```

2. Run the app:
   ```bash
   claude-code-web
   ```
3. Claude is running on http://localhost:3000/

It will then listen on port 3000. BE AWARE: there is no authentication. So everyone with access to that port control your environment/computer.

## Configuration

### Port Configuration

To run on a different port:
```bash
PORT=8080 claude-code-web
```

### Path
To run on a different subpath (behind a reverse proxy) for example:
```bash
APP_BASE_URL=/claude-code claude-code-web
```

## Image
<img width="887" height="714" alt="472182159-8652996a-5622-4fbb-ac78-7b8c872060a4" src="https://github.com/user-attachments/assets/48cfdd4d-6a85-499f-b745-c88e34a262f4" />

## Support
For issues and documentation, visit the Claude Code UI repository.