hys-ui 0.3.0 → 0.5.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 (168) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +68 -73
  3. package/dist/components/HysAnimatedNumber/HysAnimatedNumber.vue.js +5 -41
  4. package/dist/components/HysAnimatedNumber/HysAnimatedNumber2.vue.js +467 -2
  5. package/dist/components/HysAnimatedNumber/NumberAnimationCanvas/NumberAnimationCanvas.vue.js +7 -0
  6. package/dist/components/HysAnimatedNumber/NumberAnimationCanvas/NumberAnimationCanvas2.vue.js +166 -0
  7. package/dist/components/HysAnimatedNumber/NumberDigits/NumberDigits.vue.js +7 -0
  8. package/dist/components/HysAnimatedNumber/NumberDigits/NumberDigits2.vue.js +105 -0
  9. package/dist/components/HysAnimatedNumber/animation/digital.js +186 -0
  10. package/dist/components/HysAnimatedNumber/animation/morph.js +110 -0
  11. package/dist/components/HysAnimatedNumber/animation/paint.js +34 -0
  12. package/dist/components/HysAnimatedNumber/animation/particles.js +51 -0
  13. package/dist/components/HysAnimatedNumber/animation/paths.js +165 -0
  14. package/dist/components/HysAnimatedNumber/animation/physics.js +66 -0
  15. package/dist/components/HysAnimatedNumber/animation/render.js +89 -0
  16. package/dist/components/HysAnimatedNumber/animation/reveal.js +125 -0
  17. package/dist/components/HysAnimatedNumber/animation/rolling.js +66 -0
  18. package/dist/components/HysAnimatedNumber/animation/scenarios.js +217 -0
  19. package/dist/components/HysAnimatedNumber/animation/spatial.js +112 -0
  20. package/dist/components/HysAnimatedNumber/useNumberCountdown.js +58 -0
  21. package/dist/components/HysAnimatedNumber/useNumberVisuals.js +60 -0
  22. package/dist/components/HysButton/HysButton.vue.js +2 -2
  23. package/dist/components/HysButton/HysButton2.vue.js +227 -60
  24. package/dist/components/HysButtonGroup/HysButtonGroup.vue.js +7 -0
  25. package/dist/components/HysButtonGroup/HysButtonGroup2.vue.js +51 -0
  26. package/dist/components/HysFormItem/HysFormItem.vue.js +1 -1
  27. package/dist/components/HysFormItem/HysFormItem2.vue.js +231 -229
  28. package/dist/components/HysInput/HysInput.vue.js +2 -2
  29. package/dist/components/HysInput/HysInput2.vue.js +327 -274
  30. package/dist/components/HysMention/HysMention.vue.js +1 -1
  31. package/dist/components/HysMention/HysMention2.vue.js +1092 -154
  32. package/dist/components/HysModal/HysModal.vue.js +3 -3
  33. package/dist/components/HysModal/HysModal2.vue.js +81 -80
  34. package/dist/components/HysPagination/HysPagination.vue.js +2 -2
  35. package/dist/components/HysPagination/HysPagination2.vue.js +243 -180
  36. package/dist/components/HysSearch/HysSearch.vue.js +5 -82
  37. package/dist/components/HysSearch/HysSearch2.vue.js +176 -2
  38. package/dist/components/HysSelect/HysSelect.vue.js +2 -2
  39. package/dist/components/HysSelect/HysSelect2.vue.js +472 -443
  40. package/dist/components/HysSplitPane/HysSplitPane.vue.js +315 -58
  41. package/dist/components/HysSplitPane/HysSplitPane3.vue.js +5 -0
  42. package/dist/components/HysTable/HysTable.vue.js +2 -2
  43. package/dist/components/HysTable/HysTable2.vue.js +1418 -1150
  44. package/dist/components/HysTextarea/HysTextarea.vue.js +56 -32
  45. package/dist/components/HysTour/HysTour.vue.js +291 -67
  46. package/dist/components/HysTour/HysTour3.vue.js +5 -0
  47. package/dist/composables/animatedNumberDigits.js +106 -0
  48. package/dist/composables/animatedNumberFormat.js +222 -0
  49. package/dist/composables/animatedNumberTiming.js +66 -0
  50. package/dist/composables/buttonGroup.js +12 -0
  51. package/dist/composables/floatingPosition.js +18 -0
  52. package/dist/composables/mentionDocument.js +79 -0
  53. package/dist/composables/mentionEditor.js +58 -0
  54. package/dist/composables/numberAnimation.js +72 -0
  55. package/dist/composables/numberAnimationCatalog.js +301 -0
  56. package/dist/composables/numberAnimationSequence.js +45 -0
  57. package/dist/composables/selectOptions.js +44 -38
  58. package/dist/composables/splitPaneSizes.js +58 -0
  59. package/dist/composables/table.js +128 -105
  60. package/dist/composables/textInput.js +23 -14
  61. package/dist/composables/useDialog.js +50 -50
  62. package/dist/composables/useFloating.js +107 -103
  63. package/dist/composables/useHysAnimatedNumber.js +264 -0
  64. package/dist/composables/useHysNumberAnimationGroup.js +23 -0
  65. package/dist/composables/useMentionCaret.js +81 -0
  66. package/dist/composables/useMentionList.js +81 -0
  67. package/dist/composables/useMentionModel.js +90 -0
  68. package/dist/composables/useMentionOptions.js +421 -0
  69. package/dist/composables/useSplitPaneDrag.js +52 -0
  70. package/dist/composables/useSplitPaneStorage.js +38 -0
  71. package/dist/composables/useTable.js +344 -312
  72. package/dist/composables/useTableSticky.js +79 -0
  73. package/dist/composables/useTextareaSize.js +62 -46
  74. package/dist/composables/useTourLayout.js +129 -0
  75. package/dist/config.js +11 -11
  76. package/dist/index.js +183 -152
  77. package/dist/internal/MultiSplitPane.vue.js +305 -0
  78. package/dist/internal/MultiSplitPane2.vue.js +4 -0
  79. package/dist/style.css +1 -1
  80. package/dist/types/components/HysAnimatedNumber/HysAnimatedNumber.vue.d.ts +99 -6
  81. package/dist/types/components/HysAnimatedNumber/NumberAnimationCanvas/NumberAnimationCanvas.vue.d.ts +19 -0
  82. package/dist/types/components/HysAnimatedNumber/NumberDigits/NumberDigits.vue.d.ts +31 -0
  83. package/dist/types/components/HysAnimatedNumber/animation/digital.d.ts +3 -0
  84. package/dist/types/components/HysAnimatedNumber/animation/morph.d.ts +2 -0
  85. package/dist/types/components/HysAnimatedNumber/animation/paint.d.ts +44 -0
  86. package/dist/types/components/HysAnimatedNumber/animation/particles.d.ts +5 -0
  87. package/dist/types/components/HysAnimatedNumber/animation/paths.d.ts +12 -0
  88. package/dist/types/components/HysAnimatedNumber/animation/physics.d.ts +2 -0
  89. package/dist/types/components/HysAnimatedNumber/animation/render.d.ts +2 -0
  90. package/dist/types/components/HysAnimatedNumber/animation/reveal.d.ts +2 -0
  91. package/dist/types/components/HysAnimatedNumber/animation/rolling.d.ts +2 -0
  92. package/dist/types/components/HysAnimatedNumber/animation/scenarios.d.ts +4 -0
  93. package/dist/types/components/HysAnimatedNumber/animation/spatial.d.ts +2 -0
  94. package/dist/types/components/HysAnimatedNumber/useNumberCountdown.d.ts +8 -0
  95. package/dist/types/components/HysAnimatedNumber/useNumberVisuals.d.ts +12 -0
  96. package/dist/types/components/HysAutocomplete/HysAutocomplete.vue.d.ts +12 -3
  97. package/dist/types/components/HysAvatarGroup/HysAvatarGroup.vue.d.ts +2 -2
  98. package/dist/types/components/HysButton/HysButton.vue.d.ts +82 -22
  99. package/dist/types/components/HysButtonGroup/HysButtonGroup.vue.d.ts +30 -0
  100. package/dist/types/components/HysCard/HysCard.vue.d.ts +1 -1
  101. package/dist/types/components/HysCascader/HysCascader.vue.d.ts +3 -3
  102. package/dist/types/components/HysCascader/HysCascaderColumn.vue.d.ts +3 -3
  103. package/dist/types/components/HysColorPicker/HysColorPicker.vue.d.ts +3 -3
  104. package/dist/types/components/HysContextMenu/HysMenuPanel.vue.d.ts +2 -2
  105. package/dist/types/components/HysDatePicker/HysDatePicker.vue.d.ts +3 -3
  106. package/dist/types/components/HysDatePicker/HysDatePickerControl.vue.d.ts +6 -6
  107. package/dist/types/components/HysDateRangePicker/HysDateRangePicker.vue.d.ts +3 -3
  108. package/dist/types/components/HysDrawer/HysDrawer.vue.d.ts +2 -2
  109. package/dist/types/components/HysFormItem/HysFormItem.vue.d.ts +1 -1
  110. package/dist/types/components/HysInput/HysInput.vue.d.ts +13 -1
  111. package/dist/types/components/HysMention/HysMention.vue.d.ts +91 -40
  112. package/dist/types/components/HysModal/HysModal.vue.d.ts +1 -1
  113. package/dist/types/components/HysNumberInput/HysNumberInput.vue.d.ts +2 -2
  114. package/dist/types/components/HysPagination/HysPagination.vue.d.ts +55 -4
  115. package/dist/types/components/HysPopover/HysPopover.vue.d.ts +1 -1
  116. package/dist/types/components/HysRating/HysRating.vue.d.ts +1 -1
  117. package/dist/types/components/HysSearch/HysSearch.vue.d.ts +46 -8
  118. package/dist/types/components/HysSelect/HysSelect.vue.d.ts +6 -1
  119. package/dist/types/components/HysSkeleton/HysSkeleton.vue.d.ts +2 -2
  120. package/dist/types/components/HysSplitPane/HysSplitPane.vue.d.ts +125 -14
  121. package/dist/types/components/HysSteps/HysSteps.vue.d.ts +1 -1
  122. package/dist/types/components/HysTable/HysTable.vue.d.ts +1740 -3
  123. package/dist/types/components/HysTabs/HysTabs.vue.d.ts +1 -1
  124. package/dist/types/components/HysTagInput/HysTagInput.vue.d.ts +1 -1
  125. package/dist/types/components/HysTextarea/HysTextarea.vue.d.ts +13 -2
  126. package/dist/types/components/HysToast/HysToast.vue.d.ts +1 -1
  127. package/dist/types/components/HysTooltip/HysTooltip.vue.d.ts +1 -1
  128. package/dist/types/components/HysTour/HysTour.vue.d.ts +46 -9
  129. package/dist/types/components/HysTreeSelect/HysTreeSelect.vue.d.ts +3 -3
  130. package/dist/types/components/HysUpload/HysUpload.vue.d.ts +2 -2
  131. package/dist/types/composables/animatedNumber.d.ts +220 -0
  132. package/dist/types/composables/animatedNumberDigits.d.ts +32 -0
  133. package/dist/types/composables/animatedNumberFormat.d.ts +16 -0
  134. package/dist/types/composables/animatedNumberTiming.d.ts +21 -0
  135. package/dist/types/composables/buttonGroup.d.ts +9 -0
  136. package/dist/types/composables/drawer.d.ts +1 -1
  137. package/dist/types/composables/floatingPosition.d.ts +14 -0
  138. package/dist/types/composables/mention.d.ts +284 -0
  139. package/dist/types/composables/mentionDocument.d.ts +15 -0
  140. package/dist/types/composables/mentionEditor.d.ts +7 -0
  141. package/dist/types/composables/modal.d.ts +2 -0
  142. package/dist/types/composables/numberAnimation.d.ts +29 -0
  143. package/dist/types/composables/numberAnimationCatalog.d.ts +58 -0
  144. package/dist/types/composables/numberAnimationSequence.d.ts +13 -0
  145. package/dist/types/composables/selectOptions.d.ts +5 -0
  146. package/dist/types/composables/splitPaneSizes.d.ts +11 -0
  147. package/dist/types/composables/table.d.ts +116 -6
  148. package/dist/types/composables/textInput.d.ts +39 -4
  149. package/dist/types/composables/tour.d.ts +68 -0
  150. package/dist/types/composables/useFloating.d.ts +1 -1
  151. package/dist/types/composables/useHysAnimatedNumber.d.ts +37 -0
  152. package/dist/types/composables/useHysNumberAnimationGroup.d.ts +4 -0
  153. package/dist/types/composables/useMentionCaret.d.ts +6 -0
  154. package/dist/types/composables/useMentionList.d.ts +23 -0
  155. package/dist/types/composables/useMentionModel.d.ts +14 -0
  156. package/dist/types/composables/useMentionOptions.d.ts +26 -0
  157. package/dist/types/composables/useSplitPaneDrag.d.ts +14 -0
  158. package/dist/types/composables/useSplitPaneStorage.d.ts +4 -0
  159. package/dist/types/composables/useTable.d.ts +7 -3
  160. package/dist/types/composables/useTableSticky.d.ts +22 -0
  161. package/dist/types/composables/useTextareaSize.d.ts +5 -2
  162. package/dist/types/composables/useTourLayout.d.ts +33 -0
  163. package/dist/types/config.d.ts +1 -0
  164. package/dist/types/index.d.ts +46 -1
  165. package/dist/types/internal/MultiSplitPane.vue.d.ts +54 -0
  166. package/package.json +3 -2
  167. package/dist/components/HysSplitPane/HysSplitPane2.vue.js +0 -4
  168. package/dist/components/HysTour/HysTour2.vue.js +0 -4
