hys-ui 0.2.0 → 0.3.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 (201) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +15 -1
  3. package/dist/components/HysAlert/HysAlert.vue.js +5 -54
  4. package/dist/components/HysAlert/HysAlert2.vue.js +159 -2
  5. package/dist/components/HysAutocomplete/HysAutocomplete.vue.js +2 -2
  6. package/dist/components/HysAutocomplete/HysAutocomplete2.vue.js +285 -273
  7. package/dist/components/HysAvatarGroup/HysAvatarGroup.vue.js +1 -1
  8. package/dist/components/HysAvatarGroup/HysAvatarGroup2.vue.js +102 -98
  9. package/dist/components/HysBreadcrumb/HysBreadcrumb.vue.js +1 -1
  10. package/dist/components/HysBreadcrumb/HysBreadcrumb2.vue.js +273 -59
  11. package/dist/components/HysCalendar/HysCalendar.vue.js +3 -3
  12. package/dist/components/HysCalendar/HysCalendar2.vue.js +237 -225
  13. package/dist/components/HysCascader/HysCascader.vue.js +2 -2
  14. package/dist/components/HysCascader/HysCascader2.vue.js +337 -324
  15. package/dist/components/HysColorPicker/HysColorPanel.vue.js +7 -0
  16. package/dist/components/HysColorPicker/HysColorPanel2.vue.js +238 -0
  17. package/dist/components/HysColorPicker/HysColorPicker.vue.js +2 -2
  18. package/dist/components/HysColorPicker/HysColorPicker2.vue.js +239 -217
  19. package/dist/components/HysCommandPalette/HysCommandPalette.vue.js +90 -76
  20. package/dist/components/HysContextMenu/HysContextMenu.vue.js +5 -89
  21. package/dist/components/HysContextMenu/HysContextMenu2.vue.js +247 -2
  22. package/dist/components/HysContextMenu/HysMenuPanel.vue.js +7 -0
  23. package/dist/components/HysContextMenu/HysMenuPanel2.vue.js +208 -0
  24. package/dist/components/HysContextMenu/HysMenuSlot.js +10 -0
  25. package/dist/components/HysDataGrid/HysDataGrid.vue.js +1 -1
  26. package/dist/components/HysDataGrid/HysDataGrid2.vue.js +1008 -559
  27. package/dist/components/HysDatePicker/HysDatePicker.vue.js +2 -0
  28. package/dist/components/HysDatePicker/HysDatePickerControl.vue.js +2 -2
  29. package/dist/components/HysDatePicker/HysDatePickerControl2.vue.js +539 -526
  30. package/dist/components/HysDateRangePicker/HysDateRangePicker.vue.js +5 -3
  31. package/dist/components/HysDrawer/HysDrawer.vue.js +1 -1
  32. package/dist/components/HysDrawer/HysDrawer2.vue.js +434 -84
  33. package/dist/components/HysEmpty/HysEmpty.vue.js +5 -41
  34. package/dist/components/HysEmpty/HysEmpty2.vue.js +181 -2
  35. package/dist/components/HysFormItem/HysFormItem.vue.js +2 -2
  36. package/dist/components/HysFormItem/HysFormItem2.vue.js +171 -164
  37. package/dist/components/HysGantt/HysGantt.vue.js +1 -1
  38. package/dist/components/HysGantt/HysGantt2.vue.js +810 -795
  39. package/dist/components/HysMention/HysMention.vue.js +1 -1
  40. package/dist/components/HysMention/HysMention2.vue.js +112 -100
  41. package/dist/components/HysModal/HysModal.vue.js +2 -2
  42. package/dist/components/HysModal/HysModal2.vue.js +490 -85
  43. package/dist/components/HysPopover/HysPopover.vue.js +5 -91
  44. package/dist/components/HysPopover/HysPopover2.vue.js +120 -2
  45. package/dist/components/HysProgress/HysProgress.vue.js +2 -2
  46. package/dist/components/HysProgress/HysProgress2.vue.js +319 -52
  47. package/dist/components/HysSelect/HysSelect.vue.js +2 -2
  48. package/dist/components/HysSelect/HysSelect2.vue.js +730 -594
  49. package/dist/components/HysSlider/HysSlider.vue.js +2 -2
  50. package/dist/components/HysSlider/HysSlider2.vue.js +192 -188
  51. package/dist/components/HysSlider/SliderTooltip.vue.js +2 -2
  52. package/dist/components/HysSlider/SliderTooltip2.vue.js +103 -89
  53. package/dist/components/HysTable/HysTable.vue.js +2 -2
  54. package/dist/components/HysTable/HysTable2.vue.js +389 -368
  55. package/dist/components/HysTagInput/HysTagInput.vue.js +5 -82
  56. package/dist/components/HysTagInput/HysTagInput2.vue.js +396 -2
  57. package/dist/components/HysTimeline/HysTimeline.vue.js +2 -2
  58. package/dist/components/HysTimeline/HysTimeline2.vue.js +243 -24
  59. package/dist/components/HysTooltip/HysTooltip.vue.js +5 -64
  60. package/dist/components/HysTooltip/HysTooltip2.vue.js +110 -2
  61. package/dist/components/HysTour/HysTour.vue.js +46 -42
  62. package/dist/components/HysTransfer/HysTransfer.vue.js +2 -2
  63. package/dist/components/HysTransfer/HysTransfer2.vue.js +237 -207
  64. package/dist/components/HysTransfer/HysTransferPanel.vue.js +1 -1
  65. package/dist/components/HysTransfer/HysTransferPanel2.vue.js +320 -271
  66. package/dist/components/HysTree/HysTree.vue.js +2 -2
  67. package/dist/components/HysTree/HysTree2.vue.js +195 -184
  68. package/dist/components/HysTreeSelect/HysTreeSelect.vue.js +4 -4
  69. package/dist/components/HysTreeSelect/HysTreeSelect2.vue.js +389 -377
  70. package/dist/components/HysUpload/HysUpload.vue.js +2 -2
  71. package/dist/components/HysUpload/HysUpload2.vue.js +459 -125
  72. package/dist/components/HysVirtualTable/HysVirtualTable.vue.js +5 -94
  73. package/dist/components/HysVirtualTable/HysVirtualTable2.vue.js +656 -2
  74. package/dist/composables/color.js +97 -0
  75. package/dist/composables/dataGrid.js +68 -0
  76. package/dist/composables/drawer.js +17 -0
  77. package/dist/composables/feedback.js +14 -0
  78. package/dist/composables/menu.js +96 -0
  79. package/dist/composables/modal.js +14 -0
  80. package/dist/composables/overlayManager.js +48 -18
  81. package/dist/composables/progress.js +94 -0
  82. package/dist/composables/tagInput.js +16 -0
  83. package/dist/composables/timeline.js +19 -0
  84. package/dist/composables/transfer.js +19 -17
  85. package/dist/composables/upload.js +55 -0
  86. package/dist/composables/uploadRequest.js +58 -0
  87. package/dist/composables/useAlert.js +124 -0
  88. package/dist/composables/useColorPicker.js +402 -0
  89. package/dist/composables/useContextMenu.js +514 -0
  90. package/dist/composables/useDataGridRemote.js +67 -0
  91. package/dist/composables/useDialog.js +86 -43
  92. package/dist/composables/useDrawerPush.js +33 -0
  93. package/dist/composables/useDrawerResize.js +221 -0
  94. package/dist/composables/useFloating.js +110 -76
  95. package/dist/composables/useHysModal.js +185 -0
  96. package/dist/composables/useModal.js +295 -0
  97. package/dist/composables/useModalInteraction.js +394 -0
  98. package/dist/composables/usePopupSurface.js +458 -0
  99. package/dist/composables/useTagInput.js +313 -0
  100. package/dist/composables/useTransferMotion.js +185 -0
  101. package/dist/composables/useUpload.js +472 -0
  102. package/dist/composables/useUploadModel.js +65 -0
  103. package/dist/composables/useUploadRequests.js +266 -0
  104. package/dist/composables/useVirtualTableLayout.js +277 -0
  105. package/dist/composables/virtualTable.js +43 -0
  106. package/dist/index.js +27 -24
  107. package/dist/internal/PopupReference.js +39 -0
  108. package/dist/internal/PopupSurfacePanel.vue.js +7 -0
  109. package/dist/internal/PopupSurfacePanel2.vue.js +92 -0
  110. package/dist/motion/PopupMotion.js +105 -0
  111. package/dist/motion/popup.js +10 -0
  112. package/dist/style.css +1 -1
  113. package/dist/types/components/HysAlert/HysAlert.vue.d.ts +32 -22
  114. package/dist/types/components/HysAutocomplete/HysAutocomplete.vue.d.ts +7 -7
  115. package/dist/types/components/HysAvatarGroup/HysAvatarGroup.vue.d.ts +6 -1
  116. package/dist/types/components/HysBadge/HysBadge.vue.d.ts +3 -3
  117. package/dist/types/components/HysBreadcrumb/HysBreadcrumb.vue.d.ts +54 -31
  118. package/dist/types/components/HysCalendar/HysCalendar.vue.d.ts +3 -2
  119. package/dist/types/components/HysCascader/HysCascader.vue.d.ts +7 -7
  120. package/dist/types/components/HysCascader/HysCascaderColumn.vue.d.ts +2 -2
  121. package/dist/types/components/HysColorPicker/HysColorPanel.vue.d.ts +58 -0
  122. package/dist/types/components/HysColorPicker/HysColorPicker.vue.d.ts +63 -10
  123. package/dist/types/components/HysCommandPalette/HysCommandPalette.vue.d.ts +2 -1
  124. package/dist/types/components/HysContextMenu/HysContextMenu.vue.d.ts +50 -34
  125. package/dist/types/components/HysContextMenu/HysMenuPanel.vue.d.ts +79 -0
  126. package/dist/types/components/HysContextMenu/HysMenuSlot.d.ts +8 -0
  127. package/dist/types/components/HysDataGrid/HysDataGrid.vue.d.ts +65 -118
  128. package/dist/types/components/HysDatePicker/HysDatePickerControl.vue.d.ts +1 -1
  129. package/dist/types/components/HysDrawer/HysDrawer.vue.d.ts +92 -35
  130. package/dist/types/components/HysEmpty/HysEmpty.vue.d.ts +24 -20
  131. package/dist/types/components/HysFileManager/HysFileManager.vue.d.ts +2 -2
  132. package/dist/types/components/HysGantt/HysGantt.vue.d.ts +2 -1
  133. package/dist/types/components/HysMention/HysMention.vue.d.ts +2 -1
  134. package/dist/types/components/HysModal/HysModal.vue.d.ts +111 -34
  135. package/dist/types/components/HysPopover/HysPopover.vue.d.ts +41 -29
  136. package/dist/types/components/HysProgress/HysProgress.vue.d.ts +18 -24
  137. package/dist/types/components/HysResizablePanel/HysResizablePanel.vue.d.ts +2 -2
  138. package/dist/types/components/HysSelect/HysSelect.vue.d.ts +13 -4
  139. package/dist/types/components/HysSlider/HysSlider.vue.d.ts +5 -4
  140. package/dist/types/components/HysSlider/SliderTooltip.vue.d.ts +3 -1
  141. package/dist/types/components/HysSplitPane/HysSplitPane.vue.d.ts +2 -2
  142. package/dist/types/components/HysTable/HysTable.vue.d.ts +4 -4
  143. package/dist/types/components/HysTabs/HysTabs.vue.d.ts +2 -2
  144. package/dist/types/components/HysTagInput/HysTagInput.vue.d.ts +47 -25
  145. package/dist/types/components/HysTimeline/HysTimeline.vue.d.ts +19 -32
  146. package/dist/types/components/HysTooltip/HysTooltip.vue.d.ts +39 -19
  147. package/dist/types/components/HysTour/HysTour.vue.d.ts +2 -1
  148. package/dist/types/components/HysTransfer/HysTransfer.vue.d.ts +2 -2
  149. package/dist/types/components/HysTransfer/HysTransferPanel.vue.d.ts +5 -3
  150. package/dist/types/components/HysTree/HysTree.vue.d.ts +2 -2
  151. package/dist/types/components/HysUpload/HysUpload.vue.d.ts +55 -67
  152. package/dist/types/components/HysVirtualTable/HysVirtualTable.vue.d.ts +71 -40
  153. package/dist/types/composables/autocomplete.d.ts +3 -0
  154. package/dist/types/composables/avatar.d.ts +3 -0
  155. package/dist/types/composables/cascader.d.ts +3 -0
  156. package/dist/types/composables/color.d.ts +97 -0
  157. package/dist/types/composables/dataGrid.d.ts +100 -0
  158. package/dist/types/composables/datePicker.d.ts +3 -0
  159. package/dist/types/composables/drawer.d.ts +102 -0
  160. package/dist/types/composables/feedback.d.ts +98 -0
  161. package/dist/types/composables/formContext.d.ts +2 -0
  162. package/dist/types/composables/menu.d.ts +183 -0
  163. package/dist/types/composables/modal.d.ts +183 -0
  164. package/dist/types/composables/overlayManager.d.ts +7 -3
  165. package/dist/types/composables/popupSurface.d.ts +83 -0
  166. package/dist/types/composables/progress.d.ts +92 -0
  167. package/dist/types/composables/selectOptions.d.ts +2 -0
  168. package/dist/types/composables/table.d.ts +3 -0
  169. package/dist/types/composables/tagInput.d.ts +96 -0
  170. package/dist/types/composables/timeline.d.ts +82 -0
  171. package/dist/types/composables/transfer.d.ts +7 -0
  172. package/dist/types/composables/tree.d.ts +3 -0
  173. package/dist/types/composables/treeSelect.d.ts +3 -0
  174. package/dist/types/composables/upload.d.ts +202 -0
  175. package/dist/types/composables/uploadRequest.d.ts +3 -0
  176. package/dist/types/composables/useAlert.d.ts +21 -0
  177. package/dist/types/composables/useCascader.d.ts +1 -1
  178. package/dist/types/composables/useColorPicker.d.ts +101 -0
  179. package/dist/types/composables/useContextMenu.d.ts +81 -0
  180. package/dist/types/composables/useDataGridRemote.d.ts +15 -0
  181. package/dist/types/composables/useDialog.d.ts +16 -3
  182. package/dist/types/composables/useDrawerPush.d.ts +6 -0
  183. package/dist/types/composables/useDrawerResize.d.ts +27 -0
  184. package/dist/types/composables/useFloating.d.ts +21 -2
  185. package/dist/types/composables/useHysModal.d.ts +44 -0
  186. package/dist/types/composables/useModal.d.ts +62 -0
  187. package/dist/types/composables/useModalInteraction.d.ts +27 -0
  188. package/dist/types/composables/usePopupSurface.d.ts +3341 -0
  189. package/dist/types/composables/useTagInput.d.ts +66 -0
  190. package/dist/types/composables/useTransferMotion.d.ts +36 -0
  191. package/dist/types/composables/useUpload.d.ts +94 -0
  192. package/dist/types/composables/useUploadModel.d.ts +14 -0
  193. package/dist/types/composables/useUploadRequests.d.ts +38 -0
  194. package/dist/types/composables/useVirtualTableLayout.d.ts +51 -0
  195. package/dist/types/composables/virtualTable.d.ts +126 -0
  196. package/dist/types/index.d.ts +17 -2
  197. package/dist/types/internal/PopupReference.d.ts +18 -0
  198. package/dist/types/internal/PopupSurfacePanel.vue.d.ts +37 -0
  199. package/dist/types/motion/PopupMotion.d.ts +59 -0
  200. package/dist/types/motion/popup.d.ts +12 -0
  201. package/package.json +1 -1
