hys-ui 0.4.0 → 0.6.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 (152) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/components/HysAnimatedNumber/HysAnimatedNumber.vue.js +3 -3
  3. package/dist/components/HysAnimatedNumber/HysAnimatedNumber2.vue.js +440 -119
  4. package/dist/components/HysAnimatedNumber/NumberAnimationCanvas/NumberAnimationCanvas.vue.js +7 -0
  5. package/dist/components/HysAnimatedNumber/NumberAnimationCanvas/NumberAnimationCanvas2.vue.js +166 -0
  6. package/dist/components/HysAnimatedNumber/NumberDigits/NumberDigits.vue.js +7 -0
  7. package/dist/components/HysAnimatedNumber/NumberDigits/NumberDigits2.vue.js +105 -0
  8. package/dist/components/HysAnimatedNumber/animation/digital.js +186 -0
  9. package/dist/components/HysAnimatedNumber/animation/morph.js +110 -0
  10. package/dist/components/HysAnimatedNumber/animation/paint.js +34 -0
  11. package/dist/components/HysAnimatedNumber/animation/particles.js +51 -0
  12. package/dist/components/HysAnimatedNumber/animation/paths.js +165 -0
  13. package/dist/components/HysAnimatedNumber/animation/physics.js +66 -0
  14. package/dist/components/HysAnimatedNumber/animation/render.js +89 -0
  15. package/dist/components/HysAnimatedNumber/animation/reveal.js +125 -0
  16. package/dist/components/HysAnimatedNumber/animation/rolling.js +66 -0
  17. package/dist/components/HysAnimatedNumber/animation/scenarios.js +217 -0
  18. package/dist/components/HysAnimatedNumber/animation/spatial.js +112 -0
  19. package/dist/components/HysAnimatedNumber/useNumberCountdown.js +58 -0
  20. package/dist/components/HysAnimatedNumber/useNumberVisuals.js +60 -0
  21. package/dist/components/HysDrawer/HysDrawer.vue.js +1 -1
  22. package/dist/components/HysDrawer/HysDrawer2.vue.js +2 -2
  23. package/dist/components/HysFormItem/HysFormItem.vue.js +1 -1
  24. package/dist/components/HysFormItem/HysFormItem2.vue.js +231 -229
  25. package/dist/components/HysInput/HysInput.vue.js +2 -2
  26. package/dist/components/HysInput/HysInput2.vue.js +327 -274
  27. package/dist/components/HysModal/HysModal.vue.js +2 -2
  28. package/dist/components/HysModal/HysModal2.vue.js +38 -38
  29. package/dist/components/HysSearch/HysSearch.vue.js +2 -2
  30. package/dist/components/HysSortableList/HysSortableList.vue.js +2 -2
  31. package/dist/components/HysSortableList/HysSortableList2.vue.js +498 -129
  32. package/dist/components/HysSortableList/SortableGhost/SortableGhost.vue.js +7 -0
  33. package/dist/components/HysSortableList/SortableGhost/SortableGhost2.vue.js +43 -0
  34. package/dist/components/HysSortableList/SortableGhost/useSortGhost.js +54 -0
  35. package/dist/components/HysSortableList/geometry.js +230 -0
  36. package/dist/components/HysSortableList/model.js +254 -0
  37. package/dist/components/HysSortableList/transactions.js +281 -0
  38. package/dist/components/HysSortableList/useSortDrag.js +270 -0
  39. package/dist/components/HysSortableList/useSortKeyboard.js +72 -0
  40. package/dist/components/HysSortableList/useSortWindow.js +144 -0
  41. package/dist/components/HysTextarea/HysTextarea.vue.js +56 -32
  42. package/dist/components/HysToast/HysToast.vue.js +3 -3
  43. package/dist/components/HysToast/HysToast2.vue.js +379 -107
  44. package/dist/components/HysToast/ToastViewport/ToastViewport.vue.js +7 -0
  45. package/dist/components/HysToast/ToastViewport/ToastViewport2.vue.js +211 -0
  46. package/dist/components/HysToast/ToastViewport/useToastStackDisclosure.js +71 -0
  47. package/dist/components/HysToast/toastPresentation.js +98 -0
  48. package/dist/components/HysToast/useToastActions.js +62 -0
  49. package/dist/components/HysToast/useToastSwipe.js +48 -0
  50. package/dist/components/HysToast/useToastTimer.js +90 -0
  51. package/dist/composables/animatedNumberDigits.js +106 -0
  52. package/dist/composables/animatedNumberFormat.js +222 -0
  53. package/dist/composables/animatedNumberTiming.js +66 -0
  54. package/dist/composables/numberAnimation.js +72 -0
  55. package/dist/composables/numberAnimationCatalog.js +301 -0
  56. package/dist/composables/numberAnimationSequence.js +45 -0
  57. package/dist/composables/popupReferenceBinding.js +41 -0
  58. package/dist/composables/textInput.js +23 -14
  59. package/dist/composables/toastEscape.js +18 -10
  60. package/dist/composables/toastQueue.js +276 -0
  61. package/dist/composables/toastQueueModel.js +86 -0
  62. package/dist/composables/toastTasks.js +58 -0
  63. package/dist/composables/useHysAnimatedNumber.js +264 -0
  64. package/dist/composables/useHysNumberAnimationGroup.js +23 -0
  65. package/dist/composables/useHysToast.js +117 -135
  66. package/dist/composables/usePopupSurface.js +190 -356
  67. package/dist/composables/usePopupSurfaceInteractions.js +172 -0
  68. package/dist/composables/useTextareaSize.js +62 -46
  69. package/dist/index.js +125 -111
  70. package/dist/style.css +1 -1
  71. package/dist/types/components/HysAnimatedNumber/HysAnimatedNumber.vue.d.ts +88 -49
  72. package/dist/types/components/HysAnimatedNumber/NumberAnimationCanvas/NumberAnimationCanvas.vue.d.ts +19 -0
  73. package/dist/types/components/HysAnimatedNumber/NumberDigits/NumberDigits.vue.d.ts +31 -0
  74. package/dist/types/components/HysAnimatedNumber/animation/digital.d.ts +3 -0
  75. package/dist/types/components/HysAnimatedNumber/animation/morph.d.ts +2 -0
  76. package/dist/types/components/HysAnimatedNumber/animation/paint.d.ts +44 -0
  77. package/dist/types/components/HysAnimatedNumber/animation/particles.d.ts +5 -0
  78. package/dist/types/components/HysAnimatedNumber/animation/paths.d.ts +12 -0
  79. package/dist/types/components/HysAnimatedNumber/animation/physics.d.ts +2 -0
  80. package/dist/types/components/HysAnimatedNumber/animation/render.d.ts +2 -0
  81. package/dist/types/components/HysAnimatedNumber/animation/reveal.d.ts +2 -0
  82. package/dist/types/components/HysAnimatedNumber/animation/rolling.d.ts +2 -0
  83. package/dist/types/components/HysAnimatedNumber/animation/scenarios.d.ts +4 -0
  84. package/dist/types/components/HysAnimatedNumber/animation/spatial.d.ts +2 -0
  85. package/dist/types/components/HysAnimatedNumber/useNumberCountdown.d.ts +8 -0
  86. package/dist/types/components/HysAnimatedNumber/useNumberVisuals.d.ts +12 -0
  87. package/dist/types/components/HysAutocomplete/HysAutocomplete.vue.d.ts +11 -2
  88. package/dist/types/components/HysAvatarGroup/HysAvatarGroup.vue.d.ts +2 -2
  89. package/dist/types/components/HysCard/HysCard.vue.d.ts +1 -1
  90. package/dist/types/components/HysCascader/HysCascader.vue.d.ts +3 -3
  91. package/dist/types/components/HysCascader/HysCascaderColumn.vue.d.ts +2 -2
  92. package/dist/types/components/HysColorPicker/HysColorPicker.vue.d.ts +2 -2
  93. package/dist/types/components/HysDatePicker/HysDatePicker.vue.d.ts +3 -3
  94. package/dist/types/components/HysDatePicker/HysDatePickerControl.vue.d.ts +5 -5
  95. package/dist/types/components/HysDateRangePicker/HysDateRangePicker.vue.d.ts +3 -3
  96. package/dist/types/components/HysDrawer/HysDrawer.vue.d.ts +1 -1
  97. package/dist/types/components/HysFormItem/HysFormItem.vue.d.ts +1 -1
  98. package/dist/types/components/HysGantt/HysGantt.vue.d.ts +1 -1
  99. package/dist/types/components/HysInput/HysInput.vue.d.ts +13 -1
  100. package/dist/types/components/HysModal/HysModal.vue.d.ts +1 -1
  101. package/dist/types/components/HysNumberInput/HysNumberInput.vue.d.ts +2 -2
  102. package/dist/types/components/HysPopover/HysPopover.vue.d.ts +1 -1
  103. package/dist/types/components/HysSearch/HysSearch.vue.d.ts +1 -1
  104. package/dist/types/components/HysSkeleton/HysSkeleton.vue.d.ts +2 -2
  105. package/dist/types/components/HysSortableList/HysSortableList.vue.d.ts +48 -25
  106. package/dist/types/components/HysSortableList/SortableGhost/SortableGhost.vue.d.ts +31 -0
  107. package/dist/types/components/HysSortableList/SortableGhost/useSortGhost.d.ts +23 -0
  108. package/dist/types/components/HysSortableList/geometry.d.ts +35 -0
  109. package/dist/types/components/HysSortableList/model.d.ts +61 -0
  110. package/dist/types/components/HysSortableList/sortableList.d.ts +151 -0
  111. package/dist/types/components/HysSortableList/transactions.d.ts +10 -0
  112. package/dist/types/components/HysSortableList/useSortDrag.d.ts +25 -0
  113. package/dist/types/components/HysSortableList/useSortKeyboard.d.ts +17 -0
  114. package/dist/types/components/HysSortableList/useSortWindow.d.ts +16 -0
  115. package/dist/types/components/HysSteps/HysSteps.vue.d.ts +1 -1
  116. package/dist/types/components/HysTabs/HysTabs.vue.d.ts +1 -1
  117. package/dist/types/components/HysTagInput/HysTagInput.vue.d.ts +1 -1
  118. package/dist/types/components/HysTextarea/HysTextarea.vue.d.ts +13 -2
  119. package/dist/types/components/HysToast/HysToast.vue.d.ts +44 -46
  120. package/dist/types/components/HysToast/ToastViewport/ToastViewport.vue.d.ts +25 -0
  121. package/dist/types/components/HysToast/ToastViewport/useToastStackDisclosure.d.ts +16 -0
  122. package/dist/types/components/HysToast/toastPresentation.d.ts +8 -0
  123. package/dist/types/components/HysToast/toastTypes.d.ts +212 -0
  124. package/dist/types/components/HysToast/useToastActions.d.ts +18 -0
  125. package/dist/types/components/HysToast/useToastSwipe.d.ts +11 -0
  126. package/dist/types/components/HysToast/useToastTimer.d.ts +22 -0
  127. package/dist/types/components/HysTooltip/HysTooltip.vue.d.ts +1 -1
  128. package/dist/types/components/HysTour/HysTour.vue.d.ts +1 -1
  129. package/dist/types/components/HysTreeSelect/HysTreeSelect.vue.d.ts +3 -3
  130. package/dist/types/components/HysUpload/HysUpload.vue.d.ts +2 -2
  131. package/dist/types/composables/animatedNumber.d.ts +220 -0
  132. package/dist/types/composables/animatedNumberDigits.d.ts +32 -0
  133. package/dist/types/composables/animatedNumberFormat.d.ts +16 -0
  134. package/dist/types/composables/animatedNumberTiming.d.ts +21 -0
  135. package/dist/types/composables/drawer.d.ts +1 -1
  136. package/dist/types/composables/numberAnimation.d.ts +29 -0
  137. package/dist/types/composables/numberAnimationCatalog.d.ts +58 -0
  138. package/dist/types/composables/numberAnimationSequence.d.ts +13 -0
  139. package/dist/types/composables/popupReferenceBinding.d.ts +9 -0
  140. package/dist/types/composables/textInput.d.ts +39 -4
  141. package/dist/types/composables/toastEscape.d.ts +1 -1
  142. package/dist/types/composables/toastQueue.d.ts +121 -0
  143. package/dist/types/composables/toastQueueModel.d.ts +116 -0
  144. package/dist/types/composables/toastTasks.d.ts +2 -0
  145. package/dist/types/composables/useHysAnimatedNumber.d.ts +37 -0
  146. package/dist/types/composables/useHysNumberAnimationGroup.d.ts +4 -0
  147. package/dist/types/composables/useHysToast.d.ts +4 -48
  148. package/dist/types/composables/usePopupSurface.d.ts +20 -20
  149. package/dist/types/composables/usePopupSurfaceInteractions.d.ts +33 -0
  150. package/dist/types/composables/useTextareaSize.d.ts +5 -2
  151. package/dist/types/index.d.ts +15 -6
  152. package/package.json +1 -1
