@mantine/hooks 9.0.1 → 9.1.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 (166) hide show
  1. package/cjs/index.cjs +8 -0
  2. package/cjs/use-click-outside/use-click-outside.cjs +11 -8
  3. package/cjs/use-click-outside/use-click-outside.cjs.map +1 -1
  4. package/cjs/use-clipboard/use-clipboard.cjs +13 -6
  5. package/cjs/use-clipboard/use-clipboard.cjs.map +1 -1
  6. package/cjs/use-collapse/use-collapse.cjs +1 -1
  7. package/cjs/use-collapse/use-collapse.cjs.map +1 -1
  8. package/cjs/use-collapse/use-horizontal-collapse.cjs +4 -3
  9. package/cjs/use-collapse/use-horizontal-collapse.cjs.map +1 -1
  10. package/cjs/use-counter/use-counter.cjs +12 -3
  11. package/cjs/use-counter/use-counter.cjs.map +1 -1
  12. package/cjs/use-debounced-callback/use-debounced-callback.cjs +28 -4
  13. package/cjs/use-debounced-callback/use-debounced-callback.cjs.map +1 -1
  14. package/cjs/use-debounced-state/use-debounced-state.cjs +1 -1
  15. package/cjs/use-debounced-state/use-debounced-state.cjs.map +1 -1
  16. package/cjs/use-debounced-value/use-debounced-value.cjs +22 -2
  17. package/cjs/use-debounced-value/use-debounced-value.cjs.map +1 -1
  18. package/cjs/use-event-listener/use-event-listener.cjs.map +1 -1
  19. package/cjs/use-favicon/use-favicon.cjs +3 -1
  20. package/cjs/use-favicon/use-favicon.cjs.map +1 -1
  21. package/cjs/use-fetch/use-fetch.cjs +7 -4
  22. package/cjs/use-fetch/use-fetch.cjs.map +1 -1
  23. package/cjs/use-file-dialog/use-file-dialog.cjs +1 -0
  24. package/cjs/use-file-dialog/use-file-dialog.cjs.map +1 -1
  25. package/cjs/use-floating-window/use-floating-window.cjs +33 -36
  26. package/cjs/use-floating-window/use-floating-window.cjs.map +1 -1
  27. package/cjs/use-focus-trap/use-focus-trap.cjs +12 -9
  28. package/cjs/use-focus-trap/use-focus-trap.cjs.map +1 -1
  29. package/cjs/use-fullscreen/use-fullscreen.cjs +3 -1
  30. package/cjs/use-fullscreen/use-fullscreen.cjs.map +1 -1
  31. package/cjs/use-headroom/use-headroom.cjs +4 -1
  32. package/cjs/use-headroom/use-headroom.cjs.map +1 -1
  33. package/cjs/use-hotkeys/parse-hotkey.cjs +1 -2
  34. package/cjs/use-hotkeys/parse-hotkey.cjs.map +1 -1
  35. package/cjs/use-hover/use-hover.cjs +1 -0
  36. package/cjs/use-hover/use-hover.cjs.map +1 -1
  37. package/cjs/use-in-viewport/use-in-viewport.cjs +11 -7
  38. package/cjs/use-in-viewport/use-in-viewport.cjs.map +1 -1
  39. package/cjs/use-interval/use-interval.cjs +15 -6
  40. package/cjs/use-interval/use-interval.cjs.map +1 -1
  41. package/cjs/use-local-storage/create-storage.cjs +1 -1
  42. package/cjs/use-local-storage/create-storage.cjs.map +1 -1
  43. package/cjs/use-long-press/use-long-press.cjs +6 -2
  44. package/cjs/use-long-press/use-long-press.cjs.map +1 -1
  45. package/cjs/use-mask/use-mask.cjs +457 -0
  46. package/cjs/use-mask/use-mask.cjs.map +1 -0
  47. package/cjs/use-mouse/use-mouse.cjs +2 -2
  48. package/cjs/use-mouse/use-mouse.cjs.map +1 -1
  49. package/cjs/use-move/use-move.cjs +8 -0
  50. package/cjs/use-move/use-move.cjs.map +1 -1
  51. package/cjs/use-orientation/use-orientation.cjs +8 -2
  52. package/cjs/use-orientation/use-orientation.cjs.map +1 -1
  53. package/cjs/use-os/use-os.cjs +1 -1
  54. package/cjs/use-os/use-os.cjs.map +1 -1
  55. package/cjs/use-radial-move/use-radial-move.cjs +4 -4
  56. package/cjs/use-radial-move/use-radial-move.cjs.map +1 -1
  57. package/cjs/use-roving-index/use-roving-index.cjs +200 -0
  58. package/cjs/use-roving-index/use-roving-index.cjs.map +1 -0
  59. package/cjs/use-scroll-direction/use-scroll-direction.cjs +7 -7
  60. package/cjs/use-scroll-direction/use-scroll-direction.cjs.map +1 -1
  61. package/cjs/use-scroll-into-view/use-scroll-into-view.cjs +14 -4
  62. package/cjs/use-scroll-into-view/use-scroll-into-view.cjs.map +1 -1
  63. package/cjs/use-scroll-spy/use-scroll-spy.cjs +7 -3
  64. package/cjs/use-scroll-spy/use-scroll-spy.cjs.map +1 -1
  65. package/cjs/use-scroller/use-scroller.cjs +3 -3
  66. package/cjs/use-scroller/use-scroller.cjs.map +1 -1
  67. package/cjs/use-set/use-set.cjs +6 -1
  68. package/cjs/use-set/use-set.cjs.map +1 -1
  69. package/cjs/use-throttled-callback/use-throttled-callback.cjs +3 -1
  70. package/cjs/use-throttled-callback/use-throttled-callback.cjs.map +1 -1
  71. package/cjs/use-timeout/use-timeout.cjs +3 -1
  72. package/cjs/use-timeout/use-timeout.cjs.map +1 -1
  73. package/cjs/use-viewport-size/use-viewport-size.cjs +3 -3
  74. package/cjs/use-viewport-size/use-viewport-size.cjs.map +1 -1
  75. package/cjs/use-window-scroll/use-window-scroll.cjs +2 -2
  76. package/cjs/use-window-scroll/use-window-scroll.cjs.map +1 -1
  77. package/esm/index.mjs +3 -1
  78. package/esm/use-click-outside/use-click-outside.mjs +11 -8
  79. package/esm/use-click-outside/use-click-outside.mjs.map +1 -1
  80. package/esm/use-clipboard/use-clipboard.mjs +14 -7
  81. package/esm/use-clipboard/use-clipboard.mjs.map +1 -1
  82. package/esm/use-collapse/use-collapse.mjs +1 -1
  83. package/esm/use-collapse/use-collapse.mjs.map +1 -1
  84. package/esm/use-collapse/use-horizontal-collapse.mjs +5 -4
  85. package/esm/use-collapse/use-horizontal-collapse.mjs.map +1 -1
  86. package/esm/use-counter/use-counter.mjs +12 -3
  87. package/esm/use-counter/use-counter.mjs.map +1 -1
  88. package/esm/use-debounced-callback/use-debounced-callback.mjs +28 -4
  89. package/esm/use-debounced-callback/use-debounced-callback.mjs.map +1 -1
  90. package/esm/use-debounced-state/use-debounced-state.mjs +1 -1
  91. package/esm/use-debounced-state/use-debounced-state.mjs.map +1 -1
  92. package/esm/use-debounced-value/use-debounced-value.mjs +22 -2
  93. package/esm/use-debounced-value/use-debounced-value.mjs.map +1 -1
  94. package/esm/use-event-listener/use-event-listener.mjs.map +1 -1
  95. package/esm/use-favicon/use-favicon.mjs +3 -1
  96. package/esm/use-favicon/use-favicon.mjs.map +1 -1
  97. package/esm/use-fetch/use-fetch.mjs +7 -4
  98. package/esm/use-fetch/use-fetch.mjs.map +1 -1
  99. package/esm/use-file-dialog/use-file-dialog.mjs +1 -0
  100. package/esm/use-file-dialog/use-file-dialog.mjs.map +1 -1
  101. package/esm/use-floating-window/use-floating-window.mjs +33 -36
  102. package/esm/use-floating-window/use-floating-window.mjs.map +1 -1
  103. package/esm/use-focus-trap/use-focus-trap.mjs +12 -9
  104. package/esm/use-focus-trap/use-focus-trap.mjs.map +1 -1
  105. package/esm/use-fullscreen/use-fullscreen.mjs +3 -1
  106. package/esm/use-fullscreen/use-fullscreen.mjs.map +1 -1
  107. package/esm/use-headroom/use-headroom.mjs +4 -1
  108. package/esm/use-headroom/use-headroom.mjs.map +1 -1
  109. package/esm/use-hotkeys/parse-hotkey.mjs +1 -2
  110. package/esm/use-hotkeys/parse-hotkey.mjs.map +1 -1
  111. package/esm/use-hover/use-hover.mjs +1 -0
  112. package/esm/use-hover/use-hover.mjs.map +1 -1
  113. package/esm/use-in-viewport/use-in-viewport.mjs +11 -7
  114. package/esm/use-in-viewport/use-in-viewport.mjs.map +1 -1
  115. package/esm/use-interval/use-interval.mjs +15 -6
  116. package/esm/use-interval/use-interval.mjs.map +1 -1
  117. package/esm/use-local-storage/create-storage.mjs +1 -1
  118. package/esm/use-local-storage/create-storage.mjs.map +1 -1
  119. package/esm/use-long-press/use-long-press.mjs +6 -2
  120. package/esm/use-long-press/use-long-press.mjs.map +1 -1
  121. package/esm/use-mask/use-mask.mjs +453 -0
  122. package/esm/use-mask/use-mask.mjs.map +1 -0
  123. package/esm/use-mouse/use-mouse.mjs +2 -2
  124. package/esm/use-mouse/use-mouse.mjs.map +1 -1
  125. package/esm/use-move/use-move.mjs +8 -0
  126. package/esm/use-move/use-move.mjs.map +1 -1
  127. package/esm/use-orientation/use-orientation.mjs +8 -2
  128. package/esm/use-orientation/use-orientation.mjs.map +1 -1
  129. package/esm/use-os/use-os.mjs +1 -1
  130. package/esm/use-os/use-os.mjs.map +1 -1
  131. package/esm/use-radial-move/use-radial-move.mjs +5 -5
  132. package/esm/use-radial-move/use-radial-move.mjs.map +1 -1
  133. package/esm/use-roving-index/use-roving-index.mjs +200 -0
  134. package/esm/use-roving-index/use-roving-index.mjs.map +1 -0
  135. package/esm/use-scroll-direction/use-scroll-direction.mjs +7 -7
  136. package/esm/use-scroll-direction/use-scroll-direction.mjs.map +1 -1
  137. package/esm/use-scroll-into-view/use-scroll-into-view.mjs +15 -5
  138. package/esm/use-scroll-into-view/use-scroll-into-view.mjs.map +1 -1
  139. package/esm/use-scroll-spy/use-scroll-spy.mjs +8 -4
  140. package/esm/use-scroll-spy/use-scroll-spy.mjs.map +1 -1
  141. package/esm/use-scroller/use-scroller.mjs +3 -3
  142. package/esm/use-scroller/use-scroller.mjs.map +1 -1
  143. package/esm/use-set/use-set.mjs +6 -1
  144. package/esm/use-set/use-set.mjs.map +1 -1
  145. package/esm/use-throttled-callback/use-throttled-callback.mjs +3 -1
  146. package/esm/use-throttled-callback/use-throttled-callback.mjs.map +1 -1
  147. package/esm/use-timeout/use-timeout.mjs +3 -1
  148. package/esm/use-timeout/use-timeout.mjs.map +1 -1
  149. package/esm/use-viewport-size/use-viewport-size.mjs +3 -3
  150. package/esm/use-viewport-size/use-viewport-size.mjs.map +1 -1
  151. package/esm/use-window-scroll/use-window-scroll.mjs +2 -2
  152. package/esm/use-window-scroll/use-window-scroll.mjs.map +1 -1
  153. package/lib/index.d.mts +5 -1
  154. package/lib/index.d.ts +5 -1
  155. package/lib/use-click-outside/use-click-outside.d.ts +1 -1
  156. package/lib/use-collapse/use-horizontal-collapse.d.ts +5 -0
  157. package/lib/use-counter/use-counter.d.ts +1 -0
  158. package/lib/use-debounced-callback/use-debounced-callback.d.ts +4 -0
  159. package/lib/use-debounced-value/use-debounced-value.d.ts +6 -1
  160. package/lib/use-event-listener/use-event-listener.d.ts +1 -1
  161. package/lib/use-hotkeys/parse-hotkey.d.ts +4 -5
  162. package/lib/use-long-press/use-long-press.d.ts +1 -0
  163. package/lib/use-mask/use-mask.d.ts +60 -0
  164. package/lib/use-roving-index/use-roving-index.d.ts +49 -0
  165. package/lib/use-scroll-into-view/use-scroll-into-view.d.ts +4 -1
  166. package/package.json +1 -1
