open-index/open-npm huggingface dataset:
npm package: @smith6423/react-accordion
Description: Component for animating height during mount/unmount using a CSS transition - React 18 compatible. Based on react-slidedown by Frank Wallis.
Author: smith6423
Latest version: 2.5.1

# @smith6423/react-accordion

## 🚀 설치

```bash
npm install @smith6423/react-accordion
```

## 📖 사용법

```tsx
import React, { useState } from "react";
import { Accordion } from "@smith6423/react-accordion";
import "@smith6423/react-accordion/lib/accordion.css";

function MyComponent() {
  const [isOpen, setIsOpen] = useState(false);

  return (
    <div>
      <button onClick={() => setIsOpen(!isOpen)}>Toggle</button>

      <Accordion>
        {isOpen && (
          <div style={{ padding: "20px" }}>
            <h3>아코디언 내용</h3>
            <p>이 내용은 부드러운 애니메이션과 함께 나타납니다!</p>
          </div>
        )}
      </Accordion>
    </div>
  );
}
```

## ⚡ 속도 제어

```tsx
{
  /* 빠른 애니메이션 (200ms) */
}
<Accordion speed="fast">{isOpen && <div>빠른 애니메이션</div>}</Accordion>;

{
  /* 보통 애니메이션 (500ms, 기본값) */
}
<Accordion speed="normal">{isOpen && <div>보통 애니메이션</div>}</Accordion>;

{
  /* 느린 애니메이션 (800ms) */
}
<Accordion speed="slow">{isOpen && <div>느린 애니메이션</div>}</Accordion>;

{
  /* 커스텀 속도 (밀리초) */
}
<Accordion speed={1200}>{isOpen && <div>1.2초 애니메이션</div>}</Accordion>;
```

## 🎛️ Props

| Prop                 | Type                                     | Default    | 설명                      |
| -------------------- | ---------------------------------------- | ---------- | ------------------------- |
| `children`           | `ReactNode`                              | -          | 아코디언 내용             |
| `speed`              | `'fast' \| 'normal' \| 'slow' \| number` | `'normal'` | 애니메이션 속도           |
| `closed`             | `boolean`                                | `false`    | 강제로 닫힌 상태          |
| `transitionOnAppear` | `boolean`                                | `true`     | 초기 마운트 시 애니메이션 |
| `className`          | `string`                                 | -          | 추가 CSS 클래스           |
| `as`                 | `string`                                 | `'div'`    | HTML 요소 타입            |

## 🎨 스타일 커스터마이징

```css
/* 기본 스타일 수정 */
.react-accordion {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* 커스텀 클래스 추가 */
.my-accordion {
  border: 1px solid #ddd;
  border-radius: 8px;
}
```

```tsx
<Accordion className="my-accordion">{children}</Accordion>
```

## ✨ 특징

- ✅ **React 18 완벽 지원**
- ✅ **TypeScript 지원**
- ✅ **부드러운 CSS 애니메이션**
- ✅ **커스터마이징 가능한 속도**
- ✅ **가벼운 번들 크기**
- ✅ **접근성 고려**

## 🙏 크레딧