@@ -4,11 +4,12 @@ type __VLS_Slots = {
4
4
  suffix?: () => any;
5
5
  prepend?: () => any;
6
6
  append?: () => any;
7
- 'clear-icon'?: () => any;
7
+ "clear-icon"?: () => any;
8
8
  count?: (info: HysInputCountInfo) => any;
9
9
  };
10
10
  type __VLS_Props = Omit<HysInputProps, "type" | "showPassword" | "showPasswordOn" | "passwordVisible" | "defaultPasswordVisible">;
11
11
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
12
+ element: import("vue").ComputedRef<HTMLTextAreaElement | undefined>;
12
13
  input: import("vue").ComputedRef<HTMLTextAreaElement | undefined>;
13
14
  textarea: import("vue").ComputedRef<HTMLTextAreaElement | undefined>;
14
15
  isComposing: import("vue").ComputedRef<boolean>;
@@ -17,6 +18,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
17
18
  select: () => void | undefined;
18
19
  clear: () => void | undefined;
19
20
  resize: () => Promise<void>;
21
+ resizeTextarea: () => Promise<void>;
22
+ textareaStyle: import("vue").ComputedRef<import("../../index.js").HysTextareaStyle>;
20
23
  setSelectionRange: (start: number, end: number, direction?: "forward" | "backward" | "none") => void | undefined;
