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,83 @@
1
+ import type { CSSProperties, VNodeChild } from "vue";
2
+ import type { HysPopupMotionProps } from "../motion/popup";
3
+ import type { Placement } from "./useFloating";
4
+ export type HysPopupPlacement = Placement;
5
+ export type HysPopupTrigger = "hover" | "focus" | "click" | "contextmenu" | "manual";
6
+ export interface HysPopupVirtualReference {
7
+ getBoundingClientRect: () => DOMRect;
8
+ contextElement?: HTMLElement;
9
+ }
10
+ export type HysPopupReference = HTMLElement | HysPopupVirtualReference;
11
+ export interface HysPopupSurfaceProps extends HysPopupMotionProps {
12
+ open?: boolean;
13
+ modelValue?: boolean;
14
+ defaultOpen?: boolean;
15
+ disabled?: boolean;
16
+ trigger?: HysPopupTrigger | readonly HysPopupTrigger[];
17
+ triggerKeys?: readonly string[];
18
+ triggerTabindex?: number;
19
+ placement?: HysPopupPlacement;
20
+ offset?: number;
21
+ autoAdjustOverflow?: boolean;
22
+ showDelay?: number;
23
+ hideDelay?: number;
24
+ autoClose?: number;
25
+ enterable?: boolean;
26
+ closeOnEscape?: boolean;
27
+ closeOnOutside?: boolean;
28
+ destroyOnHide?: boolean;
29
+ forceRender?: boolean;
30
+ appendTo?: string | HTMLElement | false;
31
+ reference?: HysPopupReference | (() => HysPopupReference | undefined);
32
+ width?: string | number;
33
+ maxWidth?: string | number;
34
+ maxHeight?: string | number;
35
+ showArrow?: boolean;
36
+ arrowOffset?: number;
37
+ effect?: "light" | "dark";
38
+ color?: string;
39
+ textColor?: string;
40
+ overlayClass?: string;
41
+ overlayStyle?: CSSProperties;
42
+ contentClass?: string;
43
+ contentStyle?: CSSProperties;
44
+ zIndex?: number;
45
+ ariaLabel?: string;
46
+ }
47
+ export interface HysTooltipProps extends HysPopupSurfaceProps {
48
+ text?: string;
49
+ }
50
+ export interface HysPopoverProps extends HysPopupSurfaceProps {
51
+ title?: string;
52
+ content?: string;
53
+ }
54
+ export interface HysPopupSurfaceContext {
55
+ open: boolean;
56
+ show: () => Promise<boolean>;
57
+ close: () => Promise<boolean>;
58
+ toggle: () => Promise<boolean>;
59
+ updatePosition: () => void;
60
+ }
61
+ export interface HysTooltipSlots {
62
+ default?: (scope: HysPopupSurfaceContext) => VNodeChild;
63
+ content?: (scope: HysPopupSurfaceContext) => VNodeChild;
64
+ }
65
+ export interface HysPopoverSlots {
66
+ trigger?: (scope: HysPopupSurfaceContext) => VNodeChild;
67
+ default?: (scope: HysPopupSurfaceContext) => VNodeChild;
68
+ title?: (scope: HysPopupSurfaceContext) => VNodeChild;
69
+ }
70
+ export interface HysPopupSurfaceInstance {
71
+ readonly element: HTMLElement | undefined;
72
+ readonly referenceElement: HTMLElement | undefined;
73
+ readonly open: boolean;
74
+ readonly placement: HysPopupPlacement;
75
+ show: () => Promise<boolean>;
76
+ hide: () => Promise<boolean>;
77
+ close: () => Promise<boolean>;
78
+ toggle: () => Promise<boolean>;
79
+ updatePosition: () => void;
80
+ focus: () => void;
81
+ }
82
+ export type HysTooltipInstance = HysPopupSurfaceInstance;
83
+ export type HysPopoverInstance = HysPopupSurfaceInstance;
@@ -0,0 +1,92 @@
1
+ import type { VNodeChild } from "vue";
2
+ export type HysProgressType = "line" | "circle" | "dashboard";
3
+ export type HysProgressStatus = "normal" | "success" | "warning" | "error" | "active";
4
+ export type HysProgressSize = "sm" | "md" | "lg";
5
+ export type HysProgressLinecap = "round" | "butt" | "square";
6
+ export type HysProgressGapPosition = "top" | "right" | "bottom" | "left";
7
+ export type HysProgressGradientDirection = number | "to right" | "to left" | "to top" | "to bottom" | "to top right" | "to top left" | "to bottom right" | "to bottom left";
8
+ export interface HysProgressGradientStop {
9
+ offset: number;
10
+ color: string;
11
+ }
12
+ export interface HysProgressGradient {
13
+ from: string;
14
+ to: string;
15
+ direction?: HysProgressGradientDirection;
16
+ stops?: readonly HysProgressGradientStop[];
17
+ }
18
+ export interface HysProgressColorStop {
19
+ value: number;
20
+ color: string;
21
+ }
22
+ export type HysProgressColor = string | ((value: number) => string) | readonly HysProgressColorStop[] | readonly string[] | HysProgressGradient;
23
+ export interface HysProgressSuccess {
24
+ value: number;
25
+ color?: HysProgressColor;
26
+ }
27
+ export interface HysProgressLabelContext {
28
+ value: number;
29
+ successValue: number;
30
+ status: HysProgressStatus;
31
+ indeterminate: boolean;
32
+ }
33
+ export interface HysProgressProps {
34
+ value: number;
35
+ showLabel?: boolean;
36
+ color?: HysProgressColor;
37
+ status?: HysProgressStatus;
38
+ strokeWidth?: number;
39
+ type?: HysProgressType;
40
+ width?: number | string;
41
+ format?: (value: number, successValue: number) => VNodeChild;
42
+ indeterminate?: boolean;
43
+ size?: HysProgressSize;
44
+ textInside?: boolean;
45
+ textColor?: string;
46
+ precision?: number;
47
+ showStatusIcon?: boolean;
48
+ trailColor?: string;
49
+ strokeLinecap?: HysProgressLinecap;
50
+ success?: HysProgressSuccess;
51
+ steps?: number;
52
+ stepGap?: number;
53
+ gapDegree?: number;
54
+ gapPosition?: HysProgressGapPosition;
55
+ striped?: boolean;
56
+ stripedFlow?: boolean;
57
+ animated?: boolean;
58
+ duration?: number;
59
+ flowDuration?: number;
60
+ ariaLabel?: string;
61
+ ariaValueText?: string | ((context: HysProgressLabelContext) => string);
62
+ }
63
+ export interface HysProgressSlots {
64
+ default?: (context: HysProgressLabelContext) => VNodeChild;
65
+ icon?: (context: HysProgressLabelContext) => VNodeChild;
66
+ }
67
+ export interface HysProgressInstance {
68
+ readonly element: HTMLElement | undefined;
69
+ readonly value: number;
70
+ readonly successValue: number;
71
+ readonly status: HysProgressStatus;
72
+ }
73
+ export declare const progressPercent: (value: number | undefined) => number;
74
+ export declare const progressNumber: (value: number | undefined, fallback: number, min: number, max: number) => number;
75
+ export declare const progressStatusColor: (status: HysProgressStatus) => string;
76
+ export type ProgressPaint = {
77
+ color: string;
78
+ gradient?: {
79
+ stops: HysProgressGradientStop[];
80
+ angle: number;
81
+ };
82
+ };
83
+ export declare function progressPaint(color: HysProgressColor | undefined, value: number, fallback: string): ProgressPaint;
84
+ export declare function progressCssPaint(paint: ProgressPaint): string;
85
+ export declare function progressGradientCoordinates(degrees: number): {
86
+ x1: number;
87
+ y1: number;
88
+ x2: number;
89
+ y2: number;
90
+ };
91
+ export declare function progressArc(radius: number, start: number, degrees: number): string;
92
+ export declare const progressId: () => string;
@@ -1,5 +1,10 @@
1
1
  export type HysSelectValue = string | number | boolean | Record<string, unknown>;
