x-next 1.12.0 → 1.14.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 (226) hide show
  1. package/AI_CODING.md +6 -5
  2. package/AI_USAGE/catalog.md +106 -105
  3. package/AI_USAGE/components/alert-api.md +48 -0
  4. package/AI_USAGE/components/alert.md +222 -3
  5. package/AI_USAGE/components/bar-chart-api.md +177 -0
  6. package/AI_USAGE/components/bar-chart.md +297 -3
  7. package/AI_USAGE/components/boxicons.md +147 -0
  8. package/AI_USAGE/components/button-api.md +144 -0
  9. package/AI_USAGE/components/button.md +447 -3
  10. package/AI_USAGE/components/charts.md +81 -0
  11. package/AI_USAGE/components/checkbox-api.md +145 -0
  12. package/AI_USAGE/components/checkbox.md +365 -3
  13. package/AI_USAGE/components/color-picker-api.md +52 -0
  14. package/AI_USAGE/components/color-picker.md +211 -3
  15. package/AI_USAGE/components/config-provider-api.md +38 -0
  16. package/AI_USAGE/components/config-provider.md +250 -3
  17. package/AI_USAGE/components/date-picker-api.md +1114 -0
  18. package/AI_USAGE/components/date-picker.md +378 -3
  19. package/AI_USAGE/components/dialog-api.md +142 -0
  20. package/AI_USAGE/components/dialog.md +284 -3
  21. package/AI_USAGE/components/draggable-api.md +146 -0
  22. package/AI_USAGE/components/draggable.md +259 -0
  23. package/AI_USAGE/components/drawer-api.md +78 -0
  24. package/AI_USAGE/components/drawer.md +227 -0
  25. package/AI_USAGE/components/dropdown-api.md +529 -0
  26. package/AI_USAGE/components/dropdown.md +392 -3
  27. package/AI_USAGE/components/empty-api.md +36 -0
  28. package/AI_USAGE/components/empty.md +227 -3
  29. package/AI_USAGE/components/finicon.md +88 -0
  30. package/AI_USAGE/components/form-api.md +524 -0
  31. package/AI_USAGE/components/form.md +454 -0
  32. package/AI_USAGE/components/grid-api.md +527 -0
  33. package/AI_USAGE/components/grid.md +224 -0
  34. package/AI_USAGE/components/heatmap-api.md +122 -0
  35. package/AI_USAGE/components/heatmap.md +220 -0
  36. package/AI_USAGE/components/icon-api.md +4707 -0
  37. package/AI_USAGE/components/icon.md +257 -0
  38. package/AI_USAGE/components/image-api.md +440 -0
  39. package/AI_USAGE/components/image.md +465 -0
  40. package/AI_USAGE/components/input-api.md +184 -0
  41. package/AI_USAGE/components/input-number-api.md +66 -0
  42. package/AI_USAGE/components/input-number.md +294 -0
  43. package/AI_USAGE/components/input-tag-api.md +114 -0
  44. package/AI_USAGE/components/input-tag.md +482 -0
  45. package/AI_USAGE/components/input.md +293 -3
  46. package/AI_USAGE/components/layout-api.md +147 -0
  47. package/AI_USAGE/components/layout.md +230 -0
  48. package/AI_USAGE/components/line-chart-api.md +197 -0
  49. package/AI_USAGE/components/line-chart.md +279 -3
  50. package/AI_USAGE/components/link-api.md +42 -0
  51. package/AI_USAGE/components/link.md +197 -0
  52. package/AI_USAGE/components/menu-api.md +516 -0
  53. package/AI_USAGE/components/menu.md +268 -0
  54. package/AI_USAGE/components/message-api.md +215 -0
  55. package/AI_USAGE/components/message-box-api.md +108 -0
  56. package/AI_USAGE/components/message-box.md +268 -3
  57. package/AI_USAGE/components/message.md +231 -3
  58. package/AI_USAGE/components/network-api.md +91 -0
  59. package/AI_USAGE/components/network.md +378 -0
  60. package/AI_USAGE/components/notification-api.md +236 -0
  61. package/AI_USAGE/components/notification.md +275 -3
  62. package/AI_USAGE/components/pagination-api.md +62 -0
  63. package/AI_USAGE/components/pagination.md +386 -5
  64. package/AI_USAGE/components/pie-chart-api.md +109 -0
  65. package/AI_USAGE/components/pie-chart.md +245 -3
  66. package/AI_USAGE/components/popconfirm-api.md +75 -0
  67. package/AI_USAGE/components/popconfirm.md +231 -3
  68. package/AI_USAGE/components/popover-api.md +75 -0
  69. package/AI_USAGE/components/popover.md +208 -3
  70. package/AI_USAGE/components/popup-api.md +75 -0
  71. package/AI_USAGE/components/popup.md +52 -0
  72. package/AI_USAGE/components/progress-api.md +44 -0
  73. package/AI_USAGE/components/progress.md +248 -3
  74. package/AI_USAGE/components/radio-api.md +165 -0
  75. package/AI_USAGE/components/radio.md +259 -3
  76. package/AI_USAGE/components/rate-api.md +54 -0
  77. package/AI_USAGE/components/rate.md +233 -3
  78. package/AI_USAGE/components/resize-box-api.md +56 -0
  79. package/AI_USAGE/components/resize-box.md +231 -0
  80. package/AI_USAGE/components/scrollbar-api.md +77 -0
  81. package/AI_USAGE/components/scrollbar.md +218 -0
  82. package/AI_USAGE/components/select-api.md +758 -0
  83. package/AI_USAGE/components/select.md +640 -3
  84. package/AI_USAGE/components/skeleton-api.md +85 -0
  85. package/AI_USAGE/components/skeleton.md +150 -0
  86. package/AI_USAGE/components/slider-api.md +51 -0
  87. package/AI_USAGE/components/slider.md +233 -3
  88. package/AI_USAGE/components/space-api.md +38 -0
  89. package/AI_USAGE/components/space.md +145 -0
  90. package/AI_USAGE/components/spin-api.md +43 -0
  91. package/AI_USAGE/components/spin.md +205 -0
  92. package/AI_USAGE/components/steps-api.md +111 -0
  93. package/AI_USAGE/components/steps.md +201 -3
  94. package/AI_USAGE/components/switch-api.md +58 -0
  95. package/AI_USAGE/components/switch.md +290 -3
  96. package/AI_USAGE/components/table-api.md +2919 -0
  97. package/AI_USAGE/components/table.md +1414 -0
  98. package/AI_USAGE/components/tabs-api.md +135 -0
  99. package/AI_USAGE/components/tabs.md +308 -3
  100. package/AI_USAGE/components/tag-api.md +124 -0
  101. package/AI_USAGE/components/tag.md +292 -0
  102. package/AI_USAGE/components/textarea-api.md +55 -0
  103. package/AI_USAGE/components/textarea.md +326 -3
  104. package/AI_USAGE/components/time-picker-api.md +137 -0
  105. package/AI_USAGE/components/time-picker.md +271 -3
  106. package/AI_USAGE/components/time-range-selector-api.md +44 -0
  107. package/AI_USAGE/components/time-range-selector.md +355 -0
  108. package/AI_USAGE/components/timeline-api.md +93 -0
  109. package/AI_USAGE/components/timeline.md +312 -0
  110. package/AI_USAGE/components/tooltip-api.md +77 -0
  111. package/AI_USAGE/components/tooltip.md +182 -0
  112. package/AI_USAGE/components/trend-chart-api.md +119 -0
  113. package/AI_USAGE/components/trend-chart.md +335 -0
  114. package/AI_USAGE/components/trigger-api.md +124 -0
  115. package/AI_USAGE/components/trigger.md +185 -0
  116. package/AI_USAGE/components/upload-api.md +200 -0
  117. package/AI_USAGE/components/upload.md +711 -3
  118. package/AI_USAGE/components/watermark-api.md +87 -0
  119. package/AI_USAGE/components/watermark.md +200 -0
  120. package/AI_USAGE/core.md +1 -1
  121. package/AI_USAGE/index.md +35 -7
  122. package/AI_USAGE/recipes/form-on-demand.md +1 -1
  123. package/AI_USAGE.md +33657 -7
  124. package/CHANGELOG.md +40 -0
  125. package/dist/_utils/inherit-component-type.d.ts +11 -0
  126. package/dist/components/date-picker/index.d.ts +420 -5
  127. package/dist/components/form-input/index.d.ts +617 -2
  128. package/dist/components/layout/index.d.ts +689 -1
  129. package/dist/components/menu/index.d.ts +786 -1
  130. package/dist/components/network/Network.vue.d.ts +7 -3
  131. package/dist/components/network/index.d.ts +10 -2
  132. package/dist/components/network/props.d.ts +5 -0
  133. package/dist/components/network/utils.d.ts +3 -3
  134. package/dist/components/pagination/page-item-ellipsis.vue.d.ts +4 -1
  135. package/dist/components/pagination/page-item-step.vue.d.ts +101 -130
  136. package/dist/components/pagination/page-item.vue.d.ts +1 -0
  137. package/dist/components/pagination/page-jumper.vue.d.ts +1 -1
  138. package/dist/components/pagination/page-options.vue.d.ts +6 -4
  139. package/dist/components/pagination/utils.d.ts +3 -0
  140. package/dist/components/time-range-selector/index.d.ts +6 -6
  141. package/dist/es/_container/resize-observer-v2.js +1 -1
  142. package/dist/es/_container/resize-observer.js +1 -1
  143. package/dist/es/_hooks/use-resize-observer.js +1 -1
  144. package/dist/es/_styles/palette-aliases.js +4 -4
  145. package/dist/es/_utils/inherit-component-type.js +6 -0
  146. package/dist/es/_virtual/advancedFormat.js +1 -1
  147. package/dist/es/_virtual/customParseFormat.js +1 -1
  148. package/dist/es/_virtual/dayjs.min.js +1 -1
  149. package/dist/es/_virtual/isBetween.js +1 -1
  150. package/dist/es/_virtual/quarterOfYear.js +1 -1
  151. package/dist/es/_virtual/weekOfYear.js +1 -1
  152. package/dist/es/_virtual/weekYear.js +1 -1
  153. package/dist/es/_virtual/zh-cn.js +1 -1
  154. package/dist/es/components/button/Button.js +53 -42
  155. package/dist/es/components/date-picker/index.js +18 -17
  156. package/dist/es/components/draggable/useDraggable.js +1 -1
  157. package/dist/es/components/form/Form.vue2.js +1 -1
  158. package/dist/es/components/form/FormItem.vue2.js +1 -1
  159. package/dist/es/components/form-input/index.js +12 -11
  160. package/dist/es/components/form-input-number/InputNumber.js +1 -1
  161. package/dist/es/components/form-slider/Slider.vue2.js +1 -1
  162. package/dist/es/components/form-slider/slider-ticks.vue2.js +1 -1
  163. package/dist/es/components/form-slider/utils.js +1 -1
  164. package/dist/es/components/layout/index.js +10 -9
  165. package/dist/es/components/menu/MenuItem.js +1 -1
  166. package/dist/es/components/menu/hooks/use-level.js +5 -5
  167. package/dist/es/components/menu/index.js +13 -10
  168. package/dist/es/components/menu/overflow-wrap.js +1 -1
  169. package/dist/es/components/network/Network.vue.js +17 -12
  170. package/dist/es/components/network/Network.vue2.js +78 -70
  171. package/dist/es/components/network/utils.js +112 -71
  172. package/dist/es/components/pagination/Pagination.js +132 -123
  173. package/dist/es/components/pagination/page-item-ellipsis.vue.js +10 -10
  174. package/dist/es/components/pagination/page-item-ellipsis.vue2.js +24 -19
  175. package/dist/es/components/pagination/page-item-step.vue.js +14 -11
  176. package/dist/es/components/pagination/page-item-step.vue2.js +20 -22
  177. package/dist/es/components/pagination/page-item.vue.js +10 -9
  178. package/dist/es/components/pagination/page-item.vue2.js +24 -19
  179. package/dist/es/components/pagination/page-jumper.vue2.js +23 -23
  180. package/dist/es/components/pagination/page-options.vue.js +15 -10
  181. package/dist/es/components/pagination/page-options.vue2.js +21 -17
  182. package/dist/es/components/pagination/utils.js +4 -2
  183. package/dist/es/components/progress/circle.vue2.js +1 -1
  184. package/dist/es/components/progress/line.vue2.js +1 -1
  185. package/dist/es/components/progress/steps.vue2.js +1 -1
  186. package/dist/es/components/rate/Rate.js +1 -1
  187. package/dist/es/components/virtual-list-v2/virtual-list-item.js +1 -1
  188. package/dist/es/locale/en-US.js +2 -0
  189. package/dist/es/locale/zh-CN.js +2 -0
  190. package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/dayjs@1.11.21/node_modules/dayjs/dayjs.min.js +1 -1
  191. package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/dayjs@1.11.21/node_modules/dayjs/locale/zh-cn.js +1 -1
  192. package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/dayjs@1.11.21/node_modules/dayjs/plugin/advancedFormat.js +1 -1
  193. package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/dayjs@1.11.21/node_modules/dayjs/plugin/customParseFormat.js +1 -1
  194. package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/dayjs@1.11.21/node_modules/dayjs/plugin/isBetween.js +1 -1
  195. package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/dayjs@1.11.21/node_modules/dayjs/plugin/quarterOfYear.js +1 -1
  196. package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/dayjs@1.11.21/node_modules/dayjs/plugin/weekOfYear.js +1 -1
  197. package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/dayjs@1.11.21/node_modules/dayjs/plugin/weekYear.js +1 -1
  198. package/dist/es/style.css +1 -1
  199. package/dist/index.cjs +3 -3
  200. package/dist/index.umd.js +3 -3
  201. package/dist/locale/interface.d.ts +3 -0
  202. package/dist/style/base.css +1 -1
  203. package/dist/style/button.css +1 -1
  204. package/dist/style/form-select.css +1 -1
  205. package/dist/style/network.css +1 -1
  206. package/dist/style/pagination.css +1 -1
  207. package/dist/style/table.css +1 -1
  208. package/dist/style.css +1 -1
  209. package/package.json +10 -5
  210. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/b-validate@1.5.3/node_modules/b-validate/es/index.js +0 -0
  211. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/b-validate@1.5.3/node_modules/b-validate/es/is.js +0 -0
  212. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/b-validate@1.5.3/node_modules/b-validate/es/locale/en-US.js +0 -0
  213. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/b-validate@1.5.3/node_modules/b-validate/es/rules/array.js +0 -0
  214. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/b-validate@1.5.3/node_modules/b-validate/es/rules/base.js +0 -0
  215. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/b-validate@1.5.3/node_modules/b-validate/es/rules/boolean.js +0 -0
  216. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/b-validate@1.5.3/node_modules/b-validate/es/rules/custom.js +0 -0
  217. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/b-validate@1.5.3/node_modules/b-validate/es/rules/number.js +0 -0
  218. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/b-validate@1.5.3/node_modules/b-validate/es/rules/object.js +0 -0
  219. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/b-validate@1.5.3/node_modules/b-validate/es/rules/string.js +0 -0
  220. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/b-validate@1.5.3/node_modules/b-validate/es/rules/type.js +0 -0
  221. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/b-validate@1.5.3/node_modules/b-validate/es/util.js +0 -0
  222. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/compute-scroll-into-view@3.1.1/node_modules/compute-scroll-into-view/dist/index.js +0 -0
  223. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/number-precision@1.6.0/node_modules/number-precision/build/index.es.js +0 -0
  224. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/resize-observer-polyfill@1.5.1/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js +0 -0
  225. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/scroll-into-view-if-needed@3.1.0/node_modules/scroll-into-view-if-needed/dist/index.js +0 -0
  226. /package/dist/es/{Users/xuyu/Code/x-next/node_modules → node_modules}/.pnpm/sortablejs@1.15.7/node_modules/sortablejs/modular/sortable.esm.js +0 -0
