@robot-admin/naive-ui-components 0.14.3 → 0.15.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 (257) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +130 -741
  3. package/README_EN.md +137 -678
  4. package/dist/C_ActionBar.css +57 -58
  5. package/dist/C_ActionBar2.cjs +1 -1
  6. package/dist/C_ActionBar2.js +1 -1
  7. package/dist/C_AntV.css +232 -238
  8. package/dist/C_AntV2.cjs +2 -2
  9. package/dist/C_AntV2.js +2 -2
  10. package/dist/C_AudioPlayer.css +9 -9
  11. package/dist/C_AvatarGroup.css +5 -6
  12. package/dist/C_Barcode.css +1 -1
  13. package/dist/C_Breadcrumb.css +15 -18
  14. package/dist/C_Breadcrumb2.cjs +1 -1
  15. package/dist/C_Breadcrumb2.js +1 -1
  16. package/dist/C_Captcha.css +46 -49
  17. package/dist/C_Captcha2.cjs +1 -1
  18. package/dist/C_Captcha2.js +1 -1
  19. package/dist/C_Cascade.css +5 -6
  20. package/dist/C_Chat.css +8 -8
  21. package/dist/C_City.css +2 -2
  22. package/dist/C_Code.css +9 -9
  23. package/dist/C_CollapsePanel.css +9 -9
  24. package/dist/C_ContextMenu.css +31 -31
  25. package/dist/C_Cron.css +271 -274
  26. package/dist/C_Date.css +1 -1
  27. package/dist/C_Draggable.css +10 -11
  28. package/dist/C_Editor.css +2 -2
  29. package/dist/C_FilePreview.css +423 -423
  30. package/dist/C_Form.base.css +608 -602
  31. package/dist/C_Form.cjs +1 -1
  32. package/dist/C_Form.css +610 -604
  33. package/dist/C_Form.d.cts +2 -2
  34. package/dist/C_Form.d.ts +2 -2
  35. package/dist/C_Form.js +1 -1
  36. package/dist/C_FormModal.cjs +1 -1
  37. package/dist/C_FormModal.css +12 -17
  38. package/dist/C_FormModal.js +1 -1
  39. package/dist/C_FormModal2.cjs +1 -1
  40. package/dist/C_FormModal2.js +1 -1
  41. package/dist/C_FormSearch.css +53 -55
  42. package/dist/C_FormSearch2.cjs +1 -1
  43. package/dist/C_FormSearch2.js +1 -1
  44. package/dist/C_FormulaEditor.css +204 -205
  45. package/dist/C_FullCalendar.css +13 -15
  46. package/dist/C_FullCalendar2.cjs +1 -1
  47. package/dist/C_FullCalendar2.js +1 -1
  48. package/dist/C_GlobalSearch.css +11 -12
  49. package/dist/C_Guide.css +10 -10
  50. package/dist/C_Icon.css +7 -8
  51. package/dist/C_ImageCropper.css +69 -69
  52. package/dist/C_Language.css +8 -8
  53. package/dist/C_Loading.css +22 -25
  54. package/dist/C_Loading2.cjs +1 -1
  55. package/dist/C_Loading2.js +1 -1
  56. package/dist/C_Login.css +130 -135
  57. package/dist/C_Login2.cjs +1 -1
  58. package/dist/C_Login2.js +1 -1
  59. package/dist/C_Map.css +22 -23
  60. package/dist/C_Markdown.css +6 -7
  61. package/dist/C_Menu.css +2 -5
  62. package/dist/C_Menu2.cjs +1 -1
  63. package/dist/C_Menu2.js +1 -1
  64. package/dist/C_NotificationCenter.css +252 -253
  65. package/dist/C_OrgChart.css +8 -8
  66. package/dist/C_PageLoading.css +34 -39
  67. package/dist/C_QRCode.css +5 -6
  68. package/dist/C_Signature.css +5 -6
  69. package/dist/C_Skeleton.css +2 -2
  70. package/dist/C_SplitPane.css +2 -2
  71. package/dist/C_Steps.css +5 -6
  72. package/dist/C_Table.base.css +1090 -879
  73. package/dist/C_Table.cjs +1 -1
  74. package/dist/C_Table.css +1096 -885
  75. package/dist/C_Table.d.cts +1 -1
  76. package/dist/C_Table.d.ts +1 -1
  77. package/dist/C_Table.js +1 -1
  78. package/dist/C_Tabs.css +5 -6
  79. package/dist/C_TagsView.css +60 -63
  80. package/dist/C_TagsView2.cjs +1 -1
  81. package/dist/C_TagsView2.js +1 -1
  82. package/dist/C_Theme.css +7 -8
  83. package/dist/C_Time.css +1 -1
  84. package/dist/C_Timeline.css +8 -8
  85. package/dist/C_Transfer.css +10 -11
  86. package/dist/C_Tree.css +16 -17
  87. package/dist/C_Upload.css +156 -157
  88. package/dist/C_VideoPlayer.css +267 -267
  89. package/dist/C_VtableGantt.css +2 -2
  90. package/dist/C_WaterFall.css +2 -2
  91. package/dist/C_WorkFlow.css +466 -470
  92. package/dist/C_WorkFlow2.cjs +1 -1
  93. package/dist/C_WorkFlow2.js +1 -1
  94. package/dist/Card.cjs +1 -0
  95. package/dist/Card.js +1 -0
  96. package/dist/Custom.cjs +1 -0
  97. package/dist/Custom.js +1 -0
  98. package/dist/Dynamic.cjs +1 -0
  99. package/dist/Dynamic.js +1 -0
  100. package/dist/Steps.cjs +1 -0
  101. package/dist/Steps.js +1 -0
  102. package/dist/Tabs.cjs +1 -0
  103. package/dist/Tabs.js +1 -0
  104. package/dist/cascader.cjs +1 -0
  105. package/dist/cascader.js +1 -0
  106. package/dist/color-picker.cjs +1 -0
  107. package/dist/color-picker.js +1 -0
  108. package/dist/constants.d.cts +1 -1
  109. package/dist/constants.d.ts +1 -1
  110. package/dist/constants3.d.cts +2 -2
  111. package/dist/constants3.d.ts +2 -2
  112. package/dist/constants4.d.cts +4 -4
  113. package/dist/constants4.d.ts +4 -4
  114. package/dist/constants5.d.cts +2 -2
  115. package/dist/constants5.d.ts +2 -2
  116. package/dist/context.cjs +1 -0
  117. package/dist/context.js +1 -0
  118. package/dist/contracts.d.cts +24 -0
  119. package/dist/contracts.d.ts +24 -0
  120. package/dist/createPageLoading.cjs +1 -1
  121. package/dist/createPageLoading.js +1 -1
  122. package/dist/data.cjs +1 -1
  123. package/dist/data.d.cts +4 -4
  124. package/dist/data.d.ts +4 -4
  125. package/dist/data.js +1 -1
  126. package/dist/date-picker.cjs +1 -0
  127. package/dist/date-picker.js +1 -0
  128. package/dist/feedback.cjs +1 -0
  129. package/dist/feedback.js +1 -0
  130. package/dist/helpers.cjs +1 -1
  131. package/dist/helpers.js +1 -1
  132. package/dist/index.cjs +1 -1
  133. package/dist/index.d.cts +6 -4
  134. package/dist/index.d.ts +6 -4
  135. package/dist/index.js +1 -1
  136. package/dist/index.vue.d.cts +4 -4
  137. package/dist/index.vue.d.ts +4 -4
  138. package/dist/index10.vue.d.cts +3 -3
  139. package/dist/index10.vue.d.ts +3 -3
  140. package/dist/index11.vue.d.cts +3 -3
  141. package/dist/index11.vue.d.ts +2 -2
  142. package/dist/index12.vue.d.cts +2 -2
  143. package/dist/index12.vue.d.ts +1 -1
  144. package/dist/index13.vue.d.cts +1 -1
  145. package/dist/index13.vue.d.ts +2 -2
  146. package/dist/index14.vue.d.cts +2 -2
  147. package/dist/index14.vue.d.ts +7 -7
  148. package/dist/index15.vue.d.cts +7 -7
  149. package/dist/index16.vue.d.ts +1 -1
  150. package/dist/index17.vue.d.cts +1 -1
  151. package/dist/index17.vue.d.ts +2 -2
  152. package/dist/index18.vue.d.cts +2 -2
  153. package/dist/index18.vue.d.ts +2 -2
  154. package/dist/index19.vue.d.cts +2 -2
  155. package/dist/index19.vue.d.ts +1 -8
  156. package/dist/index2.vue.d.cts +1 -1
  157. package/dist/index2.vue.d.ts +1 -1
  158. package/dist/index20.vue.d.cts +1 -1
  159. package/dist/index20.vue.d.ts +1 -1
  160. package/dist/index21.vue.d.cts +2 -2
  161. package/dist/index21.vue.d.ts +2 -2
  162. package/dist/index22.vue.d.cts +3 -3
  163. package/dist/index22.vue.d.ts +3 -3
  164. package/dist/index23.vue.d.cts +1 -1
  165. package/dist/index23.vue.d.ts +1 -1
  166. package/dist/index25.vue.d.cts +4 -4
  167. package/dist/index25.vue.d.ts +4 -4
  168. package/dist/index26.vue.d.cts +1 -1
  169. package/dist/index26.vue.d.ts +1 -1
  170. package/dist/index27.vue.d.cts +3 -3
  171. package/dist/index27.vue.d.ts +3 -3
  172. package/dist/index3.vue.d.cts +4 -4
  173. package/dist/index3.vue.d.ts +4 -4
  174. package/dist/index4.vue.d.cts +1 -8
  175. package/dist/index6.vue.d.ts +2 -2
  176. package/dist/index7.vue.d.cts +2 -2
  177. package/dist/index8.vue.d.ts +3 -3
  178. package/dist/index9.vue.d.cts +3 -3
  179. package/dist/index9.vue.d.ts +3 -3
  180. package/dist/mapUtils.d.cts +2 -2
  181. package/dist/mapUtils.d.ts +2 -2
  182. package/dist/presets.d.cts +8 -2
  183. package/dist/presets.d.ts +8 -2
  184. package/dist/rate.cjs +1 -0
  185. package/dist/rate.js +1 -0
  186. package/dist/slider.cjs +1 -0
  187. package/dist/slider.js +1 -0
  188. package/dist/style.css +10671 -10704
  189. package/dist/time-picker.cjs +1 -0
  190. package/dist/time-picker.js +1 -0
  191. package/dist/upload.cjs +1 -0
  192. package/dist/upload.js +1 -0
  193. package/dist/useActionTask.cjs +1 -0
  194. package/dist/useActionTask.js +1 -0
  195. package/dist/useCalendarEvents.d.cts +1 -1
  196. package/dist/useCalendarEvents.d.ts +1 -1
  197. package/dist/useCollapsePanel.d.cts +6 -6
  198. package/dist/useCollapsePanel.d.ts +6 -6
  199. package/dist/useComponentLocale.cjs +1 -0
  200. package/dist/useComponentLocale.js +1 -0
  201. package/dist/useCropperCore.d.cts +4 -4
  202. package/dist/useCropperCore.d.ts +4 -4
  203. package/dist/useDraggableLayout.d.cts +8 -8
  204. package/dist/useDraggableLayout.d.ts +8 -8
  205. package/dist/useDynamicFormState.cjs +1 -0
  206. package/dist/useDynamicFormState.d.cts +62 -38
  207. package/dist/useDynamicFormState.d.ts +62 -38
  208. package/dist/useDynamicFormState.js +1 -0
  209. package/dist/useEdgeInteraction.d.cts +2 -2
  210. package/dist/useEdgeInteraction.d.ts +2 -2
  211. package/dist/useFullscreen.d.cts +2 -2
  212. package/dist/useFullscreen.d.ts +2 -2
  213. package/dist/useInfiniteScroll.d.cts +1 -1
  214. package/dist/useInfiniteScroll.d.ts +1 -1
  215. package/dist/useQRCode.d.cts +3 -3
  216. package/dist/useQRCode.d.ts +3 -3
  217. package/dist/useSearchState.d.cts +16 -726
  218. package/dist/useSearchState.d.ts +16 -835
  219. package/dist/useSignatureHistory.d.cts +2 -2
  220. package/dist/useSignatureHistory.d.ts +2 -2
  221. package/dist/useSplitResize.d.cts +9 -9
  222. package/dist/useSplitResize.d.ts +9 -9
  223. package/dist/useTableQuery.cjs +3 -3
  224. package/dist/useTableQuery.d.cts +66 -33
  225. package/dist/useTableQuery.d.ts +66 -33
  226. package/dist/useTableQuery.js +3 -3
  227. package/dist/useTimeSelection.d.cts +2 -2
  228. package/dist/useTimeSelection.d.ts +2 -2
  229. package/dist/useTreeOperations.d.cts +4 -4
  230. package/dist/useTreeOperations.d.ts +4 -4
  231. package/dist/useWorkflowValidation.d.cts +3 -3
  232. package/dist/useWorkflowValidation.d.ts +3 -3
  233. package/dist/verification.d.cts +2 -2
  234. package/dist/verification.d.ts +2 -2
  235. package/docs/architecture.en.md +83 -0
  236. package/docs/architecture.md +83 -0
  237. package/docs/assets/README.md +47 -0
  238. package/docs/assets/naive-ui-components-banner.png +0 -0
  239. package/docs/assets/naive-ui-components-banner.svg +69 -0
  240. package/docs/assets/naive-ui-components-logo.png +0 -0
  241. package/docs/assets/naive-ui-components-logo.svg +22 -0
  242. package/docs/components.en.md +118 -0
  243. package/docs/components.md +118 -0
  244. package/docs/engineering.en.md +132 -0
  245. package/docs/engineering.md +133 -0
  246. package/docs/guides/usage.en.md +638 -0
  247. package/docs/guides/usage.md +699 -0
  248. package/docs/performance-0.15.0.md +20 -0
  249. package/docs/security-scan-2026-10-06.md +11 -0
  250. package/docs/security-scan-2026-10-18.md +16 -0
  251. package/package.json +29 -11
  252. package/dist/C_Form2.cjs +0 -1
  253. package/dist/C_Form2.js +0 -1
  254. package/dist/config.cjs +0 -1
  255. package/dist/config.d.cts +0 -33
  256. package/dist/config.d.ts +0 -33
  257. package/dist/config.js +0 -1