21
24
  scrollTo: (options: ScrollToOptions) => void | undefined;
22
25
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -24,31 +27,39 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
24
27
  "update:modelValue": (value: string) => any;
25
28
  clear: () => any;
26
29
  input: (value: string) => any;
30
+ keydown: (event: KeyboardEvent) => any;
27
31
  blur: (event: FocusEvent) => any;
28
32
  compositionend: (event: CompositionEvent) => any;
29
33
  compositionstart: (event: CompositionEvent) => any;
30
34
  compositionupdate: (event: CompositionEvent) => any;
31
35
  focus: (event: FocusEvent) => any;
36
+ mouseenter: (event: MouseEvent) => any;
37
+ mouseleave: (event: MouseEvent) => any;
32
38
  pressEnter: (event: KeyboardEvent) => any;
33
39
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
34
40
  onChange?: ((value: string) => any) | undefined;
35
41
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
36
42
  onClear?: (() => any) | undefined;
37
43
  onInput?: ((value: string) => any) | undefined;
44
+ onKeydown?: ((event: KeyboardEvent) => any) | undefined;
38
45
  onBlur?: ((event: FocusEvent) => any) | undefined;
39
46
  onCompositionend?: ((event: CompositionEvent) => any) | undefined;
40
47
  onCompositionstart?: ((event: CompositionEvent) => any) | undefined;
