open-index/open-npm huggingface dataset:
npm package: @garmadon/test-story-system
Description: Storybook design systems tutorial
Author: rogozel
Latest version: 0.1.2

# myproject

## Project setup
```
npm install
```

### Compiles and hot-reloads for development
```
npm run serve
```

### Compiles and minifies for production
```
npm run build
```

### Lints and fixes files
```
npm run lint
```

### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
npm package: @garmash/hyper-statusline
Description: Status Line Plugin for Hyper
Latest version: 1.8.0

# hyper-statusline [![hyper](https://img.shields.io/badge/Hyper-v1.3.3-brightgreen.svg)](https://github.com/zeit/hyper/releases/tag/1.3.3) [![npm](https://img.shields.io/npm/v/hyper-statusline.svg?maxAge=86400?style=flat-square)](https://www.npmjs.com/package/hyper-statusline) [![npm](https://img.shields.io/npm/dt/hyper-statusline.svg?maxAge=86400?style=flat-square)](https://www.npmjs.com/package/hyper-statusline)

> Status Line Plugin for [Hyper](https://hyper.is). Shows clickable & useful information. Matches any theme.

![hyper-statusline](https://cloud.githubusercontent.com/assets/1430576/21891665/14d29070-d8d4-11e6-9e98-b12ed28be93a.png)


## Install

Add following to your `~/.hyper.js` config.

```javascript
module.exports = {
  ...
  plugins: ['hyper-statusline']
  ...
}
```


## Config

Add following to `~/.hyper.js`

### Change Git Dirty Color
Expected value is `CSS color`

```javascript
module.exports = {
  config: {
    ...
      hyperStatusLine: {
        dirtyColor: 'salmon',
      }
    ...
  }
}
```

### Change Git Ahead Color
Expected value is `CSS color`

```javascript
module.exports = {
  config: {
    ...
      hyperStatusLine: {
        aheadColor: 'ivory',
      }
    ...
  }
}
```

### Disable Footer Transparency
Default value is set to `true`

```javascript
module.exports = {
  config: {
    ...
      hyperStatusLine: {
        footerTransparent: false,
      }
    ...
  }
}
```


## Theme

* [hyper-chesterish](https://github.com/henrikdahl/hyper-chesterish)


## License

MIT © Henrik
npm package: @garment/plugin-runner-babel
Description: <!-- description src/index.ts firstInterface --> Allows you to transpile javascript files using [Babel](https://babeljs.io).
Latest version: 0.18.0

# @garment/plugin-runner-babel

<!-- description src/index.ts firstInterface -->
Allows you to transpile javascript files using [Babel](https://babeljs.io).


## Installation

<!-- installation -->
`npm i @garment/plugin-runner-babel`

or

`yarn add @garment/plugin-runner-babel`

## Example usage

<!-- example src/index.ts firstInterface -->
```json
{
    "runner": "babel",
    "input": "{{projectDir}}/src",
    "output": "{{projectDir}}/lib",
    "options": {
        "babelConfig": "babel.config.js",
        "env": "es",
        "sourceMaps": true
    }
}
```

## API

<!-- api src/index.ts firstInterface  -->
`configFile: path`

**Default:** `asdas`

Path to babel config

---

`env: string`

The current active environment used during configuration loading.

---

`babelrc: boolean`

Specify whether or not to use .babelrc and .babelignore files.

---

`sourceMaps: boolean`

Generate a sourcemap for the code

---

`sourceRoot: path`

The sourceRoot fields to set in the generated source map if one is desired.
npm package: @garment/plugin-runner-bin
Description: <!-- description src/index.ts firstInterface --> Executes system or node binary file with given args.
Latest version: 0.18.0

# @garment/plugin-runner-bin

<!-- description src/index.ts firstInterface -->
Executes system or node binary file with given args.


## Installation

<!-- installation -->
`npm i @garment/plugin-runner-bin`

or

`yarn add @garment/plugin-runner-bin`

## Example usage

<!-- example src/index.ts firstInterface -->
```json
{
    "runner": "bin",
    "options": {
        "bin": "echo",
        "args": "garment is phenomenal"
    }
}
```

## API

<!-- api src/index.ts firstInterface  -->
`bin: string`

The name of the binary to execute. Garment will look up the path with the bin name you provided.

---

`args: string | string[] | { [key: string]: string | boolean | string[]; }`

The arguments to pass to the given `bin`.

---

`env: { [key: string]: string; }`

Environment variables

---

`stream: boolean`

Stream all the console output, otherwise it will be collected and output after the execution

---

`longRunning: boolean`

Not wait until the process is finished
npm package: @garment/plugin-runner-clean
Description: <!-- description src/index.ts firstInterface --> Deletes files and folders using glob patterns.
Latest version: 0.18.0

# @garment/plugin-runner-clean

<!-- description src/index.ts firstInterface -->
Deletes files and folders using glob patterns.


## Installation

<!-- installation -->
`npm i @garment/plugin-runner-clean`

or

`yarn add @garment/plugin-runner-clean`

## Example usage

<!-- example src/index.ts firstInterface -->
## API

<!-- api src/index.ts firstInterface  -->
npm package: @garment/plugin-runner-copy
Description: <!-- description src/index.ts firstInterface --> Copies files and folders.
Latest version: 0.18.0

# @garment/plugin-runner-copy

<!-- description src/index.ts firstInterface -->
Copies files and folders.


## Installation

<!-- installation -->
`npm i @garment/plugin-runner-copy`

or

`yarn add @garment/plugin-runner-copy`

## Example usage

<!-- example src/index.ts firstInterface -->
## API

<!-- api src/index.ts firstInterface  -->
npm package: @garment/plugin-runner-eslint
Description: <!-- description src/index.ts firstInterface --> Runs ESLint
Latest version: 0.18.0

# @garment/plugin-runner-eslint

<!-- description src/index.ts firstInterface -->
Runs ESLint


## Installation

<!-- installation -->
`npm i @garment/plugin-runner-eslint`

or

`yarn add @garment/plugin-runner-eslint`

## Example usage

<!-- example src/index.ts firstInterface -->
```json
{
    "runner": "eslint",
    "input": "{{projectFolder}}/src",
    "options": {
        "configFile": ".eslintconfig.json"
    }
}
```

## API

<!-- api src/index.ts firstInterface  -->
`configFile: path`

The config file to load ESLint's configuration from.

---

`fix: boolean`

Fix automatically linting errors.
npm package: @garment/plugin-runner-jest
Description: <!-- description src/index.ts firstInterface --> Runs Jest
Latest version: 0.18.1

# @garment/plugin-runner-jest

<!-- description src/index.ts firstInterface -->
Runs Jest


## Installation

<!-- installation -->
`npm i @garment/plugin-runner-jest`

or

`yarn add @garment/plugin-runner-jest`

## Example usage

<!-- example src/index.ts firstInterface -->
```json
{
    "runner": "jest",
    "options": {
        "jestConfig": "jest.config.js"
    }
}
```

## API

<!-- api src/index.ts firstInterface  -->
`configFile: path`

**Default:** `jest.config.js`

The config file to load Jest's config from.

---

`testPathPattern: string`

---

`updateSnapshot: boolean`

---

`u: boolean`

---

`_: string | boolean`
npm package: @garment/plugin-runner-lighthouse
Description: <!-- description src/index.ts firstInterface --> Runs Lighthouse
Latest version: 0.18.0

# @garment/plugin-runner-lighthouse

<!-- description src/index.ts firstInterface -->
Runs Lighthouse


## Installation

<!-- installation -->
`npm i @garment/plugin-runner-lighthouse`

or

`yarn add @garment/plugin-runner-lighthouse`

## Example usage

<!-- example src/index.ts firstInterface -->
```json
{
    "runner": "lighthouse",
    "output": "{{projectDir}}/lighthouse-output",
    "options": {
        "port": 3000,
        "budget": "{{projectDir}}/budget.json",
        "scoreThreshold": {
            "performance": 90,
            "accessibility": 90,
            "seo": 100,
            "pwa": 80,
            "best-practices": 80
        }
    }
}
```

## API

<!-- api src/index.ts firstInterface  -->
`url: string`

---

`port: number`

---

`chromeFlags: any`

---

`budget: path`

---

`scoreThreshold: { [key: string]: number; }`

---

`config: path`

---

`reportFormat: "html" | "json"`
npm package: @garment/plugin-runner-next
Description: <!-- description src/index.ts firstInterface --> Runs Next.js
Latest version: 0.18.0

# @garment/plugin-runner-next

<!-- description src/index.ts firstInterface -->
Runs Next.js


## Installation

<!-- installation -->
`npm i @garment/plugin-runner-next`

or

`yarn add @garment/plugin-runner-next`

## Example usage

<!-- example src/index.ts firstInterface -->
```json
{
    "runner": "next",
    "options": {
        "appPath": "{{projectDir}}"
    }
}
```

## API

<!-- api src/index.ts firstInterface  -->
`appPath: path`

Path to app

---

`command: "dev" | "start" | "build" | "export" | "telemetry"`

**Default:** `dev`

Command to execute
npm package: @garment/plugin-runner-postcss
Description: <!-- description src/index.ts firstInterface --> Runs PostCSS
Latest version: 0.18.0

# @garment/plugin-runner-postcss

<!-- description src/index.ts firstInterface -->
Runs PostCSS


## Installation

<!-- installation -->
`npm i @garment/plugin-runner-postcss`

or

`yarn add @garment/plugin-runner-postcss`

## Example usage

<!-- example src/index.ts firstInterface -->
```json
{
    "runner": "postcss",
    "input": "{{projectDir}}/src",
    "output": "{{projectDir}}/lib",
    "options": {
        "configFile": "postcss.config.js"
    }
}
```

## API

<!-- api src/index.ts firstInterface  -->
`configFile: path`

**Default:** `postcss.config.js`

The config file to load PostCSS config from.
npm package: @garment/plugin-runner-publish
Description: <!-- description src/index.ts firstInterface --> Packs and publishes packages
Latest version: 0.18.0

# @garment/plugin-runner-publish

<!-- description src/index.ts firstInterface -->
Packs and publishes packages


## Installation

<!-- installation -->
`npm i @garment/plugin-runner-publish`

or

`yarn add @garment/plugin-runner-publish`

## Example usage

<!-- example src/index.ts firstInterface -->
```json
{
    "runner": "publish"
}
```

## API

<!-- api src/index.ts firstInterface  -->
`npmrc: path`

The npm config file to use

---

`errorIfPublished: boolean`

Output error instead of warning in case of package was already published

---

`tag: string`

Tag to use
npm package: @garment/plugin-runner-serve
Description: <!-- description src/index.ts firstInterface --> Serve the content of the directory
Latest version: 0.18.0

# @garment/plugin-runner-serve

<!-- description src/index.ts firstInterface -->
Serve the content of the directory


## Installation

<!-- installation -->
`npm i @garment/plugin-runner-serve`

or

`yarn add @garment/plugin-runner-serve`

## Example usage

<!-- example src/index.ts firstInterface -->
```json
{
    "runner": "serve",
    "options": {
        "publicDir": "{{projectDir}}/build",
        "port": "3000"
    }
}
```

## API

<!-- api src/index.ts firstInterface  -->
`publicDir: path`

The directory to serve files from

---

`port: number`

Port number
npm package: @garment/plugin-runner-storybook
Description: Runs Storybook.
Latest version: 0.18.0

# runner-storybook

Runs Storybook.

## Installation

`npm i @garment/plugin-runner-storybook`

or

`yarn add @garment/plugin-runner-storybook`

## start

<!-- description src/start/index.ts firstInterface -->
Start Storybook in development mode


### Example usage

<!-- example src/start/index.ts firstInterface -->
```json
{
    "runner": "storybook",
    "options": {
        "configDir": "{{projectDir}}/.storybook",
        "port": 3001,
        "host": "localhost"
    }
}
```

### API

<!-- api src/start/index.ts firstInterface  -->
`configDir: path`

**Default:** `{{projectDir}}/.storybook`

The config folder to start Storybook from

---

`port: number`

**Default:** `9009`

Port to serve Storybook

---

`host: string`

**Default:** `localhost`

Host to serve Storybook


## build

<!-- description src/build/index.ts firstInterface -->
Build storybook


### API

<!-- api src/build/index.ts firstInterface  -->
`configDir: path`

**Default:** `{{projectDir}}/.storybook`

The config folder to build Storybook from
npm package: @garment/plugin-runner-stylelint
Description: <!-- description src/index.ts firstInterface --> Runs stylelint
Latest version: 0.18.0

# @garment/plugin-runner-stylelint

<!-- description src/index.ts firstInterface -->
Runs stylelint


## Installation

<!-- installation -->
`npm i @garment/plugin-runner-stylelint`

or

`yarn add @garment/plugin-runner-stylelint`

## Example usage

<!-- example src/index.ts firstInterface -->
```json
{
    "runner": "stylelint",
    "input": "{{projectDir}}/src/**/*.css",
    "output": "{{projectDir}}/lib",
    "options": {
        "configFile": ".stylelintconfig.json",
        "fix": true
    }
}
```

## API

<!-- api src/index.ts firstInterface  -->
`configFile: path`

The config file to load stylelint config from

---

`fix: boolean`

Fix automatically linting errors
npm package: @garment/plugin-runner-ts
Description: <!-- description src/index.ts firstInterface --> Runs TypeScript compiler
Latest version: 0.18.0

# @garment/plugin-runner-ts

<!-- description src/index.ts firstInterface -->
Runs TypeScript compiler


## Installation

<!-- installation -->
`npm i @garment/plugin-runner-ts`

or

`yarn add @garment/plugin-runner-ts`

## Example usage

<!-- example src/index.ts firstInterface -->
```json
{
    "runner": "ts",
    "input": "{{projectDir}}/src/**/*.ts",
    "output": "{{projectDir}}/lib",
    "options": {
        "configFile": "tsconfig.lib.json"
    }
}
```

## API

<!-- api src/index.ts firstInterface  -->
`configFile: path`

**Default:** `tsconfig.json`

Path to tsconfig.json file
npm package: @garment/plugin-runner-typed-css-modules
Description: <!-- description src/index.ts firstInterface --> Generates types definitions for CSS modules
Latest version: 0.18.0

# @garment/plugin-runner-ts

<!-- description src/index.ts firstInterface -->
Generates types definitions for CSS modules


## Installation

<!-- installation -->
`npm i @garment/plugin-runner-typed-css-modules`

or

`yarn add @garment/plugin-runner-typed-css-modules`
npm package: @garment/plugin-runner-typescript-json-schema
Description: <!-- description src/index.ts firstInterface --> Generates schema.json from an interface
Latest version: 0.18.0

# @garment/plugin-runner-typescript-json-schema

<!-- description src/index.ts firstInterface -->
Generates schema.json from an interface


## Installation

<!-- installation -->
`npm i @garment/plugin-runner-typescript-json-schema`

or

`yarn add @garment/plugin-runner-typescript-json-schema`

## Example usage

<!-- example src/index.ts firstInterface -->
```json
{
    "runner": "typescript-json-schema",
    "input": "{{projectDir}}/src/**/index.ts",
    "output": [ "{{projectDir}}/lib", "{{projectDir}}/src"],
    "options": {
        "pattern": "*Options"
    }
}
```

## API

<!-- api src/index.ts firstInterface  -->
`pattern: string`

Pattern for interface name
npm package: @garment/plugin-runner-wdio
Description: Runs Webdriver.
Latest version: 0.18.0

# runner-wdio

Runs Webdriver.

## Installation

`npm i @garment/plugin-runner-wdio`

or

`yarn add @garment/plugin-runner-wdio`

## Example usage

```json
{
  "runner": "wdio",
  "options": {
    "configFile": "wdio.conf.js",
    "testSpecsPath": "{{projectDir}}/tests/specs/**/*.js"
  }
}
```

## API

`configFile: string`

The config file to load Webdriver's config from.

`testSpecsPath: string`

The path to the specs.
npm package: @garments/react-native
Description: styled-components for React Native optimized for performance.
Author: Georgiy Tarasov
Latest version: 0.1.2

# Garments

Garments is a tiny CSS-in-JS library around React Native `style` prop that provides `styled-components`-like API. It includes features from different common CSS-in-JS libraries to simplify styling:

* `styled` API
* basic support of variants
* static theming
* props interpolation

## Installation

Using yarn:

```
yarn add @garments/react-native
```

Using npm:

```
npm install @garments/react-native
```

## Usage Example

```typescript
import { styled } from '@garments/react-native';
import { View } from 'react-native';

const Container = styled(View)({
  flex: 1,
})
```
npm package: @garming21/jm-plus
Description: JM Plus 组件库 - 基于 Vue 3 + Element Plus 的组件库
Latest version: 1.0.2

# JM Plus 组件库

## 项目结构

```
jm-plus/
├── packages/
│   ├── components/          # 组件源码
│   │   └── button/          # Button 组件
│   ├── theme-chalk/         # 样式主题包
│   │   ├── src/             # SCSS 源文件
│   │   └── mixins/          # SCSS 混入
│   └── jm-plus/             # 主入口包
├── src/                     # 示例应用
├── package.json
├── pnpm-workspace.yaml      # Monorepo 配置
└── vite.config.ts
```

## 快速开始

### 1. 安装依赖

```bash
cd jm-plus
pnpm install
```

### 2. 运行示例

```bash
pnpm dev
```

### 3. 构建组件库

```bash
pnpm build
```

## 组件使用

### 全局注册

```typescript
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
// 注意：发布后包名会是 @你的用户名/jm-plus
import JmPlus from '@你的用户名/jm-plus'

const app = createApp(App)
app.use(ElementPlus)
app.use(JmPlus)
app.mount('#app')
```

### 按需引入

```vue
<script setup lang="ts">
// 注意：发布后包名会是 @你的用户名/jm-plus
import { JmButton } from '@你的用户名/jm-plus'
</script>

<template>
  <JmButton type="primary">按钮</JmButton>
</template>
```

## 组件特性

### JmButton 组件

- 基于 Element Plus Button 封装
- 支持防抖功能（debounce）
- 可自定义防抖时间（debounceTime）
- 继承所有 Element Plus Button 的属性

## 扩展组件

要添加新组件，只需：

1. 在 `packages/components/` 下创建新组件目录
2. 实现组件代码
3. 在 `packages/components/index.ts` 中导出
4. 在 `packages/jm-plus/component.ts` 中注册

## 已完成

✅ **样式系统**：已创建 `packages/theme-chalk` 包，支持 SCSS 样式管理  
✅ **构建系统**：已配置完整的 Rollup + ESBuild 构建流程，支持：
  - 全量构建（UMD + ESM 格式）
  - 按需加载模块构建（ESM + CJS 格式）
  - TypeScript 类型定义生成
  - 样式文件构建和压缩
  - 自动版本号更新  
✅ **单元测试**：已集成 Vitest 测试框架，支持：
  - 组件单元测试
  - 代码覆盖率报告
  - 测试 UI 界面
  - 自动化测试流程  
✅ **文档站点**：已使用 VitePress 搭建文档站点，支持：
  - 组件文档展示
  - 在线示例演示
  - 代码高亮
  - 响应式设计

## 构建说明

### 构建命令

```bash
# 完整构建（清理 + 样式 + 主包）
pnpm build

# 仅构建样式
pnpm build:theme

# 仅构建主包
pnpm build:main

# 清理构建产物
pnpm clean
```

### 构建产物

构建完成后，产物位于 `dist/jm-plus/` 目录：

```
dist/jm-plus/
├── es/              # ESM 格式（按需加载）
├── lib/             # CJS 格式（按需加载）
├── index.js         # UMD 格式（全量）
├── index.mjs        # ESM 格式（全量）
├── index.min.js     # UMD 格式（压缩）
├── index.min.mjs    # ESM 格式（压缩）
├── package.json     # 包配置
└── README.md        # 说明文档
```

## 测试

### 运行测试

```bash
# 运行测试（监听模式）
pnpm test

# 运行测试（单次）
pnpm test:run

# 运行测试并生成覆盖率报告
pnpm test:coverage

# 打开测试 UI 界面
pnpm test:ui
```

### 测试覆盖率

测试覆盖率阈值设置为 60%，包括：
- 行覆盖率（lines）
- 函数覆盖率（functions）
- 分支覆盖率（branches）
- 语句覆盖率（statements）

覆盖率报告会生成在 `coverage/` 目录下。

## 文档站点

### 本地开发

```bash
# 进入文档目录
cd docs

# 安装依赖（如果还没安装）
pnpm install

# 启动开发服务器
pnpm dev
```

文档站点将在 `http://localhost:5173` 启动。

### 构建文档

```bash
# 构建文档站点
cd docs
pnpm build

# 预览构建结果
pnpm preview
```

构建产物会生成在 `docs/.vitepress/dist` 目录。

## 下一步

- 添加更多组件
- 配置自动导入解析器
npm package: @garmingo/join-react
Description: Allow joining react elements similar to strings
Author: Garmingo
Latest version: 2.0.3

# Join React
Extends the Array prototype to allow joining react elements similar to strings

## Installation
```bash
npm install @garmingo/join-react
```

## Usage
joinReact can be used by either importing the module or by importing the prototype extension directly.

### Importing the function
```typescript
import { joinReact } from '@garmingo/join-react';

const elements = [
    <div>1</div>,
    <div>2</div>,
    <div>3</div>,
];

const joinedElements = joinReact(elements, <div>Separator</div>);
```

### Importing the Component
```typescript
import { JoinReact } from '@garmingo/join-react';

const elements = [
    <div>1</div>,
    <div>2</div>,
    <div>3</div>,
];

<JoinReact elements={elements} separator={<div>Separator</div>} />
```

### Importing the prototype extension
```typescript
import '@garmingo/join-react';

const elements = [
    <div>1</div>,
    <div>2</div>,
    <div>3</div>,
];

const joinedElements = elements.joinReact(<div>Separator</div>);
```

Now `joinedElements` will be a react element containing the following:
```html
<div>1</div>
<div>Separator</div>
<div>2</div>
<div>Separator</div>
<div>3</div>
```

## License
[MIT](https://choosealicense.com/licenses/mit/)
npm package: @garnet-org/platform-mcp
Description: MCP client for connecting to Garnet security platform
Author: Garnet
Latest version: 1.0.0

# Garnet Platform MCP

MCP (Model Context Protocol) client for connecting Claude Desktop to the Garnet security platform.

## Installation

You can use this client directly with `npx` (no installation required):

```bash
npx @garnet-org/platform-mcp
```

Or install globally:

```bash
npm install -g @garnet-org/platform-mcp
```

## Configuration

### 1. Get your API token

Using garnetctl:
```bash
garnetctl config current-token
```

Or create a new token:
```bash
garnetctl token create --name "mcp-integration"
```

### 2. Configure Claude Desktop

Edit your Claude configuration file:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
- Linux: `~/.config/Claude/claude_desktop_config.json`

Add this configuration:

```json
{
  "mcpServers": {
    "garnet": {
      "command": "npx",
      "args": ["@garnet-org/platform-mcp"],
      "env": {
        "GARNET_API_URL": "https://api.garnet.ai/api/v1/mcp",
        "GARNET_API_TOKEN": "your-token-here"
      }
    }
  }
}
```

Or if installed globally:

```json
{
  "mcpServers": {
    "garnet": {
      "command": "garnet-mcp",
      "env": {
        "GARNET_API_URL": "https://api.garnet.ai/api/v1/mcp",
        "GARNET_API_TOKEN": "your-token-here"
      }
    }
  }
}
```

### 3. Restart Claude Desktop

### 4. Verify the connection

In Claude, you should see Garnet tools available. Try asking:
- "List recent security events"
- "Show me security issues"
- "List network policies"

## Environment Variables

- `GARNET_API_URL`: The Garnet API endpoint (default: `http://localhost:8080/api/v1/mcp`)
- `GARNET_API_TOKEN`: Your project authentication token (required)

## Available Tools

The MCP client provides access to these Garnet security tools:

- **garnetListEvents** - List recent security events with filtering options
- **garnetGetEvent** - Get detailed information about a specific event
- **garnetBlockEvent** - Block network destination associated with an event
- **garnetListAgents** - List security agents in the project
- **garnetListIssues** - List security issues with filtering options
- **garnetGetIssue** - Get detailed information about a specific issue
- **garnetBlockIssue** - Block network destination associated with an issue
- **garnetListNetworkPolicies** - List network policies for the project

## Self-Hosted Instances

If you're running a self-hosted Garnet instance, update the `GARNET_API_URL` to point to your server:

```json
"env": {
  "GARNET_API_URL": "https://your-garnet-instance.com/api/v1/mcp",
  "GARNET_API_TOKEN": "your-token-here"
}
```

## Development

This client acts as a bridge between Claude's MCP protocol (stdio) and the Garnet HTTP API. It forwards JSON-RPC requests from Claude to the Garnet server and returns the responses.

## Support

For issues and questions:
- GitHub Issues: https://github.com/garnet-org/garnet-platform-mcp/issues
- Documentation: https://docs.garnet.ai

## License

MIT
npm package: @garney/busy-indicator
Description: Busy indicator that wraps react-loader-spinner
Author: Garney
Latest version: 0.2.1

busy-indicator

Busy indicator that wraps react-loader-spinner

## 🚀 Getting Started

Using [`npm`]():

```bash
npm i @garney/busy-indicator
```

## ✨ Usage

```javascript
import { BusyIndicator, setBusyStatus }  from '@garney/busy-indicator';
 
function DeepChild() {
  return (
    <div>
      <button onClick={() => {
            setBusyStatus(true);
        }}>Show</button>
      <button onClick={() => {
          setBusyStatus(false);
        }}>Hide</button>
    </div>
  )
}
 
export default () => {
  return (
    <div className="main-app">
        <DeepChild/>
        <BusyIndicator/>
    </div>
  );
};
```

## 📌 Props

Prop                  | Type     | Default                   | Required
--------------------- | -------- | ------------------------- | --------
`options`|any|`false`|No

## ✌️ License
[MIT](https://opensource.org/licenses/MIT)