open-index/open-npm huggingface dataset:
npm package: @kevincennis/snowpack-plugin-vue
Description: Use the [Vue 3 compiler](https://www.npmjs.com/package/@vue/compiler-sfc) to build your `.vue` SFC files from source.
Latest version: 2.6.2

# @snowpack/plugin-vue

Use the [Vue 3 compiler](https://www.npmjs.com/package/@vue/compiler-sfc) to build your `.vue` SFC files from source.

```
npm install --save-dev @snowpack/plugin-vue
```

```js
// snowpack.config.mjs
export default {
  plugins: [
    '@snowpack/plugin-vue',
    {
      /* see optional “Plugin Options” below */
    },
  ],
};
```

## Plugin Options

You may customize Vue's bundler behavior using the following plugin options.

| Name           |   Type    | Description                                                                                          |
| :------------- | :-------: | :--------------------------------------------------------------------------------------------------- |
| `optionsApi`   | `boolean` | Enable/disable [Options API](https://v3.vuejs.org/api/options-api.html) support. Defaults to `true`. |
| `prodDevtools` | `boolean` | Enable/disable devtools support in production. Defaults to `false`.                                  |
npm package: @kevinchang1207/cx-ui10
Description: Cx UI components library
Latest version: 0.1.3

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui11
Description: Cx UI components library
Latest version: 0.1.3

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui12
Description: Cx UI components library
Latest version: 0.1.3

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui13
Description: Cx UI components library
Latest version: 0.1.3

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui14
Description: Cx UI components library
Latest version: 0.1.3

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui15
Description: Cx UI components library
Latest version: 0.1.3

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui16
Description: Cx UI components library
Latest version: 0.1.4

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui17
Description: Cx UI components library
Latest version: 0.1.4

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui18
Description: Cx UI components library
Latest version: 0.1.4

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui19
Description: Cx UI components library
Latest version: 0.1.5

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui20
Description: Cx UI components library
Latest version: 0.1.4

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui21
Description: Cx UI components library
Latest version: 0.1.5

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui22
Description: Cx UI components library
Latest version: 0.1.4

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui23
Description: Cx UI components library
Latest version: 0.1.5

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui24
Description: Cx UI components library
Latest version: 0.1.5

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui25
Description: Cx UI components library
Latest version: 0.1.5

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。
npm package: @kevinchang1207/cx-ui7
Description: Cx UI components library
Latest version: 0.1.2

# Cx UI（基于 Element Plus 的业务组件库）

轻量封装 Element Plus，提供统一风格与常用增强组件：`CxInput`、`CxButton`、`CxForm`、`CxTable`（列筛选）、`CxDialog`、`CxDrawer`、`CxPagination`、`CxSelect`、`CxDateRange`。

## 安装
```bash
npm i @kevinchang1207/cx-ui element-plus
# 或者
pnpm add @kevinchang1207/cx-ui element-plus
```

要求：Vue 3.2+，Element Plus 2.x。

## 快速开始（全局注册）
```ts
// main.ts / main.js
import { createApp } from 'vue'
import App from './App.vue'
import CxUI from '@kevinchang1207/cx-ui'
import 'element-plus/dist/index.css'

createApp(App).use(CxUI).mount('#app')
```

## 按需使用（局部注册）
```ts
import { CxButton, CxInput } from '@kevinchang1207/cx-ui'
export default { components: { CxButton, CxInput } }
```

## 组件示例

### CxButton
```vue
<cx-button type="primary" @click="doSomething">提交</cx-button>
<cx-button type="success" plain>成功</cx-button>
<cx-button type="danger" :loading="loading">删除中</cx-button>
```
Props：`type`（primary/success/warning/danger/info/default）、`size`（sm/md/lg）、`plain`、`round`、`circle`、`loading`、`disabled`。

### CxInput
```vue
<cx-input v-model="keyword" placeholder="请输入关键词" clearable />
```
支持 `prefix`、`suffix` 插槽。

### CxForm（基于 schema）
```vue
<cx-form :model="form" :rules="rules" :schema="[
  { label: '姓名', prop: 'name', component: 'input', placeholder: '请输入姓名' },
  { label: '状态', prop: 'status', component: 'select', options: [
    { label: '启用', value: 'enabled' },
    { label: '停用', value: 'disabled' }
  ]},
  { label: '日期', prop: 'date', component: 'date' }
]" @submit="onSubmit" />
```
事件：`submit(values)`、`reset()`、`validate({ valid, error })`。

### CxTable（列筛选/排序/选择）
```vue
<cx-table :data="rows" :columns="[
  { type: 'selection' },
  { prop: 'name', label: '姓名', sortable: 'custom' },
  { prop: 'status', label: '状态', filters: [
    { text: '启用', value: 'enabled' },
    { text: '停用', value: 'disabled' }
  ], filterMethod: (val, row) => row.status === val },
  { prop: 'age', label: '年龄', sortable: 'custom' }
]" @filter-change="onFilter" @sort-change="onSort" />
```
支持插槽列：`columns` 中定义 `slot: 'xxx'`，并提供 `<template #xxx="{ row }">`。

### CxDialog / CxDrawer
```vue
<cx-dialog v-model="visible" title="提示" @confirm="ok">内容</cx-dialog>
<cx-drawer v-model="drawer" title="侧边">内容</cx-drawer>
```

### CxSelect / CxDateRange
```vue
<cx-select v-model="val" :options="opts" />
<cx-date-range v-model="range" />
```

### 分页
```vue
<cx-pagination :current="page" :page-size="size" :total="total" @change="onPage" />
```

## 常见问题
- 按钮/输入框尺寸：库内 `sm/md/lg` 自动映射到 Element Plus 的 `small/default/large`。
- 主题：直接使用 Element Plus 主题定制方案（如变量覆盖）。
- Tree-shaking：本库为 UMD/CommonJS 构建，建议在应用层做路由/页面级懒加载。