x-next 1.18.1 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/AI_USAGE/catalog.md +3 -2
  2. package/AI_USAGE/components/alert-api.md +1 -1
  3. package/AI_USAGE/components/alert.md +1 -1
  4. package/AI_USAGE/components/bar-chart-api.md +1 -1
  5. package/AI_USAGE/components/bar-chart.md +1 -1
  6. package/AI_USAGE/components/boxicons.md +1 -1
  7. package/AI_USAGE/components/button-api.md +1 -1
  8. package/AI_USAGE/components/button.md +1 -1
  9. package/AI_USAGE/components/charts.md +1 -1
  10. package/AI_USAGE/components/checkbox-api.md +1 -1
  11. package/AI_USAGE/components/checkbox.md +1 -1
  12. package/AI_USAGE/components/color-picker-api.md +1 -1
  13. package/AI_USAGE/components/color-picker.md +1 -1
  14. package/AI_USAGE/components/config-provider-api.md +1 -1
  15. package/AI_USAGE/components/config-provider.md +1 -1
  16. package/AI_USAGE/components/date-picker-api.md +1 -1
  17. package/AI_USAGE/components/date-picker.md +1 -1
  18. package/AI_USAGE/components/dialog-api.md +1 -1
  19. package/AI_USAGE/components/dialog.md +1 -1
  20. package/AI_USAGE/components/draggable-api.md +1 -1
  21. package/AI_USAGE/components/draggable.md +1 -1
  22. package/AI_USAGE/components/drawer-api.md +1 -1
  23. package/AI_USAGE/components/drawer.md +1 -1
  24. package/AI_USAGE/components/dropdown-api.md +1 -1
  25. package/AI_USAGE/components/dropdown.md +1 -1
  26. package/AI_USAGE/components/empty-api.md +1 -1
  27. package/AI_USAGE/components/empty.md +1 -1
  28. package/AI_USAGE/components/finicon.md +1 -1
  29. package/AI_USAGE/components/form-api.md +1 -1
  30. package/AI_USAGE/components/form.md +1 -1
  31. package/AI_USAGE/components/grid-api.md +1 -1
  32. package/AI_USAGE/components/grid.md +1 -1
  33. package/AI_USAGE/components/heatmap-api.md +1 -1
  34. package/AI_USAGE/components/heatmap.md +1 -1
  35. package/AI_USAGE/components/icon-api.md +1 -1
  36. package/AI_USAGE/components/icon.md +1 -1
  37. package/AI_USAGE/components/image-api.md +1 -1
  38. package/AI_USAGE/components/image.md +1 -1
  39. package/AI_USAGE/components/input-api.md +1 -1
  40. package/AI_USAGE/components/input-number-api.md +1 -1
  41. package/AI_USAGE/components/input-number.md +1 -1
  42. package/AI_USAGE/components/input-tag-api.md +1 -1
  43. package/AI_USAGE/components/input-tag.md +1 -1
  44. package/AI_USAGE/components/input.md +1 -1
  45. package/AI_USAGE/components/layout-api.md +1 -1
  46. package/AI_USAGE/components/layout.md +1 -1
  47. package/AI_USAGE/components/line-chart-api.md +1 -1
  48. package/AI_USAGE/components/line-chart.md +1 -1
  49. package/AI_USAGE/components/link-api.md +1 -1
  50. package/AI_USAGE/components/link.md +1 -1
  51. package/AI_USAGE/components/menu-api.md +1 -1
  52. package/AI_USAGE/components/menu.md +1 -1
  53. package/AI_USAGE/components/message-api.md +1 -1
  54. package/AI_USAGE/components/message-box-api.md +1 -1
  55. package/AI_USAGE/components/message-box.md +1 -1
  56. package/AI_USAGE/components/message.md +1 -1
  57. package/AI_USAGE/components/network-api.md +1 -1
  58. package/AI_USAGE/components/network.md +1 -1
  59. package/AI_USAGE/components/notification-api.md +1 -1
  60. package/AI_USAGE/components/notification.md +1 -1
  61. package/AI_USAGE/components/pagination-api.md +1 -1
  62. package/AI_USAGE/components/pagination.md +1 -1
  63. package/AI_USAGE/components/pie-chart-api.md +1 -1
  64. package/AI_USAGE/components/pie-chart.md +1 -1
  65. package/AI_USAGE/components/popconfirm-api.md +1 -1
  66. package/AI_USAGE/components/popconfirm.md +1 -1
  67. package/AI_USAGE/components/popover-api.md +1 -1
  68. package/AI_USAGE/components/popover.md +1 -1
  69. package/AI_USAGE/components/popup-api.md +1 -1
  70. package/AI_USAGE/components/popup.md +1 -1
  71. package/AI_USAGE/components/progress-api.md +1 -1
  72. package/AI_USAGE/components/progress.md +1 -1
  73. package/AI_USAGE/components/radio-api.md +1 -1
  74. package/AI_USAGE/components/radio.md +1 -1
  75. package/AI_USAGE/components/rate-api.md +1 -1
  76. package/AI_USAGE/components/rate.md +1 -1
  77. package/AI_USAGE/components/resize-box-api.md +1 -1
  78. package/AI_USAGE/components/resize-box.md +1 -1
  79. package/AI_USAGE/components/scrollbar-api.md +1 -1
  80. package/AI_USAGE/components/scrollbar.md +1 -1
  81. package/AI_USAGE/components/select-api.md +1 -1
  82. package/AI_USAGE/components/select.md +1 -1
  83. package/AI_USAGE/components/skeleton-api.md +1 -1
  84. package/AI_USAGE/components/skeleton.md +1 -1
  85. package/AI_USAGE/components/slider-api.md +1 -1
  86. package/AI_USAGE/components/slider.md +1 -1
  87. package/AI_USAGE/components/space-api.md +1 -1
  88. package/AI_USAGE/components/space.md +1 -1
  89. package/AI_USAGE/components/spin-api.md +1 -1
  90. package/AI_USAGE/components/spin.md +1 -1
  91. package/AI_USAGE/components/steps-api.md +1 -1
  92. package/AI_USAGE/components/steps.md +1 -1
  93. package/AI_USAGE/components/switch-api.md +1 -1
  94. package/AI_USAGE/components/switch.md +1 -1
  95. package/AI_USAGE/components/table-api.md +1 -1
  96. package/AI_USAGE/components/table.md +1 -1
  97. package/AI_USAGE/components/tabs-api.md +1 -1
  98. package/AI_USAGE/components/tabs.md +1 -1
  99. package/AI_USAGE/components/tag-api.md +1 -1
  100. package/AI_USAGE/components/tag.md +1 -1
  101. package/AI_USAGE/components/textarea-api.md +1 -1
  102. package/AI_USAGE/components/textarea.md +1 -1
  103. package/AI_USAGE/components/time-picker-api.md +1 -1
  104. package/AI_USAGE/components/time-picker.md +1 -1
  105. package/AI_USAGE/components/time-range-selector-api.md +1 -1
  106. package/AI_USAGE/components/time-range-selector.md +1 -1
  107. package/AI_USAGE/components/timeline-api.md +1 -1
  108. package/AI_USAGE/components/timeline.md +1 -1
  109. package/AI_USAGE/components/tooltip-api.md +1 -1
  110. package/AI_USAGE/components/tooltip.md +1 -1
  111. package/AI_USAGE/components/transfer-api.md +1 -1
  112. package/AI_USAGE/components/transfer.md +1 -1
  113. package/AI_USAGE/components/tree-select-api.md +1 -1
  114. package/AI_USAGE/components/tree-select.md +1 -1
  115. package/AI_USAGE/components/trend-chart-api.md +1 -1
  116. package/AI_USAGE/components/trend-chart.md +1 -1
  117. package/AI_USAGE/components/trigger-api.md +1 -1
  118. package/AI_USAGE/components/trigger.md +1 -1
  119. package/AI_USAGE/components/upload-api.md +1 -1
  120. package/AI_USAGE/components/upload.md +1 -1
  121. package/AI_USAGE/components/virtual-list-api.md +135 -0
  122. package/AI_USAGE/components/virtual-list.md +62 -0
  123. package/AI_USAGE/components/watermark-api.md +1 -1
  124. package/AI_USAGE/components/watermark.md +1 -1
  125. package/AI_USAGE/core.md +1 -1
  126. package/AI_USAGE/index.md +3 -2
  127. package/AI_USAGE/recipes/form-on-demand.md +1 -1
  128. package/AI_USAGE.md +180 -3
  129. package/CHANGELOG.md +29 -0
  130. package/README.md +108 -212
  131. package/dist/components/form-select/index.d.ts +3 -3
  132. package/dist/components/index.d.ts +1 -0
  133. package/dist/components/pagination/page-options.vue.d.ts +3 -3
  134. package/dist/components/table/index.d.ts +3 -3
  135. package/dist/components/transfer/index.d.ts +3 -3
  136. package/dist/components/tree-select/index.d.ts +3 -3
  137. package/dist/components/virtual-list-v2/index.d.ts +1052 -2
  138. package/dist/components/virtual-list-v2/interface.d.ts +6 -0
  139. package/dist/components/virtual-list-v2/virtual-list.vue.d.ts +32 -1
  140. package/dist/es/components/form-select/Select.js +1 -1
  141. package/dist/es/components/index.js +85 -83
  142. package/dist/es/components/resize-box/ResizeBox.vue2.js +84 -81
  143. package/dist/es/components/table/Table.js +1 -1
  144. package/dist/es/components/transfer/transfer-panel.js +1 -1
  145. package/dist/es/components/tree-select/TreeSelect.js +1 -1
  146. package/dist/es/components/virtual-list-v2/index.js +6 -2
  147. package/dist/es/components/virtual-list-v2/virtual-list.vue.js +18 -17
  148. package/dist/es/components/virtual-list-v2/virtual-list.vue2.js +97 -70
  149. package/dist/es/index.js +55 -53
  150. package/dist/index.cjs +3 -3
  151. package/dist/index.umd.js +3 -3
  152. package/dist/types.d.ts +1 -0
  153. package/package.json +4 -4
  154. package/volar.d.ts +1 -0