@@ -1,27 +1,47 @@
1
- import { type Placement } from '../../composables/useFloating';
2
- type __VLS_Props = {
3
- text?: string;
4
- placement?: Placement;
5
- disabled?: boolean;
6
- showDelay?: number;
7
- hideDelay?: number;
8
- };
9
- declare const __VLS_template: () => {
10
- __VLS_Slots: {
11
- default?: (props: {}) => any;
12
- } & {
13
- content?: (props: {}) => any;
14
- };
15
- };
16
- type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
17
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
1
+ import type { HysTooltipProps, HysTooltipSlots } from "../../composables/popupSurface";
2
+ type __VLS_Slots = HysTooltipSlots;
3
+ declare const __VLS_base: import("vue").DefineComponent<HysTooltipProps, {
4
+ element: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
5
+ referenceElement: import("vue").ComputedRef<HTMLElement | undefined>;
6
+ open: import("vue").Ref<boolean, boolean>;
7
+ placement: import("vue").Ref<import("../..").Placement, import("../..").Placement>;
8
+ show: () => Promise<boolean>;
9
+ hide: () => Promise<boolean>;
10
+ close: () => Promise<boolean>;
11
+ toggle: () => Promise<boolean>;
12
+ updatePosition: () => void;
13
+ focus: () => void | undefined;
14
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
+ "update:modelValue": (open: boolean) => any;
18
16
  visibleChange: (open: boolean) => any;
19
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
17
+ show: () => any;
18
+ hide: () => any;
19
+ "update:open": (open: boolean) => any;
20
+ opened: () => any;
21
+ closed: () => any;
22
+ openChange: (open: boolean) => any;
23
+ }, string, import("vue").PublicProps, Readonly<HysTooltipProps> & Readonly<{
24
+ "onUpdate:modelValue"?: ((open: boolean) => any) | undefined;
20
25
  onVisibleChange?: ((open: boolean) => any) | undefined;
26
+ onShow?: (() => any) | undefined;
27
+ onHide?: (() => any) | undefined;
28
+ "onUpdate:open"?: ((open: boolean) => any) | undefined;
29
+ onOpened?: (() => any) | undefined;
30
+ onClosed?: (() => any) | undefined;
31
+ onOpenChange?: ((open: boolean) => any) | undefined;
21
32
  }>, {
22
- placement: Placement;
33
+ modelValue: boolean;
34
+ destroyOnHide: boolean;
35
+ effect: "dark" | "light";
36
+ placement: import("../..").Placement;
37
+ open: boolean;
38
+ appendTo: string | false | HTMLElement;
23
39
  showDelay: number;
24
40
  hideDelay: number;
41
+ autoAdjustOverflow: boolean;
42
+ enterable: boolean;
43
+ closeOnEscape: boolean;
44
+ closeOnOutside: boolean;
25
45
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
26
46
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
27
47
  declare const _default: typeof __VLS_export;
@@ -1,4 +1,5 @@
1
- type __VLS_Props = {
1
+ import type { HysPopupMotionProps } from '../../motion/popup';
2
+ type __VLS_Props = HysPopupMotionProps & {
2
3
  steps: {
3
4
  title: string;
4
5
  description: string;
@@ -10,8 +10,8 @@ declare const __VLS_export: <T extends object = HysTransferOption, K extends Hys
10
10
  "onUpdate:checkedKeys"?: ((keys: K[]) => any) | undefined;
11
11
  onPageSizeChange?: ((side: HysTransferSide, size: number) => any) | undefined;
12
12
  onPageChange?: ((side: HysTransferSide, page: number, pageSize: number) => any) | undefined;
13
- onDragStart?: ((side: HysTransferSide, keys: K[], event: DragEvent) => any) | undefined;
14
13
  onDragEnd?: (() => any) | undefined;
14
+ onDragStart?: ((side: HysTransferSide, keys: K[], event: DragEvent) => any) | undefined;
15
15
  onCheckChange?: ((side: HysTransferSide, keys: K[]) => any) | undefined;
16
16
  onSelectChange?: ((left: K[], right: K[]) => any) | undefined;
17
17
  "onUpdate:searchValues"?: ((values: Record<HysTransferSide, string>) => any) | undefined;
@@ -45,7 +45,7 @@ declare const __VLS_export: <T extends object = HysTransferOption, K extends Hys
45
45
  }>) => void;
46
46
  attrs: any;
47
47
  slots: HysTransferSlots<T, K>;
48
- emit: ((evt: "change", value: K[], direction: HysTransferSide, movedKeys: K[]) => void) & ((evt: "update:modelValue", value: K[]) => void) & ((evt: "search", side: HysTransferSide, value: string) => void) & ((evt: "blur", event: FocusEvent) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "scroll", side: HysTransferSide, event: Event) => void) & ((evt: "update:checkedKeys", keys: K[]) => void) & ((evt: "pageSizeChange", side: HysTransferSide, size: number) => void) & ((evt: "pageChange", side: HysTransferSide, page: number, pageSize: number) => void) & ((evt: "dragStart", side: HysTransferSide, keys: K[], event: DragEvent) => void) & ((evt: "dragEnd") => void) & ((evt: "checkChange", side: HysTransferSide, keys: K[]) => void) & ((evt: "selectChange", left: K[], right: K[]) => void) & ((evt: "update:searchValues", values: Record<HysTransferSide, string>) => void) & ((evt: "update:pages", pages: Record<HysTransferSide, number>) => void) & ((evt: "update:pageSizes", sizes: Record<HysTransferSide, number>) => void);
48
+ emit: ((evt: "change", value: K[], direction: HysTransferSide, movedKeys: K[]) => void) & ((evt: "update:modelValue", value: K[]) => void) & ((evt: "search", side: HysTransferSide, value: string) => void) & ((evt: "blur", event: FocusEvent) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "scroll", side: HysTransferSide, event: Event) => void) & ((evt: "update:checkedKeys", keys: K[]) => void) & ((evt: "pageSizeChange", side: HysTransferSide, size: number) => void) & ((evt: "pageChange", side: HysTransferSide, page: number, pageSize: number) => void) & ((evt: "dragEnd") => void) & ((evt: "dragStart", side: HysTransferSide, keys: K[], event: DragEvent) => void) & ((evt: "checkChange", side: HysTransferSide, keys: K[]) => void) & ((evt: "selectChange", left: K[], right: K[]) => void) & ((evt: "update:searchValues", values: Record<HysTransferSide, string>) => void) & ((evt: "update:pages", pages: Record<HysTransferSide, number>) => void) & ((evt: "update:pageSizes", sizes: Record<HysTransferSide, number>) => void);
49
49
  }>) => import("vue").VNode & {
50
50
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
51
51
  };
