open-index/open-npm huggingface dataset:
npm package: @ricardianfabric/simpleterms
Description: Simple terms and agreements contract used by Ricardian Fabric
Author: StrawberryChocolateFudge
Latest version: 0.0.5

# Simple terms

Simple terms is a Smart contract written in Solidity and used with Ricardian Fabric.
It allows adding terms, tracking who accepted it and allows for access control by inheritance as shown in the example.


## Install

    yarn add @ricardianfabric/simpleterms


## Use

You can import the package like this in your solidity file:

     import "@ricardianfabric/simpleterms/contracts/SimpleTerms.sol";

Example use:

    contract Greeter is SimpleTerms{
        string private greeting;
    
        constructor(string memory _greeting) {
            console.log("Deploying a Greeter with greeting:", _greeting);
            greeting = _greeting;
        }

        function greet() public view returns (string memory) {
            return greeting;
        }

        function setGreeting(string memory _greeting) public checkAcceptance {
            console.log("Changing greeting from '%s' to '%s'", greeting, _greeting);
            greeting = _greeting;
        }
    }
## Events

    event NewTerms(string url);

NewTerms is emitted when the terms are set. They can be only set by the issuer, who deployed the contract.

    event NewParticipant(address indexed participant);

NewParticipant event is emitted every time a participant accepts the terms.

## External functions

    function setTerms(string calldata url, string calldata value) external returns (bool);

setTerms is called by the deployer of the contract (the issuer) and can be used to reset the terms attached to the smart contract.
This function is called by Ricardian Fabric automaticly when new terms are set.

     function accept(string calldata value) external;

The accept function is called when a Ricardian Fabric contract is accepted. The value is a hash computed from the Ricardian Contract.

## View functions

    function acceptedTerms(address _address) external view returns (bool);

acceptedTerms will return true if an address has already accepted the terms.
This can be called from other contracts or by a client to check if an address accepted the terms

    function getTerms() external view returns (string memory);

You can get the terms, this will return the url of the acceptable contract.

## Modifier

    modifier checkAcceptance();

The modifier is used when inheriting the simpleTesrms contract, it's used for access control on the functions that can be only called after accepting the terms.


## Tests and Compilation

This project uses hardhat via npx. 

    npx hardhat compile


## Error codes

    901 : "Only the deployer can call this." 
    902 : "Invalid terms."
    903 : "You must accept the terms first."

### Publish

To publish the dependency

    npm login

    npm publish
npm package: @ricardo-ch/native-redux-component
Description: Redux native component provides a base component to watch your store and trigger rendering method without using react.
Author: Fabien Silberstein
Latest version: 1.1.0