@@ -0,0 +1,38 @@
1
+ <!-- Generated by pnpm generate:ai-usage. Edit script/ai-usage/content.md and script/ai-usage/. -->
2
+ # ConfigProvider 完整公开 API
3
+
4
+ 适用版本:x-next@1.14.0;来源指纹:`014984639d816a2c7e25eb22690c586b0b2e8efba6846bec8a4e424db41a09e9`。
5
+
6
+ 从同版本构建的公开声明、运行时 props/emits 和显式 expose 生成。运行时导入始终使用 `x-next`,声明路径仅作定位。插槽类型未细化时,具体槽名与作用域见本地用法示例。
7
+
8
+ ## ConfigProvider API
9
+
10
+ 公开声明:`dist/components/config-provider/index.d.ts`。 类型中的 undefined 表示可省略;原始 prop 默认值不等于继承配置或服务默认值。
11
+
12
+ ### Props
13
+
14
+ | 名称 | 用途 | 公开类型 | 必填 | 声明默认值 |
15
+ | --- | --- | --- | --- | --- |
16
+ | size | 全局组件尺寸 | undefined &#124; "mini" &#124; "small" &#124; "medium" &#124; "large" | 否 | undefined |
17
+ | locale | 语言包,省略或清空时继承父级,再回退全局 | undefined &#124; Locale | 否 | undefined |
18
+ | themeColor | 主题色种子,派生整条色阶并写入边界元素 | undefined &#124; string | 否 | undefined |
19
+ | dark | 是否使用暗色色阶 | undefined &#124; false &#124; true | 否 | false |
20
+ | tag | 包裹元素标签;传 null 不产生额外 DOM | undefined &#124; null &#124; string | 否 | "div" |
21
+
22
+ ### Events
23
+
24
+ 未声明组件 emits;原生事件与包装透传按本页用法核实。
25
+
26
+ ### Slots
27
+
28
+ | 名称 | 用途 | 公开类型 |
29
+ | --- | --- | --- |
30
+ | default | 配置生效的内容 | 文档列出的实际插槽;公开类型未细化,作用域见场景用法 |
31
+ | empty | 子树内组件的空态内容 | 文档列出的实际插槽;公开类型未细化,作用域见场景用法 |
32
+
33
+ ### 实例方法
34
+
35
+ 没有检索到显式 expose 或 Options API methods 的公开方法;不把 setup 内部函数当成稳定实例 API。
36
+
37
+
38
+ 返回 [ConfigProvider 用法](./config-provider.md)。
@@ -1,12 +1,14 @@
1
1
  <!-- Generated by pnpm generate:ai-usage. Edit script/ai-usage/content.md and script/ai-usage/. -->