41
48
  onCompositionupdate?: ((event: CompositionEvent) => any) | undefined;
42
49
  onFocus?: ((event: FocusEvent) => any) | undefined;
50
+ onMouseenter?: ((event: MouseEvent) => any) | undefined;
51
+ onMouseleave?: ((event: MouseEvent) => any) | undefined;
43
52
  onPressEnter?: ((event: KeyboardEvent) => any) | undefined;
44
53
  }>, {
45
54
  bordered: boolean;
46
- resize: "none" | "both" | "horizontal" | "vertical";
55
+ resize: "none" | "horizontal" | "vertical" | "both";
56
+ clearable: boolean;
47
57
  showCount: boolean | {
48
58
  formatter: (info: HysInputCountInfo) => string;
49
59
  };
50
60
  countPosition: "inside" | "outside";
51
61
  rows: number;
62
+ validateEvent: boolean;
52
63
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
53
64
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
54
65
  declare const _default: typeof __VLS_export;
@@ -1,61 +1,59 @@
1
- export type HysToastType = 'success' | 'error' | 'info' | 'warning' | 'loading';
2
- export type HysToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right' | 'center' | 'top' | 'bottom';
3
- type __VLS_Props = {
4
- message?: string;
5
- type?: HysToastType;
6
- duration?: number;
7
- closable?: boolean;
8
- position?: HysToastPosition;
9
- offset?: number;
10
- zIndex?: number;
11
- showIcon?: boolean;
12
- pauseOnHover?: boolean;
13
- closeOnEscape?: boolean;
14
- repeat?: number;
15
- plain?: boolean;
16
- teleport?: boolean;
17
- appendTo?: string | HTMLElement;
1
+ import type { HysToastActionContext, HysToastActionEvent, HysToastCloseContext, HysToastCloseReason, HysToastContext, HysToastPatch, HysToastProps } from "./toastTypes";
2
+ export type { HysToastPosition, HysToastType } from "./toastTypes";
3
+ type __VLS_Slots = {
4
+ default?: (context: HysToastActionContext) => unknown;
5
+ icon?: (context: HysToastActionContext) => unknown;
6
+ header?: (context: HysToastActionContext) => unknown;
7
+ footer?: (context: HysToastActionContext) => unknown;
8
+ action?: (context: HysToastActionContext) => unknown;
18
9
  };
19
- declare function pause(): void;
20
- declare function resume(): void;
21
- declare function restart(): void;
22
- declare function close(): void;
23
- declare const __VLS_template: () => {
24
- __VLS_Slots: {
25
- icon?: (props: {}) => any;
26
- } & {
27
- default?: (props: {}) => any;
28
- } & {
29
- action?: (props: {
30
- close: typeof close;
31
- }) => any;
32
- };
33
- };
34
- type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
35
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
10
+ declare function close(reason?: HysToastCloseReason, event?: Event, force?: boolean): Promise<boolean>;
11
+ declare const __VLS_base: import("vue").DefineComponent<HysToastProps, {
36
12
  close: typeof close;
37
- pause: typeof pause;
38
- resume: typeof resume;
39
- restart: typeof restart;
13
+ pause: () => void;
14
+ resume: () => void;
15
+ restart: () => void;
16
+ extend: (milliseconds: number) => void;
40
17
  element: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
18
+ snapshotClock: () => import("./useToastTimer").ToastClock;
19
+ restoreClock: (clock: import("./useToastTimer").ToastClock) => void;
41
20
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
42
- close: () => any;
43
- afterClose: () => any;
44
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
45
- onClose?: (() => any) | undefined;
46
- onAfterClose?: (() => any) | undefined;
21
+ click: (event: MouseEvent, context: HysToastContext) => any;
22
+ close: (context: HysToastCloseContext) => any;
23
+ afterClose: (context: HysToastCloseContext) => any;
24
+ action: (event: HysToastActionEvent) => any;
25
+ show: (context: HysToastContext) => any;
26
+ update: (patch: HysToastPatch) => any;
27
+ "update:open": (open: boolean) => any;
28
+ afterShow: (context: HysToastContext) => any;
29
+ stateChange: (state: "visible" | "closing" | "closed", context: HysToastContext) => any;
30
+ }, string, import("vue").PublicProps, Readonly<HysToastProps> & Readonly<{
31
+ onClick?: ((event: MouseEvent, context: HysToastContext) => any) | undefined;
32
+ onClose?: ((context: HysToastCloseContext) => any) | undefined;
33
+ onAfterClose?: ((context: HysToastCloseContext) => any) | undefined;
34
+ onAction?: ((event: HysToastActionEvent) => any) | undefined;
35
+ onShow?: ((context: HysToastContext) => any) | undefined;
36
+ onUpdate?: ((patch: HysToastPatch) => any) | undefined;
37
+ "onUpdate:open"?: ((open: boolean) => any) | undefined;
38
+ onAfterShow?: ((context: HysToastContext) => any) | undefined;
39
+ onStateChange?: ((state: "visible" | "closing" | "closed", context: HysToastContext) => any) | undefined;
47
40
  }>, {
48
41
  repeat: number;
49
- type: HysToastType;
42
+ type: import("./toastTypes").HysToastType;
50
43
  offset: number;
44
+ duration: number;
51
45
  closable: boolean;
52
46
  showIcon: boolean;
47
+ position: import("./toastTypes").HysToastPosition;
48
+ open: boolean;
53
49
  message: string;
54
- position: HysToastPosition;
55
50
  zIndex: number;
56
- appendTo: string | HTMLElement;
57
- pauseOnHover: boolean;
51
+ appendTo: string | HTMLElement | ShadowRoot;
58
52
  teleport: boolean;
53
+ pauseOnHover: boolean;
54
+ pauseOnBlur: boolean;
55
+ interactive: boolean;
56
+ actionLayout: "footer" | "inline";
59
57
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
60
58
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
61
59
  declare const _default: typeof __VLS_export;
@@ -0,0 +1,25 @@
1
+ import { type PropType, type VNode } from "vue";
2
+ import type { createToastQueue } from "../../../composables/toastQueue";
3
+ declare const _default: typeof __VLS_export;
4
+ export default _default;
5
+ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6
+ queue: {
7
+ type: PropType<ReturnType<typeof createToastQueue>>;
8
+ required: true;
9
+ };
10
+ skin: {
11
+ type: PropType<() => Record<string, string>>;
12
+ required: true;
13
+ };
14
+ }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
15
+ [key: string]: any;
16
+ }>[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
17
+ queue: {
18
+ type: PropType<ReturnType<typeof createToastQueue>>;
19
+ required: true;
20
+ };
21
+ skin: {
22
+ type: PropType<() => Record<string, string>>;
23
+ required: true;
24
+ };
25
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,16 @@
1
+ interface Disclosure {
2
+ pinned: boolean;
3
+ preview: boolean;
4
+ focused: boolean;
5
+ suppressHover: boolean;
6
+ }
7
+ export declare function useToastStackDisclosure(): {
8
+ stacks: import("vue").Reactive<Map<string, Disclosure>>;
9
+ enter: (key: string, event: PointerEvent) => void;
10
+ leave: (key: string) => void;
11
+ toggle: (key: string) => void;
12
+ focusIn: (key: string) => void;
13
+ focusOut: (key: string, event: FocusEvent) => void;
14
+ retain: (keys: Iterable<string>) => void;
15
+ };
16
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { CSSProperties } from "vue";
2
+ import type { HysToastLocale, HysToastPosition, HysToastPresentation } from "./toastTypes";
3
+ export declare const toastLocale: HysToastLocale;
4
+ export declare function normalizeToastPosition(position?: HysToastPosition): "center" | "top-right" | "top-left" | "bottom-right" | "bottom-left" | "top-center" | "bottom-center" | "custom";
5
+ export declare const finite: (value: number | undefined, fallback: number) => number;
6
+ export declare const toastDuration: (options: HysToastPresentation) => number;
7
+ export declare function toastPlacement(options: HysToastPresentation): CSSProperties;
8
+ export declare function toastMotion(options: HysToastPresentation): CSSProperties;
@@ -0,0 +1,212 @@
1
+ import type { CSSProperties, VNodeChild } from "vue";
2
+ import type { HysConfig, HysTheme } from "../../config";
3
+ export type HysToastType = "success" | "error" | "warning" | "info" | "loading" | "default" | "custom";
4
+ export type HysToastPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right" | "center" | "custom" | "top" | "bottom";
5
+ export type HysToastCloseReason = "timeout" | "button" | "click" | "escape" | "keyboard" | "swipe" | "action" | "api" | "model" | "overflow" | "dispose";
6
+ export type HysToastStatus = "queued" | "visible" | "closing" | "closed";
7
+ export type HysToastAnimation = "fade" | "slide" | "scale" | "spring" | "bounce" | "rotate" | "none";
8
+ export type HysToastDirection = "top" | "bottom" | "left" | "right";
9
+ export type HysToastProgress = number | "indeterminate";
10
+ export type HysToastCoordinates = Pick<CSSProperties, "top" | "right" | "bottom" | "left" | "translate">;
11
+ export interface HysToastMotionPreset {
12
+ enterFrom: string;
13
+ leaveTo?: string;
14
+ opacity?: number;
15
+ }
16
+ export interface HysToastLocale {
17
+ close: string;
18
+ copy: string;
19
+ copied: string;
20
+ copyFailed: string;
21
+ expand: string;
22
+ collapse: string;
23
+ collapseStack: string;
24
+ pinStack: string;
25
+ remaining: (seconds: number) => string;
26
+ repeat: (count: number) => string;
27
+ more: (count: number) => string;
28
+ actionFailed: string;
29
+ progress: string;
30
+ }
31
+ export interface HysToastPresentation {
32
+ message?: string;
33
+ title?: string;
34
+ type?: HysToastType;
35
+ duration?: number;
36
+ persistent?: boolean;
37
+ closable?: boolean;
38
+ closeOnClick?: boolean;
39
+ closeOnEscape?: boolean;
40
+ keyboardDismiss?: boolean;
41
+ pauseOnHover?: boolean;
42
+ pauseOnBlur?: boolean;
43
+ swipe?: boolean;
44
+ interactive?: boolean;
45
+ position?: HysToastPosition;
46
+ offset?: number;
47
+ offsetX?: number;
48
+ offsetY?: number;
49
+ coordinates?: HysToastCoordinates;
50
+ zIndex?: number;
51
+ width?: string | number;
52
+ showIcon?: boolean;
53
+ plain?: boolean;
54
+ glass?: boolean;
55
+ theme?: HysTheme;
56
+ toastStyle?: CSSProperties;
57
+ progressStyle?: CSSProperties;
58
+ progress?: HysToastProgress;
59
+ showProgress?: boolean;
60
+ countdown?: boolean;
61
+ maxLines?: number;
62
+ copyable?: boolean;
63
+ copyText?: string;
64
+ actionLayout?: "inline" | "footer";
65
+ actions?: readonly HysToastAction[];
66
+ animation?: HysToastAnimation | HysToastMotionPreset;
67
+ direction?: HysToastDirection;
68
+ animationDuration?: number;
69
+ easing?: string | ((progress: number) => number);
70
+ live?: "polite" | "assertive" | "off";
71
+ locale?: Partial<HysToastLocale>;
72
+ beforeClose?: (context: HysToastCloseContext) => boolean | void | Promise<boolean | void>;
73
+ }
74
+ export interface HysToastProps extends HysToastPresentation {
75
+ open?: boolean;
76
+ teleport?: boolean;
77
+ appendTo?: string | HTMLElement | ShadowRoot;
78
+ repeat?: number;
79
+ paused?: boolean;
80
+ }
81
+ export interface HysToastContext {
82
+ id?: string;
83
+ message: string;
84
+ title?: string;
85
+ type: HysToastType;
86
+ }
87
+ export interface HysToastCloseContext extends HysToastContext {
88
+ reason: HysToastCloseReason;
89
+ event?: Event;
90
+ }
91
+ export interface HysToastActionContext extends HysToastContext {
92
+ close: () => Promise<boolean>;
93
+ update: (patch: HysToastPatch) => void;
94
+ copy: () => Promise<boolean>;
95
+ }
96
+ export interface HysToastAction {
97
+ id: string;
98
+ label: string;
99
+ disabled?: boolean;
100
+ closeOnSuccess?: boolean;
101
+ run?: (context: HysToastActionContext) => unknown;
102
+ success?: HysToastFeedback<unknown>;
103
+ error?: HysToastFeedback<unknown>;
104
+ }
105
+ export interface HysToastActionEvent extends HysToastContext {
106
+ action: HysToastAction;
107
+ status: "start" | "success" | "error";
108
+ result?: unknown;
109
+ }
110
+ export type HysToastRender = VNodeChild | ((context: HysToastActionContext) => VNodeChild);
111
+ export interface HysToastOptions extends HysToastPresentation {
112
+ id?: string;
113
+ content?: HysToastRender;
114
+ icon?: HysToastRender;
115
+ header?: HysToastRender;
116
+ footer?: HysToastRender;
117
+ renderActions?: HysToastRender;
118
+ priority?: number;
119
+ group?: string;
120
+ grouping?: boolean;
121
+ dedupe?: "ignore" | "merge";
122
+ dedupeKey?: string;
123
+ dedupeWindow?: number;
124
+ onShow?: (context: HysToastContext) => void;
125
+ onAfterShow?: (context: HysToastContext) => void;
126
+ onClose?: (context: HysToastCloseContext) => void;
127
+ onAfterClose?: (context: HysToastCloseContext) => void;
128
+ onClick?: (event: MouseEvent, context: HysToastContext) => void;
129
+ onAction?: (event: HysToastActionEvent) => void;
130
+ onStateChange?: (snapshot: HysToastSnapshot) => void;
131
+ }
132
+ export type HysToastPatch = string | Partial<Omit<HysToastOptions, "id">>;
133
+ export type HysToastFeedback<T> = HysToastPatch | ((value: T) => HysToastPatch);
134
+ export type HysToastFilter = {
135
+ type?: HysToastType;
136
+ group?: string;
137
+ position?: HysToastPosition;
138
+ status?: HysToastStatus;
139
+ };
140
+ export interface HysToastSnapshot extends HysToastContext {
141
+ id: string;
142
+ status: HysToastStatus;
143
+ position: HysToastPosition;
144
+ group?: string;
145
+ priority: number;
146
+ repeat: number;
147
+ }
148
+ export interface HysToastConfig extends Omit<HysToastPresentation, "message" | "title" | "theme" | "copyText"> {
149
+ maxCount?: number;
150
+ maxQueue?: number;
151
+ overflow?: "replace" | "queue";
152
+ queueOrder?: "fifo" | "lifo";
153
+ queueScope?: "global" | "position" | "type" | "group";
154
+ layout?: "vertical" | "horizontal" | "layered";
155
+ gap?: number;
156
+ collapsedCount?: number;
157
+ layerCount?: number;
158
+ layerTrigger?: "hover" | "click" | "both";
159
+ grouping?: boolean;
160
+ dedupe?: "ignore" | "merge";
161
+ dedupeWindow?: number;
162
+ appendTo?: string | HTMLElement | ShadowRoot;
163
+ }
164
+ export interface HysToastHandle {
165
+ readonly id: string;
166
+ readonly closed: Promise<void>;
167
+ close(): void;
168
+ update(value: HysToastPatch): void;
169
+ extend(milliseconds: number): void;
170
+ pause(): void;
171
+ resume(): void;
172
+ }
173
+ export interface HysToastTaskContext {
174
+ handle: HysToastHandle;
175
+ update: (value: HysToastPatch) => void;
176
+ progress: (value: HysToastProgress) => void;
177
+ }
178
+ export interface HysToastPromiseOptions<T> {
179
+ id?: string;
180
+ options?: HysToastOptions;
181
+ loading?: HysToastPatch;
182
+ success?: HysToastFeedback<T>;
183
+ error?: HysToastFeedback<unknown>;
184
+ }
185
+ export interface HysToastTask<T> {
186
+ handle: HysToastHandle;
187
+ promise: Promise<T>;
188
+ }
189
+ type TypedToast = (value: string | Omit<HysToastOptions, "type">) => HysToastHandle;
190
+ export interface HysToastApi {
191
+ show(value: string | HysToastOptions): HysToastHandle;
192
+ success: TypedToast;
193
+ info: TypedToast;
194
+ warning: TypedToast;
195
+ error: TypedToast;
196
+ loading: TypedToast;
197
+ promise<T>(task: PromiseLike<T> | ((context: HysToastTaskContext) => T | PromiseLike<T>), options?: HysToastPromiseOptions<T>): HysToastTask<T>;
198
+ close(id: string): void;
199
+ update(id: string, value: HysToastPatch): void;
200
+ find(id: string): HysToastSnapshot | undefined;
201
+ list(filter?: HysToastFilter): HysToastSnapshot[];
202
+ closeAll(filter?: HysToastFilter): void;
203
+ closeType(type: HysToastType): void;
204
+ clearQueue(): void;
205
+ configure(config: Partial<HysToastConfig>): void;
206
+ }
207
+ export interface HysToastServiceConfig extends HysToastConfig, HysConfig {
208
+ }
209
+ export interface HysToastService extends HysToastApi {
210
+ dispose(): void;
211
+ }
212
+ export {};
@@ -0,0 +1,18 @@
1
+ import type { HysToastAction, HysToastActionContext, HysToastActionEvent, HysToastContext, HysToastFeedback, HysToastLocale, HysToastPatch } from "./toastTypes";
2
+ export declare function feedback<T>(value: HysToastFeedback<T> | undefined, result: T): Partial<Omit<import("./toastTypes").HysToastOptions, "id">> | undefined;
3
+ export declare function useToastActions(options: {
4
+ available: () => boolean;
5
+ locale: () => HysToastLocale;
6
+ context: () => HysToastContext;
7
+ close: () => Promise<boolean>;
8
+ update: (patch: HysToastPatch) => void;
9
+ copyText: () => string;
10
+ emit: (event: HysToastActionEvent) => void;
11
+ }): {
12
+ busy: import("vue").Ref<string | undefined, string | undefined>;
13
+ copyStatus: import("vue").Ref<string, string>;
14
+ copy: () => Promise<boolean>;
15
+ context: () => HysToastActionContext;
16
+ run: (action: HysToastAction) => Promise<void>;
17
+ reset: () => void;
18
+ };
@@ -0,0 +1,11 @@
1
+ import { type Ref } from "vue";
2
+ export declare function useToastSwipe(element: Ref<HTMLElement | undefined>, enabled: () => boolean, dismiss: (event: PointerEvent) => Promise<boolean>): {
3
+ shift: Ref<number, number>;
4
+ dragging: Ref<boolean, boolean>;
5
+ suppressClick: Ref<boolean, boolean>;
6
+ reset: () => void;
7
+ start: (event: PointerEvent) => void;
8
+ move: (event: PointerEvent) => void;
9
+ end: (event: PointerEvent) => Promise<void>;
10
+ leave: (event: PointerEvent) => void;
11
+ };
@@ -0,0 +1,22 @@
1
+ export type ToastClock = {
2
+ remaining: number;
3
+ total: number;
4
+ expired: boolean;
5
+ };
6
+ export declare function useToastTimer(options: {
7
+ running: () => boolean;
8
+ duration: () => number;
9
+ indicators: () => boolean;
10
+ pauseOnBlur: () => boolean;
11
+ expire: () => void;
12
+ }): {
13
+ remaining: import("vue").Ref<number, number>;
14
+ total: import("vue").Ref<number, number>;
15
+ restart: () => void;
16
+ extend: (milliseconds: number) => void;
17
+ stop: () => void;
18
+ snapshot: () => ToastClock;
19
+ restore(clock: ToastClock): void;
20
+ pause: () => void;
21
+ resume: () => void;
22
+ };
@@ -33,8 +33,8 @@ declare const __VLS_base: import("vue").DefineComponent<HysTooltipProps, {
33
33
  modelValue: boolean;
34
34
  destroyOnHide: boolean;
35
35
  effect: "dark" | "light";
36
- placement: import("../..").Placement;
37
36
  open: boolean;
37
+ placement: import("../..").Placement;
38
38
  appendTo: string | false | HTMLElement;
39
39
  showDelay: number;
40
40
  hideDelay: number;
@@ -42,8 +42,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {
42
42
  showArrow: boolean;
43
43
  mask: import("../../index.js").HysTourMask;
44
44
  type: "default" | "primary";
45
- placement: import("../../index.js").Placement;
46
45
  open: boolean;
46
+ placement: import("../../index.js").Placement;
47
47
  appendTo: string | false | HTMLElement;
48
48
  arrow: boolean | {
49
49
  pointAtCenter?: boolean;
@@ -16,6 +16,7 @@ declare const __VLS_export: <V extends HysTreeSelectValue = string, N extends ob
16
16
  loadedKeys: HysTreeKey[];
17
17
  }) => any) | undefined;
18
18
  onScroll?: ((event: Event) => any) | undefined;
19
+ "onValue-change"?: ((value: V, info: HysTreeSelectChange<N>) => any) | undefined;
19
20
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
20
21
  "onUpdate:searchValue"?: ((value: string) => any) | undefined;
21
22
  onDeselect?: ((key: HysTreeKey, node: N, info: unknown) => any) | undefined;
@@ -33,7 +34,6 @@ declare const __VLS_export: <V extends HysTreeSelectValue = string, N extends ob
33
34
  node: N;
34
35
  error: unknown;
35
36
  }) => any) | undefined;