@@ -0,0 +1,49 @@
1
+ export interface UseRovingIndexInput {
2
+ /** Total number of items in the group */
3
+ total: number;
4
+ /** Which arrow keys navigate, `'horizontal'` by default */
5
+ orientation?: 'horizontal' | 'vertical' | 'both';
6
+ /** Whether navigation wraps at boundaries, `true` by default */
7
+ loop?: boolean;
8
+ /** Text direction, `'ltr'` by default */
9
+ dir?: 'rtl' | 'ltr';
10
+ /** Whether to click element when it receives focus via keyboard, `false` by default */
11
+ activateOnFocus?: boolean;
12
+ /** Number of columns for grid (2D) navigation. When set, enables grid mode */
13
+ columns?: number;
14
+ /** Controlled focused index */
15
+ focusedIndex?: number;
16
+ /** Initial focused index for uncontrolled mode, first non-disabled item by default */
17
+ initialIndex?: number;
18
+ /** Called when focused index changes */
19
+ onFocusChange?: (index: number) => void;
20
+ /** Function to check if item at given index is disabled, `() => false` by default */
21
+ isItemDisabled?: (index: number) => boolean;
22
+ }
23
+ export interface UseRovingIndexGetItemPropsInput {
24
+ /** Index of the item in the group */
25
+ index: number;
26
+ /** Called when item is clicked */
27
+ onClick?: React.MouseEventHandler;
28
+ /** Called when keydown event fires on item */
29
+ onKeyDown?: React.KeyboardEventHandler;
30
+ }
31
+ export interface UseRovingIndexReturnValue {
32
+ /** Get props to spread on each navigable item */
33
+ getItemProps: (options: UseRovingIndexGetItemPropsInput) => {
34
+ tabIndex: 0 | -1;
35
+ onKeyDown: React.KeyboardEventHandler;
36
+ onClick: React.MouseEventHandler;
37
+ ref: React.RefCallback<HTMLElement>;
38
+ };
39
+ /** Currently focused index */
40
+ focusedIndex: number;
41
+ /** Programmatically set focused index */
42
+ setFocusedIndex: (index: number) => void;
43
+ }
44
+ export declare function useRovingIndex(input: UseRovingIndexInput): UseRovingIndexReturnValue;
45
+ export declare namespace useRovingIndex {
46
+ type Input = UseRovingIndexInput;
47
+ type GetItemPropsInput = UseRovingIndexGetItemPropsInput;
48
+ type ReturnValue = UseRovingIndexReturnValue;
49
+ }
@@ -5,6 +5,8 @@ interface UseScrollIntoViewAnimation {
5
5
  export interface UseScrollIntoViewOptions {
6
6
  /** Callback fired after scroll */
7
7
  onScrollFinish?: () => void;
8
+ /** Callback fired when scroll animation is canceled by user interaction */
9
+ onScrollCancel?: () => void;
8
10
  /** Duration of scroll in milliseconds */
9
11
  duration?: number;
10
12
  /** Axis of scroll */
@@ -23,8 +25,9 @@ export interface UseScrollIntoViewReturnValue<Target extends HTMLElement = any,
23
25
  targetRef: React.RefObject<Target | null>;
24
26
  scrollIntoView: (params?: UseScrollIntoViewAnimation) => void;
25
27
  cancel: () => void;
28
+ scrolling: boolean;
26
29
  }
27
- export declare function useScrollIntoView<Target extends HTMLElement = any, Parent extends HTMLElement | null = null>({ duration, axis, onScrollFinish, easing, offset, cancelable, isList, }?: UseScrollIntoViewOptions): UseScrollIntoViewReturnValue<Target, Parent>;
30
+ export declare function useScrollIntoView<Target extends HTMLElement = any, Parent extends HTMLElement | null = null>({ duration, axis, onScrollFinish, onScrollCancel, easing, offset, cancelable, isList, }?: UseScrollIntoViewOptions): UseScrollIntoViewReturnValue<Target, Parent>;
28
31
  export declare namespace useScrollIntoView {
29
32
  type Options = UseScrollIntoViewOptions;
30
33
  type ReturnValue<Target extends HTMLElement, Parent extends HTMLElement | null> = UseScrollIntoViewReturnValue<Target, Parent>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mantine/hooks",
3
- "version": "9.0.1",
3
+ "version": "9.1.0",
4
4
  "description": "A collection of 50+ hooks for state and UI management",
5
5
  "homepage": "https://mantine.dev",
6
6
  "license": "MIT",