@@ -1,5 +1,5 @@
1
1
  import type { HysPopupTransition } from '../motion/popup';
2
- import type { CSSProperties, HTMLAttributes, VNodeChild } from "vue";
2
+ import type { Component, CSSProperties, HTMLAttributes, VNodeChild } from "vue";
3
3
  import type { Placement } from "./useFloating";
4
4
  export type HysTableKey = string | number;
5
5
  export type HysTableDirection = "asc" | "desc";
@@ -20,6 +20,22 @@ export interface HysTableSelectionColumn {
20
20
  fixed?: boolean | "left" | "right";
21
21
  align?: "left" | "center" | "right";
22
22
  }
23
+ export interface HysTableRowSelectionOptions {
24
+ range?: boolean;
25
+ /** 只允许指定行绕过行级选择限制。 */
26
+ ignoreSelectable?: boolean;
27
+ }
28
+ export interface HysTableSelectionAction<T extends object = Record<string, unknown>> {
29
+ key: string;
30
+ label: string;
31
+ disabled?: boolean;
32
+ select: (context: {
33
+ rows: readonly T[];
34
+ keys: readonly HysTableKey[];
35
+ selectedKeys: readonly HysTableKey[];
36
+ setSelected: (keys: readonly HysTableKey[]) => Promise<boolean>;
37
+ }) => void | Promise<void>;
38
+ }
23
39
  export interface HysTableFilterConfirmOptions {
24
40
  closeDropdown?: boolean;
25
41
  }