36
- "onValue-change"?: ((value: V, info: HysTreeSelectChange<N>) => any) | undefined;
37
37
  "onRemove-tag"?: ((key: HysTreeKey, node: N | undefined) => any) | undefined;
38
38
  "onSearch-complete"?: ((query: string) => any) | undefined;
39
39
  "onSearch-error"?: ((error: unknown, query: string) => any) | undefined;
@@ -101,13 +101,13 @@ declare const __VLS_export: <V extends HysTreeSelectValue = string, N extends ob
101
101
  node: N;
102
102
  children: readonly N[];
103
103
  loadedKeys: HysTreeKey[];
104
- }) => void) & ((evt: "scroll", event: Event) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:searchValue", value: string) => void) & ((evt: "deselect", key: HysTreeKey, node: N, info: unknown) => void) & ((evt: "limit", limit: number) => void) & ((evt: "check", info: HysTreeCheckInfo<N>) => void) & ((evt: "update:expandedKeys", keys: HysTreeKey[]) => void) & ((evt: "node-expand", node: N, info: unknown) => void) & ((evt: "node-collapse", node: N, info: unknown) => void) & ((evt: "update:loadedKeys", keys: HysTreeKey[]) => void) & ((evt: "children-loaded", info: {
104
+ }) => void) & ((evt: "scroll", event: Event) => void) & ((evt: "value-change", value: V, info: HysTreeSelectChange<N>) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:searchValue", value: string) => void) & ((evt: "deselect", key: HysTreeKey, node: N, info: unknown) => void) & ((evt: "limit", limit: number) => void) & ((evt: "check", info: HysTreeCheckInfo<N>) => void) & ((evt: "update:expandedKeys", keys: HysTreeKey[]) => void) & ((evt: "node-expand", node: N, info: unknown) => void) & ((evt: "node-collapse", node: N, info: unknown) => void) & ((evt: "update:loadedKeys", keys: HysTreeKey[]) => void) & ((evt: "children-loaded", info: {
105
105
  node: N;
106
106
  children: readonly N[];
107
107
  }) => void) & ((evt: "load-error", info: {
108
108
  node: N;
109
109
  error: unknown;
110
- }) => void) & ((evt: "value-change", value: V, info: HysTreeSelectChange<N>) => void) & ((evt: "remove-tag", key: HysTreeKey, node: N | undefined) => void) & ((evt: "search-complete", query: string) => void) & ((evt: "search-error", error: unknown, query: string) => void) & ((evt: "visible-change", value: boolean) => void);
110
+ }) => void) & ((evt: "remove-tag", key: HysTreeKey, node: N | undefined) => void) & ((evt: "search-complete", query: string) => void) & ((evt: "search-error", error: unknown, query: string) => void) & ((evt: "visible-change", value: boolean) => void);
111
111
  }>) => import("vue").VNode & {
112
112
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
113
113
  };