2
2
  # ConfigProvider AI 使用
3
3
 
4
- 适用版本:x-next@1.12.0;来源指纹:`9f9adf42b42dc1e551f500aabdcb7fb07b69a93ea44ff3dc1d16dab1a4c85843`。
4
+ 适用版本:x-next@1.14.0;来源指纹:`014984639d816a2c7e25eb22690c586b0b2e8efba6846bec8a4e424db41a09e9`。
5
5
 
6
- 先读 [通用接入](../core.md)。公开导出:`ConfigProvider`;模型:无;已核对事件:未在精选映射登记事件;其他 API 见下方用法。
6
+ 先读 [通用接入](../core.md)。公开导出:`ConfigProvider`;主要模型:无。完整 Props、Events、Slots、实例方法与服务签名见 [本地 API](./config-provider-api.md),包含本组件族全部子组件和别名。
7
7
 
8
8
  按需样式:`x-next/style/base.css`(包含 base.css)。代码块未单独引样式时在应用入口加载全量样式,或按实际所有组件加载 JS 入口;不要仅因复制一个组件页就漏掉其中的 Button 等组合依赖。
9
9
 
10
+ ## 已核验行为与示例
11
+
10
12
  局部品牌色用 `themeColor`,它一次生成色阶并重绑定组件别名;不必逐个覆盖 Button、Switch 的颜色。默认 body 浮层也会同步当前配置;更换 popupContainer 只用于业务定位和裁剪需要。Select 默认跟随祖先滚动;要滚动关闭可传 `triggerProps.scrollToClose`。