@@ -22,8 +22,8 @@ declare const __VLS_export: <T extends object, K extends HysTransferKey>(__VLS_p
22
22
  itemHeight: number;
23
23
  overscan: number;
24
24
  virtual: boolean;
25
- animated: boolean;
26
25
  draggable: boolean;
26
+ moveOnDoubleClick?: boolean;
27
27
  draggedKeys: readonly K[];
28
28
  dropTarget: boolean;
29
29
  words: HysTransferLocale;
@@ -42,9 +42,11 @@ declare const __VLS_export: <T extends object, K extends HysTransferKey>(__VLS_p
42
42
  onRemove?: ((key: K) => any) | undefined;
43
43
  onCheckAll?: ((checked: boolean) => any) | undefined;
44
44
  onPageSize?: ((size: number) => any) | undefined;
45
- onDragStart?: ((event: DragEvent, key: K) => any) | undefined;
46
45
  onDragEnd?: (() => any) | undefined;
46
+ onDragStart?: ((event: DragEvent, key: K) => any) | undefined;
47
47
  onInvert?: (() => any) | undefined;
48
+ onRangeCheck?: ((keys: K[]) => any) | undefined;
49
+ onMoveItem?: ((key: K) => any) | undefined;
48
50
  onDragOver?: ((event: DragEvent) => any) | undefined;
49
51
  onDragLeave?: ((event: DragEvent) => any) | undefined;
50
52
  }> & (typeof globalThis extends {
@@ -92,7 +94,7 @@ declare const __VLS_export: <T extends object, K extends HysTransferKey>(__VLS_p
92
94
  info: HysTransferHeaderInfo;
93
95
  }) => any;
94
96
  };
95
- emit: ((evt: "search", value: string) => void) & ((evt: "drop", event: DragEvent) => void) & ((evt: "scroll", event: Event) => void) & ((evt: "page", page: number) => void) & ((evt: "check", key: K, checked: boolean) => void) & ((evt: "remove", key: K) => void) & ((evt: "checkAll", checked: boolean) => void) & ((evt: "pageSize", size: number) => void) & ((evt: "dragStart", event: DragEvent, key: K) => void) & ((evt: "dragEnd") => void) & ((evt: "invert") => void) & ((evt: "dragOver", event: DragEvent) => void) & ((evt: "dragLeave", event: DragEvent) => void);
97
+ emit: ((evt: "search", value: string) => void) & ((evt: "drop", event: DragEvent) => void) & ((evt: "scroll", event: Event) => void) & ((evt: "page", page: number) => void) & ((evt: "check", key: K, checked: boolean) => void) & ((evt: "remove", key: K) => void) & ((evt: "checkAll", checked: boolean) => void) & ((evt: "pageSize", size: number) => void) & ((evt: "dragEnd") => void) & ((evt: "dragStart", event: DragEvent, key: K) => void) & ((evt: "invert") => void) & ((evt: "rangeCheck", keys: K[]) => void) & ((evt: "moveItem", key: K) => void) & ((evt: "dragOver", event: DragEvent) => void) & ((evt: "dragLeave", event: DragEvent) => void);
96
98
  }>) => import("vue").VNode & {
97
99
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
98
100
  };