@@ -8,11 +8,11 @@ declare const __VLS_export: <T extends HysUploadItem = HysUploadFile>(__VLS_prop
8
8
  onSelect?: ((files: File[]) => any) | undefined;
9
9
  onSuccess?: ((response: unknown, file: T) => any) | undefined;
10
10
  onAbort?: ((file: T, reason: string) => any) | undefined;
11
+ onStart?: ((file: T) => any) | undefined;
11
12
  onDrop?: ((event: DragEvent) => any) | undefined;
12
13
  onError?: ((message: string) => any) | undefined;
13
14
  onInvalid?: ((info: HysUploadInvalid<T>) => any) | undefined;
14
15
  onPaste?: ((event: ClipboardEvent) => any) | undefined;
15
- onStart?: ((file: T) => any) | undefined;
16
16
  onRemove?: ((file: T) => any) | undefined;
17
17
  onPreview?: ((file: T) => any) | undefined;
18
18
  onDownload?: ((file: T) => any) | undefined;
@@ -45,7 +45,7 @@ declare const __VLS_export: <T extends HysUploadItem = HysUploadFile>(__VLS_prop
45
45
  }>) => void;
46
46
  attrs: any;
47
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);
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: "start", file: T) => void) & ((evt: "drop", event: DragEvent) => void) & ((evt: "error", message: string) => void) & ((evt: "invalid", info: HysUploadInvalid<T>) => void) & ((evt: "paste", event: ClipboardEvent) => 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
49
  }>) => import("vue").VNode & {
50
50
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
51
51
  };