open-index/open-npm huggingface dataset:
npm package: @rpoc/generator-node
Description: Yeoman generators for node for creating rapid proof-of-concepts
Author: Robert Brewitz Borg
Latest version: 1.0.0

# Yeoman generator for Rapid Proof-of-Concepts in Node

[![npm](https://img.shields.io/npm/v/@rpoc/generator-node.svg)](https://www.npmjs.com/package/@rpoc/generator-node)
[![npm](https://img.shields.io/npm/dt/@rpoc/generator-node.svg)](https://www.npmjs.com/package/@rpoc/generator-node)
[![NpmLicense](https://img.shields.io/npm/l/@rpoc/generator-node.svg)](https://opensource.org/licenses/MIT)

A collection of NodeJS generators for developing Rapid Proof-of-Concepts.

## Node version

Using the latest major LTS node version, currently Node 8.

## Installation

```bash
nvm use 8
npm install -g yo @rpoc/generator-node
```

## Generators

### Base

- Chai
- Editorconfig
- Eslint
- Mocha
- Nyc

```bash
mkdir myapp
cd myapp
npm init
yo @rpoc/node:base
```

## LICENSE

Copyright 2018 Robert Brewitz Borg

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rpoc/generator-react
Description: Yeoman generators for create-react-app for creating rapid proof-of-concepts
Author: Robert Brewitz Borg
Latest version: 2.2.3

# Yeoman generator for Rapid Proof-of-Concepts in React

[![npm](https://img.shields.io/npm/v/@rpoc/generator-react.svg)](https://www.npmjs.com/package/@rpoc/generator-react)
[![npm](https://img.shields.io/npm/dt/@rpoc/generator-react.svg)](https://www.npmjs.com/package/@rpoc/generator-react)
[![NpmLicense](https://img.shields.io/npm/l/@rpoc/generator-react.svg)](https://opensource.org/licenses/MIT)

A collection of React generators for developing Rapid Proof-of-Concepts.

## Node version

Using the latest major LTS node version, currently Node 8.

## Installation

```bash
nvm use 8
npm install -g create-react-app yo @rpoc/generator-react
```

## Generators

### Base

- Axios
- CI & CD with circleci
- Chai
- Editorconfig
- Enzyme
- Eslint
- MobX with decorators
- Mocha
- Moment
- Nyc
- React Router DOM

```bash
create-react-app myapp
cd myapp
yo @rpoc/react:base
```

### CoreUI

Sets up a "CoreUI – A free Bootstrap admin template" for React

Requires `@rpoc/react:base` generator to have been run

- Bootstrap
- ChartJS
- CoreJS
- CoreUI
- Fontawesome
- Reactstrap

```bash
yo @rpoc/react:coreui
```

### CRUD

Add a Resource with create, read, update, and delete Stores, Routes, Navigations, and Views.

Requires `@rpoc/react:coreui` generator to have been run

```
yo @rpoc/react:crud
```

### AWS Amplify

Adds aws-amplify with Auth and Storage boilerplate config in src/index.js.

Works with and without `@rpoc/react:coreui`.

Requires `@rpoc/react:base` generator to have been run.

```
yo @rpoc/react:amplify
```

#### AWS Amplify Resources & Documentation

- [AWS Amplify](https://aws-amplify.github.io/)
- [AWS Amplify Authentication](https://aws-amplify.github.io/amplify-js/media/authentication_guide)
- [AWS Amplify Storage](https://aws-amplify.github.io/amplify-js/media/storage_guide)
- [AWS Amplify React](https://aws-amplify.github.io/amplify-js/media/react_guide)

## LICENSE

Copyright 2018 Robert Brewitz Borg

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rpoc/generator-serverless
Description: Yeoman generators for the serverless framework for creating rapid proof-of-concepts
Author: Robert Brewitz Borg
Latest version: 3.1.0

# Yeoman generator for Rapid Proof-of-Concepts in Serverless

[![npm](https://img.shields.io/npm/v/@rpoc/generator-serverless.svg)](https://www.npmjs.com/package/@rpoc/generator-serverless)
[![npm](https://img.shields.io/npm/dt/@rpoc/generator-serverless.svg)](https://www.npmjs.com/package/@rpoc/generator-serverless)
[![NpmLicense](https://img.shields.io/npm/l/@rpoc/generator-serverless.svg)](https://opensource.org/licenses/MIT)

A collection of Serverless generators for developing Rapid Proof-of-Concepts.

## Node version

Using the latest major LTS node version, currently Node 8.

## Installation

```bash
nvm install 8.10
npm install -g serverless yo @rpoc/generator-serverless
```

## Generators

### Base

Sets up a unit-tested RESTful API serverless application for AWS API Gateway, Lambda, DynamoDB, and Cognito authorizer for Lambda functions.

- AWS-SDK
- Axios
- Chai
- Editorconfig
- Eslint
- Mocha
- Nyc
- Proxyquire
- Sinon
- UUID

```bash
nvm use 8.10
serverless create --template aws-nodejs --path myapi
cd myapi
npm init
yo @rpoc/serverless:base
```

### CRUD

Add a Resource with create, read, update, and delete REST API.

Requires `@rpoc/serverless:base` generator to have been run

```
nvm use
yo @rpoc/serverless:crud
```

## Interaction

To interact with the API, see either [AWS Amplify Authentication Guide](https://aws-amplify.github.io/amplify-js/media/authentication_guide) and [AWS Amplify API Guide](https://aws-amplify.github.io/amplify-js/media/api_guide), or try out our [rpoc/generator-react](https://github.com/rpoc/generator-react) that'll set up everything for you.

## LICENSE

Copyright 2018 Robert Brewitz Borg

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rpodwika/use-paginator
Description: React Hook for a simple pagination
Author: Robert Podwika
Latest version: 1.0.2

# use-paginator

A simple hook to paginate any dataset in JavaScript (TypeScript)

![Codecov](https://img.shields.io/codecov/c/github/rpodwika/use-paginator)
[![GitHub issues](https://img.shields.io/github/issues/rpodwika/use-paginator)](https://github.com/rpodwika/use-paginator/issues)
[![GitHub forks](https://img.shields.io/github/forks/rpodwika/use-paginator)](https://github.com/rpodwika/use-paginator/network)
[![GitHub stars](https://img.shields.io/github/stars/rpodwika/use-paginator)](https://github.com/rpodwika/use-paginator/stargazers)
[![GitHub license](https://img.shields.io/github/license/rpodwika/use-paginator)](https://github.com/rpodwika/use-paginator/blob/master/LICENSE)

## Why

I missed a very simple hook that would make pagination from any collection in JavaScript. This library is not about styling
but more about the controls that can be used with any library and adjusted to your needs. Personally, I used styled-components which I highly
recommend, but you can use whatever you want

## Usage 

`npm i @rpodwika/use-paginator` or `yarn add @rpodwika/use-paginator`

Sample code:
```
import React from "react";
import { usePaginator } from '@rpodwika/use-paginator'

const data = [
  { id: 1, anything: 'a'},
  { id: 2, anything: 'b'},
  { id: 3, anything: 'c'},
  { id: 4, anything: 'd'},
  { id: 5, anything: 'e'}
]

const pageSize = 2

const Component = () => {
  const {
      currentPage, // contains current page number
      setCurrentPage, // sets a page (for example when someone clicks on a button with page number)
      pageItems, // page items to display
      totalPages, // total number of pages
      nextPage, // function to move to the next page
      prevPage  // function to move to the previous page
    } = usePaginator(data, pageSize)
  
  return (
     <>
        {pageItems.map(pi => <div id={`paged-element-${pi.id}`}>{pi.anything}</div>)}
        <div onClick={nextPage}>go to the next page</div>
        <div onClick={prevPage}>go to the previous page</div>
        <div>{currentPage}/{totalPages}</div>
        {Array.from({ length: totalPages }, (_, i) => i + 1).map((p) => (
            <div
              onClick={() => setCurrentPage(p)}
              data-is-active={p === currentPage}
              key={`page-${p}`}
            >
              {p}
            </div>
          ))}
     </>
  ) 
}
```

Async calls, in case "data" prop changes you'll need to use useEffect function 


```
useEffect(() => {
    setItemList(data)
    // eslint-disable-next-line react-hooks/exhaustive-deps
  }, [data])
```

Eslint exhaustive deps is needed because function reference is passed. Probably, in the next major version I'll make it work with 
references to make it more friendly

# Contributions

If you want to contribute, please open a pull request 

# Issues 

If you found an issue, please create a ticket

Did you like it? Please star this, it'll give me a motivation to share more code with YOU! 🙏
npm package: @rpofuk/aws-sign-web
Description: Plain JavaScript AWS Signature v4 for use within Web Browsers
Author: Daniel Joos
Latest version: 1.5.26

# aws-sign-web [![npm version](https://badge.fury.io/js/aws-sign-web.svg)](https://badge.fury.io/js/aws-sign-web) [![Build Status](https://travis-ci.org/danieljoos/aws-sign-web.svg?branch=master)](https://travis-ci.org/danieljoos/aws-sign-web)
Plain JavaScript AWS Signature v4 for use within Web Browsers

## Example

```html
<script src="bower_components/cryptojslib/rollups/sha256.js"></script>
<script src="bower_components/cryptojslib/rollups/hmac-sha256.js"></script>
<script src="bower_components/aws-sign-web/aws-sign-web.min.js"></script>

<script type="text/javascript">
(function() {
    // Create a new signer
    var config = {
        // AWS Region (default: 'eu-west-1')
        region: 'eu-west-1',
        // AWS service that is called (default: 'execute-api' -- AWS API Gateway)
        service: 'execute-api',
        // AWS IAM credentials, here some temporary credentials with a session token
        accessKeyId: '...',
        secretAccessKey: '...',
        sessionToken: '...'
    };
    var signer = new awsSignWeb.AwsSigner(config);

    // Sign a request
    var request = {
        method: 'GET',
        url: 'https://<YOUR_API>.execute-api.eu-west-1.amazonaws.com/dev/users',
        headers: {},
        params: {
            'username': 'nobody'
        },
        data: null
    };
    var signed = signer.sign(request);
    console.log(signed);

    ///
    /// {
    ///     'Accept': 'application/json',
    ///     'Authorization': 'AWS4-HMAC-SHA256 Credential=ASIAIQTP2FX4MJ4J2DIA/20160520/eu-west-1/execute-api/aws4_request, SignedHeaders=accept;host;x-amz-date, Signature=cc870c6ea5174baad470e46a7f5642725ff9411e049cf24d730923fca7e5f2b4'
    ///     'x-amz-date': '20160520T053201Z',
    ///     'x-amz-security-token': 'FQoDYXdzEOf//...'
    /// }
    ///
})();
</script>
```
npm package: @rpominov/bs-preserve-tags
Description: A hacky workaround to allow BuckleScript data structures to be transferred via JSON.
Latest version: 0.1.1

# PreserveTags

A hacky workaround to allow BuckleScript data structures to be transferred via JSON.

BuckleScript represents variants as JavaScript arrays with an added property `tag`, like so:

```js
const arr = [1]; 
arr.tag = 0;
```

This representation cannot be transferred via JSON, if we do `JSON.stringify(arr)`, the `tag` will be stripped. PreserveTags makes it possible:

```reason

let transfer = [%bs.raw
  {| function(x) {return JSON.parse(JSON.stringify(x))} |}
];

type t('a) =
  | A('a)
  | B('a);

/* Without PreserveTags B may become A */
transfer(B(1)) == A(1) /* true */

/* With PreserveTags it works fine */
PreserveTags.decode(transfer(PreserveTags.encode(B(1)))) == B(1) /* true */
```

## API

```reason
module PreserveTags = {
  type t('a);
  let encode: 'a => t('a);
  let decode: t('a) => 'a;
}
```

## Installation

```
npm i @rpominov/bs-preserve-tags
```

Then in your `bsconfig.json`:

```
"bs-dependencies": ["@rpominov/bs-preserve-tags"]
```
npm package: @rpominov/reason-next
Description: ReasonMl wrappers for NextJs
Author: Roman Pominov
Latest version: 0.1.0

# ReasonNext

Reason wrappers for [Next](https://nextjs.org/).

## Project Status

Work in progress, don't use.

## Installation

```
npm install --save next react react-dom reason-react @rpominov/reason-next
```
npm package: @rpose/cli
Description: rpose命令行工具
Author: 青松
Latest version: 0.9.1

# `@rpose/cli`
<br>
<br>

[![NPM version](https://img.shields.io/npm/v/@rpose/cli.svg)](https://www.npmjs.com/package/@rpose/cli)
[![License](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://github.com/gotoeasy/rpose/blob/master/LICENSE)
<br>
<br>

## Install
```
npm i -g @rpose/cli
```

## Create
```
rpose create my-project
```

## Watch
```
cd my-project
rpose watch
```

## Build
```
cd my-project
rpose build -c -r
```

## Setting
use file `.browserslistrc` to config target browsers
```
>= 2%
>= 1% in cn
not dead
ie 11
```

use file `rpose.config.btf` to config rpose project
```
[path] // config project path info
build : build

[theme] // theme npm package
@gotoeasy/theme

[prerender] // prerender npm package
@gotoeasy/pre-render
```


<br>

## `Links`
* `gotoeasy` https://gotoeasy.github.io
* `rpose` https://github.com/gotoeasy/rpose
npm package: @rppld/crowdin-cli
Description: A little helper to sync messages with [Crowdin](https://crowdin.com/). It uses [`@formatjs/cli`](https://formatjs.io/docs/tooling/cli/) to extract messages from your application.
Author: Angelo Abdoelsamath
Latest version: 0.1.5

# Crowdin CLI

A little helper to sync messages with [Crowdin](https://crowdin.com/). It uses [`@formatjs/cli`](https://formatjs.io/docs/tooling/cli/) to extract messages from your application.

## Installation

```shell
npm install @mollie/crowdin-cli
# or
yarn add @mollie/crowdin-cli
```

## Usage

In your project, create a `.env` file and add the following environment-variables:

```shell
CROWDIN_PERSONAL_ACCESS_TOKEN={your-access-token}
CROWDIN_PROJECT_ID={your-project-id}
CROWDIN_LANGUAGES=nl,en-US,fr,fr-BE # Comma-separated list of languages
```

In your `package.json`, add these scripts:

```json
"crowdin:download": "mollie-crowdin download",
"crowdin:upload": "mollie-crowdin upload './src/**/!(*.{d,test})*.ts*'", // Adjust glob-pattern if necessary
"crowdin:delete-branch": "mollie-crowdin delete-branch"
```

Extract all messages from your application by using:

```shell
$ mollie-crowdin collect './src/**/!(*.{d,test})*.ts*'
```

## Crowdin branch name

By default, `@mollie/crowdin-cli` will create a branch in Crowdin with the same name as the currently checked out branch in Git. It is possible to override this behaviour by passing a `--branch-name` option (or `-b` ) to the `upload`, `download` and `delete-branch` commands. For example, the following command will collect and upload messages to a branch named `custom-branch-name` in Crowdin.

```shell
$ mollie-crowdin upload './src/**/!(*.{d,test})*.ts*' --branch-name 'custom-branch-name'
```

## TypeScript

To write the downloaded messages to TypeScript (.ts) files, pass the `--typescript` flag to the `download` command.

```shell
"crowdin:download": "mollie-crowdin download --typescript"
```

## Development

Install the dependencies:

```shell
    nvm install
    yarn install
```
npm package: @rprabhashvara/nuxtjs-font-awesome-5
Description: Font Awesome 5 as a Nuxt.js module
Author: Randika Prabhashvara
Latest version: 1.0.1

# Nuxt.js Font Awesome 5
Font Awesome 5 for Nuxt.js

* Uses Font Awesome version 5.3.0

## Setup
- Add `@rprabhashvara/nuxtjs-font-awesome-5` dependency using npm to your project
- Add `@rprabhashvara/nuxtjs-font-awesome-5` to `modules` section of `nuxt.config.js`
```js
{
  modules: [
    '@rprabhashvara/nuxtjs-font-awesome-5',
  ]
}
````
npm package: @rps-labs/lotto-sdk
Description: The RPS Lotto SDK is a react package that makes it easy to gamify dApps.
Author: RPS Labs
Latest version: 0.0.2

# 📦 rps-labs/lotto-sdk

The RPS Lotto SDK is a react package that makes it easy to gamify dApps.

Effortlessly incorporate engaging and interactive gamification elements into your dApps without the need to start from scratch. Our prebuilt React components offer a variety of features, including Pot Widget, Past Winners, Leaderboard, Activities, and Modals. By using our SDK, you not only save valuable development time but also ensure a rich, and immersive experience for your users.

Follow us [@rps_labs](https://twitter.com/rps_labs) or visit [rpslabs.io](https://rpslabs.io)

> 🚧 Under active development. Expect breaking changes until v1.0.0.

## 🏃 Getting started

```console
npm install rps-labs/lotto-sdk
```

```console
yarn add rps-labs/lotto-sdk
```

```console
pnpm install rps-labs/lotto-sdk
```

## Usage

For detailed documentation on using RPS Lotto SDK, check our [docs](https://rpslabs.gitbook.io/docs/for-developers/sdk-docs)
npm package: @rpui/bdo-element-ui
Description: bdo-element-ui基于element二次封装的组件
Author: Rp
Latest version: 1.2.7

# bdo-element-ui

bdo-element-ui 是一个基于 element-ui 进行二次封装的组件库，主要为自己业务封装的一些组件和对 element-ui 进行新的主题定制。

每个人都可以以框架来定制自己的组件库。

## 安装

```
npm install @rpui/bdo-element-ui -S
```

## 使用

在 main.js 文件中引入插件并注册

```
import Vue from 'vue'
import BdoUI from '@rpui/bdo-element-ui'
import '@rpui/bdo-element-ui/lib/BdoUI.css'

Vue.use(BdoUI)
```

## 特点

1. 基于 element-ui 进行的二次封装，支持 element-ui 版本升级
2. 提供以 npm 的形式安装提供全局组件
3. 支持 md 文档输出

## 浏览器兼容

与 element-ui 保持一致：现代浏览器和 IE10+

## 更新日志

### v0.0.1

2023-11-06：新增了 md 格式文档输出支持，已经对 安装、快速上手、布局、布局容器、按钮、导航菜单、对话框 等文档输出，相应的组件也继承过来了。
npm package: @rpui/vue-gantt-project
Description: Vue 2.0 Gantt Chart Project - Optimized for Performance
Author: Vue Gantt Team
Latest version: 1.0.2

# Vue Gantt Project

A high-performance Gantt chart component for Vue.js 2.x.

## Features

- 📊 Interactive Gantt chart visualization
- ⚡ High performance with virtual scrolling
- 🔄 Task dependencies support
- 📱 Responsive design
- 🎨 Customizable styles
- 🌐 Internationalization support
- 📅 Multiple time scales (day/week/month)
- 🎯 Milestone support

## Installation

```bash
npm install @rpui/vue-gantt-project
```

## Usage

### Global Registration

```javascript
import Vue from "vue";
import GanttChart from "@rpui/vue-gantt-project";
import "@rpui/vue-gantt-project/dist/style.css";

Vue.use(GanttChart);
```

### Local Registration

```javascript
import { GanttChart } from "@rpui/vue-gantt-project";
import "@rpui/vue-gantt-project/dist/style.css";

export default {
  components: {
    GanttChart,
  },
};
```

### Basic Example

```vue
<template>
  <gantt-chart
    :tasks="tasks"
    :options="options"
    @task-click="handleTaskClick"
    @dependency-click="handleDependencyClick"
  />
</template>

<script>
export default {
  data() {
    return {
      tasks: [
        {
          id: 1,
          name: "Task 1",
          start: "2024-01-01",
          end: "2024-01-05",
          progress: 60,
          dependencies: ["2"],
        },
        {
          id: 2,
          name: "Task 2",
          start: "2024-01-06",
          end: "2024-01-10",
          progress: 30,
        },
      ],
      options: {
        viewMode: "day",
        dateFormat: "YYYY-MM-DD",
        locale: "en",
        editable: true,
      },
    };
  },
  methods: {
    handleTaskClick(task) {
      console.log("Task clicked:", task);
    },
    handleDependencyClick(dependency) {
      console.log("Dependency clicked:", dependency);
    },
  },
};
</script>
```

## API Reference

### Props

| Name    | Type   | Default | Description                 |
| ------- | ------ | ------- | --------------------------- |
| tasks   | Array  | []      | Array of task objects       |
| options | Object | {}      | Chart configuration options |

### Events

| Name             | Parameters | Description                               |
| ---------------- | ---------- | ----------------------------------------- |
| task-click       | task       | Emitted when a task is clicked            |
| dependency-click | dependency | Emitted when a dependency line is clicked |
| task-update      | task       | Emitted when a task is updated            |

### Task Object Structure

```javascript
{
  id: 1,                    // Unique identifier
  name: 'Task name',        // Task name
  start: '2024-01-01',     // Start date
  end: '2024-01-05',       // End date
  progress: 60,            // Progress percentage (0-100)
  dependencies: ['2'],     // Array of dependent task IDs
  type: 'task',           // 'task' or 'milestone'
  style: {},              // Custom styles
  children: []            // Subtasks
}
```

## License

MIT
npm package: @rpxd/cli
Description: Rapid Prototyping & Design scaffold tool
Author: github.com/olmesm
Latest version: 0.1.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

> Very much in development and currently for personal use.

---

# @rpxd/cli

Rapid Prototyping & Design scaffold tool.

## Usage

```bash
npm i -D @rpxd/cli

npx rpxd <command> <feature> [...attributes]
```

## Example

Running `npx rpxd <command> <feature> [...attributes]`, rpxd will look in the root of the project for an `_rpxd/<command>` and run the templates declared in the default export.

For `example` command...

```ts
// _rpxd/example/index.ts
const templateList = ["my-output.ts"]

export default templateList
```

With template...

```ts
// _rpxd/example/my-output.ts
import { ts, toZod, caseHelpers, Template } from "@rpxd/cli/utils"

export default Template((feature, attributes) => {
	return {
		path: `./src/${caseHelpers.kebabCase(
			caseHelpers.plural(feature),
		)}/output.ts`,
		template: ts`
import { z } from "zod"

export const ${caseHelpers.pascalCase(feature)}Schema = z.object({
	${attributes.map(toZod).join(",\n	")},
})
`,
	}
})
```

Then running...

```bash
npx rpxd example todo name done:boolean
```

Will output...

```ts
// src/todos/output.ts
import { z } from "zod"

export const TodoSchema = z.object({
	name: z.coerce.string().min(1, "Name can't be blank"),
	done: z.preprocess((v) => ["on", "true", true].includes(v), z.boolean()),
})
```
npm package: @rpxl/recast-primitives
Description: <img src="https://raw.githubusercontent.com/reactivepixels/recast/main/logo.svg" alt="Recast" width="167">
Latest version: 3.1.7

<img src="https://raw.githubusercontent.com/reactivepixels/recast/main/logo.svg" alt="Recast" width="167">

# Recast Primitives
npm package: @rpxl/recast-tailwind
Description: Recast now offers a Tailwind CSS plugin for seamless integration:
Latest version: 0.2.0

## Tailwind CSS Integration

Recast now offers a Tailwind CSS plugin for seamless integration:

```bash
npm install @rpxl/recast-tailwind
```

Add the plugin to your `tailwind.config.js`:

```javascript
module.exports = {
  // ...other config
  plugins: [require("@rpxl/recast-tailwind")],
};
```

This plugin automatically generates a safelist for your Recast components and provides better integration with Tailwind CSS.
npm package: @rq/debounce
Description: Creates and returns a new debounced version of the passed function that will postpone its execution until after wait milliseconds have elapsed since the last time it was invoked
Latest version: 1.0.2


# debounce

  Useful for implementing behavior that should only happen after a repeated
  action has completed.

## Installation

    $ component install component/debounce

  Or in node:

    $ npm install debounce

## Example

```js
var debounce = require('debounce');
window.onresize = debounce(resize, 200);

function resize(e) {
  console.log('height', window.innerHeight);
  console.log('width', window.innerWidth);
}
```

To later clear the timer and cancel currently scheduled executions:
```
window.onresize.clear();
```

To force the function to execute immediately and reset the timer for
any future invocations:
```
window.onresize.force();
```

## API

### debounce(fn, wait, [ immediate || false ])

  Creates and returns a new debounced version of the passed function that
  will postpone its execution until after wait milliseconds have elapsed
  since the last time it was invoked.

  Pass `true` for the `immediate` parameter to cause debounce to trigger
  the function on the leading edge instead of the trailing edge of the wait
  interval. Useful in circumstances like preventing accidental double-clicks
  on a "submit" button from firing a second time.

  The debounced function returned has a property 'clear' that is a 
  function that will clear any scheduled future executions of your function.

  The debounced function returned has a property 'force' that is a 
  function that will immediately execute the function if execution is scheduled,
  and reset the execution timer for subsequent invocations of the debounced
  function.

## License

  MIT

  Original implementation is from [`underscore.js`](http://underscorejs.org/)
  which also has an MIT license.