open-index/open-npm huggingface dataset:
npm package: @softwares-land/react-persian-datepicker
Description: Persian calendar and date picker components for React
Author: Softwares Land
Latest version: 1.0.2

# React Persian Date Picker :calendar:

<p dir="rtl">
<strong>React Persian Date Picker</strong> مجموعه‌ای از کامپوننت‌های ReactJS مورد نیاز جهت ایجاد ورود و نمایش تاریخ هجری شمسی است. این نرم‌افزار متن‌باز در ایوند توسعه یافته‌است.
</p>


# Installation

Use npm to install the package:

```
npm @softwares-land/react-persian-datepicker --save
```

# Usage

This package offers two components, `Calendar` and `DatePicker`. The first of which is a simple calendar that you can use in whichever way you want. The second one is an actual input with an input-ish behaviour.

This package uses [moment-jalaali](https://github.com/jalaali/moment-jalaali) under the hood and all the values are basically moment objects.

Below is a basic example.

```es6
import React from "react";
import { Calendar, DatePicker } from "@softwares-land/react-persian-datepicker";

const MyComponent = () => (
  <div>
    <div>
      {/* Calendar Component */}
      <Calendar />
    </div>

    <div>
      {/* Date Picker Component */}
      <DatePicker />
    </div>
  </div>
);
npm package: @softwares-land/react-select2-wrapper
Description: React component for Select2
Author: Igor Romanov
Latest version: 1.0.0

# react-select2-wrapper

Wrapper for [Select2](https://select2.github.io/)

## Installation

```
npm install react-select2-wrapper --save
```

## Documentation

- [Guide](/guide)

## Development

### Installation

1. Install dependencies
   ```
   npm install
   ```

2. Run the development server with hot reload
   ```
   npm run start
   ```

### Coding Standard

- ESLint — [.eslintrc](./.eslintrc)

## Partners

Are you planning to use this plugin to create an awesome dashboard?\
Take a look at [Creative Tim](https://www.creative-tim.com/product/argon-dashboard-pro-react/?ref=react-select2-wrapper).
npm package: @softwaresamm/react-native-async-file-storage
Description: AsyncStorage's implementation using JSON files
Author: Camilo Rodríguez
Latest version: 0.4.0

# @softwaresamm/react-native-async-file-storage

AsyncStorage's implementation using JSON files

## Installation

```sh
npm install @softwaresamm/react-native-async-file-storage
```

## Usage

```js
import ReactNativeAsyncFileStorage from "@softwaresamm/react-native-async-file-storage";

// ...

const result = await ReactNativeAsyncFileStorage.multiply(3, 7);
```

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT
npm package: @softwaresamm/react-native-json-file-storage
Description: Simple JSON file storage
Author: Camilo Rodríguez
Latest version: 0.2.2

# react-native-json-file-storage

Simple JSON file storage compatible with React Native.

This library implements/borrows `getItem`, `setItem`, `removeItem` and `clear`
main methods from `AsyncStorage`'s implementation.

The main difference from `AsyncStorage`'s implementation is that
you can store any serializable value, not only strings.

## Usage

```js
import { RNJsonFileStorage } from 'react-native-json-file-storage'

const storage = new RNJsonFileStorage({
  name: 'root'
})

const testStorage = async () => {
  try {
    await storage.setItem('key', { name: 'John Doe' })

    const value = await storage.getItem('key') /** { name: 'John Doe' } */

    await storage.removeItem('key')

    // or
    // await storage.clear()
  } catch (error) {
    // Handle errors:
    // JSON.stringify error...
    // JSON.parse error...
    // Write/read file error...
  }
}

testStorage()
```

## TODO

- [ ] Allow users to opt-in cache file data in memory
npm package: @softwaresamm/react-native-rfid-ble
Description: Scan and read from RFID devices using BLE
Author: Camilo Rodríguez
Latest version: 0.5.0

# react-native-rfid-ble

Scan and read from RFID devices using BLE

## Installation

```sh
npm install react-native-rfid-ble
```

## Usage

```js
import RfidBle from '@softwaresamm/react-native-rfid-ble'

RfidBle.on(
  RfidBleEvent.READER_RECEIVED,
  async reader => {
    console.log('Reader scanned:', reader)

    await RfidBle.connectToReader(reader.address)

    RfidBle.on(
      RfidBleEvent.EPC_REPLIES_READ,
      epcReplies => {
        console.log('EPC replies:', epcReplies)
      }
    )
  }
)

// Auto-scan for 10 seconds (10 * 1000ms)
await RfidBle.autoScan(10000)
```

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT
npm package: @softwaresamm/react-native-usb-serial
Description: USB Serial
Author: Camilo Rodríguez
Latest version: 0.1.3

# @softwaresamm/react-native-usb-serial

USB Serial

## Installation

```sh
npm install @softwaresamm/react-native-usb-serial
```

## Usage

```js
import ReactNativeUsbSerial from '@softwaresamm/react-native-usb-serial'

// ...

const result = await ReactNativeUsbSerial.multiply(3, 7)
```

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT
npm package: @softwaresamm/samm-app-theme
Description: Samm's components collection
Author: Camilo Rodríguez
Latest version: 0.1.1

# Samm App Theme

Colección de componentes para aplicaciones SAMM

## Desarrollo

### Instalar dependencias

Para instalar las dependencias de la librería, ejecutar:

```bash
$ yarn
```

**IMPORTANTE:** Una vez terminado el proceso de instalación, la terminal arrojará un error. Esto es normal, pero debe corrregirse (ya que es un error relacionado con el `build` de la librería); para ello debemos dirigirnos al archivo `node_modules/react-native-bob-builder/lib/utils/compile.js`, y modificar la `línea 74`:

```diff
- plugins: [require.resolve('@babel/plugin-proposal-class-properties')]
+ plugins: [[require.resolve('@babel/plugin-proposal-decorators'), { legacy: true }], require.resolve('@babel/plugin-proposal-class-properties')]
```

Adicionalmente, es necesario instalar las dependencias del proyecto `ejemplo`,
que se usa cómo playground para probar los componentes de la librería:

```bash
$ cd example && yarn
```
npm package: @softwarevan/ida
Description: Ida CLI
Author: Bart Nowak
Latest version: 0.0.10

# ida CLI

A CLI for ida.

## Customizing your CLI

Check out the documentation at https://github.com/infinitered/gluegun/tree/master/docs.

## Publishing to NPM

To package your CLI up for NPM, do this:

```shell
$ npm login
$ npm whoami
$ npm lint
$ npm test
(if typescript, run `npm run build` here)
$ npm publish
```

# License

MIT - see LICENSE
npm package: @softwareventures/yarn-recursive
Description: Recursively run yarn in a folder. Fork of original with bug fixes, and performance and sanity patches.
Author: Nicolas Rigaudière
Latest version: 5.0.55

# yarn-recursive

_Recursively run yarn in a folder_

Takes your tree and checks for package.json in every folder and runs `yarn` in every folder.

This is a fork of the [original project][1], with bug fixes, and performance and sanity patches.


## Usage

```
$ yarn-recursive [options] [--] [command] [yarn-options]
```

Recursively runs yarn in the current working directory.

Arguments for `yarn-recursive` and `yarn` may be freely mixed on the command line. Any argument not handled by
`yarn-recursive` will be passed through to `yarn` as-is.

For example:

```bash
$ yarn-recursive install
```

Recursively runs `yarn install` in every subdirectory that contains a `package.json`, including the current directory.

You can also specify a `--` argument on its own to let `yarn-recursive` know that it should not attempt to process the
subsequent arguments. If there are any arguments after the `--` argument, then they will be passed through to `yarn`
as-is. This is useful in case in the future `yarn` gains options that have the same name as options handled by
`yarn-recursive`. In this way you can force `yarn-recursive` to pass through the option.

For example:

```
$ yarn-recursive --skip-root -- install --include-hidden
```

Recursively runs `yarn install --include-hidden` in every subdirectory that contains a `package.json`, excluding the
current directory. The `include-hidden` option is passed through to `yarn` even though it would normally be handled by
`yarn-recursive`. (But note that `yarn` doesn't have an option called `--include-hidden`, so this will fail.)


## Skip root

If you want to skip the root directory of your project, add the `--skip-root` option:

```
$ yarn-recursive --skip-root test
```

Runs `yarn test` in every subdirectory that contains a `package.json`, excluding the current directory.

This is useful if, for example, you want to run yarn-recursive from a script in your root
package.json, which would otherwise cause infinite recursion.


## Hidden Directories

By default, yarn-recursive will not search inside hidden directories (directories with names that
start with a dot, for example `.git`).

If you want to include hidden directories in the search, specify the `--include-hidden` option, for
example:

```
$ yarn-recursive --include-hidden
```


## Concurrency

By default, yarn-recursive will run yarn for each project sequentially.

To run yarn for all projects concurrently, specify the `--concurrent` option, for example:

```
$ yarn-recursive --concurrent start
```

This is particularly useful for commands like `yarn start` which may not exit until the user stops them.

This feature is not recommended for general build tasks such as `yarn install`, since output from each concurrent
process will be interleaved in the console and likely be difficult to read.

This feature is experimental and will be improved in future releases.


  [1]: https://github.com/nrigaudiere/yarn-recursive
npm package: @softwarexperts/content-editable
Description: A React component that allows you to edit the content of a div element with the contentEditable attribute.
Author: Software Experts
Latest version: 1.0.6

# Content Editable

## Installation
```
npm i @softwarexperts/content-editor
```

## Usage
The library exposes a Provider that will store the shared state between different Text components and the Text component itself.

The first thing to do is to add the Provider in the root of the application:
```tsx
import { ContentProvider } from '@softwarexperts/content-editor'

function MyApp() {
  return (
    <ContentProvider
      trustedDomains={["https://your-editor-domain.com"]}
    >
      <MyComponent />
    </ContentProvider>
  )
}
```
Notice that we have to pass the trusted domains to the Provider. Trusted domains are those that will be allowed to send messages to the website in order to serialize the state.

Then we can use the Text component in children components:
```tsx
import { Text } from '@softwarexperts/content-editor'

function MyComponent() {
  return (
    <div>
      <Text
        id="my-text"
        placeholder="Write something..."
        className="my-text"
        style={{
          width: "100%",
          height: "100px",
          border: "1px solid black",
          padding: "10px",
          boxSizing: "border-box",
        }}
      />
    </div>
  )
}
```
npm package: @softwarity/projects
Description: A menu button Web Component built from Markdown with hierarchical navigation
Author: Softwarity
Latest version: 1.0.16

# @softwarity/projects

A menu button Web Component with cascading submenus, built from Markdown at build time.

## Installation

```bash
npm install @softwarity/projects
```

## Usage

```html
<script type="module">
  import '@softwarity/projects';
</script>

<softwarity-projects></softwarity-projects>
```

Or via CDN:

```html
<script type="module" src="https://unpkg.com/@softwarity/projects"></script>

<softwarity-projects></softwarity-projects>
```

## Configuration

Create a `PROJECTS.md` file at the root of your project:

```markdown
# Menu Title

## Section 1
- [Link 1](https://example.com/1)
- [Link 2](https://example.com/2)

---

## Section 2
- [Link 3](https://example.com/3)

### Subsection
- [Link 4](https://example.com/4)
```

### Markdown syntax

| Syntax | Description |
|--------|-------------|
| `# Title` | Button label |
| `## Section` | Submenu with cascading content |
| `### Subsection` | Nested submenu inside a section |
| `- [text](url)` | Link item |
| `---` | Separator (between sections or inside subsections) |

## Features

- Cascading submenus on hover
- Auto-detects position and opens left/right accordingly
- Supports `color-scheme: light dark`
- Material Symbols icons (loaded automatically)
- Menu data embedded at build time (no runtime fetch)

## Material Symbols

The component uses these icons from [Material Symbols](https://fonts.google.com/icons):

- `expand_more` - Button dropdown indicator
- `chevron_right` - Submenu indicator
- `open_in_new` - External link indicator

## License

MIT
npm package: @softwort/react-3d-cube-v2
Description: cube app using react & react-motion.
Author: pjb0811
Latest version: 1.0.4

# react-3d-cube

> cube app using react &amp; react-motion.

[![NPM](https://img.shields.io/npm/v/react-3d-cube.svg)](https://www.npmjs.com/package/react-3d-cube) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

This package is included in [react-motion-components](https://github.com/pjb0811/react-motion-components).

## Install

```bash
npm install --save react-3d-cube
```

## Usage

[demo](https://codesandbox.io/s/ojvpllm87q)

```tsx
import * as React from 'react';

import Cube from 'react-3d-cube';

class Example extends React.Component {
  render() {
    return (
      <div>
        <h1>react-3d-cube</h1>
        <h2>no children</h2>
        <div
          style={{
            width: 300,
            height: 300
          }}
        >
          <Cube size={300} index="front" />
        </div>
        <h2>set children</h2>
        <div
          style={{
            width: 300,
            height: 300
          }}
        >
          <Cube size={300} index="front">
            <div>front</div>
            <div>right</div>
            <div>back</div>
            <div>left</div>
            <div>top</div>
            <div>bottom</div>
          </Cube>
        </div>
      </div>
    );
  }
}
```

## License

MIT © [pjb0811](https://github.com/pjb0811)
npm package: @sofunny/openapi
Description: 根据 [OpenApi3](https://swagger.io/blog/news/whats-new-in-openapi-3-0/) 文档生成 request 请求代码。
Author: noname
Latest version: 1.0.10

## 介绍

根据 [OpenApi3](https://swagger.io/blog/news/whats-new-in-openapi-3-0/) 文档生成 request 请求代码。

## 使用
```node
npm i --save-dev @sofunny/openapi
```
在项目根目录新建 ```openapi.config.js```
```js
const { generateService } = require('@sofunny/openapi')

generateService({
  schemaPath: 'http://petstore.swagger.io/v2/swagger.json',
  serversPath: './servers',
})

```
在 ```package.json``` 的 ```script``` 中添加 api: ```"openapi": "node openapi.config",```

生成api
```node
npm run openapi
```
## 参数
|  属性   | 必填  | 备注 | 类型 |
|  ----  | ----  |  ----  |  ----  |
| requestLibPath  | 否 | 自定义请求方法路径 | string |
| requestImportStatement  | 否 | 自定义请求方法表达式 | string |
| apiPrefix  | 否 | api 的前缀 | string |
| serversPath  | 否 | 生成的文件夹的路径 | string |
| schemaPath  | 否 | openAPI 3.0 的地址 | string |
| projectName  | 否 | 项目名称 | string |
| namespace  | 否 | 命名空间名称 | string |
| mockFolder  | 否 | mock目录 | string |
| interfacePrefix | 否 ｜ interface 是否加上模块前缀 ｜ boolean
npm package: @sofuxro/sanitize-url
Description: A url sanitizer
Author: Claudiu Limban
Latest version: 1.0.3

<p align="center">
<img src="https://github.com/sofuxro/sanitize-url/raw/main/assets/logo.jpg" alt="Faker" width="200" align="center" title="Sanitize your url inputs">
</p>

<br />

<p align="center">
Sanitize your url inputs
</p>
<br />


## Installation

```sh
npm install -S @sofuxro/sanitize-url
```

## Usage

```js
import { sanitizeUrl } from '@sofuxro/sanitize-url'

sanitizeUrl("https://example.com"); // 'https://example.com'
sanitizeUrl("http://example.com"); // 'http://example.com'
sanitizeUrl("www.example.com"); // 'www.example.com'
sanitizeUrl("mailto:hello@example.com"); // 'mailto:hello@example.com'
sanitizeUrl(
  "&#104;&#116;&#116;&#112;&#115;&#0000058//&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;"
); // https://example.com

sanitizeUrl("javascript:alert(document.domain)"); // 'about:blank'
sanitizeUrl("jAvasCrIPT:alert(document.domain)"); // 'about:blank'
sanitizeUrl(decodeURIComponent("JaVaScRiP%0at:alert(document.domain)")); // 'about:blank'
// HTML encoded javascript:alert('XSS')
sanitizeUrl(
  "&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0000114&#0000105&#0000112&#0000116&#0000058&#0000097&#0000108&#0000101&#0000114&#0000116&#0000040&#0000039&#0000088&#0000083&#0000083&#0000039&#0000041"
); // 'about:blank'
```

<details>
<summary>Usage commonJs - require (legacy)</summary>

```js
const sanitizeUrl = require("@braintree/sanitize-url").sanitizeUrl
```
</details>

## Testing

This library uses [Vitest](https://vitest.dev/). All testing dependencies
will be installed upon `npm install` and the test suite can be executed with
`npm test`. Running the test suite will also run lint checks upon exiting.

    npm test

To generate a coverage report, use `npm run coverage`.