open-index/open-npm huggingface dataset:
npm package: @slck/utils
Description: utils library - Utility functions for common development.
Author: Chandra Sekhar A
Latest version: 4.14.0

# utils

utils library - Utility functions for common development.

# Installation

```bash
npm i @slck/utils --save
```

# Methods

    - isNullOrUndefined
    - isDate
    - isObject
    - isEmpty
    - isEmptyInDepth
    - hasValidLength
    - isNullOrUndefinedEmpty
    - leadZeroForMonthOrDay
    - daysTimeFromSeconds
    - objectNonShadowCopy
    - remainingDaysHoursFormTwoDates
    - toCamelCaseKeys
    - objectDifferenceByProps
    - genericObjectTypeFn
    - compareObjectArraysWithTypeSafe
    - shiftToFristWith
    - checkObjectPropValueExistsInCollection
    - convertMinutesToTimeText
    - firstLetterFromString
    - constructTreeRecursively
    - trimObjectValues
    - hasValidDateFn
    - generateRandomColorFn
    - extractCommonAndDifferentValues
    - isAnyRecordWithEmptyValues
    - isDateLike
    - hasDuplicateByKeys
    - generateMultiplesInRange
    - selectMatchingObjectsByKeys
    - toReadableTitle
    - parseSqlCustomExpressionTokens
    - isNumeric

# Types

    - GenericObjectType
    - ErrorType
    - EndpointConfig
    - SQLCustomToken
npm package: @slcloud/react-native-photo-gallery
Description: A simple gallery component
Author: Michaël Villeneuve
Latest version: 0.2.6


# react-native-photo-gallery