@@ -15,9 +15,9 @@ declare const __VLS_export: <V extends HysTreeValue = string, N extends object =
15
15
  loadedKeys: HysTreeKey[];
16
16
  }) => any) | undefined;
17
17
  onScroll?: ((event: Event) => any) | undefined;
18
+ "onUpdate:checkedKeys"?: ((keys: HysTreeKey[]) => any) | undefined;
18
19
  "onUpdate:searchValue"?: ((query: string) => any) | undefined;
19
20
  onCheck?: ((keys: HysTreeKey[], info: HysTreeCheckInfo<N>) => any) | undefined;
20
- "onUpdate:checkedKeys"?: ((keys: HysTreeKey[]) => any) | undefined;
21
21
  "onCheck-change"?: ((info: HysTreeCheckInfo<N>) => any) | undefined;
22
22
  "onSelection-change"?: ((info: HysTreeSelectInfo<N>) => any) | undefined;
23
23
  "onUpdate:expandedKeys"?: ((keys: HysTreeKey[]) => any) | undefined;
@@ -125,7 +125,7 @@ declare const __VLS_export: <V extends HysTreeValue = string, N extends object =
125
125
  node: N;
126
126
  children: readonly N[];
127
127
  loadedKeys: HysTreeKey[];
128
- }) => void) & ((evt: "scroll", event: Event) => void) & ((evt: "update:searchValue", query: string) => void) & ((evt: "check", keys: HysTreeKey[], info: HysTreeCheckInfo<N>) => void) & ((evt: "update:checkedKeys", keys: HysTreeKey[]) => void) & ((evt: "check-change", info: HysTreeCheckInfo<N>) => void) & ((evt: "selection-change", info: HysTreeSelectInfo<N>) => void) & ((evt: "update:expandedKeys", keys: HysTreeKey[]) => void) & ((evt: "node-expand", node: N, info: {
128
+ }) => void) & ((evt: "scroll", event: Event) => void) & ((evt: "update:checkedKeys", keys: HysTreeKey[]) => void) & ((evt: "update:searchValue", query: string) => void) & ((evt: "check", keys: HysTreeKey[], info: HysTreeCheckInfo<N>) => void) & ((evt: "check-change", info: HysTreeCheckInfo<N>) => void) & ((evt: "selection-change", info: HysTreeSelectInfo<N>) => void) & ((evt: "update:expandedKeys", keys: HysTreeKey[]) => void) & ((evt: "node-expand", node: N, info: {
129
129
  key: HysTreeKey;
130
130
  expanded: boolean;
131
131
  expandedKeys: HysTreeKey[];
@@ -1,70 +1,58 @@
1
- export interface HysUploadFile {
2
- uid: string;
3
- name: string;
4
- size: number;
5
- raw: File;
6
- }
7
- type __VLS_Props = {
8
- accept?: string;
9
- multiple?: boolean;
10
- disabled?: boolean;
11
- limit?: number;
12
- maxSize?: number;
13
- drag?: boolean;
14
- showFileList?: boolean;
15
- beforeUpload?: (file: File) => boolean | void | Promise<boolean | void>;
1
+ import { type HysUploadProps, type HysUploadFile, type HysUploadItem, type HysUploadSlots, type HysUploadChange, type HysUploadInvalid, type HysUploadError } from "../../composables/upload";
2
+ export type { HysUploadFile } from "../../composables/upload";
3
+ declare const __VLS_export: <T extends HysUploadItem = HysUploadFile>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<HysUploadProps<T> & {
5
+ onChange?: ((files: T[]) => any) | undefined;
6
+ "onUpdate:modelValue"?: ((files: T[]) => any) | undefined;
7
+ onProgress?: ((percentage: number, file: T) => any) | undefined;
8
+ onSelect?: ((files: File[]) => any) | undefined;
9
+ onSuccess?: ((response: unknown, file: T) => any) | undefined;
10
+ onAbort?: ((file: T, reason: string) => any) | undefined;
11
+ onDrop?: ((event: DragEvent) => any) | undefined;
12
+ onError?: ((message: string) => any) | undefined;
13
+ onInvalid?: ((info: HysUploadInvalid<T>) => any) | undefined;
14
+ onPaste?: ((event: ClipboardEvent) => any) | undefined;
15
+ onStart?: ((file: T) => any) | undefined;
16
+ onRemove?: ((file: T) => any) | undefined;
17
+ onPreview?: ((file: T) => any) | undefined;
18
+ onDownload?: ((file: T) => any) | undefined;
19
+ "onUpdate:fileList"?: ((files: T[]) => any) | undefined;
20
+ onFileChange?: ((change: HysUploadChange<T>) => any) | undefined;
21
+ onUploadError?: ((error: HysUploadError, file: T) => any) | undefined;
22
+ onExceed?: ((files: File[]) => any) | undefined;
23
+ onRemoveError?: ((error: Error, file: T) => any) | undefined;
24
+ }> & (typeof globalThis extends {
25
+ __VLS_PROPS_FALLBACK: infer P;
26
+ } ? P : {});
27
+ expose: (exposed: import("vue").ShallowUnwrapRef<{
28
+ element: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
29
+ input: import("vue").Ref<HTMLInputElement | undefined, HTMLInputElement | undefined>;
30
+ files: import("vue").ComputedRef<T[]>;
31
+ busy: import("vue").Ref<boolean, boolean>;
32
+ uploading: import("vue").ComputedRef<number>;
33
+ queued: import("vue").ComputedRef<number>;
34
+ open: (event?: Event) => void;
35
+ focus: () => void;
36
+ addFiles: (inputFiles: readonly File[]) => Promise<T[]>;
37
+ getFiles: () => T[];
38
+ clearFiles: (statuses?: readonly import("../../index.js").HysUploadStatus[]) => Promise<boolean>;
39
+ remove: (file: string | T) => Promise<boolean>;
40
+ submit: (file?: T | string) => Promise<number>;
41
+ retry: (file: T | string) => Promise<boolean>;
42
+ abort: (file?: T | string) => number;
43
+ preview: (file: string | T) => Promise<boolean>;
44
+ download: (file: string | T) => Promise<boolean>;
45
+ }>) => void;
46
+ attrs: any;
47
+ slots: HysUploadSlots<T>;
48
+ emit: ((evt: "change", files: T[]) => void) & ((evt: "update:modelValue", files: T[]) => void) & ((evt: "progress", percentage: number, file: T) => void) & ((evt: "select", files: File[]) => void) & ((evt: "success", response: unknown, file: T) => void) & ((evt: "abort", file: T, reason: string) => void) & ((evt: "drop", event: DragEvent) => void) & ((evt: "error", message: string) => void) & ((evt: "invalid", info: HysUploadInvalid<T>) => void) & ((evt: "paste", event: ClipboardEvent) => void) & ((evt: "start", file: T) => void) & ((evt: "remove", file: T) => void) & ((evt: "preview", file: T) => void) & ((evt: "download", file: T) => void) & ((evt: "update:fileList", files: T[]) => void) & ((evt: "fileChange", change: HysUploadChange<T>) => void) & ((evt: "uploadError", error: HysUploadError, file: T) => void) & ((evt: "exceed", files: File[]) => void) & ((evt: "removeError", error: Error, file: T) => void);
49
+ }>) => import("vue").VNode & {
50
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
16
51
  };
17
- declare const __VLS_template: () => {
18
- __VLS_Slots: {
19
- default?: (props: {}) => any;
20
- } & {
21
- file?: (props: {
22
- file: {
23
- uid: string;
24
- name: string;
25
- size: number;
26
- raw: {
27
- readonly lastModified: number;
28
- readonly name: string;
29
- readonly webkitRelativePath: string;
30
- readonly size: number;
31
- readonly type: string;
32
- arrayBuffer: () => Promise<ArrayBuffer>;
33
- bytes: () => Promise<Uint8Array<ArrayBuffer>>;
34
- slice: (start?: number, end?: number, contentType?: string) => Blob;
35
- stream: () => ReadableStream<Uint8Array<ArrayBuffer>>;
36
- text: () => Promise<string>;
37
- };
38
- };
39
- }) => any;
40
- };
41
- };
42
- type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
43
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
44
- clearFiles: () => void;
45
- open: () => void;
46
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
47
- change: (files: HysUploadFile[]) => any;
48
- select: (files: File[]) => any;
49
- error: (message: string) => any;
50
- remove: (file: HysUploadFile) => any;
51
- exceed: (files: File[]) => any;
52
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
53
- onChange?: ((files: HysUploadFile[]) => any) | undefined;
54
- onSelect?: ((files: File[]) => any) | undefined;
55
- onError?: ((message: string) => any) | undefined;
56
- onRemove?: ((file: HysUploadFile) => any) | undefined;
57
- onExceed?: ((files: File[]) => any) | undefined;
58
- }>, {
59
- multiple: boolean;
60
- drag: boolean;
61
- showFileList: boolean;
62
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
63
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
64
52
  declare const _default: typeof __VLS_export;
65
53
  export default _default;
66
- type __VLS_WithSlots<T, S> = T & {
67
- new (): {
68
- $slots: S;
69
- };
70
- };
54
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
55
+ [K in keyof T]: T[K];
56
+ } : {
57
+ [K in keyof T as K]: T[K];
58
+ }) & {};
@@ -1,45 +1,76 @@
1
- type Row = {
2
- id: string | number;
3
- [key: string]: unknown;
4
- };
5
- type Column = {
6
- key: string;
7
- label: string;
8
- width?: number;
9
- };
10
- type __VLS_Props = {
11
- rows: Row[];
12
- columns: Column[];
13
- rowHeight?: number;
14
- height?: number;
15
- loading?: boolean;
16
- emptyText?: string;
17
- rowKey?: string;
18
- };
19
- declare const __VLS_template: () => {
20
- __VLS_Slots: {
21
- [x: string]: ((props: {
22
- row: Row;
23
- value: unknown;
1
+ import { type HysVirtualTableProps, type HysVirtualTableColumn, type HysVirtualTableCell, type HysVirtualTableKey, type HysVirtualTableSort, type HysVirtualTableRange, type HysVirtualTableScroll, type HysVirtualTableAlign } from "../../composables/virtualTable";
2
+ declare const __VLS_export: <T extends object = Record<string, unknown>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<HysVirtualTableProps<T> & {
4
+ onScroll?: ((state: HysVirtualTableScroll) => any) | undefined;
5
+ onSelectionChange?: ((keys: HysVirtualTableKey[], rows: T[]) => any) | undefined;
6
+ onRowClick?: ((row: T, index: number, event: MouseEvent) => any) | undefined;
7
+ "onUpdate:selectedRowKeys"?: ((keys: HysVirtualTableKey[]) => any) | undefined;
8
+ onSortChange?: ((sort: HysVirtualTableSort | null) => any) | undefined;
9
+ "onUpdate:currentRowKey"?: ((key: HysVirtualTableKey | null) => any) | undefined;
10
+ onCurrentChange?: ((row: T | null, key: HysVirtualTableKey | null) => any) | undefined;
11
+ onRowDblclick?: ((row: T, index: number, event: MouseEvent) => any) | undefined;
12
+ onCellClick?: ((context: HysVirtualTableCell<T>, event: MouseEvent) => any) | undefined;
13
+ "onUpdate:sortState"?: ((sort: HysVirtualTableSort | null) => any) | undefined;
14
+ onRangeChange?: ((range: HysVirtualTableRange) => any) | undefined;
15
+ onEndReached?: ((info: {
16
+ distance: number;
17
+ total: number;
24
18
  }) => any) | undefined;
25
- } & {
26
- header?: (props: {
27
- column: Column;
28
- }) => any;
29
- } & {
30
- empty?: (props: {}) => any;
19
+ }> & (typeof globalThis extends {
20
+ __VLS_PROPS_FALLBACK: infer P;
21
+ } ? P : {});
22
+ expose: (exposed: import("vue").ShallowUnwrapRef<{
23
+ element: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
24
+ viewport: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
25
+ scrollTop: import("vue").Ref<number, number>;
26
+ scrollLeft: import("vue").Ref<number, number>;
27
+ range: import("vue").ComputedRef<HysVirtualTableRange>;
28
+ selectedRowKeys: import("vue").ComputedRef<HysVirtualTableKey[]>;
29
+ sortState: import("vue").ComputedRef<HysVirtualTableSort | null>;
30
+ scrollTo: (options: {
31
+ top?: number;
32
+ left?: number;
33
+ behavior?: ScrollBehavior;
34
+ }) => void;
35
+ scrollToRow: (index: number, align?: HysVirtualTableAlign) => void;
36
+ scrollToKey: (key: HysVirtualTableKey, align?: HysVirtualTableAlign) => boolean;
37
+ scrollToColumn: (key: string, align?: HysVirtualTableAlign) => boolean;
38
+ focusCell: (index: number, key?: string) => Promise<boolean>;
39
+ setSort: (value: HysVirtualTableSort | null) => Promise<boolean>;
40
+ clearSelection: () => Promise<boolean>;
41
+ toggleRowSelection: (key: HysVirtualTableKey, selected?: boolean) => Promise<boolean>;
42
+ selectAll: (selected?: boolean) => Promise<boolean>;
43
+ setCurrentRow: (key: HysVirtualTableKey | null) => Promise<boolean>;
44
+ getRow: (index: number) => T;
45
+ remeasure: () => void;
46
+ }>) => void;
47
+ attrs: any;
48
+ slots: {
49
+ [name: string]: ((props: any) => any) | undefined;
50
+ header?(props: {
51
+ column: HysVirtualTableColumn<T>;
52
+ columnIndex: number;
53
+ }): any;
54
+ cell?(props: HysVirtualTableCell<T>): any;
55
+ empty?(): any;
56
+ loading?(): any;
57
+ footer?(props: {
58
+ rows: readonly T[];
59
+ range: HysVirtualTableRange;
60
+ selectedRowKeys: HysVirtualTableKey[];
61
+ }): any;
31
62
  };
63
+ emit: ((evt: "scroll", state: HysVirtualTableScroll) => void) & ((evt: "selectionChange", keys: HysVirtualTableKey[], rows: T[]) => void) & ((evt: "rowClick", row: T, index: number, event: MouseEvent) => void) & ((evt: "update:selectedRowKeys", keys: HysVirtualTableKey[]) => void) & ((evt: "sortChange", sort: HysVirtualTableSort | null) => void) & ((evt: "update:currentRowKey", key: HysVirtualTableKey | null) => void) & ((evt: "currentChange", row: T | null, key: HysVirtualTableKey | null) => void) & ((evt: "rowDblclick", row: T, index: number, event: MouseEvent) => void) & ((evt: "cellClick", context: HysVirtualTableCell<T>, event: MouseEvent) => void) & ((evt: "update:sortState", sort: HysVirtualTableSort | null) => void) & ((evt: "rangeChange", range: HysVirtualTableRange) => void) & ((evt: "endReached", info: {
64
+ distance: number;
65
+ total: number;
66
+ }) => void);
67
+ }>) => import("vue").VNode & {
68
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
32
69
  };
33
- type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
34
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
35
- height: number;
36
- rowHeight: number;
37
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
38
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
39
70
  declare const _default: typeof __VLS_export;
40
71
  export default _default;
41
- type __VLS_WithSlots<T, S> = T & {
42
- new (): {
43
- $slots: S;
44
- };
45
- };
72
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
73
+ [K in keyof T]: T[K];
74
+ } : {
75
+ [K in keyof T as K]: T[K];
76
+ }) & {};
@@ -1,3 +1,4 @@
1
+ import type { HysPopupTransition } from '../motion/popup';
1
2
  import type { Component, CSSProperties } from "vue";
2
3
  import type { Placement } from "./useFloating";
3
4
  import type { HysInputProps } from "./textInput";
@@ -23,6 +24,8 @@ export interface HysAutocompleteContext {
23
24
  export type HysAutocompleteCallback = (options: readonly HysAutocompleteDataOption[]) => void;
24
25
  export type HysAutocompleteFetch = (query: string, callback: HysAutocompleteCallback, context: HysAutocompleteContext) => void | readonly HysAutocompleteDataOption[] | Promise<void | readonly HysAutocompleteDataOption[]>;
25
26
  export interface HysAutocompleteProps {
27
+ popupTransition?: HysPopupTransition;
28
+ popupTransitionDuration?: number;
26
29
  modelValue?: string;
27
30
  defaultValue?: string;
28
31
  options?: readonly HysAutocompleteDataOption[];
@@ -1,3 +1,4 @@
1
+ import type { HysPopupTransition } from '../motion/popup';
1
2
  import { type Component, type ComputedRef, type CSSProperties, type ImgHTMLAttributes, type InjectionKey } from "vue";
2
3
  import type { Placement } from "./useFloating";
3
4
  export type HysAvatarBreakpoint = "xs" | "sm" | "md" | "lg" | "xl" | "xxl";
@@ -46,6 +47,8 @@ export interface HysAvatarGroupInstance {
46
47
  close: () => void;
47
48
  }
48
49
  export interface HysAvatarGroupProps {
50
+ popupTransition?: HysPopupTransition;
51
+ popupTransitionDuration?: number;
49
52
  options?: readonly HysAvatarOption[];
50
53
  size?: HysAvatarSize;
51
54
  shape?: "circle" | "square";
@@ -1,3 +1,4 @@
1
+ import type { HysPopupTransition } from '../motion/popup';
1
2
  import type { CSSProperties, VNodeChild } from "vue";
2
3
  import { type HysTreeKey } from "./tree";
3
4
  import type { Placement } from "./useFloating";
@@ -72,6 +73,8 @@ export interface HysCascaderLocale {
72
73
  limit: string;
73
74
  }
74
75
  export interface HysCascaderProps<N extends object = HysCascaderNode, V extends HysCascaderValue = HysCascaderValue> {
76
+ popupTransition?: HysPopupTransition;
77
+ popupTransitionDuration?: number;
75
78
  options: readonly N[];
76
79
  modelValue?: V;
77
80
  defaultValue?: V;
@@ -0,0 +1,97 @@
1
+ import type { CSSProperties, VNodeChild } from "vue";
2
+ import type { HysPopupMotionProps } from "../motion/popup";
3
+ import type { Placement } from "./useFloating";
4
+ export type HysColorFormat = "hex" | "rgb" | "hsl" | "hsv";
5
+ export interface HysColor {
6
+ h: number;
7
+ s: number;
8
+ v: number;
9
+ a: number;
10
+ }
11
+ export interface HysColorPickerProps extends HysPopupMotionProps {
12
+ modelValue?: string;
13
+ defaultValue?: string;
14
+ disabled?: boolean;
15
+ readonly?: boolean;
16
+ size?: "sm" | "md" | "lg";
17
+ label?: string;
18
+ ariaLabel?: string;
19
+ presets?: readonly string[];
20
+ clearable?: boolean;
21
+ showAlpha?: boolean;
22
+ format?: HysColorFormat;
23
+ immediate?: boolean;
24
+ showInput?: boolean;
25
+ showText?: boolean;
26
+ showPresets?: boolean;
27
+ inline?: boolean;
28
+ open?: boolean;
29
+ defaultOpen?: boolean;
30
+ placement?: Placement;
31
+ appendTo?: string | HTMLElement | false;
32
+ popupClass?: string;
33
+ popupStyle?: CSSProperties;
34
+ popupWidth?: number | string;
35
+ showFooter?: boolean;
36
+ confirmText?: string;
37
+ cancelText?: string;
38
+ clearText?: string;
39
+ status?: "error" | "warning" | "success";
40
+ error?: string;
41
+ name?: string;
42
+ form?: string;
43
+ tabindex?: number;
44
+ autofocus?: boolean;
45
+ validateEvent?: boolean;
46
+ inputProps?: Record<string, unknown>;
47
+ }
48
+ export interface HysColorPickerContext {
49
+ value: string;
50
+ draft: string;
51
+ color: Readonly<HysColor>;
52
+ disabled: boolean;
53
+ readonly: boolean;
54
+ valid: boolean;
55
+ dirty: boolean;
56
+ setColor: (value: string) => Promise<boolean>;
57
+ confirm: () => Promise<boolean>;
58
+ cancel: () => void;
59
+ clear: () => Promise<boolean>;
60
+ show: () => Promise<boolean>;
61
+ hide: () => Promise<boolean>;
62
+ }
63
+ export interface HysColorPickerSlots {
64
+ trigger?: (context: HysColorPickerContext) => VNodeChild;
65
+ header?: (context: HysColorPickerContext) => VNodeChild;
66
+ footer?: (context: HysColorPickerContext) => VNodeChild;
67
+ preset?: (context: {
68
+ value: string;
69
+ color: string;
70
+ selected: boolean;
71
+ disabled: boolean;
72
+ }) => VNodeChild;
73
+ }
74
+ export interface HysColorPickerInstance {
75
+ readonly element: HTMLElement | undefined;
76
+ readonly input: HTMLInputElement | undefined;
77
+ readonly panel: HTMLElement | undefined;
78
+ readonly value: string;
79
+ readonly draft: string;
80
+ readonly color: Readonly<HysColor>;
81
+ readonly open: boolean;
82
+ focus: (options?: FocusOptions) => void;
83
+ blur: () => void;
84
+ show: () => Promise<boolean>;
85
+ hide: () => Promise<boolean>;
86
+ confirm: () => Promise<boolean>;
87
+ cancel: () => void;
88
+ clear: () => Promise<boolean>;
89
+ setColor: (value: string) => Promise<boolean>;
90
+ }
91
+ export declare const colorClamp: (value: number, min?: number, max?: number) => number;
92
+ export declare function colorFromRgb(r: number, g: number, b: number, a?: number): HysColor;
93
+ export declare function colorRgb(c: HysColor): readonly [number, number, number];
94
+ export declare function parseColor(value: string | undefined): HysColor | undefined;
95
+ export declare function formatColor(color: HysColor, format?: HysColorFormat, alpha?: boolean): string;
96
+ export declare const colorCss: (color: HysColor) => string;
97
+ export declare function sameColor(a: HysColor | undefined, b: HysColor | undefined): boolean;
@@ -0,0 +1,100 @@
1
+ import type { HysPopupMotionProps } from "../motion/popup";
2
+ export type HysDataGridKey = string | number;
3
+ export type HysDataGridSort = {
4
+ key: string;
5
+ direction: "asc" | "desc";
6
+ };
7
+ export interface HysDataGridQuery {
8
+ page: number;
9
+ pageSize: number;
10
+ sort: HysDataGridSort[];
11
+ search: string;
12
+ filters: Record<string, string>;
13
+ }
14
+ export interface GridColumn<T extends object = Record<string, unknown>> {
15
+ key: string;
16
+ label: string;
17
+ field?: string | ((row: T) => unknown);
18
+ width?: number;
19
+ minWidth?: number;
20
+ maxWidth?: number;
21
+ sortable?: boolean;
22
+ sortMethod?: (a: T, b: T) => number;
23
+ filterable?: boolean;
24
+ filterMethod?: (value: string, row: T) => boolean;
25
+ hideable?: boolean;
26
+ resizable?: boolean;
27
+ reorderable?: boolean;
28
+ pinned?: "left" | "right";
29
+ align?: "left" | "center" | "right";
30
+ summary?: "sum" | "avg" | "min" | "max" | "count";
31
+ editable?: boolean;
32
+ }
33
+ export interface HysDataGridResult<T extends object> {
34
+ rows: readonly T[];
35
+ total: number;
36
+ }
37
+ export type HysDataGridLoader<T extends object> = (query: HysDataGridQuery, context: {
38
+ signal: AbortSignal;
39
+ }) => Promise<HysDataGridResult<T>> | HysDataGridResult<T>;
40
+ export interface HysDataGridProps<T extends object> extends HysPopupMotionProps {
41
+ columns: readonly GridColumn<T>[];
42
+ rows: readonly T[];
43
+ rowKey?: string | ((row: T, index: number) => HysDataGridKey);
44
+ page?: number;
45
+ pageSize?: number;
46
+ query?: HysDataGridQuery;
47
+ defaultQuery?: Partial<HysDataGridQuery>;
48
+ immediateQuery?: boolean;
49
+ serverMode?: boolean;
50
+ loadRows?: HysDataGridLoader<T>;
51
+ totalRows?: number;
52
+ storageKey?: string;
53
+ selectable?: boolean;
54
+ rowSelectable?: (row: T, index: number) => boolean;
55
+ selectedRowKeys?: readonly HysDataGridKey[];
56
+ defaultSelectedRowKeys?: readonly HysDataGridKey[];
57
+ reserveSelection?: boolean;
58
+ selectionType?: "checkbox" | "radio";
59
+ loading?: boolean;
60
+ emptyText?: string;
61
+ density?: "compact" | "normal" | "comfortable";
62
+ multiSort?: boolean;
63
+ stickyHeader?: boolean;
64
+ maxHeight?: number | string;
65
+ scrollToTopOnQuery?: boolean;
66
+ groupable?: boolean;
67
+ showSummary?: boolean;
68
+ summaryMethod?: (column: GridColumn<T>, rows: readonly T[]) => string | number;
69
+ treeMode?: boolean;
70
+ parentKey?: string;
71
+ editable?: boolean;
72
+ }
73
+ export interface HysDataGridInstance {
74
+ resetColumns(): void;
75
+ getQuery(): HysDataGridQuery;
76
+ setQuery(query: Partial<HysDataGridQuery>): void;
77
+ resetQuery(): void;
78
+ reload(): void;
79
+ getSelection(): HysDataGridKey[];
80
+ clearSelection(): void;
81
+ toggleRowSelection(key: HysDataGridKey, checked?: boolean): void;
82
+ scrollTo(options: ScrollToOptions): void;
83
+ scrollToRow(key: HysDataGridKey): boolean;
84
+ }
85
+ export type GridRow<T extends object> = {
86
+ row: T;
87
+ id: HysDataGridKey;
88
+ index: number;
89
+ };
90
+ export type GridTreeRow<T extends object> = GridRow<T> & {
91
+ depth: number;
92
+ hasChildren: boolean;
93
+ };
94
+ export declare const gridKey: (value: unknown) => value is HysDataGridKey;
95
+ export declare const gridToken: (key: HysDataGridKey) => string;
96
+ export declare const positiveInteger: (value: number | undefined, fallback: number) => number;
97
+ export declare function gridField(row: object, path: string): unknown;
98
+ export declare function gridValue<T extends object>(row: T, column: GridColumn<T>): unknown;
99
+ export declare function gridRows<T extends object>(rows: readonly T[], rowKey: NonNullable<HysDataGridProps<T>["rowKey"]>, offset: number): GridRow<T>[];
100
+ export declare function gridTree<T extends object>(rows: readonly GridRow<T>[], parentKey: string, expanded: ReadonlySet<HysDataGridKey>): GridTreeRow<T>[];