@robot-admin/naive-ui-components 0.16.0 → 0.17.1

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 (225) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +12 -9
  3. package/README_EN.md +12 -9
  4. package/dist/C_ActionBar.css +56 -48
  5. package/dist/C_ActionBar2.cjs +1 -1
  6. package/dist/C_ActionBar2.js +1 -1
  7. package/dist/C_AntV2.cjs +1 -1
  8. package/dist/C_AntV2.js +3 -3
  9. package/dist/C_Barcode.css +6 -6
  10. package/dist/C_Barcode2.cjs +1 -1
  11. package/dist/C_Barcode2.js +1 -1
  12. package/dist/C_Chat.css +269 -185
  13. package/dist/C_Chat2.cjs +1 -1
  14. package/dist/C_Chat2.js +1 -1
  15. package/dist/C_Code.css +26 -26
  16. package/dist/C_Code2.cjs +1 -1
  17. package/dist/C_Code2.js +1 -1
  18. package/dist/C_Draggable2.cjs +1 -1
  19. package/dist/C_Draggable2.js +1 -1
  20. package/dist/C_FilePreview.css +96 -57
  21. package/dist/C_FilePreview2.cjs +1 -1
  22. package/dist/C_FilePreview2.js +1 -1
  23. package/dist/C_Form.base.css +295 -277
  24. package/dist/C_Form.css +295 -277
  25. package/dist/C_Form.d.cts +2 -1
  26. package/dist/C_Form.d.ts +2 -1
  27. package/dist/C_FormModal.css +10 -10
  28. package/dist/C_FormModal2.cjs +1 -1
  29. package/dist/C_FormModal2.js +1 -1
  30. package/dist/C_FormSearch.css +67 -68
  31. package/dist/C_FormSearch.d.cts +2 -1
  32. package/dist/C_FormSearch.d.ts +2 -1
  33. package/dist/C_FormSearch2.cjs +1 -1
  34. package/dist/C_FormSearch2.js +1 -1
  35. package/dist/C_FullCalendar2.cjs +1 -1
  36. package/dist/C_FullCalendar2.js +1 -1
  37. package/dist/C_GlobalSearch.css +140 -118
  38. package/dist/C_GlobalSearch2.cjs +1 -1
  39. package/dist/C_GlobalSearch2.js +1 -1
  40. package/dist/C_ImageCropper.css +12 -10
  41. package/dist/C_ImageCropper2.cjs +1 -1
  42. package/dist/C_ImageCropper2.js +1 -1
  43. package/dist/C_Login.css +79 -79
  44. package/dist/C_Login2.cjs +1 -1
  45. package/dist/C_Login2.js +1 -1
  46. package/dist/C_Map.css +10 -10
  47. package/dist/C_Map2.cjs +1 -1
  48. package/dist/C_Map2.js +1 -1
  49. package/dist/C_OrgChart.css +28 -4
  50. package/dist/C_OrgChart2.cjs +1 -1
  51. package/dist/C_OrgChart2.js +1 -1
  52. package/dist/C_QRCode2.cjs +1 -1
  53. package/dist/C_QRCode2.js +1 -1
  54. package/dist/C_Signature.css +15 -15
  55. package/dist/C_Signature2.cjs +1 -1
  56. package/dist/C_Signature2.js +1 -1
  57. package/dist/C_SplitPane.cjs +1 -1
  58. package/dist/C_SplitPane.css +251 -109
  59. package/dist/C_SplitPane.js +1 -1
  60. package/dist/C_SplitPane2.cjs +1 -1
  61. package/dist/C_SplitPane2.js +1 -1
  62. package/dist/C_Table.base.css +491 -563
  63. package/dist/C_Table.cjs +1 -1
  64. package/dist/C_Table.css +491 -563
  65. package/dist/C_Table.d.cts +3 -2
  66. package/dist/C_Table.d.ts +4 -2
  67. package/dist/C_Table.js +1 -1
  68. package/dist/C_TagsView2.cjs +1 -1
  69. package/dist/C_TagsView2.js +1 -1
  70. package/dist/C_Transfer.css +93 -84
  71. package/dist/C_Transfer2.cjs +1 -1
  72. package/dist/C_Transfer2.js +1 -1
  73. package/dist/C_Tree.css +72 -125
  74. package/dist/C_Tree.d.cts +3 -2
  75. package/dist/C_Tree.d.ts +15 -2
  76. package/dist/C_Tree2.cjs +1 -1
  77. package/dist/C_Tree2.js +1 -1
  78. package/dist/C_Upload.css +5 -5
  79. package/dist/C_Upload2.cjs +1 -1
  80. package/dist/C_Upload2.js +1 -1
  81. package/dist/C_VideoPlayer2.cjs +4 -3
  82. package/dist/C_VideoPlayer2.js +4 -3
  83. package/dist/C_VtableGantt.css +29 -28
  84. package/dist/C_VtableGantt2.cjs +1 -1
  85. package/dist/C_VtableGantt2.js +1 -1
  86. package/dist/C_WaterFall.css +29 -29
  87. package/dist/C_WaterFall2.cjs +1 -1
  88. package/dist/C_WaterFall2.js +1 -1
  89. package/dist/C_WorkFlow2.cjs +1 -1
  90. package/dist/C_WorkFlow2.js +1 -1
  91. package/dist/Card.cjs +1 -1
  92. package/dist/Card.js +1 -1
  93. package/dist/Custom.cjs +1 -1
  94. package/dist/Custom.js +1 -1
  95. package/dist/Dynamic.cjs +1 -1
  96. package/dist/Dynamic.js +1 -1
  97. package/dist/Steps.cjs +1 -1
  98. package/dist/Steps.js +1 -1
  99. package/dist/Tabs.cjs +1 -1
  100. package/dist/Tabs.js +1 -1
  101. package/dist/constants.d.cts +2 -2
  102. package/dist/constants.d.ts +2 -2
  103. package/dist/constants2.d.cts +2 -2
  104. package/dist/constants2.d.ts +2 -2
  105. package/dist/constants3.d.cts +2 -2
  106. package/dist/constants3.d.ts +2 -2
  107. package/dist/constants4.d.cts +4 -4
  108. package/dist/constants4.d.ts +4 -4
  109. package/dist/constants5.d.cts +3 -7
  110. package/dist/constants5.d.ts +3 -7
  111. package/dist/data.d.cts +10 -10
  112. package/dist/data.d.ts +10 -10
  113. package/dist/density.cjs +1 -0
  114. package/dist/density.d.cts +15 -0
  115. package/dist/density.d.ts +15 -0
  116. package/dist/density.js +1 -0
  117. package/dist/helpers.cjs +1 -1
  118. package/dist/helpers.js +1 -1
  119. package/dist/index.cjs +1 -1
  120. package/dist/index.d.cts +3 -3
  121. package/dist/index.d.ts +5 -3
  122. package/dist/index.js +1 -1
  123. package/dist/index.vue.d.cts +5 -5
  124. package/dist/index.vue.d.ts +5 -5
  125. package/dist/index10.vue.d.cts +5 -5
  126. package/dist/index10.vue.d.ts +3 -3
  127. package/dist/index11.vue.d.cts +3 -3
  128. package/dist/index11.vue.d.ts +5 -5
  129. package/dist/index12.vue.d.cts +5 -5
  130. package/dist/index13.vue.d.ts +5 -5
  131. package/dist/index14.vue.d.cts +5 -5
  132. package/dist/index14.vue.d.ts +9 -9
  133. package/dist/index15.vue.d.cts +9 -9
  134. package/dist/index15.vue.d.ts +3 -3
  135. package/dist/index16.vue.d.cts +3 -3
  136. package/dist/index17.vue.d.ts +1 -1
  137. package/dist/index18.vue.d.cts +1 -1
  138. package/dist/index18.vue.d.ts +7 -7
  139. package/dist/index19.vue.d.cts +7 -7
  140. package/dist/index19.vue.d.ts +5 -5
  141. package/dist/index2.vue.d.cts +2 -2
  142. package/dist/index2.vue.d.ts +2 -2
  143. package/dist/index20.vue.d.cts +6 -2
  144. package/dist/index20.vue.d.ts +6 -2
  145. package/dist/index21.vue.d.cts +2 -2
  146. package/dist/index21.vue.d.ts +2 -2
  147. package/dist/index22.vue.d.cts +2 -2
  148. package/dist/index22.vue.d.ts +2 -2
  149. package/dist/index23.vue.d.cts +2 -2
  150. package/dist/index23.vue.d.ts +2 -2
  151. package/dist/index25.vue.d.cts +5 -5
  152. package/dist/index25.vue.d.ts +5 -5
  153. package/dist/index27.vue.d.cts +2 -2
  154. package/dist/index27.vue.d.ts +2 -2
  155. package/dist/index28.vue.d.cts +7 -3
  156. package/dist/index28.vue.d.ts +7 -3
  157. package/dist/index3.vue.d.cts +3 -3
  158. package/dist/index3.vue.d.ts +3 -3
  159. package/dist/index4.vue.d.cts +5 -5
  160. package/dist/index5.vue.d.ts +2 -2
  161. package/dist/index6.vue.d.cts +2 -2
  162. package/dist/index6.vue.d.ts +7 -4
  163. package/dist/index7.vue.d.cts +7 -4
  164. package/dist/index7.vue.d.ts +2 -2
  165. package/dist/index8.vue.d.cts +2 -2
  166. package/dist/index8.vue.d.ts +4 -6
  167. package/dist/index9.vue.d.cts +4 -6
  168. package/dist/index9.vue.d.ts +5 -5
  169. package/dist/mapUtils.d.cts +4 -4
  170. package/dist/mapUtils.d.ts +4 -4
  171. package/dist/presets.d.cts +4 -1
  172. package/dist/presets.d.ts +4 -1
  173. package/dist/style.css +1763 -1566
  174. package/dist/useCalendarEvents.d.cts +10 -9
  175. package/dist/useCalendarEvents.d.ts +10 -9
  176. package/dist/useCollapsePanel.d.cts +3 -3
  177. package/dist/useCollapsePanel.d.ts +3 -3
  178. package/dist/useCropperCore.d.cts +9 -9
  179. package/dist/useCropperCore.d.ts +9 -9
  180. package/dist/useDraggableLayout.d.cts +15 -13
  181. package/dist/useDraggableLayout.d.ts +15 -13
  182. package/dist/useDynamicFormState.d.cts +5 -2
  183. package/dist/useDynamicFormState.d.ts +5 -2
  184. package/dist/useEdgeInteraction.d.cts +3 -3
  185. package/dist/useEdgeInteraction.d.ts +3 -3
  186. package/dist/useFullscreen.d.cts +4 -0
  187. package/dist/useFullscreen.d.ts +4 -0
  188. package/dist/useGlobalSearch.d.cts +9 -4
  189. package/dist/useGlobalSearch.d.ts +9 -4
  190. package/dist/useInfiniteScroll.d.cts +4 -1
  191. package/dist/useInfiniteScroll.d.ts +4 -1
  192. package/dist/useQRCode.d.cts +3 -3
  193. package/dist/useQRCode.d.ts +3 -3
  194. package/dist/useSearchState.d.cts +8 -6
  195. package/dist/useSearchState.d.ts +8 -6
  196. package/dist/useSignatureHistory.d.cts +7 -7
  197. package/dist/useSignatureHistory.d.ts +7 -7
  198. package/dist/useSplitResize.d.cts +50 -61
  199. package/dist/useSplitResize.d.ts +50 -61
  200. package/dist/useTableQuery.cjs +3 -3
  201. package/dist/useTableQuery.d.cts +237 -13
  202. package/dist/useTableQuery.d.ts +237 -13
  203. package/dist/useTableQuery.js +3 -3
  204. package/dist/useTimeSelection.d.cts +2 -2
  205. package/dist/useTimeSelection.d.ts +2 -2
  206. package/dist/useWorkflowValidation.d.cts +3 -3
  207. package/dist/useWorkflowValidation.d.ts +3 -3
  208. package/dist/verification.d.cts +5 -5
  209. package/dist/verification.d.ts +5 -5
  210. package/docs/component-review-20261019.md +55 -0
  211. package/docs/guides/form-density.en.md +42 -0
  212. package/docs/guides/form-density.md +59 -0
  213. package/docs/guides/runtime-performance.md +38 -0
  214. package/docs/guides/split-pane.en.md +103 -0
  215. package/docs/guides/split-pane.md +126 -0
  216. package/docs/guides/table-density.md +87 -0
  217. package/docs/guides/transfer.md +11 -0
  218. package/docs/guides/tree.md +157 -0
  219. package/docs/guides/usage.en.md +2 -0
  220. package/docs/guides/usage.md +2 -0
  221. package/docs/runtime-review-20261019.md +41 -0
  222. package/docs/wl-ui-produce-coverage.md +62 -0
  223. package/package.json +4 -2
  224. package/dist/useTreeOperations.d.cts +0 -185
  225. package/dist/useTreeOperations.d.ts +0 -185