![Demo image](https://s3-eu-west-1.amazonaws.com/michaelvilleneuve/uploads/demo.gif)

This library is a very simple, yet powerfull gallery component.
It provides a native similar gallery including horizontal swiper, photo view, zoom, and pagination.
Tested without stutters with 1000+ images.

## Getting started

`$ npm install react-native-photo-gallery --save`

This library depends on react-native-photo-view to display images on Android. So you must also do the following :

`$ react-native link react-native-photo-view`

## Usage
```javascript
import Gallery from 'react-native-photo-gallery';

class YourGalleryComponent extends Component {
  render() {
    const data = [
      {
        id: 'first image',
        image: require('./yourImage.jpg'),
        thumb: require('./yourImageThumb.jpg'),
        overlay: <Overlay />
      },
      {
        id: 'Second image',
        image: require('./yourImage2.jpg'),
        thumb: require('./yourImageThumb2.jpg'),
        overlay: <OtherOverlay />
      }
    ];

    return <Gallery data={data} />;
  }
}
```

It is up to you to render a header, navigation bar, etc.

| Props             | Type            | Description                                                                                |
|-------------------|-----------------|--------------------------------------------------------------------------------------------|
| `backgroundColor` | `String`        | Changing the background color of gallery and pagination                                    |
| `data`            | Array of object | See `Data` below |
| `initialPaginationSize`            | `Number` | Default to 10 |
| `initialNumToRender`            | `Number` | Default to 4 |
| `initialIndex`            | `Number` | Default to 0 |
| `overlay`            | `Component` | If present, a view that will be displayed above the image |

## Data object

Data prop an array objects that will configure slides.
You can provide the following props.

| Key             | Type            | Required   | Description |
|-------------------|-----------------|--------------------------------------------------------------------------------------------|----|
| `id` | `String`        | Yes | A unique identifier
| `image`            | `Image source` | Yes | See `<Image source={}/>` on react native documentation. |
| `thumb`            | `Image source` | No | Will be used as a thumbnail on pagination, will default to `image`if not provided |
| `overlay`            | `Component` | No | A view that will be displayed above the image, for metas infos for example |
npm package: @slcy/eslint-config
Description: ESLint config for @slcy
Author: @slcy
Latest version: 1.0.7

# @slcy/eslint-config

ESLint config.

## 安装

```bash
npm install --save-dev @slcy/eslint-config
```

## 使用方法

```js
import { customRulesConfig, importPluginRulesConfig, vueRulesConfig } from '@slcy/eslint-config';
```
npm package: @slcy/prettier-config
Description: Prettier config for @slcy
Author: @slcy
Latest version: 1.0.0

# @slcy/prettier-config

Prettier config.

## 安装

```bash
npm install --save-dev prettier @slcy/prettier-config
```

## 使用方法

### 在 package.json 中配置

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

## npm 版本与 prettier 版本对应关系

| npm 版本 | prettier 版本 |
| -------- | ------------- |
| 1.x      | 3.5.3         |
npm package: @slcy/stylelint-config
Description: stylelint config for @slcy
Author: @slcy
Latest version: 1.0.2

# @slcy/stylelint-config

Stylelint config.

## 安装

```json
{
  "postcss": "^8.5.3",
  "postcss-html": "^1.8.0",
  "postcss-less": "^6.0.0",
  "stylelint": "^16.19.1",
  "stylelint-config-html": "^1.1.0",
  "stylelint-config-standard": "^38.0.0",
  "stylelint-config-standard-vue": "^1.0.0",
  "stylelint-less": "^3.0.1",
  "stylelint-order": "^7.0.0"
}
```

## 使用方法

```mjs
// stylelint.config.mjs

import stylelintConfig from '@slcy/stylelint-config';


// vue 项目
export default  stylelintConfig.viteVue;

// vite page 项目
export default stylelintConfig.vitePage;

```

```cjs
const stylelintConfig = require('@slcy/stylelint-config');

// vue 项目
module.exports = stylelintConfig.viteVue;

// vite page 项目
module.exports = stylelintConfig.vitePage;
```
npm package: @sld0ant/pi-diff
Description: High-performance diff for pi-agent with Patience algorithm and WASM acceleration
Author: sld0ant
Latest version: 1.0.1

# @sld0ant/pi-diff

High-performance diff patch for pi-agent with Patience algorithm and WASM acceleration.

## Quick Install

```bash
bunx @sld0ant/pi-diff install
```

## Uninstall

```bash
bunx @sld0ant/pi-diff uninstall
```

## Check Status

```bash
bunx @sld0ant/pi-diff status
```

## Features

- **Patience algorithm for code** — better structure preservation (functions, classes)
- **Myers algorithm for data** — faster for JSON, YAML, Markdown
- **WASM acceleration** — 5-8x faster on large files (>1000 lines)
- **80 KB** — compact universal WASM bundle

## How It Works

### Auto Algorithm Selection

| File Type | Algorithm | Reason |
|-----------|-----------|--------|
| `.ts`, `.js`, `.py`, `.rs`, `.go` | Patience | Preserves code structure |
| `.json`, `.yaml`, `.md`, `.txt` | Myers | Faster for data |
| >10000 lines | Myers | Performance |

### Example Difference

**Refactoring: moving a function**

Myers shows:
```diff
-function hello() { ... }
+function world() { ... }
```
(thinks `hello` was replaced with `world`)

Patience shows:
```diff
+function world() { ... }
 
 function hello() { ... }
```
(understands `world` was added, `hello` stayed)

## Performance

| File Size | JS (diff) | WASM (@sld0ant/pi-diff) | Speedup |
|-----------|-----------|-------------------------|---------|
| 1000 lines | 4ms | 2.5ms | 1.6x |
| 5000 lines | 119ms | 21ms | **5.6x** |
| 10000 lines | 520ms | 64ms | **8.1x** |

## Build from Source

### Prerequisites

- Rust + cargo
- wasm-pack (`cargo install wasm-pack`)
- Bun

### Build

```bash
bun install
bun run build
```

### Local Install

```bash
bun run install-patch
```

## After Updating pi-agent

When pi-agent is updated, the patch will be overwritten. Reinstall:

```bash
bunx @sld0ant/pi-diff install
```

## License

MIT
npm package: @sldcyh/openclaw-kook-plugin
Description: Community KOOK channel plugin for OpenClaw
Latest version: 0.1.2

# OpenClaw KOOK Plugin

Early community plugin for connecting OpenClaw to KOOK through a bot token and
KOOK's WebSocket gateway.

This repository is an MVP focused on getting the core messaging loop working in
real KOOK servers under domestic network conditions.

## Current scope

- DM receive + reply
- Channel receive + reply
- Mention-gated channel replies by default
- `openclaw message send` support for `user:<id>`, `channel:<id>`, and `chat:<code>`
- WebSocket-based inbound event handling

## Not implemented yet

- Voice
- Cards and button callbacks
- KOOK-hosted media upload
- Reactions
- Threads
- Rich directory lookup

## Requirements

- OpenClaw `2026.3.11` or newer
- A KOOK bot token from the KOOK developer console

Optional:

- `botUserId`
  Useful if you want explicit mention matching before the plugin probes
  `user/me`.

## Install from source

```bash
git clone https://github.com/sldcyh/openclaw-kook-plugin.git
cd openclaw-kook-plugin
openclaw plugins install /absolute/path/to/openclaw-kook-plugin
```

## Install from npm

```bash
openclaw plugins install @sldcyh/openclaw-kook-plugin@0.1.2
```

After installation, restart the gateway so OpenClaw reloads plugins:

```bash
openclaw gateway restart
```

Then add a KOOK account:

```bash
openclaw channels add --channel kook --token YOUR_KOOK_BOT_TOKEN
```

If you prefer storing the token in an environment variable instead of config:

```bash
export KOOK_BOT_TOKEN="your-kook-bot-token"
openclaw channels add --channel kook --use-env
```

Optional flags:

- `--account <id>` to create a named KOOK account
- `--name <display-name>` to label the account in OpenClaw

## Verify install

```bash
openclaw plugins list
openclaw channels list
openclaw channels status
```

You should see:

- plugin `openclaw-kook-plugin` loaded
- channel `KOOK default` configured
- after the gateway connects, `running, connected`

## Config shape

```json5
{
  channels: {
    kook: {
      enabled: true,
      token: "your-kook-bot-token",
      chatmode: "oncall",
      outboundFormat: "text"
    }
  }
}
```

## Behavior notes

- Default `chatmode` is `oncall`, so the bot replies in channels only when
  mentioned.
- `onmessage` and `onchar` modes are exposed in config for broader automation
  flows.
- KOOK image/file APIs require bot-owned uploaded assets, so this MVP falls
  back to sending URLs as text when media upload is unavailable.
- This plugin intentionally uses KOOK WebSocket mode. Webhook mode is left for
  a later pass.

## Target formats

- `user:<userId>`: send a DM
- `chat:<chatCode>`: send a DM through an existing chat session
- `channel:<channelId>`: send to a channel

## Development

```bash
npm install
npm run check
npm run pack:check
```

## Roadmap

- Add KOOK card messages and button callbacks
- Add uploaded media support
- Improve channel and user lookup
- Evaluate voice support separately
npm package: @sldm/context
Description: Context API for dependency injection in Solidum applications
Author: Matthias Kluth
Latest version: 0.3.0

# @sldm/context

> Context/dependency injection for Solidum

## Installation

```bash
npm install @sldm/context @sldm/core
# or
pnpm add @sldm/context @sldm/core
```

## Features

- 📦 **Dependency Injection** - Share data across component tree
- 🎯 **Type-Safe** - Full TypeScript support
- ⚡ **Reactive** - Context values can be reactive

## Quick Start

```typescript
import { createContext, useContext } from '@sldm/context';
import { createElement } from '@sldm/core';

// Create context
const ThemeContext = createContext('light');

// Provider
function App() {
  return createElement(ThemeContext.Provider, { value: 'dark' }, createElement(ThemedButton, {}));
}

// Consumer
function ThemedButton() {
  const theme = useContext(ThemeContext);
  return createElement(
    'button',
    {
      className: `btn-${theme}`,
    },
    'Click me'
  );
}
```

## API

### `createContext(defaultValue)`

Creates a context.

### `useContext(context)`

Reads context value.

## License

MIT © Matthias Kluth
npm package: @sldm/core
Description: Reactive primitives and core runtime for Solidum framework
Author: Matthias Kluth
Latest version: 0.3.0

# @sldm/core

> Reactive primitives and core runtime for Solidum framework

## Installation

```bash
npm install @sldm/core
# or
pnpm add @sldm/core
```

## Features

- ⚡ **Fine-Grained Reactivity** - Efficient updates with atom, computed, and effect primitives
- 🎯 **Simple API** - Intuitive and easy to learn
- 📦 **Lightweight** - Zero dependencies, small bundle size
- 🔧 **Type-Safe** - Fully typed with TypeScript
- 🧪 **Well-Tested** - Comprehensive test suite

## Quick Start

```typescript
import { atom, computed, effect, createElement, mount } from '@sldm/core';

// Create reactive state
const count = atom(0);
const doubled = computed(() => count() * 2);

// React to changes
effect(() => {
  console.log(`Count: ${count()}, Doubled: ${doubled()}`);
});

// Update state
count(5); // Console: Count: 5, Doubled: 10

// Create UI
function Counter() {
  return createElement(
    'div',
    {},
    createElement('p', {}, `Count: ${count()}`),
    createElement(
      'button',
      {
        onClick: () => count(count() + 1),
      },
      'Increment'
    )
  );
}

// Mount to DOM
mount(document.getElementById('app'), Counter);
```

## Core APIs

### Reactivity

- **`atom(value)`** - Create reactive state
- **`computed(fn)`** - Derive values from atoms
- **`effect(fn)`** - Run side effects when atoms change
- **`batch(fn)`** - Batch multiple updates
- **`useState(value)`** - Component-local state (auto-reactive)

### DOM

- **`createElement(type, props, ...children)`** - Create virtual nodes
- **`render(vnode)`** - Render VNode to DOM
- **`mount(container, component)`** - Mount reactive component

## Documentation

Visit [https://kluth.github.io/solidum](https://kluth.github.io/solidum) for full documentation.

## License

MIT © Matthias Kluth
npm package: @sldm/router
Description: Simple SPA router for Solidum applications
Author: Matthias Kluth
Latest version: 0.3.0

# @sldm/router

> Simple SPA router for Solidum applications

## Installation

```bash
npm install @sldm/router @sldm/core
# or
pnpm add @sldm/router @sldm/core
```

## Features

- 🚀 **Simple API** - Easy to use routing
- 📍 **Reactive** - Built on Solidum's reactivity system
- 🔗 **Programmatic Navigation** - Navigate via function calls
- 📦 **Tiny** - Minimal footprint

## Quick Start

```typescript
import { createRouter, navigate } from '@sldm/router';
import { mount } from '@sldm/core';

// Define routes
const router = createRouter({
  routes: {
    '/': 'HomePage',
    '/about': 'AboutPage',
    '/users/:id': 'UserPage',
  },
});

// Get current route info
const currentPath = router.getCurrentPath(); // '/'
const currentPage = router.getCurrentPage(); // 'HomePage'

// Navigate programmatically
navigate('/about');

// Listen for route changes
window.addEventListener('routechange', event => {
  console.log('Navigated to:', event.detail.path);
});
```

## API

### `createRouter(options)`

Creates a router instance.

```typescript
const router = createRouter({
  routes: {
    '/': 'HomePage',
    '/products': 'ProductsPage',
    '/products/:id': 'ProductDetailPage',
  },
  initialPath: window.location.pathname,
});
```

### `navigate(path)`

Navigate to a new route.

```typescript
navigate('/products/123');
```

### Router Methods

- `router.getCurrentPath()` - Get current path
- `router.getCurrentPage()` - Get current page component name

## License

MIT © Matthias Kluth
npm package: @sldm/ssr
Description: Server-side rendering utilities for Solidum applications
Author: Matthias Kluth
Latest version: 0.3.0

# @sldm/ssr

> Server-side rendering for Solidum applications

## Installation

```bash
npm install @sldm/ssr @sldm/core
# or
pnpm add @sldm/ssr @sldm/core
```

## Features

- 🖥️ **Server-Side Rendering** - Render on the server
- ⚡ **Fast** - Pre-rendered HTML for better performance
- 🔄 **Hydration** - Client-side takeover

## Quick Start

```typescript
import { renderToString } from '@sldm/ssr';
import { createElement } from '@sldm/core';

function App() {
  return createElement('h1', {}, 'Hello from SSR!');
}

// Render to HTML string
const html = renderToString(App);
console.log(html); // <h1>Hello from SSR!</h1>
```

## API

### `renderToString(component)`

Renders component to HTML string.

## License

MIT © Matthias Kluth
npm package: @sldm/store
Description: Centralized state management for Solidum applications
Author: Matthias Kluth
Latest version: 0.3.0

# @sldm/store

> Global state management for Solidum applications

## Installation

```bash
npm install @sldm/store @sldm/core
# or
pnpm add @sldm/store @sldm/core
```

## Features

- 🏪 **Global State** - Centralized state management
- ⚡ **Reactive** - Built on Solidum's reactivity
- 🎯 **Type-Safe** - Full TypeScript support
- 🔄 **Immutable Updates** - Nested property updates

## Quick Start

```typescript
import { createStore } from '@sldm/store';

// Create a store
const [state, setState] = createStore({
  user: { name: 'Alice', age: 30 },
  todos: [],
});

// Read state
console.log(state.user.name); // 'Alice'

// Update state (immutable)
setState('user', 'name', 'Bob');
setState('todos', todos => [...todos, { id: 1, text: 'Learn Solidum' }]);

// Use in effects
effect(() => {
  console.log('User:', state.user.name);
});
```

## API

### `createStore(initial)`

Creates a reactive store.

```typescript
const [state, setState] = createStore({ count: 0 });

// Update
setState('count', c => c + 1);
setState('count', 5);
```

## License

MIT © Matthias Kluth
npm package: @sldm/testing
Description: TDD-first testing framework for Solidum
Author: Matthias Kluth
Latest version: 0.3.0

# @sldm/testing

> Testing utilities and test runner for Solidum

## Installation

```bash
npm install @sldm/testing --save-dev
# or
pnpm add @sldm/testing -D
```

## Features

- 🧪 **Test Runner** - Built-in test framework
- ⚡ **Fast** - Lightweight and quick
- 📊 **Reporting** - Clear test output

## Quick Start

```typescript
import { describe, test, expect } from '@sldm/testing';
import { atom } from '@sldm/core';

describe('atom()', () => {
  test('should create reactive atom', () => {
    const count = atom(0);
    expect(count()).toBe(0);
  });

  test('should update value', () => {
    const count = atom(0);
    count(5);
    expect(count()).toBe(5);
  });
});
```

## API

- `describe(name, fn)` - Group tests
- `test(name, fn)` - Define a test
- `expect(value)` - Assertions

## License

MIT © Matthias Kluth
npm package: @sldm/ui
Description: UI component library for Solidum framework
Author: Matthias Kluth
Latest version: 0.3.0

# @sldm/ui

> Production-ready UI component library for Solidum

## Installation

```bash
npm install @sldm/ui @sldm/core
# or
pnpm add @sldm/ui @sldm/core
```

## Features

- 🎨 **20+ Components** - Rich set of interactive components
- ✨ **Wild Features** - 3D charts, drag-and-drop tables, glassmorphism
- 🎯 **Fully Reactive** - Built on Solidum's fine-grained reactivity
- 🎭 **Zero Dependencies** - Only depends on @sldm/core
- 📱 **Responsive** - Mobile-friendly components
- 🌈 **Themeable** - Customizable styles

## Components

### Layout

- Container, Stack, Card, GlassCard

### Forms

- Button, Input, Select, Switch, Slider

### Display

- Badge, Avatar, Progress, Spinner, Tabs, Accordion

### Wild Features

- **Chart3D** - Interactive 3D charts with drag-to-rotate
- **DataTable** - Sortable, draggable rows
- **ParticleBackground** - Mouse-interactive particles
- **CodeBlock** - Syntax-highlighted code

## Quick Start

```typescript
import { createElement } from '@sldm/core';
import { Button, Card, Container } from '@sldm/ui';
import '@sldm/ui/styles.css';

function App() {
  return createElement(
    Container,
    { maxWidth: 'lg' },
    createElement(
      Card,
      { padding: 'lg', hoverable: true },
      createElement('h1', {}, 'Hello Solidum!'),
      createElement(
        Button,
        {
          variant: 'primary',
          onClick: () => alert('Clicked!'),
        },
        'Click me'
      )
    )
  );
}
```

## Import Styles

```typescript
// Import CSS in your main entry file
import '@sldm/ui/styles.css';
```

## Documentation

Visit [https://kluth.github.io/solidum/components](https://kluth.github.io/solidum/components) for component docs.

## License

MIT © Matthias Kluth
npm package: @sldm/ui-chalk
Description: Chalkboard-style UI component library for Solidum
Author: Matthias Kluth
Latest version: 0.3.0

# @sldm/ui-chalk

Chalkboard-style UI component library for Solidum - a hand-drawn aesthetic inspired by classroom chalkboards.

## Features

- 🎨 Hand-drawn chalkboard aesthetic
- ✏️ Chalk-like text effects with dust particles
- 📐 Wobbly borders for authentic feel
- 🎯 Fully typed TypeScript components
- 🎭 Multiple color variants (yellow, blue, green, red)
- 📦 Tree-shakeable and lightweight

## Installation

```bash
pnpm add @sldm/ui-chalk @sldm/core @sldm/utils
```

## Usage

### Import Styles

Import the stylesheet in your app:

```typescript
import '@sldm/ui-chalk/styles.css';
```

### Components

#### ChalkContainer

```typescript
import { ChalkContainer } from '@sldm/ui-chalk';

ChalkContainer({ size: 'lg' }, 'Content goes here');
```

#### ChalkHeading

```typescript
import { ChalkHeading } from '@sldm/ui-chalk';

ChalkHeading(
  {
    level: 1,
    color: 'yellow',
    underline: true,
  },
  'Welcome to Chalkboard UI'
);
```

#### ChalkButton

```typescript
import { ChalkButton } from '@sldm/ui-chalk';

ChalkButton(
  {
    variant: 'primary',
    size: 'md',
    onClick: () => console.log('Clicked!'),
  },
  'Click Me'
);
```

#### ChalkCard

```typescript
import { ChalkCard } from '@sldm/ui-chalk';

ChalkCard(
  {
    variant: 'yellow',
  },
  'Card content with chalkboard styling'
);
```

## Theming

The chalkboard theme uses CSS custom properties for easy customization:

```css
:root {
  --chalk-board: #2a3e2e; /* Dark green chalkboard */
  --chalk-white: #f4f1de; /* Chalk white */
  --chalk-yellow: #f2cc8f; /* Yellow chalk */
  --chalk-blue: #81b29a; /* Blue chalk */
  --chalk-green: #a8dadc; /* Green chalk */
  --chalk-red: #e07a5f; /* Red chalk */
}
```

## Examples

Create a chalkboard-themed page:

```typescript
import {
  ChalkContainer,
  ChalkHeading,
  ChalkCard,
  ChalkButton,
} from '@sldm/ui-chalk';

ChalkContainer(
  { size: 'lg' },
  ChalkHeading({ level: 1, color: 'yellow', underline: true }, 'My Chalkboard App'),
  ChalkCard(
    { variant: 'blue' },
    'Welcome to the chalkboard theme!',
    ChalkButton({ variant: 'success', onClick: () => alert('Hello!') }, 'Say Hello')
  )
);
```

## License

MIT © Matthias Kluth
npm package: @sldm/utils
Description: Utility functions for Solidum applications
Author: Matthias Kluth
Latest version: 0.3.0

# @sldm/utils

> Utility functions for Solidum framework

## Installation

```bash
npm install @sldm/utils
# or
pnpm add @sldm/utils
```

## Features

- 🛠️ **Helpers** - Common utility functions
- 🎨 **Styling** - className utilities
- 📦 **Lightweight** - Minimal dependencies

## Quick Start

```typescript
import { cn, mergeProps } from '@sldm/utils';

// Conditional classNames
const className = cn('btn', {
  'btn-primary': isPrimary,
  'btn-disabled': isDisabled,
});

// Merge props
const props = mergeProps(
  { className: 'base', onClick: handler1 },
  { className: 'extended', onClick: handler2 }
);
// Result: { className: 'base extended', onClick: [handler1, handler2] }
```

## API

### `cn(...inputs)`

Conditionally join classNames together.

```typescript
cn('btn', { 'btn-active': isActive }, ['extra', 'classes']);
// => 'btn btn-active extra classes'
```

### `mergeProps(...props)`

Merge multiple props objects intelligently.

## License

MIT © Matthias Kluth