11
13
 
12
14
  ```vue
@@ -55,4 +57,249 @@ const options = [
55
57
 
56
58
  已有主题容器时,也可调用公开 `applyThemeColor(seed, { target, dark })`;切换暗色后需重新调用。只改后代的几条 semantic CSS 变量不会重算祖先 alias;`:tag="null"` 的 ConfigProvider 不创建本级主题边界,仍继承父级配置。
57
59
 
58
- 返回 [AI 索引](../index.md)。精选示例不是完整 API 表,新能力先查同版本公开类型与组件文档。
60
+ ## 场景用法
61
+
62
+ 以下示例从本地 `src/docs/components/config-provider.md` 显式导入到独立 AI 源,补齐局部注册、状态和样式后进行严格模板检查。上方已核验行为优先;原始 prop 默认值、包装透传和示例业务适配分别查 [完整 API](./config-provider-api.md) 与场景说明。类型通过不代表所有散文和交互已验证。
63
+
64
+ ### 用途与选型
65
+
66
+ 为子树内的组件提供统一的全局配置:尺寸、主题色与语言。
67
+
68
+
69
+ ### 何时使用
70
+
71
+ - 需要统一调整一批组件的默认尺寸,而不想逐个传 `size`
72
+ - 需要运行时切换品牌主题色
73
+ - 需要切换组件内置文案的语言
74
+ - 需要统一替换空态展示内容
75
+
76
+
77
+ ### 基础用法
78
+
79
+ 包裹需要生效的区域即可,默认渲染一个 `div` 作为配置边界。
80
+
81
+ ```vue
82
+ <script setup lang="ts">
83
+ import 'x-next/style.css';
84
+ import { ConfigProvider, Input, Button } from 'x-next';
85
+ import { ref } from 'vue';
86
+ const size = ref<'mini' | 'small' | 'medium' | 'large'>('small');
87
+ </script>
88
+ <template>
89
+ <ConfigProvider size="small">
90
+ <Input placeholder="输入框" />
91
+ <Button type="primary">按钮</Button>
92
+ </ConfigProvider>
93
+ </template>
94
+ ```
95
+
96
+ ### 尺寸继承
97
+
98
+ `size` 的优先级为:组件自身 props > 父级(如 FormItem)> ConfigProvider > 组件默认值。
99
+
100
+ 切换下面的尺寸,观察内部组件统一变化:
101
+
102
+ Table 的默认尺寸为 `large`,未配置全局尺寸时保持该默认值:
103
+
104
+ ```vue
105
+ <script setup lang="ts">
106
+ import 'x-next/style.css';
107
+ import { ConfigProvider, Button } from 'x-next';
108
+ import { ref } from 'vue';
109
+ const size = ref<'mini' | 'small' | 'medium' | 'large'>('small');
110
+ </script>
111
+ <template>
112
+ <!-- 内部按钮与输入框统一使用 small -->
113
+ <ConfigProvider size="small">
114
+ <Button>继承全局</Button>
115
+ <!-- 显式指定优先于全局配置 -->
116
+ <Button size="large">显式 large</Button>
117
+ </ConfigProvider>
118
+ </template>
119
+ ```
120
+
121
+ ```vue
122
+ <script setup lang="ts">
123
+ import 'x-next/style.css';
124
+ import { ConfigProvider, Table } from 'x-next';
125
+ import { ref } from 'vue';
126
+ const size = ref<'mini' | 'small' | 'medium' | 'large'>('small');
127
+
128
+ const columns = [{ title: '名称', dataIndex: 'name' }];
129
+ const data = [{ key: '1', name: '继承 small' }];
130
+ </script>
131
+ <template>
132
+ <ConfigProvider size="small">
133
+ <Table :columns="columns" :data="data" :pagination="false" />
134
+ </ConfigProvider>
135
+ </template>
136
+ ```
137
+
138
+ ### 主题色
139
+
140
+ 传入 `themeColor` 会派生整条色阶(基色 + 9 档)并写入配置边界元素,因此可以只对局部区域换色,不影响页面其余部分。
141
+
142
+ 需要暗色色阶时传 `dark`:
143
+
144
+ 默认通过 Trigger 渲染的浮层及组件形态的 Dialog / Drawer 会把当前局部主题带到 Teleport 根节点;打开中切换主题会同步更新。嵌套配置继承父级种子色和暗色边界。`dark=false` 不会取消父级暗色边界。
145
+
146
+ ### 显式 token 覆盖
147
+
148
+ 本级 `style` 中显式设置的 CSS token 优先于 `themeColor` 派生值。没有自行指定种子色或改变有效暗色模式的子配置,会继承这些覆盖;浮层保持相同配置。切换覆盖后,聚焦输入框检查边框;系统高对比度下焦点仍使用系统色。
149
+
150
+ ```vue
151
+ <script setup lang="ts">
152
+ import 'x-next/style.css';
153
+ import { ConfigProvider, Button, Switch } from 'x-next';
154
+
155
+ </script>
156
+ <template>
157
+ <!-- 只影响这个边界内的组件 -->
158
+ <ConfigProvider theme-color="#0f766e">
159
+ <Button type="primary">主色按钮</Button>
160
+ <Switch :model-value="true" />
161
+ </ConfigProvider>
162
+ </template>
163
+ ```
164
+
165
+ ```vue
166
+ <script setup lang="ts">
167
+ import 'x-next/style.css';
168
+ import { Checkbox, ConfigProvider, Select, Popover, Button } from 'x-next';
169
+ import { ref } from 'vue';
170
+ const dark = ref(true);
171
+ const color = ref('#0f766e');
172
+ const options = [{ label: '主题内的选项', value: 'a' }];
173
+ </script>
174
+ <template>
175
+ <Checkbox v-model="dark">局部暗色</Checkbox>
176
+ <ConfigProvider :theme-color="color" :dark="dark">
177
+ <Select :options="options" placeholder="打开查看浮层主题" />
178
+ <Popover title="主题同步" content="body 浮层也继承当前配置">
179
+ <Button>打开卡片</Button>
180
+ </Popover>
181
+ </ConfigProvider>
182
+ </template>
183
+ ```
184
+
185
+ ```vue
186
+ <script setup lang="ts">
187
+ import 'x-next/style.css';
188
+ import { Checkbox, ConfigProvider, Input, Select } from 'x-next';
189
+ import { ref } from 'vue';
190
+ const override = ref(false);
191
+ const color = ref('#0f766e');
192
+ const options = [{ label: '主题内的选项', value: 'a' }];
193
+ </script>
194
+ <template>
195
+ <Checkbox v-model="override">使用危险色焦点边框</Checkbox>
196
+ <ConfigProvider :theme-color="color"
197
+ :style="override ? { '--x-color-border-focus': 'var(--x-color-danger-solid)' } : {}">
198
+ <ConfigProvider>
199
+ <Input placeholder="聚焦检查显式 token" />
200
+ <Select :options="options" placeholder="查看浮层" />
201
+ </ConfigProvider>
202
+ </ConfigProvider>
203
+ </template>
204
+ ```
205
+
206
+ ### 语言
207
+
208
+ 传入 `locale` 切换组件内置文案。语言包从 `x-next` 导入:
209
+
210
+ ### 动态设置与嵌套回退
211
+
212
+ 初始省略 `locale` 也可以随后设置;清空子级配置后回退父级,顶层未配置时使用全局语言。
213
+
214
+ ```vue
215
+ <script setup lang="ts">
216
+ import 'x-next/style.css';
217
+ import { ConfigProvider, Empty, Pagination } from 'x-next';
218
+ const total = 128;
219
+
220
+ import { ref } from 'vue';
221
+ import { zhCN, enUS } from 'x-next';
222
+
223
+ const locale = ref(zhCN);
224
+ // 切换为英文
225
+ // locale.value = enUS;
226
+ </script>
227
+ <template>
228
+ <ConfigProvider :locale="locale">
229
+ <Empty />
230
+ <Pagination :total="128" />
231
+ </ConfigProvider>
232
+ </template>
233
+ ```
234
+
235
+ ```vue
236
+ <script setup lang="ts">
237
+ import 'x-next/style.css';
238
+ import { Button, ConfigProvider, Empty } from 'x-next';
239
+ import { ref } from 'vue';
240
+ import { enUS, zhCN } from 'x-next';
241
+ const locale = ref<typeof zhCN | undefined>();
242
+ </script>
243
+ <template>
244
+ <Button @click="locale = zhCN">子级中文</Button>
245
+ <Button @click="locale = undefined">继承父级英文</Button>
246
+ <ConfigProvider :locale="enUS">
247
+ <ConfigProvider :locale="locale">
248
+ <Empty />
249
+ </ConfigProvider>
250
+ </ConfigProvider>
251
+ </template>
252
+ ```
253
+
254
+ ### 空态插槽
255
+
256
+ `empty` 插槽会接管子树内组件的空态渲染,回调参数 `component` 标明请求来源,便于按组件区分样式。
257
+
258
+ ```vue
259
+ <script setup lang="ts">
260
+ import 'x-next/style.css';
261
+ import { ConfigProvider, Select, Table } from 'x-next';
262
+ const columns = [{ title: '名称', dataIndex: 'name' }];
263
+ </script>
264
+ <template>
265
+ <ConfigProvider>
266
+ <!-- component 标明来源:empty / select / table / dropdown -->
267
+ <template #empty="{ component }">
268
+ <div>暂无内容(来源:{{ component }})</div>
269
+ </template>
270
+ <Select :options="[]" style="width: 200px" />
271
+ <Table :columns="columns" :data="[]" :pagination="false" />
272
+ </ConfigProvider>
273
+ </template>
274
+ ```
275
+
276
+ ### 不产生额外 DOM
277
+
278
+ 默认会渲染一个包裹元素作为配置边界。若不想引入额外节点(例如在表格单元格内),可传 `:tag="null"`:
279
+
280
+ 注意:`:tag="null"` 时本级 `themeColor` / `dark` 不创建主题边界;仍继承父级主题、尺寸、语言和空态插槽。
281
+
282
+ ```vue
283
+ <script setup lang="ts">
284
+ import 'x-next/style.css';
285
+ import { ConfigProvider, Button } from 'x-next';
286
+ import { ref } from 'vue';
287
+ const size = ref<'mini' | 'small' | 'medium' | 'large'>('small');
288
+ </script>
289
+ <template>
290
+ <!-- 不产生包裹元素,仅向子树注入配置 -->
291
+ <ConfigProvider :tag="null" size="small">
292
+ <Button>按钮</Button>
293
+ </ConfigProvider>
294
+ </template>
295
+ ```
296
+
297
+ ### 已知限制
298
+
299
+ - `themeColor` 只派生 primary 色阶。`success` / `warning` / `danger` / `strong` 等状态色不受影响,需要改种子色请用构建期方式(见「样式与主题」)。
300
+ - 不支持 `prefixCls` 自定义类名前缀,组件类名固定使用 `x` 前缀。
301
+ - 语言包当前覆盖分页、表格、弹窗、空态、网络状态、图片预览、表单校验提示、日期 / 时间选择器,以及 Tabs、Dropdown、Menu、Message、Notification、Spin、Tag、InputPassword 等组件内置文案。
302
+
303
+
304
+
305
+ 返回 [AI 索引](../index.md)。先查本页与 [本地 API](./config-provider-api.md);需要更深类型时查 [公开组件导航](../catalog.md),不默认上网查找本包用法。