package/README.md CHANGED
@@ -1,269 +1,165 @@
1
- # X-Next
2
-
3
- 一套面向 Vue 3 + TypeScript 的企业级 UI 组件库。
4
-
5
- X-Next 提供通用、布局、表单、反馈、导航、数据展示与图表等常用组件,适合中后台系统、业务平台和内部工具使用。内置图表为手写 SVG 实现,不依赖外部图表库;主题变量、暗色模式与无障碍约定在各组件间保持一致。
6
-
7
- ## 文档
8
-
9
- 完整文档、组件示例和 API 说明请访问:
10
-
11
- ```text
12
- https://x-next.yjmf.com
13
- ```
1
+ <p align="center">
2
+ <a href="https://x-next.yjmf.com">
3
+ <img src="https://x-next.yjmf.com/logo.svg" width="88" height="88" alt="X-Next Logo" />
4
+ </a>
5
+ </p>
6
+
7
+ <h1 align="center">X-Next</h1>
8
+
9
+ <p align="center"><strong>把想法,变成界面。</strong></p>
10
+
11
+ <p align="center">面向企业级应用的 Vue 3 组件库,讲究视觉、交互与开发体验。</p>
12
+
13
+ <p align="center">
14
+ <a href="https://www.npmjs.com/package/x-next">
15
+ <img src="https://img.shields.io/npm/v/x-next?color=1c61ff" alt="npm version" />
16
+ </a>
17
+ <a href="https://vuejs.org">
18
+ <img src="https://img.shields.io/badge/Vue-3.5%2B-42b883?logo=vuedotjs&amp;logoColor=white" alt="Vue 3.5+" />
19
+ </a>
20
+ <a href="./LICENSE">
21
+ <img src="https://img.shields.io/badge/license-MIT-1c61ff" alt="MIT License" />
22
+ </a>
23
+ </p>
24
+
25
+ <p align="center">
26
+ <a href="https://x-next.yjmf.com"><strong>官方文档</strong></a> ·
27
+ <a href="https://x-next.yjmf.com/guide/getting-started">快速开始</a> ·
28
+ <a href="https://x-next.yjmf.com/components/">浏览组件</a> ·
29
+ <a href="./CHANGELOG.md">更新日志</a>
30
+ </p>
31
+
32
+ ---
33
+
34
+ X-Next 基于 Vue 3 与 TypeScript 构建,为中后台系统、业务平台与数据看板提供统一的界面基础。从表单录入、数据展示到交互反馈与图表,让团队专注于业务,也让应用保持一致的视觉与使用体验。
35
+
36
+ ## 特性
37
+
38
+ - **覆盖业务常用场景** — 提供表单、表格、树选择、数据穿梭、日期时间、上传与反馈等组件,支持组合构建复杂界面。
39
+ - **统一的视觉语言** — 通过颜色、尺寸、间距与状态规范,保持组件之间的设计一致性。
40
+ - **灵活的主题能力** — 基于 CSS Variables,支持品牌色定制、亮暗主题与局部主题配置。
41
+ - **TypeScript 支持** — 提供组件、事件与服务的类型声明,以及 Vue 模板类型提示。
42
+ - **按需加载** — 组件代码与样式均提供按需入口,按项目需要选择引入范围。
43
+ - **面向 AI 辅助开发** — 随包提供独立使用手册、API 约束与完整示例,让 AI 基于当前版本编写代码。
14
44
 
