open-index/open-npm huggingface dataset:
npm package: @hyfun/project-info
Description: A webpack plugin for generating git submission information files in the root directory of a project
Author: hyfun
Latest version: 1.0.1

<!--
 * @Author       : heyongfeng
 * @Date         : 2021-07-01 14:34:48
 * @Description  : 
 * @LastEditors  : heyongfeng
 * @LastEditTime : 2021-07-01 14:35:52
-->
# Project-Info

### 功能

一个 webpack 插件,在 output 目录下生成当前项目的版本信息,包括 git 仓库的版本信息，如最近一次的 commit message，分支，commitId，时间等,以及打包的user、 date

## Usage
安装
```cmd
$ npm i @hyfun/project-info -D
```
添加到webpack插件配置中，一般只在生产模式下使用
### webpack.prod.config.js
```js
var ProjectInfoPlugin = require('@hyfun/project-info')
module.exports = {
  mode: 'production',
  plugins: [new ProjectInfoPlugin()],
};
```
默认生成projectInfo.json，也可以自定义
```js
new ProjectInfoPlugin('my.json')
```
使用extraInfo添加其他信息想要配置的信息
```js
var extraInfo = {}
new ProjectInfoPlugin({ fileName:'my.json',extraInfo })
```
npm package: @hyggedyne/scrabbleify
Description: Scrabbleify words (mix letters within words and output the result)
Author: relativityboy
Latest version: 0.1.1

# scrabbleify
Scrabbleify words (mix letters within words and output the result)

### Version history
#### 0.1.1
Supports mixing characters within words. 
Respects the position of *inviolates* like basic punctuation and numbers. (customizable)
`1234567890`, `,'".;:` and `\~!@#$%^&*()_+{}[]|`

By default separator is a ' ' but can use one or more custom separators.

**Simple case:**
```javascript
const {scrabbleify} = require('@hyggedyne/scrabbleify')

const loremIpsum = `Lorem Ipsum is simply ....  of Lorem Ipsum.`

const output = scrabbleify(loremIpsum)

//output is like 'oeLmr Ispum si mipsly ... fo omLre psuIm'

``` 

**Keep 'I' and 'L' in the same position:**
```javascript
scrabbleify(loremIpsum, [' ', 'L','I'])

//output is like 'Lmoer Ipusm si psmliy ydmmu'
```

Exports the following
* `scrabbleify(inputString, [separator, [inviolates]]` *separator* can be a char or array of chars. *inviolates* can be a boolean or an array of chars.
* `numbers`
* `punctuation`
* `symbols`
npm package: @hygraph/app-sdk
Description: JavaScript SDK for building Apps for Hygraph.
Author: Hygraph
Latest version: 0.0.6

# @hygraph/app-sdk

JavaScript SDK for building Apps for Hygraph.

## ⚡ Usage