@@ -1,11 +1,25 @@
1
1
  import { f as ActionItem, s as ActionBarConfig } from "./presets.cjs";
2
- import { i as ComponentLocale, r as ComponentFeedback } from "./config.cjs";
2
+ import { n as ComponentLocale, t as ComponentFeedback } from "./contracts.cjs";
3
3
  import * as vue from "vue";
4
4
  import { App, ComputedRef, InjectionKey, MaybeRef, MaybeRefOrGetter, Ref, VNodeChild } from "vue";
5
5
  import { DataTableBaseColumn, DataTableColumn, DataTableRowKey, FormItemRule, PaginationProps } from "naive-ui";
6
6
  import * as _vue_shared0 from "@vue/shared";
7
7
  import { HLJSApi } from "highlight.js";
8
8
 
9
+ //#region src/context.d.ts
10
+ declare const COMPONENT_FEEDBACK_KEY: InjectionKey<ComponentFeedback>;
11
+ declare const COMPONENT_LOCALE_KEY: InjectionKey<ComponentLocale>;
12
+ //#endregion
13
+ //#region src/composables/useComponentLocale.d.ts
14
+ /** Bind the UI-independent translator to this Vue application and local configuration. */
15
+ declare function useComponentLocale(local?: MaybeRefOrGetter<ComponentLocale | undefined>): {
16
+ t: (key: string, params?: Record<string, string | number>) => string;
17
+ };
18
+ //#endregion
19
+ //#region src/adapters/naive/feedback.d.ts
20
+ /** Reuse Naive providers when present and safely degrade to injected/no-op feedback. */
21
+ declare function useComponentFeedback(local?: MaybeRefOrGetter<ComponentFeedback | undefined>): Required<ComponentFeedback>;
22
+ //#endregion
9
23
  //#region src/components/C_Table/composables/usePrintWatermark.d.ts