@@ -30,12 +46,26 @@ export interface HysTableScrollRowOptions {
30
46
  behavior?: ScrollBehavior;
31
47
  block?: "start" | "center" | "end" | "nearest";
32
48
  }
49
+ export interface HysTableStickyOptions {
50
+ offsetHeader?: number;
51
+ offsetScroll?: number;
52
+ getContainer?: () => HTMLElement | Window | null | undefined;
53
+ }
33
54
  export interface HysTableFilter {
34
55
  label: string;
35
56
  value: HysTableFilterValue;
36
57
  disabled?: boolean;
37
58
  children?: readonly HysTableFilter[];
38
59
  }
60
+ export interface HysTableFilterDropdownContext<T extends object = Record<string, unknown>> {
61
+ column: HysTableColumn<T>;
62
+ open: boolean;
63
+ values: readonly HysTableFilterValue[];
64
+ setValues: (values: readonly HysTableFilterValue[]) => void;
65
+ confirm: (options?: HysTableFilterConfirmOptions) => void;
66
+ clear: (options?: HysTableFilterResetOptions) => void;
67
+ close: () => void;
68
+ }
39
69
  export type HysTableElementAttrs = HTMLAttributes & Record<string, unknown>;
40
70
  export type HysTablePaginationPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
41
71
  export interface HysTableCellContext<T extends object = Record<string, unknown>> {
@@ -45,6 +75,28 @@ export interface HysTableCellContext<T extends object = Record<string, unknown>>
45
75
  rowIndex: number;
46
76
  columnIndex: number;
47
77
  }
