open-index/open-npm huggingface dataset:
npm package: @lkadmin/table
Description: 二次封装element-plus的Table，提供灵活的配置项
Author: liukai
Latest version: 1.1.15

<h1 align="center">@lkadmin/table</h1>
<p align="center">二次封装element-plus的Table，提供灵活的配置项</p>

<p align="center">
<a href="https://www.npmjs.com/package/@lkadmin/table" target="__blank"><img src="https://img.shields.io/npm/v/@lkadmin/table?color=a1b858&label=" alt="NPM version"></a>
<a href="https://www.npmjs.com/package/@lkadmin/table" target="__blank"><img alt="NPM Downloads" src="https://img.shields.io/npm/dm/@lkadmin/table?color=50a36f&label="></a>
</p>

简体中文 



## 开发初衷

`element-plus` [Table](https://element-plus.org/zh-CN/component/table.html#table-column-%E5%B1%9E%E6%80%A7) 的`Table-column`属性目前只能写在`<template></template>`模版里，非常不灵活，表格列可以通过数组的形式配置，如果表格的`column`足够多，代码写、看起来很臃肿，但`element-plus` [Virtualized Table](https://element-plus.org/zh-CN/component/table-v2.html) 可配置性就很高，为了保持统一，将`Table`二次封装，新增bingForm，bindUrl，hasPage用于配置分页



## 安装

```bash
npm install @lkadmin/table
# or
yarn add @lkadmin/table
# or
pnpm add @lkadmin/table
```

## `CDN`

```html
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/@lkadmin/table/dist/style.css" />
<script src="//cdn.jsdelivr.net/npm/@lkadmin/table"></script>
<!-- or -->
<link rel="stylesheet" href="//unpkg.com/@lkadmin/table/dist/style.css" />
<script src="//unpkg.com/@lkadmin/table"></script>
```

## 用法

### 局部注册（单文件）

```ts
import "@lkadmin/table/dist/style.css";
import { LkTable } from "@lkadmin/table";

<lk-table locale="zhCn" :data="dataList" :columns="columns" :pagination="pagination"></lk-table>
```

### 全局注册（main.ts）

```ts
import { createApp } from "vue";
import App from "./App.vue";

import "@lkadmin/table/dist/style.css";
import LkTable from "@lkadmin/table";

const app = createApp(App);

app.use(LkTable, { locale: "zhCn" }).mount("#app");
```


## `Volar`支持

如果您在使用 `Volar`，那么可以在 `tsconfig.json` 中配置 `compilerOptions.types` 来指定全局组件类型（尤其是全局注册时要想获得类型提示就需要加上下面配置）

```js
// tsconfig.json
{
  "compilerOptions": {
    // ...
    "types": ["@lkadmin/table/volar"]
  }
}
```
npm package: @lkarabeg/bisection-method
Description: Attempts to find a root of an input function within a given boundary interval, using the  [bisection method](https://en.wikipedia.org/wiki/Bisection_method).
Latest version: 0.0.4

# Bisection method root finder

Attempts to find a root of an input function within a given boundary interval, using the 
[bisection method](https://en.wikipedia.org/wiki/Bisection_method).

To work, it requires that the function values have opposite signs at each end of the boundary
interval, and that there is only one root within the interval.

## Install

````sh
npm install @lkarabeg/bisection-method
````

## Use

````typescript
import findRoot, { BisectionMethodLogLevel } from "@lkarabeg/bisection-method"

const myFunction = (x: number) => Math.log(x)

const lowerBound = 0
const upperBound = 3
const options = { logging: BisectionMethodLogLevel.results }

const result = findRoot(myFunction, lowerBound, upperBound, options)
console.log(result) // 1
````
## Options

| Option        | Type   | Default           | Comment                                                                                                    |
|---------------|--------|-------------------|------------------------------------------------------------------------------------------------------------|
| tolerance     | number | 1e-12             |                                                                                                            |
| maxIterations | number | 100               |                                                                                                            |
| logging       | enum   | none (no logging) | Set the log level to none (default), results or debug. <br/>Import the BisectionMethodLogLevel enum to use |
npm package: @lkarabeg/vue-awaitable-modal
Description: A simple, barebones modal library inspired by the modals in Angular Material.
Latest version: 0.0.2

# Vue Awaitable Modal

A simple, barebones modal library inspired by the modals in Angular Material. 

Bring your own components and styling.

## How it works

The Right and Good way to invoke a modal is like this:

````typescript jsx
const showPrompt = async () => {
    const result = await modalService.showModal(MyModalComponent, { message: "Hello world" })
    // Do stuff with the result after the user is done interacting with the modal
}
````

Not like this, because it requires a bunch of unwanted supporting code in the parent 
component that's trying to show the modal. Plus we can only launch modals from templates.

````vue
<template>
  <!--  We don't want this-->
  <MyModalComponent 
      v-if="showModal" 
      @dismiss="showModal = false"
      @confirm="onConfirmedInModal"
  />
</template>
````

## Getting started

### Place the modal root component

This is where the modals will be rendered in the DOM. It requires a modal service.

````vue
<!--App.vue-->
<script setup lang="ts">
import modalService, { ModalRoot } from "vue-awaitable-modal"
</script>

<template>
    <ModalRoot :modal-service="modalService"></ModalRoot>
    <router-view></router-view>
</template>
````

### Show a modal

When you want to show a modal, pass a component and its props to showModal. You decide what is returned from the modal.
````typescript jsx
const result = await modalService.showModal(MyModalComponent, { message: "Hello world" })
console.log(result.data)
````

The props will be passed into the component, along with a modal context.

The context is used to return a result to the calling component. This way you can determine
whether the user clicked OK, the action succeeded, etc.

````typescript jsx
// Inside the component being shown as a modal
props: {
    message: String,
    modalContext: Object as () => ModalContext
}

// When closing
this.modalContext.close({ success: true })
// or
this.modalContext.dismiss()
````

### (Optional) Extend the modal service

Create a singleton modal service by extending the provided one.
Then you can add convenience methods to launch specific modals. 

**Be sure to pass this instance to the ``ModalRoot`` 
component instead of the default instance as shown above.**

```ts
// modalService.ts
import { ModalService as _ModalService } from 'vue-awaitable-modal'

class ModalService extends _ModalService {
  constructor() {
    super()
  }
  
  public async promptForConfirmation() {
      const result = await this.showModal(MyConfirmationDialogComponent, { text: "Do you like modals?" })
      return result as MyResultType
  }
}

export default new ModalService()
```

## Typescript

The library includes types, but there is currently no type inference for

* the return type (it's just ``unkown``)
* props being passed along with a component (they're just ``{ [name: string]: unkown }``)
npm package: @lkaric/twilio-nestjs
Description: Twilio module wrapper for NestJS framework
Author: Lazar Karic
Latest version: 0.0.1
Deprecated: No support, migrated to nestjs-twilio package.

<p align="center"><img src="https://avatars1.githubusercontent.com/u/43827489?s=400&u=45ac0ac47d40b6d8f277c96bdf00244c10508aef&v=4"/></p>
<p align="center">
</p>

### Feature

Nestjs module wrapper for twilio client.

### Installation

**Yarn**

```bash
yarn add @lkaric/twilio-nestjs
```

**NPM**

```bash
npm install @lkaric/twilio-nestjs --save
```

### Getting Started

An example instantiatiation of twilio client in for example `app.module.ts`

```ts
import { Module } from '@nestjs/common';
import { TwilioModule } from '@lkaric/twilio-nestjs';

@Module({
  imports: [
    TwilioModule.register({
      accountSid: '<TWILIO_SID>',
      authToken: '<TWILIO_AUTH_TOKEN>',
    }),
  ],
})
export class AppModule {}
```

Example usage.

```ts
import { Injectable } from '@nestjs/common';
import { TwilioService } from '@lkaric/twilio-nestjs';

@Injectable()
export class SendMeSms {
  constructor(private readonly twilioService: TwilioService) {}

  async sendSms() {
    try {
      const message = await this.twilioService.client.messages.create({
        body: '<MESSAGE_BODY>',
        from: '<TWILIO_PHONE_NUMBER>',
        to: '<TARGET_PHONE_NUMBER>',
      });
      return message;
    } catch (error) {
      return error;
    }
  }
}
```

For full Client API see the official Twilio SDK reference [here](https://www.twilio.com/docs);

---
npm package: @lkat/cli
Description: the ultimate cli tool 
Author: Lane Katris @lanekatris
Latest version: 0.0.14

# cli

the ultimate cli tool

[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
[![Version](https://img.shields.io/npm/v/cli.svg)](https://npmjs.org/package/cli)
[![Downloads/week](https://img.shields.io/npm/dw/cli.svg)](https://npmjs.org/package/cli)
[![License](https://img.shields.io/npm/l/cli.svg)](https://github.com/lanekatris/cli/blob/master/package.json)

<!-- toc -->
* [cli](#cli)
* [Usage](#usage)
* [Commands](#commands)
<!-- tocstop -->

# Usage

<!-- usage -->
```sh-session
$ npm install -g @lkat/cli
$ lkat COMMAND
running command...
$ lkat (-v|--version|version)
@lkat/cli/0.0.14 darwin-x64 node-v10.19.0
$ lkat --help [COMMAND]
USAGE
  $ lkat COMMAND
...
```
<!-- usagestop -->

# Commands

<!-- commands -->
* [`lkat help [COMMAND]`](#lkat-help-command)

## `lkat help [COMMAND]`

display help for lkat

```
USAGE
  $ lkat help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI
```

_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v3.2.0/src/commands/help.ts)_
<!-- commandsstop -->

https://css-tricks.com/spriting-img/
https://static.dribbble.com/users/4801/screenshots/959722/attachments/109466/dribbble_valeriejar_nps_stamps37_large.jpg
https://dribbble.com/shots/535376-National-Park-Stamps
https://www.pinterest.com/pin/326792516712955632/

https://www.kaggle.com/mikeshout/14erpeaks

https://www.etsy.com/listing/677438323/the-full-set-of-14ers-decals?ref=shop_home_feat_1&frs=1
npm package: @lkd/karin-css
Description: O kit de ferramentas CSS que da beleza aos projetos da LojasKD
Author: LojasKD development team
Latest version: 1.6.0


# Bem-vindo ao Karin 

[![Code Climate](https://codeclimate.com/github/lojaskd/karin-css/badges/gpa.svg)](https://codeclimate.com/github/lojaskd/karin-css)

## Descrição do Projeto

> Karin é uma estrutura SASS construída para fornecer estilos de base, componentes CSS
> e prototipagem estática rápida para a [LojasKD.com.br](https://www.lojaskd.com.br/).

## Instalação e início rápido

Informações de como instalar e usar o Karin na [Wiki Oficial](https://github.com/LojasKD/karin-css/wiki)

## Copyright e Licença

Copyright 2017 - [LojasKD.com.br](https://www.lojaskd.com.br/) sob a licença [MIT](/LICENSE).
npm package: @lkekana/dnsstamp
Description: A modern implementation of Olivier Poitrey and Martin Heidegger's DNS Stamp encoder & decoder
Author: Olivier Poitrey, Martin Heidegger, Lesedi Kekana
Latest version: 1.2.1

## @lkekana/dnsstamp

`@lkekana/dnsstamp` is a fork of [dnsstamp](https://github.com/rs/node-dnsstamp) updated for a modern Javascript environment & with Martin Heidegger ([@martinheidegger](https://github.com/martinheidegger))'s contributions merged. See his [fork](https://github.com/martinheidegger/node-dnsstamp) / [PR](https://github.com/rs/node-dnsstamp/pull/1)

# DNS Stamp

This node module provides a simple API to parse and generate [DNS Stamp](https://dnscrypt.info/stamps-specifications/) as defined by [Frank Denis](https://twitter.com/jedisct1).

## Installation

```sh
npm install @lkekana/dnsstamp
```

## Usage

Parse a stamp URL:

```typescript
import { DNSStamp } from "@lkekana/dnsstamp";

const stamp = DNSStamp.parse("sdns://AQMAAAAAAAAAETk0LjE0MC4xNC4xNDo1NDQzINErR_JS3PLCu_iZEIbq95zkSV2LFsigxDIuUso_OQhzIjIuZG5zY3J5cHQuZGVmYXVsdC5uczEuYWRndWFyZC5jb20");
console.log(stamp.toString());
```

Create a stamp URL:

```typescript
import { DNSStamp } from "@lkekana/dnsstamp";

const dnsCryptStamp = new DNSStamp.DNSCrypt("1.1.1.1", {
  pk: "...",
  providerName: "example.com",
});
console.log(dnsCryptStamp.toString());
```

Supported stamps:

* `DNSStamp.DNSCrypt`: constructor(`addr`, {`props`, `pk`, `providerName`})
* `DNSStamp.DOH`: constructor(`addr`, {`props`, `hostName`, `hash`, `path`})
* `DNSStamp.DOT`: constructor(`addr`, {`props`, `hostName`, `hash`})
* `DNSStamp.Plain`: constructor(`addr`, {`props`})

## Licenses

All source code is licensed under the [MIT License](https://raw.github.com/rs/node-dnsstamp/master/LICENSE).
npm package: @lkennxyz/azure-stt-helper
Description: A wrapper for Azure Speech Services Speech to Text REST API
Author: Liam Kennedy
Latest version: 1.0.6

# azure-STT-helper

![npm](https://img.shields.io/npm/v/@lkennxyz/azure-stt-helper.svg)
[![Build Status](https://travis-ci.org/lkennxyz/azure-stt-helper.svg?branch=master)](https://travis-ci.org/lkennxyz/azure-stt-helper)

A simple Javascript wrapper over the Azure Speech Services Speech-To-Text (STT) REST API, because I didn't like the current Microsoft solution.
Uses [axios](https://www.npmjs.com/package/axios) for the HTTP requests for Frontend & Backend support.

For an example usage see [here](https://github.com/lkennxyz/azure-sst-helper-example).

## Installing


```
$ npm install @lkennxyz/azure-stt-helper
/* or */
$ yarn add @lkennxyz/azure-stt-helper
```

## Quickstart

```
import { azureSTT } from '@lkennxyz/azure-stt-helper'

async function stt () {

    /* Record or Import your wav file here... */

    const result = await azureSTT({
        region: 'YOUR_REGION',
        token: 'YOUR TOKEN',
        /* OR */
        subscriptionKey: 'YOUR_SUBSCRIPTION_KEY',
        language: 'YOUR_LANGUAGE',
        wav: yourWavFile,
    });
    //Output just the STT result text
    console.log(result.DisplayText);
}
```

## Functions
### azureSTT
Makes a request to the Azure Speech Service STT REST API, returns the body of the response.

#### parameters
* region (required): The azure region for your Speech Services Instance

**MUST USE EITHER TOKEN OR SUBSCRIPTION KEY**

* token (optional): The Bearer token obtained by the getToken function
* subscriptionKey (optional): The subscription key for your Speech Services Instance
* language (optional): language used in the recording (defaults to ‘en-US’)

### getToken
Obtains a bearer token from azure to authenticate instead of using the subscriptionKey, returns the bearer token as a string.
#### parameters
* region (required): The azure region for your Speech Services Instance
* subscriptionKey (required): The subscription key for your Speech Services Instance

## Resources
[Microsoft STT REST documentation](https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/rest-speech-to-text)

## License
MIT
npm package: @lkgx/open
Description: | 包装前                 | 包装后       |   | --------              | -----:      |  | window.location.href  | navigateTo  |    | window.open           | open        |
Author: jaderd
Latest version: 1.0.0

# open

| 包装前                 | 包装后       |  
| --------              | -----:      | 
| window.location.href  | navigateTo  |   
| window.open           | open        |
npm package: @lkhatkar/xapi
Description: Minimal and production-ready xAPI Activity Provider client.
Author: lalgulab.khatkar@gmail.com
Latest version: 1.0.2

# @lkhatkar/xapi

A minimal, production-ready **xAPI Activity Provider** library for JavaScript projects.

## Installation

```sh
npm install @lkhatkar/xapi


#example usage
import { XAPI, Verbs, SimulationVerbs } from "@lkhatkar/xapi";

const xapi = new XAPI({
  endpoint: "https://cloud.scorm.com/api/xapi/statements",
  username: "SCORM_API_KEY",
  password: "SCORM_API_SECRET",
  actor: {
    name: "Amit Kumar",
    mbox: "mailto:amit@example.com"
  }
});

// Send a statement
await xapi.sendStatement({
  verb: StandardVerbs.completed,
  object: { id: "https://example.com/course/1", objectType: "Activity" },
  result: { score: { scaled: 0.95 }, completion: true }
});

//get statements
const latest = await xapi.getStatements({
  agent: { mbox: "mailto:test@example.com" },
  verb: "http://adlnet.gov/expapi/verbs/completed",
  limit: 5
});

console.log(latest);
npm package: @lkjisme/openharness
Description: 一个让大模型自主完成产品全生命周期的工程规范工具
Latest version: 0.1.1
Deprecated: 请使用 openharness 替代

# @tc/harness

> 一个让大模型自主完成产品全生命周期的工程规范工具

## 快速开始

### 安装

```bash
npm install -g @tc/harness
```

### 初始化项目

```bash
cd your-project
harness init
```

### 使用 AI 规划产品

在 CodeBuddy 对话框中输入：

```
/harness 做一个待办事项管理应用
```

## 功能特性

- 🚀 **一键初始化**: 自动设置 Harness 工程规范
- 🤖 **AI 驱动**: 与 CodeBuddy 无缝集成
- 📋 **标准化流程**: 规划 → 生成 → 评估 → 迭代
- 🔄 **自动迭代**: AI 自主完成产品开发循环
- 📊 **状态追踪**: 随时查看项目进度

## 命令列表

| 命令 | 说明 |
|------|------|
| `harness init` | 初始化 Harness 到当前项目 |
| `harness init --force` | 强制重新初始化 |
| `harness update` | 更新模板到最新版本 |
| `harness status` | 查看当前项目状态 |

## 目录结构

初始化后的项目结构：

```
your-project/
├── .codebuddy/
│   └── commands/
│       └── harness/
│           └── init          # CodeBuddy 命令定义
├── .harness-template/        # 规范模板
│   ├── README.md
│   ├── protocol.md
│   ├── planner.md
│   ├── generator.md
│   └── evaluator.md
├── .harness/                 # 工作目录（运行时生成）
│   ├── plan.md
│   ├── state.md
│   └── ...
└── HARNESS_GUIDE.md         # 使用指南
```

## 工作流程

### 1. 规划阶段

```
用户输入: /harness 做一个美食分享社区
         ↓
AI 读取规范模板 → 分析需求 → 生成 plan.md
```

### 2. 实现阶段

```
AI 读取 plan.md → 实现功能 → 生成 implementation.md
```

### 3. 评估阶段

```
AI 评估实现 → 生成 evaluation.json + feedback.md
         ↓
    未达标？→ 返回实现阶段
         ↓
    已达标？→ 交付完成
```

## 核心概念

Harness 使用三个角色自动完成产品开发：

| 角色 | 职责 | 输入 | 输出 |
|------|------|------|------|
| **规划器** | 理解需求，制定蓝图 | 产品需求 | `plan.md` |
| **生成器** | 按蓝图实现产品 | `plan.md` + 反馈 | 可运行的软件 |
| **评估器** | 审查质量，给出反馈 | 蓝图 + 实现 | 评估报告 |

## 示例

### 创建待办事项应用

```bash
# 1. 初始化
cd my-todo-app
harness init

# 2. 在 CodeBuddy 中运行
/harness 做一个待办事项管理应用，支持添加、完成、删除任务
```

AI 会自动：
- 生成产品蓝图
- 定义功能清单
- 规划用户旅程
- 设定验收标准

### 查看状态

```bash
harness status
```

输出：
```
📊 Harness 项目状态

✓ 已初始化

当前状态: PLAN_READY
执行者: Generator
Sprint: 1
迭代轮次: 0

进度摘要:
  规划器已完成产品蓝图，包含 3 个 P0 功能
```

## 与 openspec 的对比

| 特性 | openspec | @tencent/harness |
|------|----------|------------------|
| 安装方式 | npm install -g openspec | npm install -g @tc/harness |
| 初始化 | openspec init | harness init |
| AI 调起 | /openspec | /harness |
| 核心机制 | Spec → Implement | Plan → Generate → Evaluate |
| 差异化 | 通用规范 | 工程规范 + 自动迭代 |

## 开发

### 本地开发

```bash
# 克隆仓库
git clone <repo>
cd harness-cli

# 安装依赖
npm install

# 构建
npm run build

# 本地链接
npm link

# 测试
cd ../test-project
harness init
```

### 测试流程

```bash
# 运行自动化测试
npm test
```

## 许可证

MIT

## 相关资源

- [Harness 工程规范详解](./templates/README.md)
- [通信协议说明](./templates/protocol.md)
- [规划器指南](./templates/planner.md)

---

Made with ❤️ for autonomous AI development
npm package: @lkkadiri/ui-components
Description: A UI component library
Author: Pedro Madruga
Latest version: 0.0.2

# myUI

Example on how to build your own UI components library and showcase it in the same code structure. Check the medium article.

## Getting Started

### Installing

```
yarn
```

## Building

To build the library:

`yarn build`

To build the docs:

`yarn build:docs`

## Running

To start the documentation where you can show case the elements from lib:

`yarn start`

## Built With

* [Webpack 4](https://webpack.js.org/) - For building the library
* [Parcel Bundler](https://parceljs.org/) - For building the docs
* React

## Contributing

All PR's are welcome.

## Authors

* **Pedro Madruga** - [twitter](https://twitter.com/thepedromadruga)

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details
npm package: @lkmadushan/vue-tuicalendar
Description: A Vue.js wrapper for TOAST UI Calendar
Author: Kalpa Perera
Latest version: 0.1.6

# Vue TOAST UI Calendar

[![npm](https://img.shields.io/npm/v/@lkmadushan/vue-tuicalendar.svg)](https://www.npmjs.com/package/@lkmadushan/vue-tuicalendar) [![vue2](https://img.shields.io/badge/vue-2.x-brightgreen.svg)](https://vuejs.org/)

> A Vue.js wrapper for [TOAST UI Calendar](http://ui.toast.com/tui-calendar)

## Installation

```bash
npm install --save tui-calendar @lkmadushan/vue-tuicalendar
```

## Usage

### Example 

Try out this [Code Sandbox](https://codesandbox.io/s/0wm308qol)

### Bundler (Webpack, Rollup)

```js
import Vue from 'vue'
import VueTuicalendar from '@lkmadushan/vue-tuicalendar'
// You need a specific loader for CSS files like https://github.com/webpack/css-loader
import 'tui-calendar/dist/tui-calendar.min.css'

Vue.use(VueTuicalendar)

// or

import { VueTuicalendar } from '@lkmadushan/vue-tuicalendar'
```

```html
<template>
  <vue-tuicalendar
    ref="calendar"
    :options="options"
    :schedules="schedules"
    @after-render-schedule="handler"
    @before-render-schedule="handler"
    @click-schedule="handler"
  >
  </vue-tuicalendar>
</template>

...
<script>
...
  data() {
    return {
      schedules: [
        {
          id: "1",
          calendarId: "1",
          title: "A schedule",
          category: "time",
          dueDateClass: "",
          start: "2018-05-22T22:30:00+09:00",
          end: "2018-05-23T02:30:00+09:00"
        },
        {
          id: "2",
          calendarId: "1",
          title: "Another schedule",
          category: "time",
          dueDateClass: "",
          start: "2018-05-23T17:30:00+09:00",
          end: "2018-05-24T17:31:00+09:00",
          isReadOnly: true
        }
      ]
    }
  }
  
  methods: {
    mounted() {
      this.$refs.calendar.fireMethod('clear');
      this.$refs.calendar.fireMethod('getElement');
      this.$refs.calendar.fireMethod('changeView', 'month', true);
      
      this.$refs.calendar.registerEvent('beforeDeleteSchedule', (event) {
        // do stuff here
      })
    }
  }
...
</script>
```

More options can be found at https://nhnent.github.io/tui.calendar/latest/Calendar.html

### Browser

```html
<!-- Include after Vue -->
<!-- Local files -->
<script src="vue-tuicalendar/dist/@lkmadushan/vue-tuicalendar.js"></script>

<!-- From CDN -->
<script src="https://unpkg.com/@lkmadushan/vue-tuicalendar"></script>
```

## Development

### Launch visual tests

```bash
npm run dev
```

### Launch Karma with coverage

```bash
npm run dev:coverage
```

### Build

Bundle the js and css of to the `dist` folder:

```bash
npm run build
```


## Publishing

The `prepublish` hook will ensure dist files are created before publishing. This
way you don't need to commit them in your repository.

```bash
# Bump the version first
# It'll also commit it and create a tag
npm version
# Push the bumped package and tags
git push --follow-tags
# Ship it 🚀
npm publish
```

## License

[MIT](http://opensource.org/licenses/MIT)
npm package: @lkmist/annotated-chart
Description: Chart.js custom element
Author: Dylan
Latest version: 0.0.2

[![CircleCI](https://circleci.com/gh/bitflower/chart.js-stencil/tree/master.svg?style=svg)](https://circleci.com/gh/bitflower/chart.js-stencil/tree/master) chart.js-stencil
======

Chart.js web components (custom elements) with [Stencil](https://github.com/ionic-team/stencil).