open-index/open-npm huggingface dataset:
npm package: @studiomoniker/emitter
Description: Browser / Node compatible ES6 event emitter loosely based on Node's implementation with added support for event forwarding and subscribing to all events.
Author: Jonathan Puckey
Latest version: 1.1.4

# emitter

Browser / Node compatible ES6 event emitter loosely based on Node's implementation with some added features:

- Forward events from emitter to emitter: `emitterA.on('event', emitterB)`
- Subscribe to all events: `emitter.onAny((type, ...args) => doSomething(type, args))`

## Install ##

```
npm install @studiomoniker/emitter
```

## Examples ##

Listening for and emitting events:
```javascript
import Emitter from '@studiomoniker/emitter';

const emitter = new emitter();
emitter.on('foo', (message) => console.log(message));
emitter.emit('foo', 'bar');
```

Extending Emitter:
```javascript
import Emitter from '@studiomoniker/emitter';

class Animal extends Emitter {
  makeSound(sound) {
    this.emit('a loud ' + sound);
  }
}

let animal = new Animal();
animal.on('sound', (sound) => {
  console.log(sound); // a loud growl
});
animal.makeSound('growl');
```

Adding and removing events:
```javascript
import Emitter from '@studiomoniker/emitter';

function foo(message) {
  console.log('foo: ' + message);
}

const emitter = new Emitter();
emitter.on('foo', foo);
emitter.emit('foo', 'bar'); // Logs 'foo: bar'
emitter.off(foo);
emitter.emit('foo', 'bar'); // No longer logs 'foo: bar', because the listener was removed
```

Listen to all events:
```javascript
import Emitter from '@studiomoniker/emitter';

function logAll(eventName, message) {
  console.log(`${eventName}: ${message}`);
}

const emitter = new Emitter();
emitter.onAny(foo);
emitter.emit('foo', 'bar'); // Logs 'foo: bar'
emitter.emit('poo', 'bar'); // Logs 'poo: bar'
```

Forward events:
```javascript
import Emitter from '@studiomoniker/emitter';

function logAll(eventName, message) {
  console.log(`${eventName}: ${message}`);
}

const emitter = new Emitter();
const emitter2 = new Emitter();

// Forward 'message' events from emitter to emitter2:
emitter.on('message', emitter2);
emitter2.on('message', (message) => console.log('emitter2: ' + message));

emitter.emit('message', 'foo'); // Logs 'emitter2: foo'
```
npm package: @studiomoniker/point
Description: A JavaScript 2D vector class with methods for common vector operations
Author: Jonathan Puckey
Latest version: 2.0.0

# Point

JavaScript 2D point library with methods for common vector operations

