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,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
+ }
@@ -32,6 +32,8 @@ export interface HysTransferLocale {
32
32
  moveLeft: string;
33
33
  dragRight: string;
34
34
  dragLeft: string;
35
+ doubleClickRight?: string;
36
+ doubleClickLeft?: string;
35
37
  dragCount: string;
36
38
  moved: string;
37
39
  added: string;
@@ -78,7 +80,12 @@ export interface HysTransferProps<T extends object, K extends HysTransferKey> {
78
80
  oneWay?: boolean;
79
81
  draggable?: boolean;
80
82
  dragChecked?: boolean;
83
+ moveOnDoubleClick?: boolean;
81
84
  animated?: boolean;
85
+ moveAnimation?: "flight" | "fade" | "none";
86
+ moveDuration?: number;
87
+ maxAnimatedItems?: number;
88
+ highlightOnArrival?: boolean;
82
89
  size?: "sm" | "md" | "lg";
83
90
  listHeight?: number;
84
91
  listStyle?: CSSProperties;
@@ -1,3 +1,4 @@
1
+ import type { HysPopupTransition } from '../motion/popup';
1
2
  import type { CSSProperties, VNodeChild } from "vue";
2
3
  export type HysTreeKey = string | number;
3
4
  export type HysTreeValue = HysTreeKey | readonly HysTreeKey[] | null;
@@ -104,6 +105,8 @@ export interface HysTreeNodeContext<N extends object> {
104
105
  leaf: boolean;
105
106
  }
106
107
  export interface HysTreeProps<N extends object = TreeNode, V extends HysTreeValue = HysTreeValue> {
108
+ popupTransition?: HysPopupTransition;
109
+ popupTransitionDuration?: number;
107
110
  nodes: readonly N[];
108
111
  modelValue?: V;
109
112
  defaultValue?: V;
@@ -1,3 +1,4 @@
1
+ import type { HysPopupTransition } from '../motion/popup';
1
2
  import type { CSSProperties, VNodeChild } from "vue";
2
3
  import { type HysTreeKey, type HysTreeFieldNames, type HysTreeLoadContext, type HysTreeLocale } from "./tree";
3
4
  import type { Placement } from "./useFloating";
@@ -44,6 +45,8 @@ export interface HysTreeSelectChange<N extends object = HysTreeSelectNode> {
44
45
  event?: Event;
45
46
  }
46
47
  export interface HysTreeSelectProps<N extends object = HysTreeSelectNode, V extends HysTreeSelectValue = HysTreeSelectValue> {
48
+ popupTransition?: HysPopupTransition;
49
+ popupTransitionDuration?: number;
47
50
  modelValue?: V;
48
51
  defaultValue?: V;
49
52
  nodes: readonly N[];
@@ -0,0 +1,202 @@
1
+ import type { CSSProperties, VNodeChild } from "vue";
2
+ export type HysUploadStatus = "ready" | "uploading" | "success" | "error";
3
+ export type HysUploadListType = "text" | "picture" | "picture-card";
4
+ export interface HysUploadItem {
5
+ uid: string;
6
+ name: string;
7
+ size?: number;
8
+ raw?: File;
9
+ status?: HysUploadStatus;
10
+ percentage?: number;
11
+ response?: unknown;
12
+ error?: Error;
13
+ url?: string;
14
+ thumbUrl?: string;
15
+ type?: string;
16
+ relativePath?: string;
17
+ }
18
+ /** The original local-file contract remains the default generic. */
19
+ export interface HysUploadFile extends HysUploadItem {
20
+ size: number;
21
+ raw: File;
22
+ }
23
+ export type HysUploadChangeType = "select" | "remove" | "clear" | "reset" | "start" | "progress" | "success" | "error" | "abort" | "retry";
24
+ export interface HysUploadChange<T extends HysUploadItem = HysUploadFile> {
25
+ type: HysUploadChangeType;
26
+ files: readonly T[];
27
+ changed: readonly T[];
28
+ }
29
+ export interface HysUploadContext<T extends HysUploadItem = HysUploadFile> {
30
+ signal: AbortSignal;
31
+ files: readonly T[];
32
+ }
33
+ export interface HysUploadInvalid<T extends HysUploadItem = HysUploadFile> {
34
+ reason: "type" | "size" | "validation" | "identity";
35
+ file: File;
36
+ message: string;
37
+ files: readonly T[];
38
+ }
39
+ export interface HysUploadError extends Error {
40
+ status?: number;
41
+ response?: unknown;
42
+ url?: string;
43
+ method?: string;
44
+ kind?: "http" | "network" | "timeout" | "configuration" | "custom";
45
+ }
46
+ export type HysUploadDataScalar = string | number | boolean | Blob | null | undefined;
47
+ export type HysUploadData = Record<string, HysUploadDataScalar | readonly HysUploadDataScalar[]>;
48
+ export interface HysUploadRequestOptions<T extends HysUploadItem = HysUploadFile> extends HysUploadContext<T> {
49
+ file: T;
50
+ body: Blob;
51
+ action: string;
52
+ method: string;
53
+ name: string;
54
+ headers: Record<string, string>;
55
+ data: HysUploadData;
56
+ withCredentials: boolean;
57
+ timeout: number;
58
+ onProgress: (percentage: number) => void;
59
+ onSuccess: (response: unknown) => void;
60
+ onError: (error: unknown) => void;
61
+ }
62
+ export type HysUploadRequestResult = void | Promise<unknown> | (() => void) | {
63
+ abort?: () => void;
64
+ promise?: Promise<unknown>;
65
+ };
66
+ export interface HysUploadLocale {
67
+ choose: string;
68
+ drag: string;
69
+ checking: string;
70
+ localHint: string;
71
+ uploadHint: string;
72
+ files: string;
73
+ ready: string;
74
+ uploading: string;
75
+ success: string;
76
+ error: string;
77
+ queued: string;
78
+ removing: string;
79
+ submit: string;
80
+ abort: string;
81
+ retry: string;
82
+ clear: string;
83
+ remove: string;
84
+ preview: string;
85
+ download: string;
86
+ empty: string;
87
+ }
88
+ export declare const uploadLocale: HysUploadLocale;
89
+ export interface HysUploadProps<T extends HysUploadItem = HysUploadFile> {
90
+ fileList?: readonly T[];
91
+ modelValue?: readonly T[];
92
+ defaultFileList?: readonly T[];
93
+ defaultValue?: readonly T[];
94
+ accept?: string;
95
+ multiple?: boolean;
96
+ disabled?: boolean;
97
+ readonly?: boolean;
98
+ loading?: boolean;
99
+ limit?: number;
100
+ maxSize?: number;
101
+ drag?: boolean;
102
+ paste?: boolean;
103
+ directory?: boolean;
104
+ showFileList?: boolean;
105
+ listType?: HysUploadListType;
106
+ listHeight?: number | string;
107
+ size?: "sm" | "md" | "lg";
108
+ showToolbar?: boolean;
109
+ showPreview?: boolean;
110
+ showDownload?: boolean;
111
+ showRemove?: boolean;
112
+ showRetry?: boolean;
113
+ openFileDialogOnClick?: boolean;
114
+ autoUpload?: boolean;
115
+ concurrency?: number;
116
+ action?: string | ((file: T, context: HysUploadContext<T>) => string | Promise<string>);
117
+ method?: string;
118
+ name?: string;
119
+ headers?: Record<string, string> | ((file: T, context: HysUploadContext<T>) => Record<string, string> | Promise<Record<string, string>>);
120
+ data?: HysUploadData | ((file: T, context: HysUploadContext<T>) => HysUploadData | Promise<HysUploadData>);
121
+ withCredentials?: boolean;
122
+ timeout?: number;
123
+ customRequest?: (options: HysUploadRequestOptions<T>) => HysUploadRequestResult;
124
+ beforeUpload?: (file: File, context: HysUploadContext<T>) => boolean | void | File | Blob | Promise<boolean | void | File | Blob>;
125
+ beforeRemove?: (file: T, files: readonly T[], context: HysUploadContext<T>) => boolean | void | Promise<boolean | void>;
126
+ createFile?: (raw: File, uid: string) => T;
127
+ previewFile?: (file: T, context: HysUploadContext<T>) => string | false | Promise<string | false>;
128
+ downloadFile?: (file: T, context: HysUploadContext<T>) => void | boolean | string | Promise<void | boolean | string>;
129
+ locale?: Partial<HysUploadLocale>;
130
+ ariaLabel?: string;
131
+ triggerLabel?: string;
132
+ error?: string;
133
+ validateEvent?: boolean;
134
+ listStyle?: CSSProperties;
135
+ }
136
+ export interface HysUploadActions {
137
+ preview: () => Promise<boolean>;
138
+ download: () => Promise<boolean>;
139
+ remove: () => Promise<boolean>;
140
+ retry: () => Promise<boolean>;
141
+ abort: () => number;
142
+ }
143
+ export interface HysUploadFileContext<T extends HysUploadItem = HysUploadFile> {
144
+ file: T;
145
+ status: HysUploadStatus;
146
+ percentage: number;
147
+ queued: boolean;
148
+ busy: boolean;
149
+ actions: HysUploadActions;
150
+ thumbnail?: string;
151
+ }
152
+ export interface HysUploadSlotContext<T extends HysUploadItem = HysUploadFile> {
153
+ files: readonly T[];
154
+ busy: boolean;
155
+ disabled: boolean;
156
+ uploading: number;
157
+ queued: number;
158
+ open: (event?: Event) => void;
159
+ submit: () => Promise<number>;
160
+ abort: () => number;
161
+ clear: () => Promise<boolean>;
162
+ }
163
+ export interface HysUploadSlots<T extends HysUploadItem = HysUploadFile> {
164
+ default?: (scope: HysUploadSlotContext<T>) => VNodeChild;
165
+ trigger?: (scope: HysUploadSlotContext<T>) => VNodeChild;
166
+ tip?: (scope: HysUploadSlotContext<T>) => VNodeChild;
167
+ toolbar?: (scope: HysUploadSlotContext<T>) => VNodeChild;
168
+ file?: (scope: HysUploadFileContext<T>) => VNodeChild;
169
+ item?: (scope: HysUploadFileContext<T>) => VNodeChild;
170
+ empty?: (scope: HysUploadSlotContext<T>) => VNodeChild;
171
+ progress?: (scope: HysUploadFileContext<T>) => VNodeChild;
172
+ preview?: (scope: {
173
+ file: T;
174
+ url: string;
175
+ close: () => void;
176
+ }) => VNodeChild;
177
+ }
178
+ export interface HysUploadInstance<T extends HysUploadItem = HysUploadFile> {
179
+ readonly element: HTMLElement | undefined;
180
+ readonly input: HTMLInputElement | undefined;
181
+ readonly files: readonly T[];
182
+ readonly busy: boolean;
183
+ readonly uploading: number;
184
+ readonly queued: number;
185
+ open: (event?: Event) => void;
186
+ focus: () => void;
187
+ addFiles: (files: readonly File[]) => Promise<T[]>;
188
+ getFiles: () => T[];
189
+ clearFiles: (statuses?: readonly HysUploadStatus[]) => Promise<boolean>;
190
+ remove: (file: T | string) => Promise<boolean>;
191
+ submit: (file?: T | string) => Promise<number>;
192
+ retry: (file: T | string) => Promise<boolean>;
193
+ abort: (file?: T | string) => number;
194
+ preview: (file: T | string) => Promise<boolean>;
195
+ download: (file: T | string) => Promise<boolean>;
196
+ }
197
+ export declare const uploadStatus: (file: HysUploadItem) => HysUploadStatus;
198
+ export declare const uploadPercent: (file: HysUploadItem) => number;
199
+ export declare const uploadImage: (file: HysUploadItem) => boolean;
200
+ export declare function uploadSize(value?: number): string;
201
+ export declare function uploadFailure(error: unknown, kind?: HysUploadError["kind"]): HysUploadError;
202
+ export declare function uploadUrl(value: string | undefined, image?: boolean): string | undefined;
@@ -0,0 +1,3 @@
1
+ import { type HysUploadItem, type HysUploadRequestOptions } from "./upload";
2
+ /** A cancellable multipart transport. The browser supplies the multipart boundary. */
3
+ export declare function uploadRequest<T extends HysUploadItem>(options: HysUploadRequestOptions<T>): () => void;
@@ -0,0 +1,21 @@
1
+ import { type ComputedRef } from "vue";
2
+ import { type HysAlertProps, type HysAlertSlotContext } from "./feedback";
3
+ export declare function useAlert(props: HysAlertProps, emit: (name: string, ...args: any[]) => void): {
4
+ skin: ComputedRef<{
5
+ 'data-hys-ui': string;
6
+ 'data-hys-theme': import("..").HysTheme;
7
+ 'data-hys-motion': import("..").HysMotion;
8
+ }>;
9
+ element: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
10
+ live: import("vue").Ref<boolean, boolean>;
11
+ visible: ComputedRef<boolean>;
12
+ tone: ComputedRef<import("./feedback").HysAlertTone>;
13
+ duration: ComputedRef<number>;
14
+ closing: import("vue").Ref<boolean, boolean>;
15
+ scope: ComputedRef<HysAlertSlotContext>;
16
+ close: (reason?: "button" | "api", event?: Event) => Promise<false>;
17
+ show: () => Promise<boolean>;
18
+ beforeLeave: (node: Element) => void;
19
+ afterLeave: (node: Element) => void;
20
+ restore: (node: Element) => void;
21
+ };
@@ -110,7 +110,7 @@ export declare function useCascader<N extends object>(props: HysCascaderProps<N>
110
110
  filter: (text: string) => void;
111
111
  clear: () => Promise<boolean>;
112
112
  removeTag: (key: HysTreeKey) => Promise<boolean>;
113
- request: (keys: readonly HysTreeKey[], reason: "clear" | "select" | "check" | "remove" | "api", node?: CascaderEntry<N> | undefined, event?: Event, provided?: HysTreeSelectValue, halfKeys?: HysTreeKey[]) => Promise<boolean>;
113
+ request: (keys: readonly HysTreeKey[], reason: "clear" | "select" | "api" | "check" | "remove", node?: CascaderEntry<N> | undefined, event?: Event, provided?: HysTreeSelectValue, halfKeys?: HysTreeKey[]) => Promise<boolean>;
114
114
  project: (keys: readonly HysTreeKey[]) => HysTreeKey[];
115
115
  retrySearch: () => Promise<void>;
116
116
  setValue: (value: HysTreeSelectValue) => Promise<boolean>;
@@ -0,0 +1,101 @@
1
+ import { type HysColor, type HysColorPickerProps, type HysColorPickerContext } from "./color";
2
+ export declare function useColorPicker(props: HysColorPickerProps, emit: (name: string, ...args: any[]) => void): {
3
+ attrs: import("vue").Attrs;
4
+ field: import("./formContext").HysFieldContext | undefined;
5
+ control: {
6
+ disabled: import("vue").ComputedRef<boolean>;
7
+ size: import("vue").ComputedRef<"sm" | "md" | "lg">;
8
+ label: import("vue").ComputedRef<string | undefined>;
9
+ };
10
+ element: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
11
+ trigger: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
12
+ input: import("vue").Ref<HTMLInputElement | undefined, HTMLInputElement | undefined>;
13
+ panel: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
14
+ live: import("vue").Ref<boolean, boolean>;
15
+ draft: import("vue").Ref<string, string>;
16
+ working: import("vue").Ref<{
17
+ h: number;
18
+ s: number;
19
+ v: number;
20
+ a: number;
21
+ }, HysColor | {
22
+ h: number;
23
+ s: number;
24
+ v: number;
25
+ a: number;
26
+ }>;
27
+ hasColor: import("vue").Ref<boolean, boolean>;
28
+ focused: import("vue").Ref<boolean, boolean>;
29
+ errorId: string;
30
+ panelId: string;
31
+ value: import("vue").ComputedRef<string>;
32
+ locked: import("vue").ComputedRef<boolean>;
33
+ format: import("vue").ComputedRef<import("./color").HysColorFormat>;
34
+ serialized: import("vue").ComputedRef<string>;
35
+ css: import("vue").ComputedRef<string>;
36
+ valid: import("vue").ComputedRef<boolean>;
37
+ dirty: import("vue").ComputedRef<boolean>;
38
+ status: import("vue").ComputedRef<import("./formContext").HysFormStatus | undefined>;
39
+ floating: {
40
+ open: import("vue").Ref<boolean, boolean>;
41
+ style: import("vue").ComputedRef<{
42
+ zIndex: string;
43
+ }>;
44
+ placement: import("vue").Ref<import("./useFloating").Placement, import("./useFloating").Placement>;
45
+ update: () => void;
46
+ show: (force?: boolean) => Promise<void>;
47
+ close: (restore?: boolean, force?: boolean) => void;
48
+ toggle: () => void | Promise<void>;
49
+ restoringFocus: import("vue").Ref<boolean, boolean>;
50
+ schedule: () => void;
51
+ isTop: () => boolean;
52
+ };
53
+ open: import("vue").ComputedRef<boolean>;
54
+ teleportTo: import("vue").ComputedRef<Element>;
55
+ presets: import("vue").ComputedRef<{
56
+ value: string;
57
+ color: string;
58
+ parsed: HysColor;
59
+ key: string;
60
+ }[]>;
61
+ context: import("vue").ComputedRef<HysColorPickerContext>;
62
+ gesture: import("vue").ShallowRef<{
63
+ node: HTMLElement;
64
+ id: number;
65
+ kind: "palette" | "hue" | "alpha";
66
+ rect: DOMRect;
67
+ value: string;
68
+ color: HysColor;
69
+ hasColor: boolean;
70
+ lastRequest: string;
71
+ releaseValidation: () => void;
72
+ } | undefined, {
73
+ node: HTMLElement;
74
+ id: number;
75
+ kind: "palette" | "hue" | "alpha";
76
+ rect: DOMRect;
77
+ value: string;
78
+ color: HysColor;
79
+ hasColor: boolean;
80
+ lastRequest: string;
81
+ releaseValidation: () => void;
82
+ } | undefined>;
83
+ sync: () => void;
84
+ publish: (final?: boolean) => Promise<boolean>;
85
+ setColor: (raw: string) => Promise<boolean>;
86
+ commitText: () => Promise<boolean>;
87
+ confirm: () => Promise<boolean>;
88
+ clear: () => Promise<boolean>;
89
+ cancel: () => void;
90
+ show: () => Promise<boolean>;
91
+ hide: (restore?: boolean) => Promise<boolean>;
92
+ focus: (options?: FocusOptions) => void;
93
+ blur: () => void;
94
+ focusIn: (event: FocusEvent) => void;
95
+ focusOut: (event: FocusEvent) => void;
96
+ start: (event: PointerEvent, kind: "hue" | "alpha" | "palette") => void;
97
+ move: (event: PointerEvent) => void;
98
+ end: (event: PointerEvent) => Promise<void>;
99
+ pointerCancel: (event: PointerEvent) => void;
100
+ keyboard: (event: KeyboardEvent, kind: "hue" | "alpha" | "palette") => void;
101
+ };
@@ -0,0 +1,81 @@
1
+ import { type CSSProperties, type Ref } from "vue";
2
+ import { type HysContextMenuProps, type HysMenuKey, type MenuRow, type HysMenuShowOptions } from "./menu";
3
+ export declare function useContextMenu<N extends object>(props: HysContextMenuProps<N>, root: Ref<HTMLElement | undefined>, layer: Ref<HTMLElement | undefined>, panel: Ref<HTMLElement | undefined>, id: string, emit: (name: string, ...args: any[]) => void): {
4
+ control: {
5
+ disabled: import("vue").ComputedRef<boolean>;
6
+ size: import("vue").ComputedRef<"sm" | "md" | "lg">;
7
+ label: import("vue").ComputedRef<string | undefined>;
8
+ };
9
+ live: Ref<boolean, boolean>;
10
+ busy: import("vue").ComputedRef<boolean>;
11
+ graph: import("vue").ComputedRef<{
12
+ roots: MenuRow<N>[];
13
+ all: MenuRow<N>[];
14
+ byKey: Map<string, MenuRow<N>>;
15
+ }>;
16
+ triggers: import("vue").ComputedRef<any[]>;
17
+ open: Ref<boolean, boolean>;
18
+ branches: import("vue").ComputedRef<MenuRow<N>[]>;
19
+ menus: import("vue").ComputedRef<MenuRow<N>[][]>;
20
+ openPath: import("vue").ComputedRef<HysMenuKey[]>;
21
+ checkedKeys: import("vue").ComputedRef<HysMenuKey[]>;
22
+ selectedKeys: import("vue").ComputedRef<HysMenuKey[]>;
23
+ context: (row: MenuRow<N>) => {
24
+ item: N;
25
+ value: HysMenuKey | undefined;
26
+ label: string;
27
+ path: N[];
28
+ keys: HysMenuKey[];
29
+ level: number;
30
+ disabled: boolean;
31
+ checked: boolean;
32
+ selected: boolean;
33
+ expanded: boolean;
34
+ submenu: boolean;
35
+ };
36
+ tabbable: (row: MenuRow<N>) => 0 | -1;
37
+ active: Ref<Map<number, HysMenuKey> & Omit<Map<number, HysMenuKey>, keyof Map<any, any>>, Map<number, HysMenuKey> | (Map<number, HysMenuKey> & Omit<Map<number, HysMenuKey>, keyof Map<any, any>>)>;
38
+ childStyles: import("vue").ShallowRef<Record<number, CSSProperties>, Record<number, CSSProperties>>;
39
+ floating: {
40
+ open: Ref<boolean, boolean>;
41
+ style: import("vue").ComputedRef<{
42
+ zIndex: string;
43
+ }>;
44
+ placement: Ref<import("./useFloating").Placement, import("./useFloating").Placement>;
45
+ update: () => void;
46
+ show: (force?: boolean) => Promise<void>;
47
+ close: (restore?: boolean, force?: boolean) => void;
48
+ toggle: () => void | Promise<void>;
49
+ restoringFocus: Ref<boolean, boolean>;
50
+ schedule: () => void;
51
+ isTop: () => boolean;
52
+ };
53
+ forceHide: () => void;
54
+ focusableChild: Ref<boolean, boolean>;
55
+ measureTrigger: () => void;
56
+ setPanel: (level: number, element?: HTMLElement) => void;
57
+ scheduleLayout: (updateRoot?: boolean) => void;
58
+ show: (event?: MouseEvent | KeyboardEvent | HysMenuShowOptions) => Promise<boolean>;
59
+ hide: (restore?: boolean) => Promise<boolean>;
60
+ focus: () => void;
61
+ toggle: () => Promise<boolean>;
62
+ focusItem: (key: HysMenuKey) => Promise<boolean>;
63
+ openSubmenu: (key: HysMenuKey, focusChild?: boolean) => Promise<boolean>;
64
+ closeSubmenus: () => Promise<boolean>;
65
+ setCheckedKeys: (keys: readonly HysMenuKey[]) => Promise<boolean>;
66
+ setSelectedKeys: (keys: readonly HysMenuKey[]) => Promise<boolean>;
67
+ choose: (row: MenuRow<N>, event?: MouseEvent | KeyboardEvent) => Promise<boolean>;
68
+ setActive: (row: MenuRow<N>, focus?: boolean) => void;
69
+ hoverRoot: (value: boolean, event?: PointerEvent) => void;
70
+ enterPanel: () => void;
71
+ hoverRow: (row: MenuRow<N>) => void;
72
+ triggerClick: (event: MouseEvent) => void;
73
+ contextmenu: (event: MouseEvent) => void;
74
+ triggerFocus: (event: FocusEvent) => void;
75
+ focusOut: (event: FocusEvent) => void;
76
+ triggerKey: (event: KeyboardEvent) => void;
77
+ keyboard: (level: number, event: KeyboardEvent) => void;
78
+ first: (level?: number, last?: boolean) => void;
79
+ setPath: (keys: readonly HysMenuKey[], focusChild?: boolean) => Promise<boolean>;
80
+ getItems: () => N[];
81
+ };
@@ -0,0 +1,15 @@
1
+ import { type ComputedRef } from "vue";
2
+ import type { HysDataGridProps, HysDataGridQuery } from "./dataGrid";
3
+ export declare function useDataGridRemote<T extends object>(props: HysDataGridProps<T>, query: ComputedRef<HysDataGridQuery>, onError: (error: unknown) => void): {
4
+ pending: import("vue").Ref<boolean, boolean>;
5
+ failure: import("vue").ShallowRef<{
6
+ error: unknown;
7
+ query: string;
8
+ } | undefined, {
9
+ error: unknown;
10
+ query: string;
11
+ } | undefined>;
12
+ reload: () => Promise<void>;
13
+ sourceRows: ComputedRef<readonly T[]>;
14
+ remoteTotal: ComputedRef<number | undefined>;
15
+ };
@@ -1,4 +1,17 @@
1
- import { type Ref } from 'vue';
2
- export declare function useDialog(open: Ref<boolean>, dialog: Ref<HTMLElement | undefined>, close: () => void): {
3
- active: Ref<boolean, boolean>;
1
+ import { type Ref } from "vue";
2
+ interface DialogOptions {
3
+ lockScroll?: () => boolean;
4
+ trapFocus?: () => boolean;
5
+ restoreFocus?: () => boolean;
6
+ initialFocus?: () => HTMLElement | false | undefined;
7
+ zIndex?: () => number | undefined;
8
+ onOpenAutoFocus?: (event: Event) => void;
9
+ onCloseAutoFocus?: (event: Event) => void;
10
+ childVisible?: () => boolean;
11
+ }
12
+ export declare function useDialog(open: Ref<boolean>, dialog: Ref<HTMLElement | undefined>, close: () => void, options?: DialogOptions): {
13
+ active: import("vue").ComputedRef<boolean>;
14
+ zIndex: import("vue").ComputedRef<number>;
15
+ focus: () => void;
4
16
  };
17
+ export {};
@@ -0,0 +1,6 @@
1
+ import { type Ref, type CSSProperties } from "vue";
2
+ import type { HysDrawerProps } from "./drawer";
3
+ export declare function useDrawerPush(props: HysDrawerProps, shown: Readonly<Ref<boolean>>, fullscreen: Readonly<Ref<boolean>>): {
4
+ pushed: import("vue").ComputedRef<boolean>;
5
+ style: import("vue").ComputedRef<CSSProperties>;
6
+ };
@@ -0,0 +1,27 @@
1
+ import { type Ref } from "vue";
2
+ import { type HysDrawerProps } from "./drawer";
3
+ export declare function useDrawerResize(props: HysDrawerProps, root: Ref<HTMLElement | undefined>, panel: Ref<HTMLElement | undefined>, shown: Readonly<Ref<boolean>>, fullscreen: Readonly<Ref<boolean>>, busy: Readonly<Ref<boolean>>, emit: (name: string, ...args: any[]) => void): {
4
+ handle: Ref<HTMLElement | undefined, HTMLElement | undefined>;
5
+ resizing: Ref<boolean, boolean>;
6
+ size: import("vue").ComputedRef<number>;
7
+ vertical: import("vue").ComputedRef<boolean>;
8
+ limits: (availableSize?: number) => {
9
+ min: number;
10
+ max: number;
11
+ };
12
+ model: {
13
+ current: import("vue").ComputedRef<number | null>;
14
+ commit: (value: number | null, update: (value: number | null) => void, change: (value: number | null) => void, notifyOnRequest?: boolean) => Promise<boolean>;
15
+ reset: () => void;
16
+ invalidate: () => void;
17
+ isLive: () => boolean;
18
+ };
19
+ resolvedSize: import("vue").ComputedRef<number | undefined>;
20
+ start: (event: PointerEvent) => void;
21
+ stop: (cancelled?: boolean) => Promise<boolean>;
22
+ keyboard: (event: KeyboardEvent) => Promise<void>;
23
+ resizeTo: (value: number | string) => Promise<boolean>;
24
+ reset: () => Promise<boolean>;
25
+ measure: () => void;
26
+ resetAfterClose: () => void;
27
+ };
@@ -1,5 +1,13 @@
1
1
  import { type Ref } from "vue";
2
- export type Placement = "bottom-start" | "bottom-end" | "top-start" | "top-end" | "right" | "left";
2
+ export type Placement = "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end" | "right" | "right-start" | "right-end";
3
+ export interface FloatingPosition {
4
+ anchor: DOMRect;
5
+ width: number;
6
+ height: number;
7
+ x: number;
8
+ y: number;
9
+ placement: Placement;
10
+ }
3
11
  export interface FloatingAnchor {
4
12
  getBoundingClientRect(): DOMRect;
5
13
  contains(node: Node | null): boolean;
@@ -7,20 +15,31 @@ export interface FloatingAnchor {
7
15
  readonly isConnected: boolean;
8
16
  }
9
17
  export declare function useFloating(anchor: Readonly<Ref<FloatingAnchor | undefined>>, panel: Ref<HTMLElement | undefined>, options?: {
10
- placement?: Placement;
18
+ placement?: Placement | (() => Placement);
11
19
  gap?: number;
12
20
  padding?: number;
13
21
  matchWidth?: boolean | "min" | (() => boolean | "min");
14
22
  width?: () => number | string | undefined;
23
+ maxWidth?: () => number | string | undefined;
15
24
  requestOpen?: (open: boolean, restoreFocus?: boolean) => boolean | void;
16
25
  closeOnTab?: boolean;
26
+ closeOnEscape?: boolean;
27
+ closeOnOutside?: boolean;
28
+ autoAdjustOverflow?: boolean;
29
+ strategy?: "fixed" | "absolute";
30
+ zIndex?: () => number | undefined;
31
+ onPosition?: (position: FloatingPosition) => void;
17
32
  }): {
18
33
  open: Ref<boolean, boolean>;
19
- style: Ref<Record<string, string>, Record<string, string>>;
34
+ style: import("vue").ComputedRef<{
35
+ zIndex: string;
36
+ }>;
20
37
  placement: Ref<Placement, Placement>;
21
38
  update: () => void;
22
39
  show: (force?: boolean) => Promise<void>;
23
40
  close: (restore?: boolean, force?: boolean) => void;
24
41
  toggle: () => void | Promise<void>;
25
42
  restoringFocus: Ref<boolean, boolean>;
43
+ schedule: () => void;
44
+ isTop: () => boolean;
26
45
  };