hys-ui 0.2.0 → 0.4.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 (261) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +68 -59
  3. package/dist/components/HysAlert/HysAlert.vue.js +5 -54
  4. package/dist/components/HysAlert/HysAlert2.vue.js +159 -2
  5. package/dist/components/HysAnimatedNumber/HysAnimatedNumber.vue.js +5 -41
  6. package/dist/components/HysAnimatedNumber/HysAnimatedNumber2.vue.js +146 -2
  7. package/dist/components/HysAutocomplete/HysAutocomplete.vue.js +2 -2
  8. package/dist/components/HysAutocomplete/HysAutocomplete2.vue.js +285 -273
  9. package/dist/components/HysAvatarGroup/HysAvatarGroup.vue.js +1 -1
  10. package/dist/components/HysAvatarGroup/HysAvatarGroup2.vue.js +102 -98
  11. package/dist/components/HysBreadcrumb/HysBreadcrumb.vue.js +1 -1
  12. package/dist/components/HysBreadcrumb/HysBreadcrumb2.vue.js +273 -59
  13. package/dist/components/HysButton/HysButton.vue.js +2 -2
  14. package/dist/components/HysButton/HysButton2.vue.js +227 -60
  15. package/dist/components/HysButtonGroup/HysButtonGroup.vue.js +7 -0
  16. package/dist/components/HysButtonGroup/HysButtonGroup2.vue.js +51 -0
  17. package/dist/components/HysCalendar/HysCalendar.vue.js +3 -3
  18. package/dist/components/HysCalendar/HysCalendar2.vue.js +237 -225
  19. package/dist/components/HysCascader/HysCascader.vue.js +2 -2
  20. package/dist/components/HysCascader/HysCascader2.vue.js +337 -324
  21. package/dist/components/HysColorPicker/HysColorPanel.vue.js +7 -0
  22. package/dist/components/HysColorPicker/HysColorPanel2.vue.js +238 -0
  23. package/dist/components/HysColorPicker/HysColorPicker.vue.js +2 -2
  24. package/dist/components/HysColorPicker/HysColorPicker2.vue.js +239 -217
  25. package/dist/components/HysCommandPalette/HysCommandPalette.vue.js +90 -76
  26. package/dist/components/HysContextMenu/HysContextMenu.vue.js +5 -89
  27. package/dist/components/HysContextMenu/HysContextMenu2.vue.js +247 -2
  28. package/dist/components/HysContextMenu/HysMenuPanel.vue.js +7 -0
  29. package/dist/components/HysContextMenu/HysMenuPanel2.vue.js +208 -0
  30. package/dist/components/HysContextMenu/HysMenuSlot.js +10 -0
  31. package/dist/components/HysDataGrid/HysDataGrid.vue.js +1 -1
  32. package/dist/components/HysDataGrid/HysDataGrid2.vue.js +1008 -559
  33. package/dist/components/HysDatePicker/HysDatePicker.vue.js +2 -0
  34. package/dist/components/HysDatePicker/HysDatePickerControl.vue.js +2 -2
  35. package/dist/components/HysDatePicker/HysDatePickerControl2.vue.js +539 -526
  36. package/dist/components/HysDateRangePicker/HysDateRangePicker.vue.js +5 -3
  37. package/dist/components/HysDrawer/HysDrawer.vue.js +1 -1
  38. package/dist/components/HysDrawer/HysDrawer2.vue.js +434 -84
  39. package/dist/components/HysEmpty/HysEmpty.vue.js +5 -41
  40. package/dist/components/HysEmpty/HysEmpty2.vue.js +181 -2
  41. package/dist/components/HysFormItem/HysFormItem.vue.js +2 -2
  42. package/dist/components/HysFormItem/HysFormItem2.vue.js +171 -164
  43. package/dist/components/HysGantt/HysGantt.vue.js +1 -1
  44. package/dist/components/HysGantt/HysGantt2.vue.js +810 -795
  45. package/dist/components/HysMention/HysMention.vue.js +1 -1
  46. package/dist/components/HysMention/HysMention2.vue.js +1092 -142
  47. package/dist/components/HysModal/HysModal.vue.js +2 -2
  48. package/dist/components/HysModal/HysModal2.vue.js +491 -85
  49. package/dist/components/HysPagination/HysPagination.vue.js +2 -2
  50. package/dist/components/HysPagination/HysPagination2.vue.js +243 -180
  51. package/dist/components/HysPopover/HysPopover.vue.js +5 -91
  52. package/dist/components/HysPopover/HysPopover2.vue.js +120 -2
  53. package/dist/components/HysProgress/HysProgress.vue.js +2 -2
  54. package/dist/components/HysProgress/HysProgress2.vue.js +319 -52
  55. package/dist/components/HysSearch/HysSearch.vue.js +5 -82
  56. package/dist/components/HysSearch/HysSearch2.vue.js +176 -2
  57. package/dist/components/HysSelect/HysSelect.vue.js +2 -2
  58. package/dist/components/HysSelect/HysSelect2.vue.js +755 -590
  59. package/dist/components/HysSlider/HysSlider.vue.js +2 -2
  60. package/dist/components/HysSlider/HysSlider2.vue.js +192 -188
  61. package/dist/components/HysSlider/SliderTooltip.vue.js +2 -2
  62. package/dist/components/HysSlider/SliderTooltip2.vue.js +103 -89
  63. package/dist/components/HysSplitPane/HysSplitPane.vue.js +315 -58
  64. package/dist/components/HysSplitPane/HysSplitPane3.vue.js +5 -0
  65. package/dist/components/HysTable/HysTable.vue.js +2 -2
  66. package/dist/components/HysTable/HysTable2.vue.js +1416 -1127
  67. package/dist/components/HysTagInput/HysTagInput.vue.js +5 -82
  68. package/dist/components/HysTagInput/HysTagInput2.vue.js +396 -2
  69. package/dist/components/HysTimeline/HysTimeline.vue.js +2 -2
  70. package/dist/components/HysTimeline/HysTimeline2.vue.js +243 -24
  71. package/dist/components/HysTooltip/HysTooltip.vue.js +5 -64
  72. package/dist/components/HysTooltip/HysTooltip2.vue.js +110 -2
  73. package/dist/components/HysTour/HysTour.vue.js +291 -63
  74. package/dist/components/HysTour/HysTour3.vue.js +5 -0
  75. package/dist/components/HysTransfer/HysTransfer.vue.js +2 -2
  76. package/dist/components/HysTransfer/HysTransfer2.vue.js +237 -207
  77. package/dist/components/HysTransfer/HysTransferPanel.vue.js +1 -1
  78. package/dist/components/HysTransfer/HysTransferPanel2.vue.js +320 -271
  79. package/dist/components/HysTree/HysTree.vue.js +2 -2
  80. package/dist/components/HysTree/HysTree2.vue.js +195 -184
  81. package/dist/components/HysTreeSelect/HysTreeSelect.vue.js +4 -4
  82. package/dist/components/HysTreeSelect/HysTreeSelect2.vue.js +389 -377
  83. package/dist/components/HysUpload/HysUpload.vue.js +2 -2
  84. package/dist/components/HysUpload/HysUpload2.vue.js +459 -125
  85. package/dist/components/HysVirtualTable/HysVirtualTable.vue.js +5 -94
  86. package/dist/components/HysVirtualTable/HysVirtualTable2.vue.js +656 -2
  87. package/dist/composables/buttonGroup.js +12 -0
  88. package/dist/composables/color.js +97 -0
  89. package/dist/composables/dataGrid.js +68 -0
  90. package/dist/composables/drawer.js +17 -0
  91. package/dist/composables/feedback.js +14 -0
  92. package/dist/composables/floatingPosition.js +18 -0
  93. package/dist/composables/mentionDocument.js +79 -0
  94. package/dist/composables/mentionEditor.js +58 -0
  95. package/dist/composables/menu.js +96 -0
  96. package/dist/composables/modal.js +14 -0
  97. package/dist/composables/overlayManager.js +48 -18
  98. package/dist/composables/progress.js +94 -0
  99. package/dist/composables/selectOptions.js +44 -38
  100. package/dist/composables/splitPaneSizes.js +58 -0
  101. package/dist/composables/table.js +128 -105
  102. package/dist/composables/tagInput.js +16 -0
  103. package/dist/composables/timeline.js +19 -0
  104. package/dist/composables/transfer.js +19 -17
  105. package/dist/composables/upload.js +55 -0
  106. package/dist/composables/uploadRequest.js +58 -0
  107. package/dist/composables/useAlert.js +124 -0
  108. package/dist/composables/useColorPicker.js +402 -0
  109. package/dist/composables/useContextMenu.js +514 -0
  110. package/dist/composables/useDataGridRemote.js +67 -0
  111. package/dist/composables/useDialog.js +86 -43
  112. package/dist/composables/useDrawerPush.js +33 -0
  113. package/dist/composables/useDrawerResize.js +221 -0
  114. package/dist/composables/useFloating.js +118 -80
  115. package/dist/composables/useHysModal.js +185 -0
  116. package/dist/composables/useMentionCaret.js +81 -0
  117. package/dist/composables/useMentionList.js +81 -0
  118. package/dist/composables/useMentionModel.js +90 -0
  119. package/dist/composables/useMentionOptions.js +421 -0
  120. package/dist/composables/useModal.js +295 -0
  121. package/dist/composables/useModalInteraction.js +394 -0
  122. package/dist/composables/usePopupSurface.js +458 -0
  123. package/dist/composables/useSplitPaneDrag.js +52 -0
  124. package/dist/composables/useSplitPaneStorage.js +38 -0
  125. package/dist/composables/useTable.js +344 -312
  126. package/dist/composables/useTableSticky.js +79 -0
  127. package/dist/composables/useTagInput.js +313 -0
  128. package/dist/composables/useTourLayout.js +129 -0
  129. package/dist/composables/useTransferMotion.js +185 -0
  130. package/dist/composables/useUpload.js +472 -0
  131. package/dist/composables/useUploadModel.js +65 -0
  132. package/dist/composables/useUploadRequests.js +266 -0
  133. package/dist/composables/useVirtualTableLayout.js +277 -0
  134. package/dist/composables/virtualTable.js +43 -0
  135. package/dist/config.js +11 -11
  136. package/dist/index.js +175 -153
  137. package/dist/internal/MultiSplitPane.vue.js +305 -0
  138. package/dist/internal/MultiSplitPane2.vue.js +4 -0
  139. package/dist/internal/PopupReference.js +39 -0
  140. package/dist/internal/PopupSurfacePanel.vue.js +7 -0
  141. package/dist/internal/PopupSurfacePanel2.vue.js +92 -0
  142. package/dist/motion/PopupMotion.js +105 -0
  143. package/dist/motion/popup.js +10 -0
  144. package/dist/style.css +1 -1
  145. package/dist/types/components/HysAlert/HysAlert.vue.d.ts +32 -22
  146. package/dist/types/components/HysAnimatedNumber/HysAnimatedNumber.vue.d.ts +61 -7
  147. package/dist/types/components/HysAutocomplete/HysAutocomplete.vue.d.ts +7 -7
  148. package/dist/types/components/HysAvatarGroup/HysAvatarGroup.vue.d.ts +6 -1
  149. package/dist/types/components/HysBadge/HysBadge.vue.d.ts +3 -3
  150. package/dist/types/components/HysBreadcrumb/HysBreadcrumb.vue.d.ts +54 -31
  151. package/dist/types/components/HysButton/HysButton.vue.d.ts +82 -22
  152. package/dist/types/components/HysButtonGroup/HysButtonGroup.vue.d.ts +30 -0
  153. package/dist/types/components/HysCalendar/HysCalendar.vue.d.ts +3 -2
  154. package/dist/types/components/HysCascader/HysCascader.vue.d.ts +7 -7
  155. package/dist/types/components/HysCascader/HysCascaderColumn.vue.d.ts +2 -2
  156. package/dist/types/components/HysColorPicker/HysColorPanel.vue.d.ts +58 -0
  157. package/dist/types/components/HysColorPicker/HysColorPicker.vue.d.ts +63 -10
  158. package/dist/types/components/HysCommandPalette/HysCommandPalette.vue.d.ts +2 -1
  159. package/dist/types/components/HysContextMenu/HysContextMenu.vue.d.ts +50 -34
  160. package/dist/types/components/HysContextMenu/HysMenuPanel.vue.d.ts +79 -0
  161. package/dist/types/components/HysContextMenu/HysMenuSlot.d.ts +8 -0
  162. package/dist/types/components/HysDataGrid/HysDataGrid.vue.d.ts +65 -118
  163. package/dist/types/components/HysDatePicker/HysDatePickerControl.vue.d.ts +3 -3
  164. package/dist/types/components/HysDrawer/HysDrawer.vue.d.ts +92 -35
  165. package/dist/types/components/HysEmpty/HysEmpty.vue.d.ts +24 -20
  166. package/dist/types/components/HysFileManager/HysFileManager.vue.d.ts +2 -2
  167. package/dist/types/components/HysGantt/HysGantt.vue.d.ts +2 -1
  168. package/dist/types/components/HysMention/HysMention.vue.d.ts +91 -39
  169. package/dist/types/components/HysModal/HysModal.vue.d.ts +111 -34
  170. package/dist/types/components/HysNumberInput/HysNumberInput.vue.d.ts +2 -2
  171. package/dist/types/components/HysPagination/HysPagination.vue.d.ts +55 -4
  172. package/dist/types/components/HysPopover/HysPopover.vue.d.ts +41 -29
  173. package/dist/types/components/HysProgress/HysProgress.vue.d.ts +18 -24
  174. package/dist/types/components/HysRating/HysRating.vue.d.ts +1 -1
  175. package/dist/types/components/HysResizablePanel/HysResizablePanel.vue.d.ts +2 -2
  176. package/dist/types/components/HysSearch/HysSearch.vue.d.ts +45 -7
  177. package/dist/types/components/HysSelect/HysSelect.vue.d.ts +19 -5
  178. package/dist/types/components/HysSlider/HysSlider.vue.d.ts +5 -4
  179. package/dist/types/components/HysSlider/SliderTooltip.vue.d.ts +3 -1
  180. package/dist/types/components/HysSplitPane/HysSplitPane.vue.d.ts +125 -14
  181. package/dist/types/components/HysSteps/HysSteps.vue.d.ts +1 -1
  182. package/dist/types/components/HysTable/HysTable.vue.d.ts +1742 -5
  183. package/dist/types/components/HysTabs/HysTabs.vue.d.ts +2 -2
  184. package/dist/types/components/HysTagInput/HysTagInput.vue.d.ts +47 -25
  185. package/dist/types/components/HysTimeline/HysTimeline.vue.d.ts +19 -32
  186. package/dist/types/components/HysTooltip/HysTooltip.vue.d.ts +39 -19
  187. package/dist/types/components/HysTour/HysTour.vue.d.ts +46 -8
  188. package/dist/types/components/HysTransfer/HysTransfer.vue.d.ts +2 -2
  189. package/dist/types/components/HysTransfer/HysTransferPanel.vue.d.ts +5 -3
  190. package/dist/types/components/HysTree/HysTree.vue.d.ts +2 -2
  191. package/dist/types/components/HysUpload/HysUpload.vue.d.ts +55 -67
  192. package/dist/types/components/HysVirtualTable/HysVirtualTable.vue.d.ts +71 -40
  193. package/dist/types/composables/autocomplete.d.ts +3 -0
  194. package/dist/types/composables/avatar.d.ts +3 -0
  195. package/dist/types/composables/buttonGroup.d.ts +9 -0
  196. package/dist/types/composables/cascader.d.ts +3 -0
  197. package/dist/types/composables/color.d.ts +97 -0
  198. package/dist/types/composables/dataGrid.d.ts +100 -0
  199. package/dist/types/composables/datePicker.d.ts +3 -0
  200. package/dist/types/composables/drawer.d.ts +102 -0
  201. package/dist/types/composables/feedback.d.ts +98 -0
  202. package/dist/types/composables/floatingPosition.d.ts +14 -0
  203. package/dist/types/composables/formContext.d.ts +2 -0
  204. package/dist/types/composables/mention.d.ts +284 -0
  205. package/dist/types/composables/mentionDocument.d.ts +15 -0
  206. package/dist/types/composables/mentionEditor.d.ts +7 -0
  207. package/dist/types/composables/menu.d.ts +183 -0
  208. package/dist/types/composables/modal.d.ts +185 -0
  209. package/dist/types/composables/overlayManager.d.ts +7 -3
  210. package/dist/types/composables/popupSurface.d.ts +83 -0
  211. package/dist/types/composables/progress.d.ts +92 -0
  212. package/dist/types/composables/selectOptions.d.ts +7 -0
  213. package/dist/types/composables/splitPaneSizes.d.ts +11 -0
  214. package/dist/types/composables/table.d.ts +119 -6
  215. package/dist/types/composables/tagInput.d.ts +96 -0
  216. package/dist/types/composables/timeline.d.ts +82 -0
  217. package/dist/types/composables/tour.d.ts +68 -0
  218. package/dist/types/composables/transfer.d.ts +7 -0
  219. package/dist/types/composables/tree.d.ts +3 -0
  220. package/dist/types/composables/treeSelect.d.ts +3 -0
  221. package/dist/types/composables/upload.d.ts +202 -0
  222. package/dist/types/composables/uploadRequest.d.ts +3 -0
  223. package/dist/types/composables/useAlert.d.ts +21 -0
  224. package/dist/types/composables/useCascader.d.ts +1 -1
  225. package/dist/types/composables/useColorPicker.d.ts +101 -0
  226. package/dist/types/composables/useContextMenu.d.ts +81 -0
  227. package/dist/types/composables/useDataGridRemote.d.ts +15 -0
  228. package/dist/types/composables/useDialog.d.ts +16 -3
  229. package/dist/types/composables/useDrawerPush.d.ts +6 -0
  230. package/dist/types/composables/useDrawerResize.d.ts +27 -0
  231. package/dist/types/composables/useFloating.d.ts +22 -3
  232. package/dist/types/composables/useHysModal.d.ts +44 -0
  233. package/dist/types/composables/useMentionCaret.d.ts +6 -0
  234. package/dist/types/composables/useMentionList.d.ts +23 -0
  235. package/dist/types/composables/useMentionModel.d.ts +14 -0
  236. package/dist/types/composables/useMentionOptions.d.ts +26 -0
  237. package/dist/types/composables/useModal.d.ts +62 -0
  238. package/dist/types/composables/useModalInteraction.d.ts +27 -0
  239. package/dist/types/composables/usePopupSurface.d.ts +3341 -0
  240. package/dist/types/composables/useSplitPaneDrag.d.ts +14 -0
  241. package/dist/types/composables/useSplitPaneStorage.d.ts +4 -0
  242. package/dist/types/composables/useTable.d.ts +7 -3
  243. package/dist/types/composables/useTableSticky.d.ts +22 -0
  244. package/dist/types/composables/useTagInput.d.ts +66 -0
  245. package/dist/types/composables/useTourLayout.d.ts +33 -0
  246. package/dist/types/composables/useTransferMotion.d.ts +36 -0
  247. package/dist/types/composables/useUpload.d.ts +94 -0
  248. package/dist/types/composables/useUploadModel.d.ts +14 -0
  249. package/dist/types/composables/useUploadRequests.d.ts +38 -0
  250. package/dist/types/composables/useVirtualTableLayout.d.ts +51 -0
  251. package/dist/types/composables/virtualTable.d.ts +126 -0
  252. package/dist/types/config.d.ts +1 -0
  253. package/dist/types/index.d.ts +53 -3
  254. package/dist/types/internal/MultiSplitPane.vue.d.ts +54 -0
  255. package/dist/types/internal/PopupReference.d.ts +18 -0
  256. package/dist/types/internal/PopupSurfacePanel.vue.d.ts +37 -0
  257. package/dist/types/motion/PopupMotion.d.ts +59 -0
  258. package/dist/types/motion/popup.d.ts +12 -0
  259. package/package.json +3 -2
  260. package/dist/components/HysSplitPane/HysSplitPane2.vue.js +0 -4
  261. package/dist/components/HysTour/HysTour2.vue.js +0 -4