For docs, guides and examples, please visit [our official documentation](https://hygraph.com/docs/).

## 📝 License

Licensed under the MIT License.

---

Made with 💜 by Hygraph 👋 [join our community](https://slack.hygraph.com/)!
npm package: @hygraph/app-sdk-react
Description: React SDK for building Apps for Hygraph.
Author: Hygraph
Latest version: 0.0.6

# @hygraph/app-sdk-react

React SDK for building Apps for Hygraph.

## ⚡ Usage

For docs, guides and examples, please visit [our official documentation](https://hygraph.com/docs/).

## 📝 License

Licensed under the MIT License.

---

Made with 💜 by Hygraph 👋 [join our community](https://slack.hygraph.com/)!
npm package: @hygraph/utils
Description: Collection of useful Hygraph utilities for building GraphQL powered apps.
Author: Jamie Barton
Latest version: 1.2.1

# Hygraph Utils

## Install

```bash
npm i @hygraph/utils
```

## Usage

### `verifyWebhookSignature`

You'll need the request body and headers to pass to `verifyWebhookSignature`.

If `isValid` is truthy then you can safely execute your webhook handler code knowing the request is genuine, otherwise you should abort any further action.

```js
const { verifyWebhookSignature } = require("@hygraph/utils");

const secret = "rCNwyiloY3oJYYkxgpBXaleIiUv5MYlx";

const body = {}; // Typically req.body
const signature = "..."; // Typically req.headers['gcms-signature']

const isValid = verifyWebhookSignature({ body, signature, secret });
```

`verifyWebhookSignature` also accepts a `rawPayload` in the case that the body
has not yet been parsed.

```js
const { verifyWebhookSignature } = require("@hygraph/utils");

const secret = "rCNwyiloY3oJYYkxgpBXaleIiUv5MYlx";

const rawPayload = '{"hello":"world"}';
const signature = "..."; // Typically req.headers['gcms-signature']

const isValid = verifyWebhookSignature({ rawPayload, signature, secret });
```

[Learn more about Webhooks](https://hygraph.com/docs/api-reference/basics/webhooks).

### `generateWebhookSignature`

This is useful for testing signed webhooks. You can generate a Hygraph webhook signature, and then use it to test your webhook.

```js
const { generateWebhookSignature } = require("@hygraph/utils");

const secret = "rCNwyiloY3oJYYkxgpBXaleIiUv5MYlx";

const body = {
  hello: "world",
};

const signature = generateWebhookSignature({ body, secret });
```

[Learn more about Webhooks](https://hygraph.com/docs/api-reference/basics/webhooks).
npm package: @hyhan/emitter
Description: [![NPM version](https://img.shields.io/npm/v/@hyhan/emitter?color=a1b858&label=)](https://www.npmjs.com/package/@hyhan/emitter)
Author: Han Hui
Latest version: 0.1.0

# @hyhan/emitter

[![NPM version](https://img.shields.io/npm/v/@hyhan/emitter?color=a1b858&label=)](https://www.npmjs.com/package/@hyhan/emitter)

## License

[MIT](./LICENSE) License © 2022 [Han Hui](https://github.com/hyhan)
npm package: @hyhan/prettier-config
Description: Prettier config for @hyhan
Latest version: 1.0.0

# @hyhan/prettier-config [![npm](https://img.shields.io/npm/v/@hyhan/prettier-config.svg)](https://npmjs.com/package/@hyhan/prettier-config)

Prettier config.

## Install

```bash
npm i -D @hyhan/prettier-config
```

## Features

- No semi
- Single quotes
- Trailing Comma always

## Reference

- https://github.com/sxzz/prettier-config

## License

[MIT](./LICENSE) License © 2023 [韩辉](https://github.com/hyhan)
npm package: @hyhello/utils
Description: 前端常用工具函数库
Author: Hyhello
Latest version: 2.1.0

# @hyhello/utils

[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/toss/slash/blob/main/LICENSE) [![codecov](https://codecov.io/github/Hyhello/utils/graph/badge.svg?token=85BP7240GO)](https://codecov.io/github/Hyhello/utils) [![NPM badge](https://img.shields.io/npm/v/%40hyhello%2Futils?logo=npm)](https://www.npmjs.com/package/@hyhello/utils)

### 介绍

前端常用工具函数库。[查看在线文档](https://hyhello.github.io/utils/#/)

### 安装教程

```javascript
npm install @hyhello/utils
```

Note: add --save if you are using npm < 5.0.0

### 使用说明

Use in a browser(CDN):

```javascript
<!-- 引入库 -->
<script src="https://cdn.jsdelivr.net/npm/@hyhello/utils/lib/index.min.js"></script>
or
<script src="https://unpkg.com/@hyhello/utils/lib/index.min.js"></script>
```

Use In Node.js:

```javascript
// Load the full build.
var utils = require('@hyhello/utils');

// Load method categories.
var isArray = require('@hyhello/utils/lib/isArray');
or
var { isArray } = require('@hyhello/utils');
```

Use In ES6:

```javascript
// Load the full build.
import utils from '@hyhello/utils';

// Load method categories.
import isArray from '@hyhello/utils/lib/isArray';
or
import { isArray } from '@hyhello/utils';
```

### 按需引入

> [!TIP]
> 从 `V1.12.0` 版本开始，如果您使用的构建工具支持 `Tree shaking`，您在使用 `@hyhello/utils` 库时将能够实现按需加载，无需进行任何额外配置。

#### Usage in babel

```javascript
npm install babel-plugin-import --save-dev
```

Via .babelrc or babel-loader.

```javascript
{
  "plugins": [["import", options]]
}
```

options can be object.

```javascript
{
  "libraryName": "@hyhello/utils",
  "camel2DashComponentName": false,  // default: true
}
```

#### Usage in vite

```javascript
npm install vite-plugin-imp --save-dev
```

Via vite.config.js.

```javascript
import vitePluginImp from 'vite-plugin-img';

export default defineConfig({
    plugins: [vitePluginImp(options)]
});
```

options can be object.

```javascript
{
  "libName": "@hyhello/utils",
  "libDirectory": "lib",
  "camel2DashComponentName": false
}
```

#### For example, the default behavior

```javascript
import { isArray } from '@hyhello/utils';
↓ ↓ ↓ ↓ ↓ ↓
var isArray = require('@hyhello/utils/lib/isArray');
```

### 支持情况

Tested in Chrome 74-75, Firefox 66-67, IE 11, Edge 18, Safari 11-12.

注：采用 jest + jsdom 进行单元测试，报告如下：

- Statements：98.96%
- Branches：97.22%
- Functions: 99.28%
- Lines: 99.02%
npm package: @hyhello/vue-cron
Description: A cron expression component based on Vue2.0.
Author: Hyhello
Latest version: 0.0.4

# Quick start

## @hyhello/vue-cron

The @hyhello/vue-cron component for vue2, supports single page applications.

## Examples

[codepen.io](https://codepen.io/vue-book/pen/RwLbXeN)

## Use Setup

### install @hyhello/vue-cron

```javascript
npm install @hyhello/vue-cron --save
```

### Vue mount

```vuejs
// global use
import Vue from 'vue';
import vueCron from '@hyhello/vue-cron';

Vue.use(vueCron);

// or Local use
import { Cron } from '@hyhello/vue-cron';

export default {
    components: { Cron }
};
```

### Use in SPA

```html
<style>
	html,
	body {
		width: 100%;
		height: 100%;
		margin: 0;
		padding: 15px;
		text-align: center;
	}
</style>
<template>
	<vue-cron v-model="value" @change="change"></vue-cron>
</template>
<script>
	import { Cron as vueCron } from '@hyhello/vue-cron';

	export default {
		components: { vueCron },
		data: function () {
			return {
				value: null
			};
		},
		methods: {
			change(val) {
				console.log('value:', val);
			}
		}
	};
</script>
```

## Api

| 参数          | 说明         | 类型    | 可选值       | 默认值 |
| ------------- | ------------ | ------- | ------------ | ------ |
| value/v-model | 需要绑定的值 | string  | —            | -      |
| disabled      | 是否禁用     | boolean | true / false | false  |
| readonly      | 是否只读     | boolean | true / false | false  |

### Events

| 事件名 | 说明       | 回调参数   |
| ------ | ---------- | ---------- |
| change | 监听值变化 | 变化后的值 |
npm package: @hyjiacan/vue-kit
Description: Toolkit for Vue.js 2.x
Author: hyjiacan
Latest version: 1.0.0
Deprecated: This package won't be updated any more

# vue-kit

Vue 2.x 开发工具/组件包，提供标准功能支持

[在线示例](https://hyjiacan.github.io/vue-kit)

## 安装

```shell script
npm i @hyjiacan/vue-kit
```

或

```shell script
yarn add @hyjiacan/vue-kit
```

## 依赖

- `echarts`
- `echarts-gl`

## 组件列表

- Anchor
- AnchorBox
- ECharts
- Highlight
- Layout
- SortButton
- SortButtonGroup
- XList
- XListItem
- XMenu
- XMenuChildren
- XMenuItem

## 用法

> 暂时没有时间编写文档
>
## 第三方组件

- `@hyjican/vue-slideout` https://hyjiacan.github.io/vue-slideout/
- `@hyjican/vue-ellipsis` https://hyjiacan.github.io/vue-ellipsis/
- `splitpanes` https://antoniandre.github.io/splitpanes/

## 开发

```shell script
yarn
# start dev server
yarn serve
```

在发布时，使用命令

```shell script
# Build library
yarn release [-l]
```

`-l` (`--lock-version`) 参数表示锁定版本号
npm package: @hyjiacan/vue-router-mod
Description: This is a MOD version based on vue-router 3.1.3
Author: Evan You, hyjiacan
Latest version: 3.1.3-m

# vue-router-mod

This is a **MOD** version based on vue-router [3.1.3](https://github.com/vuejs/vue-router/releases/tag/v3.1.3).

### Introduction

`vue-router-mod` provides extra apis to replace/remove route dynamically.

### Install

```shell script
npm install @hyjiacan/vue-router-mod --save
# or
yarn add @hyjiacan/vue-router-mod
```

You **should not** install package `vue-router` if you install this.

### Usage

### router.removeRoute

Signature：

```js
router.removeRoute(location: string)
```

Dynamically remove route from router (and the children).  The argument must be a valid `path`。

Sample:

```js
const router = new Router({
  routes: [{
    path: '/a',
    component: {name: 'A'}, 
    children: [{
      path: '/a/b',
      component: {name: 'B'},
    }]
  }, {
    path: '/a/c',
    component: {name: 'C'}
  }]
})

router.removeRoute('/a')
```

Now, route `/a` and its child `/a/b` was removed.
 
> Keep in mind, route `/a/c` is still available.

### router.replaceRoutes

Signature：

```js
router.replaceRoutes(routes: Array<RouteConfig> | RouteConfig)
```

Dynamically replace routes from router. The argument must be an Array/Object using the same route config format with the `routes` constructor option.

### Related issue

- https://github.com/vuejs/vue-router/issues/3087

### Development Setup

``` bash
# install deps
npm install

# build dist files
npm run build

# serve examples at localhost:8080
npm run dev

# lint & run all tests
npm test

# serve docs at localhost:8080
npm run docs
```

## Releasing

- `yarn run release`
  - Ensure tests are passing `yarn run test`
  - Build dist files `VERSION=<the_version> yarn run build`
  - Build changelog `yarn run changelog`
  - Commit dist files `git add dist CHANGELOG.md && git commit -m "[build $VERSION]"`
  - Publish a new version `npm version $VERSION --message "[release] $VERSION"
  - Push tags `git push origin refs/tags/v$VERSION && git push`
  - Publish to npm `npm publish`

## License

[MIT](http://opensource.org/licenses/MIT)

## Thanks

Thanks to Evan-You who makes such a amazing framework.
npm package: @hyjiacan/vue-timeline
Description: Timeline component for Vue2
Author: hyjiacan
Latest version: 1.0.2

# TimeLine

## TimeLine

### 属性

|名称|类型|默认值|必填|描述|
|---|---|---|---|---|
|line-position|String|left|否|指定轴位置，可选值: `left,right,center,top,bottom`|
|line-style|String|solid|否|设置线条样式，可选值: `solid,dotted,dashed`|
|direction|String|vertical|否|指定轴的方向，可选值: `horizon,vertical`|
|line-offset|String|0|否|轴相对`axios-position`所在边的偏移量(计划中)|
|time-aside|Boolean|false|否|是否将时间放置在一侧（相对内容的另一侧）|
|show-endline|Boolean|false|否|是否显示最后一项的线段|
|node-shape|String|circle|否|节点的形状，可选值: `circle, rect`|
|fill-node|Boolean|false|否|是否填充节点背景|

> `direction=vertical` 时， `line-position` 可取值为 `center,top,bottom`

> `direction=horizon` 时， `line-position` 可取值为 `center,left,right`

> `direction=horizon`  属于计划中功能

## TimelineItem

### 属性

|名称|类型|默认值|必填|描述|
|---|---|---|---|---|
|node|String|-|否|项的节点文本|
|title|String|-|否|项的标题|
|content|String|-|否|项的内容|

### 插槽

|名称|参数|描述|
|---|---|---|
|default|-|项内容|
|title|-|项标题|
|node|-|项节点|

需要注意的是，在指定了 `default` 插槽时，设置属性 `title` 将被忽略。
同时，内容区域也不会渲染任何样式。
npm package: @hyjiacan/xlsxio
Description: Import/Export data for .xlsx based on ExcelJS
Author: hyjiacan
Latest version: 0.3.6

# xlsxio

xlsx 格式数据导入/导出支持包。

## 安装

```shell
npm install @hyjiacan/xlsxio
```

### 依赖

- [ExcelJS](https://github.com/exceljs/exceljs)
- [JSZip](https://stuk.github.io/jszip/)

## 用法

```js
import {WorkbookDef, SheetDef, ColumnDef, ColumnEnum} from 'xlsxio'

const wb = new WorkbookDef([
  new SheetDef('Sheet1', [
    new ColumnDef('列名称', '字段名称', {
      help: '此列的帮助信息',
      headerStyle: {
        width: 20,
        size: 12
      }
    }),
  ], {
    help: '此表的帮助信息'
  }),
  new SheetDef('Sheet2', [
    new ColumnDef('列名称', '字段名称', {
      help: '此列的帮助信息'
    }),
  ])
])

// 从文件导入数据, file 是通过 <input type="file" /> 选择的文件
const data = wb.read(file)
// 将数据写入文件，可以通过第二个参数指定文件名，指定时会下载文件
const blobData = wb.write([{
  name: 'Sheet1',
  rows: []
}, {
  name: 'Sheet2',
  rows: []
}])
// 下载导入模板文件
// true 表示需要输出帮助信息
wb.write([], '模板文件名', true)
```

`rows` 是表格的数据集合。每行的数据可以是与 ColumnDef 对应的 `object`，也可以是一个简单 `array`。

> 详细用法见 [src/App.vue](./src/App.vue)

## API

- `WorkbookDef` 工作薄定义对象，这是操作 Excel 的入口
- `SheetDef` 表定义对象，一个工作薄中可以包含多个表
- `ColumnDef` 列定义对象，一个表中可以包含多个列

## 后记

为了让单元格注释能自动适应内容大小，对原始的输出进行了处理:

文件 _xl/drawings/vmlDrawing2.vml_

```
<v:textbox><div style="text-align:left;"></div></v:textbox>
// 替换为
<v:textbox style="mso-fit-shape-to-text:t"><div style="text-align:left;"></div></v:textbox>
```

需要关注 [PR #1933](https://github.com/exceljs/exceljs/pull/1933)，若其被合并，
则需要移除此操作，并在输出注释参数上添加 `autoShape: true`
npm package: @hyjiacan/xmind-viewer
Description: 基于 AntvG6 的 XMind 在线预览组件
Author: hyjiacan
Latest version: 2.0.2

# XMind Viewer

一个用于浏览器的简单的 XMind 预览组件。

依赖

- jszip
- @antv/g6 *可选*

## 安装

```shell
npm install @hyjiacan/xmind-viewer --save
# 或者
yarn add @hyjiacan/xmind-viewer
```

## 用法

### 模块引用

```html
<style>
#app {
  width: 100vw;
  height: 100vh;
}
</style>
<div id="app"></div>
```

```js
import XMindViewer from '@hyjiacan/xmind-viewer'

const container = document.getElementById('app')

async function doRender() {
  const response = await fetch("/readme.xmind");
  const buffer = await response.arrayBuffer();
  // 直接使用 viewer 渲染界面
  const grapg = await XMindViewer.viewer.render(container)
}

doRender()
```

> 完整使用，参考文件 [main.js](main.js)

## 待办

- [ ] 备注的展示
- [ ] 标签的展示
- [ ] XML版本的样式处理
npm package: @hyjs/tauri-sql-orm
Description: tauri-plugin-sql-api's ORM encapsulation provides a convenient and versatile way for developers to interact with SQL databases in their Tauri applications.
Author: heiyehk
Latest version: 0.1.6
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# `tauri-sql-orm`[experimental]

### Description of tauri-plugin-sql-api's ORM encapsulation

The tauri-plugin-sql-api is a powerful plugin that allows developers to easily access SQL databases in their Tauri applications. One of the key features of this plugin is its ORM encapsulation, which provides a convenient and intuitive way to work with database records.

With the ORM encapsulation, developers no longer need to write raw SQL queries to interact with their database. Instead, they can use the provided API methods to perform operations such as creating, reading, updating, and deleting records. The ORM encapsulation also handles data validation and type conversion, ensuring that only valid data is stored in the database.

Furthermore, the tauri-plugin-sql-api's ORM encapsulation supports multiple database types, including MySQL, PostgreSQL, and SQLite. This makes it a versatile tool for developers working with different database technologies.

Overall, the ORM encapsulation feature of the tauri-plugin-sql-api simplifies database management and improves application scalability by providing a high-level, object-oriented interface to work with database records.

### Install dependencies


``` sh
npm i @hyjs/tauri-sql-orm -S

#or yarn

yarn add @hyjs/tauri-sql-orm -S

#or pnpm

pnpm i @hyjs/tauri-sql-orm -S
```

### USE

#### instantiation
``` ts
// sqlite
const db = new SqlORM('sqlite:db.db');

// mysql
const db = new SqlORM('mysql://user:pass@localhost:3306/db');

// postgres
const db = new SqlORM('postgres://user:pass@localhost:5432/db');
```

#### create model

``` ts
import { DataTypes } from '@hyjs/tauri-sql-orm';

const TestDB = await db.define('test', {
  id: {
    type: DataTypes.INTEGER,
    primaryKey: true,
    autoIncrement: true
  },
  name: {
    type: DataTypes.TEXT,
    allowNull: false
  },
  text: {
    type: DataTypes.INTEGER,
    allowNull: false
  }
});
```

#### Automatically create a table
``` ts
TestDB.sync();
```
If you need to create the table, you may need to use `force`.

The force will delete before the table and then recreated

``` ts
TestDB.sync({ force: true });
```

#### create data
``` ts
await TestDB.create({
  name: 'test',
  text: 1
});
```

#### bulkCreate data
``` ts
await TestDb.bulkCreate([
  {
    name: 'test',
    text: 1
  },
  {
    name: 'test',
    text: 1
  }
]);
```

#### findAll
``` ts
await TestDB.findAll();
```

#### findOne
``` ts
await TestDB.findOne({
  name: 'test'
});
```

#### drop table
``` ts
await TestDB.drop();
```
npm package: @hyke/cli
Description: [![Build Status](https://travis-ci.org/hyke-generator/sdk.svg?branch=master)](https://travis-ci.org/hyke-generator/sdk) [![dependencies Status](https://david-dm.org/hyke-generator/sdk/status.svg)](https://david-dm.org/hyke-generator/sdk) [![npm version](h
Author: Luka Klacar
Latest version: 1.1.1

# @hyke/sdk 

[![Build Status](https://travis-ci.org/hyke-generator/sdk.svg?branch=master)](https://travis-ci.org/hyke-generator/sdk)
[![dependencies Status](https://david-dm.org/hyke-generator/sdk/status.svg)](https://david-dm.org/hyke-generator/sdk)
[![npm version](https://badge.fury.io/js/%40hyke%2Fsdk.svg)](https://badge.fury.io/js/%40hyke%2Fsdk.svg)
npm package: @hyke/core
Description: [![Build Status](https://travis-ci.org/hyke-generator/core.svg?branch=master)](https://travis-ci.org/hyke-generator/core) [![dependencies Status](https://david-dm.org/hyke-generator/core/status.svg)](https://david-dm.org/hyke-generator/core) [![npm versio
Author: Luka Klacar
Latest version: 1.0.17

# @hyke/core
 
[![Build Status](https://travis-ci.org/hyke-generator/core.svg?branch=master)](https://travis-ci.org/hyke-generator/core)
[![dependencies Status](https://david-dm.org/hyke-generator/core/status.svg)](https://david-dm.org/hyke-generator/core)
[![npm version](https://badge.fury.io/js/%40hyke%2Fcore.svg)](https://badge.fury.io/js/%40hyke%2Fcore.svg)
npm package: @hyke/sdk
Description: [![Build Status](https://travis-ci.org/hyke-generator/sdk.svg?branch=master)](https://travis-ci.org/hyke-generator/sdk) [![dependencies Status](https://david-dm.org/hyke-generator/sdk/status.svg)](https://david-dm.org/hyke-generator/sdk) [![npm version](h
Author: Luka Klacar
Latest version: 1.3.0

# @hyke/sdk 

[![Build Status](https://travis-ci.org/hyke-generator/sdk.svg?branch=master)](https://travis-ci.org/hyke-generator/sdk)
[![dependencies Status](https://david-dm.org/hyke-generator/sdk/status.svg)](https://david-dm.org/hyke-generator/sdk)
[![npm version](https://badge.fury.io/js/%40hyke%2Fsdk.svg)](https://badge.fury.io/js/%40hyke%2Fsdk.svg)
npm package: @hykocx/nextjs-start
Description: A Next.js starter template with Tailwind CSS and custom configuration
Author: hykocx
Latest version: 1.0.3

# @hykocx/nextjs-start

A Next.js starter template with Tailwind CSS and custom configuration.

## Usage

Create a new Next.js project with this template:

```bash
npx @hykocx/nextjs-start
```

This command will:
1. Initialize a new Next.js project with Tailwind CSS
2. Configure path aliases (@-imports)
3. Disable dev indicators
4. Add custom template files and components
5. Set up favicon generation script

## What's Included

- **Next.js** with App Router
- **Tailwind CSS v4** with custom theme
- **Path aliases** configured (`@*` maps to root)
- **Favicon generation** script with SVG support
- **Screenshot placeholder** for documentation

## After Installation

```bash
# Install dependencies (if not already done)
npm install

# Start development server
npm run dev

# Generate favicon from SVG
npm run make-favicon
```
npm package: @hyky/pond
Description: An opinionated CSS reset.
Author: HYKY Team
Latest version: 0.0.1

@hyky/pond
==========

> An opinionated CSS reset, mostly inspired by Boostrap 4's Reboot.

**Pond** is an opinionated CSS reset built around the needs of project we've done, and inspired by resets that worked well for us.

By no means this is a pure reset, but it's production-ready, so it's ok.

-----

_©2020 HYKY Team_
npm package: @hyl2015/react-native-proximity
Description: Detect proximity on iOS and Android
Author: William Bout
Latest version: 2.0.5

[![npm version](https://badge.fury.io/js/react-native-proximity.svg)](https://badge.fury.io/js/react-native-proximity)

# react-native-proximity

A React Native wrapper that provides access to the state of the proximity sensor for iOS and Android.

![](https://github.com/williambout/react-native-proximity/raw/master/demo.gif)

*Usage of react-native-proximity and scrollview.*

## Getting Started

- Install the library 
```shell
npm install --save @hyl2015/react-native-proximity
```
- Link the library 
```shell
react-native link @hyl2015/react-native-proximity
```

## Usage

Import the library

```javascript
import Proximity from '@hyl2015/react-native-proximity';
```

### addListener(callback)
The callback function returns an object with *proximity* and *distance* properties. If *proximity* is true, it means the device is close to an physical object. *distance* is only supported in Android.
```javascript
componentDidMount(){
 Proximity.addListener(this._proximityListener);
},

/**
 * State of proximity sensor
 * @param {object} data
 */
 _proximityListener(data) {
   this.setState({
     proximity: data.proximity,
     distance: data.distance // Android-only 
   });
 },
```

### removeListener(callback)

```javascript
componentWillUnmount() {
  Proximity.removeListener(this._proximityListener);
},
```