78
+ export interface HysTableOverflowTooltipOptions {
79
+ placement?: Placement;
80
+ effect?: "light" | "dark";
81
+ maxWidth?: number | string;
82
+ offset?: number;
83
+ hideDelay?: number;
84
+ enterable?: boolean;
85
+ }
86
+ export interface HysTableComponents {
87
+ table?: Component;
88
+ header?: {
89
+ wrapper?: Component;
90
+ row?: Component;
91
+ cell?: Component;
92
+ };
93
+ body?: {
94
+ wrapper?: Component;
95
+ row?: Component;
96
+ cell?: Component;
97
+ rowHeaderCell?: Component;
98
+ };
99
+ }
48
100
  export interface HysTableColumn<T extends object = any> {
49
101
  key: string;
50
102
  label: string;
@@ -57,11 +109,18 @@ export interface HysTableColumn<T extends object = any> {
57
109
  fixed?: boolean | "left" | "right";
58
110
  align?: "left" | "center" | "right";
59
111
  headerAlign?: "left" | "center" | "right";
112
+ /** 合并同一层、同一固定区域内相邻的叶列表头。0 隐藏标题。 */
113
+ headerColSpan?: number;
114
+ /** 表头插槽未提供内容时渲染列标题。 */
115
+ renderHeader?: (column: HysTableColumn<T>, sorts: readonly HysTableSort[]) => VNodeChild;
60
116
  sortable?: boolean | "custom";
61
117
  sorter?: (a: T, b: T) => number;
62
118
  sortBy?: string | ((row: T) => unknown) | readonly (string | ((row: T) => unknown))[];
63
119
  sortOrders?: readonly (HysTableDirection | null)[];
64
120
  defaultSortOrder?: HysTableDirection;
121
+ /** 受控排序方向,null 清除该列排序。表格级 sort 和 sorts 优先。 */
122
+ sortOrder?: HysTableDirection | null;
123
+ showSorterTooltip?: boolean | HysTableOverflowTooltipOptions;
65
124
  sortPriority?: number;
66
125
  filters?: readonly HysTableFilter[];
67
126
  filterable?: boolean;
@@ -69,11 +128,25 @@ export interface HysTableColumn<T extends object = any> {
69
128
  filterMode?: "menu" | "tree";
70
129
  filterSearch?: boolean | ((query: string, option: HysTableFilter) => boolean);
71
130
  defaultFilterValue?: readonly HysTableFilterValue[];
131
+ /** 受控筛选值,空数组清除该列筛选。表格级 filters 优先。 */
132
+ filteredValue?: readonly HysTableFilterValue[];
133
+ filtered?: boolean;
134
+ filterDropdownOpen?: boolean;
135
+ onFilterDropdownOpenChange?: (open: boolean) => void;
136
+ filterPlacement?: Placement;
137
+ renderFilterIcon?: (context: {
138
+ column: HysTableColumn<T>;
139
+ filtered: boolean;
140
+ open: boolean;
141
+ }) => VNodeChild;
142
+ renderFilterDropdown?: (context: HysTableFilterDropdownContext<T>) => VNodeChild;
72
143
  filterResetToDefault?: boolean;
73
144
  filterMethod?: (value: HysTableFilterValue, row: T, column: HysTableColumn<T>) => boolean;
74
145
  formatter?: (row: T, column: HysTableColumn<T>, value: unknown, index: number) => VNodeChild;
75
- ellipsis?: boolean;
76
- showOverflowTooltip?: boolean;
146
+ ellipsis?: boolean | {
147
+ showTitle?: boolean;
148
+ };
149
+ showOverflowTooltip?: boolean | HysTableOverflowTooltipOptions;
77
150
  tooltipFormatter?: (context: HysTableCellContext<T>) => VNodeChild;
78
151
  className?: string;
79
152
  headerClassName?: string;
@@ -91,12 +164,20 @@ export interface HysTablePagination {
91
164
  position?: readonly HysTablePaginationPosition[];
92
165
  page?: number;
93
166
  pageSize?: number;
167
+ defaultPage?: number;
168
+ defaultPageSize?: number;
94
169
  total?: number;
170
+ /** 服务端分页的总页数,可在总记录数未知时使用。 */
171
+ pageCount?: number;
95
172
  pageSizeOptions?: number[];
96
173
  showSizeChanger?: boolean;
97
174
  showQuickJumper?: boolean;
98
175
  showTotal?: boolean;
99
176
  compact?: boolean;
177
+ layout?: string;
178
+ size?: "sm" | "md" | "lg";
179
+ responsive?: boolean;
180
+ siblingCount?: number;
100
181
  hideOnSinglePage?: boolean;
101
182
  }
102
183
  export interface HysTableQuery<T extends object = Record<string, unknown>> {
@@ -131,6 +212,8 @@ export interface HysTableLocale {
131
212
  resizeColumn: string;
132
213
  sortAsc: string;
133
214
  sortDesc: string;
215
+ sortClear?: string;
216
+ stickyScrollLabel?: string;
134
217
  filterSearch?: string;
135
218
  noFilterMatch?: string;
136
219
  invertSelection?: string;
@@ -141,6 +224,9 @@ export interface HysTableLocale {
141
224
  perPage: string;
142
225
  jump: string;
143
226
  page: string;
227
+ pageItem: string;
228
+ navigation: string;
229
+ confirm: string;
144
230
  first: string;
145
231
  previous: string;
146
232
  next: string;
@@ -153,9 +239,13 @@ export interface HysTableProps<T extends object> {
153
239
  locale?: Partial<HysTableLocale>;
154
240
  columns: readonly HysTableColumn<T>[];
155
241
  rows: readonly T[];
242
+ /** 替换表格的结构组件。自定义组件需转发属性与默认插槽,并保留原生表格元素。 */
243
+ components?: HysTableComponents;
156
244
  rowKey?: string | ((row: T) => HysTableKey);
157
245
  emptyText?: string;
158
246
  loading?: boolean;
247
+ /** replace 用加载行替换数据,overlay 保留当前行并覆盖加载提示。 */
248
+ loadingMode?: "replace" | "overlay";
159
249
  disabled?: boolean;
160
250
  striped?: boolean;
161
251
  bordered?: boolean;
@@ -165,9 +255,15 @@ export interface HysTableProps<T extends object> {
165
255
  height?: number | string;
166
256
  maxHeight?: number | string;
167
257
  stickyHeader?: boolean;
258
+ /** 随页面或自定义容器滚动固定表头和水平滚动条。 */
259
+ sticky?: boolean | HysTableStickyOptions;
168
260
  showHeader?: boolean;
169
261
  fit?: boolean;
262
+ /** 表格横向最小宽度,用于控制滚动区域内的列布局。 */
263
+ scrollWidth?: number | string;
170
264
  scrollbarAlwaysOn?: boolean;
265
+ /** 使用浏览器默认的滚动条样式。 */
266
+ nativeScrollbar?: boolean;
171
267
  scrollbarTabindex?: number | string;
172
268
  headerRowClassName?: string | ((columns: readonly HysTableColumn<T>[], level: number) => string);
173
269
  headerRowStyle?: CSSProperties | ((columns: readonly HysTableColumn<T>[], level: number) => CSSProperties);
@@ -188,7 +284,7 @@ export interface HysTableProps<T extends object> {
188
284
  reserveSelection?: boolean;
189
285
  checkStrictly?: boolean;
190
286
  selectOnIndeterminate?: boolean;
191
- selectionActions?: boolean;
287
+ selectionActions?: boolean | readonly HysTableSelectionAction<T>[];
192
288
  rangeSelection?: boolean;
193
289
  hideSelectAll?: boolean;
194
290
  selectionColumn?: HysTableSelectionColumn;
@@ -203,11 +299,15 @@ export interface HysTableProps<T extends object> {
203
299
  defaultSort?: HysTableSort | readonly HysTableSort[] | null;
204
300
  multiSort?: boolean;
205
301
  sortOrders?: readonly (HysTableDirection | null)[];
302
+ /** 悬停或聚焦列标题时提示下一次排序操作。 */
303
+ showSorterTooltip?: boolean | HysTableOverflowTooltipOptions;
206
304
  filters?: HysTableFilters;
207
305
  defaultFilters?: HysTableFilters;
208
306
  filterColumnKey?: string | null;
209
307
  filterPlacement?: Placement;
210
308
  appendFilterTo?: string | HTMLElement | false;
309
+ /** 根据触发元素指定排序、溢出与筛选浮层的挂载目标。 */
310
+ getPopupContainer?: (trigger: HTMLElement) => HTMLElement | string | false | undefined;
211
311
  pagination?: boolean | HysTablePagination;
212
312
  page?: number;
213
313
  pageSize?: number;
@@ -230,6 +330,10 @@ export interface HysTableProps<T extends object> {
230
330
  indent?: number;
231
331
  loadChildren?: (row: T, context: HysTableLoadContext) => readonly T[] | Promise<readonly T[]>;
232
332
  showSummary?: boolean;
333
+ /** 汇总全部筛选结果,或仅汇总当前页实际显示的行。 */
334
+ summaryScope?: "filtered" | "page";
335
+ /** 将汇总行固定在表格滚动区域底部。 */
336
+ stickySummary?: boolean;
233
337
  sumText?: string;
234
338
  summaryMethod?: (context: {
235
339
  columns: readonly HysTableColumn<T>[];
@@ -239,8 +343,13 @@ export interface HysTableProps<T extends object> {
239
343
  rowspan?: number;
240
344
  colspan?: number;
241
345
  } | readonly [number, number] | undefined;
242
- showOverflowTooltip?: boolean;
346
+ /** 默认溢出提示,列可覆盖配置或设置 false 关闭。 */
347
+ showOverflowTooltip?: boolean | HysTableOverflowTooltipOptions;
243
348
  tooltipFormatter?: (context: HysTableCellContext<T>) => VNodeChild;
349
+ /** 在列格式化后统一处理默认单元格内容。 */
350
+ transformCellText?: (context: HysTableCellContext<T> & {
351
+ text: VNodeChild;
352
+ }) => VNodeChild;
244
353
  resizable?: boolean;
245
354
  columnWidths?: Readonly<Record<string, number>>;
246
355
  allowDragLastColumn?: boolean;
@@ -256,7 +365,7 @@ export interface HysTableInstance<T extends object = Record<string, unknown>> {
256
365
  clearSelection: () => Promise<boolean>;
257
366
  getSelectionRows: () => T[];
258
367
  getHalfSelectionRows: () => T[];
259
- toggleRowSelection: (row: T | HysTableKey, selected?: boolean, range?: boolean) => Promise<boolean>;
368
+ toggleRowSelection: (row: T | HysTableKey, selected?: boolean, options?: boolean | HysTableRowSelectionOptions) => Promise<boolean>;
260
369
  toggleAllSelection: (selected?: boolean) => Promise<boolean>;
261
370
  invertSelection: () => Promise<boolean>;
262
371
  setCurrentRow: (row?: T | HysTableKey | null) => Promise<boolean>;
@@ -295,6 +404,7 @@ export interface TableHeader<T extends object> {
295
404
  leaves: HysTableColumn<T>[];
296
405
  colspan: number;
297
406
  rowspan: number;
407
+ blank?: boolean;
298
408
  fixed?: "left" | "right";
299
409
  }
300
410
  export declare const tableToken: (key: HysTableKey) => string;
@@ -1,4 +1,4 @@
1
- import type { Component, InputHTMLAttributes, TextareaHTMLAttributes } from "vue";
1
+ import type { Component, InputHTMLAttributes, StyleValue, TextareaHTMLAttributes } from "vue";
2
2
  export interface HysInputFormatInfo {
3
3
  userTyping: boolean;
4
4
  input: string;
@@ -9,8 +9,20 @@ export interface HysInputCountInfo {
9
9
  maxLength?: number;
10
10
  }
11
11
  export type HysInputCountStrategy = boolean | ((value: string) => number);
12
+ export type HysInputSize = "sm" | "md" | "lg" | "small" | "middle" | "default" | "large";
13
+ export interface HysInputModelModifiers {
14
+ lazy?: boolean;
15
+ trim?: boolean;
16
+ number?: boolean;
17
+ }
18
+ export interface HysTextareaStyle {
19
+ height?: string;
20
+ overflowY?: "auto" | "hidden";
21
+ }
12
22
  export interface HysInputProps {
13
23
  modelValue?: string | number | null;
24
+ /** Vue v-model 修饰符。lazy 延后写入模型,trim 去首尾空白,number 由 Vue 转换数值。 */
25
+ modelModifiers?: HysInputModelModifiers;
14
26
  defaultValue?: string | number | null;
15
27
  placeholder?: string;
16
28
  type?: string;
@@ -21,6 +33,12 @@ export interface HysInputProps {
21
33
  error?: string;
22
34
  status?: "error" | "warning" | "success";
23
35
  clearable?: boolean;
36
+ /** 清空开关别名,clearable 显式设置时优先。 */
37
+ allowClear?: boolean;
38
+ /** 输入框外侧的附加文字,prepend 插槽优先。 */
39
+ addonBefore?: string;
40
+ /** 输入框外侧的附加文字,append 插槽优先。 */
41
+ addonAfter?: string;
24
42
  clearIcon?: Component;
25
43
  prefixIcon?: Component;
26
44
  suffixIcon?: Component;
@@ -42,7 +60,7 @@ export interface HysInputProps {
42
60
  allowInput?: (value: string) => boolean;
43
61
  autocomplete?: string;
44
62
  name?: string;
45
- size?: "sm" | "md" | "lg";
63
+ size?: HysInputSize;
46
64
  rows?: number;
47
65
  autosize?: boolean | {
48
66
  minRows?: number;
@@ -50,27 +68,44 @@ export interface HysInputProps {
50
68
  };
51
69
  resize?: "none" | "both" | "horizontal" | "vertical";
52
70
  inputProps?: InputHTMLAttributes | TextareaHTMLAttributes;
71
+ /** 应用到原生输入元素的样式。自动高度启用时由组件管理 height 和 overflowY。 */
72
+ inputStyle?: StyleValue;
73
+ /** 原生 inputmode,用于提示移动端键盘布局。 */
74
+ inputmode?: InputHTMLAttributes["inputmode"];
75
+ /** 原生控件的 Tab 顺序。 */
76
+ tabindex?: string | number;
77
+ /** 关联的原生 form 元素 ID,可提交在表单外的输入。 */
78
+ form?: string;
79
+ /** 是否由组件交互触发表单的 change、blur 校验,默认 true。 */
80
+ validateEvent?: boolean;
53
81
  autofocus?: boolean;
54
82
  selectOnFocus?: boolean;
55
83
  bordered?: boolean;
56
84
  round?: boolean;
57
85
  }
58
86
  export interface HysInputInstance {
87
+ element: HTMLInputElement | HTMLTextAreaElement | undefined;
59
88
  input: HTMLInputElement | HTMLTextAreaElement | undefined;
60
89
  textarea: HTMLTextAreaElement | undefined;
61
90
  isComposing: boolean;
91
+ passwordVisible: boolean;
92
+ textareaStyle: HysTextareaStyle;
62
93
  focus: (options?: FocusOptions) => void;
63
94
  blur: () => void;
64
95
  select: () => void;
65
96
  clear: () => void;
66
97
  resize: () => Promise<void>;
98
+ resizeTextarea: () => Promise<void>;
67
99
  setSelectionRange: (start: number, end: number, direction?: "forward" | "backward" | "none") => void;
68
100
  scrollTo: (options: ScrollToOptions) => void;
69
101
  }
70
- export type HysTextareaProps = Omit<HysInputProps, 'type' | 'showPassword' | 'showPasswordOn' | 'passwordVisible' | 'defaultPasswordVisible'>;
71
- export interface HysTextareaInstance extends Omit<HysInputInstance, 'input'> {
102
+ export type HysTextareaProps = Omit<HysInputProps, "type" | "showPassword" | "showPasswordOn" | "passwordVisible" | "defaultPasswordVisible">;
103
+ export interface HysTextareaInstance extends Omit<HysInputInstance, "input" | "element" | "passwordVisible"> {
72
104
  input: HTMLTextAreaElement | undefined;
105
+ element: HTMLTextAreaElement | undefined;
73
106
  }
107
+ export declare function textInputSize(size?: HysInputSize): "sm" | "md" | "lg" | undefined;
108
+ export declare function modelText(value: string, modifiers?: HysInputModelModifiers): string;
74
109
  export declare function textCount(value: string, strategy?: HysInputCountStrategy): number;
75
110
  export declare function textLimit(value: string, max: number | undefined, strategy?: HysInputCountStrategy): string;
76
111
  export declare function textLengthLimit(value?: string | number): number | undefined;
@@ -0,0 +1,68 @@
1
+ import type { Component, CSSProperties, VNode } from "vue";
2
+ import type { HysButtonProps } from "../components/HysButton/HysButton.vue";
3
+ import type { HysPopupMotionProps } from "../motion/popup";
4
+ import type { Placement } from "./useFloating";
5
+ export type HysTourTarget = string | HTMLElement | (() => HTMLElement | null | undefined);
6
+ export type HysTourContent = string | VNode | (() => string | VNode);
7
+ export type HysTourMask = boolean | {
8
+ color?: string;
9
+ style?: CSSProperties;
10
+ };
11
+ export interface HysTourGap {
12
+ /** Pixels around the target, either uniform or [horizontal, vertical]. */
13
+ offset?: number | [number, number];
14
+ radius?: number;
15
+ }
16
+ export interface HysTourButtonProps extends HysButtonProps {
17
+ children?: HysTourContent;
18
+ onClick?: (event: MouseEvent) => void;
19
+ }
20
+ export interface HysTourAppearance {
21
+ /** Preferred card placement; flips to the opposite side when space is limited. */
22
+ placement?: Placement;
23
+ mask?: HysTourMask;
24
+ gap?: HysTourGap;
25
+ showArrow?: boolean;
26
+ arrow?: boolean | {
27
+ pointAtCenter?: boolean;
28
+ };
29
+ type?: "default" | "primary";
30
+ contentStyle?: CSSProperties;
31
+ scrollIntoViewOptions?: boolean | ScrollIntoViewOptions;
32
+ targetAreaClickable?: boolean;
33
+ showClose?: boolean;
34
+ closeIcon?: string | Component;
35
+ prevButtonProps?: HysTourButtonProps;
36
+ nextButtonProps?: HysTourButtonProps;
37
+ }
38
+ export interface HysTourStep extends HysTourAppearance {
39
+ /** An element, CSS selector, or function returning the element. */
40
+ target?: HysTourTarget;
41
+ title?: HysTourContent;
42
+ description?: HysTourContent;
43
+ cover?: HysTourContent;
44
+ onClose?: () => void;
45
+ }
46
+ export interface HysTourProps extends HysPopupMotionProps, HysTourAppearance {
47
+ steps: readonly HysTourStep[];
48
+ /** Display state alias for v-model:open. */
49
+ open?: boolean;
50
+ /** Zero-based step index; supports v-model:current and external navigation. */
51
+ current?: number;
52
+ closeOnEscape?: boolean;
53
+ appendTo?: string | HTMLElement | false;
54
+ zIndex?: number;
55
+ skipText?: string;
56
+ prevText?: string;
57
+ nextText?: string;
58
+ finishText?: string;
59
+ }
60
+ export interface HysTourContext {
61
+ step: HysTourStep | undefined;
62
+ current: number;
63
+ total: number;
64
+ goTo: (index: number) => void;
65
+ previous: () => void;
66
+ next: () => void;
67
+ close: () => void;
68
+ }
@@ -15,7 +15,7 @@ export interface FloatingAnchor {
15
15
  readonly isConnected: boolean;
16
16
  }
17
17
  export declare function useFloating(anchor: Readonly<Ref<FloatingAnchor | undefined>>, panel: Ref<HTMLElement | undefined>, options?: {
18
- placement?: Placement;
18
+ placement?: Placement | (() => Placement);
19
19
  gap?: number;
20
20
  padding?: number;
21
21
  matchWidth?: boolean | "min" | (() => boolean | "min");
@@ -0,0 +1,37 @@
1
+ import { type MaybeRefOrGetter } from "vue";
2
+ import type { HysNumberComposableOptions, HysNumberEvent, HysNumberFrame, HysNumberValue } from "./animatedNumber";
3
+ /** 在 Vue setup 中使用。与 HysAnimatedNumber 共享调度和播放控制。 */
4
+ export declare function useHysAnimatedNumber(source?: MaybeRefOrGetter<HysNumberComposableOptions>, onEvent?: (event: HysNumberEvent, frame: HysNumberFrame) => void): {
5
+ frame: Readonly<import("vue").Ref<{
6
+ readonly value: HysNumberValue;
7
+ readonly from: HysNumberValue;
8
+ readonly to: HysNumberValue;
9
+ readonly progress: number;
10
+ readonly easedProgress: number;
11
+ readonly direction: import("./animatedNumber").HysNumberDirection;
12
+ readonly status: import("./animatedNumber").HysNumberStatus;
13
+ readonly iteration: number;
14
+ }, {
15
+ readonly value: HysNumberValue;
16
+ readonly from: HysNumberValue;
17
+ readonly to: HysNumberValue;
18
+ readonly progress: number;
19
+ readonly easedProgress: number;
20
+ readonly direction: import("./animatedNumber").HysNumberDirection;
21
+ readonly status: import("./animatedNumber").HysNumberStatus;
22
+ readonly iteration: number;
23
+ }>>;
24
+ motionEnabled: import("vue").ComputedRef<boolean>;
25
+ play: () => void;
26
+ pause: () => void;
27
+ resume: () => void;
28
+ stop: () => void;
29
+ restart: () => void;
30
+ reset: () => void;
31
+ reverse: () => void;
32
+ seek: (progress: number) => void;
33
+ finishAnimation: () => void;
34
+ updateTarget: (next: HysNumberValue) => void;
35
+ sync: () => void;
36
+ hold: (value: boolean) => void;
37
+ };
@@ -0,0 +1,4 @@
1
+ import { type MaybeRefOrGetter } from "vue";
2
+ import type { HysNumberControls } from "./animatedNumber";
3
+ /** 同时控制组件实例和独立动画。空实例会被跳过。 */
4
+ export declare function useHysNumberAnimationGroup(source: MaybeRefOrGetter<readonly (HysNumberControls | null | undefined)[]>): HysNumberControls;
@@ -0,0 +1,6 @@
1
+ import { type Ref } from "vue";
2
+ import type { FloatingAnchor } from "./useFloating";
3
+ export declare function useMentionCaret(input: Readonly<Ref<HTMLElement | undefined>>, value: Readonly<Ref<string>>, start: () => number): {
4
+ anchor: import("vue").ComputedRef<FloatingAnchor | undefined>;
5
+ removeMirror: () => void;
6
+ };
@@ -0,0 +1,23 @@
1
+ import { type Ref } from "vue";
2
+ import type { HysMentionProps } from "./mention";
3
+ import type { MentionEntry } from "./useMentionOptions";
4
+ type ListRow = {
5
+ key: string;
6
+ group: string;
7
+ } | {
8
+ key: string;
9
+ entry: MentionEntry;
10
+ index: number;
11
+ };
12
+ export declare function useMentionList(props: HysMentionProps, choices: Readonly<Ref<readonly MentionEntry[]>>, element: Readonly<Ref<HTMLElement | undefined>>, loadMore: () => Promise<boolean>): {
13
+ rows: import("vue").ComputedRef<ListRow[]>;
14
+ enabled: import("vue").ComputedRef<MentionEntry[]>;
15
+ visibleRows: import("vue").ComputedRef<ListRow[]>;
16
+ topSpacer: import("vue").ComputedRef<number>;
17
+ bottomSpacer: import("vue").ComputedRef<number>;
18
+ rowHeight: import("vue").ComputedRef<number>;
19
+ onScroll: () => void;
20
+ reset: () => void;
21
+ ensureVisible: (key: string) => void;
22
+ };
23
+ export {};
@@ -0,0 +1,14 @@
1
+ import type { HysMentionDocument, HysMentionEntity, HysMentionProps } from "./mention";
2
+ import type { MentionSelection } from "./mentionEditor";
3
+ export declare function mentionEntityKey(entity: HysMentionEntity): string;
4
+ export declare function diffMentionEntities(previous: HysMentionEntity[], next: HysMentionEntity[]): {
5
+ added: HysMentionEntity[];
6
+ removed: HysMentionEntity[];
7
+ };
8
+ export declare function useMentionModel(props: HysMentionProps, publish: (next: HysMentionDocument, previous: HysMentionDocument, changedText: boolean) => void, accepted: (next: HysMentionDocument, previous: HysMentionDocument) => void): {
9
+ value: import("vue").ComputedRef<string>;
10
+ entities: import("vue").ComputedRef<HysMentionEntity[]>;
11
+ document: import("vue").ComputedRef<HysMentionDocument>;
12
+ commit: (next: HysMentionDocument, selection: MentionSelection, notify?: () => void, record?: boolean, force?: boolean) => Promise<boolean>;
13
+ history: (direction: "undo" | "redo", selection: MentionSelection) => Promise<MentionSelection | undefined>;
14
+ };
@@ -0,0 +1,26 @@
1
+ import { type Ref } from "vue";
2
+ import type { HysMentionContext, HysMentionOption, HysMentionProps, HysMentionTrigger, HysMentionUser } from "./mention";
3
+ export interface MentionEntry {
4
+ key: string;
5
+ option: HysMentionOption;
6
+ user: HysMentionUser;
7
+ created?: boolean;
8
+ remote?: boolean;
9
+ }
10
+ export declare function useMentionOptions(props: HysMentionProps, context: Readonly<Ref<HysMentionContext | undefined>>, trigger: Readonly<Ref<HysMentionTrigger | undefined>>, dismissed: Readonly<Ref<boolean>>, text: Readonly<Ref<string>>, onError: (error: unknown, context: HysMentionContext) => void): {
11
+ entries: import("vue").ComputedRef<MentionEntry[]>;
12
+ choices: import("vue").ComputedRef<MentionEntry[]>;
13
+ enabled: import("vue").ComputedRef<MentionEntry[]>;
14
+ busy: import("vue").ComputedRef<boolean>;
15
+ loadingMore: Ref<boolean, boolean>;
16
+ hasMore: import("vue").ComputedRef<boolean>;
17
+ loadError: import("vue").ShallowRef<{
18
+ reason: unknown;
19
+ } | undefined, {
20
+ reason: unknown;
21
+ } | undefined>;
22
+ retry: () => void;
23
+ loadMore: () => Promise<boolean>;
24
+ cancelLoad: () => void;
25
+ remember: (option: HysMentionOption, prefix: string) => void;
26
+ };
@@ -0,0 +1,14 @@
1
+ interface DragSettings {
2
+ vertical: boolean;
3
+ direction: 1 | -1;
4
+ available: number;
5
+ initial: number;
6
+ constrain: (value: number) => number;
7
+ }
8
+ export declare function useSplitPaneDrag(update: (value: number) => void, ended: (value: number, cancelled: boolean, notify: boolean) => void): {
9
+ start: (event: PointerEvent, settings: DragSettings) => boolean;
10
+ cancel: (event: PointerEvent) => void;
11
+ finish: (cancelled: boolean, notify?: boolean) => void;
12
+ active: () => boolean;
13
+ };
14
+ export {};
@@ -0,0 +1,4 @@
1
+ import { type Ref } from "vue";
2
+ import type { HysSplitPaneSizes } from "../components/HysSplitPane/HysSplitPane.vue";
3
+ export declare function readStoredPaneSizes(value: unknown): HysSplitPaneSizes | undefined;
4
+ export declare function useSplitPaneStorage<T>(key: () => string | undefined, state: Ref<T | undefined>, decode: (value: unknown) => T | undefined): void;
@@ -1,4 +1,4 @@
1
- import { type HysTableProps, type HysTableKey, type HysTableColumn, type HysTableSort, type HysTableFilters, type HysTableFilterValue, type HysTableQuery, type TableNode } from "./table";
1
+ import { type HysTableProps, type HysTableKey, type HysTableColumn, type HysTableSort, type HysTableFilters, type HysTableFilterValue, type HysTableQuery, type HysTableRowSelectionOptions, type TableNode } from "./table";
2
2
  export declare function useTable<T extends object>(props: HysTableProps<T>, columns: () => readonly HysTableColumn<T>[], hasExpand: () => boolean, emit: (name: string, ...args: any[]) => void): {
3
3
  live: import("vue").Ref<boolean, boolean>;
4
4
  busy: import("vue").ComputedRef<boolean>;
@@ -16,6 +16,7 @@ export declare function useTable<T extends object>(props: HysTableProps<T>, colu
16
16
  eligible: (node: TableNode<T>) => boolean;
17
17
  allSelected: import("vue").ComputedRef<boolean>;
18
18
  someSelected: import("vue").ComputedRef<boolean>;
19
+ selectionPage: import("vue").ComputedRef<TableNode<T>[]>;
19
20
  sorts: import("vue").ComputedRef<HysTableSort[]>;
20
21
  filters: import("vue").ComputedRef<HysTableFilters>;
21
22
  processed: import("vue").ComputedRef<{
@@ -26,7 +27,8 @@ export declare function useTable<T extends object>(props: HysTableProps<T>, colu
26
27
  display: import("vue").ComputedRef<TableNode<T>[]>;
27
28
  page: import("vue").ComputedRef<number>;
28
29
  pageSize: import("vue").ComputedRef<number>;
29
- total: import("vue").ComputedRef<number>;
30
+ pageCount: import("vue").ComputedRef<number>;
31
+ paginationTotal: import("vue").ComputedRef<number | undefined>;
30
32
  pagination: import("vue").ComputedRef<import("./table").HysTablePagination>;
31
33
  currentKey: import("vue").ComputedRef<HysTableKey | null>;
32
34
  currentRow: import("vue").ComputedRef<T | undefined>;
@@ -40,16 +42,18 @@ export declare function useTable<T extends object>(props: HysTableProps<T>, colu
40
42
  }>>;
41
43
  loadErrors: import("vue").ShallowRef<Map<string, unknown>, Map<string, unknown>>;
42
44
  canExpand: (node: TableNode<T>) => boolean;
45
+ nextSortOrder: (column: HysTableColumn<T>, direction?: "asc" | "desc") => import("./table").HysTableDirection | null;
43
46
  toggleSort: (column: HysTableColumn<T>, direction?: "asc" | "desc") => void;
44
47
  setSort: (value: HysTableSort | readonly HysTableSort[] | null) => void;
45
48
  setFilter: (key: string, values: readonly HysTableFilterValue[]) => void;
46
49
  clearFilter: (keys?: readonly string[]) => void;
47
50
  requestPage: (n: number, action?: "page" | "pageSize") => void;
48
51
  changeSize: (n: number) => void;
49
- toggleRowSelection: (value: T | HysTableKey, checked?: boolean, range?: boolean) => Promise<boolean>;
52
+ toggleRowSelection: (value: T | HysTableKey, checked?: boolean, options?: boolean | HysTableRowSelectionOptions) => Promise<boolean>;
50
53
  toggleAllSelection: (checked?: boolean) => Promise<boolean>;
51
54
  invertSelection: () => Promise<boolean>;
52
55
  clearSelection: () => Promise<boolean>;
56
+ selectPage: (keys: readonly HysTableKey[], nodes?: TableNode<T>[]) => Promise<boolean>;
53
57
  getSelectionRows: () => T[];
54
58
  getHalfSelectionRows: () => T[];
55
59
  setCurrentRow: (value?: T | HysTableKey | null) => Promise<boolean>;
@@ -0,0 +1,22 @@
1
+ import { type Ref } from "vue";
2
+ import type { HysTableStickyOptions } from "./table";
3
+ export declare function useTableSticky(viewport: Ref<HTMLElement | undefined>, header: Readonly<Ref<HTMLTableSectionElement | undefined>>, options: () => boolean | HysTableStickyOptions | undefined): {
4
+ headerTop: Ref<number, number>;
5
+ bar: import("vue").ShallowRef<{
6
+ top: number;
7
+ left: number;
8
+ width: number;
9
+ contentWidth: number;
10
+ direction: "ltr" | "rtl";
11
+ } | undefined, {
12
+ top: number;
13
+ left: number;
14
+ width: number;
15
+ contentWidth: number;
16
+ direction: "ltr" | "rtl";
17
+ } | undefined>;
18
+ scrollbar: Ref<HTMLElement | undefined, HTMLElement | undefined>;
19
+ syncScrollbar: () => void;
20
+ scrollViewport: (event: Event) => void;
21
+ scrollbarHeight: number;
22
+ };
@@ -1,3 +1,6 @@
1
1
  import { type Ref } from "vue";
2
- import type { HysInputProps } from "./textInput";
3
- export declare function useTextareaSize(input: Ref<HTMLInputElement | HTMLTextAreaElement | undefined>, props: HysInputProps, size: Ref<string>, value: Ref<string>): () => Promise<void>;
2
+ import type { HysInputProps, HysTextareaStyle } from "./textInput";
3
+ export declare function useTextareaSize(input: Ref<HTMLInputElement | HTMLTextAreaElement | undefined>, props: HysInputProps, size: Ref<string>, value: Ref<string>): {
4
+ resize: () => Promise<void>;
5
+ textareaStyle: import("vue").ShallowRef<HysTextareaStyle, HysTextareaStyle>;
6
+ };