10
24
  interface WatermarkConfig {
11
25
  text: string;
@@ -234,44 +248,41 @@ declare function useRowDrag<T extends object = DataRecord>(options: UseRowDragOp
234
248
  //#region src/components/C_Table/composables/useCrossPageSelection.d.ts
235
249
  interface CrossPageSelectionConfig {
236
250
  enabled?: boolean;
237
- /** 最大选择数 */
251
+ /** Maximum selected rows, including previously visited remote pages. */
238
252
  maxSelection?: number;
239
253
  }
240
254
  interface UseCrossPageSelectionOptions<T extends object = DataRecord> {
241
- /** 全量数据(非分页后的) */
255
+ /** All local rows, or the loaded page when remote is enabled. */
242
256
  allData: Ref<T[]> | ComputedRef<T[]>;
243
- /** 行键函数 */
244
257
  rowKey: (row: T) => DataTableRowKey;
245
- /** 配置 */
246
258
  config: MaybeRefOrGetter<CrossPageSelectionConfig | undefined>;
259
+ remote?: MaybeRefOrGetter<boolean>;
260
+ childrenKey?: MaybeRefOrGetter<string | undefined>;
261
+ rowCheckable?: (row: T) => boolean;
262
+ onSelectionChange?: (keys: DataTableRowKey[], rows: T[]) => void;
247
263
  }
248
264
  interface UseCrossPageSelectionReturn<T extends object = DataRecord> {
249
- /** 所有选中的 key(跨页) */
250
265
  selectedKeys: Ref<Set<DataTableRowKey>>;
251
- /** 选中行数量 */
252
266
  selectedCount: ComputedRef<number>;
253
- /** 当前页数据的 checkedKeys(给 NDataTable 绑定) */
254
267
  getPageCheckedKeys: (pageData: T[]) => DataTableRowKey[];
255
- /** NDataTable @update:checked-row-keys 处理器 */
256
268
  handlePageSelectionChange: (keys: DataTableRowKey[], pageData: T[]) => void;
257
- /** 全选所有页 */
269
+ /** In remote mode, adds the currently loaded page; never claims to select unseen server rows. */
258
270
  selectAll: () => void;
259
- /** 选择指定 key */
260
271
  select: (key: DataTableRowKey) => boolean;
261
- /** 取消选择指定 key */
262
272
  unselect: (key: DataTableRowKey) => void;
263
- /** 清除所有页选中 */
264
273
  clearAll: () => void;
265
- /** 获取所有选中行数据 */
266
274
  getSelectedRows: () => T[];
267
- /** 判断 key 是否选中 */
268
275
  isSelected: (key: DataTableRowKey) => boolean;
269
276
  }
270
- /** 跨页多选组合式函数 */
277
+ /** Preserve selected identities and loaded row snapshots across local or remote pages. */
271
278
  declare function useCrossPageSelection<T extends object = DataRecord>(options: UseCrossPageSelectionOptions<T>): UseCrossPageSelectionReturn<T>;
272
279
  //#endregion
273
280
  //#region src/components/C_Table/composables/useTableExport.d.ts
274
281
  interface ExportConfig {
282
+ /** Data scope used by C_Table; source preserves the legacy loaded-source behavior. */
283
+ scope?: 'source' | 'page' | 'selected';
284
+ /** Explicit server-side/full-data export request; invoked only when exporting. */
285
+ requestData?: () => DataRecord[] | Promise<DataRecord[]>;
275
286
  /** 导出文件名(不含扩展名) */
276
287
  filename?: string;
277
288
  /** 导出格式 */
@@ -784,7 +795,9 @@ interface BaseTableColumn<T extends object = DataRecord> extends Omit<DataTableB
784
795
  required?: boolean;
785
796
  editType?: EditType;
786
797
  editProps?: EditProps;
787
- editRender?: (value: unknown, rowData: T, rowIndex: number) => VNodeChild;
798
+ editRender?: (value: unknown, rowData: T, rowIndex: number, context: {
799
+ onUpdate: (value: unknown) => void;
800
+ }) => VNodeChild;
788
801
  render?: (rowData: T, rowIndex: number) => VNodeChild;
789
802
  /** 声明式格式化器(优先级低于 render) */
790
803
  formatter?: ColumnFormatter;
@@ -911,6 +924,8 @@ interface TableExpandMethods {
911
924
  expandAll: () => Promise<void>;
912
925
  collapseAll: () => void;
913
926
  isExpanded: (rowKey: DataTableRowKey) => boolean;
927
+ retryExpand: (rowKey: DataTableRowKey) => Promise<void>;
928
+ invalidateExpand: (rowKey?: DataTableRowKey) => void;
914
929
  }
915
930
  interface TableSelectionMethods<T extends object = DataRecord, C = DataRecord> {
916
931
  selectRow: (rowKey: DataTableRowKey) => boolean | void;
@@ -942,11 +957,16 @@ interface TablePaginationMethods {
942
957
  resetToFirstPage: () => void;
943
958
  getTotalPages: () => number;
944
959
  }
945
- interface TableInstance<T extends object = DataRecord, C = DataRecord> extends TableEditMethods<T>, TableExpandMethods, TableSelectionMethods<T, C>, TableDynamicRowsMethods<T>, TablePaginationMethods {}
960
+ interface TableInstance<T extends object = DataRecord, C = DataRecord> extends TableEditMethods<T>, TableExpandMethods, TableSelectionMethods<T, C>, TableDynamicRowsMethods<T>, TablePaginationMethods {
961
+ exportData: () => Promise<void>;
962
+ }
946
963
  interface UseTableExpandOptions<T extends object = DataRecord, C = DataRecord> extends ExpandConfig<T, C>, SelectionConfig<T, C> {
947
964
  data: Ref<T[]> | ComputedRef<T[]>;
948
965
  rowKey: (row: T) => DataTableRowKey;
949
966
  childRowKey?: (child: C) => DataTableRowKey;
967
+ /** Native tree children field; omitted for flat/detail-expansion tables. */
968
+ childrenKey?: string;
969
+ locale?: ComponentLocale;
950
970
  /** 展开数据等待时的加载内容,C_Table 内置统一 SVG;独立引擎可按需提供。 */
951
971
  renderLoading?: () => VNodeChild;
952
972
  defaultExpandedKeys?: DataTableRowKey[];
@@ -960,6 +980,9 @@ interface UseTableExpandReturn<T extends object = DataRecord, C = DataRecord> {
960
980
  childSelections: Ref<Map<DataTableRowKey, DataTableRowKey[]>>;
961
981
  expandDataMap: Ref<Map<DataTableRowKey, C[]>>;
962
982
  loadingMap: Ref<Map<DataTableRowKey, boolean>>;
983
+ errorMap: Ref<Map<DataTableRowKey, unknown>>;
984
+ retryExpand: (key: DataTableRowKey) => Promise<void>;
985
+ invalidateExpand: (key?: DataTableRowKey) => void;
963
986
  selectedRowsCount: ComputedRef<number>;
964
987
  totalChildSelections: ComputedRef<number>;
965
988
  expandAll: () => Promise<void>;
@@ -1005,7 +1028,9 @@ declare const __VLS_export: <T extends object = DataRecord>(__VLS_props: NonNull
1005
1028
  data?: MaybeRefLike<T[]>; /** 加载状态 */
1006
1029
  loading?: MaybeRefLike<boolean>; /** 行唯一键 */
1007
1030
  rowKey?: string | ((row: T) => DataTableRowKey); /** 统一功能配置(edit / selection / expand / pagination / dynamicRows / toolbar / display) */
1008
- config?: TableConfig<T>; /** CRUD 绑定 — 传入 useTableCrud() 的返回值,自动接管 data/columns/loading/actions/pagination/events */
1031
+ config?: TableConfig<T>; /** Native pagination compatibility path; takes ownership over config.pagination. */
1032
+ pagination?: PaginationProps | false; /** Native remote mode, used with the native pagination compatibility path. */
1033
+ remote?: boolean; /** CRUD 绑定 — 传入 useTableCrud() 的返回值,自动接管 data/columns/loading/actions/pagination/events */
1009
1034
  crud?: CrudBinding<T>;
1010
1035
  } & {
1011
1036
  [x: `on${Capitalize<string>}`]: ((...args: any) => any) | undefined;
@@ -1019,6 +1044,8 @@ declare const __VLS_export: <T extends object = DataRecord>(__VLS_props: NonNull
1019
1044
  expandRow: (rowKey: DataTableRowKey) => Promise<void>;
1020
1045
  collapseRow: (rowKey: DataTableRowKey) => void;
1021
1046
  toggleExpand: (rowKey: DataTableRowKey) => Promise<void>;
1047
+ retryExpand: (rowKey: DataTableRowKey) => Promise<void>;
1048
+ invalidateExpand: (rowKey?: DataTableRowKey) => void;
1022
1049
  expandAll: () => Promise<void>;
1023
1050
  collapseAll: () => void;
1024
1051
  selectRow: (rowKey: DataTableRowKey) => boolean;
@@ -1117,7 +1144,7 @@ declare const __VLS_export: <T extends object = DataRecord>(__VLS_props: NonNull
1117
1144
  } & {
1118
1145
  loading?: (props: {}) => any;
1119
1146
  };
1120
- emit: ((evt: "cancel", rowData: DataRecord, rowIndex: number) => void) & ((evt: "pagination-change", ...args: [page: number, pageSize: number] & [page: number, pageSize: number]) => void) & ((evt: "row-delete", ...args: [deletedRow: DataRecord, index: number] & [deletedRow: DataRecord, index: number]) => void) & ((evt: "batch-action-error", error: unknown, actionKey: string) => void) & ((evt: "row-key-error", issues: TableRowKeyIssue<DataRecord>[]) => void) & ((evt: "expand-change", expandedKeys: DataTableRowKey[], row?: DataRecord | undefined, expanded?: boolean | undefined) => void) & ((evt: "selection-change", checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => void) & ((evt: "child-selection-change", parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void) & ((evt: "parent-child-link-change", parentKey: DataTableRowKey, shouldSelect: boolean) => void) & ((evt: "update:data", data: DataRecord[]) => void) & ((evt: "save", rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => void) & ((evt: "edit-error", error: unknown) => void) & ((evt: "row-add", newRow: DataRecord) => void) & ((evt: "row-copy", originalRow: DataRecord, newRow: DataRecord) => void) & ((evt: "row-move", row: DataRecord, fromIndex: number, toIndex: number) => void) & ((evt: "row-selection-change", selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void) & ((evt: "view-detail", data: DataRecord) => void) & ((evt: "column-change", columns: TableColumn[]) => void);
1147
+ emit: ((evt: "save", rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => void) & ((evt: "cancel", rowData: DataRecord, rowIndex: number) => void) & ((evt: "pagination-change", ...args: [page: number, pageSize: number] & [page: number, pageSize: number]) => void) & ((evt: "row-delete", ...args: [deletedRow: DataRecord, index: number] & [deletedRow: DataRecord, index: number]) => void) & ((evt: "batch-action-error", error: unknown, actionKey: string) => void) & ((evt: "row-key-error", issues: TableRowKeyIssue<DataRecord>[]) => void) & ((evt: "expand-change", expandedKeys: DataTableRowKey[], row?: DataRecord | undefined, expanded?: boolean | undefined) => void) & ((evt: "selection-change", checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => void) & ((evt: "child-selection-change", parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void) & ((evt: "parent-child-link-change", parentKey: DataTableRowKey, shouldSelect: boolean) => void) & ((evt: "update:data", data: DataRecord[]) => void) & ((evt: "edit-error", error: unknown) => void) & ((evt: "row-add", newRow: DataRecord) => void) & ((evt: "row-copy", originalRow: DataRecord, newRow: DataRecord) => void) & ((evt: "row-move", row: DataRecord, fromIndex: number, toIndex: number) => void) & ((evt: "row-selection-change", selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void) & ((evt: "view-detail", data: DataRecord) => void) & ((evt: "column-change", columns: TableColumn[]) => void);
1121
1148
  }>) => vue.VNode & {
1122
1149
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
1123
1150
  };
@@ -1208,7 +1235,7 @@ interface RowValidationError {
1208
1235
  interface RowEditOptions {
1209
1236
  data: () => DataRecord[];
1210
1237
  rowKey: (row: DataRecord) => DataTableRowKey;
1211
- onSave?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
1238
+ onSave?: (rowData: DataRecord, rowIndex: number, originalKey?: DataTableRowKey) => void | Promise<void>;
1212
1239
  onCancel?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
1213
1240
  /** 列配置(用于提取校验规则) */
1214
1241
  columns?: () => TableColumn[];
@@ -1270,6 +1297,8 @@ interface TableManagerConfig {
1270
1297
  enableParentChildLink: boolean;
1271
1298
  parentChildLinkMode: ParentChildLinkMode;
1272
1299
  dynamicRows?: DynamicRowsOptions<DataRecord>;
1300
+ treeEnabled?: boolean;
1301
+ treeChildrenKey?: string;
1273
1302
  }
1274
1303
  /**
1275
1304
  * 表格管理器参数接口
@@ -1283,12 +1312,14 @@ interface TableManagerParams {
1283
1312
  columns?: () => TableColumn[];
1284
1313
  /** UI 壳提供加载内容,状态引擎保持可独立调用。 */
1285
1314
  renderLoading?: () => VNodeChild;
1315
+ /** String row-key field inherited by dynamic row creation; explicit dynamicRows.rowKey wins. */
1316
+ rowKeyField?: MaybeRefOrGetter<string | undefined>;
1286
1317
  }
1287
1318
  /**
1288
1319
  * 事件处理器接口
1289
1320
  */
1290
1321
  interface EventHandlers {
1291
- onSave: (rowData: DataRecord, rowIndex: number, columnKey?: string) => Promise<void>;
1322
+ onSave: (rowData: DataRecord, rowIndex: number, columnKey?: string, originalKey?: DataTableRowKey) => Promise<void>;
1292
1323
  onCancel: (rowData: DataRecord, rowIndex: number) => Promise<void>;
1293
1324
  onExpandChange: (keys: DataTableRowKey[], row?: DataRecord, expanded?: boolean) => void;
1294
1325
  onSelectionChange: (checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections: Map<DataTableRowKey, DataTableRowKey[]>) => void;
@@ -1468,7 +1499,7 @@ declare function usePagination<T extends object = DataRecord>(options: UsePagina
1468
1499
  interface CellEditOptions {
1469
1500
  data: () => DataRecord[];
1470
1501
  rowKey: (row: DataRecord) => DataTableRowKey;
1471
- onSave?: (rowData: DataRecord, rowIndex: number, columnKey: string) => void | Promise<void>;
1502
+ onSave?: (rowData: DataRecord, rowIndex: number, columnKey: string, originalKey?: DataTableRowKey) => void | Promise<void>;
1472
1503
  /** 列配置(用于提取校验规则) */
1473
1504
  columns?: () => TableColumn[];
1474
1505
  }
@@ -1509,7 +1540,7 @@ declare function useCellEdit(options: CellEditOptions): {
1509
1540
  interface ModalEditOptions<T extends object = DataRecord> {
1510
1541
  data: () => T[];
1511
1542
  rowKey: (row: T) => DataTableRowKey;
1512
- onSave?: (editingData: T, rowIndex: number) => void | Promise<void>;
1543
+ onSave?: (editingData: T, rowIndex: number, originalKey?: DataTableRowKey) => void | Promise<void>;
1513
1544
  onCancel?: (originalData: T, rowIndex: number) => void | Promise<void>;
1514
1545
  }
1515
1546
  /** Modal edit state with lossless snapshots and retry-safe async saves. */
@@ -1535,6 +1566,8 @@ declare function useModalEdit<T extends object = DataRecord>(options: ModalEditO
1535
1566
  interface HighlightPluginOptions {
1536
1567
  autoDetect?: boolean;
1537
1568
  extraLanguages?: string[];
1569
+ /** Explicit compatibility bridge; restored when the owning app unmounts. */
1570
+ exposeToWindow?: boolean;
1538
1571
  /** Enable lifecycle diagnostics through the supplied logger. */
1539
1572
  debug?: boolean;
1540
1573
  logger?: Pick<Console, 'info' | 'warn' | 'error'>;
@@ -1543,23 +1576,23 @@ interface HighlightPluginOptions {
1543
1576
  language: string;
1544
1577
  }) => void;
1545
1578
  }
1546
- /**
1547
- * * @description 获取 highlight 功能的 API 接口
1548
- * ! @return highlight API 对象,包含所有可用方法
1549
- */
1550
- declare const useHighlight: (options?: HighlightPluginOptions) => {
1579
+ interface HighlightAPI {
1551
1580
  getHljs: () => HLJSApi;
1552
1581
  loadLanguage: (language: string) => Promise<boolean>;
1553
1582
  loadLanguages: (languages: string[]) => Promise<string[]>;
1554
1583
  getLoadedLanguages: () => string[];
1555
- };
1584
+ }
1585
+ /** Create an independent highlighter, including its language registry and loaders. */
1586
+ declare function createHighlight(options?: HighlightPluginOptions): HighlightAPI;
1587
+ /** Reuse the current app's highlighter or create a standalone, isolated one. */
1588
+ declare function useHighlight(options?: HighlightPluginOptions): HighlightAPI;
1556
1589
  /**
1557
1590
  * * @description 安装 highlight.js 插件到 Vue 应用
1558
1591
  * ? @param app - Vue 应用实例
1559
1592
  * ? @param options - 插件配置选项
1560
- * ! @return void
1593
+ * ! @return 应用独立的 highlight API
1561
1594
  */
1562
- declare function setupHighlight(app: App, options?: HighlightPluginOptions): void;
1595
+ declare function setupHighlight(app: App, options?: HighlightPluginOptions): HighlightAPI;
1563
1596
  //#endregion
1564
1597
  //#region src/utils/storage.d.ts
1565
1598
  /** SSR-safe localStorage helpers. Storage failures never break component state. */
@@ -1700,4 +1733,4 @@ declare function useTableQuery<T extends object, Q extends object = Record<strin
1700
1733
  cancel: () => void;
1701
1734
  };
1702
1735
  //#endregion
1703
- export { applyFormatter as $, EditMode as A, PrintWatermarkOptions as At, TableColumn as B, _default as C, RowDragConfig as Ct, ColumnWithKey as D, DynamicRowsOptions as Dt, ChildSelectionState as E, useRowDrag as Et, RenderFunction as F, TableRowKeyIssue as G, TableInstance as H, RowAction as I, ColumnFormatter as J, UseTableExpandOptions as K, SelectOption as L, NormalTableColumn as M, usePrintWatermark as Mt, PaginationConfig as N, CustomAction as O, DynamicRowsReturn as Ot, ParentChildLinkMode as P, TableGlobalConfig as Q, SimpleTableActions as R, validateTableRowKeys as S, useCrossPageSelection as St, BuiltInTableColumn as T, UseRowDragReturn as Tt, TableProps as U, TableEmits as V, TableRowKey as W, FormatterType as X, FormatterConfig as Y, TABLE_GLOBAL_CONFIG_KEY as Z, useTableManager as _, ExportConfig as _t, getItem as a, DisplayConfig as at, defineTableColumns as b, UseCrossPageSelectionOptions as bt, setItem as c, ExpandConfig$1 as ct, useHighlight as d, TableConfig as dt, mergeGlobalConfig as et, useModalEdit as f, ToolbarConfig as ft, useTableExpand as g, resolveConfig as gt, useTableActions as h, createEditModeChecker as ht, useTableQuery as i, CrudBinding as it, MaybeRefLike as j, printPresets as jt, DataRecord as k, useDynamicRows as kt, HighlightPluginOptions as l, SelectionConfig$1 as lt, usePagination as m, VirtualScrollConfig as mt, TableQueryResult as n, BatchActionsConfig as nt, removeAllItem as o, EditConfig as ot, useCellEdit as p, TreeConfig as pt, UseTableExpandReturn as q, UseTableQueryOptions as r, ColumnDragConfig as rt, removeItem as s, ErrorConfig as st, TableQueryContext as t, useTableGlobalConfig as tt, setupHighlight as u, SummaryConfig as ut, useRowEdit as v, exportTableData as vt, ApiFunction as w, UseRowDragOptions as wt, defineTableConfig as x, UseCrossPageSelectionReturn as xt, useTableColumns as y, CrossPageSelectionConfig as yt, StrictTableColumn as z };
1736
+ export { TABLE_GLOBAL_CONFIG_KEY as $, CustomAction as A, DynamicRowsReturn as At, SimpleTableActions as B, defineTableConfig as C, UseCrossPageSelectionReturn as Ct, BuiltInTableColumn as D, UseRowDragReturn as Dt, ApiFunction as E, UseRowDragOptions as Et, PaginationConfig as F, useComponentFeedback as Ft, TableProps as G, TableColumn as H, ParentChildLinkMode as I, useComponentLocale as It, UseTableExpandOptions as J, TableRowKey as K, RenderFunction as L, COMPONENT_FEEDBACK_KEY as Lt, EditMode as M, PrintWatermarkOptions as Mt, MaybeRefLike as N, printPresets as Nt, ChildSelectionState as O, useRowDrag as Ot, NormalTableColumn as P, usePrintWatermark as Pt, FormatterType as Q, RowAction as R, COMPONENT_LOCALE_KEY as Rt, defineTableColumns as S, UseCrossPageSelectionOptions as St, _default as T, RowDragConfig as Tt, TableEmits as U, StrictTableColumn as V, TableInstance as W, ColumnFormatter as X, UseTableExpandReturn as Y, FormatterConfig as Z, useTableActions as _, createEditModeChecker as _t, getItem as a, ColumnDragConfig as at, useRowEdit as b, exportTableData as bt, setItem as c, EditConfig as ct, createHighlight as d, SelectionConfig$1 as dt, TableGlobalConfig as et, setupHighlight as f, SummaryConfig as ft, usePagination as g, VirtualScrollConfig as gt, useCellEdit as h, TreeConfig as ht, useTableQuery as i, BatchActionsConfig as it, DataRecord as j, useDynamicRows as jt, ColumnWithKey as k, DynamicRowsOptions as kt, HighlightAPI as l, ErrorConfig as lt, useModalEdit as m, ToolbarConfig as mt, TableQueryResult as n, mergeGlobalConfig as nt, removeAllItem as o, CrudBinding as ot, useHighlight as p, TableConfig as pt, TableRowKeyIssue as q, UseTableQueryOptions as r, useTableGlobalConfig as rt, removeItem as s, DisplayConfig as st, TableQueryContext as t, applyFormatter as tt, HighlightPluginOptions as u, ExpandConfig$1 as ut, useTableExpand as v, resolveConfig as vt, validateTableRowKeys as w, useCrossPageSelection as wt, useTableColumns as x, CrossPageSelectionConfig as xt, useTableManager as y, ExportConfig as yt, SelectOption as z };
@@ -1,11 +1,25 @@
1
1
  import { f as ActionItem, s as ActionBarConfig } from "./presets.js";
2
- import { i as ComponentLocale, r as ComponentFeedback } from "./config.js";
2
+ import { n as ComponentLocale, t as ComponentFeedback } from "./contracts.js";
3
3
  import * as vue from "vue";
4
4
  import { App, ComputedRef, InjectionKey, MaybeRef, MaybeRefOrGetter, Ref, VNodeChild } from "vue";
5
5
  import { DataTableBaseColumn, DataTableColumn, DataTableRowKey, FormItemRule, PaginationProps } from "naive-ui";
6
6
  import * as _vue_shared0 from "@vue/shared";
7
7
  import { HLJSApi } from "highlight.js";
8
8
 
9
+ //#region src/context.d.ts
10
+ declare const COMPONENT_FEEDBACK_KEY: InjectionKey<ComponentFeedback>;
11
+ declare const COMPONENT_LOCALE_KEY: InjectionKey<ComponentLocale>;
12
+ //#endregion
13
+ //#region src/composables/useComponentLocale.d.ts
14
+ /** Bind the UI-independent translator to this Vue application and local configuration. */
15
+ declare function useComponentLocale(local?: MaybeRefOrGetter<ComponentLocale | undefined>): {
16
+ t: (key: string, params?: Record<string, string | number>) => string;
17
+ };
18
+ //#endregion
19
+ //#region src/adapters/naive/feedback.d.ts
20
+ /** Reuse Naive providers when present and safely degrade to injected/no-op feedback. */
21
+ declare function useComponentFeedback(local?: MaybeRefOrGetter<ComponentFeedback | undefined>): Required<ComponentFeedback>;
22
+ //#endregion
9
23
  //#region src/components/C_Table/composables/usePrintWatermark.d.ts
10
24
  interface WatermarkConfig {
11
25
  text: string;
@@ -234,44 +248,41 @@ declare function useRowDrag<T extends object = DataRecord>(options: UseRowDragOp
234
248
  //#region src/components/C_Table/composables/useCrossPageSelection.d.ts
235
249
  interface CrossPageSelectionConfig {
236
250
  enabled?: boolean;
237
- /** 最大选择数 */
251
+ /** Maximum selected rows, including previously visited remote pages. */
238
252
  maxSelection?: number;
239
253
  }
240
254
  interface UseCrossPageSelectionOptions<T extends object = DataRecord> {
241
- /** 全量数据(非分页后的) */
255
+ /** All local rows, or the loaded page when remote is enabled. */
242
256
  allData: Ref<T[]> | ComputedRef<T[]>;
243
- /** 行键函数 */
244
257
  rowKey: (row: T) => DataTableRowKey;
245
- /** 配置 */
246
258
  config: MaybeRefOrGetter<CrossPageSelectionConfig | undefined>;
259
+ remote?: MaybeRefOrGetter<boolean>;
260
+ childrenKey?: MaybeRefOrGetter<string | undefined>;
261
+ rowCheckable?: (row: T) => boolean;
262
+ onSelectionChange?: (keys: DataTableRowKey[], rows: T[]) => void;
247
263
  }
248
264
  interface UseCrossPageSelectionReturn<T extends object = DataRecord> {
249
- /** 所有选中的 key(跨页) */
250
265
  selectedKeys: Ref<Set<DataTableRowKey>>;
251
- /** 选中行数量 */
252
266
  selectedCount: ComputedRef<number>;
253
- /** 当前页数据的 checkedKeys(给 NDataTable 绑定) */
254
267
  getPageCheckedKeys: (pageData: T[]) => DataTableRowKey[];
255
- /** NDataTable @update:checked-row-keys 处理器 */
256
268
  handlePageSelectionChange: (keys: DataTableRowKey[], pageData: T[]) => void;
257
- /** 全选所有页 */
269
+ /** In remote mode, adds the currently loaded page; never claims to select unseen server rows. */
258
270
  selectAll: () => void;
259
- /** 选择指定 key */
260
271
  select: (key: DataTableRowKey) => boolean;
261
- /** 取消选择指定 key */
262
272
  unselect: (key: DataTableRowKey) => void;
263
- /** 清除所有页选中 */
264
273
  clearAll: () => void;
265
- /** 获取所有选中行数据 */
266
274
  getSelectedRows: () => T[];
267
- /** 判断 key 是否选中 */
268
275
  isSelected: (key: DataTableRowKey) => boolean;
269
276
  }
270
- /** 跨页多选组合式函数 */
277
+ /** Preserve selected identities and loaded row snapshots across local or remote pages. */
271
278
  declare function useCrossPageSelection<T extends object = DataRecord>(options: UseCrossPageSelectionOptions<T>): UseCrossPageSelectionReturn<T>;
272
279
  //#endregion
273
280
  //#region src/components/C_Table/composables/useTableExport.d.ts
274
281
  interface ExportConfig {
282
+ /** Data scope used by C_Table; source preserves the legacy loaded-source behavior. */
283
+ scope?: 'source' | 'page' | 'selected';
284
+ /** Explicit server-side/full-data export request; invoked only when exporting. */
285
+ requestData?: () => DataRecord[] | Promise<DataRecord[]>;
275
286
  /** 导出文件名(不含扩展名) */
276
287
  filename?: string;
277
288
  /** 导出格式 */
@@ -784,7 +795,9 @@ interface BaseTableColumn<T extends object = DataRecord> extends Omit<DataTableB
784
795
  required?: boolean;
785
796
  editType?: EditType;
786
797
  editProps?: EditProps;
787
- editRender?: (value: unknown, rowData: T, rowIndex: number) => VNodeChild;
798
+ editRender?: (value: unknown, rowData: T, rowIndex: number, context: {
799
+ onUpdate: (value: unknown) => void;
800
+ }) => VNodeChild;
788
801
  render?: (rowData: T, rowIndex: number) => VNodeChild;
789
802
  /** 声明式格式化器(优先级低于 render) */
790
803
  formatter?: ColumnFormatter;
@@ -911,6 +924,8 @@ interface TableExpandMethods {
911
924
  expandAll: () => Promise<void>;
912
925
  collapseAll: () => void;
913
926
  isExpanded: (rowKey: DataTableRowKey) => boolean;
927
+ retryExpand: (rowKey: DataTableRowKey) => Promise<void>;
928
+ invalidateExpand: (rowKey?: DataTableRowKey) => void;
914
929
  }
915
930
  interface TableSelectionMethods<T extends object = DataRecord, C = DataRecord> {
916
931
  selectRow: (rowKey: DataTableRowKey) => boolean | void;
@@ -942,11 +957,16 @@ interface TablePaginationMethods {
942
957
  resetToFirstPage: () => void;
943
958
  getTotalPages: () => number;
944
959
  }
945
- interface TableInstance<T extends object = DataRecord, C = DataRecord> extends TableEditMethods<T>, TableExpandMethods, TableSelectionMethods<T, C>, TableDynamicRowsMethods<T>, TablePaginationMethods {}
960
+ interface TableInstance<T extends object = DataRecord, C = DataRecord> extends TableEditMethods<T>, TableExpandMethods, TableSelectionMethods<T, C>, TableDynamicRowsMethods<T>, TablePaginationMethods {
961
+ exportData: () => Promise<void>;
962
+ }
946
963
  interface UseTableExpandOptions<T extends object = DataRecord, C = DataRecord> extends ExpandConfig<T, C>, SelectionConfig<T, C> {
947
964
  data: Ref<T[]> | ComputedRef<T[]>;
948
965
  rowKey: (row: T) => DataTableRowKey;
949
966
  childRowKey?: (child: C) => DataTableRowKey;
967
+ /** Native tree children field; omitted for flat/detail-expansion tables. */
968
+ childrenKey?: string;
969
+ locale?: ComponentLocale;
950
970
  /** 展开数据等待时的加载内容,C_Table 内置统一 SVG;独立引擎可按需提供。 */
951
971
  renderLoading?: () => VNodeChild;
952
972
  defaultExpandedKeys?: DataTableRowKey[];
@@ -960,6 +980,9 @@ interface UseTableExpandReturn<T extends object = DataRecord, C = DataRecord> {
960
980
  childSelections: Ref<Map<DataTableRowKey, DataTableRowKey[]>>;
961
981
  expandDataMap: Ref<Map<DataTableRowKey, C[]>>;
962
982
  loadingMap: Ref<Map<DataTableRowKey, boolean>>;
983
+ errorMap: Ref<Map<DataTableRowKey, unknown>>;
984
+ retryExpand: (key: DataTableRowKey) => Promise<void>;
985
+ invalidateExpand: (key?: DataTableRowKey) => void;
963
986
  selectedRowsCount: ComputedRef<number>;
964
987
  totalChildSelections: ComputedRef<number>;
965
988
  expandAll: () => Promise<void>;
@@ -1005,7 +1028,9 @@ declare const __VLS_export: <T extends object = DataRecord>(__VLS_props: NonNull
1005
1028
  data?: MaybeRefLike<T[]>; /** 加载状态 */
1006
1029
  loading?: MaybeRefLike<boolean>; /** 行唯一键 */
1007
1030
  rowKey?: string | ((row: T) => DataTableRowKey); /** 统一功能配置(edit / selection / expand / pagination / dynamicRows / toolbar / display) */
1008
- config?: TableConfig<T>; /** CRUD 绑定 — 传入 useTableCrud() 的返回值,自动接管 data/columns/loading/actions/pagination/events */
1031
+ config?: TableConfig<T>; /** Native pagination compatibility path; takes ownership over config.pagination. */
1032
+ pagination?: PaginationProps | false; /** Native remote mode, used with the native pagination compatibility path. */
1033
+ remote?: boolean; /** CRUD 绑定 — 传入 useTableCrud() 的返回值,自动接管 data/columns/loading/actions/pagination/events */
1009
1034
  crud?: CrudBinding<T>;
1010
1035
  } & {
1011
1036
  [x: `on${Capitalize<string>}`]: ((...args: any) => any) | undefined;
@@ -1019,6 +1044,8 @@ declare const __VLS_export: <T extends object = DataRecord>(__VLS_props: NonNull
1019
1044
  expandRow: (rowKey: DataTableRowKey) => Promise<void>;
1020
1045
  collapseRow: (rowKey: DataTableRowKey) => void;
1021
1046
  toggleExpand: (rowKey: DataTableRowKey) => Promise<void>;
1047
+ retryExpand: (rowKey: DataTableRowKey) => Promise<void>;
1048
+ invalidateExpand: (rowKey?: DataTableRowKey) => void;
1022
1049
  expandAll: () => Promise<void>;
1023
1050
  collapseAll: () => void;
1024
1051
  selectRow: (rowKey: DataTableRowKey) => boolean;
@@ -1117,7 +1144,7 @@ declare const __VLS_export: <T extends object = DataRecord>(__VLS_props: NonNull
1117
1144
  } & {
1118
1145
  loading?: (props: {}) => any;
1119
1146
  };
1120
- emit: ((evt: "cancel", rowData: DataRecord, rowIndex: number) => void) & ((evt: "pagination-change", ...args: [page: number, pageSize: number] & [page: number, pageSize: number]) => void) & ((evt: "row-delete", ...args: [deletedRow: DataRecord, index: number] & [deletedRow: DataRecord, index: number]) => void) & ((evt: "batch-action-error", error: unknown, actionKey: string) => void) & ((evt: "row-key-error", issues: TableRowKeyIssue<DataRecord>[]) => void) & ((evt: "expand-change", expandedKeys: DataTableRowKey[], row?: DataRecord | undefined, expanded?: boolean | undefined) => void) & ((evt: "selection-change", checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => void) & ((evt: "child-selection-change", parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void) & ((evt: "parent-child-link-change", parentKey: DataTableRowKey, shouldSelect: boolean) => void) & ((evt: "update:data", data: DataRecord[]) => void) & ((evt: "save", rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => void) & ((evt: "edit-error", error: unknown) => void) & ((evt: "row-add", newRow: DataRecord) => void) & ((evt: "row-copy", originalRow: DataRecord, newRow: DataRecord) => void) & ((evt: "row-move", row: DataRecord, fromIndex: number, toIndex: number) => void) & ((evt: "row-selection-change", selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void) & ((evt: "view-detail", data: DataRecord) => void) & ((evt: "column-change", columns: TableColumn[]) => void);
1147
+ emit: ((evt: "save", rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => void) & ((evt: "cancel", rowData: DataRecord, rowIndex: number) => void) & ((evt: "pagination-change", ...args: [page: number, pageSize: number] & [page: number, pageSize: number]) => void) & ((evt: "row-delete", ...args: [deletedRow: DataRecord, index: number] & [deletedRow: DataRecord, index: number]) => void) & ((evt: "batch-action-error", error: unknown, actionKey: string) => void) & ((evt: "row-key-error", issues: TableRowKeyIssue<DataRecord>[]) => void) & ((evt: "expand-change", expandedKeys: DataTableRowKey[], row?: DataRecord | undefined, expanded?: boolean | undefined) => void) & ((evt: "selection-change", checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => void) & ((evt: "child-selection-change", parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void) & ((evt: "parent-child-link-change", parentKey: DataTableRowKey, shouldSelect: boolean) => void) & ((evt: "update:data", data: DataRecord[]) => void) & ((evt: "edit-error", error: unknown) => void) & ((evt: "row-add", newRow: DataRecord) => void) & ((evt: "row-copy", originalRow: DataRecord, newRow: DataRecord) => void) & ((evt: "row-move", row: DataRecord, fromIndex: number, toIndex: number) => void) & ((evt: "row-selection-change", selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void) & ((evt: "view-detail", data: DataRecord) => void) & ((evt: "column-change", columns: TableColumn[]) => void);
1121
1148
  }>) => vue.VNode & {
1122
1149
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
1123
1150
  };
@@ -1208,7 +1235,7 @@ interface RowValidationError {
1208
1235
  interface RowEditOptions {
1209
1236
  data: () => DataRecord[];
1210
1237
  rowKey: (row: DataRecord) => DataTableRowKey;
1211
- onSave?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
1238
+ onSave?: (rowData: DataRecord, rowIndex: number, originalKey?: DataTableRowKey) => void | Promise<void>;
1212
1239
  onCancel?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
1213
1240
  /** 列配置(用于提取校验规则) */
1214
1241
  columns?: () => TableColumn[];
@@ -1270,6 +1297,8 @@ interface TableManagerConfig {
1270
1297
  enableParentChildLink: boolean;
1271
1298
  parentChildLinkMode: ParentChildLinkMode;
1272
1299
  dynamicRows?: DynamicRowsOptions<DataRecord>;
1300
+ treeEnabled?: boolean;
1301
+ treeChildrenKey?: string;
1273
1302
  }
1274
1303
  /**
1275
1304
  * 表格管理器参数接口
@@ -1283,12 +1312,14 @@ interface TableManagerParams {
1283
1312
  columns?: () => TableColumn[];
1284
1313
  /** UI 壳提供加载内容,状态引擎保持可独立调用。 */
1285
1314
  renderLoading?: () => VNodeChild;
1315
+ /** String row-key field inherited by dynamic row creation; explicit dynamicRows.rowKey wins. */
1316
+ rowKeyField?: MaybeRefOrGetter<string | undefined>;
1286
1317
  }
1287
1318
  /**
1288
1319
  * 事件处理器接口
1289
1320
  */
1290
1321
  interface EventHandlers {
1291
- onSave: (rowData: DataRecord, rowIndex: number, columnKey?: string) => Promise<void>;
1322
+ onSave: (rowData: DataRecord, rowIndex: number, columnKey?: string, originalKey?: DataTableRowKey) => Promise<void>;
1292
1323
  onCancel: (rowData: DataRecord, rowIndex: number) => Promise<void>;
1293
1324
  onExpandChange: (keys: DataTableRowKey[], row?: DataRecord, expanded?: boolean) => void;
1294
1325
  onSelectionChange: (checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections: Map<DataTableRowKey, DataTableRowKey[]>) => void;
@@ -1468,7 +1499,7 @@ declare function usePagination<T extends object = DataRecord>(options: UsePagina
1468
1499
  interface CellEditOptions {
1469
1500
  data: () => DataRecord[];
1470
1501
  rowKey: (row: DataRecord) => DataTableRowKey;
1471
- onSave?: (rowData: DataRecord, rowIndex: number, columnKey: string) => void | Promise<void>;
1502
+ onSave?: (rowData: DataRecord, rowIndex: number, columnKey: string, originalKey?: DataTableRowKey) => void | Promise<void>;
1472
1503
  /** 列配置(用于提取校验规则) */
1473
1504
  columns?: () => TableColumn[];
1474
1505
  }
@@ -1509,7 +1540,7 @@ declare function useCellEdit(options: CellEditOptions): {
1509
1540
  interface ModalEditOptions<T extends object = DataRecord> {
1510
1541
  data: () => T[];
1511
1542
  rowKey: (row: T) => DataTableRowKey;
1512
- onSave?: (editingData: T, rowIndex: number) => void | Promise<void>;
1543
+ onSave?: (editingData: T, rowIndex: number, originalKey?: DataTableRowKey) => void | Promise<void>;
1513
1544
  onCancel?: (originalData: T, rowIndex: number) => void | Promise<void>;
1514
1545
  }
1515
1546
  /** Modal edit state with lossless snapshots and retry-safe async saves. */
@@ -1535,6 +1566,8 @@ declare function useModalEdit<T extends object = DataRecord>(options: ModalEditO
1535
1566
  interface HighlightPluginOptions {
1536
1567
  autoDetect?: boolean;
1537
1568
  extraLanguages?: string[];
1569
+ /** Explicit compatibility bridge; restored when the owning app unmounts. */
1570
+ exposeToWindow?: boolean;
1538
1571
  /** Enable lifecycle diagnostics through the supplied logger. */
1539
1572
  debug?: boolean;
1540
1573
  logger?: Pick<Console, 'info' | 'warn' | 'error'>;
@@ -1543,23 +1576,23 @@ interface HighlightPluginOptions {
1543
1576
  language: string;
1544
1577
  }) => void;
1545
1578
  }
1546
- /**
1547
- * * @description 获取 highlight 功能的 API 接口
1548
- * ! @return highlight API 对象,包含所有可用方法
1549
- */
1550
- declare const useHighlight: (options?: HighlightPluginOptions) => {
1579
+ interface HighlightAPI {
1551
1580
  getHljs: () => HLJSApi;
1552
1581
  loadLanguage: (language: string) => Promise<boolean>;
1553
1582
  loadLanguages: (languages: string[]) => Promise<string[]>;
1554
1583
  getLoadedLanguages: () => string[];
1555
- };
1584
+ }
1585
+ /** Create an independent highlighter, including its language registry and loaders. */
1586
+ declare function createHighlight(options?: HighlightPluginOptions): HighlightAPI;
1587
+ /** Reuse the current app's highlighter or create a standalone, isolated one. */
1588
+ declare function useHighlight(options?: HighlightPluginOptions): HighlightAPI;
1556
1589
  /**
1557
1590
  * * @description 安装 highlight.js 插件到 Vue 应用
1558
1591
  * ? @param app - Vue 应用实例
1559
1592
  * ? @param options - 插件配置选项
1560
- * ! @return void
1593
+ * ! @return 应用独立的 highlight API
1561
1594
  */
1562
- declare function setupHighlight(app: App, options?: HighlightPluginOptions): void;
1595
+ declare function setupHighlight(app: App, options?: HighlightPluginOptions): HighlightAPI;
1563
1596
  //#endregion
1564
1597
  //#region src/utils/storage.d.ts
1565
1598
  /** SSR-safe localStorage helpers. Storage failures never break component state. */
@@ -1700,4 +1733,4 @@ declare function useTableQuery<T extends object, Q extends object = Record<strin
1700
1733
  cancel: () => void;
1701
1734
  };
1702
1735
  //#endregion
1703
- export { applyFormatter as $, EditMode as A, PrintWatermarkOptions as At, TableColumn as B, _default as C, RowDragConfig as Ct, ColumnWithKey as D, DynamicRowsOptions as Dt, ChildSelectionState as E, useRowDrag as Et, RenderFunction as F, TableRowKeyIssue as G, TableInstance as H, RowAction as I, ColumnFormatter as J, UseTableExpandOptions as K, SelectOption as L, NormalTableColumn as M, usePrintWatermark as Mt, PaginationConfig as N, CustomAction as O, DynamicRowsReturn as Ot, ParentChildLinkMode as P, TableGlobalConfig as Q, SimpleTableActions as R, validateTableRowKeys as S, useCrossPageSelection as St, BuiltInTableColumn as T, UseRowDragReturn as Tt, TableProps as U, TableEmits as V, TableRowKey as W, FormatterType as X, FormatterConfig as Y, TABLE_GLOBAL_CONFIG_KEY as Z, useTableManager as _, ExportConfig as _t, getItem as a, DisplayConfig as at, defineTableColumns as b, UseCrossPageSelectionOptions as bt, setItem as c, ExpandConfig$1 as ct, useHighlight as d, TableConfig as dt, mergeGlobalConfig as et, useModalEdit as f, ToolbarConfig as ft, useTableExpand as g, resolveConfig as gt, useTableActions as h, createEditModeChecker as ht, useTableQuery as i, CrudBinding as it, MaybeRefLike as j, printPresets as jt, DataRecord as k, useDynamicRows as kt, HighlightPluginOptions as l, SelectionConfig$1 as lt, usePagination as m, VirtualScrollConfig as mt, TableQueryResult as n, BatchActionsConfig as nt, removeAllItem as o, EditConfig as ot, useCellEdit as p, TreeConfig as pt, UseTableExpandReturn as q, UseTableQueryOptions as r, ColumnDragConfig as rt, removeItem as s, ErrorConfig as st, TableQueryContext as t, useTableGlobalConfig as tt, setupHighlight as u, SummaryConfig as ut, useRowEdit as v, exportTableData as vt, ApiFunction as w, UseRowDragOptions as wt, defineTableConfig as x, UseCrossPageSelectionReturn as xt, useTableColumns as y, CrossPageSelectionConfig as yt, StrictTableColumn as z };
1736
+ export { TABLE_GLOBAL_CONFIG_KEY as $, CustomAction as A, DynamicRowsReturn as At, SimpleTableActions as B, defineTableConfig as C, UseCrossPageSelectionReturn as Ct, BuiltInTableColumn as D, UseRowDragReturn as Dt, ApiFunction as E, UseRowDragOptions as Et, PaginationConfig as F, useComponentFeedback as Ft, TableProps as G, TableColumn as H, ParentChildLinkMode as I, useComponentLocale as It, UseTableExpandOptions as J, TableRowKey as K, RenderFunction as L, COMPONENT_FEEDBACK_KEY as Lt, EditMode as M, PrintWatermarkOptions as Mt, MaybeRefLike as N, printPresets as Nt, ChildSelectionState as O, useRowDrag as Ot, NormalTableColumn as P, usePrintWatermark as Pt, FormatterType as Q, RowAction as R, COMPONENT_LOCALE_KEY as Rt, defineTableColumns as S, UseCrossPageSelectionOptions as St, _default as T, RowDragConfig as Tt, TableEmits as U, StrictTableColumn as V, TableInstance as W, ColumnFormatter as X, UseTableExpandReturn as Y, FormatterConfig as Z, useTableActions as _, createEditModeChecker as _t, getItem as a, ColumnDragConfig as at, useRowEdit as b, exportTableData as bt, setItem as c, EditConfig as ct, createHighlight as d, SelectionConfig$1 as dt, TableGlobalConfig as et, setupHighlight as f, SummaryConfig as ft, usePagination as g, VirtualScrollConfig as gt, useCellEdit as h, TreeConfig as ht, useTableQuery as i, BatchActionsConfig as it, DataRecord as j, useDynamicRows as jt, ColumnWithKey as k, DynamicRowsOptions as kt, HighlightAPI as l, ErrorConfig as lt, useModalEdit as m, ToolbarConfig as mt, TableQueryResult as n, mergeGlobalConfig as nt, removeAllItem as o, CrudBinding as ot, useHighlight as p, TableConfig as pt, TableRowKeyIssue as q, UseTableQueryOptions as r, useTableGlobalConfig as rt, removeItem as s, DisplayConfig as st, TableQueryContext as t, applyFormatter as tt, HighlightPluginOptions as u, ExpandConfig$1 as ut, useTableExpand as v, resolveConfig as vt, validateTableRowKeys as w, useCrossPageSelection as wt, useTableColumns as x, CrossPageSelectionConfig as xt, useTableManager as y, ExportConfig as yt, SelectOption as z };