2
2
  export type HysSelectModelValue = HysSelectValue | HysSelectValue[] | null;
3
+ export type HysSelectLabeledValue = {
4
+ value: HysSelectValue;
5
+ label: string;
6
+ };
7
+ export declare function isSelectLabeledValue(value: HysSelectValue): value is HysSelectLabeledValue;
3
8
  export interface HysSelectOption {
4
9
  label: string;
5
10
  value: HysSelectValue;
@@ -29,6 +34,8 @@ export interface HysSelectInstance {
29
34
  close: () => void;
30
35
  scrollTo: (value: HysSelectValue) => void;
31
36
  retry: () => void;
37
+ selectAll: () => number;
38
+ deselectAll: () => number;
32
39
  selected: HysSelectOption[];
33
40
  query: string;
34
41
  isOpen: boolean;
@@ -0,0 +1,11 @@
1
+ import type { HysSplitPaneLength } from "../components/HysSplitPane/HysSplitPane.vue";
2
+ export declare const paneEpsilon = 1e-7;
3
+ export declare function paneRatio(value: HysSplitPaneLength | undefined, available: number): number | undefined;
4
+ interface PanePreference {
5
+ min: number;
6
+ max: number;
7
+ preferred?: number;
8
+ relative?: boolean;
9
+ }
10
+ export declare function fitPaneSizes(panes: readonly PanePreference[]): number[];
11
+ export {};
@@ -1,4 +1,5 @@
1
- import type { CSSProperties, HTMLAttributes, VNodeChild } from "vue";
1
+ import type { HysPopupTransition } from '../motion/popup';
2
+ import type { Component, CSSProperties, HTMLAttributes, VNodeChild } from "vue";
2
3
  import type { Placement } from "./useFloating";
3
4
  export type HysTableKey = string | number;
4
5
  export type HysTableDirection = "asc" | "desc";
@@ -19,6 +20,22 @@ export interface HysTableSelectionColumn {
19
20
  fixed?: boolean | "left" | "right";
20
21
  align?: "left" | "center" | "right";
21
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
+ }
22
39
  export interface HysTableFilterConfirmOptions {
23
40
  closeDropdown?: boolean;
24
41
  }
@@ -29,12 +46,26 @@ export interface HysTableScrollRowOptions {
29
46
  behavior?: ScrollBehavior;
30
47
  block?: "start" | "center" | "end" | "nearest";
31
48
  }
49
+ export interface HysTableStickyOptions {
50
+ offsetHeader?: number;
51
+ offsetScroll?: number;
52
+ getContainer?: () => HTMLElement | Window | null | undefined;
53
+ }
32
54
  export interface HysTableFilter {
33
55
  label: string;
34
56
  value: HysTableFilterValue;
35
57
  disabled?: boolean;
36
58
  children?: readonly HysTableFilter[];
37
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
+ }
38
69
  export type HysTableElementAttrs = HTMLAttributes & Record<string, unknown>;
39
70
  export type HysTablePaginationPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
40
71
  export interface HysTableCellContext<T extends object = Record<string, unknown>> {
@@ -44,6 +75,28 @@ export interface HysTableCellContext<T extends object = Record<string, unknown>>
44
75
  rowIndex: number;
45
76
  columnIndex: number;
46
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
+ }
47
100
  export interface HysTableColumn<T extends object = any> {
48
101
  key: string;
49
102
  label: string;
@@ -56,11 +109,18 @@ export interface HysTableColumn<T extends object = any> {
56
109
  fixed?: boolean | "left" | "right";
57
110
  align?: "left" | "center" | "right";
58
111
  headerAlign?: "left" | "center" | "right";
112
+ /** 合并同一层、同一固定区域内相邻的叶列表头。0 隐藏标题。 */
113
+ headerColSpan?: number;
114
+ /** 表头插槽未提供内容时渲染列标题。 */
115
+ renderHeader?: (column: HysTableColumn<T>, sorts: readonly HysTableSort[]) => VNodeChild;
59
116
  sortable?: boolean | "custom";
60
117
  sorter?: (a: T, b: T) => number;
61
118
  sortBy?: string | ((row: T) => unknown) | readonly (string | ((row: T) => unknown))[];
62
119
  sortOrders?: readonly (HysTableDirection | null)[];
63
120
  defaultSortOrder?: HysTableDirection;
121
+ /** 受控排序方向,null 清除该列排序。表格级 sort 和 sorts 优先。 */
122
+ sortOrder?: HysTableDirection | null;
123
+ showSorterTooltip?: boolean | HysTableOverflowTooltipOptions;
64
124
  sortPriority?: number;
65
125
  filters?: readonly HysTableFilter[];
66
126
  filterable?: boolean;
@@ -68,11 +128,25 @@ export interface HysTableColumn<T extends object = any> {
68
128
  filterMode?: "menu" | "tree";
69
129
  filterSearch?: boolean | ((query: string, option: HysTableFilter) => boolean);
70
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;
71
143
  filterResetToDefault?: boolean;
72
144
  filterMethod?: (value: HysTableFilterValue, row: T, column: HysTableColumn<T>) => boolean;
73
145
  formatter?: (row: T, column: HysTableColumn<T>, value: unknown, index: number) => VNodeChild;
74
- ellipsis?: boolean;
75
- showOverflowTooltip?: boolean;
146
+ ellipsis?: boolean | {
147
+ showTitle?: boolean;
148
+ };
149
+ showOverflowTooltip?: boolean | HysTableOverflowTooltipOptions;
76
150
  tooltipFormatter?: (context: HysTableCellContext<T>) => VNodeChild;
77
151
  className?: string;
78
152
  headerClassName?: string;
@@ -90,12 +164,20 @@ export interface HysTablePagination {
90
164
  position?: readonly HysTablePaginationPosition[];
91
165
  page?: number;
92
166
  pageSize?: number;
167
+ defaultPage?: number;
168
+ defaultPageSize?: number;
93
169
  total?: number;
170
+ /** 服务端分页的总页数,可在总记录数未知时使用。 */
171
+ pageCount?: number;
94
172
  pageSizeOptions?: number[];
95
173
  showSizeChanger?: boolean;
96
174
  showQuickJumper?: boolean;
97
175
  showTotal?: boolean;
98
176
  compact?: boolean;
177
+ layout?: string;
178
+ size?: "sm" | "md" | "lg";
179
+ responsive?: boolean;
180
+ siblingCount?: number;
99
181
  hideOnSinglePage?: boolean;
100
182
  }
101
183
  export interface HysTableQuery<T extends object = Record<string, unknown>> {
@@ -130,6 +212,8 @@ export interface HysTableLocale {
130
212
  resizeColumn: string;
131
213
  sortAsc: string;
132
214
  sortDesc: string;
215
+ sortClear?: string;
216
+ stickyScrollLabel?: string;
133
217
  filterSearch?: string;
134
218
  noFilterMatch?: string;
135
219
  invertSelection?: string;
@@ -140,6 +224,9 @@ export interface HysTableLocale {
140
224
  perPage: string;
141
225
  jump: string;
142
226
  page: string;
227
+ pageItem: string;
228
+ navigation: string;
229
+ confirm: string;
143
230
  first: string;
144
231
  previous: string;
145
232
  next: string;
@@ -147,12 +234,18 @@ export interface HysTableLocale {
147
234
  }>;
148
235
  }
149
236
  export interface HysTableProps<T extends object> {
237
+ popupTransition?: HysPopupTransition;
238
+ popupTransitionDuration?: number;
150
239
  locale?: Partial<HysTableLocale>;
151
240
  columns: readonly HysTableColumn<T>[];
152
241
  rows: readonly T[];
242
+ /** 替换表格的结构组件。自定义组件需转发属性与默认插槽,并保留原生表格元素。 */
243
+ components?: HysTableComponents;
153
244
  rowKey?: string | ((row: T) => HysTableKey);
154
245
  emptyText?: string;
155
246
  loading?: boolean;
247
+ /** replace 用加载行替换数据,overlay 保留当前行并覆盖加载提示。 */
248
+ loadingMode?: "replace" | "overlay";
156
249
  disabled?: boolean;
157
250
  striped?: boolean;
158
251
  bordered?: boolean;
@@ -162,9 +255,15 @@ export interface HysTableProps<T extends object> {
162
255
  height?: number | string;
163
256
  maxHeight?: number | string;
164
257
  stickyHeader?: boolean;
258
+ /** 随页面或自定义容器滚动固定表头和水平滚动条。 */
259
+ sticky?: boolean | HysTableStickyOptions;
165
260
  showHeader?: boolean;
166
261
  fit?: boolean;
262
+ /** 表格横向最小宽度,用于控制滚动区域内的列布局。 */
263
+ scrollWidth?: number | string;
167
264
  scrollbarAlwaysOn?: boolean;
265
+ /** 使用浏览器默认的滚动条样式。 */
266
+ nativeScrollbar?: boolean;
168
267
  scrollbarTabindex?: number | string;
169
268
  headerRowClassName?: string | ((columns: readonly HysTableColumn<T>[], level: number) => string);
170
269
  headerRowStyle?: CSSProperties | ((columns: readonly HysTableColumn<T>[], level: number) => CSSProperties);
@@ -185,7 +284,7 @@ export interface HysTableProps<T extends object> {
185
284
  reserveSelection?: boolean;
186
285
  checkStrictly?: boolean;
187
286
  selectOnIndeterminate?: boolean;
188
- selectionActions?: boolean;
287
+ selectionActions?: boolean | readonly HysTableSelectionAction<T>[];
189
288
  rangeSelection?: boolean;
190
289
  hideSelectAll?: boolean;
191
290
  selectionColumn?: HysTableSelectionColumn;
@@ -200,11 +299,15 @@ export interface HysTableProps<T extends object> {
200
299
  defaultSort?: HysTableSort | readonly HysTableSort[] | null;
201
300
  multiSort?: boolean;
202
301
  sortOrders?: readonly (HysTableDirection | null)[];
302
+ /** 悬停或聚焦列标题时提示下一次排序操作。 */
303
+ showSorterTooltip?: boolean | HysTableOverflowTooltipOptions;
203
304
  filters?: HysTableFilters;
204
305
  defaultFilters?: HysTableFilters;
205
306
  filterColumnKey?: string | null;
206
307
  filterPlacement?: Placement;
207
308
  appendFilterTo?: string | HTMLElement | false;
309
+ /** 根据触发元素指定排序、溢出与筛选浮层的挂载目标。 */
310
+ getPopupContainer?: (trigger: HTMLElement) => HTMLElement | string | false | undefined;
208
311
  pagination?: boolean | HysTablePagination;
209
312
  page?: number;
210
313
  pageSize?: number;
@@ -227,6 +330,10 @@ export interface HysTableProps<T extends object> {
227
330
  indent?: number;
228
331
  loadChildren?: (row: T, context: HysTableLoadContext) => readonly T[] | Promise<readonly T[]>;
229
332
  showSummary?: boolean;
333
+ /** 汇总全部筛选结果,或仅汇总当前页实际显示的行。 */
334
+ summaryScope?: "filtered" | "page";
335
+ /** 将汇总行固定在表格滚动区域底部。 */
336
+ stickySummary?: boolean;
230
337
  sumText?: string;
231
338
  summaryMethod?: (context: {
232
339
  columns: readonly HysTableColumn<T>[];
@@ -236,8 +343,13 @@ export interface HysTableProps<T extends object> {
236
343
  rowspan?: number;
237
344
  colspan?: number;
238
345
  } | readonly [number, number] | undefined;
239
- showOverflowTooltip?: boolean;
346
+ /** 默认溢出提示,列可覆盖配置或设置 false 关闭。 */
347
+ showOverflowTooltip?: boolean | HysTableOverflowTooltipOptions;
240
348
  tooltipFormatter?: (context: HysTableCellContext<T>) => VNodeChild;
349
+ /** 在列格式化后统一处理默认单元格内容。 */
350
+ transformCellText?: (context: HysTableCellContext<T> & {
351
+ text: VNodeChild;
352
+ }) => VNodeChild;
241
353
  resizable?: boolean;
242
354
  columnWidths?: Readonly<Record<string, number>>;
243
355
  allowDragLastColumn?: boolean;
@@ -253,7 +365,7 @@ export interface HysTableInstance<T extends object = Record<string, unknown>> {
253
365
  clearSelection: () => Promise<boolean>;
254
366
  getSelectionRows: () => T[];
255
367
  getHalfSelectionRows: () => T[];
256
- toggleRowSelection: (row: T | HysTableKey, selected?: boolean, range?: boolean) => Promise<boolean>;
368
+ toggleRowSelection: (row: T | HysTableKey, selected?: boolean, options?: boolean | HysTableRowSelectionOptions) => Promise<boolean>;
257
369
  toggleAllSelection: (selected?: boolean) => Promise<boolean>;
258
370
  invertSelection: () => Promise<boolean>;
259
371
  setCurrentRow: (row?: T | HysTableKey | null) => Promise<boolean>;
@@ -292,6 +404,7 @@ export interface TableHeader<T extends object> {
292
404
  leaves: HysTableColumn<T>[];
293
405
  colspan: number;
294
406
  rowspan: number;
407
+ blank?: boolean;
295
408
  fixed?: "left" | "right";
296
409
  }
297
410
  export declare const tableToken: (key: HysTableKey) => string;
@@ -0,0 +1,96 @@
1
+ import type { Component, VNodeChild } from "vue";
2
+ import type { HysPopupMotionProps } from "../motion/popup";
3
+ export type HysTagInputReason = "keyboard" | "blur" | "separator" | "paste" | "api";
4
+ export interface HysTagInputAddContext {
5
+ signal: AbortSignal;
6
+ values: readonly string[];
7
+ reason: HysTagInputReason;
8
+ }
9
+ export interface HysTagInputInvalid {
10
+ value: string;
11
+ reason: "duplicate" | "max" | "guard" | "error" | "maxlength" | "minlength";
12
+ error?: Error;
13
+ }
14
+ export interface HysTagInputProps extends HysPopupMotionProps {
15
+ modelValue?: readonly string[];
16
+ defaultValue?: readonly string[];
17
+ max?: number;
18
+ placeholder?: string;
19
+ disabled?: boolean;
20
+ readonly?: boolean;
21
+ size?: "sm" | "md" | "lg";
22
+ addOnBlur?: boolean;
23
+ separator?: string;
24
+ delimiters?: string | readonly string[] | RegExp;
25
+ trigger?: "Enter" | "Space" | "Tab" | readonly string[];
26
+ beforeAdd?: (value: string, context: HysTagInputAddContext) => boolean | void | Promise<boolean | void>;
27
+ allowDuplicates?: boolean;
28
+ caseSensitive?: boolean;
29
+ trim?: boolean;
30
+ clearable?: boolean;
31
+ clearIcon?: Component;
32
+ tagTone?: "primary" | "success" | "warning" | "danger" | "neutral";
33
+ tagEffect?: "light" | "dark" | "outline";
34
+ tagRound?: boolean;
35
+ draggable?: boolean;
36
+ collapseTags?: boolean;
37
+ maxCollapseTags?: number;
38
+ collapseTagsTooltip?: boolean;
39
+ overflowHeight?: number;
40
+ maxTagTextLength?: number;
41
+ maxlength?: number;
42
+ minlength?: number;
43
+ ariaLabel?: string;
44
+ label?: string;
45
+ name?: string;
46
+ form?: string;
47
+ autocomplete?: string;
48
+ autofocus?: boolean;
49
+ tabindex?: number;
50
+ status?: "error" | "warning" | "success";
51
+ error?: string;
52
+ validateEvent?: boolean;
53
+ inputProps?: Record<string, unknown>;
54
+ }
55
+ export interface HysTagInputSlotContext {
56
+ values: readonly string[];
57
+ draft: string;
58
+ disabled: boolean;
59
+ readonly: boolean;
60
+ pending: boolean;
61
+ add: (value?: string | string[]) => Promise<boolean>;
62
+ clear: () => Promise<boolean>;
63
+ }
64
+ export interface HysTagInputTagContext {
65
+ value: string;
66
+ index: number;
67
+ disabled: boolean;
68
+ readonly: boolean;
69
+ remove: () => Promise<boolean>;
70
+ }
71
+ export interface HysTagInputSlots {
72
+ tag?: (context: HysTagInputTagContext) => VNodeChild;
73
+ prefix?: (context: HysTagInputSlotContext) => VNodeChild;
74
+ suffix?: (context: HysTagInputSlotContext) => VNodeChild;
75
+ "clear-icon"?: (context: HysTagInputSlotContext) => VNodeChild;
76
+ "remove-icon"?: (context: HysTagInputTagContext) => VNodeChild;
77
+ "collapse-tag"?: (context: {
78
+ count: number;
79
+ values: readonly string[];
80
+ }) => VNodeChild;
81
+ }
82
+ export interface HysTagInputInstance {
83
+ readonly element: HTMLElement | undefined;
84
+ readonly input: HTMLInputElement | undefined;
85
+ readonly values: readonly string[];
86
+ readonly draft: string;
87
+ readonly pending: boolean;
88
+ focus: (options?: FocusOptions) => void;
89
+ blur: () => void;
90
+ add: (value?: string | string[]) => Promise<boolean>;
91
+ remove: (index: number) => Promise<boolean>;
92
+ clear: () => Promise<boolean>;
93
+ move: (from: number, to: number) => Promise<boolean>;
94
+ setDraft: (value: string) => void;
95
+ }
96
+ export declare function splitTags(value: string, separator?: string | readonly string[] | RegExp): string[];
@@ -0,0 +1,82 @@
1
+ import type { Component, VNodeChild } from "vue";
2
+ export type HysTimelineKey = string | number;
3
+ export type HysTimelineMode = "left" | "right" | "alternate" | "alternate-reverse";
4
+ export type HysTimelinePosition = "left" | "right";
5
+ export type HysTimelineSize = "sm" | "md" | "lg";
6
+ export type HysTimelineTone = "primary" | "success" | "warning" | "danger" | "info" | "neutral";
7
+ export interface HysTimelineItem {
8
+ id?: HysTimelineKey;
9
+ key?: HysTimelineKey;
10
+ title: string;
11
+ time?: string;
12
+ dateTime?: string;
13
+ description?: string;
14
+ status?: "done" | "current" | "pending";
15
+ color?: string;
16
+ label?: string;
17
+ position?: HysTimelinePosition;
18
+ tone?: HysTimelineTone;
19
+ size?: HysTimelineSize | number;
20
+ hollow?: boolean;
21
+ loading?: boolean;
22
+ icon?: Component;
23
+ hideTime?: boolean;
24
+ timePlacement?: "top" | "bottom";
25
+ }
26
+ export type HysTimelineFieldNames = Partial<Record<keyof HysTimelineItem, string>>;
27
+ export interface HysTimelineProps<T extends object = HysTimelineItem> {
28
+ items: readonly T[];
29
+ reverse?: boolean;
30
+ pending?: string | boolean;
31
+ mode?: HysTimelineMode;
32
+ itemKey?: string | ((item: T, index: number) => HysTimelineKey);
33
+ fieldNames?: HysTimelineFieldNames;
34
+ size?: HysTimelineSize;
35
+ hollow?: boolean;
36
+ showTime?: boolean;
37
+ timePlacement?: "top" | "bottom";
38
+ responsive?: boolean;
39
+ lineStyle?: "solid" | "dashed" | "dotted";
40
+ lineColor?: string;
41
+ pendingPosition?: "start" | "end";
42
+ pendingLoading?: boolean;
43
+ pendingText?: string;
44
+ emptyText?: string;
45
+ ariaLabel?: string;
46
+ }
47
+ export interface HysTimelineItemContext<T extends object = HysTimelineItem> {
48
+ item: T;
49
+ index: number;
50
+ sourceIndex: number;
51
+ key: HysTimelineKey;
52
+ title: string;
53
+ time: string;
54
+ description: string;
55
+ label: string;
56
+ position: HysTimelinePosition;
57
+ status: HysTimelineItem["status"];
58
+ tone: HysTimelineTone;
59
+ loading: boolean;
60
+ }
61
+ export interface HysTimelinePendingContext {
62
+ pending: string | boolean | undefined;
63
+ loading: boolean;
64
+ }
65
+ export interface HysTimelineSlots<T extends object = HysTimelineItem> {
66
+ item?: (context: HysTimelineItemContext<T>) => VNodeChild;
67
+ title?: (context: HysTimelineItemContext<T>) => VNodeChild;
68
+ description?: (context: HysTimelineItemContext<T>) => VNodeChild;
69
+ time?: (context: HysTimelineItemContext<T>) => VNodeChild;
70
+ label?: (context: HysTimelineItemContext<T>) => VNodeChild;
71
+ dot?: (context: HysTimelineItemContext<T>) => VNodeChild;
72
+ pending?: (context: HysTimelinePendingContext) => VNodeChild;
73
+ "pending-dot"?: (context: HysTimelinePendingContext) => VNodeChild;
74
+ empty?: () => VNodeChild;
75
+ }
76
+ export interface HysTimelineInstance<T extends object = HysTimelineItem> {
77
+ readonly element: HTMLOListElement | undefined;
78
+ getItems: () => T[];
79
+ }
80
+ export declare function timelineRead(item: object, path: string): unknown;
81
+ export declare const timelineText: (value: unknown) => string;
82
+ export declare const timelineTone: (tone: HysTimelineTone) => string;