open-index/open-npm huggingface dataset:
npm package: @idstory-idm/ui
Description: UI components for IdStory IdM
Author: IdStory
Latest version: 0.0.7

[![NPM Version](https://img.shields.io/npm/v/%40idstory-idm%2Fui?style=for-the-badge&logo=npm&color=blue&link=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2F%40idstory-idm%2Fui)](https://www.npmjs.com/package/@idstory-idm/ui)
[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/bcvsolutions/idstory-idm/ci.yml?style=for-the-badge&label=CI)](https://github.com/bcvsolutions/idstory-idm/actions/workflows/ci.yml)

# @idstory-idm/ui

## Install

npm:

```shell
npm i @idstory-idm/ui
```

Yarn:

```shell
yarn add @idstory-idm/ui
```

## Use

```typescript jsx
import React from 'react'
import {} from '@idstory-idm/ui'
```
npm package: @idsync/config
Description: Configuration utility
Author: Perry Mitchell
Latest version: 0.0.2

# Config
Configuration utility

## Installation
Run `npm install @idsync/config --save` to install and save the library.

## Usage
Configuring idsync entities is easy:

```javascript
const { Archive } = require("idsync");
const { configureIdsync } = require("@idsync/config");

const archive = Archive.createWithDefaults();
const config = configureIdsync(archive);
config.set("test.value", 123);
config.apply();
```

Use the `configureIdsync(entity)` method to configure instances, and use the `config#apply()` method to apply the configuration (write it to the instance). Idsync configurations are stored using attribute values.

Objects are written in a nested manner, whilst arrays are written directly. This means that objects can be composed and merged (especially during merge conflicts), but arrays are overwritten (including nested objects). It is therefore advised to keep configurations simple: Use nestedness sparingly and expect that arrays will never be merged.
npm package: @idsync/dropbox-client
Description: Dropbox client library
Author: Perry Mitchell
Latest version: 0.0.2

# Dropbox Client
> Dropbox client library for Idsync

## Installation

Simply run `npm install @idsync/dropbox-client --save` to install.

## Usage

Use the `createClient` method to create a client interface:

```javascript
const { createClient } = require("@idsync/dropbox-client");

const client = createClient("my-token");
```

You can then use the `client` adapter to make requests like for directory contents:

```javascript
client
    .getDirectoryContents("/Documents")
    .then(contents => {
        // [ {
        //     name: "My directory",
        //     path: "/Documents/My directory",
        //     type: "directory"
        // }, {
        //     name: "results.pdf",
        //     path: "/Documents/results.pdf",
        //     type: "file"
        // } ]
    });
```

You can also read and write files using `getFileContents` and `putFileContents`, respectively. Check out the [API documentation](API.md) for more information.

### Fs

An `fs`-like interface is also available:

```javascript
const { createClient, createFsInterface } = require("@idsync/dropbox-client");

const client = createClient("my-token");
const dfs = createFsInterface(client);

dfs.readdir("/photos", (err, items) => {
    // array of file names
});
```

Read the [fs API documentation](API.md#DropboxClientFsAdapter) for more information on the available methods.
npm package: @idsync/google-oauth2-client
Description: Google OAuth2 authentication client
Author: Perry Mitchell
Latest version: 0.0.3

# Google OAuth2 Client
> Minimal compatibility-first Google OAuth2 client implementation

## Usage

Install by running `npm install @idsync/google-oauth2-client --save`.

Import the `OAuth2Client` class to get started, similarly to the original implemenation:

```javascript
import { OAuth2Client } from "@idsync/google-oauth2-client";

const client = new OAuth2Client(
    "my-client-id",
    "my-client-secret",
    "http://redirect.uri"
);

const authURL = client.generateAuthUrl(/* ... */);
```

### Implemented features

The following methods are implemented:

| Method                | Example                           | Description                               |
|-----------------------|-----------------------------------|-------------------------------------------|
| `generateAuthUrl`     | `generateAuthUrl({ access_type: "offline", prompt: "consent", scope: "profile" })` | Generate an authorisation URL |
| `exchangeAuthCodeForToken` | `await exchangeAuthCodeForToken(authCode)` | Get the tokens for an authorisation code |
| `refreshAccessToken`  | `await refreshAccessToken(refreshToken`)| Refresh the tokens                  |
npm package: @idsync/googledrive-client
Description: Basic client for Google Drive
Latest version: 0.0.2

# Google Drive Client
> Client for making basic Google Drive requests

## Usage

Install the client by running the following:

```shell
npm install @idsync/googledrive-client
```

The library exports a factory which can be used to create client adapters. The factory takes a Google Drive OAuth token.

```javascript
const { createClient } = require("@idsync/googledrive-client");

const client = createClient(myToken);

client.getDirectoryContents({ tree: true }).then(tree => {
    // ...
})

// Or return a flat structure with all files and directories:
client.getDirectoryContents();
```

Make sure to check out the [API documentation](API.md) for more information.

### Token expiration or invalid credentials

This library uses [`VError`](https://github.com/joyent/node-verror) to pass extra error information around, such as when authentication fails while making a request. This makes it easier for downstream libraries to handle such authorisation failures, perhaps by requesting a new token.

If an error is thrown, use `VError` to extract the information from it to test if an authorisation failure has occurred:

```javascript
client.getDirectoryContents().catch(err => {
    const { authFailure = false } = VError.info(err);
    // handle authFailure === true
});
```

### Getting directory contents using a path

This library supports fetching directory contents by using a path, for a more traditional field. This method is **not recommended** for all use cases as it doesn't support items in the same level with the _same name_. Consider it experimental.

```javascript
const { createClient } = require("@idsync/googledrive-client");

const client = createClient(myToken);

client.mapDirectoryContents("/").then(arrayOfFiles => {
    // ...
})
```

**NB:** Items are placed in the root if (and only if) their parents are not resolvable. They may have parent IDs specified in the result - if a parent can be found for a file, it is in that items sub-directory, whereas if the parent cannot be found it is in the root.
npm package: @idsync/locust
Description: Locust Login Toolkit
Latest version: 0.0.3

# Locust

## Installation

Run `npm install @idsync/locust --save-dev` to install as a dev dependency in a Node JS project.

_When requiring this library directly via `@idsync/locust`, the minified version provided._

## Usage

Locust is a UMD library, so it can be used in a variety of places (such as in the browser, CommonJS2 and AMD systems). You can either import it:

```javascript
const Locust = require("@idsync/locust");
```

Or embed it in a webpage and access it via `window.Locust`.

Locust exports a couple of useful methods, but the one which provides the most simple approach to logging in is `getLoginTarget`:

```javascript
const { getLoginTarget } = Locust;

getLoginTarget().login("myUsername", "myPassword");
```

The example above enters the username and password in the **best** form found on the page and then proceeds to submit that form (logging the user in).

_To find all forms on a page, use the `getLoginTargets` method instead, which returns an array of login targets. You can then sort through these to find all the different login forms that may exist._

In the case that you don't want to automatically log in, but still enter the details, you can use the following example:

```javascript
getLoginTarget().enterDetails("myUsername", "myPassword");
```

_**Note** that `getLoginTarget` may return `null` if no form is found, so you should check for this eventuality._

You can also read the [API documentation](https://github.com/idsync/locust/blob/master/API.md) if you're into that kind of thing.

### Events

Locust login targets will emit events when certain things happen. To listen for changes to the values of usernames and passwords on forms simply attach event listeners:

```javascript
const target = getLoginTarget();
target.on("valueChanged", info => {
    if (info.type === "username") {
        console.log("New username:", info.value);
    }
});
// `type` can be "username" or "password"
```

> Login targets subclass [`EventEmitter`](https://github.com/primus/eventemitter3), so you can use all other methods provided by their implementation.

You can also listen to form submission:

```javascript
const target = getLoginTarget();
target.once("formSubmitted", ({ source }) => {
    // `source` will either be "submitButton" or "form"
});
```

## Development

You can run `npm run dev` to generate and watch-files to develop Locust. To create a script that outputs dev information, run `npm run dev:inject` and inject the provided script snippet into pages to test Locust. It won't work all of the time if the idsync browser extension is running, nor will it work in consecutive executions.

To run on HTTPS pages consider using a Chrome extension like [Disable Content Security Policy](https://chrome.google.com/webstore/detail/disable-content-security/ieelmcmcagommplceebfedjlakkhpden?hl=en), which will allow injection of local scripts.
npm package: @idsync/ui
Description: Idsync UI Components in React
Latest version: 0.0.8


# npm install
# npm run build
Copy dist folder under project directory and paste it persona_ext project -> node_modules/idsync or persona/


## Preview Components

```shell
npm install
npm run storybook
```

Then head to [http://localhost:6006/](http://localhost:6006/).

## Use Components

```shell
yarn add @idsync/ui
# or
npm install @idsync/ui --save
```

```javascript
import { Button } from '@idsync/ui';

const MyComponent = () => (
  <Button danger>Delete</Button>
);
```

## Available Components

### Password generator
The password generator comes bundled in a popover, which can be used like so:

```javascript
import { Generator } from "@idsync/ui";

const Comp = () => (
  <Generator
    onGenerate={handleGenerated}
    isOpen={isOpen}
  >
    <div>
      <Button onClick={toggleGenerator}>
        Generate Password
      </Button>
    </div>
  </Generator>
);
```

If you just require the _body_ of the generator, you can import `GeneratorUserInterface` instead.

### Password Strength Indicator
The indicator can be used like so:

```javascript
import { Meter } from "@idsync/ui";

const Comp = () => (
  <Meter input={inputValue} />
);
```

### Button
Available as `Button`.

TBA.

### Input
Available as `Input`.

TBA.

### Center
Available as `Center`.

TBA.

### SmallType
Available as `SmallType`.

TBA.

## Testing
Run `npm t` to execute the tests.

To update component snapshots run `npm run test:updateSnapshots`.
npm package: @idui/react-avatar
Description: React Avatar Component
Author: kaprisa57@gmail.com
Latest version: 1.0.2

# Avatar React Component

[![NPM](https://img.shields.io/npm/v/@idui/react-avatar.svg)](https://www.npmjs.com/package/@idui/react-avatar/)
[![Size](https://img.shields.io/bundlephobia/min/@idui/react-avatar)](https://www.npmjs.com/package/@idui/react-avatar)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
[![LICENSE](https://img.shields.io/github/license/id-ui/react-avatar)](https://github.com/id-ui/react-avatar/blob/main/LICENSE)

- [Docs](https://id-ui.github.io/react-avatar/?path=/docs/avatar--playground)
- [Playground](https://id-ui.github.io/react-avatar/?path=/story/avatar--playground)

## Install

```bash
npm install --save @idui/react-avatar
```

```bash
yarn add @idui/react-avatar
```

### See props in [Docs](https://id-ui.github.io/react-avatar/?path=/docs/avatar--playground)

### Basic Example

```jsx
import React from 'react'
import Avatar from '@idui/react-avatar'

function Example({ user }) {
  return <Avatar 
      src={user.avatar} 
      defaultSrc="default.png"
  />
}
```

### With Initials

```jsx
import React from 'react'
import Avatar from '@idui/react-avatar'

function Example({ user }) {
  return <Avatar 
      src={user.avatar}
      initials={`${user.firstName[0]}${user.lastName[0]}`}
      color="orangered"
  />
}
```

### See more details in [storybook](https://id-ui.github.io/react-avatar/?path=/docs/avatar--playground)

## License

MIT © [kaprisa57@gmail.com](https://github.com/id-ui)
npm package: @idui/react-badge
Description: React Badge Component
Author: kaprisa57@gmail.com
Latest version: 1.0.0

# Badge React Component

[![NPM](https://img.shields.io/npm/v/@idui/react-badge.svg)](https://www.npmjs.com/package/@idui/react-badge/)
[![Size](https://img.shields.io/bundlephobia/min/@idui/react-badge)](https://www.npmjs.com/package/@idui/react-badge)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
[![LICENSE](https://img.shields.io/github/license/id-ui/react-badge)](https://github.com/id-ui/react-badge/blob/main/LICENSE)

- [Docs](https://id-ui.github.io/react-badge/?path=/docs/badge--playground)
- [Playground](https://id-ui.github.io/react-badge/?path=/story/badge--playground)

## Install

```bash
npm install --save @idui/react-badge
```

```bash
yarn add @idui/react-badge
```


### See props in [Docs](https://id-ui.github.io/react-badge/?path=/docs/badge--playground)


### Basic Example

```jsx
import React from 'react'
import Badge from '@idui/react-badge'

function Example() {
  return <BadgeWrapper>
      <Badge 
          color="orangered" 
          size="1.5rem"
      />
  </BadgeWrapper>
}

const BadgeWrapper = styled.div`
  position: relative;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background-color: skyblue;
`;
```

### See more details in [storybook](https://id-ui.github.io/react-badge/?path=/docs/badge--playground)

## License

MIT © [kaprisa57@gmail.com](https://github.com/id-ui)
npm package: @idui/react-icon
Description: React Icon Component
Author: kaprisa57@gmail.com
Latest version: 1.0.5

# Icon React Component

[![NPM](https://img.shields.io/npm/v/@idui/react-icon.svg)](https://www.npmjs.com/package/@idui/react-icon/)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
[![LICENSE](https://img.shields.io/github/license/id-ui/react-icon)](https://github.com/id-ui/react-icon/blob/main/LICENSE)

- [Docs](https://id-ui.github.io/react-icon/?path=/docs/icon--playground)
- [Playground](https://id-ui.github.io/react-icon/?path=/story/icon--playground)

## Install

```bash
npm install --save @idui/react-icon
```

```bash
yarn add @idui/react-icon
```

### See props in [Docs](https://id-ui.github.io/react-icon/?path=/docs/icon--playground)

### Configuration

- you can call configureIcons as many times as you want, icons will be merged
- color, which you want to specify in props should be `currentColor` (e.g fill="currentColor", stroke="currentColor")

```jsx
import React, { Fragment } from 'react';
import { configureIcons } from "@idui/react-icon";

configureIcons({
    // [name]: {
    //     viewBox: svg viewBox,
    //     content: <Fragment>
    //         // svg inner content
    //     </Fragment>
    // }

    search: {
        viewBox: '0 0 19 20',
        content: <Fragment>
            <path d="M12 12.5L18.0001 18.364" stroke="currentColor" strokeWidth="2" strokeLinecap="round"/>
            <path d="M13.7025 7.5C13.7025 11.1088 10.8401 14 7.35124 14C3.86234 14 1 11.1088 1 7.5C1 3.89117 3.86234 1 7.35124 1C10.8401 1 13.7025 3.89117 13.7025 7.5Z" stroke="currentColor" strokeWidth="2" strokeLinecap="round"/>
        </Fragment>
    },
    add: {
        viewBox: '0 0 12 12',
        content: <Fragment>
            <rect x="5" width="2" height="12" rx="1" fill="currentColor"/>
            <rect y="7" width="2" height="12" rx="1" transform="rotate(-90 0 7)" fill="currentColor"/>
        </Fragment>
    },
})
```

### Usage Example

```jsx
import React from 'react'
import Icon from '@idui/react-icon'

function Example() {
  return <Icon 
      name="add"
      color="gray" 
      hoverColor="black"
      size="2rem"
      cursor="pointer"
  />
}
```

### See more details in [storybook](https://id-ui.github.io/react-icon/?path=/docs/icon--playground)

## License

MIT © [kaprisa57@gmail.com](https://github.com/id-ui)
npm package: @idui/react-modal
Description: Modal React Component
Author: kaprisa57@gmail.com
Latest version: 1.0.4

# Modal React Component

[![NPM](https://img.shields.io/npm/v/@idui/react-modal.svg)](https://www.npmjs.com/package/@idui/react-modal/)
[![Size](https://img.shields.io/bundlephobia/min/@idui/react-modal)](https://www.npmjs.com/package/@idui/react-modal)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
[![Coverage Status](https://coveralls.io/repos/github/id-ui/react-modal/badge.svg?branch=main)](https://coveralls.io/github/id-ui/react-modal?branch=main)
[![LICENSE](https://img.shields.io/github/license/id-ui/react-modal)](https://github.com/id-ui/react-modal/blob/main/LICENSE)

## Install

```bash
npm install --save @idui/react-modal
```

```bash
yarn add @idui/react-modal
```

## Advantages
- Fully and easily customizable.
- Uses styled-components.
- Provides useModal hook, which returns openModal promise.
- Supports children and content functions and provides them with some useful props.

## Basic Example

```jsx
import React from 'react'

import Modal, { ModalsRoot } from '@idui/react-modal'

// Define where modals should render
function App() {
    return (
        <div>
            <Example />
            <ModalsRoot />
        </div>
    )       
}

// Component with modal
function Example() {
  return <Modal>
    <button>Open</button>
  </Modal>
}
```

## useModal hook

> If you want to use useModal hook wrap your components in ModalsProvider

```js
const { openModal } = useModal();

const promise = openModal(content, modalProps)
```

Arguments:
- content - Modal content
- modalProps - Modal props

Returns: Promise

```jsx
import React from 'react'

import { ModalsProvider, useModal } from '@idui/react-modal'

// wrap your components in ModalsProvider
function App() {
    return (
        <ModalsProvider>
            <Example />
        </ModalsProvider>
    )       
}

// Component with modal
function Example() {
    const { openModal } = useModal();
  
    const handleOpen = useCallback(() => {
      openModal(({ close }) => (
        <button onClick={close}>Close</button>
      )).then(() => {
        alert('Modal closed');
      });
    }, [openModal]);
    
    return (
      <button onClick={handleOpen}>Open modal</button>
    );
}
```

### See more details in [storybook](https://id-ui.github.io/react-modal/?path=/docs/modal--playground)

## License

MIT © [kaprisa57@gmail.com](https://github.com/id-ui)
npm package: @idui/react-progress
Description: React Progress Component
Author: kaprisa57@gmail.com
Latest version: 1.0.1

# Progress React Component

[![NPM](https://img.shields.io/npm/v/@idui/react-progress.svg)](https://www.npmjs.com/package/@idui/react-progress/)
[![Size](https://img.shields.io/bundlephobia/min/@idui/react-progress)](https://www.npmjs.com/package/@idui/react-progress)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
[![LICENSE](https://img.shields.io/github/license/id-ui/react-progress)](https://github.com/id-ui/react-progress/blob/main/LICENSE)

## Install

```bash
npm install --save @idui/react-progress
```

```bash
yarn add @idui/react-progress
```

### Circular Progress

- [Docs](https://id-ui.github.io/react-progress/?path=/docs/circularprogress--playground)
- [Playground](https://id-ui.github.io/react-progress/?path=/story/circularprogress--playground)
- you can configure custom icons for circular progress (install @idui/react-icon and configureIcons)
- "progressCircle", "longLinesProgressCircle" and "shortLinesProgressCircle" are available by default

```jsx
import React from 'react'
import { CircularProgress } from '@idui/react-progress'

function Example() {
  return <CircularProgress 
      name="longLinesProgressCircle" // default progressCircle
      color="orangered" // default #9552D4
      size="3.5rem"  // default 3rem
      duration={1000} // default 1500
  />
}
```

### Linear Progress

- [Docs](https://id-ui.github.io/react-progress/?path=/docs/linearprogress--playground)
- [Playground](https://id-ui.github.io/react-progress/?path=/story/linearprogress--playground)

```jsx
import React from 'react'
import { LinearProgress } from '@idui/react-progress'

function Example() {
  return <LinearProgress
      color="orangered" // default #9552D4
      duration={1000} // default 1500
      length="50rem" // default 100%
      orientation="vertical" // default "horizontal"
      size="1rem" // default 0.5rem
  />
}
```

## License

MIT © [kaprisa57@gmail.com](https://github.com/id-ui)
npm package: @idui/react-sheet
Description: React Sheet Component
Author: kaprisa57@gmail.com
Latest version: 1.0.1

# Sheet React Component

[![NPM](https://img.shields.io/npm/v/@idui/react-sheet.svg)](https://www.npmjs.com/package/@idui/react-sheet/)
[![Size](https://img.shields.io/bundlephobia/min/@idui/react-sheet)](https://www.npmjs.com/package/@idui/react-sheet)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
[![Coverage Status](https://coveralls.io/repos/github/id-ui/react-sheet/badge.svg?branch=main)](https://coveralls.io/github/id-ui/react-sheet?branch=main)
[![LICENSE](https://img.shields.io/github/license/id-ui/react-sheet)](https://github.com/id-ui/react-sheet/blob/main/LICENSE)

- [Docs](https://id-ui.github.io/react-sheet/?path=/docs/sheet--playground)
- [Playground](https://id-ui.github.io/react-sheet/?path=/story/sheet--playground)

## Install

```bash
npm install --save @idui/react-sheet
```

```bash
yarn add @idui/react-sheet
```

### Advantages
- can be resizable
- uses styled-components
- has 4 different placements (bottom, top, right, left)
- can be controlled by children function
- can be closed by content function


### See props in [Docs](https://id-ui.github.io/react-sheet/?path=/docs/sheet--playground)


### Basic Example

```jsx
import React from 'react'
import Sheet from '@idui/react-sheet'

function Example() {
    return <Sheet 
        content={<span>Sheet Content</span>}
    >
        <button>Open Sheet</button>
    </Sheet>
}
```

### Resizable Sheet

```jsx
import React from 'react'
import Sheet from '@idui/react-sheet'

function Example() {
    return <Sheet 
        content={<span>Sheet Content</span>}
        resizable
        onResize={(size) => console.log(`New sheet size = ${size}px`)}
    >
        <button>Open Sheet</button>
    </Sheet>
}
```

### Controlled isOpen state

```jsx
import React from 'react'
import Sheet from '@idui/react-sheet'

function Example() {
    return <Sheet 
        content={({close}) => <button onClick={close}>close</button>}
        resizable
    >
        {({open, close, toggle}) => <div>
            <button onClick={open}>open</button>
            <button onClick={close}>close</button>
            <button onClick={toggle}>toggle</button>
        </div>}
    </Sheet>
}
```

### See more details in [storybook](https://id-ui.github.io/react-sheet/?path=/docs/sheet--playground)

## License

MIT © [kaprisa57@gmail.com](https://github.com/id-ui)
npm package: @idui/react-text-area
Description: React TextArea Component
Author: kaprisa57@gmail.com
Latest version: 1.1.1

# TextArea React Component

[![NPM](https://img.shields.io/npm/v/@idui/react-text-area.svg)](https://www.npmjs.com/package/@idui/react-text-area/)
[![Size](https://img.shields.io/bundlephobia/min/@idui/react-text-area)](https://www.npmjs.com/package/@idui/react-text-area)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
[![Coverage Status](https://coveralls.io/repos/github/id-ui/react-text-area/badge.svg?branch=main)](https://coveralls.io/github/id-ui/react-text-area?branch=main)
[![LICENSE](https://img.shields.io/github/license/id-ui/react-text-area)](https://github.com/id-ui/react-text-area/blob/main/LICENSE)

- [Docs](https://id-ui.github.io/react-text-area/?path=/docs/textArea--playground)
- [Playground](https://id-ui.github.io/react-text-area/?path=/story/textArea--playground)

## Install

```bash
npm install --save @idui/react-text-area
```

```bash
yarn add @idui/react-text-area
```

### See props in [Docs](https://id-ui.github.io/react-text-area/?path=/docs/textArea--playground)


### Basic Example

```jsx
import React, { useState } from 'react'
import TextArea from '@idui/react-text-area'

function Example() {
    const [value, setValue] = useState(providedValue);

    return <TextArea value={value} onChange={setValue} />;
}
```

### See more details in [storybook](https://id-ui.github.io/react-text-area/?path=/docs/textArea--playground)

## License

MIT © [kaprisa57@gmail.com](https://github.com/id-ui)
npm package: @idutta2007/buildings
Description: A set of modern buildings
Author: Indra K Dutta
Latest version: 1.0.5

## About
This is a kheljs asset pack for a set of buildings. These assets were taken from

https://quaternius.com/

and were packaged to create an asset pack for kheljs framework. See the documentation for asset packs
in [docs.kheljs.com](http://docs.kheljs.com) to learn how to use asset packs.

## Installation
kheljs asset-pack install @idutta2007/buildings

or 

npm install  @idutta2007/buildings  
kheljs asset-pack sync @idutta2007/buildings


## Here are the names of the assets

- Building1_Large
- Building1_Small
- Building2_Large
- Building2_Small
- Building3_Big
- Building1_Small
- Building4
- House1
- House2
npm package: @idutta2007/gun-sounds
Description: Some generic gun sounds for rifle and pistol
Author: Indra K Dutta
Latest version: 1.0.4

## About
This is a kheljs asset pack for a set of gun sounds. These assets were taken from

https://www.fesliyanstudios.com/royalty-free-sound-effects-download

and were packaged to create an asset pack for kheljs framework. See the documentation for asset packs
in [docs.kheljs.com](http://docs.kheljs.com) to learn how to use asset packs.

## Installation
kheljs asset-pack install @idutta2007/gun-sounds

or 

- npm install  @idutta2007/gun-sounds
- kheljs asset-pack sync @idutta2007/gun-sounds

## Here are the names of the assets

Gun Sound names for rifles:
- rifle_far_distance
- rifle_indoor_large_room
- rifle_indoor_med_room
- rifle_indoor_small_room
- rifle_raw_outdoor_close
- rifle_raw_outdoor_far
- rifle_reload_close
- rifle_reload_med_distance

Gun sound names for pistols:
- pistol_far_distance
- pistol_indoor_large_room
- pistol_indoor_med_room
- pistol_indoor_small_room
- pistol_raw_outdoor_close
- pistol_raw_outdoor_far
npm package: @idutta2007/guns
Description: Some gun assets for kheljs framework
Author: Indra K Dutta
Latest version: 1.0.3

## About
This is a kheljs asset pack for a set of guns. These assets were taken from

https://quaternius.com/

and were packaged to create an asset pack for kheljs framework. See the documentation for asset packs
in [docs.kheljs.com](http://docs.kheljs.com) to learn how to use asset packs.

## Installation
kheljs asset-pack install @idutta2007/guns

or 

npm install  @idutta2007/guns  
kheljs asset-pack sync @idutta2007/guns

## Here are the names of the assets

Meshes Guns and Rifles:
- AssaultRifle_1, AssaultRifle_2, AssaultRifle_3, AssaultRifle_4, AssaultRifle_5
- AssaultRifle2_1, AssaultRifle2_2, AssaultRifle2_3, AssaultRifle2_4
- Bullpup_1, Bullpup_2, Bullpup_3
- Pistol_1, Pistol_2, Pistol_3, Pistol_4, Pistol_5, Pistol_6
- Revolver_1, Revolver_2, Revolver_3, Revolver_4, Revolver_5
- Shotgun_1, Shotgun_2, Shotgun_3, Shotgun_4
- Shotgun_SawedOff
- Shotgun_ShortStock
- SniperRifle_1, SniperRifle_2, SniperRifle_3, SniperRifle_4, SniperRifle_5, SniperRifle_6
- SubmachineGun_1, SubmachineGun_2, SubmachineGun_3, SubmachineGun_4, SubmachineGun_5

Meshes of Accessories:
- Bayonet, Bayonet_2
- Bipod
- Flashlight
- Grip
- Scope_1, SScope_2, Scope_3
- Silencer_1, Silencer_2, Silencer_3
- Silencer_Long, Silencer_Short
- Stock
- Tripod

Generic pictures of guns and rifles:
- pic_AssaultRifle
- pic_Bullpup
- pic_Pistol
- pic_Revolver
- pic_Shotgun
- pic_SniperRifle
- pic_SubmachineGun
npm package: @idutta2007/trees
Description: Some tree assets for kheljs
Author: Indra Dutta
Latest version: 1.0.1

## About
This is a kheljs asset pack for a set of trees. These assets were taken from

https://quaternius.com/

and were packaged to create an asset pack for kheljs framework. See the documentation for asset packs
in [docs.kheljs.com](http://docs.kheljs.com) to learn how to use asset packs.

## Installation
kheljs asset-pack install @idutta2007/trees

or 

npm install  @idutta2007/trees  
kheljs asset-pack sync @idutta2007/trees

## Here are the names of the assets

- Birch_1, Birch_2  ... Birch10
- DeadBirch_1, DeadBirch_2 ... DeadBirch_10
- DeadTree_1, DeadTree_2 ... DeadTree_10
- Pine_1, Pine_2 ... Pine_5
- Tree_1, Tree_2 ... Tree_10
npm package: @iduty/modules
Description: dev: npm i --save-dev @types/crypto-js@4.1.1 npm i --save-dev @types/react@18.0.35 npm i --save-dev @types/react-native@0.71.5 npm i --save-dev @types/react-native-vector-icons@6.4.13
Latest version: 1.1.23

dev:
npm i --save-dev @types/crypto-js@4.1.1
npm i --save-dev @types/react@18.0.35
npm i --save-dev @types/react-native@0.71.5
npm i --save-dev @types/react-native-vector-icons@6.4.13

release:
npm i --save @react-native-async-storage/async-storage@1.18.2
npm i --save @react-native-community/blur@4.3.0
npm i --save @react-native-community/geolocation@3.0.6
npm i --save @react-native-picker/picker@2.4.10
npm i --save @react-navigation/bottom-tabs@6.5.7
npm i --save @react-navigation/native@6.1.6
npm i --save @react-navigation/native-stack@6.9.12
npm i --save @reduxjs/toolkit@1.9.3
npm i --save axios@1.3.5
npm i --save crypto-js@4.1.1
npm i --save react@18.2.0
npm i --save react-native@0.71.6
npm i --save react-native-camera@4.2.1
npm i --save react-native-device-info@10.6.0
npm i --save react-native-image-picker@5.3.1
npm i --save react-native-image-zoom-viewer@3.0.1
npm i --save react-native-linear-gradient@2.6.2
npm i --save react-native-qrcode-scanner@1.5.5
npm i --save react-native-root-siblings@4.1.1
npm i --save react-native-swiper@1.6.0
npm i --save react-native-vector-icons@9.2.0
npm i --save react-native-webview@13.2.2
npm i --save react-redux@8.0.5
npm i --save redux-persist@6.0.0
npm i --save typescript@5.0.4

release_update:
npm i --save @react-native-async-storage/async-storage@1.19.0
npm i --save @react-native-community/blur@4.3.0
npm i --save @react-native-community/geolocation@3.0.6
npm i --save @react-native-picker/picker@2.4.10
npm i --save @react-navigation/bottom-tabs@6.5.8
npm i --save @react-navigation/native@6.1.7
npm i --save @react-navigation/native-stack@6.9.13
npm i --save @reduxjs/toolkit@1.9.5
npm i --save axios@1.4.0
npm i --save crypto-js@4.1.1
npm i --save react@18.2.0
npm i --save react-native@0.71.6
npm i --save react-native-camera@4.2.1
npm i --save react-native-device-info@10.7.0
npm i --save react-native-image-picker@5.3.1
npm i --save react-native-image-zoom-viewer@3.0.1
npm i --save react-native-linear-gradient@2.6.2
npm i --save react-native-qrcode-scanner@1.5.5
npm i --save react-native-root-siblings@4.1.1
npm i --save react-native-swiper@1.6.0
npm i --save react-native-vector-icons@9.2.0
npm i --save react-native-webview@13.2.2
npm i --save react-redux@8.0.5
npm i --save redux-persist@6.0.0
npm i --save typescript@5.0.4
npm package: @iduuck/react-phone-input
Description: A react component to format phone numbers
Author: Raza Gill
Latest version: 1.2.0-alpha.4

# react-phone-input
A simple react component to format a phone number as the user types.

![alt tag](http://i.giphy.com/l41m24L5YTSOifyW4.gif)

##Installation:
  ```npm install react-phone-input --save```
  
##Usage:
```jsx
React.render(
  <ReactPhoneInput defaultCountry={'us'} />,
  document.getElementById('content'));
```

##Options:
| Name | Description          |
| :------------- | :----------- |
| defaultCountry | country code to initialize the component|
| excludeCountries | array of country codes to be excluded e.g. ['cu','cw','kz']|
| onlyCountries | array of country codes to be included e.g. ['cu','cw','kz']|
| preferredCountries | array of country codes to be preferred (highlighted at the top) e.g. ['cu','cw','kz']|

##License
MIT
npm package: @idw/googlefonts-loader
Description: uses webfont-loader internal, but skips loading font when font is already downloaded.  Good for multiple components using the same font.
Author: Chris
Latest version: 1.1.0

# googlefonts-loader

This module uses webfontloader internally.  What it adds is dedupe functionality of loaded fonts.  Which means it won't load a font that is already loaded.

It leverages [FontFaceSet](https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet) web api.  It is currently expiremental.  However, if this module detects it doesn't have fontFaceSet it just loads the font (which is the default behavior).
npm package: @idw/humps
Description: Underscore-to-camelCase converter (and vice versa) for strings and object keys in JavaScript.
Author: Dom Christie
Latest version: 0.6.0

humps [![Build status](https://secure.travis-ci.org/domchristie/humps.png)](http://travis-ci.org/#!/domchristie/humps)
=====

Underscore-to-camelCase converter (and vice versa) for strings and object keys in JavaScript.

When converting object keys, it will walk the structure, converting any nested objects (or arrays of nested objects) along the way. Handy for converting JSON between JavaScript and Ruby/Rails APIs.

Takes inspiration from [Ember Data](https://github.com/emberjs/data) and copies some utility functions from [Underscore.js](http://underscorejs.org/).

Usage
-----

### Converting strings

    humps.camelize("hello_world"); // "helloWorld"
    humps.decamelize("fooBar"); // "foo_bar""

### Decamelizing strings with custom separator

    humps.decamelize("helloWorld", "-"); // "hello-world"

### Converting object keys

    var object = {
      attr_one: "foo",
      attr_two: "bar"
    };

    object = humps.camelizeKeys(object);

    object.attrOne === "foo"; // true
    object.attrTwo === "bar"; // true

Arrays of objects are also converted

    var array = [
      { attr_one: "foo" },
      { attr_one: "bar" }
    ];

    array = humps.camelizeKeys(array);

    array[0].attrOne === "foo"; // true
    array[1].attrOne === "bar"; // true

Licence
-------
humps is copyright &copy; 2014 [Dom Christie](http://domchristie.co.uk) and released under the MIT license.