open-index/open-npm huggingface dataset:
npm package: @fm2/puffin
Description: A reusable components library for web.
Author: Marc Espín Sanz
Latest version: 2.1.4
Deprecated: this package has deprecated

## 🐧 PuffinJS

### 🤔 About

PuffinJS is a JavaScript library for creating reusable components for web.

### 🔬 Status

Pretty stable but, be careful when using on production. (WIP)

What does it have?
* Reusable components
	* Async rendering
	* Events binding
* Components styling
* State manager
* Events emitter
* Router
* Addons middlewares
* Language addon

### Install

Install dependencies:
```shell
npm install
```

### Build

Build prod:
```shell
npm run build
```

### ⚽ Usage

Installing:
```shell
npm install @fm2/puffin
```

Importing:
```javascript
import { element, style, state, render, routerBox, routerLink, lang } from "@fm2/puffin"
```

**Example projects are located under /samples.**

Example:
```javascript
import { element, style, render } from '@fm2/puffin'

const myStyles = style`
	& {
		color: rgb(100,100,100);
	}
`

const App = () => {
	return element`
		<div class="${myStyles}">
			<h1>Hello World</h1>
			<button :click="${clickMe}">Click me</button>
		</div>
	`
}

function clickMe(){
	alert("Hello World!")
}

render(App(), document.body)

```

### 📜 License

MIT License

Copyright (c) Marc Espín Sanz

[Full license](LICENSE.md)
npm package: @fm2/sdk
Description: Filing-Manager 2 SDK to develop plugins.
Author: DanSketic
Latest version: 1.0.4

# 🧵 Filing-Manager SDK
SDK to develop plugins for [Filing-Manager](https://github.com/DanSketic/Filing-Manager-App)

It makes use of Webpack, ts-loader and babel under the hood.

### ✍ Usage
Installation:

```shell
npm add -D @fm2/sdk
```

Develop plugin for development:
```shell
fm2sdk --project ./ --target plugin --mode dev
```

Build plugin for production:
```shell
fm2sdk --project ./ --target plugin --mode release
```

### 📜 Usage

Manifest file (package.json) should have the property `mainSrc` which indicates where the entry file (aka main file) is located.

Example:

```json
{
	"name": "plugin-example",
	"type":"plugin",
	"version": "1.0.0",
	"mainSrc": "src/main.js",
	"main": "main.js",
	"license": "MIT"
}
```

CLI parameters:

* `--project`: Path of the Plugin's folder where the manifest (package.json) is located
* `--target`: Target type:
	* `plugin` ( aka Dynamic or JavaScript plugin )
	* `iconpack` ( Icons pack )
	* `theme` ( UI themes )
* `--mode`: Build type (dev, release)
* `--platform`: Any webpack target, it defaults to 'node'

Example:

```ts
fm2sdk --target plugin --project . --mode release
```

This will generate a release of the plugin you are located in.

### 🤖 Where is this being used?

And Filing-Manager itself.