@@ -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
+ };
@@ -0,0 +1,66 @@
1
+ import { type Ref } from "vue";
2
+ import { type HysTagInputProps, type HysTagInputReason } from "./tagInput";
3
+ export declare function useTagInput(props: HysTagInputProps, emit: (event: string, ...args: any[]) => void): {
4
+ attrs: import("vue").Attrs;
5
+ field: import("./formContext").HysFieldContext | undefined;
6
+ control: {
7
+ disabled: import("vue").ComputedRef<boolean>;
8
+ size: import("vue").ComputedRef<"sm" | "md" | "lg">;
9
+ label: import("vue").ComputedRef<string | undefined>;
10
+ };
11
+ element: Ref<HTMLElement | undefined, HTMLElement | undefined>;
12
+ input: Ref<HTMLInputElement | undefined, HTMLInputElement | undefined>;
13
+ errorId: string;
14
+ draft: Ref<string, string>;
15
+ pending: Ref<boolean, boolean>;
16
+ composing: Ref<boolean, boolean>;
17
+ focused: Ref<boolean, boolean>;
18
+ values: import("vue").ComputedRef<string[]>;
19
+ status: import("vue").ComputedRef<import("./formContext").HysFormStatus | undefined>;
20
+ maximum: import("vue").ComputedRef<number>;
21
+ context: import("vue").ComputedRef<{
22
+ values: string[];
23
+ draft: string;
24
+ disabled: boolean;
25
+ readonly: boolean;
26
+ pending: boolean;
27
+ add: (value?: string | string[]) => Promise<boolean>;
28
+ clear: () => Promise<boolean>;
29
+ }>;
30
+ tags: import("vue").ComputedRef<{
31
+ value: string;
32
+ index: number;
33
+ key: string;
34
+ }[]>;
35
+ drag: Ref<{
36
+ index: number;
37
+ values: string[];
38
+ } | undefined, {
39
+ index: number;
40
+ values: string[];
41
+ } | undefined>;
42
+ drop: Ref<{
43
+ index: number;
44
+ after: boolean;
45
+ } | undefined, {
46
+ index: number;
47
+ after: boolean;
48
+ } | undefined>;
49
+ add: (value?: string | string[], reason?: HysTagInputReason) => Promise<boolean>;
50
+ remove: (index: number) => Promise<boolean>;
51
+ clear: () => Promise<boolean>;
52
+ move: (from: number, to: number) => Promise<boolean>;
53
+ focus: (options?: FocusOptions) => void;
54
+ nativeInput: (event: Event) => void;
55
+ compositionEnd: (event: CompositionEvent) => void;
56
+ pasted: (event: ClipboardEvent) => void;
57
+ key: (event: KeyboardEvent) => void;
58
+ tagKey: (event: KeyboardEvent, index: number) => Promise<void>;
59
+ focusIn: (event: FocusEvent) => void;
60
+ focusOut: (event: FocusEvent, extra?: HTMLElement) => void;
61
+ stopDrag: () => void;
62
+ dragStart: (event: DragEvent, index: number) => void;
63
+ dragOver: (event: DragEvent, index: number) => void;
64
+ dragDrop: (event: DragEvent) => Promise<void>;
65
+ setDraft: (value: string) => void;
66
+ };
@@ -0,0 +1,33 @@
1
+ import { type Ref } from "vue";
2
+ import type { HysTourAppearance, HysTourTarget } from "./tour";
3
+ export declare function useTourLayout(shown: Readonly<Ref<boolean>>, panel: Readonly<Ref<HTMLElement | undefined>>, settings: Readonly<Ref<HysTourAppearance>>, targetInput: Readonly<Ref<HysTourTarget | undefined>>): {
4
+ view: import("vue").ShallowRef<{
5
+ width: number;
6
+ height: number;
7
+ }, {
8
+ width: number;
9
+ height: number;
10
+ }>;
11
+ bounds: import("vue").ShallowRef<DOMRect | undefined, DOMRect | undefined>;
12
+ card: import("vue").ShallowRef<{
13
+ width: number;
14
+ height: number;
15
+ x: number;
16
+ y: number;
17
+ placement: import("./useFloating").Placement;
18
+ } | undefined, {
19
+ width: number;
20
+ height: number;
21
+ x: number;
22
+ y: number;
23
+ placement: import("./useFloating").Placement;
24
+ } | undefined>;
25
+ arrow: import("vue").ShallowRef<{
26
+ x: number;
27
+ y: number;
28
+ } | undefined, {
29
+ x: number;
30
+ y: number;
31
+ } | undefined>;
32
+ path: import("vue").ComputedRef<string>;
33
+ };
@@ -0,0 +1,36 @@
1
+ import { type Ref } from "vue";
2
+ import { type HysTransferKey, type HysTransferSide } from "./transfer";
3
+ interface Options {
4
+ animated?: boolean;
5
+ moveAnimation?: "flight" | "fade" | "none";
6
+ moveDuration?: number;
7
+ maxAnimatedItems?: number;
8
+ highlightOnArrival?: boolean;
9
+ }
10
+ type Box = {
11
+ left: number;
12
+ top: number;
13
+ width: number;
14
+ height: number;
15
+ right: number;
16
+ bottom: number;
17
+ };
18
+ interface Sample {
19
+ token: string;
20
+ label: string;
21
+ box: Box;
22
+ }
23
+ interface Snapshot {
24
+ generation: number;
25
+ direction: HysTransferSide;
26
+ count: number;
27
+ samples: Sample[];
28
+ }
29
+ /** Bounded visual feedback after an accepted move; never measures every data row. */
30
+ export declare function useTransferMotion(root: Ref<HTMLElement | undefined>, options: Options): {
31
+ capture: (direction: HysTransferSide, keys: readonly HysTransferKey[]) => Snapshot | undefined;
32
+ play: (snapshot: Snapshot | undefined) => void;
33
+ stop: () => void;
34
+ cancelPlaying: () => void;
35
+ };
36
+ export {};
@@ -0,0 +1,94 @@
1
+ import { type Ref } from "vue";
2
+ import { type HysUploadProps, type HysUploadItem, type HysUploadFileContext, type HysUploadSlotContext, type HysUploadStatus } from "./upload";
3
+ export declare function useUpload<T extends HysUploadItem>(props: HysUploadProps<T>, emit: (name: string, ...args: any[]) => void): {
4
+ element: Ref<HTMLElement | undefined, HTMLElement | undefined>;
5
+ zone: Ref<HTMLElement | undefined, HTMLElement | undefined>;
6
+ input: Ref<HTMLInputElement | undefined, HTMLInputElement | undefined>;
7
+ active: Ref<boolean, boolean>;
8
+ available: import("vue").ComputedRef<boolean>;
9
+ disabled: import("vue").ComputedRef<boolean>;
10
+ size: import("vue").ComputedRef<"sm" | "md" | "lg">;
11
+ label: import("vue").ComputedRef<string | undefined>;
12
+ field: import("./formContext").HysFieldContext | undefined;
13
+ checking: Ref<boolean, boolean>;
14
+ dragging: Ref<boolean, boolean>;
15
+ lastError: Ref<string, string>;
16
+ words: import("vue").ComputedRef<{
17
+ choose: string;
18
+ drag: string;
19
+ checking: string;
20
+ localHint: string;
21
+ uploadHint: string;
22
+ files: string;
23
+ ready: string;
24
+ uploading: string;
25
+ success: string;
26
+ error: string;
27
+ queued: string;
28
+ removing: string;
29
+ submit: string;
30
+ abort: string;
31
+ retry: string;
32
+ clear: string;
33
+ remove: string;
34
+ preview: string;
35
+ download: string;
36
+ empty: string;
37
+ }>;
38
+ files: import("vue").ComputedRef<T[]>;
39
+ requests: {
40
+ configured: import("vue").ComputedRef<boolean>;
41
+ queue: import("vue").ShallowRef<string[], string[]>;
42
+ tasks: import("vue").ShallowRef<Map<string, {
43
+ uid: string;
44
+ raw: File;
45
+ controller: AbortController;
46
+ phase: "preparing" | "running" | "finishing";
47
+ stop?: (() => void) | undefined;
48
+ percentage: number;
49
+ }>, Map<string, {
50
+ uid: string;
51
+ raw: File;
52
+ controller: AbortController;
53
+ phase: "preparing" | "running" | "finishing";
54
+ stop?: (() => void) | undefined;
55
+ percentage: number;
56
+ }>>;
57
+ uploading: import("vue").ComputedRef<number>;
58
+ queued: import("vue").ComputedRef<number>;
59
+ activeKeys: import("vue").ComputedRef<Set<string>>;
60
+ queuedKeys: import("vue").ComputedRef<Set<string>>;
61
+ submit: (uid?: string) => Promise<number>;
62
+ retry: (uid: string) => Promise<boolean>;
63
+ abort: (uid?: string, reason?: string, reset?: boolean) => number;
64
+ cleanup: () => void;
65
+ };
66
+ removing: import("vue").ShallowRef<Set<string>, Set<string>>;
67
+ preview: import("vue").ShallowRef<{
68
+ file: T;
69
+ url: string;
70
+ } | undefined, {
71
+ file: T;
72
+ url: string;
73
+ } | undefined>;
74
+ closePreview: () => void;
75
+ context: (file: T) => HysUploadFileContext<T>;
76
+ scope: import("vue").ComputedRef<HysUploadSlotContext<T>>;
77
+ canPreview: (file: T) => boolean;
78
+ canDownload: (file: T) => boolean;
79
+ open: (event?: Event) => void;
80
+ click: (event: MouseEvent) => void;
81
+ keys: (event: KeyboardEvent) => void;
82
+ drop: (event: DragEvent) => void;
83
+ dragEnter: (event: DragEvent) => void;
84
+ dragOver: (event: DragEvent) => void;
85
+ dragLeave: () => void;
86
+ paste: (event: ClipboardEvent) => void;
87
+ blur: (event: FocusEvent) => void;
88
+ addFiles: (inputFiles: readonly File[]) => Promise<T[]>;
89
+ remove: (file: T | string) => Promise<boolean>;
90
+ clearFiles: (statuses?: readonly HysUploadStatus[]) => Promise<boolean>;
91
+ previewFile: (file: T | string) => Promise<boolean>;
92
+ download: (file: T | string) => Promise<boolean>;
93
+ focus: () => void;
94
+ };
@@ -0,0 +1,14 @@
1
+ import type { HysUploadProps, HysUploadItem, HysUploadChangeType } from "./upload";
2
+ export declare function useUploadModel<T extends HysUploadItem>(props: HysUploadProps<T>, emit: (name: string, ...args: any[]) => void, live: () => boolean): {
3
+ files: import("vue").ComputedRef<T[]>;
4
+ controlled: import("vue").ComputedRef<boolean>;
5
+ commit: (change: (current: readonly T[]) => T[] | undefined, type: HysUploadChangeType, options?: {
6
+ force?: boolean;
7
+ allowInactive?: boolean;
8
+ guard?: () => boolean;
9
+ accepted?: () => void;
10
+ }) => Promise<boolean>;
11
+ cancel: () => void;
12
+ resetLocal: () => void;
13
+ interrupt: (keys: ReadonlySet<string>) => void;
14
+ };
@@ -0,0 +1,38 @@
1
+ import { type Ref } from "vue";
2
+ import { type HysUploadItem, type HysUploadProps, type HysUploadChangeType } from "./upload";
3
+ export declare function useUploadRequests<T extends HysUploadItem>(options: {
4
+ props: HysUploadProps<T>;
5
+ files: Readonly<Ref<readonly T[]>>;
6
+ available: Readonly<Ref<boolean>>;
7
+ live: () => boolean;
8
+ emit: (name: string, ...args: any[]) => void;
9
+ prepare: (file: T, signal: AbortSignal) => Promise<Blob | undefined>;
10
+ forget: (uid: string) => void;
11
+ patch: (changes: Map<string, Partial<T>>, type: HysUploadChangeType, guard?: (uid?: string) => boolean) => Promise<boolean>;
12
+ }): {
13
+ configured: import("vue").ComputedRef<boolean>;
14
+ queue: import("vue").ShallowRef<string[], string[]>;
15
+ tasks: import("vue").ShallowRef<Map<string, {
16
+ uid: string;
17
+ raw: File;
18
+ controller: AbortController;
19
+ phase: "preparing" | "running" | "finishing";
20
+ stop?: () => void;
21
+ percentage: number;
22
+ }>, Map<string, {
23
+ uid: string;
24
+ raw: File;
25
+ controller: AbortController;
26
+ phase: "preparing" | "running" | "finishing";
27
+ stop?: () => void;
28
+ percentage: number;
29
+ }>>;
30
+ uploading: import("vue").ComputedRef<number>;
31
+ queued: import("vue").ComputedRef<number>;
32
+ activeKeys: import("vue").ComputedRef<Set<string>>;
33
+ queuedKeys: import("vue").ComputedRef<Set<string>>;
34
+ submit: (uid?: string) => Promise<number>;
35
+ retry: (uid: string) => Promise<boolean>;
36
+ abort: (uid?: string, reason?: string, reset?: boolean) => number;
37
+ cleanup: () => void;
38
+ };
@@ -0,0 +1,51 @@
1
+ import { type CSSProperties } from "vue";
2
+ import { type HysVirtualTableAlign, type HysVirtualTableColumn, type HysVirtualTableProps, type HysVirtualTableRange, type HysVirtualTableScroll } from "./virtualTable";
3
+ export interface VirtualColumn<T extends object> {
4
+ token: string;
5
+ column?: HysVirtualTableColumn<T>;
6
+ index: number;
7
+ width: number;
8
+ offset: number;
9
+ left?: number;
10
+ right?: number;
11
+ selection?: boolean;
12
+ gap?: boolean;
13
+ }
14
+ export declare function useVirtualTableLayout<T extends object>(props: HysVirtualTableProps<T>, count: () => number, lastKey: () => string | undefined, report: {
15
+ scroll: (state: HysVirtualTableScroll) => void;
16
+ range: (state: HysVirtualTableRange) => void;
17
+ end: (state: {
18
+ distance: number;
19
+ total: number;
20
+ }) => void;
21
+ }): {
22
+ viewport: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
23
+ live: import("vue").Ref<boolean, boolean>;
24
+ rowHeight: import("vue").ComputedRef<number>;
25
+ headerHeight: import("vue").ComputedRef<number>;
26
+ topHeight: import("vue").ComputedRef<number>;
27
+ bodyHeight: import("vue").ComputedRef<number>;
28
+ rootStyle: import("vue").ComputedRef<{
29
+ width: string | undefined;
30
+ }>;
31
+ viewportStyle: import("vue").ComputedRef<{
32
+ height: string;
33
+ }>;
34
+ columns: import("vue").ComputedRef<VirtualColumn<T>[]>;
35
+ columnMap: import("vue").ComputedRef<Map<string, VirtualColumn<T>>>;
36
+ renderColumns: import("vue").ComputedRef<VirtualColumn<T>[]>;
37
+ contentWidth: import("vue").ComputedRef<number>;
38
+ scrollTop: import("vue").Ref<number, number>;
39
+ scrollLeft: import("vue").Ref<number, number>;
40
+ range: import("vue").ComputedRef<HysVirtualTableRange>;
41
+ scrollTo: (options: {
42
+ top?: number;
43
+ left?: number;
44
+ behavior?: ScrollBehavior;
45
+ }) => void;
46
+ scrollToRow: (index: number, align?: HysVirtualTableAlign) => void;
47
+ scrollToColumn: (key: string, align?: HysVirtualTableAlign) => boolean;
48
+ onScroll: () => void;
49
+ remeasure: () => void;
50
+ };
51
+ export declare function virtualColumnStyle<T extends object>(cell: VirtualColumn<T>): CSSProperties;
@@ -0,0 +1,126 @@
1
+ import type { CSSProperties, HTMLAttributes, VNodeChild } from "vue";
2
+ export type HysVirtualTableKey = string | number;
3
+ export type HysVirtualTableAlign = "start" | "center" | "end" | "nearest";
4
+ export interface HysVirtualTableSort {
5
+ key: string;
6
+ direction: "asc" | "desc";
7
+ }
8
+ export interface HysVirtualTableCell<T extends object = Record<string, unknown>> {
9
+ row: T;
10
+ column: HysVirtualTableColumn<T>;
11
+ value: unknown;
12
+ rowIndex: number;
13
+ columnIndex: number;
14
+ }
15
+ export interface HysVirtualTableColumn<T extends object = any> {
16
+ key: string;
17
+ label: string;
18
+ width?: number;
19
+ minWidth?: number;
20
+ maxWidth?: number;
21
+ dataIndex?: string | readonly (string | number)[];
22
+ valueGetter?: (row: T, index: number) => unknown;
23
+ formatter?: (context: HysVirtualTableCell<T>) => VNodeChild;
24
+ fixed?: boolean | "left" | "right";
25
+ hidden?: boolean;
26
+ align?: "left" | "center" | "right";
27
+ headerAlign?: "left" | "center" | "right";
28
+ sortable?: boolean | "custom";
29
+ sorter?: (a: T, b: T) => number;
30
+ className?: string;
31
+ headerClassName?: string;
32
+ }
33
+ export interface HysVirtualTableRange {
34
+ start: number;
35
+ end: number;
36
+ visibleStart: number;
37
+ visibleEnd: number;
38
+ columnKeys: string[];
39
+ }
40
+ export interface HysVirtualTableScroll {
41
+ scrollTop: number;
42
+ scrollLeft: number;
43
+ direction: "up" | "down" | "left" | "right" | null;
44
+ }
45
+ export interface HysVirtualTableProps<T extends object> {
46
+ rows: readonly T[];
47
+ columns: readonly HysVirtualTableColumn<T>[];
48
+ rowKey?: string | ((row: T, index: number) => HysVirtualTableKey);
49
+ rowHeight?: number;
50
+ height?: number | string;
51
+ width?: number | string;
52
+ headerHeight?: number;
53
+ showHeader?: boolean;
54
+ fit?: boolean;
55
+ overscan?: number;
56
+ virtualColumns?: boolean;
57
+ columnOverscan?: number;
58
+ loading?: boolean;
59
+ loadingMode?: "replace" | "overlay";
60
+ loadingText?: string;
61
+ emptyText?: string;
62
+ disabled?: boolean;
63
+ fixedRows?: readonly T[];
64
+ striped?: boolean;
65
+ bordered?: boolean;
66
+ sortState?: HysVirtualTableSort | null;
67
+ defaultSort?: HysVirtualTableSort | null;
68
+ selectable?: boolean | ((row: T, index: number) => boolean);
69
+ selectedRowKeys?: readonly HysVirtualTableKey[];
70
+ defaultSelectedRowKeys?: readonly HysVirtualTableKey[];
71
+ selectionType?: "checkbox" | "radio";
72
+ selectionWidth?: number;
73
+ reserveSelection?: boolean;
74
+ selectOnClick?: boolean;
75
+ currentRowKey?: HysVirtualTableKey | null;
76
+ defaultCurrentRowKey?: HysVirtualTableKey | null;
77
+ highlightCurrentRow?: boolean;
78
+ keyboard?: boolean;
79
+ endReachedThreshold?: number;
80
+ ariaLabel?: string;
81
+ rowClassName?: string | ((row: T, index: number) => string);
82
+ rowStyle?: CSSProperties | ((row: T, index: number) => CSSProperties);
83
+ cellClassName?: string | ((context: HysVirtualTableCell<T>) => string);
84
+ cellStyle?: CSSProperties | ((context: HysVirtualTableCell<T>) => CSSProperties);
85
+ customRow?: (row: T, index: number) => HTMLAttributes;
86
+ customCell?: (context: HysVirtualTableCell<T>) => HTMLAttributes;
87
+ customHeaderCell?: (column: HysVirtualTableColumn<T>, index: number) => HTMLAttributes;
88
+ }
89
+ export interface HysVirtualTableInstance<T extends object = Record<string, unknown>> {
90
+ readonly element: HTMLElement | undefined;
91
+ readonly viewport: HTMLElement | undefined;
92
+ readonly scrollTop: number;
93
+ readonly scrollLeft: number;
94
+ readonly range: HysVirtualTableRange;
95
+ readonly selectedRowKeys: HysVirtualTableKey[];
96
+ readonly sortState: HysVirtualTableSort | null;
97
+ scrollTo(options: {
98
+ top?: number;
99
+ left?: number;
100
+ behavior?: ScrollBehavior;
101
+ }): void;
102
+ scrollToRow(index: number, align?: HysVirtualTableAlign): void;
103
+ scrollToKey(key: HysVirtualTableKey, align?: HysVirtualTableAlign): boolean;
104
+ scrollToColumn(key: string, align?: HysVirtualTableAlign): boolean;
105
+ focusCell(index: number, key?: string): Promise<boolean>;
106
+ setSort(sort: HysVirtualTableSort | null): Promise<boolean>;
107
+ clearSelection(): Promise<boolean>;
108
+ toggleRowSelection(key: HysVirtualTableKey, selected?: boolean): Promise<boolean>;
109
+ selectAll(selected?: boolean): Promise<boolean>;
110
+ setCurrentRow(key: HysVirtualTableKey | null): Promise<boolean>;
111
+ getRow(index: number): T | undefined;
112
+ remeasure(): void;
113
+ }
114
+ export declare const virtualFinite: (value: unknown, fallback: number, min?: number, max?: number) => number;
115
+ export declare const virtualKey: (key: unknown) => key is HysVirtualTableKey;
116
+ export declare const virtualToken: (key: HysVirtualTableKey) => string;
117
+ export declare function virtualValue<T extends object>(row: T, column: HysVirtualTableColumn<T>, index: number): unknown;
118
+ export interface VirtualEntry<T extends object> {
119
+ row: T;
120
+ key: HysVirtualTableKey;
121
+ token: string;
122
+ sourceIndex: number;
123
+ valid: boolean;
124
+ }
125
+ export declare function virtualEntries<T extends object>(rows: readonly T[], rowKey: HysVirtualTableProps<T>["rowKey"]): VirtualEntry<T>[];
126
+ export declare function virtualAligned(start: number, size: number, scroll: number, extent: number, align: HysVirtualTableAlign): number;
@@ -4,6 +4,7 @@ export type HysMotion = 'full' | 'subtle' | 'off';
4
4
  export interface HysConfig {
5
5
  theme?: MaybeRefOrGetter<HysTheme>;
6
6
  motion?: MaybeRefOrGetter<HysMotion>;
7
+ buttonAutoInsertSpace?: MaybeRefOrGetter<boolean>;
7
8
  }
8
9
  /** Call in a component setup. Reactive options are inherited by children and teleported panels. */
9
10
  export declare function provideHysConfig(config: HysConfig): void;