open-index/open-npm huggingface dataset:
npm package: @inp-net/churros-client
Description: The official OAuth2 client for [Churros](https://churros.inpt.fr).
Latest version: 0.1.2

# churros-client

The official OAuth2 client for [Churros](https://churros.inpt.fr).

## Setup

Create an app on [Churros developers](https://churros.inpt.fr/developers) and get your client ID and secret.

## Usage

An example with [Express](https://expressjs.com/):

```js
import { ChurrosClient } from '@inp-net/churros-client';
import express from 'express';

const churros = new ChurrosClient({
  client_id: 'your client id',
  client_secret: 'your client secret',
  // where you want to redirect the user after login
  redirect_uri: 'http://localhost:3000/callback',
});

const yourApp = express();

yourApp.get('/login', (_, res) => {
  res.redirect(churros.authorizationURL);
});

yourApp.get(churros.redirectURL.pathname, async (req, res) => {
  if (req.query['error']) {
    // Handle error
    res.sendStatus(500);
  }
  const token = await churros.getToken(req.query['code'], req.query['state']);

  // Do something with the token, for example get some user info,
  // or use the GraphQL API for everything else (see https://churros.inpt.fr/graphql in your browser)
  const userInfo = await fetch('https://churros.inpt.fr/identity', {
    headers: {
      Authorization: `Bearer ${token}`,
    },
  });

  res.status(200).json(await userInfo.json());
});

console.info('Listening on http://localhost:3000');
yourApp.listen(3000);
```

Go to `/login` to start the process.
npm package: @inp/create-vite
Description: ## Scaffolding Your First Vite Project
Author: Evan You
Latest version: 2.7.6

# create-vite

## Scaffolding Your First Vite Project

> **Compatibility Note:**
> Vite requires [Node.js](https://nodejs.org/en/) version >=12.2.0. However, some templates require a higher Node.js version to work, please upgrade if your package manager warns about it.

With NPM:

```bash
$ npm init @inp/vite@latest
```

With Yarn:

```bash
$ yarn create  @inp/vite
```

With PNPM:

```bash
$ pnpm create  @inp/vite
```

Then follow the prompts!

You can also directly specify the project name and the template you want to use via additional command line options. For example, to scaffold a Vite + Vue project, run:

```bash
# npm 6.x
npm init @inp/vite@latest my-vue-app --template vue

# npm 7+, extra double-dash is needed:
npm init @inp/vite@latest my-vue-app -- --template vue

# yarn
yarn create @inp/vite my-vue-app --template vue

# pnpm
pnpm create @inp/vite my-vue-app -- --template vue
```

Currently supported template presets include:

- `vanilla`
- `vanilla-ts`
- `vue`
- `vue2-ts`
- `vue-ts`
- `react`
- `react-ts`
- `preact`
- `preact-ts`
- `lit`
- `lit-ts`
- `svelte`
- `svelte-ts`

## Community Templates

create-vite is a tool to quickly start a project from a basic template for popular frameworks. Check out Awesome Vite for [community maintained templates](https://github.com/vitejs/awesome-vite#templates) that include other tools or target different frameworks. You can use a tool like [degit](https://github.com/Rich-Harris/degit) to scaffold your project with one of the templates.

```bash
npx degit user/project my-project
cd my-project

npm install
npm run dev
```

If the project uses `main` as the default branch, suffix the project repo with `#main`

```bash
npx degit user/project#main my-project
```
npm package: @inpageedit/core
Description: 🚀 Modular, Extensible Supercharged Plugin for MediaWiki
Author: dragon-fish
Latest version: 0.17.4

<div align="center">

[<img src="https://www.ipe.wiki/images/logo/ipe-next-uwu.png" width="280" alt="InPageEdit Logo">](https://www.ipe.wiki)

# InPageEdit NEXT

🚀 MediaWiki 的模块化、可扩展超级增强插件

**InPageEdit NEXT** 是由机智的小鱼君开发的一款 MediaWiki 多功能插件。主要功能旨在使许多 MediaWiki 的功能在不打开新标签页的情况下完成(包括但不限于编辑)，极大加快维护 wiki 的速度。模块化设计、类型定义清晰完整，插件可自由热插拔。

→ <https://www.ipe.wiki> ←

[![](https://data.jsdelivr.com/v1/package/npm/@inpageedit/core/badge)](https://www.jsdelivr.com/package/npm/@inpageedit/core) [![Crowdin](https://badges.crowdin.net/inpageedit/localized.svg)](https://crowdin.com/project/inpageedit)

</div>

## 快速上手 / Quick Start

在*个人 JS 页*添加以下代码：

<!-- prettier-ignore -->
```javascript
// InPageEdit NEXT
document.body.append(
  Object.assign(document.createElement('script'), {
    src: 'https://cdn.jsdelivr.net/npm/@inpageedit/core/dist/index.js',
    type: 'module',
  })
)
```

## 特色功能 / Features

**编辑者视角 / For wiki editors**

- 快速编辑 / Quick Edit
- 快速移动 / Quick Move
- 快速重定向 / Quick Redirect
- 快速差异 / Quick Diff
- 快速预览 / Quick Preview

**开发者视角 / For developers**

- 可热插拔的模块化设计
- 完全使用 TypeScript 编写
- 超简单的扩展能力：[示例插件](https://github.com/inpageedit/plugin-registry/tree/master/packages/_boilerplate)

## Supported languages

- **English (en)**
- العربية (ar)
- Français (fr)
- Hindī (hi)
- 日本語 (ja)
- Nederlands (nl)
- Polski (pl)
- Português do Brasil (pt_BR)
- **中文(简体) (zh-Hans)**
- 中文(繁體) (zh-Hant)
- _(and more, using machine translation...)_

[Help us translate](https://crowdin.com/project/inpageedit)

---

🚀 Modular, Extensible Supercharged Plugin for MediaWiki.

> [MIT License](https://opensource.org/licenses/MIT)
>
> InPageEdit-NEXT Copyright © 2025-present dragon-fish

See more: [GitHub](https://github.com/inpageedit/inpageedit-next) | [Change Logs](https://www.ipe.wiki/changelogs/) | [File Issues](https://github.com/inpageedit/inpageedit-next/issues) | [Plugin Registry](https://github.com/inpageedit/plugin-registry) | [Translate (Crowdin)](https://crowdin.com/project/inpageedit)
npm package: @inpageedit/logger
Description: Flexible, Extensible Console Logger with Colored Labels and Hierarchical Loggers
Author: dragon-fish
Latest version: 0.1.0

# @inpageedit/logger

Flexible, Extensible Console Logger with Colored Labels and Hierarchical Loggers.

Features:

- Level control (debug < log < info < warn < error < silent)
- Custom dynamic levels
- Hierarchical grouping: `logger('sub')`
- Deterministic color assignment for names & groups
- Styled name badge & group labels

## Usage

```ts
import { createLogger, Logger, LoggerLevel } from '@inpageedit/logger'

const logger = createLogger({ name: 'MyApp', level: LoggerLevel.debug })
// Or
const logger = new Logger({ name: 'MyApp', level: LoggerLevel.debug })

// normal usage
logger.info('Application started')

// create sub-logger group
const apiLogger = logger.group('API', { color: '#f59e0b' })
apiLogger.warn('Deprecated API endpoint used')
// or one-liner
logger('API').error('This is a error from API')

// define custom level
declare module '@inpageedit/logger' {
  interface Logger {
    success: (...args: any[]) => void
  }
}
logger.defineLevel('success', { level: LoggerLevel.info, label: '✅', method: 'info' })
logger.success('User created successfully')
```

---

> MIT License
>
> Copyright (c) 2025 dragon-fish
npm package: @inpassor/firebase-app
Description: Firebase Express application
Author: Oleg V. Kuzmin
Latest version: 0.3.39

# Firebase Express application

![](https://img.shields.io/npm/v/@inpassor/firebase-app.svg?style=flat)
![](https://img.shields.io/github/license/Inpassor/ts-firebase-app.svg?style=flat-square)
![](https://img.shields.io/npm/dt/@inpassor/firebase-app.svg?style=flat-square)
npm package: @inpassor/firebase-application
Description: Firebase application
Author: Oleg V. Kuzmin
Latest version: 0.1.16

# Firebase application

[![](https://img.shields.io/npm/v/@inpassor/firebase-application.svg?style=flat)](https://www.npmjs.com/package/@inpassor/firebase-application)
[![](https://img.shields.io/github/license/Inpassor/ts-firebase-application.svg?style=flat-square)](https://github.com/Inpassor/ts-firebase-application/blob/master/LICENSE)
![](https://img.shields.io/npm/dt/@inpassor/firebase-application.svg?style=flat-square)

This library is a handy wrapper for [@inpassor/node-server](https://github.com/Inpassor/ts-node-server).

It provides a single function **firebaseApplication** creating a Firebase Cloud function:
```
firebaseApplication: (
   getConfig: ServerConfig | Promise<ServerConfig>,
   runtimeOptions?: RuntimeOptions,
) => HttpsFunction
```

## Installation
```bash
npm install @inpassor/firebase-application --save
```

## Usage
```typescript
import { firebaseApplication, Component, ServerConfig } from '@inpassor/firebase-application';

class DemoComponent extends Component {
    public get(): void {
        console.log(this.request.params);
        // You can use here:
        // this.app.firebaseApp
        // this.app.firestore
        this.send(200, 'This is the DemoComponent GET action');
    }
}

const config: ServerConfig = {
    headers: {
        'Access-Control-Allow-Methods': 'OPTIONS, GET',
        'Access-Control-Allow-Credentials': 'true',
        'Access-Control-Allow-Headers': 'content-type, authorization',
    },
    sameOrigin: true,
    routes: [
        {
            path: 'demo</arg|?>',
            component: DemoComponent,
        },
    ],
};

export const firebaseFunction = firebaseApplication(config, {
    timeoutSeconds: 10,
    memory: '128MB',
});
```

## Asynchronous Server config
```typescript
import { firebaseApplication, ServerConfig } from '@inpassor/firebase-application';

// Some asynchronous get config function
const getConfig = (): Promise<ServerConfig> => {
    const config: ServerConfig = {}; // define your own ServerConfig here
    return Promise.resolve(config);
};

export const firebaseFunction = firebaseApplication(getConfig(), {
    timeoutSeconds: 10,
    memory: '128MB',
});
```
npm package: @inpassor/firebase-config
Description: Firebase Remote Config library
Author: Oleg V. Kuzmin
Latest version: 1.3.0

# Firebase Remote Config library

![](https://img.shields.io/npm/v/@inpassor/firebase-config.svg?style=flat)
![](https://img.shields.io/github/license/Inpassor/ts-firebase-config.svg?style=flat-square)
![](https://img.shields.io/npm/dt/@inpassor/firebase-config.svg?style=flat-square)

This library used for interaction with
[Firebase Remote Config](https://firebase.google.com/products/remote-config)
REST API to set or get
Remote Config values in node.js environment.

## Dependencies

### [google-auth-library](https://www.npmjs.com/package/google-auth-library)

The library uses **google-auth-library** npm package
and provides a variety of ways to authenticate Remote Config API requests:
- Provide a **keyId** and **key** of your Firebase project.
- Provide a **private key file** for your Firebase service account.
- Provide **GOOGLE_APPLICATION_CREDENTIALS** environment variable.
- Use none of above in case of usage of the library on Google Cloud.

Read about Google Cloud API authentication at
[Getting Started with Authentication](https://cloud.google.com/docs/authentication/getting-started)

### [node-cache](https://www.npmjs.com/package/node-cache)

The library uses **node-cache** npm package for storing ETag value.

See **cacheOptions** config option.

### [flat](https://www.npmjs.com/package/flat)

The library uses **flat** npm package for flatten and unflatten Remote Config parameters.

See **delimiter** config option.


## Example

```typescript
import * as path from 'path';
import {
    FirebaseConfig,
    DataObject,
} from '@inpassor/firebase-config';

/**
 * Instantiate FirebaseConfig
 */
const firebaseConfig = new FirebaseConfig({
    projectId: 'my-awesome-project-id',
    keyFileName: path.resolve('path', 'to', 'my-awesome-project-service-key.json'),
    // key: 'my-project-key',
    // keyId: 'my-project-key-id',
    // cacheOptions: {
    //     forceString?: boolean;
    //     objectValueSize?: number;
    //     arrayValueSize?: number;
    //     stdTTL?: number;
    //     checkperiod?: number;
    //     useClones?: boolean;
    //     errorOnMissing?: boolean;
    //     deleteOnExpire?: boolean;
    // },
    // delimiter: '___',
    // defaultErrorMessage: 'Invalid response from the Firebase Remote Config service',
});

/**
 * Set Remote Config 
 */
firebaseConfig.set({
    // [key: string]: any
}).then(
    () => console.log('published'),
    (error: any) => console.error(error),
);

/**
 * Get Remote Config 
 */
firebaseConfig.get().then(
    (parameters: DataObject) => console.log(parameters),
    (error: any) => console.error(error),
);
```
npm package: @inpassor/functions
Description: Common functions library
Author: Oleg V. Kuzmin
Latest version: 0.2.8

# Common functions library

![](https://img.shields.io/npm/v/@inpassor/functions.svg?style=flat)
![](https://img.shields.io/github/license/Inpassor/ts-functions.svg?style=flat-square)
![](https://img.shields.io/npm/dt/@inpassor/functions.svg?style=flat-square)
npm package: @inplayer-org/formik-persist
Description: Persist and rehydrate a Formik form
Author: Jared Palmer
Latest version: 1.0.2

# Formik Persist

Persist and rehydrate a [Formik](https://github.com/jaredpalmer/formik) form.

```
npm install formik-persist --save
```

# Basic Usage

Just import the `<Persist >` component and put it inside any Formik form. It renders `null`!

```js
import React from 'react'
import { Formik, Field, Form } from 'formik'
import { Persist } from 'formik-persist'

export const Signup = () =>
  <div>
    <h1>My Cool Persisted Form</h1>
    <Formik
      onSubmit={values => console.log(values)}
      initialValues={{ firstName: '', lastName: '', email: '' }}
      render={props =>
        <Form className="whatever">
          <Field name="firstName" placeholder="First Name" />
          <Field name="lastName" placeholder="Last Name" />
          <Field name="email" type="email" placeholder="Email Address" />
          <button type="submit">Submit</button>
          <Persist name="signup-form" />
        </Form>}
    />
  </div>;
```

### Props

Only two props! 

- `name: string`: LocalStorage key to save form state to
- `debounce:? number`: Default is `300`. Number of ms to debounce the function that saves form state.


## Author

- Jared Palmer [@jaredpalmer](https://twitter.com/jaredpalmer)


## Todo

- Alternative storages (localForage, sessionStorage)
- Support AsyncStorage for React Native
npm package: @inplayer-org/inplayer.js
Description: A Javascript SDK for Inplayer's RESTful API
Author: InPlayer
Latest version: 3.13.33

<h1 align="center">
  <a target="_blank" href="https://inplayer-org.github.io/inplayer.js/">
    <img src="https://assets.inplayer.com/images/inplayer-256.png" alt="inplayer-js" title="InPlayer JS SDK" width="300">
    <br />
    <span style="font-size: 1.5rem; color: blue">InPlayer JavaScript SDK</span>
  </a>
</h1>
<p align="center" style="font-size: 1.2rem;">InPlayer's JS API client wrapper</p>

[![npm version](https://img.shields.io/npm/v/@inplayer-org/inplayer.js.svg)](https://www.npmjs.com/package/@inplayer-org/inplayer.js)
![CI](https://github.com/inplayer-org/inplayer.js/workflows/CI/badge.svg)
[![Netlify Status](https://api.netlify.com/api/v1/badges/a6f99b76-a75a-48d4-ab3e-d0ad387cbc41/deploy-status)](https://app.netlify.com/sites/inplayer-js/deploys)

[inplayer.com](https://inplayer.com)

SDK Documentation can be found:

- [v2](https://inplayer-org.github.io/inplayer.js/)
- [v3](https://inplayer-js.netlify.app/)

## Examples

- [HTML](https://github.com/inplayer-org/inplayer.js/blob/v3/examples/v3.html)
- [React](https://codesandbox.io/s/inplayer-react-js-sdk-yf956?file=/src/App.js)
- [React-Native](https://codesandbox.io/s/inplayer-react-native-js-sdk-bvhwz?file=/src/App.js)

## Installation

Install the package from [npm](https://www.npmjs.com/package/@inplayer-org/inplayer.js) and import it in your project.

```bash
npm install --save @inplayer-org/inplayer.js
```

Alternatively you can include the script like so:

### Latest v2 version

```
<script src="https://unpkg.com/@inplayer-org/inplayer.js@v2/dist/inplayer.umd.js"></script>
```

### Latest v3 version

```
<script src="https://unpkg.com/@inplayer-org/inplayer.js@v3/dist/inplayer.min.js"></script>
```

### Sign in using grant type: password

```
InPlayer.Account.signIn({
    email: 'test@test.com',
    password: '12345678',
    clientId: 'b0899d7f-66da-40fc-8eeb-36cad735589c',
    referrer: 'http://localhost:3000/'
}).then(data => console.log(data));
```

### Sign in using grant type: refresh token

```
InPlayer.Account.signIn({
    clientId: 'b0899d7f-66da-40fc-8eeb-36cad735589c',
    refreshToken: '528b1b80-ddd1hj-4abc-gha3j-111111',
    referrer: 'http://localhost:3000/'
}).then(data => console.log(data));
```

### Sign in using grant type: client secret

```
InPlayer.Account.signIn({
    clientId: 'b0899d7f-66da-40fc-8eeb-36cad735589c',
    clientSecret: '528b1b80-ddd1hj-4abc-gha3j-111111',
    referrer: 'http://localhost:3000/'
}).then(data => console.log(data));
```

## Contributing

We love community contributions, so here's a quick guide if you want to help out:

1. Fork the repository
2. Write your changes
3. Make sure the tests pass
4. Update the docs
5. Commit your changes
6. Send us a PR
npm package: @inploi/plugin-collaborate
Description: Plugin for enabling inploi’s Collaborate product on any website.
Latest version: 3.0.0

# @inploi/plugin-collaborate

Plugin for enabling inploi’s Collaborate product on any website.

## Installation

If you want to use it in your javascript project, you can install it via npm:

```bash
npm install @inploi/sdk @inploi/plugin-collaborate
```

## Usage

Whenever your page is done loading you may call `setupCollaborate` to enable the plugin. You may pass in an optional `signal` parameter to abort the setup process and remove all event listeners if you want.

E.g.:

```javascript
import { setupCollaborate } from '@inploi/plugin-collaborate';
import { initialiseSdk } from '@inploi/sdk';

const sdk = initialiseInploiSdk({
	publishableKey: 'your-publishable-key',
	env: 'sandbox',
});

const collaborate = sdk.register(collaboratePlugin());

window.addEventListener('DOMContentLoaded', () => {
	collaborate.setupBridge();
});
```

React:

````javascript
import { collaboratePlugin } from '@inploi/plugin-collaborate';
import { initialiseSdk } from '@inploi/sdk';

// somewhere in your codebase
const sdk = initialiseInploiSdk({
	publishableKey: 'your-publishable-key',
	env: 'sandbox',
});
const collaborate = sdk.register(collaboratePlugin());

const App = () => {
	React.useEffect(() => {
    const abortController = new AbortController();
		collaborate.setupBridge({ signal: abortController.signal });
		return () => abortController.abort();
	}, []);

	return <div>Hello World</div>;
};

## From the CDN

You can also use the plugin from the CDN by adding the following script tag to your HTML:

```html
<script src="https://unpkg.com/@inploi/plugin-sdk@latest/cdn/index.js"></script>
<script src="https://unpkg.com/@inploi/plugin-collaborate@latest/cdn/index.js"></script>
<script>
  const collaborate = sdk.register(collaboratePlugin());
  window.addEventListener('DOMContentLoaded', () => {
	  collaborate.setupBridge();
  });
</script>
```

This will already setup the plugin when the DOM is ready.
````
npm package: @inploi/sdk
Description: This package contains the core functionality for the inploi SDK.
Latest version: 1.17.3

# @inploi/sdk

This package contains the core functionality for the inploi SDK.

## Installation

```bash
npm install @inploi/sdk
```

## Usage

You can initialise the SDK by calling `initialiseInploiSdk` with the following options:

```javascript
import { initialiseInploiSdk } from '@inploi/sdk';

const sdk = initialiseInploiSdk({
	publishableKey: 'your-publishable-key',
	env: 'sandbox',
});
```

## Plugins

You can write custom plugins via the `createPlugin` function. The plugin will have two dependencies injected: a `logger` service and a an `apiClient` service, which can be used to make requests to the inploi API.

Example:

```javascript
export const myCounterPlugin = createPlugin(({ logger, apiClient }) => {
	let count = 0;
	logger.info('myCounterPlugin initialised');

	return {
		add: () => {
			count++;
			logger.info(`count is now ${count}`);
		},
		getCount: () => count,
	};
});
```

## External dependencies

If your plugin requires external dependencies, you may want to wrap the `createPlugin` function with whatever it takes, to then generate a function that returns a plugin:

```javascript
import { createPlugin } from '@inploi/sdk';

type CounterExternalDeps = {onUpdate: (newCounter: number) => void};

export const myCounterPlugin = ({onUpdate}: CounterExternalDeps) =>
  createPlugin(({ logger, apiClient }) => {
    let count = 0;
    logger.info('myCounterPlugin initialised');

    return {
      add: () => {
        count++;
        logger.info(`count is now ${count}`);
        onUpdate(count);
      },
      getCount: () => count,
    };
  });
```

## Using plugins

Users of the SDK may invoke `sdk.registerPlugin` with a plugin to register it. The plugin will be initialised with the dependencies it requires, and the returned object will be returned to the user.

```javascript
const sdk = initialiseInploiSdk({
	publishableKey: 'your-publishable-key',
	env: 'sandbox',
});

const mySimplePlugin = sdk.registerPlugin(mySimplePlugin);

const myCounterPlugin = sdk.registerPlugin(myPluginWithDeps({ onUpdate: newCounter => console.log(newCounter) }));

myCounterPlugin.add();
```
npm package: @inprodi/core
Description: React componets focudes on developer experience
Latest version: 4.0.5

# Inprodi core
[![NPM](https://img.shields.io/npm/v/@inprodi/core)](https://www.npmjs.com/package/@inprodi/core)
[![npm](https://img.shields.io/npm/dm/@inprodi/core)](https://www.npmjs.com/package/@inprodi/core)

Inprodi core components library.

[View documentation](https://guileless-parfait-5f3c72.netlify.app/?path=/story/inprodi-icons-iconography--page)

## Installation

```bash
# With yarn
yarn add @inprodi/core

# With npm
npm install @inprodi/core
```

## License

MIT
npm package: @inprodi/icons
Description: Inprodi react icons library
Author: Nestor Eduardo Navarro Arizaga
Latest version: 4.4.0

# inprodi icons
[![NPM](https://img.shields.io/npm/v/@inprodi/icons)](https://www.npmjs.com/package/@inprodi/icons)
[![npm downloads](https://img.shields.io/npm/dm/@inprodi/icons)](https://www.npmjs.com/package/@inprodi/icons)

Inprodi icons library.

[View documentation](https://guileless-parfait-5f3c72.netlify.app/?path=/story/all-icons-iconography--page)


## Installation

```bash
# With yarn
yarn add @inprodi/icons

# With npm
npm install @inprodi/icons
```

### Usage
_Filled_
```jsx
import React from "react";
import { DiamondFilled } from "@inprodi/icons";

const App = () => {
  return <DiamondFilled />;
};

export default App;
```
_Outline_
```jsx
import React from "react";
import { UserOutline } from "@inprodi/icons";

const App = () => {
  return <UserOutline />;
};

export default App;
```
_Color_
```jsx
import React from "react";
import { WordColor } from "@inprodi/icons";

const App = () => {
  return <WordColor />;
};

export default App;
```
## Consideration
This package not pre-compile its ES modules, so you need to transpile it to avoid jest errors.
To setup the jest environment, you need to create the following files.

_babel.config.js_
````js
module.exports = {
	presets : [
		["@babel/preset-env", { targets : { node : "current" } }],
		[ "@babel/preset-react", { "runtime" : "automatic" } ],
		"@babel/preset-typescript",
	],
};

````
_jest.config.js_
````js
module.exports = {
	verbose         : true,
	testEnvironment : "jsdom",
	transformIgnorePatterns : [
		"/node_modules/(?!(@inprodi/icons)/)",
	],
};
````
To know about visist [unexpected token erro](https://jaketrent.com/post/jest-unexpected-token-typescript/) or [transformignorepatterns](https://jestjs.io/docs/configuration#transformignorepatterns-arraystring)
## License

MIT
npm package: @inprogress/design-system
Description: Design system made by InProgress Agency
Latest version: 0.0.35

# Design System InProgress Agency

## Description

This project is a design system developed for InProgress Agency. It is a React Native component library.

## Installation

**Install the package with the following command:**

```bash
yarn add @inprogress/design-system
```

**Required versions:**

- React 18.2.0+
- React Native 0.72.4+

**Install dependencies with the following command:**

```bash
yarn add @gorhom/bottom-sheet @miblanchard/react-native-slider @react-native-clipboard/clipboard @react-native-community/datetimepicker @react-navigation/bottom-tabs @react-navigation/native date-fns dateformat deep-equal react-native-confirmation-code-field react-native-gesture-handler react-native-mask-text react-native-phone-number-input react-native-portalize react-native-reanimated react-native-safe-area-context react-native-screens react-native-svg react-native-toast-message i18next react-i18next @reduxjs/toolkit react-redux styled-components
```

Follow the [instructions to install react-native-reanimated](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/getting-started/#installation)

## Documentation

📚 Complete documentation and component examples are available at:

https://inprogress-agency.github.io/inprogress-design-system
npm package: @inpsyde/prettier-config
Description: Shared Prettier configuration for Inpsyde projects
Author: Inpsyde GmbH
Latest version: 1.0.1

# Inpsyde Prettier Config

This package provides the shared [Prettier](https://prettier.io/) configuration we use across teams and projects at Inpsyde.

## Installation

```text
npm install --save-dev --save-exact prettier @inpsyde/prettier-config
```
## Usage

To use the shared configuration, add the following line to `package.json`:

```json
{
    "prettier": "@inpsyde/prettier-config"
}
```

And run this command from the command line:

```text
npx prettier ./resources/**/*.{js,ts,tsx} --write
```

You have to specify the correct path for the files you want to format based on your project! This is merely an example.

Check the [CLI](https://prettier.io/docs/en/cli.html) page in the official docs for more details about the command options and flags.

### Add your own rules

If you want to tweak the base configuration, then instead of defining the configuration in the `package.json`, create the `.prettierrc.js` file and add the following:

```js
module.exports = {
    ...require('@inpsyde/prettier-config'),
    semi: false, // or any other option
}
```
You can find more details about the [list of formatting options](https://prettier.io/docs/en/options.html) and the [configuration file](https://prettier.io/docs/en/configuration.html) in the official docs.

### Create a command

Instead of rerunning the `prettier` command from the command line, create a script in the `package.json`:

```json
{
    "scripts": {
        "prettier": "npx prettier ./resources/**/*.{js,ts,tsx} --write"
    }
}
```

## Crafted by Inpsyde

The team at [Inpsyde](https://inpsyde.com) is engineering the Web since 2006.

## License

Copyright (c) Inpsyde GmbH

This software is released under the [MIT](LICENSE) license.
npm package: @inpulse-ds/accordion
Description: A series of interactive titles stacked on top of each other, each one revealing a section of content.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/accordion

A series of interactive titles stacked on top of each other, each one revealing a section of content.

## Installation

```sh
pnpm add @inpuse-ds/accordion
# or
bun add @inpulse-ds/accordion
# or
yarn add @inpuse-ds/accordion
# or
npm install @inpulse-ds/accordion
```

## Documentation

Visit https://ds.inpulse.cx/components/accordion to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/aspect-ratio
Description: Presents content within the desired proportion.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/aspect-ratio

Presents content within the desired proportion.

## Installation

```sh
pnpm add @inpuse-ds/aspect-ratio
# or
bun add @inpulse-ds/aspect-ratio
# or
yarn add @inpuse-ds/aspect-ratio
# or
npm install @inpulse-ds/aspect-ratio
```

## Documentation

Visit https://ds.inpulse.cx/components/aspect-ratio to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/avatar
Description: A fallback image element to represent a user.
Author: Jo Santana
Latest version: 3.1.0

# @inpuse-ds/avatar

A fallback image element to represent a user.

## Installation

```sh
pnpm add @inpuse-ds/avatar
# or
bun add @inpulse-ds/avatar
# or
yarn add @inpuse-ds/avatar
# or
npm install @inpulse-ds/avatar
```

## Documentation

Visit https://ds.inpulse.cx/components/avatar to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/breadcrumb
Description: Presents the path to the current route through a hierarchy of links.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/breadcrumb

Presents the path to the current route through a hierarchy of links.

## Installation

```sh
pnpm add @inpuse-ds/breadcrumb
# or
bun add @inpulse-ds/breadcrumb
# or
yarn add @inpuse-ds/breadcrumb
# or
npm install @inpulse-ds/breadcrumb
```

## Documentation

Visit https://ds.inpulse.cx/components/breadcrumb to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/button
Description: Displays a button or a component that acts like a button.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/button

Displays a button or a component that acts like a button.

## Installation

```sh
pnpm add @inpuse-ds/button
# or
bun add @inpulse-ds/button
# or
yarn add @inpuse-ds/button
# or
npm install @inpulse-ds/button
```

## Documentation

Visit https://ds.inpulse.cx/components/button to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/calendar
Description: A date field that allows users to enter and edit date.
Author: Jo Santana
Latest version: 3.0.1

# @inpuse-ds/calendar

A date field that allows users to enter and edit date.

## Installation

```sh
pnpm add @inpuse-ds/calendar
# or
bun add @inpulse-ds/calendar
# or
yarn add @inpuse-ds/calendar
# or
npm install @inpulse-ds/calendar
```

## Documentation

Visit https://ds.inpulse.cx/components/calendar to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/checkbox
Description: A set of selectable buttons - where only one element can be selected at a time.
Author: Jo Santana
Latest version: 3.0.1

# @inpuse-ds/checkbox

A set of selectable buttons - where only one element can be selected at a time.

## Installation

```sh
pnpm add @inpuse-ds/checkbox
# or
bun add @inpulse-ds/checkbox
# or
yarn add @inpuse-ds/checkbox
# or
npm install @inpulse-ds/checkbox
```

## Documentation

Visit https://ds.inpulse.cx/components/checkbox to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/core
Description: Design System plugin for Tailwind config.
Author: Jo Santana
Latest version: 0.4.2

# @inpuse-ds/core

Design System plugin for Tailwind config.

## Installation

```sh
npm i @inpuse-ds/core
# or
yarn add @inpuse-ds/core
# or
pnpm add @inpuse-ds/core
```
npm package: @inpulse-ds/date-picker
Description: All usage date-picker component.
Author: Jo Santana
Latest version: 0.2.19

# @inpuse-ds/date-picker

All usage date-picker component.

## Installation

```sh
npm i @inpuse-ds/date-picker
# or
yarn add @inpuse-ds/date-picker
# or
pnpm add @inpuse-ds/date-picker
```
npm package: @inpulse-ds/dialog
Description: Unlike a Toast, the Dialog interrupts the user experience, adding a new step to their navigation journey.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/dialog

Unlike a Toast, the Dialog interrupts the user experience, adding a new step to their navigation journey.

## Installation

```sh
pnpm add @inpuse-ds/dialog
# or
bun add @inpulse-ds/dialog
# or
yarn add @inpuse-ds/dialog
# or
npm install @inpulse-ds/dialog
```

## Documentation

Visit https://ds.inpulse.cx/components/dialog to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/dropdown-menu
Description: Displays a floating menu to the user — such as a set of actions or functions — triggered by a button.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/dropdown-menu

Displays a floating menu to the user — such as a set of actions or functions — triggered by a button.

## Installation

```sh
pnpm add @inpuse-ds/dropdown-menu
# or
bun add @inpulse-ds/dropdown-menu
# or
yarn add @inpuse-ds/dropdown-menu
# or
npm install @inpulse-ds/dropdown-menu
```

## Documentation

Visit https://ds.inpulse.cx/components/dropdown-menu to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/file
Description: File component to use on forms. It can handle uploads.
Author: Jo Santana
Latest version: 0.0.20

# @inpuse-ds/file

File component to use on forms. It can handle uploads.

## Installation

```sh
npm i @inpuse-ds/file
# or
yarn add @inpuse-ds/file
# or
pnpm add @inpuse-ds/file
```
npm package: @inpulse-ds/flip
Description: Flips an element, revealing its hidden face. It can be used to create transition effects and animations.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/flip

Flips an element, revealing its hidden face. It can be used to create transition effects and animations.

## Installation

```sh
pnpm add @inpuse-ds/flip
# or
bun add @inpulse-ds/flip
# or
yarn add @inpuse-ds/flip
# or
npm install @inpulse-ds/flip
```

## Documentation

Visit https://ds.inpulse.cx/components/flip to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/form
Description: An abstraction layer so that you can put together your form very close to how you would in the pre-React world.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/form

An abstraction layer so that you can put together your form very close to how you would in the pre-React world.

## Installation

```sh
pnpm add @inpuse-ds/form
# or
bun add @inpulse-ds/form
# or
yarn add @inpuse-ds/form
# or
npm install @inpulse-ds/form
```

## Documentation

Visit https://ds.inpulse.cx/components/form to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/icons
Description: A high-quality selection of 409 clean, consistent, and neutral icons crafted specifically for modern UI design.
Author: Jo Santana
Latest version: 3.0.1

# @inpuse-ds/icons

A high-quality selection of 409 clean, consistent, and neutral icons crafted specifically for modern UI design.

## Installation

```sh
pnpm add @inpuse-ds/slot
# or
bun add @inpulse-ds/slot
# or
yarn add @inpuse-ds/slot
# or
npm install @inpulse-ds/slot
```

## Documentation

Visit https://ds.inpulse.cx/components/slot to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/input
Description: Features a multipurpose text field.
Author: Jo Santana
Latest version: 3.1.0

# @inpuse-ds/input

Features a multipurpose text field.

## Installation

```sh
pnpm add @inpuse-ds/input
# or
bun add @inpulse-ds/input
# or
yarn add @inpuse-ds/input
# or
npm install @inpulse-ds/input
```

## Documentation

Visit https://ds.inpulse.cx/components/input to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/label
Description: Renders a label in an accessible form, with its respective controls.
Author: Jo Santana
Latest version: 3.1.0

# @inpuse-ds/label

Renders a label in an accessible form, with its respective controls.

## Installation

```sh
pnpm add @inpuse-ds/label
# or
bun add @inpulse-ds/label
# or
yarn add @inpuse-ds/label
# or
npm install @inpulse-ds/label
```

## Documentation

Visit https://ds.inpulse.cx/components/label to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/loading
Description: This element visually represents that the application is busy.
Author: Jo Santana
Latest version: 3.0.1

# @inpuse-ds/loading

This element visually represents that the application is busy.

## Installation

```sh
pnpm add @inpuse-ds/loading
# or
bun add @inpulse-ds/loading
# or
yarn add @inpuse-ds/loading
# or
npm install @inpulse-ds/loading
```

## Documentation

Visit https://ds.inpulse.cx/components/loading to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/otc
Description: It presents a group of text fields, each accepting a single character, forming a code.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/otc

It presents a group of text fields, each accepting a single character, forming a code.

## Installation

```sh
pnpm add @inpuse-ds/otc
# or
bun add @inpulse-ds/otc
# or
yarn add @inpuse-ds/otc
# or
npm install @inpulse-ds/otc
```

## Documentation

Visit https://ds.inpulse.cx/components/otc to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/pagination
Description: Set of page navigation elements, with links that lead to specific pages and navigation buttons for the previous and next page.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/pagination

Set of page navigation elements, with links that lead to specific pages and navigation buttons for the previous and next page.

## Installation

```sh
pnpm add @inpuse-ds/pagination
# or
bun add @inpulse-ds/pagination
# or
yarn add @inpuse-ds/pagination
# or
npm install @inpulse-ds/pagination
```

## Documentation

Visit https://ds.inpulse.cx/components/pagination to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/popover
Description: Presents content within a portal, triggered by a button.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/popover

Presents content within a portal, triggered by a button.

## Installation

```sh
pnpm add @inpuse-ds/popover
# or
bun add @inpulse-ds/popover
# or
yarn add @inpuse-ds/popover
# or
npm install @inpulse-ds/popover
```

## Documentation

Visit https://ds.inpulse.cx/components/popover to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/progress
Description: Progress component to keep track of evolution.
Author: Jo Santana
Latest version: 0.1.12

# @inpuse-ds/progress

Progress component to keep track of evolution. Inspired by [Nikita Hlopov](https://nikitahl.com/svg-circle-progress) article.

## Installation

```sh
npm i @inpuse-ds/progress
# or
yarn add @inpuse-ds/progress
# or
pnpm add @inpuse-ds/progress
```
npm package: @inpulse-ds/radio
Description: A set of selectable buttons - where only one element can be selected at a time.
Author: Jo Santana
Latest version: 3.0.1

# @inpuse-ds/radio

A set of selectable buttons - where only one element can be selected at a time.

## Installation

```sh
pnpm add @inpuse-ds/radio
# or
bun add @inpulse-ds/radio
# or
yarn add @inpuse-ds/radio
# or
npm install @inpulse-ds/radio
```

## Documentation

Visit https://ds.inpulse.cx/components/radio to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/select
Description: Presents a list of options for the user to choose from — activated by a button.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/select

Presents a list of options for the user to choose from — activated by a button.

## Installation

```sh
pnpm add @inpuse-ds/select
# or
bun add @inpulse-ds/select
# or
yarn add @inpuse-ds/select
# or
npm install @inpulse-ds/select
```

## Documentation

Visit https://ds.inpulse.cx/components/select to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/skeleton
Description: Use to present a placeholder while content is loading.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/skeleton

Use to present a placeholder while content is loading.

## Installation

```sh
pnpm add @inpuse-ds/skeleton
# or
bun add @inpulse-ds/skeleton
# or
yarn add @inpuse-ds/skeleton
# or
npm install @inpulse-ds/skeleton
```

## Documentation

Visit https://ds.inpulse.cx/components/skeleton to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/slot
Description: Merges any properties to the element directly below it.
Author: Jo Santana
Latest version: 3.0.1

# @inpuse-ds/slot

Merges any properties to the element directly below it.

## Installation

```sh
pnpm add @inpuse-ds/slot
# or
bun add @inpulse-ds/slot
# or
yarn add @inpuse-ds/slot
# or
npm install @inpulse-ds/slot
```

## Documentation

Visit https://ds.inpulse.cx/components/slot to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/switch
Description: An element that allows you to toggle the Boolean value of a field.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/switch

An element that allows you to toggle the Boolean value of a field.

## Installation

```sh
pnpm add @inpuse-ds/switch
# or
bun add @inpulse-ds/switch
# or
yarn add @inpuse-ds/switch
# or
npm install @inpulse-ds/switch
```

## Documentation

Visit https://ds.inpulse.cx/components/switch to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/tabs
Description: A set of content sections - where only one can be displayed at a time.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/tabs

A set of content sections - where only one can be displayed at a time.

## Installation

```sh
pnpm add @inpuse-ds/tabs
# or
bun add @inpulse-ds/tabs
# or
yarn add @inpuse-ds/tabs
# or
npm install @inpulse-ds/tabs
```

## Documentation

Visit https://ds.inpulse.cx/components/tabs to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/theme
Description: Theme component to set colors, typography and so on for all other components.
Author: Jo Santana
Latest version: 0.4.0

# @inpuse-ds/theme

Theme component to set primary and secondary colors used by all other components.

## Installation

```sh
npm i @inpuse-ds/theme
# or
yarn add @inpuse-ds/theme
# or
pnpm add @inpuse-ds/theme
```
npm package: @inpulse-ds/toast
Description: Displays a message for a short period of time.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/toast

Displays a message for a short period of time.

## Installation

```sh
pnpm add @inpuse-ds/toast
# or
bun add @inpulse-ds/toast
# or
yarn add @inpuse-ds/toast
# or
npm install @inpulse-ds/toast
```

## Documentation

Visit https://ds.inpulse.cx/components/toast to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/tooltip
Description: A floating element that displays information related to another element when the element receives keyboard focus or when the mouse hovers over it.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/tooltip

A floating element that displays information related to another element when the element receives keyboard focus or when the mouse hovers over it.

## Installation

```sh
pnpm add @inpuse-ds/tooltip
# or
bun add @inpulse-ds/tooltip
# or
yarn add @inpuse-ds/tooltip
# or
npm install @inpulse-ds/tooltip
```

## Documentation

Visit https://ds.inpulse.cx/components/tooltip to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ds/visually-hidden
Description: Hides content visually, in an accessible way.
Author: Jo Santana
Latest version: 3.0.0

# @inpuse-ds/visually-hidden

Hides content visually, in an accessible way.

## Installation

```sh
pnpm add @inpuse-ds/visually-hidden
# or
bun add @inpulse-ds/visually-hidden
# or
yarn add @inpuse-ds/visually-hidden
# or
npm install @inpulse-ds/visually-hidden
```

## Documentation

Visit https://ds.inpulse.cx/components/visually-hidden to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ds/blob/main/LICENSE).
npm package: @inpulse-ui/accordion
Description: A series of interactive titles stacked on top of each other, each one revealing a section of content.
Author: Jo Santana
Latest version: 3.0.1

# @inpulse-ui/accordion

A series of interactive titles stacked on top of each other, each one revealing a section of content.

## Installation

```sh
pnpm add @inpulse-ui/accordion
# or
bun add @inpulse-ui/accordion
# or
yarn add @inpulse-ui/accordion
# or
npm install @inpulse-ui/accordion
```

## Documentation

Visit https://ui.inpulse.cx/components/content/accordion to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ui/blob/main/LICENSE).
npm package: @inpulse-ui/aspect-ratio
Description: Presents content within the desired proportion.
Author: Jo Santana
Latest version: 3.0.2

# @inpulse-ui/aspect-ratio

Presents content within the desired proportion.

## Installation

```sh
pnpm add @inpulse-ui/aspect-ratio
# or
bun add @inpulse-ui/aspect-ratio
# or
yarn add @inpulse-ui/aspect-ratio
# or
npm install @inpulse-ui/aspect-ratio
```

## Documentation

Visit https://ui.inpulse.cx/components/content/aspect-ratio to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ui/blob/main/LICENSE).
npm package: @inpulse-ui/avatar
Description: A fallback image element to represent a user.
Author: Jo Santana
Latest version: 3.2.3

# @inpulse-ui/avatar

A fallback image element to represent a user.

## Installation

```sh
pnpm add @inpulse-ui/avatar
# or
bun add @inpulse-ui/avatar
# or
yarn add @inpulse-ui/avatar
# or
npm install @inpulse-ui/avatar
```

## Documentation

Visit https://ui.inpulse.cx/components/content/avatar to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ui/blob/main/LICENSE).
npm package: @inpulse-ui/breadcrumb
Description: Presents the path to the current route through a hierarchy of links.
Author: Jo Santana
Latest version: 3.0.2

# @inpulse-ui/breadcrumb

Presents the path to the current route through a hierarchy of links.

## Installation

```sh
pnpm add @inpulse-ui/breadcrumb
# or
bun add @inpulse-ui/breadcrumb
# or
yarn add @inpulse-ui/breadcrumb
# or
npm install @inpulse-ui/breadcrumb
```

## Documentation

Visit https://ui.inpulse.cx/components/navigation/breadcrumb to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ui/blob/main/LICENSE).
npm package: @inpulse-ui/button
Description: Displays a button or a component that acts like a button.
Author: Jo Santana
Latest version: 3.0.1

# @inpulse-ui/button

Displays a button or a component that acts like a button.

## Installation

```sh
pnpm add @inpulse-ui/button
# or
bun add @inpulse-ui/button
# or
yarn add @inpulse-ui/button
# or
npm install @inpulse-ui/button
```

## Documentation

Visit https://ui.inpulse.cx/components/forms/button to view the documentation.

## License

Licensed under the [MIT license](https://github.com/inpulse-cx/ui/blob/main/LICENSE).