Forked from [Victor](https://github.com/maxkueng/victor/), bringing in ideas and code from [Paper.js](https://github.com/paperjs/paper.js/blob/develop/src/basic/Point.js).

## Installation

### Node.js / Browserify

```bash
npm install @studiomoniker/point --save
```

```javascript
var Point = require('@studiomoniker/point');
var point = new Point(10, 20);
```

### ES6

```bash
npm install @studiomoniker/point --save
```

```javascript
import Point from '@studiomoniker/point';
let point = new Point(10, 20);
```

### Global object

Include the pre-built script.

```html
<script src="build/point.js"></script>
<script>
var point = new Point(10, 20);
</script>
```

## Build & test

```bash
npm run build
```

```bash
npm test
```

## License

MIT
npm package: @studiomotio/micro-motion
Description: Trendy micro motion interactions
Author: Studio MOTIO
Latest version: 0.1.2

# Micro motion – [![npm (scoped)](https://img.shields.io/npm/v/@studiomotio/micro-motion.svg)](https://www.npmjs.com/package/@studiomotio/micro-motion)
This library is a set of common and useful **motion mixins & effects** that can be used in any front-end project.

[![Micro motion](logo.png "Micro motion")](https://studiomotio.github.io/micro-motion)

## Compatibility
This library is fully tested on **Google Chrome** and **Mozilla Firefox** for desktop *(latest public released version)* and is compatible with browsers that natively support CSS 3 properties.

Official support on **Chrome 50+, Firefox 50+, Opera 40+, Safari 10+, Internet Explorer 11+ and Edge 15+**. Many other browsers may work, but are not extensively tested. You can check at any time the [support table](https://caniuse.com) about the partial or full support of CSS features. Note that this library will not be ported to older versions of Internet Explorer.

**NOTE:** the compatibility may change or evolve depending on the CSS modules we are using.


## Dependencies
More detailed dependencies is *coming soon*.


## Architecture
We built a **flexible** core architecture, allowing to manage multiple modules and giving developers the ability to set up the library for easy integration into a project. Just **@import** the root `micro-motion.less` file and start to use one of the build-in module!

- `micro-motion.less` library build file
- `core/setting.less` settings and properties used to build the library
- `core/mixin.less` generic functions to automate tasks
- `core/motion.less` motion keyframes used for animations and effects
- `core/module.less` module build file that contains the list of all less modules
- `module` folder that contains all modules


## Documentation
More detailed documentation is *coming soon*.  
The version's notation is based on `Semantic versioning`, [https://semver.org](https://semver.org).


## Contribute
If you want to report a bug or if you just want to request for a new feature/improvement, please **read the project [contributors guidelines](CONTRIBUTING.md) before**. Thanks for taking time to contribute to the library.


## License
The project is developed under the **MIT** license:

- **Permissions**: This software and derivatives may be used for commercial purposes, you may distribute this software, this software may be modified and you may use and modify the software without distributing it.
- **Conditions**: Include a copy of the license and copyright notice with the code.
- **Limitations**: Software is provided without warranty and the software author/license owner cannot be held liable for damages.

Read the [full license](LICENSE.md) for more information about your rights.


## Questions?
If you have any questions, please **feel free to contact us!**  
[hello [at] studiomotio.com](mailto:hello@studiomotio.com)
npm package: @studiomotio/zeroclick
Description: A web concept for a zero click user experience
Author: Studio MOTIO
Latest version: 1.10.1

# zeroclick – [![npm (scoped)](https://img.shields.io/npm/v/@studiomotio/zeroclick.svg)](https://www.npmjs.com/package/@studiomotio/zeroclick) [![npm](https://img.shields.io/bundlephobia/min/@studiomotio/zeroclick?label=size)](https://bundlephobia.com/result?p=@studiomotio/zeroclick) [![ci](https://img.shields.io/github/actions/workflow/status/studiomotio/zeroclick/ci.yml?branch=main)](https://github.com/studiomotio/zeroclick/actions?query=workflow:"CI") [![code coverage](https://img.shields.io/coveralls/github/studiomotio/zeroclick)](https://coveralls.io/github/studiomotio/zeroclick)

A **web concept** for a zero click user experience.

[![zeroclick](logo.svg)](https://zeroclick.js.org/)

## Intro
This plugin is a **web concept for a zero click user experience**, meaning that the user doesn't need to click any links to properly navigate between your website's pages.

Even if this package may seems funny at first, it has **many advantages**:
- discover the no click navigation: just hover the link and go!
- improve accessibility for users that could have difficulties to click
- use `Promise`: wait for something before leaving the page
- create captivating interactive animations
- works great with [@barbajs](http://barba.js.org/)
- compatible with touch screens
- perfect for a cool portfolio!

## Documentation
Here you will find the documentation describing **how to use** the plugin.

1. [How it works](DOCUMENTATION.md#how-it-works) - how the plugin do the stuff
2. [Install](DOCUMENTATION.md#install) - how to install and use the plugin
3. [Properties](DOCUMENTATION.md#properties) - available properties
4. [Methods](DOCUMENTATION.md#methods) - available methods
5. [Events](DOCUMENTATION.md#events) - available events, callbacks and data attributes

## Disclaimer
As the plugin create an **"untrusted" `MouseEvent`** in order to simulate a user "click", some browsers may interpret `target="_blank"` links as **intrusive pop-up**. Be sure to ignore/ban those kind of links from your site.

## Contribute
If you want to report a bug or request a new feature/improvement, please **read the project [contributors guidelines](.github/CONTRIBUTING.md) before**. Thanks for taking time to contribute.

## License
The project is developed under the **MIT** license:

- **Permissions**: This software and derivatives may be used for commercial purposes, you may distribute this software, this software may be modified and you may use and modify the software without distributing it.
- **Conditions**: Include a copy of the license and copyright notice with the code.
- **Limitations**: Software is provided without warranty and the software author/license owner cannot be held liable for damages.

Read the [full license](LICENSE.md) for more information about your rights.

## Questions?
If you have any questions, please **feel free to contact us!**  
[hello [at] studiomotio.com](mailto:hello@studiomotio.com)
npm package: @studion/prettier-config
Description: Studion Prettier config
Author: Studion
Latest version: 0.1.0

# `@studion/prettier-config`

[![install size](https://badgen.net/packagephobia/install/@studion/prettier-config)](https://packagephobia.now.sh/result?p=@studion/prettier-config)
[![npm package version](https://badgen.net/npm/v/@studion/prettier-config)](https://npm.im/@studion/prettier-config)
[![github license](https://badgen.net/github/license/ExtensionEngine/prettier-config?service=github)](https://github.com/ExtensionEngine/prettier-config/blob/master/LICENSE)

Studion [Prettier](https://prettier.io) config 💄.

## Installation 💻

- If you are using VSCode, install the following
  [extension](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)

- Run the command:

```bash
$ npm i -D prettier @studion/prettier-config
```

- Edit `package.json`:

```jsonc
{
  // ...
  "prettier": "@studion/prettier-config"
}
```

- **OR** create `.prettierrc.js` file if you need to override the base config:

```js
const baseConfig = require("@studion/prettier-config");

module.export = {
  ...baseConfig,
  trailingComma: "none",
};
```
npm package: @studiopanda/minikit
Description: Watches and builds JS and SCSS files with dependency tracking, minification, and source maps
Author: Stefano Peloso
Latest version: 1.1.13

`minikit.config.json`
```
[
	{
		"src": "static/scss",
		"out": "static"
	},
	{
		"src": "static/js",
		"out": "static"
	},
	...
]
```

To launch watcher:
`npx @studiopanda/minikit`
npm package: @studiorack/cli
Description: Audio project manager tool
Author: kmturley
Latest version: 3.0.6

# studiorack-cli

![Test](https://github.com/studiorack/studiorack-cli/workflows/Test/badge.svg)

StudioRack command line tool to manage audio DAW VST plugin dependencies.

![StudioRack Cli](/screenshot.jpg)

<a href="https://github.com/open-audio-stack" target="_blank"><img src="https://raw.githubusercontent.com/open-audio-stack/open-audio-stack-registry/refs/heads/main/src/assets/powered-by-open-audio-stack.svg" alt="Powered by Open Audio Stack"></a>

## Installation

To install the tool, run the command:

    npm install @studiorack/cli -g

Get help:

    studiorack --help

Get version:

    studiorack --version

## Usage

StudioRack command line tool adheres to the [Open Audio Stack - Manager specification](https://github.com/open-audio-stack/open-audio-stack-core/blob/main/specification.

Config values can be set/get using:

    studiorack config set <key> <value>
    studiorack config get <key>
    studiorack config get pluginsDir

Search the registry package index for lazy matching query:

    studiorack <registryType> search <query>
    studiorack plugins search piano

Get a package metadata:

    studiorack <registryType> get <slug>
    studiorack plugins get surge-synthesizer/surge

Install a package:

    studiorack <registryType> install <slug>@<version>
    studiorack plugins install surge-synthesizer/surge

Install and open an app:

    studiorack apps install steinberg/validator
    studiorack apps open steinberg/validator -- --help

For a full list of commands, please refer to the [Open Audio Stack - Manager specification](https://github.com/open-audio-stack/open-audio-stack-core/blob/main/specification.md)

## Developer information

StudioRack Cli was built using:

- NodeJS 20.x
- TypeScript 5.x
- Commander 12.x

## Installation

Install dependencies using:

    npm install

## Usage

Run a build and link the `studiorack` command line to this local package:

    npm run dev:cli

Test using normal commands:

    studiorack --version

To publish and release changes and create a version tag using:

    npm version patch
    git push && git push origin --tags

## Contact

For more information please contact kmturley
npm package: @studiorack/core
Description: Core library containing shared functionality
Author: kmturley
Latest version: 2.0.16

# studiorack-core

![Test](https://github.com/studiorack/studiorack-core/workflows/Test/badge.svg)

Common methods package shared across StudioRack CLI, app and website for handling installing DAW VST plugin dependencies.

![StudioRack Core](/screenshot.jpg)

## Features

- admin - Standalone script for running plugin installations with admin privileges
- api - Helper methods for getting data via web requests
- config- Reading and writing configuration settings
- file - Helper methods for manipulating local files
- plugin - Logic for searching and installing plugins
- project - Logic for searching and indexing audio projects
- tool - Utilities and tools for validating plugins
- utils - Other helper methods and string utilities

## Installation

To install the common package, run the command:

    npm install @studiorack/core

Import the package using:

    import { toolInstall } from '@studiorack/core';

Then use the available methods as normal.

## Developer information

StudioRack Core was built using:

- NodeJS 20.x
- TypeScript 5.x

## Installation

To install, build and run code locally, first install dependencies:

    npm install

## Usage

Run dev command:

    npm run dev

Or to create and run a production build:

    npm run build
    npm start

## Deployment

This package is versioned using git tags:

    npm version patch
    git push && git push origin --tags

It is published to npm using:

    npm publish

## Contact

For more information please contact kmturley
npm package: @studioraketa/igor
Description: ``` yarn global add @studioraketa/igor ```
Author: Vestimir Markov
Latest version: 1.1.0

## Installation

```
yarn global add @studioraketa/igor
```

or

```
npm i -g @studioraketa/igor
```

## Usage

```
igor widget SectionTitle title:text
igor list-widget Cards
igor page-style cart # PENDING
```

## Generators

- **widget:** generates JS and SASS code for `raketa-cms` widget with JSON map for field settings
- **list-widget:** generates JS and SASS boilerplate for `raketa-cms` widget with list structure

### `igor widget ...`

This generator creates a new raketa-cms widget and corresponding SASS file, as well as including them in their respected library indices (`widgets/index.js` and `componends/_module.scss`).

Usage:

```
igor widget WIDGET_NAME [field:type], [field:type]...
```

Examples:

```
igor widget SectionTitle title
igor widget Text variant:select[6/8] text:rich
igor widget LeadImage image:image title:text description:rich
igor widget CtaBar title:text button:button inline_theme:select[none/brand/brand-alt/green/brown/orange/lilac/blue/red]
```

Field types:

- `text`: the default
- `textarea`: generates a textarea setting
- `rich`: generates a rich editor setting
- `image`: generates an image picker setting
- `select[option1/option2/option3]`: generates a select setting and its options

**NB:** By default if you do not specify a field type, the `text` type will be used.

### `igor list-widget` ...

This generator creates a boilerplate list (you cannot specify the field options during generation, but you get a good example of all types) widget with corresponidng SASS file, as well as including them in their library indices.

Usage:

```
igor list-widget WIDGET_NAME
```

Examples:

```
igor list-widget Cards
igor list-widget Testimonials
igor list-widget Features
igor neu-admin-module ProposalRequest uid:string deadline:datetime opens_at:datetime title:string subsidiary:string content: string
```

### `igor neu-admin-module` ...

This generator creates boilerplate for the NeuAdmin module.

Run the command from within a rails project directory which uses NeuAdmin. The generator will run the
[rails commands](https://guides.rubyonrails.org/command_line.html#rails-generate) and then add the files
needed by the NeuAdmin module.

Usage:

```
igor neu-admin-module ModuleName fiel:type field:type:option
```

Examples:

```
igor neu-admin-module ProposalRequest uid:string:unique deadline:datetime opens_at:datetime title:string subsidiary:string content:string
```

## TODO

- [x] Raketa CMS (Rails)
- [x] Neu Admin (Rails)
- [ ] Raketa CMS (NextJS)
- [ ] Design System (NextJS)

## Development

1. Clone the repo and install its dependencies
1. Make sure to uninstall any global instance of igor with `npm uninstall -g igor`
1. Run `npm install -g ./` from within your local igor folder
1. Commit you changes and a version bump (in `package.json`)
1. Use yarn publish to publish the new version on NPM