15
45
  ## 安装
16
46
 
47
+ 在已有的 Vue 3 项目中安装:
48
+
17
49
  ```bash
18
50
  pnpm add x-next
19
51
  ```
20
52
 
21
- 或使用 npm:
22
-
23
53
  ```bash
24
54
  npm install x-next
25
55
  ```
26
56
 
57
+ 需要 Vue **3.5 及以上的 3.x 版本**,支持现代浏览器。
58
+
27
59
  ## 快速开始
28
60
 
29
- ### 全量引入
61
+ ### 按需引入
30
62
 
31
- ```ts
32
- import { createApp } from 'vue';
33
- import XNext from 'x-next';
34
- import 'x-next/dist/style.css';
35
- import App from './App.vue';
63
+ 在 Vue 单文件组件中直接导入所需组件。样式入口会自动包含共享基础样式与组件的内部样式依赖。
36
64
 
37
- const app = createApp(App);
65
+ ```vue
66
+ <script setup lang="ts">
67
+ import { ref } from 'vue';
68
+ import { Button } from 'x-next';
69
+ import 'x-next/style/button';
38
70
 
39
- app.use(XNext);
40
- app.mount('#app');
41
- ```
71
+ const count = ref(0);
72
+ </script>
42
73
 
43
- ```vue
44
74
  <template>
