open-index/open-npm huggingface dataset:
npm package: @suzuneu/deepl
Description: DeepL API
Author: waki285
Latest version: 1.0.1

# DeepL

## HOW TO USE

```sh
npm i -g @suzuneu/deepl
```

```sh
deepl text <-l ja> <--nocopy>
```

![alt](https://suzuneu.net/4V7cWaIM)
![alt](https://suzuneu.net/Tc6rRDKJ)
![alt](https://suzuneu.net/hRZOqC1i)
npm package: @suzuyajs/plugin-vue
Description: A frontend Vue&VueRouter service provider for suzuya
Author: TimeBather
Latest version: 0.0.3

# suzuya-plugin-vue
Suzuya插件化微前端框架Vue底层实现
## Dependency Injection
此插件向Suzuya Global Dependency Namespace(`__suzuya_exposed_dependency__`)注入了以下公共依赖文件:

| 原始名称 Original Name | 注入名称      |
|--------------------|-----------|
| vue                | Vue       |
| vue-router         | VueRouter |

## API References
### ctx.vue.vue
Vue实例,此属性有可能在未来版本中弃用

### ctx.vue.router
VueRouter实例,此属性有可能在未来版本中弃用

###  ctx.vue.addRoute(record, parent?)
请**务必**使用这个方法添加路由,因为这个方法会处理好插件卸载,路由更新后的页面重新加载和context注入的逻辑

与VueRouter的参数相反,addRouter的第二个可选参数为parent

使用示例:
```js
import ExampleComponent from './example.vue'
export const using = ['vue']
export function apply(ctx){
    ctx.vue.addRoute({path:'/example',component:ExampleComponent})
    ctx.vue.addRoute({path:'/xxxxx',component:ExampleComponent},'the_parent_route')
}
```
### ctx.vue.removeRoute(name)
删除路由,这里也会处理路由更新后的页面重新加载的逻辑

## Context Injection
插件已经自动处理好了Context注入到组件内的方法,你只需要引入即可

```vue

<script setup lang="ts">
import {inject} from "@vue/runtime-core";
import {FrontendContext} from "@suzuyajs/plugin-vue";

const ctx = inject<FrontendContext>('$context')
ctx.vue.xxxxxx
</script>
```
npm package: @sv-keg/keg-core
Description: ## Overview
Latest version: 0.3.0

# Keg Core

## Overview

The keg is a platform for developing cross-platform react apps.
It comes preconfigured to target both web and mobile, and it contains a 
collection of utilities for simplifying development, including:
  * built-in routing and navigation
  * a reducer based on the relational data model
  * dynamic theming via [re-theme](https://github.com/simpleviewinc/re-theme)
  * cross platform persistent storage

## Tap usage

* To start, first setup the [keg-cli](https://github.com/simpleviewinc/keg-cli#install)
* Next, use the cli to generate a tap:
`keg gn tap`
* `cd` into your tap's directory, then run `yarn setup`
* The tap you generated will have installed `keg-core` as a dependency
* Read more about tap-development [here](https://www.some-docs-we-need-to-write.confluence.com)

## Architecture

### Store

* [Reducers](core/base/reducers/README.md)
* [Plugins](core/base/store/plugins/README.md)
npm package: @sv-keg/re-theme
Description: Simple Theme switcher / builder for React and React Native
Author: Lance Tipton
Latest version: 2.2.2

# ReTheme
Simple React and React Native Theme builder / switcher

### Setup
Add to your package.json

  ```js
    "re-theme": "git+https://github.com/simpleviewinc/re-theme"
  ```

### Example 
```js
import { ReThemeProvider } from 're-theme'

const myCustomTheme = {
  // theme styles go here
}

export const App from Component {
  
  state = { theme: myCustomTheme }
  
  componentDidUpdate = () => {
    this.props.theme !== this.state.theme &&
      this.setState({ theme: this.props.theme })
  }
  
  render(){
    return  (
      <ReThemeProvider theme={theme} merge={false} >
        <App />
      </ReThemeProvider>
    )
  }

}
```

### API
Checkout the [Example App](https://simpleviewinc.github.io/re-theme/) for documentation.
npm package: @sv-kit/workerify
Description: Headless Web Worker RPC: wrap(url), workerify(fn), expose(api). Abort, transferables, and typed proxies.
Latest version: 1.0.0

# @sv-kit/workerify

轻量 **Web Worker RPC 工具**（零依赖）：
- 在 **Worker** 里 `expose({ foo(){...} })` 暴露方法
- 在 **主线程**用 `wrap(url)` 生成同名代理，直接当异步函数调用
- 想偷懒？`workerify(fn)` 一行把单函数变 Worker（动态 Blob）
- 自带 **AbortSignal** 取消、**错误序列化**、自动收集 **Transferable**、默认 `type:"module"`、SSR 安全

## 安装
```bash
pnpm add @sv-kit/workerify
```

## 用法 1：多方法模块（推荐）
**worker.ts**
```ts
import { expose } from '@sv-kit/workerify';

function sha256(buf: ArrayBuffer, { signal }: { signal: AbortSignal }) {
  signal.throwIfAborted?.();
  return crypto.subtle.digest('SHA-256', buf);
}
async function heavySum(nums: Float64Array) {
  let s = 0;
  for (let i = 0; i < nums.length; i++) s += nums[i];
  return s;
}

expose({ sha256, heavySum });
```

**主线程**
```ts
import { wrap } from '@sv-kit/workerify';

const api = wrap<typeof import('./worker')>('/workers/worker.js', { name: 'calc' });

const ctrl = new AbortController();
setTimeout(() => ctrl.abort(), 1000); // 1s 取消

// 自动把 ArrayBuffer 作为 Transferable 传过去，不会拷贝
const buf = new Uint8Array([1,2,3]).buffer;
const digest = await api.sha256(buf, { signal: ctrl.signal }).catch(e => console.warn(e.name));

const sum = await api.heavySum(new Float64Array([1,2,3,4]));
api.terminate(); // 用完销毁
```

## 用法 2：单函数 worker（动态 Blob）
```ts
import { workerify } from '@sv-kit/workerify';

const fib = workerify((n: number) => {
  const f = (x: number): number => x <= 1 ? x : f(x-1) + f(x-2);
  return f(n);
}, { name: 'fib' });

console.log(await fib(35));
fib.terminate();
```
> 注意：`workerify(fn)` 会把 `fn.toString()` 注入 Worker，所以 **fn 不要闭包外部变量**。

## 取消 / 错误
- 主线程 `wrap(url)` 调用时传 `{ signal }`，Worker 内你的方法会收到 `{ signal }` 作为**最后一个参数**（可选）。
- Worker 里抛出的错误会被序列化回主线程（`name/message/stack`）。

## Transferable（零拷贝）
调用时会自动递归收集 `ArrayBuffer`、`MessagePort`、`ImageBitmap`、`OffscreenCanvas` 等 **Transferable** 对象并随 `postMessage` 传输，避免拷贝大数据。
自定义结构深度可在 `wrap(url,{transferDepth})` 调整（默认 3 层）。

## SSR 安全
`wrap/workerify` 仅在浏览器有效；服务端调用会抛错以避免踩坑。

## 与 Svelte/React 的关系
这是 **headless 工具**，不依赖任何框架；你可在 Svelte action/store 或 React hooks 里随意包一层胶水。

## 许可
MIT
npm package: @sv-oss/changelog-autotagger
Description: Automatically tags JIRA tickets generated through a changelog with the relevant release number
Author: Service Victoria
Latest version: 0.0.5

# Changelog Autotagger

changelog-autotagger is a CLI for extracting tickets out of a changelog generated by [standard-version](https://github.com/conventional-changelog/standard-version), and adding a tag to those tickets in JIRA.

Two options are required for changelog-autotagger to function, first being a relative path to the changelog file. Second being the version that you want to tag the release as.

**Note** - all tickets in the changelog supplied will be tagged. If you supply the running changelog, it will try to re-tag every issue each execution. It is recommended that you extract just the latest release details and supply it as the source file.

### Usage

There are 2 key ways to use changelog-autotagger. First is through npx as below:

```bash
npx @sv-oss/changelog-autotagger ./my-release-notes.txt --release-version=1.2.3
```

Second is to add it as a global dependency and invoke it directly

```bash
yarn global add @sv-oss/changelog-autotagger
// or
npm i -g @sv-oss/changelog-autotagger
changelog-autotagger ./my-release-notes.txt --release-version=1.2.3
```

### Authentication

Out of the box, the JIRA client uses https authentication. To connect to your JIRA instance, you need to export the below environment variables:

```
export JIRA_ADAPTER_HOST=YOUR_JIRA_INSTANCE.atlassian.net
export JIRA_ADAPTER_USERNAME=YOUR_USERNAME
export JIRA_ADAPTER_PASSWORD=YOUR_PASSWORD_TOKEN
```

JIRA has disabled API access via direct password. See [Manage API tokens for your Atlassian account](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/) for more details and instructions for setting up a token.

### Options

| Param name | Description | Usage | Expected |
| --- | --- | --- | --- |
| `--prefix` | A prefix supplied before each version when creating it in each project | --prefix=hi | fixVersion=hi-1.0.0 |
| `--adapter-path` | Allows user to supply a custom adapter - *see details below* | --adapter-path=./my-adapter.js |Custom adapter used |

## Custom adapters

A custom adapter may be used if you're using something other than JIRA to manage tickets, or if you're wanting to authenticate JIRA via a method other than https.

Pull requests are welcome for any additional adapter types, for common ones they will be reviewed and accepted.

An adapter is required to implement the following methods:

```
    export default {
        verifyIssueExists: (issueId: string) => Promise<boolean>;

        createVersion: (projectId: ReturnType<getProjectId>, name: string, releaseDate: string, options: any) => Promise<void>;

        getProjectId: (projectName: string) => Promise<any>;

        tagFixVersion: (ticketId: string, fixVersion: string) => Promise<void>;
    }
```
npm package: @sv-oss/find-s3-objects-by-acl
Description: Scan a S3 bucket recursively and print objects matching one or more ACLs 
Author: Service Victoria
Latest version: 0.0.15

# find-s3-objects-by-acl
Scan a S3 bucket recursively and print objects matching one or more ACLs

## Pre-requisites
- Node.js version 14.17 or above
- Valid AWS credentials and region configured in your shell

## Installation
### As global package
```bash
npm install -g @sv-oss/find-s3-objects-by-acl@latest
find-s3-objects-by-acl --help
```

### With `npx`
```bash
npx @sv-oss/find-s3-objects-by-acl@latest --help
```


## Usage
```
find-s3-objects-by-acl
> Scan a S3 bucket recursively and print objects matching the selected ACLs

ARGUMENTS:
  <bucket> - target S3 bucket

OPTIONS:
  --prefix <str>   - object prefix for recursive scanning [optional]
  --acl <str>      - object ACL to match, can be repeated multiple times (default: public-read,public-write)
  --output <value> - output format (default: tsv) [optional]

FLAGS:
  --help, -h - show help
```
npm package: @sv-oss/kms-asymmetrical-jwt
Description: A signing/verifying wrapper for jsonwebtoken integrated directly with KMS
Author: Service Victoria
Latest version: 0.0.6

# kms-asymmetrical-jwt

kms-asymmetrical-jwt is a small package for creating & validating JWT's from AWS KMS using an asymmetrical signing algorithm.

The exported methods follow identical signature's to the existing 'jsonwebtoken' package, to allow for an easy upgrade path.

## Installation

```
yarn add @sv-oss/kms-asymmetrical-jwt

// or...

npm i @sv-oss/kms-asymmetrical-jwt
```

## Usage

`kms-asymmetrical-jwt` is made to be a drop-in replacement for jsonwebtoken. However, there are some key differences for upgrading.

**You need to configure the KMS client before doing any signing/verifying**

Example:

```ts
import { setKmsInstance, sign, verify } from '@sv-oss/kms-asymmetrical-jwt';
import { KMS } from 'aws-sdk';

const kms = new KMS({ region: 'ap-southeast-2' }); // your options are kept

// You only need to do this once.
setKmsInstance(kms);

async function handler() {
    const jwt = await sign({ myPayload: 'hello world' }, 'my-kms-key-id');

    // Somewhere else in your flow
    const payload = await verify(jwt, 'my-kms-id');
    console.log(payload); // { myPayload: 'hello world' } as well as the iat, etc
}
```

The other key difference between this & `jsonwebtoken` is that the second param, instead of taking a signature, takes a KMS KeyId.
npm package: @sv-print/plugin-api-image
Description: add image api to print template
Latest version: 0.2.2

# @sv-print/plugin-api-image

给 sv-print 提供导出图片的 API 插件。

## 安装

```bash
npm install @sv-print/plugin-api-image
```

```js
import pluginApiImage from "@sv-print/plugin-api-image";
const plugins = [pluginApiImage({})];
```

## 示例

```js
let hiprintTemplate = new hiprint.PrintTemplate(options);
// 其中 “text” 是一个元素的 “字段名(field)”
let printData = { text: "这是打印时显示的文本" };
// 导出图片, 获取 url/blob 对象
const res = await hiprintTemplate.toImage(printData, {
  isDownload: false, // 不自动下载
  name: "图片名称",
  limit: 10, // 默认 10  多少页为一个 图片文件, 太多 图片文件就很长
  type: "image/jpeg", // 默认 image/jpeg   --> canvas.toDataURL(type, quality)
  pixelRatio: 2, // 图片像素比  2: 提高清晰度 默认 window.devicePixelRatio.
  quality: 0.8, // 默认 0.92  图片质量 0-1
  toType: "url", // 默认 url   支持: url、blob
  onProgress: (cur, total) => {
    const percent = Math.floor((cur / total) * 100);
    console.log("toImage 进度", percent);
  },
});
console.log("toImage", res);
```

## License

LGPL

### 开源使用须知

1.请自觉遵守 LGPL 协议，其他用途可联系作者；

2.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用；

3.如果商用必须保留版权信息，请自觉遵守；

4.禁止将本开源的代码和资源进行任何形式任何名义的出售，否则产生的一切任何后果责任由侵权者自负；

5.商用请仔细审查代码和漏洞，不得用于任一国家许可范围之外的商业应用，产生的一切任何后果责任自负；

```

```
npm package: @sv-print/plugin-api-pdf
Description: add pdf api to print template
Latest version: 0.2.3

# @sv-print/plugin-api-pdf

给 sv-print 提供导出 PDF 的 API 插件。

## 安装

```bash
npm install @sv-print/plugin-api-pdf
```

```js
import pluginApiPdf from "@sv-print/plugin-api-pdf";
const plugins = [pluginApiPdf({})];
```

## 示例

```js
let hiprintTemplate = new hiprint.PrintTemplate(options);
// 其中 “text” 是一个元素的 “字段名(field)”
let printData = { text: "这是打印时显示的文本" };
const res = await hiprintTemplate.toPdf(printData, "pdf名称", {
  isDownload: false, // 不自动下载
  type: "blob", // 默认 blob  支持: blob、bloburl、pdfobjectnewwindow、dataurl  --> jspdf.output(type)
  onProgress: (cur, total) => {
    const percent = Math.floor((cur / total) * 100);
    console.log("toPdf 进度", percent);
  },
});
console.log("toPdf", res);
```

## License

LGPL

### 开源使用须知

1.请自觉遵守 LGPL 协议，其他用途可联系作者；

2.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用；

3.如果商用必须保留版权信息，请自觉遵守；

4.禁止将本开源的代码和资源进行任何形式任何名义的出售，否则产生的一切任何后果责任由侵权者自负；

5.商用请仔细审查代码和漏洞，不得用于任一国家许可范围之外的商业应用，产生的一切任何后果责任自负；

```

```
npm package: @sv-print/plugin-api-pdf3
Description: add pdf api to print template
Latest version: 0.2.3

# @sv-print/plugin-api-pdf3

给 sv-print 提供导出 PDF 的 API 插件。

## 安装

```bash
npm install @sv-print/plugin-api-pdf3
```

```js
import pluginApiPdf from "@sv-print/plugin-api-pdf3";
const plugins = [pluginApiPdf({})];
```

## 示例

```js
let hiprintTemplate = new hiprint.PrintTemplate(options);
// 其中 “text” 是一个元素的 “字段名(field)”
let printData = { text: "这是打印时显示的文本" };
const res = await hiprintTemplate.toPdf(printData, "pdf名称", {
  isDownload: false, // 不自动下载
  type: "blob", // 默认 blob  支持: blob、bloburl、pdfobjectnewwindow、dataurl  --> jspdf.output(type)
  onProgress: (cur, total) => {
    const percent = Math.floor((cur / total) * 100);
    console.log("toPdf 进度", percent);
  },
});
console.log("toPdf", res);
```

## License

LGPL

### 开源使用须知

1.请自觉遵守 LGPL 协议，其他用途可联系作者；

2.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用；

3.如果商用必须保留版权信息，请自觉遵守；

4.禁止将本开源的代码和资源进行任何形式任何名义的出售，否则产生的一切任何后果责任由侵权者自负；

5.商用请仔细审查代码和漏洞，不得用于任一国家许可范围之外的商业应用，产生的一切任何后果责任自负；

```

```
npm package: @sv-print/plugin-ele-bwip-js
Description: ## 安装
Latest version: 0.1.18

# @sv-print/plugin-ele-bwip-js

## 安装

```bash
npm install @sv-print/plugin-ele-bwip-js
```

## 使用

sv-print 插件引入的两种方式见：[sv-print 插件引入的两种方式:https://www.ibujian.cn/svp/plugin/a02.html](https://www.ibujian.cn/svp/plugin/a02.html)

```js
import pluginEleBwip from "@sv-print/plugin-ele-bwip-js";
const plugins = [pluginEleBwip({})];
```

## License

LGPL

### 开源使用须知

1.请自觉遵守 LGPL 协议，其他用途可联系作者；

2.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用；

3.如果商用必须保留版权信息，请自觉遵守；

4.禁止将本开源的代码和资源进行任何形式任何名义的出售，否则产生的一切任何后果责任由侵权者自负；

5.商用请仔细审查代码和漏洞，不得用于任一国家许可范围之外的商业应用，产生的一切任何后果责任自负；
npm package: @sv-print/plugin-ele-e2table
Description: ## 安装
Latest version: 0.1.8

# @sv-print/plugin-ele-e2table

## 安装

```bash
npm install @sv-print/plugin-ele-e2table
```

## 使用

sv-print 插件引入的两种方式见：[sv-print 插件引入的两种方式:https://www.ibujian.cn/svp/plugin/a02.html](https://www.ibujian.cn/svp/plugin/a02.html)

```js
import pluginE2Table from "@sv-print/plugin-ele-e2table";
const plugins = [pluginE2Table({})];
```

## License

LGPL

### 开源使用须知

1.请自觉遵守 LGPL 协议，其他用途可联系作者；

2.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用；

3.如果商用必须保留版权信息，请自觉遵守；

4.禁止将本开源的代码和资源进行任何形式任何名义的出售，否则产生的一切任何后果责任由侵权者自负；

5.商用请仔细审查代码和漏洞，不得用于任一国家许可范围之外的商业应用，产生的一切任何后果责任自负；
npm package: @sv-print/plugin-ele-echarts
Description: ## 安装
Latest version: 0.1.13

# @sv-print/plugin-ele-echarts

## 安装

```bash
npm install @sv-print/plugin-ele-echarts
```

## 使用

sv-print 插件引入的两种方式见：[sv-print 插件引入的两种方式:https://www.ibujian.cn/svp/plugin/a02.html](https://www.ibujian.cn/svp/plugin/a02.html)

```js
import pluginEcharts from "@sv-print/plugin-ele-echarts";
const plugins = [pluginECharts({})];
```

## License

LGPL

### 开源使用须知

1.请自觉遵守 LGPL 协议，其他用途可联系作者；

2.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用；

3.如果商用必须保留版权信息，请自觉遵守；

4.禁止将本开源的代码和资源进行任何形式任何名义的出售，否则产生的一切任何后果责任由侵权者自负；

5.商用请仔细审查代码和漏洞，不得用于任一国家许可范围之外的商业应用，产生的一切任何后果责任自负；
npm package: @sv-print/plugin-ele-fabric
Description: ## 安装
Latest version: 0.1.13

# @sv-print/plugin-ele-fabric

## 安装

```bash
npm install @sv-print/plugin-ele-fabric
```

## 使用

sv-print 插件引入的两种方式见：[sv-print 插件引入的两种方式:https://www.ibujian.cn/svp/plugin/a02.html](https://www.ibujian.cn/svp/plugin/a02.html)

```js
import pluginFabric from "@sv-print/plugin-ele-fabric";
const plugins = [pluginFabric({})];
```

## License

LGPL

### 开源使用须知

1.请自觉遵守 LGPL 协议，其他用途可联系作者；

2.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用；

3.如果商用必须保留版权信息，请自觉遵守；

4.禁止将本开源的代码和资源进行任何形式任何名义的出售，否则产生的一切任何后果责任由侵权者自负；

5.商用请仔细审查代码和漏洞，不得用于任一国家许可范围之外的商业应用，产生的一切任何后果责任自负；
npm package: @sv-print/plugin-ele-shtml
Description: shtml元素插件,支持自动分页
Latest version: 0.1.10

# @sv-print/plugin-ele-shtml

## 安装

```bash
npm install @sv-print/plugin-ele-shtml
```

## 使用

sv-print 插件引入的两种方式见：[sv-print 插件引入的两种方式:https://www.ibujian.cn/svp/plugin/a02.html](https://www.ibujian.cn/svp/plugin/a02.html)

```js
import pluginEleShtml from "@sv-print/plugin-ele-shtml";
const plugins = [pluginEleShtml({})];
```

## License

LGPL

### 开源使用须知

1.请自觉遵守 LGPL 协议，其他用途可联系作者；

2.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用；

3.如果商用必须保留版权信息，请自觉遵守；

4.禁止将本开源的代码和资源进行任何形式任何名义的出售，否则产生的一切任何后果责任由侵权者自负；

5.商用请仔细审查代码和漏洞，不得用于任一国家许可范围之外的商业应用，产生的一切任何后果责任自负；
npm package: @sv-print/plugin-ele-w2html
Description: sv-print w2html元素插件 word转html,支持自动分页
Latest version: 0.1.0

# @sv-print/plugin-ele-shtml

## 安装

```bash
npm install @sv-print/plugin-ele-shtml
```

## 使用

sv-print 插件引入的两种方式见：[sv-print 插件引入的两种方式:https://www.ibujian.cn/svp/plugin/a02.html](https://www.ibujian.cn/svp/plugin/a02.html)

```js
import pluginEleShtml from "@sv-print/plugin-ele-shtml";
const plugins = [pluginEleShtml({})];
```

## License

LGPL

### 开源使用须知

1.请自觉遵守 LGPL 协议，其他用途可联系作者；

2.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用；

3.如果商用必须保留版权信息，请自觉遵守；

4.禁止将本开源的代码和资源进行任何形式任何名义的出售，否则产生的一切任何后果责任由侵权者自负；

5.商用请仔细审查代码和漏洞，不得用于任一国家许可范围之外的商业应用，产生的一切任何后果责任自负；
npm package: @sv-print/plugin-formatter
Description: ## 安装
Latest version: 0.1.4

# @sv-print/plugin-formatter

## 安装

```bash
npm install @sv-print/plugin-formatter
```

## 使用

sv-print 插件引入的两种方式见：[sv-print 插件引入的两种方式:https://www.ibujian.cn/svp/plugin/a02.html](https://www.ibujian.cn/svp/plugin/a02.html)

```js
import pluginFormatter from "@sv-print/plugin-formatter";
const plugins = [
  pluginFormatter({
    name: "格式化器", // 元素参数的名称
    // 同组件 config 配置/hiprint.setConfig(config)。 配置哪些元素 需要这个 格式化器
    config: {
      text: {
        tabs: [
          {
            name: "基础",
            options: [
              {
                name: "sFormatter",
                hidden: false,
                after: "testData",
              },
            ],
          },
        ],
      },
    },
    funList: [
      {
        name: "转大写", // 展示名称
        key: "toUpperCase", // 格式化器key
        fun: (value) => {
          return `${value}`.toUpperCase();
        },
      },
      {
        name: "自定义",
        key: "test",
        fun: (value) => {
          return `${value}+自定义`;
        },
      },
    ],
  }),
];
```

## License

LGPL

### 开源使用须知

1.请自觉遵守 LGPL 协议，其他用途可联系作者；

2.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用；

3.如果商用必须保留版权信息，请自觉遵守；

4.禁止将本开源的代码和资源进行任何形式任何名义的出售，否则产生的一切任何后果责任由侵权者自负；

5.商用请仔细审查代码和漏洞，不得用于任一国家许可范围之外的商业应用，产生的一切任何后果责任自负；
npm package: @sv-print/plugin-i18n
Description: sv-print 多语言插件
Latest version: 0.1.4

# @sv-print/plugin-i18n

## 安装

```bash
npm install @sv-print/plugin-i18n
```

## 使用

sv-print 插件引入的两种方式见：[sv-print 插件引入的两种方式:https://www.ibujian.cn/svp/plugin/a02.html](https://www.ibujian.cn/svp/plugin/a02.html)

```js
import pluginI18n, { translateBySelector } from "@sv-print/plugin-i18n";
import en from "./i18n/en.json"; // 语言文件： json数据
const plugins = [
  pluginI18n(
    {
      // lng: "英文", // 默认: "简体中文"
      // debug: true, // 调试: 可查看对应语言 缺少的翻译
      resources: {
        // 自定义 key: "英文", 则列表 显示对应的名称
        英文: {
          translation: en,
        },
      },
    },
    (i18next, t, err) => {
      // 回调,干点儿其他的
      console.log("测试翻译", t("文本"));
      // 插件提供的一个 API, 根据 选择器 翻译
      // translateBySelector([".sv-print"]);
    }
  ),
];
```

## License

LGPL

### 开源使用须知

1.请自觉遵守 LGPL 协议，其他用途可联系作者；

2.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用；

3.如果商用必须保留版权信息，请自觉遵守；

4.禁止将本开源的代码和资源进行任何形式任何名义的出售，否则产生的一切任何后果责任由侵权者自负；

5.商用请仔细审查代码和漏洞，不得用于任一国家许可范围之外的商业应用，产生的一切任何后果责任自负；
npm package: @sv-print/plugin-text-auto
Description: ## 安装
Latest version: 0.1.5

# @sv-print/plugin-text-auto

## 安装

```bash
npm install @sv-print/plugin-text-auto
```

## 使用

sv-print 插件引入的两种方式见：[sv-print 插件引入的两种方式:https://www.ibujian.cn/svp/plugin/a02.html](https://www.ibujian.cn/svp/plugin/a02.html)

```js
import pluginTextAuto from "@sv-print/plugin-text-auto";
const plugins = [
  pluginTextAuto({
    sizeList: [12, 5, 4, 3, 2, 1], // 适应最小字体选项
    maxIterations: 15, // 适应次数
    enablePrecision: true, // 启用精确适应
    precision: 0.5, // 适应精确step
    precisionCount: 10, // 适应精确次数
    lineHeightMode: "auto", // 行高模式 auto | original | normal | unset
    overrideHidden: false, // 超出是否隐藏
    extendsCss: {
      // 扩展css
      "word-wrap": "break-word", // 单词换行
    },
  }),
];
```

## License

LGPL

### 开源使用须知

1.请自觉遵守 LGPL 协议，其他用途可联系作者；

2.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用；

3.如果商用必须保留版权信息，请自觉遵守；

4.禁止将本开源的代码和资源进行任何形式任何名义的出售，否则产生的一切任何后果责任由侵权者自负；

5.商用请仔细审查代码和漏洞，不得用于任一国家许可范围之外的商业应用，产生的一切任何后果责任自负；
npm package: @sv-sleek/icon
Description: Minimal Svelte icon components powered by Google Material Symbols.
Author: @feuersteiner
Latest version: 1.1.1

# Sleek Icons

Truly Sveltesque icon components powered by Google Material Symbols.

## Installation

```sh
pnpm add @sv-sleek/icon
```

## Setup

Include the font provider once in your app:

```svelte
<script>
	import { IconFontProvider } from '@sv-sleek/icon';
</script>

<IconFontProvider />
<!-- Rest of your app -->
```

## Usage

```svelte
<script>
	import Icon from '@sv-sleek/icon';
</script>

<!-- Normal variant -->
<Icon name="home" />

<!-- Filled variant -->
<Icon name="home" filled />
```

## Styling

Icons inherit all CSS properties from their parent:

```svelte
<div class="large-red">
	<Icon name="star" />
</div>

<button class="action-button">
	<Icon name="check" />
</button>

<style>
	.large-red {
		font-size: 3rem;
		color: tomato;
	}

	.action-button {
		color: white;
		font-size: 1rem;
	}
</style>
```
npm package: @sv-sleek/ui
Description: A sleek Svelte UI component library.
Author: @feuersteiner
Latest version: 1.0.0

# Sleek: a truly Sveltesque UI Component Library

Sleek is a Svelte UI component library designed to be minimal, flexible, and easy to use.
The main inspiration is ofc `Shadcn/ui`, but with a focus on Svelte's unique capabilities and idioms.

## Installation

```
WIP
```

## Usage

```tsx
<script>
  import { Button } from 'sleek';
</script>
<Button onclick={() => console.log('Clicked!')}>Click Me</Button>
```

## Why Sleek?

- **Sveltesque**: Embraces Svelte's styling simplicity, you don't need to add anything to your project to use it (no Tailwind CSS).
- **Minimal**: Only includes essential components, no bloat.
- **Flexible**: You can use as an NPM package or import the component code directly with our cli tool `(WIP)`.

Our friends at [Flowbite Svelte](https://github.com/themesberg/flowbite-svelte) are doing some amazing work, but I personally didn't want to use Tailwind CSS as it goes against the reason I picked Svelte in the first place.

Svelte solves the styling problem in a very elegant way, no more `CSS-in-JS`, no more `Tailwind` classes (and ugly code)... I wanted to build a library that embraces that philosophy, while bringing the composability of `Shadcn/ui` to Svelte.

## Contributing to Sleek UI Components

Follow this minimal pattern for all UI components:

1. **Types**: Use types in `types.ts` for common properties (Size, etc.)
2. **Component-specific types**: Create in component's `types.ts` file
3. **Wrapper pattern**: Create reusable wrappers for shared behavior
4. **Minimal props**: Only expose what's absolutely necessary

## Example Structure

```text
component/
  ├── types.ts          # Component-specific interfaces
  ├── wrapper.svelte    # Shared behavior/styling
  └── variants.svelte   # Specific implementations
```

## Button Example

- `ButtonWrapper`: Handles clicks, disabled state, sizing
- `IconButton`: Extends wrapper with icon display
- `TextButton`: Extends wrapper with text display

Use `Size` type for consistent sizing across components.
npm package: @sv-use/core
Description: A collection of Svelte 5 utilities.
Author: Sajidur Rahman
Latest version: 1.15.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# SvelteUse

A collection of Svelte 5 utilities.

## Features

-   Feature Rich (not exactly *yet*, but we're getting there)
-   Complete documentation and demos
-   Strongly-typed with Typescript
-   Supports Svelte and SvelteKit (even with SSR enabled)

## Installation

```bash
npm install @sv-use/core
```

For more information and documentation, see the [official website](https://svelte-librarian.github.io/sv-use).

## FAQ

1. Aren't there other libraries that do this already ?  
   Yes there are. However, most of the libraries haven't transitioned to Svelte 5.
1. Why use this one instead of [`svecosystem/runed`](https://github.com/svecosystem/runed) (or other libraries) ?
   1. I wanted to make a library that had a lot of utilities to the level of [vueuse/vueuse](https://github.com/vueuse/vueuse) and/or [streamich/react-use](https://github.com/streamich/react-use). It's not there yet, but it's slowly growing.
   1. I'm not a big fan of using the `use` prefix *everywhere*, especially when other verbs could be more descriptive.

## Acknowledgements

Though it's not a 1:1 port, I heavily took inspiration from these libraries to adapt the library for the Svelte ecosystem :

-   [vueuse/vueuse](https://github.com/vueuse/vueuse)
-   [streamich/react-use](https://github.com/streamich/react-use)
-   [svecosystem/runed](https://github.com/svecosystem/runed)