@@ -1,4 +1,5 @@
1
1
  import { n as ComponentLocale, t as ComponentFeedback } from "./contracts.cjs";
2
+ import { t as ComponentDensity } from "./density.cjs";
2
3
  import * as vue from "vue";
3
4
  import { MaybeRefOrGetter, Ref } from "vue";
4
5
  import * as naive_ui0 from "naive-ui";
@@ -32,6 +33,8 @@ interface SearchFormParams {
32
33
  [key: string]: unknown;
33
34
  }
34
35
  interface SearchConfig {
36
+ /** 与 C_Form、C_Table 统一的布局密度,显式 size 和字段 attrs.size 优先。 */
37
+ density?: ComponentDensity;
35
38
  foldThreshold?: number;
36
39
  historyMaxItems?: number;
37
40
  requireValue?: boolean;
@@ -73,21 +76,20 @@ declare const __VLS_export: vue.DefineComponent<FormSearchProps, {
73
76
  cleanFn: () => void;
74
77
  changeFoldState: () => void;
75
78
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
76
- "update:modelValue": (params: SearchFormParams) => any;
77
- reset: (params: SearchFormParams) => any;
78
79
  search: (params: SearchFormParams) => any;
80
+ reset: (params: SearchFormParams) => any;
81
+ "update:modelValue": (params: SearchFormParams) => any;
79
82
  "change-params": (params: SearchFormParams) => any;
80
83
  }, string, vue.PublicProps, Readonly<FormSearchProps> & Readonly<{
81
- "onUpdate:modelValue"?: ((params: SearchFormParams) => any) | undefined;
82
- onReset?: ((params: SearchFormParams) => any) | undefined;
83
84
  onSearch?: ((params: SearchFormParams) => any) | undefined;
85
+ onReset?: ((params: SearchFormParams) => any) | undefined;
86
+ "onUpdate:modelValue"?: ((params: SearchFormParams) => any) | undefined;
84
87
  "onChange-params"?: ((params: SearchFormParams) => any) | undefined;
85
88
  }>, {
86
- size: "small" | "medium" | "large";
87
89
  bordered: boolean;
90
+ loading: boolean;
88
91
  formItemList: SearchFormItem[];
89
92
  formParams: SearchFormParams;
90
- loading: boolean;
91
93
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
92
94
  declare const _default: typeof __VLS_export;
93
95
  //#endregion
@@ -1,4 +1,5 @@
1
1
  import { n as ComponentLocale, t as ComponentFeedback } from "./contracts.js";
2
+ import { t as ComponentDensity } from "./density.js";
2
3
  import * as vue from "vue";
3
4
  import { MaybeRefOrGetter, Ref } from "vue";
4
5
  import * as naive_ui0 from "naive-ui";
@@ -32,6 +33,8 @@ interface SearchFormParams {
32
33
  [key: string]: unknown;
33
34
  }
34
35
  interface SearchConfig {
36
+ /** 与 C_Form、C_Table 统一的布局密度,显式 size 和字段 attrs.size 优先。 */
37
+ density?: ComponentDensity;
35
38
  foldThreshold?: number;
36
39
  historyMaxItems?: number;
37
40
  requireValue?: boolean;
@@ -73,21 +76,20 @@ declare const __VLS_export: vue.DefineComponent<FormSearchProps, {
73
76
  cleanFn: () => void;
74
77
  changeFoldState: () => void;
75
78
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
76
- "update:modelValue": (params: SearchFormParams) => any;
77
- reset: (params: SearchFormParams) => any;
78
79
  search: (params: SearchFormParams) => any;
80
+ reset: (params: SearchFormParams) => any;
81
+ "update:modelValue": (params: SearchFormParams) => any;
79
82
  "change-params": (params: SearchFormParams) => any;
80
83
  }, string, vue.PublicProps, Readonly<FormSearchProps> & Readonly<{
81
- "onUpdate:modelValue"?: ((params: SearchFormParams) => any) | undefined;
82
- onReset?: ((params: SearchFormParams) => any) | undefined;
83
84
  onSearch?: ((params: SearchFormParams) => any) | undefined;
85
+ onReset?: ((params: SearchFormParams) => any) | undefined;
86
+ "onUpdate:modelValue"?: ((params: SearchFormParams) => any) | undefined;
84
87
  "onChange-params"?: ((params: SearchFormParams) => any) | undefined;
85
88
  }>, {
86
- size: "small" | "medium" | "large";
87
89
  bordered: boolean;
90
+ loading: boolean;
88
91
  formItemList: SearchFormItem[];
89
92
  formParams: SearchFormParams;
90
- loading: boolean;
91
93
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
92
94
  declare const _default: typeof __VLS_export;
93
95
  //#endregion
@@ -92,29 +92,29 @@ interface SignatureEmits {
92
92
  //#endregion
93
93
  //#region src/components/C_Signature/index.vue.d.ts
94
94
  declare const __VLS_export: vue.DefineComponent<SignatureProps, SignatureExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
95
- change: (data: SignatureStroke[]) => any;
96
95
  error: (error: Error) => any;
96
+ clear: () => any;
97
97
  "start-draw": () => any;
98
98
  drawing: (point: SignaturePoint) => any;
99
99
  "end-draw": (stroke: SignatureStroke) => any;
100
- clear: () => any;
101
100
  undo: () => any;
102
101
  redo: () => any;
102
+ change: (data: SignatureStroke[]) => any;
103
103
  }, string, vue.PublicProps, Readonly<SignatureProps> & Readonly<{
104
- onChange?: ((data: SignatureStroke[]) => any) | undefined;
105
104
  onError?: ((error: Error) => any) | undefined;
105
+ onClear?: (() => any) | undefined;
106
106
  "onStart-draw"?: (() => any) | undefined;
107
107
  onDrawing?: ((point: SignaturePoint) => any) | undefined;
108
108
  "onEnd-draw"?: ((stroke: SignatureStroke) => any) | undefined;
109
- onClear?: (() => any) | undefined;
110
109
  onUndo?: (() => any) | undefined;
111
110
  onRedo?: (() => any) | undefined;
111
+ onChange?: ((data: SignatureStroke[]) => any) | undefined;
112
112
  }>, {
113
- disabled: boolean;
114
- height: number | string;
115
- showToolbar: boolean;
116
113
  width: number | string;
114
+ height: number | string;
115
+ disabled: boolean;
117
116
  readonly: boolean;
117
+ showToolbar: boolean;
118
118
  maxHistory: number;
119
119
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
120
120
  declare const _default: typeof __VLS_export;
@@ -92,29 +92,29 @@ interface SignatureEmits {
92
92
  //#endregion
93
93
  //#region src/components/C_Signature/index.vue.d.ts
94
94
  declare const __VLS_export: vue.DefineComponent<SignatureProps, SignatureExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
95
- change: (data: SignatureStroke[]) => any;
96
95
  error: (error: Error) => any;
96
+ clear: () => any;
97
97
  "start-draw": () => any;
98
98
  drawing: (point: SignaturePoint) => any;
99
99
  "end-draw": (stroke: SignatureStroke) => any;
100
- clear: () => any;
101
100
  undo: () => any;
102
101
  redo: () => any;
102
+ change: (data: SignatureStroke[]) => any;
103
103
  }, string, vue.PublicProps, Readonly<SignatureProps> & Readonly<{
104
- onChange?: ((data: SignatureStroke[]) => any) | undefined;
105
104
  onError?: ((error: Error) => any) | undefined;
105
+ onClear?: (() => any) | undefined;
106
106
  "onStart-draw"?: (() => any) | undefined;
107
107
  onDrawing?: ((point: SignaturePoint) => any) | undefined;
108
108
  "onEnd-draw"?: ((stroke: SignatureStroke) => any) | undefined;
109
- onClear?: (() => any) | undefined;
110
109
  onUndo?: (() => any) | undefined;
111
110
  onRedo?: (() => any) | undefined;
111
+ onChange?: ((data: SignatureStroke[]) => any) | undefined;
112
112
  }>, {
113
- disabled: boolean;
114
- height: number | string;
115
- showToolbar: boolean;
116
113
  width: number | string;
114
+ height: number | string;
115
+ disabled: boolean;
117
116
  readonly: boolean;
117
+ showToolbar: boolean;
118
118
  maxHistory: number;
119
119
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
120
120
  declare const _default: typeof __VLS_export;
@@ -1,22 +1,32 @@
1
1
  import * as vue from "vue";
2
- import { Ref } from "vue";
2
+ import { MaybeRefOrGetter, Ref } from "vue";
3
3
 
4
4
  //#region src/components/C_SplitPane/types.d.ts
5
- type SplitDirection = "horizontal" | "vertical";
6
- type CollapseTarget = "first" | "second";
5
+ type SplitDirection = 'horizontal' | 'vertical';
6
+ type CollapseTarget = 'first' | 'second';
7
7
  interface PanelInfo {
8
+ /** Panel share of the available space, excluding the gutter (0–100). */
8
9
  size: number;
9
10
  collapsed: boolean;
10
11
  }
11
12
  interface SplitPaneProps {
13
+ /** Accessible name of the primary pane / splitter. */
14
+ ariaLabel?: string;
12
15
  direction?: SplitDirection;
16
+ /** Controlled first-panel percentage; use v-model:size to retain layout in the application. */
17
+ size?: number;
13
18
  defaultSize?: number;
14
19
  minSize?: number;
15
20
  maxSize?: number;
21
+ /** Minimum visible panel width/height in px, excluding the gutter. Explicit collapse bypasses it. */
22
+ minFirstSize?: number;
23
+ minSecondSize?: number;
16
24
  disabled?: boolean;
17
25
  collapsible?: boolean;
18
26
  showCollapseButton?: boolean;
27
+ /** Gutter size in px, at least 4. */
19
28
  gutterSize?: number;
29
+ /** Arrow key step in percentage points. Shift multiplies the step by 10. */
20
30
  step?: number;
21
31
  }
22
32
  interface SplitPaneExpose {
@@ -31,62 +41,46 @@ interface SplitPaneExpose {
31
41
  setSize: (size: number) => void;
32
42
  }
33
43
  interface SplitPaneEmits {
44
+ 'update:size': [size: number];
34
45
  resize: [firstSize: number, secondSize: number];
35
46
  collapse: [target: CollapseTarget];
36
47
  expand: [target: CollapseTarget];
37
- "drag-start": [size: number];
38
- "drag-end": [size: number];
48
+ 'drag-start': [size: number];
49
+ 'drag-end': [size: number];
39
50
  }
40
51
  //#endregion
41
52
  //#region src/components/C_SplitPane/index.vue.d.ts
42
- interface Props {
43
- /** 分割方向 */
44
- direction?: SplitDirection;
45
- /** 首面板默认大小(百分比 0-100) */
46
- defaultSize?: number;
47
- /** 首面板最小大小(百分比 0-100) */
48
- minSize?: number;
49
- /** 首面板最大大小(百分比 0-100) */
50
- maxSize?: number;
51
- /** 是否禁用拖拽调整 */
52
- disabled?: boolean;
53
- /** 是否可折叠 */
54
- collapsible?: boolean;
55
- /** 是否显示折叠按钮 */
56
- showCollapseButton?: boolean;
57
- /** 分割线宽度(px) */
58
- gutterSize?: number;
59
- /** 键盘微调步长(百分比) */
60
- step?: number;
61
- }
62
- declare var __VLS_1: {}, __VLS_13: {};
63
- type __VLS_Slots = {} & {
64
- first?: (props: typeof __VLS_1) => any;
65
- } & {
66
- second?: (props: typeof __VLS_13) => any;
53
+ type __VLS_Slots = {
54
+ first(props: PanelInfo): unknown;
55
+ second(props: PanelInfo): unknown;
67
56
  };
68
- declare const __VLS_base: vue.DefineComponent<Props, SplitPaneExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
57
+ declare const __VLS_base: vue.DefineComponent<SplitPaneProps, SplitPaneExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
69
58
  expand: (target: CollapseTarget) => any;
70
59
  collapse: (target: CollapseTarget) => any;
60
+ resize: (firstSize: number, secondSize: number) => any;
61
+ "update:size": (size: number) => any;
71
62
  "drag-start": (size: number) => any;
72
63
  "drag-end": (size: number) => any;
73
- resize: (firstSize: number, secondSize: number) => any;
74
- }, string, vue.PublicProps, Readonly<Props> & Readonly<{
64
+ }, string, vue.PublicProps, Readonly<SplitPaneProps> & Readonly<{
75
65
  onExpand?: ((target: CollapseTarget) => any) | undefined;
76
66
  onCollapse?: ((target: CollapseTarget) => any) | undefined;
67
+ onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
68
+ "onUpdate:size"?: ((size: number) => any) | undefined;
77
69
  "onDrag-start"?: ((size: number) => any) | undefined;
78
70
  "onDrag-end"?: ((size: number) => any) | undefined;
79
- onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
80
71
  }>, {
81
72
  disabled: boolean;
82
- direction: SplitDirection;
83
- step: number;
84
- collapsible: boolean;
85
73
  maxSize: number;
74
+ ariaLabel: string;
75
+ direction: SplitDirection;
86
76
  defaultSize: number;
87
77
  minSize: number;
78
+ minFirstSize: number;
79
+ minSecondSize: number;
80
+ collapsible: boolean;
88
81
  showCollapseButton: boolean;
89
82
  gutterSize: number;
83
+ step: number;
90
84
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
91
85
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
92
86
  declare const _default: typeof __VLS_export;
@@ -98,45 +92,40 @@ type __VLS_WithSlots<T, S> = T & {
98
92
  //#endregion
99
93
  //#region src/components/C_SplitPane/composables/useSplitResize.d.ts
100
94
  interface UseSplitResizeOptions {
101
- /** 容器引用 */
102
95
  containerRef: Ref<HTMLElement | null>;
103
- /** 分割方向 */
104
96
  direction: Ref<SplitDirection>;
105
- /** 首面板默认大小(百分比) */
106
- defaultSize: number;
107
- /** 首面板最小大小(百分比) */
108
- minSize: number;
109
- /** 首面板最大大小(百分比) */
110
- maxSize: number;
111
- /** 是否禁用 */
97
+ size?: MaybeRefOrGetter<number | undefined>;
98
+ defaultSize: MaybeRefOrGetter<number>;
99
+ minSize: MaybeRefOrGetter<number>;
100
+ maxSize: MaybeRefOrGetter<number>;
101
+ minFirstSize?: MaybeRefOrGetter<number>;
102
+ minSecondSize?: MaybeRefOrGetter<number>;
103
+ gutterSize?: MaybeRefOrGetter<number>;
112
104
  disabled: Ref<boolean>;
113
- /** 是否可折叠 */
114
105
  collapsible: Ref<boolean>;
115
- /** 键盘微调步长(百分比) */
116
- step: number;
117
- /** resize 回调 */
106
+ step: MaybeRefOrGetter<number>;
107
+ onUpdateSize?: (size: number) => void;
118
108
  onResize?: (firstSize: number, secondSize: number) => void;
119
- /** 折叠回调 */
120
109
  onCollapse?: (target: CollapseTarget) => void;
121
- /** 展开回调 */
122
110
  onExpand?: (target: CollapseTarget) => void;
123
- /** 拖拽开始回调 */
124
111
  onDragStart?: (size: number) => void;
125
- /** 拖拽结束回调 */
126
112
  onDragEnd?: (size: number) => void;
127
113
  }
128
- /**
129
- * 分割面板拖拽调整逻辑
130
- */
114
+ /** Manage percentage state, physical panel limits and accessible resizing without table coupling. */
131
115
  declare function useSplitResize(options: UseSplitResizeOptions): {
132
- panelSize: Ref<number, number>;
116
+ panelSize: vue.ComputedRef<number>;
133
117
  isDragging: Ref<boolean, boolean>;
134
- collapsedTarget: Ref<CollapseTarget | null, CollapseTarget | null>;
118
+ collapsedTarget: vue.ComputedRef<CollapseTarget | null>;
135
119
  isFirstCollapsed: vue.ComputedRef<boolean>;
136
120
  isSecondCollapsed: vue.ComputedRef<boolean>;
137
- handleMouseDown: (e: MouseEvent | TouchEvent) => void;
121
+ bounds: vue.ComputedRef<{
122
+ min: number;
123
+ max: number;
124
+ }>;
125
+ gutterSize: vue.ComputedRef<number>;
126
+ handleMouseDown: (event: MouseEvent | TouchEvent | PointerEvent) => void;
138
127
  handleDoubleClick: () => void;
139
- handleKeyDown: (e: KeyboardEvent) => void;
128
+ handleKeyDown: (event: KeyboardEvent) => void;
140
129
  collapse: (target?: CollapseTarget) => void;
141
130
  expand: () => void;
142
131
  toggle: (target?: CollapseTarget) => void;
@@ -1,22 +1,32 @@
1
1
  import * as vue from "vue";
2
- import { Ref } from "vue";
2
+ import { MaybeRefOrGetter, Ref } from "vue";
3
3
 
4
4
  //#region src/components/C_SplitPane/types.d.ts
5
- type SplitDirection = "horizontal" | "vertical";
6
- type CollapseTarget = "first" | "second";
5
+ type SplitDirection = 'horizontal' | 'vertical';
6
+ type CollapseTarget = 'first' | 'second';
7
7
  interface PanelInfo {
8
+ /** Panel share of the available space, excluding the gutter (0–100). */
8
9
  size: number;
9
10
  collapsed: boolean;
10
11
  }
11
12
  interface SplitPaneProps {
13
+ /** Accessible name of the primary pane / splitter. */
14
+ ariaLabel?: string;
12
15
  direction?: SplitDirection;
16
+ /** Controlled first-panel percentage; use v-model:size to retain layout in the application. */
17
+ size?: number;
13
18
  defaultSize?: number;
14
19
  minSize?: number;
15
20
  maxSize?: number;
21
+ /** Minimum visible panel width/height in px, excluding the gutter. Explicit collapse bypasses it. */
22
+ minFirstSize?: number;
23
+ minSecondSize?: number;
16
24
  disabled?: boolean;
17
25
  collapsible?: boolean;
18
26
  showCollapseButton?: boolean;
27
+ /** Gutter size in px, at least 4. */
19
28
  gutterSize?: number;
29
+ /** Arrow key step in percentage points. Shift multiplies the step by 10. */
20
30
  step?: number;
21
31
  }
22
32
  interface SplitPaneExpose {
@@ -31,62 +41,46 @@ interface SplitPaneExpose {
31
41
  setSize: (size: number) => void;
32
42
  }
33
43
  interface SplitPaneEmits {
44
+ 'update:size': [size: number];
34
45
  resize: [firstSize: number, secondSize: number];
35
46
  collapse: [target: CollapseTarget];
36
47
  expand: [target: CollapseTarget];
37
- "drag-start": [size: number];
38
- "drag-end": [size: number];
48
+ 'drag-start': [size: number];
49
+ 'drag-end': [size: number];
39
50
  }
40
51
  //#endregion
41
52
  //#region src/components/C_SplitPane/index.vue.d.ts
42
- interface Props {
43
- /** 分割方向 */
44
- direction?: SplitDirection;
45
- /** 首面板默认大小(百分比 0-100) */
46
- defaultSize?: number;
47
- /** 首面板最小大小(百分比 0-100) */
48
- minSize?: number;
49
- /** 首面板最大大小(百分比 0-100) */
50
- maxSize?: number;
51
- /** 是否禁用拖拽调整 */
52
- disabled?: boolean;
53
- /** 是否可折叠 */
54
- collapsible?: boolean;
55
- /** 是否显示折叠按钮 */
56
- showCollapseButton?: boolean;
57
- /** 分割线宽度(px) */
58
- gutterSize?: number;
59
- /** 键盘微调步长(百分比) */
60
- step?: number;
61
- }
62
- declare var __VLS_1: {}, __VLS_13: {};
63
- type __VLS_Slots = {} & {
64
- first?: (props: typeof __VLS_1) => any;
65
- } & {
66
- second?: (props: typeof __VLS_13) => any;
53
+ type __VLS_Slots = {
54
+ first(props: PanelInfo): unknown;
55
+ second(props: PanelInfo): unknown;
67
56
  };
68
- declare const __VLS_base: vue.DefineComponent<Props, SplitPaneExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
57
+ declare const __VLS_base: vue.DefineComponent<SplitPaneProps, SplitPaneExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
69
58
  expand: (target: CollapseTarget) => any;
70
59
  collapse: (target: CollapseTarget) => any;
60
+ resize: (firstSize: number, secondSize: number) => any;
61
+ "update:size": (size: number) => any;
71
62
  "drag-start": (size: number) => any;
72
63
  "drag-end": (size: number) => any;
73
- resize: (firstSize: number, secondSize: number) => any;
74
- }, string, vue.PublicProps, Readonly<Props> & Readonly<{
64
+ }, string, vue.PublicProps, Readonly<SplitPaneProps> & Readonly<{
75
65
  onExpand?: ((target: CollapseTarget) => any) | undefined;
76
66
  onCollapse?: ((target: CollapseTarget) => any) | undefined;
67
+ onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
68
+ "onUpdate:size"?: ((size: number) => any) | undefined;
77
69
  "onDrag-start"?: ((size: number) => any) | undefined;
78
70
  "onDrag-end"?: ((size: number) => any) | undefined;
79
- onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
80
71
  }>, {
81
72
  disabled: boolean;
82
- direction: SplitDirection;
83
- step: number;
84
- collapsible: boolean;
85
73
  maxSize: number;
74
+ ariaLabel: string;
75
+ direction: SplitDirection;
86
76
  defaultSize: number;
87
77
  minSize: number;
78
+ minFirstSize: number;
79
+ minSecondSize: number;
80
+ collapsible: boolean;
88
81
  showCollapseButton: boolean;
89
82
  gutterSize: number;
83
+ step: number;
90
84
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
91
85
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
92
86
  declare const _default: typeof __VLS_export;
@@ -98,45 +92,40 @@ type __VLS_WithSlots<T, S> = T & {
98
92
  //#endregion
99
93
  //#region src/components/C_SplitPane/composables/useSplitResize.d.ts
100
94
  interface UseSplitResizeOptions {
101
- /** 容器引用 */
102
95
  containerRef: Ref<HTMLElement | null>;
103
- /** 分割方向 */
104
96
  direction: Ref<SplitDirection>;
105
- /** 首面板默认大小(百分比) */
106
- defaultSize: number;
107
- /** 首面板最小大小(百分比) */
108
- minSize: number;
109
- /** 首面板最大大小(百分比) */
110
- maxSize: number;
111
- /** 是否禁用 */
97
+ size?: MaybeRefOrGetter<number | undefined>;
98
+ defaultSize: MaybeRefOrGetter<number>;
99
+ minSize: MaybeRefOrGetter<number>;
100
+ maxSize: MaybeRefOrGetter<number>;
101
+ minFirstSize?: MaybeRefOrGetter<number>;
102
+ minSecondSize?: MaybeRefOrGetter<number>;
103
+ gutterSize?: MaybeRefOrGetter<number>;
112
104
  disabled: Ref<boolean>;
113
- /** 是否可折叠 */
114
105
  collapsible: Ref<boolean>;
115
- /** 键盘微调步长(百分比) */
116
- step: number;
117
- /** resize 回调 */
106
+ step: MaybeRefOrGetter<number>;
107
+ onUpdateSize?: (size: number) => void;
118
108
  onResize?: (firstSize: number, secondSize: number) => void;
119
- /** 折叠回调 */
120
109
  onCollapse?: (target: CollapseTarget) => void;
121
- /** 展开回调 */
122
110
  onExpand?: (target: CollapseTarget) => void;
123
- /** 拖拽开始回调 */
124
111
  onDragStart?: (size: number) => void;
125
- /** 拖拽结束回调 */
126
112
  onDragEnd?: (size: number) => void;
127
113
  }
128
- /**
129
- * 分割面板拖拽调整逻辑
130
- */
114
+ /** Manage percentage state, physical panel limits and accessible resizing without table coupling. */
131
115
  declare function useSplitResize(options: UseSplitResizeOptions): {
132
- panelSize: Ref<number, number>;
116
+ panelSize: vue.ComputedRef<number>;
133
117
  isDragging: Ref<boolean, boolean>;
134
- collapsedTarget: Ref<CollapseTarget | null, CollapseTarget | null>;
118
+ collapsedTarget: vue.ComputedRef<CollapseTarget | null>;
135
119
  isFirstCollapsed: vue.ComputedRef<boolean>;
136
120
  isSecondCollapsed: vue.ComputedRef<boolean>;
137
- handleMouseDown: (e: MouseEvent | TouchEvent) => void;
121
+ bounds: vue.ComputedRef<{
122
+ min: number;
123
+ max: number;
124
+ }>;
125
+ gutterSize: vue.ComputedRef<number>;
126
+ handleMouseDown: (event: MouseEvent | TouchEvent | PointerEvent) => void;
138
127
  handleDoubleClick: () => void;
139
- handleKeyDown: (e: KeyboardEvent) => void;
128
+ handleKeyDown: (event: KeyboardEvent) => void;
140
129
  collapse: (target?: CollapseTarget) => void;
141
130
  expand: () => void;
142
131
  toggle: (target?: CollapseTarget) => void;