이 프로젝트는 [react-slidedown](https://github.com/frankwallis/react-slidedown) (Frank Wallis)을 기반으로 하여 React 18 호환성과 속도 제어 기능을 추가한 버전입니다.

## 📝 라이선스

MIT License

---

Made with ❤️ for React developers
npm package: @smith_ct/focusflow-mcp
Description: MCP server for Focus.Flow — connects Claude Desktop (or any MCP-compatible AI) to your Focus.Flow board
Author: Smith Creative Tech
Latest version: 1.0.0

# focusflow-mcp

MCP server for [Focus.Flow](https://board.smithcreativetech.com) — connect Claude Desktop (or any MCP-compatible AI) to your personal action-item board.

**Flow follows focus.**

---

## Quick Start

### 1. Get an API key
Log in to your Focus.Flow board → **Settings** → **Generate API Key**

### 2. Add to Claude Desktop config

Open `~/Library/Application Support/Claude/claude_desktop_config.json` and add:

```json
{
  "mcpServers": {
    "focusflow": {
      "command": "npx",
      "args": ["-y", "focusflow-mcp"],
      "env": {
        "KAPBOARD_API_KEY": "kbp_live_your_key_here"
      }
    }
  }
}
```

Restart Claude Desktop. That's it.

---

## What You Can Do

Once connected, ask Claude things like:

- *"What should I focus on today?"*
- *"What's overdue?"*
- *"Add a task: follow up with Josh re: Grace Simi quote — due Friday"*
- *"Mark [item] as done"*
- *"What are we waiting on from [person]?"*
- *"Search for anything related to [keyword]"*

---

## Available Tools

| Tool | Description |
|------|-------------|
| `get_dashboard_summary` | Board overview: counts, overdue, upcoming |
| `list_action_items` | Filtered item list (status, due date, column) |
| `get_action_item` | Full detail: tasks, contacts, comms |
| `create_action_item` | Add a new item (write scope) |
| `update_item` | Change status, due date, name, outcome (write scope) |
| `add_comment` | Log a note or communication (write scope) |
| `search_board` | Full-text search |
| `get_delegate_queue` | See pending @delegate AI tasks |
| `post_delegate_artifact` | Post a result for user review (write scope) |
| `get_board_full` | Full board export |

---

## API Key Scopes

- **Read** — view board, search, list items
- **Write** — create, update, add comments, post delegate artifacts

Generate separate keys for different AI tools to limit access.

---

## Environment Variables

| Variable | Required | Default |
|----------|----------|---------|
| `KAPBOARD_API_KEY` | ✅ Yes | — |
| `KAPBOARD_URL` | No | `https://board.smithcreativetech.com` |

---

## License

MIT © Smith Creative Tech
npm package: @smithadifd/epc-css
Description: Powerful and customizable calendar component for Ember
Author: Miguel Camba
Latest version: 0.7.5

# Ember Power Calendar [![Build Status](https://travis-ci.org/cibernox/ember-power-calendar.svg?branch=master)](https://travis-ci.org/cibernox/ember-power-calendar)

Customizable Calendar Component for Ember.

## Disclaimer

This addon is in very early days of development, so things might change fast over
the next weeks. Use it with caution!

## Installation

`ember install ember-power-calendar`

## Usage

There are many possible ways to use it, for giving you just a taste of the API:

```hbs
{{#power-calendar selected=arrival onSelect=(action (mut arrival) value="moment") as |calendar|}}
  {{calendar.nav}}
  {{calendar.days}}
{{/power-calendar}}
```

Check the full documentation at www.ember-power-calendar.com
npm package: @smithalan2/vue-countdown
Description: A simple countdown timer component for Vue 3 written using the composition API.
Author: Alan Smith
Latest version: 1.0.2

# Vue Countdown

A simple countdown timer component for Vue 3 written using the composition API.

Demo [https://smithalan92.github.io/vue-countdown/](https://smithalan92.github.io/vue-countdown/)


---
## Installation
Install with npm

```
npm i --save @smithalan2/vue-countdown
```

---

## Props
| Name | Type | Required | Default | Notes |
|---------|-------|------| ------- | ----- |
| startDateTime | Date | no | new Date() on each tick | Passing a start date time will result in only 1 calc being made. |
| endDateTime | Date | yes | n/a | ---- |
| startImmediately | Boolean | false | true | If passed as false, you need to call `run` on the component ref. |
| tickDelay | Number | no | 1000 | ms to run each recalculation. |

---

## Events
| Name | Args | Notes |
|---------|-------|------|
| start | None | Emitted the first time a countdown starts |
| finished | None | Emitted when the countdown has reached the end time |
| cancelled | None | Emitted when the countdown has been cancelled |
| tick | [Countdown](#countdown-data) | The newely calculated countdown values

---

## Slot props
If the component is passed a default slot. The slot will recieve a prop with [Countdown data](#countdown-data)

---

## Exposed Properties
The component instance exposes a number of properties that can be used if required.

| Name | Notes |
|---------|-------|
| run | A function to manually start the countdown. |
| cancel | A function to cancel the countdown |
| countdown | The actual reactive [countdown data](#countdown-data)

---

## Countdown Data
The countdown data is a `reactive` object. It is passed as a slot prop and also given as a param to the `tick` event. 

The countdown prop contains the values for the countown, as well as formatted text that can be used for display. The countdown data object is structured as follows

```
{
  remainingSeconds: { value: Number, text: String },
  remainingMinutes: { value: Number, text: String },
  remainingHours: { value: Number, text: String },
  remainingDays: { value: Number, text: String },
  remainingWeeks: { value: Number, text: String },
  remainingMonths: { value: Number, text: String },
  remainingYears: { value: Number, text: String },
}
```

Sample key values may are 

```
remainingYears: { value: 0, text: '0 years' },
remainingDays: { value: 1, text: '1 day' },
remainingSeconds: { value: 54, text: '54 seconds' },
```

## Sample Usage
vue-countdown can be used in 2 ways. You can either use slots to render out the countdown, or provide no slot and listen to the `tick` event to get countdown updates and do whatever you need to.

With slots

```html
<vue-countdown
  :end-date-time="endDateTime">
  <template
    v-slot:default="{ countdown }">
    {{ countdown }}
  </template>
</vue-countdown>
```

With event

```html
<vue-countdown
  :end-date-time="endDateTime"
  @tick="onTick">
...
onTick(countdown) {
  ...
}
```

### License
See [License.md](./LICENSE.md)
npm package: @smithc/gatsby-plugin-static-site
Description: A plugin that disables client side routing for gatsby
Author: Ward Peeters
Latest version: 0.5.0

# gatsby-plugin-static-site

Disables client side routing for Gatsby.

## Install

`npm install --save @wardpeet/gatsby-plugin-static-site`

## How to use

```javascript
// In your gatsby-config.js
plugins: [`@wardpeet/gatsby-plugin-static-site`];
```
npm package: @smithery/biscuit
Description: Cloudflare Workers adapter for @biscuit-auth/biscuit-wasm
Latest version: 1.0.1

# @smithery/biscuit

[![npm version](https://img.shields.io/npm/v/@smithery/biscuit.svg)](https://www.npmjs.com/package/@smithery/biscuit)

[Biscuit](https://www.biscuitsec.org/) authorization tokens for Cloudflare Workers and Node.js.

This package wraps [`@biscuit-auth/biscuit-wasm`](https://github.com/biscuit-auth/biscuit-wasm) with runtime-specific WASM shims so you can use Biscuit tokens in Cloudflare Workers (which require synchronous `WebAssembly.Module` instantiation) and Node.js without any extra configuration.

## Install

```bash
pnpm add @smithery/biscuit
```

## Usage

```typescript
import {
  biscuit,
  block,
  authorizer,
  generateKeyPair,
} from "@smithery/biscuit"

// Generate keys
const { privateKey, publicKey } = generateKeyPair()

// Mint a token with Datalog using tagged template helpers
const token = biscuit`
  user("alice");
  check if time($t), $t <= ${new Date(Date.now() + 3600_000)};
`.build(privateKey)

// Attenuate — restrictions can only narrow, never widen
const restricted = token.appendBlock(
  block`check if operation($op), ["read"].contains($op);`
)

// Verify
const auth = authorizer`
  time(${new Date()});
  operation("read");
  allow if true;
`
auth.buildAuthenticated(restricted).authorize() // throws if checks fail
```

The tagged template helpers (`biscuit`, `block`, `authorizer`) automatically convert JS values into Datalog terms — `Date` becomes a timestamp, `Uint8Array` becomes hex bytes, `Set` and `Map` are supported, and any object with a `toDatalogParameter()` method works as a custom term.

## Exports

| Path | Contents |
|------|----------|
| `@smithery/biscuit` | All biscuit-wasm classes, tagged template helpers, `generateKeyPair()` |
| `@smithery/biscuit/shim` | Raw WASM shim re-exports only |

The package uses conditional exports: the `workerd` condition resolves to the Cloudflare Workers shim, and `default` resolves to the Node.js shim.

## How it works

The upstream package targets bundlers (`wasm-pack --target bundler`), which expect the bundler to handle WASM instantiation. Cloudflare Workers import `.wasm` files as pre-compiled `WebAssembly.Module` objects instead, so this package manually instantiates the module and wires it to the JS glue code.

The shim (`src/shim.ts`) does three things:

1. Imports the `.wasm` binary as a CF Workers `WebAssembly.Module`
2. Collects `__wbg_*` / `__wbindgen_*` glue functions from the JS bindings
3. Synchronously instantiates the WASM module and connects it to the glue

## Upstream patch

The shim imports internal files from `@biscuit-auth/biscuit-wasm` (`module/biscuit_bg.js` and `module/biscuit_bg.wasm`) that are not listed in the package's `exports` field. Modern bundlers (including Wrangler's esbuild) enforce `exports` strictly and refuse to resolve these subpaths.

A pnpm patch at `patches/@biscuit-auth__biscuit-wasm@0.6.0.patch` adds the missing subpath exports. If you upgrade `@biscuit-auth/biscuit-wasm`, regenerate the patch with `pnpm patch` and verify the shim still bundles under `wrangler dev`.

## License

MIT