45
- <x-button type="primary">保存</x-button>
75
+ <Button type="primary" @click="count++">已点击 {{ count }} 次</Button>
46
76
  </template>
47
77
  ```
48
78
 
49
- ### 按需引入
79
+ ### 完整引入
80
+
81
+ 在应用入口注册全部组件,并引入完整样式:
50
82
 
51
83
  ```ts
52
84
  import { createApp } from 'vue';
53
- import { Button, Table, Message } from 'x-next';
54
- import 'x-next/dist/style.css';
85
+ import XNext from 'x-next';
86
+ import 'x-next/style.css';
55
87
  import App from './App.vue';
56
88
 
57
- const app = createApp(App);
58
-
59
- app.use(Button);
60
- app.use(Table);
61
- app.mount('#app');
62
-
63
- Message.success('保存成功');
89
+ createApp(App).use(XNext).mount('#app');
64
90
  ```
65
91
 
66
- ### 可选 Finicon 图标集
92
+ 注册后,可在模板中使用全局组件:
67
93
 
68
- Finicon 包含大量金融场景 SVG,不会随根入口自动注册。项目需要使用 `finicon:*` 图标时,在应用入口显式注册一次:
69
-
70
- ```ts
71
- import { registerFiniconIcons } from 'x-next';
72
-
73
- registerFiniconIcons();
94
+ ```vue
95
+ <template>
96
+ <x-button type="primary">开始构建</x-button>
97
+ </template>
74
98
  ```
75
99
 