[![npm version](https://badge.fury.io/js/%40ricardo-ch%2Fnative-redux-component.svg)](https://badge.fury.io/js/%40ricardo-ch%2Fnative-redux-component)

# native-redux-component

Want to use redux without using react ? Redux Component is a native implementation of react component which permits to watch your state and trigger `render()` method of your child component whenever it changes.

It also has the ability to render only when parts of the state change.

And cherry on the cake, the code is build with the [universal module definition](https://github.com/umdjs/umd/)

## Features
- Watch all state change and trigger `render()`
- Render only when properties paths change
- Keep up to date for properties paths without rendering

## Install

`npm install @ricardo-ch/native-redux-component`

## Usage

Create a component listening and rendering a specific part of your app:
```javascript
class MyComponent extends ReduxComponent {
  constructor(store) {
    super(store, ['todos'])
  }

  render() {
    // triggered each time 'todos' property of the state change
    ...

    // if needed dispatch a new change
    this.dispatch(myAction(value))
  }
}
```

## Demo

A simple app to create toto tasks has been created in this repository.
To use it, simply open `demo/src/index.html`in your favorite browser.

## License
native-redux-component is licensed under the MIT license. (http://opensource.org/licenses/MIT)
npm package: @ricardo-jrm/ace
Description: React tooling collection
Author: Ricardo Mota
Latest version: 1.2.2

<div align="center">

# ♠ `@ricardo-jrm/ace`

<b>React Tooling Collection</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/ace/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/ace?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/ace?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/ace?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```tsx
npm install @ricardo-jrm/ace

yarn add @ricardo-jrm/ace
```

<br />

### <b>Scripts</b>

```tsx
// install deps
yarn install

// run build
yarn build

// run lint
yarn lint

// run unit tests
yarn test

// run storybook
yarn sb
```

<br />

### <b>Project</b>

- [Project Page](https://l1b3r.notion.site/ace-afe5940ab5f94d78b74ab8a4f57a5cfb)
- [Source Code](https://github.com/ricardo-jrm/ace)
- [Releases Page](https://github.com/ricardo-jrm/ace/releases)

<br />

### <b>Project Dependencies</b>

- <b>TS Package Boilerplate: [🟪 @ricardo-jrm/nova](https://github.com/ricardo-jrm/nova)</b>
- <b>React Module Boilerplate: [🟣 @ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)</b>
- <b>TS Utility Scripts: [🌙 @ricardo-jrm/dervish](https://github.com/ricardo-jrm/dervish)</b>
- <b>React Utility Hooks: [🌘 @ricardo-jrm/reaper](https://github.com/ricardo-jrm/reaper)</b>
- <b>Misc Collection: [🎭 @ricardo-jrm/mesmer](https://github.com/ricardo-jrm/mesmer)</b>
- <b>React UI Components and Themes: [🔥 @ricardo-jrm/fury](https://github.com/ricardo-jrm/fury)</b>
- <b>React Meta Data Handler: [⚫ @ricardo-jrm/pain](https://github.com/ricardo-jrm/pain)</b>
- <b>React API Client: [🌸 @ricardo-jrm/empathy](https://github.com/ricardo-jrm/empathy)</b>
- <b>React Lightweight Intl: [☁ @ricardo-jrm/echo](https://github.com/ricardo-jrm/echo)</b>
- <b>Vega Lite with React and TS: [🟢 @ricardo-jrm/vera](https://github.com/ricardo-jrm/vera)</b>

<br />

### <b>Dev Dependencies</b>

- `Yarn`
- `Typescript`
- `React`
- `Material-UI`
- `Next`
- `Prettier`
- `ESLint`
- `Commit Lint`
- `Lint Staged`
- `Husky`
- `Jest`
- `React Testing Library`
- `Storybook`
- `Webpack`
- `Semantic Release`

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/ace/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟣[@ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)

<br />
npm package: @ricardo-jrm/color-converter
Description: Convert colors: HEX -> RGB / RGB -> HEX
Author: Ricardo Mota
Latest version: 2.0.1

<div align="center">

# 🌙 `@ricardo-jrm/color-converter`

<b>Convert colors: HEX -> RGB / RGB -> HEX</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/color-converter/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/color-converter?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/color-converter?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/color-converter?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/color-converter?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/color-converter

yarn add @ricardo-jrm/color-converter
```

<br />

### <b>Usage</b>

```ts
import { hexToRgb, rgbToHex } from '@ricardo-jrm/color-converter'

// Converts a color HEX string to RGB object
hexToRgb('#30a14e');
->  {
      r: 48,
      g: 161,
      b: 78,
    }

// Converts given RGB values into a color HEX string
rgbToHex(48, 161, 78);
-> "#30a14e"
```

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/color-converter/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟪[@ricardo-jrm/nova](https://github.com/ricardo-jrm/nova)

<br />
npm package: @ricardo-jrm/date-format
Description: Format dates
Author: Ricardo Mota
Latest version: 2.0.1

<div align="center">

# 🌙 `@ricardo-jrm/date-format`

<b>Format dates</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/date-format/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/date-format?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/date-format?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/date-format?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/date-format?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/date-format

yarn add @ricardo-jrm/date-format
```

<br />

### <b>Usage</b>

```ts
import { dateFormat, dateRelative } from '@ricardo-jrm/date-format'

dateFormat(new Date('2022-01-31'))
-> '12:00 AM - 31 Jan, 2022 GMT'

dateRelative(new Date('2022-01-31'))
->  {
      from: '2 months ago',
      fromNow: 'in 2 months',
      to: 'in 2 months',
      toNow: '2 months ago',
    }
```

<br />

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/date-format/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟪[@ricardo-jrm/nova](https://github.com/ricardo-jrm/nova)

<br />
npm package: @ricardo-jrm/dervish
Description: Typescript Utility
Author: Ricardo Mota
Latest version: 2.0.0

<div align="center">

# 🌙 `@ricardo-jrm/dervish`

<b>Typescript Utility</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/dervish/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/dervish?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/dervish?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/dervish?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/dervish?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/dervish

yarn add @ricardo-jrm/dervish
```

<br />

### <b>Usage</b>

```ts
import {
  dateFormat,
  dateRelative,
  hexToRgb,
  rgbToHex,
  numberFormat,
  stringCapitalize,
  stringTruncate,
} from '@ricardo-jrm/dervish';
```

<br />

### <b>Packages</b>

- [@ricardo-jrm/color-converter](https://github.com/ricardo-jrm/color-converter)
- [@ricardo-jrm/date-format](https://github.com/ricardo-jrm/date-format)
- [@ricardo-jrm/number-format](https://github.com/ricardo-jrm/number-format)
- [@ricardo-jrm/string-capitalize](https://github.com/ricardo-jrm/string-capitalize)
- [@ricardo-jrm/string-truncate](https://github.com/ricardo-jrm/string-truncate)

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/dervish/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟪[@ricardo-jrm/nova](https://github.com/ricardo-jrm/nova)

<br />
npm package: @ricardo-jrm/echo
Description: React lightweight intl
Author: Ricardo Mota
Latest version: 2.0.1

<div align="center">

# ☁ `@ricardo-jrm/echo`

<b>React lightweight intl</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/echo/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/echo?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/echo?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/echo?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/echo?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/echo

yarn add @ricardo-jrm/echo
```

<br />

### <b>Usage</b>

```ts
// component
import { Echo, EchoProps } from '@ricardo-jrm/echo';

// hook
import { useEcho, EchoRecord, EchoMsgs } from '@ricardo-jrm/echo';

// provider
import { EchoProvider, EchoProviderProps } from '@ricardo-jrm/echo';


// app
const exampleEcho: EchoRecord = {
  en: {
    example: 'example en',
  },
  pt: {
    example: 'exemplo pt',
  },
};

<EchoProvider echo={exampleEcho} echoDefault="en">
  {...}
</EchoProvider>


// component
const Echo = ({ echoid }: EchoProps) => {
  const { echo } = useEcho();
  return <span>{echo(echoid)}</span>;
};

<Echo echoid="example" />
```

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/echo/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟣[@ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)

<br />
npm package: @ricardo-jrm/empathy
Description: React API client
Author: Ricardo Mota
Latest version: 1.0.1

<div align="center">

# 🌸 `@ricardo-jrm/empathy`

<b>React API client</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/empathy/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/empathy?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/empathy?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/empathy?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/empathy?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/empathy

yarn add @ricardo-jrm/empathy
```

<br />

### <b>Usage</b>

```ts
import { useEmpathy } from '@ricardo-jrm/empathy';

const { data, error, loading } = useEmpathy(endpoint);
```

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/empathy/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟣[@ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)

<br />
npm package: @ricardo-jrm/fury
Description: React Web UI
Author: Ricardo Mota
Latest version: 4.0.0

<div align="center">

# 🔥 `@ricardo-jrm/fury`

<b>React Web UI</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/fury/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/fury?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/fury?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/fury?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```tsx
npm install @ricardo-jrm/fury

yarn add @ricardo-jrm/fury
```

<br />

### <b>Scripts</b>

```tsx
// install deps
yarn install

// run lint
yarn lint

// run unit tests
yarn test

// run storybook
yarn sb
```

<br />

### <b>Project</b>

- [Project Page](https://l1b3r.notion.site/fury-5acb71cd3a0446a0a520bfa4cf853081)
- [Source Code](https://github.com/ricardo-jrm/fury)
- [Releases Page](https://github.com/ricardo-jrm/fury/releases)

<br />

### <b>Usage</b>

```tsx
import { useFury, FuryProvider, FuryRecord } from '@ricardo-jrm/fury';

// provider
const exampleFury: FuryRecord = {
  fury1: {
    typography: {
      h1: {
        fontSize: '100px',
        color: 'red',
      },
    },
  },
  fury2: {
    typography: {
      h1: {
        fontSize: '75px',
        color: 'green',
      },
    },
  },
};

<FuryProvider fury={exampleFury} furyDefault="fury1">
  {...}
</FuryProvider>


// hook
const { furyActive, furyActiveId, furySetById } = useFury();
```

<br />

### <b>Project Dependencies</b>

- <b>TS Package Boilerplate: [🟪 @ricardo-jrm/nova](https://github.com/ricardo-jrm/nova)</b>
- <b>React Module Boilerplate: [🟣 @ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)</b>
- <b>React Utility Hooks: [🌘 @ricardo-jrm/reaper](https://github.com/ricardo-jrm/reaper)</b>
- <b>React UI Components and Themes: [🔥 @ricardo-jrm/fury](https://github.com/ricardo-jrm/fury)</b>
- <b>React Meta Data Handler: [⚫ @ricardo-jrm/pain](https://github.com/ricardo-jrm/pain)</b>
- <b>React API Client: [🌸 @ricardo-jrm/empathy](https://github.com/ricardo-jrm/empathy)</b>
- <b>React Lightweight Intl: [☁ @ricardo-jrm/echo](https://github.com/ricardo-jrm/echo)</b>

<br />

### <b>Dev Dependencies</b>

- `Yarn`
- `Typescript`
- `React`
- `Material-UI`
- `Prettier`
- `ESLint`
- `Commit Lint`
- `Lint Staged`
- `Husky`
- `Jest`
- `Semantic Release`

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/fury/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟣[@ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)

<br />
npm package: @ricardo-jrm/mesmer
Description: Misc collection
Author: Ricardo Mota
Latest version: 1.0.4

<div align="center">

# 🎭 `@ricardo-jrm/mesmer`

<b>Misc Collection</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/mesmer/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/mesmer?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/mesmer?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/mesmer?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/mesmer?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```tsx
npm install @ricardo-jrm/mesmer

yarn add @ricardo-jrm/mesmer
```

<br />

### <b>Scripts</b>

```tsx
// install deps
yarn install

// run build
yarn build

// run lint
yarn lint

// run unit tests
yarn test
```

<br />

### <b>Project</b>

- [Project Page](https://l1b3r.notion.site/mesmer-85440962eefc4a59842950e4a3e916e2)
- [Source Code](https://github.com/ricardo-jrm/mesmer)
- [Releases Page](https://github.com/ricardo-jrm/mesmer/releases)

<br />

### <b>Project Dependencies</b>

- <b>TS Package Boilerplate: [🟪 @ricardo-jrm/nova](https://github.com/ricardo-jrm/nova)</b>

<br />

### <b>Dev Dependencies</b>

- `Yarn`
- `Typescript`
- `Nodemon`
- `Prettier`
- `ESLint`
- `Commit Lint`
- `Lint Staged`
- `Husky`
- `Jest`
- `Semantic Release`

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/mesmer/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟪[@ricardo-jrm/nova](https://github.com/ricardo-jrm/nova)

<br />
npm package: @ricardo-jrm/nebula
Description: Next Web App  Boilerplate
Author: Ricardo Mota
Latest version: 1.3.0

<div align="center">

# 🌌 `@ricardo-jrm/nebula`

<b>Next web app boilerplate</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/nebula/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/nebula?style=for-the-badge)
![lang](https://img.shields.io/github/languages/top/ricardo-jrm/nebula?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

</div>

<br />

---

<br />

### <b>Bootstrap</b>

```tsx
npx @ricardo-jrm/nebula
```

Boilerplate `Next` web app bootstrapped with all necessary configs and workflows

<br />

### <b>Demo</b>

- <b>[Demo](https://nebula-ricardojrm.vercel.app/)</b>

<br />

### <b>Scripts</b>

```tsx
// install deps
yarn install

// run dev server
yarn dev

// build app
yarn build

// start app
yarn start

// export app
yarn export

// run lint
yarn lint

// run unit tests
yarn test

// run e2e tests
yarn cy:run

// run storybook
yarn sb
```

<br />

### <b>Project</b>

- [Project Page](https://l1b3r.notion.site/nebula-170cf8da5d77413cbff167bc0ba63444)
- [Source Code](https://github.com/ricardo-jrm/nebula)
- [Releases Page](https://github.com/ricardo-jrm/nebula/releases)

<br />

### <b>Project Dependencies</b>

- <b>TS Package Boilerplate: [🟪 @ricardo-jrm/nova](https://github.com/ricardo-jrm/nova)</b>
- <b>React Module Boilerplate: [🟣 @ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)</b>
- <b>Next Web App Boilerplate: [🌌 @ricardo-jrm/nebula](https://github.com/ricardo-jrm/nebula)</b>
- <b>TS Utility Scripts: [🌙 @ricardo-jrm/dervish](https://github.com/ricardo-jrm/dervish)</b>
- <b>React Utility Hooks: [🌘 @ricardo-jrm/reaper](https://github.com/ricardo-jrm/reaper)</b>
- <b>Misc Collection: [🎭 @ricardo-jrm/mesmer](https://github.com/ricardo-jrm/mesmer)</b>
- <b>React UI Components and Themes: [🔥 @ricardo-jrm/fury](https://github.com/ricardo-jrm/fury)</b>
- <b>React Meta Data Handler: [⚫ @ricardo-jrm/pain](https://github.com/ricardo-jrm/pain)</b>
- <b>React API Client: [🌸 @ricardo-jrm/empathy](https://github.com/ricardo-jrm/empathy)</b>
- <b>React Lightweight Intl: [☁ @ricardo-jrm/echo](https://github.com/ricardo-jrm/echo)</b>
- <b>Vega Lite with React and TS: [🟢 @ricardo-jrm/vera](https://github.com/ricardo-jrm/vera)</b>
- <b>React Tooling Collection: [♠ @ricardo-jrm/ace](https://github.com/ricardo-jrm/ace)</b>

<br />

### <b>Dev Dependencies</b>

- `Yarn`
- `Typescript`
- `React`
- `Material-UI`
- `Next`
- `Prettier`
- `ESLint`
- `Commit Lint`
- `Lint Staged`
- `Husky`
- `Jest`
- `React Testing Library`
- `Cypress`
- `Storybook`
- `Webpack`
- `Semantic Release`

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/nebula/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🌌[@ricardo-jrm/nebula](https://github.com/ricardo-jrm/nebula)

<br />
npm package: @ricardo-jrm/nova
Description: Typescript NPM Package Boilerplate
Author: Ricardo Mota
Latest version: 4.1.1

<div align="center">

# 🟪 `@ricardo-jrm/nova`

<b>Typescript NPM Package Boilerplate</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/nova/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/nova?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/nova?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/nova?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/nova?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Bootstrap</b>

```tsx
npx @ricardo-jrm/nova
```

Boilerplate `TypeScript` project bootstrapped with all necessary configs and workflows

<br />

### <b>Workflows</b>

Quality Assurance

- Will lint code and run tests
- Runs on `pull_request` sync and `push` to `main`

Release

- Will create a GitHub release with auto generated versioning and changelog
- Will publish the package to the public NPM registry
- Runs on `push` to `main` and after the QA job

Publish to GitHub (Public)

- Will publish the package to the public GitHub registry
- Runs on `workflow_dispatch`

<br />

---

<br />

### <b>Install</b>

```tsx
npm install @ricardo-jrm/nova

yarn add @ricardo-jrm/nova
```

<br />

### <b>Scripts</b>

```tsx
// install deps
yarn install

// run dev
yarn dev

// run build
yarn build

// run lint
yarn lint

// run unit tests
yarn test
```

<br />

### <b>Project</b>

- [Project Page](https://l1b3r.notion.site/nova-564cb6e6b3c54345934a5cb1a59ebb0f)
- [M0: MVP](https://l1b3r.notion.site/M0-MVP-75d9cb5bafba4e488af19475467f4e0b)
- [Source Code](https://github.com/ricardo-jrm/nova)
- [Releases Page](https://github.com/ricardo-jrm/nova/releases)

<br />

### <b>Usage</b>

```tsx
import { example, exampleType } from '@ricardo-jrm/nova';

example();
```

<br />

### <b>Dev Dependencies</b>

- `Yarn`
- `Typescript`
- `Nodemon`
- `Prettier`
- `ESLint`
- `Commit Lint`
- `Lint Staged`
- `Husky`
- `Jest`
- `Semantic Release`

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/nova/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟪[@ricardo-jrm/nova](https://github.com/ricardo-jrm/nova)

<br />
npm package: @ricardo-jrm/number-format
Description: Format numbers
Author: Ricardo Mota
Latest version: 2.0.1

<div align="center">

# 🌙 `@ricardo-jrm/number-format`

<b>Format numbers</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/number-format/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/number-format?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/number-format?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/number-format?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/number-format?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/number-format

yarn add @ricardo-jrm/number-format
```

<br />

### <b>Usage</b>

```ts
import { numberFormat } from '@ricardo-jrm/number-format'

numberFormat(1337)
-> "1,337"

```

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/number-format/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟪[@ricardo-jrm/nova](https://github.com/ricardo-jrm/nova)

<br />
npm package: @ricardo-jrm/pain
Description: React meta data utility
Author: Ricardo Mota
Latest version: 2.1.1

<div align="center">

# ⚫ `@ricardo-jrm/pain`

<b>React meta data utility</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/pain/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/pain?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/pain?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/pain?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/pain?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/pain

yarn add @ricardo-jrm/pain
```

<br />

### <b>Usage</b>

```ts
import { usePain, PainProvider, PainRecord } from '@ricardo-jrm/pain';

// app
const examplePain: PainRecord = {
  default: { name: 'Default' },
  pain1: { name: 'pain 1' },
  pain2: { name: 'pain 2' },
};

<PainProvider pain={examplePain} painDefault="default">
  {...}
</PainProvider>


// component
const { painActive, painActiveId, painSetById } = usePain();
```

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/pain/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟣[@ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)

<br />
npm package: @ricardo-jrm/reaper
Description: React utility
Author: Ricardo Mota
Latest version: 1.0.1

<div align="center">

# 🌘 `@ricardo-jrm/reaper`

<b>React utility</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/reaper/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/reaper?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/reaper?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/reaper?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/reaper?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/reaper

yarn add @ricardo-jrm/reaper
```

<br />

### <b>Usage</b>

```ts
import {
  useDateFormat,
  useDateRelative,
  useHexRgb,
  useRgbHex,
  useLocalState,
  useNumberFormat,
  useStringCapitalize,
  useStringTruncate,
} from '@ricardo-jrm/reaper';
```

<br />

### <b>Packages</b>

- [@ricardo-jrm/use-color-converter](https://github.com/ricardo-jrm/use-color-converter)
- [@ricardo-jrm/use-date-format](https://github.com/ricardo-jrm/use-date-format)
- [@ricardo-jrm/use-local-state](https://github.com/ricardo-jrm/use-local-state)
- [@ricardo-jrm/use-number-format](https://github.com/ricardo-jrm/use-number-format)
- [@ricardo-jrm/use-string-capitalize](https://github.com/ricardo-jrm/use-string-capitalize)
- [@ricardo-jrm/use-string-truncate](https://github.com/ricardo-jrm/use-string-truncate)

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/reaper/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟣[@ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)

<br />
npm package: @ricardo-jrm/string-capitalize
Description: Capitalize strings
Author: Ricardo Mota
Latest version: 2.0.1

<div align="center">

# 🌙 `@ricardo-jrm/string-capitalize`

<b>Typescript NPM Package Boilerplate</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/string-capitalize/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/string-capitalize?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/string-capitalize?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/string-capitalize?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/string-capitalize?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/string-capitalize

yarn add @ricardo-jrm/string-capitalize
```

<br />

### <b>Usage</b>

Capitalizes the first character of a given string. Option to capitalize all words.

```ts
import { stringCapitalize } from '@ricardo-jrm/string-capitalize'

stringCapitalize('lorem ipsum dolor sit amet');
-> "Lorem ipsum dolor sit amet"

stringCapitalize('lorem ipsum dolor sit amet', true);
-> "Lorem Ipsum Dolor Sit Amet"
```

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/string-capitalize/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟪[@ricardo-jrm/nova](https://github.com/ricardo-jrm/nova)

<br />
npm package: @ricardo-jrm/string-truncate
Description: Truncate strings
Author: Ricardo Mota
Latest version: 3.0.1

<div align="center">

# 🌙 `@ricardo-jrm/string-truncate`

<b>Truncate strings</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/string-truncate/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/string-truncate?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/string-truncate?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/string-truncate?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/string-truncate?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/string-truncate

yarn add @ricardo-jrm/string-truncate
```

<br />

### <b>Usage</b>

Truncates string to fit within given length with appended ellipsis. Option to keep last word.

```ts
import { stringTruncate } from '@ricardo-jrm/string-truncate'

stringTruncate('Lorem ipsum dolor sit amet', 20);
-> "Lorem ipsum dolor..."

stringTruncate('Lorem ipsum dolor sit amet', 20, true);
-> "Lorem ipsum ... amet"
```

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/string-truncate/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟪[@ricardo-jrm/nova](https://github.com/ricardo-jrm/nova)

<br />
npm package: @ricardo-jrm/supernova
Description: React Module Boilerplate
Author: Ricardo Mota
Latest version: 3.3.2

<div align="center">

# 🟣 `@ricardo-jrm/supernova`

<b>React Module Boilerplate</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/supernova/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/supernova?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/supernova?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/supernova?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/supernova?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Bootstrap</b>

```tsx
npx @ricardo-jrm/supernova
```

Boilerplate `React` project bootstrapped with all necessary configs and workflows

<br />

### <b>Workflows</b>

Quality Assurance

- Will lint code and run tests
- Runs on `pull_request` sync and `push` to `main`

Release

- Will create a GitHub release with auto generated versioning and changelog
- Will publish the package to the public NPM registry
- Runs on `push` to `main` and after the QA job

Publish to GitHub (Public)

- Will publish the package to the public GitHub registry
- Runs on `workflow_dispatch`

<br />

---

<br />

### <b>Project</b>

- [Project Page](https://www.notion.so/l1b3r/supernova-382adadc317c4ec189b6643bcdfffc09)
- [M0: MVP](https://www.notion.so/l1b3r/M0-MVP-afcf4afd5c054cdb9650f7353780c79a)
- [Source Code](https://github.com/ricardo-jrm/supernova)
- [Releases Page](https://github.com/ricardo-jrm/supernova/releases)

<br />

### <b>Install</b>

```tsx
npm install @ricardo-jrm/supernova

yarn add @ricardo-jrm/supernova
```

<br />

### <b>Usage</b>

```tsx
// component
import {
  ExampleComponent,
  ExampleComponentProps,
} from '@ricardo-jrm/supernova';

// hook
import { useExampleHook, ExampleHookType } from '@ricardo-jrm/supernova';

// context
import {
  ExampleContext,
  useExampleContext,
  ExampleContextType,
} from '@ricardo-jrm/supernova';

// provider
import { ExampleProvider, ExampleProviderProps } from '@ricardo-jrm/supernova';
```

<br />

### <b>Project Dependencies</b>

- <b>TS Package Boilerplate: [🟪 @ricardo-jrm/nova](https://github.com/ricardo-jrm/nova)</b>
- <b>React Module Boilerplate: [🟣 @ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)</b>

<br />

### <b>Dev Dependencies</b>

- `Yarn`
- `Typescript`
- `React`
- `Prettier`
- `ESLint`
- `Commit Lint`
- `Lint Staged`
- `Husky`
- `Jest`
- `React Testing Library`
- `Storybook`
- `Webpack`
- `Semantic Release`

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/supernova/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟣[@ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)

<br />
npm package: @ricardo-jrm/use-color-converter
Description: Convert colors with React
Author: Ricardo Mota
Latest version: 1.0.1

<div align="center">

# 🌘 `@ricardo-jrm/use-color-converter`

<b>Convert colors with React</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/use-color-converter/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/use-color-converter?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/use-color-converter?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/use-color-converter?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/use-color-converter?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/use-color-converter

yarn add @ricardo-jrm/use-color-converter
```

<br />

### <b>Usage</b>

```ts
import { useHexRgb, useRgbHex } from '@ricardo-jrm/use-color-converter';

useHexRgb('#30a14e')
->  {
      r: 48,
      g: 161,
      b: 78,
    }

useRgbHex(48, 161, 78)
-> '#30a14e'
```

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/use-color-converter/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟣[@ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)

<br />
npm package: @ricardo-jrm/use-date-format
Description: Format dates with React
Author: Ricardo Mota
Latest version: 1.0.1

<div align="center">

# 🌘 `@ricardo-jrm/use-date-format`

<b>Format dates with React</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/use-date-format/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/use-date-format?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/use-date-format?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/use-date-format?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/use-date-format?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/use-date-format

yarn add @ricardo-jrm/use-date-format
```

<br />

### <b>Usage</b>

```ts
import { useDateFormat, useDateRelative } from '@ricardo-jrm/use-date-format';

useDateFormat(new Date('2022-01-31'))
-> '12:00 AM - 31 Jan, 2022 GMT'

useDateRelative(new Date('2022-01-31'))
->  {
      from: '2 months ago',
      fromNow: 'in 2 months',
      to: 'in 2 months',
      toNow: '2 months ago',
    }
```

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/use-date-format/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟣[@ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)

<br />
npm package: @ricardo-jrm/use-local-state
Description: State hook that syncs with local storage
Author: Ricardo Mota
Latest version: 1.0.1

<div align="center">

# 🌘 `@ricardo-jrm/use-local-state`

<b>State hook that syncs with local storage</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/use-local-state/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/use-local-state?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/use-local-state?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/use-local-state?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/use-local-state?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/use-local-state

yarn add @ricardo-jrm/use-local-state
```

<br />

### <b>Usage</b>

```ts
import { useLocalState } from '@ricardo-jrm/use-local-state';

const [example, setExample] = useLocalState<number>('my-example', 1337);
```

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/use-local-state/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟣[@ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)

<br />
npm package: @ricardo-jrm/use-number-format
Description: Format numbers with React
Author: Ricardo Mota
Latest version: 1.0.1

<div align="center">

# 🌘 `@ricardo-jrm/use-number-format`

<b>Format numbers with React</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/use-number-format/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/use-number-format?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/use-number-format?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/use-number-format?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/use-number-format?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/use-number-format

yarn add @ricardo-jrm/use-number-format
```

<br />

### <b>Usage</b>

```ts
import { useNumberformat } from '@ricardo-jrm/use-number-format';

useNumberFormat(1337)
-> "1,337"
```

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/use-number-format/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟣[@ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)

<br />
npm package: @ricardo-jrm/use-string-capitalize
Description: Capitalize strings with React
Author: Ricardo Mota
Latest version: 2.0.2

<div align="center">

# 🌘 `@ricardo-jrm/use-string-capitalize`

<b>Capitalize strings with React</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/use-string-capitalize/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/use-string-capitalize?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/use-string-capitalize?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/use-string-capitalize?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/use-string-capitalize?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/use-string-capitalize

yarn add @ricardo-jrm/use-string-capitalize
```

<br />

### <b>Usage</b>

Capitalizes the first character of a given string. Option to capitalize all words.

```ts
import { useStringCapitalize } from '@ricardo-jrm/nova';

export const StringCapitalize = ({ str: string, allWords?: boolean }) => (
  <span>{useStringCapitalize(str, allWords)}</span>
);

<StringCapitalize str="lorem ipsum dolor sit amet" />
-> <span>Lorem ipsum dolor sit amet</span>

<StringCapitalize str="lorem ipsum dolor sit amet" allWords />
-> <span>Lorem Ipsum Dolor Sit Amet</span>
```

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/use-string-capitalize/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟣[@ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)

<br />
npm package: @ricardo-jrm/use-string-truncate
Description: Truncate strings with React
Author: Ricardo Mota
Latest version: 2.0.4

<div align="center">

# 🌘 `@ricardo-jrm/use-string-truncate`

<b>Truncate strings with React</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/use-string-truncate/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/use-string-truncate?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/use-string-truncate?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/use-string-truncate?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/use-string-truncate?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Install</b>

```ts
npm install @ricardo-jrm/use-string-truncate

yarn add @ricardo-jrm/use-string-truncate
```

<br />

### <b>Usage</b>

```ts
import { useStringTruncate } from '@ricardo-jrm/use-string-truncate';

export const StringTruncate = ({ str: string, allWords?: boolean }) => (
  <span>{useStringTruncate(str, allWords)}</span>
);

<StringTruncate str="Lorem ipsum dolor sit amet" />
-> <span>Lorem ipsum dolor...</span>

<StringTruncate str="Lorem ipsum dolor sit amet" keepLastWord />
-> <span>Lorem ipsum ... amet</span>
```

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/use-string-truncate/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟣[@ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)

<br />
npm package: @ricardo-jrm/vera
Description: Vega + React
Author: Ricardo Mota
Latest version: 1.2.0

<div align="center">

# 🟢 `@ricardo-jrm/vera`

<b>Vega + React</b>

![build](https://img.shields.io/github/workflow/status/ricardo-jrm/vera/Continuous%20Integration?style=for-the-badge)
![license](https://img.shields.io/github/license/ricardo-jrm/vera?style=for-the-badge)

![author](<https://img.shields.io/badge/Author-Ricardo%20%3Cl1b3r__--%3E%20Mota%20(%40ricardo--jrm)-orange?style=for-the-badge>)

![lang](https://img.shields.io/github/languages/top/ricardo-jrm/vera?style=for-the-badge)
![version](https://img.shields.io/npm/v/@ricardo-jrm/vera?style=for-the-badge)
![size](https://img.shields.io/bundlephobia/min/@ricardo-jrm/vera?style=for-the-badge)

</div>

<br />

---

<br />

### <b>Project</b>

- [Project Page](https://l1b3r.notion.site/vera-1913cc82cc2c4bdf8f18607350b84c4d)
- [M0: MVP](https://l1b3r.notion.site/M0-MVP-e71e2a010a4b429185a53a409cad4337)
- [Source Code](https://github.com/ricardo-jrm/vera)
- [Releases Page](https://github.com/ricardo-jrm/vera/releases)

<br />

### <b>Install</b>

```tsx
npm install @ricardo-jrm/vera

yarn add @ricardo-jrm/vera
```

<br />

### <b>Usage</b>

```tsx
// component
import { Vera, VeraProps } from '@ricardo-jrm/vera';
```

<br />

### <b>Project Dependencies</b>

- <b>TS Package Boilerplate: [🟪 @ricardo-jrm/nova](https://github.com/ricardo-jrm/nova)</b>
- <b>React Module Boilerplate: [🟣 @ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)</b>

<br />

### <b>Dev Dependencies</b>

- `Yarn`
- `Typescript`
- `React`
- `Vega`
- `Vega Lite`
- `Prettier`
- `ESLint`
- `Commit Lint`
- `Lint Staged`
- `Husky`
- `Jest`
- `React Testing Library`
- `Storybook`
- `Webpack`
- `Semantic Release`

<br />

---

<br />

### <b>License</b>

[MIT](https://github.com/ricardo-jrm/vera/blob/main/LICENSE) © Ricardo <l1b3r\_-> Mota ([@ricardo-jrm](https://github.com/ricardo-jrm))

Bootstrapped with 🟣[@ricardo-jrm/supernova](https://github.com/ricardo-jrm/supernova)

<br />