76
- 这样未使用 Finicon 的应用可以正常 tree-shaking,不会仅因导入单个基础组件而携带整套金融图标。
100
+ 更多接入方式与样式说明见[快速开始](https://x-next.yjmf.com/guide/getting-started)。
77
101
 
78
- ## 样式
102
+ ## 探索组件
79
103
 
80
- 使用组件时需要引入样式文件:
104
+ | 分类 | 常用组件 |
105
+ | --- | --- |
106
+ | 通用 | [Button 按钮](https://x-next.yjmf.com/components/button) · [Link 链接](https://x-next.yjmf.com/components/link) · [Tag 标签](https://x-next.yjmf.com/components/tag) · [Icon 图标](https://x-next.yjmf.com/components/icon) |
107
+ | 布局 | [Layout 布局](https://x-next.yjmf.com/components/layout) · [Grid 栅格](https://x-next.yjmf.com/components/grid) · [Space 间距](https://x-next.yjmf.com/components/space) |
108
+ | 表单 | [Form 表单](https://x-next.yjmf.com/components/form) · [Input 输入框](https://x-next.yjmf.com/components/input) · [Select 选择器](https://x-next.yjmf.com/components/select) · [DatePicker 日期选择器](https://x-next.yjmf.com/components/date-picker) |
109
+ | 复杂选择 | [TreeSelect 树选择器](https://x-next.yjmf.com/components/tree-select) · [Transfer 数据穿梭框](https://x-next.yjmf.com/components/transfer) · [TimeRangeSelector 时间范围选择](https://x-next.yjmf.com/components/time-range-selector) |
110
+ | 数据展示 | [Table 表格](https://x-next.yjmf.com/components/table) · [Image 图片](https://x-next.yjmf.com/components/image) · [Upload 上传](https://x-next.yjmf.com/components/upload) · [Timeline 时间线](https://x-next.yjmf.com/components/timeline) |
111
+ | 导航 | [Menu 菜单](https://x-next.yjmf.com/components/menu) · [Tabs 标签页](https://x-next.yjmf.com/components/tabs) · [Pagination 分页](https://x-next.yjmf.com/components/pagination) · [Steps 步骤条](https://x-next.yjmf.com/components/steps) |
112
+ | 反馈 | [Dialog 对话框](https://x-next.yjmf.com/components/dialog) · [Drawer 抽屉](https://x-next.yjmf.com/components/drawer) · [Message 全局提示](https://x-next.yjmf.com/components/message) · [Notification 通知提醒](https://x-next.yjmf.com/components/notification) |
113
+ | 图表 | [LineChart 折线图](https://x-next.yjmf.com/components/line-chart) · [BarChart 柱状趋势图](https://x-next.yjmf.com/components/bar-chart) · [PieChart 饼图](https://x-next.yjmf.com/components/pie-chart) · [Heatmap 热力图](https://x-next.yjmf.com/components/heatmap) |
81
114
 
82
- ```ts
83
- import 'x-next/dist/style.css';
84
- ```
115
+ 查看[全部组件与交互示例](https://x-next.yjmf.com/components/)。内置图表覆盖趋势、比较、占比与热力分布,无需额外安装图表库。
85
116
 
86
117
  ## 主题定制
87
118
 
88
- X-Next 基于 CSS Variables 提供运行时主题能力。你可以在全局或局部容器中覆盖 `--x-*` 变量。
89
-
90
- ```css
91
- :root {
92
- --x-color-primary: #0f766e;
93
- }
94
- ```
95
-
96
- 局部覆盖示例:
119
+ 使用 `ConfigProvider` 配置品牌色、组件尺寸与暗色模式,也可以通过公开的 CSS Variables 调整应用风格。
97
120
 
98
121
  ```vue
122
+ <script setup lang="ts">
123
+ import { Button, ConfigProvider } from 'x-next';
124
+ import 'x-next/style/button';
125
+ </script>
126
+
99
127
  <template>
100
- <section class="brand-theme">
101
- <x-button type="primary">品牌按钮</x-button>
102
- <x-time-range-selector v-model="ranges" />
103
- </section>
128
+ <ConfigProvider theme-color="#0f766e" :dark="true">
129
+ <Button type="primary">品牌主题</Button>
130
+ </ConfigProvider>
104
131
  </template>
105
-
106
- <style scoped>
107
- .brand-theme {
108
- --x-color-primary: #0f766e;
109
- --x-button-color-bg-primary-solid: var(--x-color-primary);
110
- --x-button-color-border-primary: var(--x-color-primary);
111
- --x-time-range-selector-color-default: var(--x-color-primary);
112
- }
113
- </style>
114
132
  ```
115
133
 
116
- 更多主题变量和组件级变量请查看文档站。
117
-
118
- ## 组件
119
-
120
- ### 通用
134
+ 了解[样式与主题](https://x-next.yjmf.com/guide/theme),查看全局配置、局部主题与运行时换色示例。
121
135
 
122
- - ConfigProvider 全局配置
123
- - Icon 图标
124
- - Finicon 金融图标
125
- - Boxicons 图标
126
- - Button 按钮
127
- - Link 链接
128
- - Tag 标签
129
-
130
- ### 布局
131
-
132
- - Grid 栅格
133
- - Layout 布局
134
- - Space 间距
135
- - ResizeBox 可调整区域
136
- - Scrollbar 滚动条
137
-
138
- ### 表单
139
-
140
- - Form 表单
141
- - Input 输入框
142
- - Textarea 文本域
143
- - InputNumber 数字输入
144
- - InputTag 标签输入
145
- - Checkbox 复选框
146
- - Radio 单选框
147
- - Select 选择器
148
- - Slider 滑块
149
- - Rate 评分
150
- - ColorPicker 颜色选择器
151
- - Switch 开关
152
- - DatePicker 日期选择器
153
- - TimePicker 时间选择器
154
- - TimeRangeSelector 时间范围选择
155
-
156
- ### 反馈
157
-
158
- - Alert 警告提示
159
- - Dialog 对话框
160
- - Drawer 抽屉
161
- - Message 全局提示
162
- - MessageBox 消息框
163
- - Notification 通知提醒
164
- - Popconfirm 气泡确认
165
- - Popover 气泡卡片
166
- - Progress 进度条
167
- - Spin 加载中
168
- - Skeleton 骨架屏
169
-
170
- ### 导航
171
-
172
- - Dropdown 下拉菜单
173
- - Menu 菜单
174
- - Pagination 分页
175
- - Steps 步骤条
176
- - Tabs 标签页
177
-
178
- ### 数据展示
179
-
180
- - Empty 空状态
181
- - Image 图片
182
- - Table 表格
183
- - Timeline 时间线
184
- - Upload 上传
185
-
186
- ### 图表
187
-
188
- 内置手写 SVG 图表,不依赖外部图表库;选择指引见[图表总览](https://x-next.yjmf.com/components/charts)。
189
-
190
- - LineChart 折线图
191
- - BarChart 柱状趋势图
192
- - PieChart 饼图
193
- - TrendChart 迷你趋势图
194
- - Heatmap 热力图
195
-
196
- ### 其他能力
197
-
198
- - Draggable 拖拽
199
- - Network 网络状态
200
- - Tooltip 文字提示
201
- - Watermark 水印
202
-
203
- ### 底层能力
204
-
205
- 主要供组件库内部和高级封装使用,业务优先选择上方语义组件。
206
-
207
- - Trigger 触发器
136
+ ## AI 辅助开发
208
137
 
209
- ## 命令式组件
138
+ X-Next 的 npm 包包含与版本配套的 AI 编程资料,覆盖接入规则、组件 API 与可运行的 Vue 示例。
210
139
 
211
- ```ts
212
- import { Message, Notification, Dialog, MessageBox } from 'x-next';
140
+ 从 [AI_CODING.md](./AI_CODING.md) 开始,将其中的使用规则合并到业务项目的 Agent 指令中;再读取 [AI_USAGE/index.md](./AI_USAGE/index.md) 与 [core.md](./AI_USAGE/core.md),按任务查阅所需组件或场景。资料需要由项目规则显式引用。
213
141
 
214
- Message.info('加载完成');
142
+ 查看[AI 使用指南](https://x-next.yjmf.com/guide/ai-usage)。
215
143
 
216
- Notification.success({
217
- title: '成功',
218
- content: '数据已同步',
219
- });
220
- ```
144
+ ## 参与贡献
221
145
 
222
- ## 指令和 Hooks
146
+ 欢迎反馈使用问题、提出功能建议,以及参与组件开发与文档建设。
223
147
 
224
- ```ts
225
- import {
226
- useDraggable,
227
- useResizeObserver,
228
- vDraggable,
229
- vWatermark,
230
- type WatermarkOptions,
231
- } from 'x-next';
232
- ```
148
+ 本地开发:
233
149
 
234
- ## AI 辅助开发
235
-
236
- AI 编程资料独立随包分发,文档站组件说明仍保持完整。推荐先读 `AI_CODING.md` 中的使用流程,并把其中的 x-next 规则合并到业务仓库 `AGENTS.md`;模型不需要预先了解 x-next。
237
-
238
- ```text
239
- node_modules/x-next/AI_CODING.md
240
- node_modules/x-next/AI_USAGE/index.md
241
- node_modules/x-next/AI_USAGE/core.md
242
- node_modules/x-next/AI_USAGE/components/select.md
150
+ ```bash
151
+ pnpm install
152
+ pnpm docs:dev
243
153
  ```
244
154
 
245
- Agent 先读短索引与通用规则,再按任务读取组件/场景文件。组件页包含真实 API 约束、模型、事件、样式及完整 Vue SFC,与严格校验的手册同源;不要把全文或整个目录反复加入上下文。未收录的能力通过 `AI_USAGE/catalog.md` 查公开类型。
155
+ 提交前请阅读 [AGENTS.md](./AGENTS.md),并运行相应检查:
246
156
 
247
- 这些文件可用 `require.resolve('x-next/AI_USAGE/index.md')` 等公开路径定位。文件名不会让所有 AI 工具自动加载,业务项目应在自己的指令中明确引用。
248
-
249
- 完整 `AI_USAGE.md` 继续兼容提供,旧包按章节读取:
250
-
251
- ```text
252
- node_modules/x-next/AI_USAGE.md
157
+ ```bash
158
+ pnpm build
159
+ pnpm docs:build
160
+ pnpm check
253
161
  ```
254
162
 
255
- 文档站的 [AI 使用指南](https://x-next.yjmf.com/guide/ai-usage) 保留完整示例内容。
256
-
257
- ## 类型提示
258
-
259
- X-Next 提供 TypeScript 类型声明和 Vue 全局组件类型声明。安装后可直接在 Vue 3 + TypeScript 项目中获得组件类型提示。
260
-
261
- 如需生成或更新 Volar 全局组件声明,请查看文档站说明。
262
-
263
- ## 浏览器兼容性
264
-
265
- 推荐使用现代浏览器环境。主题能力依赖 CSS Variables,部分视觉效果会使用现代 CSS 能力。
266
-
267
- ## License
163
+ ## 开源协议
268
164
 
269
- MIT
165
+ [MIT](./LICENSE)
@@ -86,7 +86,7 @@ export declare const Select: {
86
86
  default: () => never[];
87
87
  };
88
88
  virtualListProps: {
89
- type: import('vue').PropType<import('../virtual-list-v2/interface.ts').VirtualListProps>;
89
+ type: import('vue').PropType<import('../index.ts').VirtualListProps>;
90
90
  };
91
91
  triggerProps: {
92
92
  type: import('vue').PropType<import('../index.ts').TriggerProps>;
@@ -1017,7 +1017,7 @@ export declare const Select: {
1017
1017
  default: () => never[];
1018
1018
  };
1019
1019
  virtualListProps: {
1020
- type: import('vue').PropType<import('../virtual-list-v2/interface.ts').VirtualListProps>;
1020
+ type: import('vue').PropType<import('../index.ts').VirtualListProps>;
1021
1021
  };
1022
1022
  triggerProps: {
1023
1023
  type: import('vue').PropType<import('../index.ts').TriggerProps>;
@@ -1199,7 +1199,7 @@ export declare const Select: {
1199
1199
  default: () => never[];
1200
1200
  };
1201
1201
  virtualListProps: {
1202
- type: import('vue').PropType<import('../virtual-list-v2/interface.ts').VirtualListProps>;
1202
+ type: import('vue').PropType<import('../index.ts').VirtualListProps>;
1203
1203
  };
1204
1204
  triggerProps: {
1205
1205
  type: import('vue').PropType<import('../index.ts').TriggerProps>;
@@ -38,6 +38,7 @@ export * from './progress';
38
38
  export * from './rate';
39
39
  export * from './resize-box';
40
40
  export * from './scrollbar-v2';
41
+ export * from './virtual-list-v2';
41
42
  export * from './skeleton';
42
43
  export * from './space';
43
44
  export * from './spin';
@@ -138,7 +138,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
138
138
  default: () => never[];
139
139
  };
140
140
  virtualListProps: {
141
- type: PropType<import('../virtual-list-v2/interface.ts').VirtualListProps>;
141
+ type: PropType<import('../index.ts').VirtualListProps>;
142
142
  };
143
143
  triggerProps: {
144
144
  type: PropType<import('../index.ts').TriggerProps>;
@@ -1069,7 +1069,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
1069
1069
  default: () => never[];
1070
1070
  };
1071
1071
  virtualListProps: {
1072
- type: PropType<import('../virtual-list-v2/interface.ts').VirtualListProps>;
1072
+ type: PropType<import('../index.ts').VirtualListProps>;
1073
1073
  };
1074
1074
  triggerProps: {
1075
1075
  type: PropType<import('../index.ts').TriggerProps>;
@@ -1251,7 +1251,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
1251
1251
  default: () => never[];
1252
1252
  };
1253
1253
  virtualListProps: {
1254
- type: PropType<import('../virtual-list-v2/interface.ts').VirtualListProps>;
1254
+ type: PropType<import('../index.ts').VirtualListProps>;
1255
1255
  };
1256
1256
  triggerProps: {
1257
1257
  type: PropType<import('../index.ts').TriggerProps>;
@@ -93,7 +93,7 @@ export declare const Table: {
93
93
  default: boolean;
94
94
  };
95
95
  virtualListProps: {
96
- type: import('vue').PropType<import('../virtual-list-v2/interface.ts').VirtualListProps>;
96
+ type: import('vue').PropType<import('../index.ts').VirtualListProps>;
97
97
  };
98
98
  spanMethod: {
99
99
  type: import('vue').PropType<(data: {
@@ -350,7 +350,7 @@ export declare const Table: {
350
350
  default: boolean;
351
351
  };
352
352
  virtualListProps: {
353
- type: import('vue').PropType<import('../virtual-list-v2/interface.ts').VirtualListProps>;
353
+ type: import('vue').PropType<import('../index.ts').VirtualListProps>;
354
354
  };
355
355
  spanMethod: {
356
356
  type: import('vue').PropType<(data: {
@@ -581,7 +581,7 @@ export declare const Table: {
581
581
  default: boolean;
582
582
  };
583
583
  virtualListProps: {
584
- type: import('vue').PropType<import('../virtual-list-v2/interface.ts').VirtualListProps>;
584
+ type: import('vue').PropType<import('../index.ts').VirtualListProps>;
585
585
  };
586
586
  spanMethod: {
587
587
  type: import('vue').PropType<(data: {
@@ -65,7 +65,7 @@ export declare const Transfer: {
65
65
  type: import('vue').PropType<boolean | import('./interface').TransferPagination>;
66
66
  default: boolean;
67
67
  };
68
- virtualListProps: import('vue').PropType<import('../virtual-list-v2/interface').VirtualListProps>;
68
+ virtualListProps: import('vue').PropType<import('..').VirtualListProps>;
69
69
  }>> & Readonly<{
70
70
  onSearch?: ((_value: string, _type: import('./interface').TransferType) => any) | undefined;
71
71
  onSelect?: ((_sourceSelected: import('./interface').TransferValue[], _targetSelected: import('./interface').TransferValue[]) => any) | undefined;
@@ -168,7 +168,7 @@ export declare const Transfer: {
168
168
  type: import('vue').PropType<boolean | import('./interface').TransferPagination>;
169
169
  default: boolean;
170
170
  };
171
- virtualListProps: import('vue').PropType<import('../virtual-list-v2/interface').VirtualListProps>;
171
+ virtualListProps: import('vue').PropType<import('..').VirtualListProps>;
172
172
  }>> & Readonly<{
173
173
  onSearch?: ((_value: string, _type: import('./interface').TransferType) => any) | undefined;
174
174
  onSelect?: ((_sourceSelected: import('./interface').TransferValue[], _targetSelected: import('./interface').TransferValue[]) => any) | undefined;
@@ -261,7 +261,7 @@ export declare const Transfer: {
261
261
  type: import('vue').PropType<boolean | import('./interface').TransferPagination>;
262
262
  default: boolean;
263
263
  };
264
- virtualListProps: import('vue').PropType<import('../virtual-list-v2/interface').VirtualListProps>;
264
+ virtualListProps: import('vue').PropType<import('..').VirtualListProps>;
265
265
  }>> & Readonly<{
266
266
  onSearch?: ((_value: string, _type: import('./interface').TransferType) => any) | undefined;
267
267
  onSelect?: ((_sourceSelected: import('./interface').TransferValue[], _targetSelected: import('./interface').TransferValue[]) => any) | undefined;
@@ -142,7 +142,7 @@ export declare const TreeSelect: {
142
142
  default: boolean;
143
143
  };
144
144
  virtualListProps: {
145
- type: import('vue').PropType<import('../virtual-list-v2/interface.ts').VirtualListProps>;
145
+ type: import('vue').PropType<import('../index.ts').VirtualListProps>;
146
146
  };
147
147
  scrollbar: {
148
148
  type: import('vue').PropType<boolean | import('../index.ts').ScrollbarProps>;
@@ -1117,7 +1117,7 @@ export declare const TreeSelect: {
1117
1117
  default: boolean;
1118
1118
  };
1119
1119
  virtualListProps: {
1120
- type: import('vue').PropType<import('../virtual-list-v2/interface.ts').VirtualListProps>;
1120
+ type: import('vue').PropType<import('../index.ts').VirtualListProps>;
1121
1121
  };
1122
1122
  scrollbar: {
1123
1123
  type: import('vue').PropType<boolean | import('../index.ts').ScrollbarProps>;
@@ -1342,7 +1342,7 @@ export declare const TreeSelect: {
1342
1342
  default: boolean;
1343
1343
  };
1344
1344
  virtualListProps: {
1345
- type: import('vue').PropType<import('../virtual-list-v2/interface.ts').VirtualListProps>;
1345
+ type: import('vue').PropType<import('../index.ts').VirtualListProps>;
1346
1346
  };
1347
1347
  scrollbar: {
1348
1348
  type: import('vue').PropType<boolean | import('../index.ts').ScrollbarProps>;