@mantine/hooks 9.0.0-alpha.5 → 9.0.0-alpha.7

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 (378) hide show
  1. package/cjs/index.cjs +183 -188
  2. package/cjs/use-click-outside/use-click-outside.cjs +22 -26
  3. package/cjs/use-click-outside/use-click-outside.cjs.map +1 -1
  4. package/cjs/use-clipboard/use-clipboard.cjs +29 -28
  5. package/cjs/use-clipboard/use-clipboard.cjs.map +1 -1
  6. package/cjs/use-collapse/use-collapse.cjs +95 -98
  7. package/cjs/use-collapse/use-collapse.cjs.map +1 -1
  8. package/cjs/use-collapse/use-horizontal-collapse.cjs +94 -97
  9. package/cjs/use-collapse/use-horizontal-collapse.cjs.map +1 -1
  10. package/cjs/use-color-scheme/use-color-scheme.cjs +7 -8
  11. package/cjs/use-color-scheme/use-color-scheme.cjs.map +1 -1
  12. package/cjs/use-counter/use-counter.cjs +24 -26
  13. package/cjs/use-counter/use-counter.cjs.map +1 -1
  14. package/cjs/use-debounced-callback/use-debounced-callback.cjs +89 -93
  15. package/cjs/use-debounced-callback/use-debounced-callback.cjs.map +1 -1
  16. package/cjs/use-debounced-state/use-debounced-state.cjs +20 -28
  17. package/cjs/use-debounced-state/use-debounced-state.cjs.map +1 -1
  18. package/cjs/use-debounced-value/use-debounced-value.cjs +32 -31
  19. package/cjs/use-debounced-value/use-debounced-value.cjs.map +1 -1
  20. package/cjs/use-did-update/use-did-update.cjs +14 -21
  21. package/cjs/use-did-update/use-did-update.cjs.map +1 -1
  22. package/cjs/use-disclosure/use-disclosure.cjs +37 -30
  23. package/cjs/use-disclosure/use-disclosure.cjs.map +1 -1
  24. package/cjs/use-document-title/use-document-title.cjs +9 -12
  25. package/cjs/use-document-title/use-document-title.cjs.map +1 -1
  26. package/cjs/use-document-visibility/use-document-visibility.cjs +14 -15
  27. package/cjs/use-document-visibility/use-document-visibility.cjs.map +1 -1
  28. package/cjs/use-event-listener/use-event-listener.cjs +23 -32
  29. package/cjs/use-event-listener/use-event-listener.cjs.map +1 -1
  30. package/cjs/use-eye-dropper/use-eye-dropper.cjs +19 -24
  31. package/cjs/use-eye-dropper/use-eye-dropper.cjs.map +1 -1
  32. package/cjs/use-favicon/use-favicon.cjs +25 -32
  33. package/cjs/use-favicon/use-favicon.cjs.map +1 -1
  34. package/cjs/use-fetch/use-fetch.cjs +43 -45
  35. package/cjs/use-fetch/use-fetch.cjs.map +1 -1
  36. package/cjs/use-file-dialog/use-file-dialog.cjs +65 -77
  37. package/cjs/use-file-dialog/use-file-dialog.cjs.map +1 -1
  38. package/cjs/use-floating-window/use-floating-window.cjs +244 -255
  39. package/cjs/use-floating-window/use-floating-window.cjs.map +1 -1
  40. package/cjs/use-focus-return/use-focus-return.cjs +26 -37
  41. package/cjs/use-focus-return/use-focus-return.cjs.map +1 -1
  42. package/cjs/use-focus-trap/scope-tab.cjs +20 -31
  43. package/cjs/use-focus-trap/scope-tab.cjs.map +1 -1
  44. package/cjs/use-focus-trap/tabbable.cjs +24 -40
  45. package/cjs/use-focus-trap/tabbable.cjs.map +1 -1
  46. package/cjs/use-focus-trap/use-focus-trap.cjs +41 -68
  47. package/cjs/use-focus-trap/use-focus-trap.cjs.map +1 -1
  48. package/cjs/use-focus-within/use-focus-within.cjs +51 -62
  49. package/cjs/use-focus-within/use-focus-within.cjs.map +1 -1
  50. package/cjs/use-force-update/use-force-update.cjs +8 -9
  51. package/cjs/use-force-update/use-force-update.cjs.map +1 -1
  52. package/cjs/use-fullscreen/use-fullscreen.cjs +80 -89
  53. package/cjs/use-fullscreen/use-fullscreen.cjs.map +1 -1
  54. package/cjs/use-hash/use-hash.cjs +21 -28
  55. package/cjs/use-hash/use-hash.cjs.map +1 -1
  56. package/cjs/use-headroom/use-headroom.cjs +71 -94
  57. package/cjs/use-headroom/use-headroom.cjs.map +1 -1
  58. package/cjs/use-hotkeys/parse-hotkey.cjs +74 -82
  59. package/cjs/use-hotkeys/parse-hotkey.cjs.map +1 -1
  60. package/cjs/use-hotkeys/use-hotkeys.cjs +32 -33
  61. package/cjs/use-hotkeys/use-hotkeys.cjs.map +1 -1
  62. package/cjs/use-hover/use-hover.cjs +31 -33
  63. package/cjs/use-hover/use-hover.cjs.map +1 -1
  64. package/cjs/use-id/use-id.cjs +14 -18
  65. package/cjs/use-id/use-id.cjs.map +1 -1
  66. package/cjs/use-idle/use-idle.cjs +40 -33
  67. package/cjs/use-idle/use-idle.cjs.map +1 -1
  68. package/cjs/use-in-viewport/use-in-viewport.cjs +22 -27
  69. package/cjs/use-in-viewport/use-in-viewport.cjs.map +1 -1
  70. package/cjs/use-input-state/use-input-state.cjs +17 -26
  71. package/cjs/use-input-state/use-input-state.cjs.map +1 -1
  72. package/cjs/use-intersection/use-intersection.cjs +29 -27
  73. package/cjs/use-intersection/use-intersection.cjs.map +1 -1
  74. package/cjs/use-interval/use-interval.cjs +42 -41
  75. package/cjs/use-interval/use-interval.cjs.map +1 -1
  76. package/cjs/use-is-first-render/use-is-first-render.cjs +12 -13
  77. package/cjs/use-is-first-render/use-is-first-render.cjs.map +1 -1
  78. package/cjs/use-isomorphic-effect/use-isomorphic-effect.cjs +6 -7
  79. package/cjs/use-isomorphic-effect/use-isomorphic-effect.cjs.map +1 -1
  80. package/cjs/use-list-state/use-list-state.cjs +74 -73
  81. package/cjs/use-list-state/use-list-state.cjs.map +1 -1
  82. package/cjs/use-local-storage/create-storage.cjs +127 -139
  83. package/cjs/use-local-storage/create-storage.cjs.map +1 -1
  84. package/cjs/use-local-storage/use-local-storage.cjs +8 -9
  85. package/cjs/use-local-storage/use-local-storage.cjs.map +1 -1
  86. package/cjs/use-logger/use-logger.cjs +15 -16
  87. package/cjs/use-logger/use-logger.cjs.map +1 -1
  88. package/cjs/use-long-press/use-long-press.cjs +49 -58
  89. package/cjs/use-long-press/use-long-press.cjs.map +1 -1
  90. package/cjs/use-map/use-map.cjs +24 -25
  91. package/cjs/use-map/use-map.cjs.map +1 -1
  92. package/cjs/use-media-query/use-media-query.cjs +27 -33
  93. package/cjs/use-media-query/use-media-query.cjs.map +1 -1
  94. package/cjs/use-merged-ref/use-merged-ref.cjs +24 -35
  95. package/cjs/use-merged-ref/use-merged-ref.cjs.map +1 -1
  96. package/cjs/use-mounted/use-mounted.cjs +9 -10
  97. package/cjs/use-mounted/use-mounted.cjs.map +1 -1
  98. package/cjs/use-mouse/use-mouse.cjs +55 -53
  99. package/cjs/use-mouse/use-mouse.cjs.map +1 -1
  100. package/cjs/use-move/use-move.cjs +98 -98
  101. package/cjs/use-move/use-move.cjs.map +1 -1
  102. package/cjs/use-mutation-observer/use-mutation-observer.cjs +45 -46
  103. package/cjs/use-mutation-observer/use-mutation-observer.cjs.map +1 -1
  104. package/cjs/use-network/use-network.cjs +48 -44
  105. package/cjs/use-network/use-network.cjs.map +1 -1
  106. package/cjs/use-orientation/use-orientation.cjs +30 -41
  107. package/cjs/use-orientation/use-orientation.cjs.map +1 -1
  108. package/cjs/use-os/use-os.cjs +27 -52
  109. package/cjs/use-os/use-os.cjs.map +1 -1
  110. package/cjs/use-page-leave/use-page-leave.cjs +11 -12
  111. package/cjs/use-page-leave/use-page-leave.cjs.map +1 -1
  112. package/cjs/use-pagination/use-pagination.cjs +75 -88
  113. package/cjs/use-pagination/use-pagination.cjs.map +1 -1
  114. package/cjs/use-previous/use-previous.cjs +11 -12
  115. package/cjs/use-previous/use-previous.cjs.map +1 -1
  116. package/cjs/use-queue/use-queue.cjs +40 -37
  117. package/cjs/use-queue/use-queue.cjs.map +1 -1
  118. package/cjs/use-radial-move/use-radial-move.cjs +87 -94
  119. package/cjs/use-radial-move/use-radial-move.cjs.map +1 -1
  120. package/cjs/use-reduced-motion/use-reduced-motion.cjs +7 -8
  121. package/cjs/use-reduced-motion/use-reduced-motion.cjs.map +1 -1
  122. package/cjs/use-resize-observer/use-resize-observer.cjs +55 -62
  123. package/cjs/use-resize-observer/use-resize-observer.cjs.map +1 -1
  124. package/cjs/use-scroll-direction/use-scroll-direction.cjs +33 -36
  125. package/cjs/use-scroll-direction/use-scroll-direction.cjs.map +1 -1
  126. package/cjs/use-scroll-into-view/use-scroll-into-view.cjs +128 -160
  127. package/cjs/use-scroll-into-view/use-scroll-into-view.cjs.map +1 -1
  128. package/cjs/use-scroll-spy/use-scroll-spy.cjs +58 -84
  129. package/cjs/use-scroll-spy/use-scroll-spy.cjs.map +1 -1
  130. package/cjs/use-scroller/use-scroller.cjs +128 -151
  131. package/cjs/use-scroller/use-scroller.cjs.map +1 -1
  132. package/cjs/use-selection/use-selection.cjs +61 -72
  133. package/cjs/use-selection/use-selection.cjs.map +1 -1
  134. package/cjs/use-session-storage/use-session-storage.cjs +8 -9
  135. package/cjs/use-session-storage/use-session-storage.cjs.map +1 -1
  136. package/cjs/use-set/use-set.cjs +60 -74
  137. package/cjs/use-set/use-set.cjs.map +1 -1
  138. package/cjs/use-set-state/use-set-state.cjs +11 -16
  139. package/cjs/use-set-state/use-set-state.cjs.map +1 -1
  140. package/cjs/use-shallow-effect/use-shallow-effect.cjs +20 -31
  141. package/cjs/use-shallow-effect/use-shallow-effect.cjs.map +1 -1
  142. package/cjs/use-state-history/use-state-history.cjs +47 -40
  143. package/cjs/use-state-history/use-state-history.cjs.map +1 -1
  144. package/cjs/use-text-selection/use-text-selection.cjs +19 -20
  145. package/cjs/use-text-selection/use-text-selection.cjs.map +1 -1
  146. package/cjs/use-throttled-callback/use-throttled-callback.cjs +37 -48
  147. package/cjs/use-throttled-callback/use-throttled-callback.cjs.map +1 -1
  148. package/cjs/use-throttled-state/use-throttled-state.cjs +11 -12
  149. package/cjs/use-throttled-state/use-throttled-state.cjs.map +1 -1
  150. package/cjs/use-throttled-value/use-throttled-value.cjs +18 -22
  151. package/cjs/use-throttled-value/use-throttled-value.cjs.map +1 -1
  152. package/cjs/use-timeout/use-timeout.cjs +27 -32
  153. package/cjs/use-timeout/use-timeout.cjs.map +1 -1
  154. package/cjs/use-toggle/use-toggle.cjs +12 -13
  155. package/cjs/use-toggle/use-toggle.cjs.map +1 -1
  156. package/cjs/use-uncontrolled/use-uncontrolled.cjs +22 -25
  157. package/cjs/use-uncontrolled/use-uncontrolled.cjs.map +1 -1
  158. package/cjs/use-validated-state/use-validated-state.cjs +21 -24
  159. package/cjs/use-validated-state/use-validated-state.cjs.map +1 -1
  160. package/cjs/use-viewport-size/use-viewport-size.cjs +22 -22
  161. package/cjs/use-viewport-size/use-viewport-size.cjs.map +1 -1
  162. package/cjs/use-window-event/use-window-event.cjs +11 -12
  163. package/cjs/use-window-event/use-window-event.cjs.map +1 -1
  164. package/cjs/use-window-scroll/use-window-scroll.cjs +30 -26
  165. package/cjs/use-window-scroll/use-window-scroll.cjs.map +1 -1
  166. package/cjs/utils/clamp/clamp.cjs +9 -15
  167. package/cjs/utils/clamp/clamp.cjs.map +1 -1
  168. package/cjs/utils/lower-first/lower-first.cjs +6 -6
  169. package/cjs/utils/lower-first/lower-first.cjs.map +1 -1
  170. package/cjs/utils/random-id/random-id.cjs +6 -6
  171. package/cjs/utils/random-id/random-id.cjs.map +1 -1
  172. package/cjs/utils/range/range.cjs +8 -11
  173. package/cjs/utils/range/range.cjs.map +1 -1
  174. package/cjs/utils/shallow-equal/shallow-equal.cjs +17 -29
  175. package/cjs/utils/shallow-equal/shallow-equal.cjs.map +1 -1
  176. package/cjs/utils/upper-first/upper-first.cjs +6 -6
  177. package/cjs/utils/upper-first/upper-first.cjs.map +1 -1
  178. package/cjs/utils/use-callback-ref/use-callback-ref.cjs +11 -12
  179. package/cjs/utils/use-callback-ref/use-callback-ref.cjs.map +1 -1
  180. package/esm/index.mjs +87 -87
  181. package/esm/use-click-outside/use-click-outside.mjs +22 -24
  182. package/esm/use-click-outside/use-click-outside.mjs.map +1 -1
  183. package/esm/use-clipboard/use-clipboard.mjs +29 -26
  184. package/esm/use-clipboard/use-clipboard.mjs.map +1 -1
  185. package/esm/use-collapse/use-collapse.mjs +95 -95
  186. package/esm/use-collapse/use-collapse.mjs.map +1 -1
  187. package/esm/use-collapse/use-horizontal-collapse.mjs +94 -94
  188. package/esm/use-collapse/use-horizontal-collapse.mjs.map +1 -1
  189. package/esm/use-color-scheme/use-color-scheme.mjs +7 -6
  190. package/esm/use-color-scheme/use-color-scheme.mjs.map +1 -1
  191. package/esm/use-counter/use-counter.mjs +24 -24
  192. package/esm/use-counter/use-counter.mjs.map +1 -1
  193. package/esm/use-debounced-callback/use-debounced-callback.mjs +89 -91
  194. package/esm/use-debounced-callback/use-debounced-callback.mjs.map +1 -1
  195. package/esm/use-debounced-state/use-debounced-state.mjs +20 -26
  196. package/esm/use-debounced-state/use-debounced-state.mjs.map +1 -1
  197. package/esm/use-debounced-value/use-debounced-value.mjs +32 -29
  198. package/esm/use-debounced-value/use-debounced-value.mjs.map +1 -1
  199. package/esm/use-did-update/use-did-update.mjs +14 -19
  200. package/esm/use-did-update/use-did-update.mjs.map +1 -1
  201. package/esm/use-disclosure/use-disclosure.mjs +37 -28
  202. package/esm/use-disclosure/use-disclosure.mjs.map +1 -1
  203. package/esm/use-document-title/use-document-title.mjs +9 -10
  204. package/esm/use-document-title/use-document-title.mjs.map +1 -1
  205. package/esm/use-document-visibility/use-document-visibility.mjs +14 -13
  206. package/esm/use-document-visibility/use-document-visibility.mjs.map +1 -1
  207. package/esm/use-event-listener/use-event-listener.mjs +23 -30
  208. package/esm/use-event-listener/use-event-listener.mjs.map +1 -1
  209. package/esm/use-eye-dropper/use-eye-dropper.mjs +19 -22
  210. package/esm/use-eye-dropper/use-eye-dropper.mjs.map +1 -1
  211. package/esm/use-favicon/use-favicon.mjs +25 -30
  212. package/esm/use-favicon/use-favicon.mjs.map +1 -1
  213. package/esm/use-fetch/use-fetch.mjs +43 -43
  214. package/esm/use-fetch/use-fetch.mjs.map +1 -1
  215. package/esm/use-file-dialog/use-file-dialog.mjs +65 -75
  216. package/esm/use-file-dialog/use-file-dialog.mjs.map +1 -1
  217. package/esm/use-floating-window/use-floating-window.mjs +244 -253
  218. package/esm/use-floating-window/use-floating-window.mjs.map +1 -1
  219. package/esm/use-focus-return/use-focus-return.mjs +26 -35
  220. package/esm/use-focus-return/use-focus-return.mjs.map +1 -1
  221. package/esm/use-focus-trap/scope-tab.mjs +20 -29
  222. package/esm/use-focus-trap/scope-tab.mjs.map +1 -1
  223. package/esm/use-focus-trap/tabbable.mjs +23 -38
  224. package/esm/use-focus-trap/tabbable.mjs.map +1 -1
  225. package/esm/use-focus-trap/use-focus-trap.mjs +41 -66
  226. package/esm/use-focus-trap/use-focus-trap.mjs.map +1 -1
  227. package/esm/use-focus-within/use-focus-within.mjs +51 -60
  228. package/esm/use-focus-within/use-focus-within.mjs.map +1 -1
  229. package/esm/use-force-update/use-force-update.mjs +8 -7
  230. package/esm/use-force-update/use-force-update.mjs.map +1 -1
  231. package/esm/use-fullscreen/use-fullscreen.mjs +80 -87
  232. package/esm/use-fullscreen/use-fullscreen.mjs.map +1 -1
  233. package/esm/use-hash/use-hash.mjs +21 -26
  234. package/esm/use-hash/use-hash.mjs.map +1 -1
  235. package/esm/use-headroom/use-headroom.mjs +71 -89
  236. package/esm/use-headroom/use-headroom.mjs.map +1 -1
  237. package/esm/use-hotkeys/parse-hotkey.mjs +74 -79
  238. package/esm/use-hotkeys/parse-hotkey.mjs.map +1 -1
  239. package/esm/use-hotkeys/use-hotkeys.mjs +32 -31
  240. package/esm/use-hotkeys/use-hotkeys.mjs.map +1 -1
  241. package/esm/use-hover/use-hover.mjs +31 -31
  242. package/esm/use-hover/use-hover.mjs.map +1 -1
  243. package/esm/use-id/use-id.mjs +15 -17
  244. package/esm/use-id/use-id.mjs.map +1 -1
  245. package/esm/use-idle/use-idle.mjs +40 -31
  246. package/esm/use-idle/use-idle.mjs.map +1 -1
  247. package/esm/use-in-viewport/use-in-viewport.mjs +22 -25
  248. package/esm/use-in-viewport/use-in-viewport.mjs.map +1 -1
  249. package/esm/use-input-state/use-input-state.mjs +17 -23
  250. package/esm/use-input-state/use-input-state.mjs.map +1 -1
  251. package/esm/use-intersection/use-intersection.mjs +29 -25
  252. package/esm/use-intersection/use-intersection.mjs.map +1 -1
  253. package/esm/use-interval/use-interval.mjs +42 -39
  254. package/esm/use-interval/use-interval.mjs.map +1 -1
  255. package/esm/use-is-first-render/use-is-first-render.mjs +12 -11
  256. package/esm/use-is-first-render/use-is-first-render.mjs.map +1 -1
  257. package/esm/use-isomorphic-effect/use-isomorphic-effect.mjs +6 -5
  258. package/esm/use-isomorphic-effect/use-isomorphic-effect.mjs.map +1 -1
  259. package/esm/use-list-state/use-list-state.mjs +74 -71
  260. package/esm/use-list-state/use-list-state.mjs.map +1 -1
  261. package/esm/use-local-storage/create-storage.mjs +127 -137
  262. package/esm/use-local-storage/create-storage.mjs.map +1 -1
  263. package/esm/use-local-storage/use-local-storage.mjs +7 -6
  264. package/esm/use-local-storage/use-local-storage.mjs.map +1 -1
  265. package/esm/use-logger/use-logger.mjs +15 -14
  266. package/esm/use-logger/use-logger.mjs.map +1 -1
  267. package/esm/use-long-press/use-long-press.mjs +49 -56
  268. package/esm/use-long-press/use-long-press.mjs.map +1 -1
  269. package/esm/use-map/use-map.mjs +24 -23
  270. package/esm/use-map/use-map.mjs.map +1 -1
  271. package/esm/use-media-query/use-media-query.mjs +27 -31
  272. package/esm/use-media-query/use-media-query.mjs.map +1 -1
  273. package/esm/use-merged-ref/use-merged-ref.mjs +24 -33
  274. package/esm/use-merged-ref/use-merged-ref.mjs.map +1 -1
  275. package/esm/use-mounted/use-mounted.mjs +9 -8
  276. package/esm/use-mounted/use-mounted.mjs.map +1 -1
  277. package/esm/use-mouse/use-mouse.mjs +55 -51
  278. package/esm/use-mouse/use-mouse.mjs.map +1 -1
  279. package/esm/use-move/use-move.mjs +98 -96
  280. package/esm/use-move/use-move.mjs.map +1 -1
  281. package/esm/use-mutation-observer/use-mutation-observer.mjs +45 -44
  282. package/esm/use-mutation-observer/use-mutation-observer.mjs.map +1 -1
  283. package/esm/use-network/use-network.mjs +48 -42
  284. package/esm/use-network/use-network.mjs.map +1 -1
  285. package/esm/use-orientation/use-orientation.mjs +30 -39
  286. package/esm/use-orientation/use-orientation.mjs.map +1 -1
  287. package/esm/use-os/use-os.mjs +27 -50
  288. package/esm/use-os/use-os.mjs.map +1 -1
  289. package/esm/use-page-leave/use-page-leave.mjs +11 -10
  290. package/esm/use-page-leave/use-page-leave.mjs.map +1 -1
  291. package/esm/use-pagination/use-pagination.mjs +75 -85
  292. package/esm/use-pagination/use-pagination.mjs.map +1 -1
  293. package/esm/use-previous/use-previous.mjs +11 -10
  294. package/esm/use-previous/use-previous.mjs.map +1 -1
  295. package/esm/use-queue/use-queue.mjs +40 -35
  296. package/esm/use-queue/use-queue.mjs.map +1 -1
  297. package/esm/use-radial-move/use-radial-move.mjs +87 -92
  298. package/esm/use-radial-move/use-radial-move.mjs.map +1 -1
  299. package/esm/use-reduced-motion/use-reduced-motion.mjs +7 -6
  300. package/esm/use-reduced-motion/use-reduced-motion.mjs.map +1 -1
  301. package/esm/use-resize-observer/use-resize-observer.mjs +55 -60
  302. package/esm/use-resize-observer/use-resize-observer.mjs.map +1 -1
  303. package/esm/use-scroll-direction/use-scroll-direction.mjs +33 -34
  304. package/esm/use-scroll-direction/use-scroll-direction.mjs.map +1 -1
  305. package/esm/use-scroll-into-view/use-scroll-into-view.mjs +128 -158
  306. package/esm/use-scroll-into-view/use-scroll-into-view.mjs.map +1 -1
  307. package/esm/use-scroll-spy/use-scroll-spy.mjs +58 -82
  308. package/esm/use-scroll-spy/use-scroll-spy.mjs.map +1 -1
  309. package/esm/use-scroller/use-scroller.mjs +128 -149
  310. package/esm/use-scroller/use-scroller.mjs.map +1 -1
  311. package/esm/use-selection/use-selection.mjs +61 -70
  312. package/esm/use-selection/use-selection.mjs.map +1 -1
  313. package/esm/use-session-storage/use-session-storage.mjs +7 -6
  314. package/esm/use-session-storage/use-session-storage.mjs.map +1 -1
  315. package/esm/use-set/use-set.mjs +60 -71
  316. package/esm/use-set/use-set.mjs.map +1 -1
  317. package/esm/use-set-state/use-set-state.mjs +11 -14
  318. package/esm/use-set-state/use-set-state.mjs.map +1 -1
  319. package/esm/use-shallow-effect/use-shallow-effect.mjs +20 -29
  320. package/esm/use-shallow-effect/use-shallow-effect.mjs.map +1 -1
  321. package/esm/use-state-history/use-state-history.mjs +47 -38
  322. package/esm/use-state-history/use-state-history.mjs.map +1 -1
  323. package/esm/use-text-selection/use-text-selection.mjs +19 -18
  324. package/esm/use-text-selection/use-text-selection.mjs.map +1 -1
  325. package/esm/use-throttled-callback/use-throttled-callback.mjs +37 -46
  326. package/esm/use-throttled-callback/use-throttled-callback.mjs.map +1 -1
  327. package/esm/use-throttled-state/use-throttled-state.mjs +11 -10
  328. package/esm/use-throttled-state/use-throttled-state.mjs.map +1 -1
  329. package/esm/use-throttled-value/use-throttled-value.mjs +18 -20
  330. package/esm/use-throttled-value/use-throttled-value.mjs.map +1 -1
  331. package/esm/use-timeout/use-timeout.mjs +27 -30
  332. package/esm/use-timeout/use-timeout.mjs.map +1 -1
  333. package/esm/use-toggle/use-toggle.mjs +12 -11
  334. package/esm/use-toggle/use-toggle.mjs.map +1 -1
  335. package/esm/use-uncontrolled/use-uncontrolled.mjs +22 -23
  336. package/esm/use-uncontrolled/use-uncontrolled.mjs.map +1 -1
  337. package/esm/use-validated-state/use-validated-state.mjs +21 -22
  338. package/esm/use-validated-state/use-validated-state.mjs.map +1 -1
  339. package/esm/use-viewport-size/use-viewport-size.mjs +22 -20
  340. package/esm/use-viewport-size/use-viewport-size.mjs.map +1 -1
  341. package/esm/use-window-event/use-window-event.mjs +11 -10
  342. package/esm/use-window-event/use-window-event.mjs.map +1 -1
  343. package/esm/use-window-scroll/use-window-scroll.mjs +30 -24
  344. package/esm/use-window-scroll/use-window-scroll.mjs.map +1 -1
  345. package/esm/utils/clamp/clamp.mjs +9 -13
  346. package/esm/utils/clamp/clamp.mjs.map +1 -1
  347. package/esm/utils/lower-first/lower-first.mjs +6 -4
  348. package/esm/utils/lower-first/lower-first.mjs.map +1 -1
  349. package/esm/utils/random-id/random-id.mjs +6 -4
  350. package/esm/utils/random-id/random-id.mjs.map +1 -1
  351. package/esm/utils/range/range.mjs +8 -9
  352. package/esm/utils/range/range.mjs.map +1 -1
  353. package/esm/utils/shallow-equal/shallow-equal.mjs +17 -27
  354. package/esm/utils/shallow-equal/shallow-equal.mjs.map +1 -1
  355. package/esm/utils/upper-first/upper-first.mjs +6 -4
  356. package/esm/utils/upper-first/upper-first.mjs.map +1 -1
  357. package/esm/utils/use-callback-ref/use-callback-ref.mjs +11 -10
  358. package/esm/utils/use-callback-ref/use-callback-ref.mjs.map +1 -1
  359. package/lib/use-local-storage/use-local-storage.d.ts +13 -3
  360. package/lib/use-session-storage/use-session-storage.d.ts +13 -3
  361. package/package.json +1 -1
  362. package/cjs/index.cjs.map +0 -1
  363. package/cjs/use-drag/use-drag.cjs +0 -304
  364. package/cjs/use-drag/use-drag.cjs.map +0 -1
  365. package/cjs/use-mask/use-mask.cjs +0 -583
  366. package/cjs/use-mask/use-mask.cjs.map +0 -1
  367. package/cjs/use-roving-index/use-roving-index.cjs +0 -270
  368. package/cjs/use-roving-index/use-roving-index.cjs.map +0 -1
  369. package/esm/index.mjs.map +0 -1
  370. package/esm/use-drag/use-drag.mjs +0 -302
  371. package/esm/use-drag/use-drag.mjs.map +0 -1
  372. package/esm/use-mask/use-mask.mjs +0 -577
  373. package/esm/use-mask/use-mask.mjs.map +0 -1
  374. package/esm/use-roving-index/use-roving-index.mjs +0 -268
  375. package/esm/use-roving-index/use-roving-index.mjs.map +0 -1
  376. package/lib/use-drag/use-drag.d.ts +0 -60
  377. package/lib/use-mask/use-mask.d.ts +0 -60
  378. package/lib/use-roving-index/use-roving-index.d.ts +0 -49
@@ -1,583 +0,0 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- var react = require('react');
5
-
6
- const DEFAULT_TOKENS = {
7
- "9": /[0-9]/,
8
- a: /[A-Za-z]/,
9
- A: /[A-Z]/,
10
- "*": /[A-Za-z0-9]/,
11
- "#": /[-+0-9]/
12
- };
13
- function parseMask(mask, tokens) {
14
- if (Array.isArray(mask)) {
15
- return mask.map((item) => {
16
- if (item instanceof RegExp) {
17
- return { type: "token", char: "_", pattern: item };
18
- }
19
- return { type: "literal", char: item };
20
- });
21
- }
22
- const slots = [];
23
- let optional = false;
24
- for (let i = 0; i < mask.length; i++) {
25
- const char = mask[i];
26
- if (char === "\\" && i + 1 < mask.length) {
27
- i++;
28
- slots.push({ type: "literal", char: mask[i] });
29
- continue;
30
- }
31
- if (char === "?") {
32
- optional = true;
33
- continue;
34
- }
35
- if (tokens[char]) {
36
- slots.push({ type: "token", char, pattern: tokens[char], optional });
37
- } else {
38
- slots.push({ type: "literal", char, optional });
39
- }
40
- }
41
- return slots;
42
- }
43
- function getSlotChar(slotCharOption, index) {
44
- if (slotCharOption === null || slotCharOption === "" || slotCharOption === void 0) {
45
- return "";
46
- }
47
- if (slotCharOption.length > 1) {
48
- return slotCharOption[index] || "_";
49
- }
50
- return slotCharOption;
51
- }
52
- function applyMaskToRaw(raw, slots, _slotCharOption, transform) {
53
- let result = "";
54
- let rawIndex = 0;
55
- let slotIndex = 0;
56
- for (slotIndex = 0; slotIndex < slots.length; slotIndex++) {
57
- const slot = slots[slotIndex];
58
- if (slot.type === "literal") {
59
- result += slot.char;
60
- } else if (rawIndex < raw.length) {
61
- const ch = transform ? transform(raw[rawIndex]) : raw[rawIndex];
62
- if (slot.pattern && slot.pattern.test(ch)) {
63
- result += ch;
64
- rawIndex++;
65
- } else {
66
- rawIndex++;
67
- slotIndex--;
68
- }
69
- } else {
70
- break;
71
- }
72
- }
73
- return result;
74
- }
75
- function buildDisplayValue(value, slots, slotCharOption, showSlots) {
76
- if (!showSlots) {
77
- return value;
78
- }
79
- let display = value;
80
- for (let i = value.length; i < slots.length; i++) {
81
- const slot = slots[i];
82
- if (slot.type === "literal") {
83
- display += slot.char;
84
- } else {
85
- const sc = getSlotChar(slotCharOption, i);
86
- if (!sc) {
87
- break;
88
- }
89
- display += sc;
90
- }
91
- }
92
- return display;
93
- }
94
- function extractRaw(masked, slots) {
95
- let raw = "";
96
- for (let i = 0; i < masked.length && i < slots.length; i++) {
97
- if (slots[i].type === "token") {
98
- raw += masked[i];
99
- }
100
- }
101
- return raw;
102
- }
103
- function checkComplete(masked, slots) {
104
- for (let i = 0; i < slots.length; i++) {
105
- if (slots[i].type === "token" && !slots[i].optional) {
106
- if (i >= masked.length) {
107
- return false;
108
- }
109
- if (!slots[i].pattern.test(masked[i])) {
110
- return false;
111
- }
112
- }
113
- }
114
- return true;
115
- }
116
- function findNextTokenIndex(slots, from) {
117
- for (let i = from; i < slots.length; i++) {
118
- if (slots[i].type === "token") {
119
- return i;
120
- }
121
- }
122
- return slots.length;
123
- }
124
- function findPrevTokenIndex(slots, from) {
125
- for (let i = from; i >= 0; i--) {
126
- if (slots[i].type === "token") {
127
- return i;
128
- }
129
- }
130
- return -1;
131
- }
132
- function processInput(inputValue, slots, _slotCharOption) {
133
- let result = "";
134
- let inputIndex = 0;
135
- for (let slotIndex = 0; slotIndex < slots.length && inputIndex <= inputValue.length; slotIndex++) {
136
- const slot = slots[slotIndex];
137
- if (slot.type === "literal") {
138
- result += slot.char;
139
- if (inputIndex < inputValue.length && inputValue[inputIndex] === slot.char) {
140
- inputIndex++;
141
- }
142
- continue;
143
- }
144
- if (inputIndex >= inputValue.length) {
145
- break;
146
- }
147
- while (inputIndex < inputValue.length) {
148
- const ch = inputValue[inputIndex];
149
- inputIndex++;
150
- if (slot.pattern.test(ch)) {
151
- result += ch;
152
- break;
153
- }
154
- }
155
- if (result.length <= slotIndex) {
156
- break;
157
- }
158
- }
159
- return result;
160
- }
161
- function getResolvedOptions(options, rawValue) {
162
- const tokens = { ...DEFAULT_TOKENS, ...options.tokens };
163
- let mask = options.mask;
164
- let slotChar = options.slotChar === void 0 ? "_" : options.slotChar;
165
- let separate = options.separate ?? false;
166
- if (options.modify) {
167
- const overrides = options.modify(rawValue);
168
- if (overrides) {
169
- if (overrides.mask !== void 0) {
170
- mask = overrides.mask;
171
- }
172
- if (overrides.tokens !== void 0) {
173
- Object.assign(tokens, overrides.tokens);
174
- }
175
- if (overrides.slotChar !== void 0) {
176
- slotChar = overrides.slotChar;
177
- }
178
- if (overrides.separate !== void 0) {
179
- separate = overrides.separate;
180
- }
181
- }
182
- }
183
- const slots = parseMask(mask, tokens);
184
- return { slots, slotChar, separate, tokens, transform: options.transform };
185
- }
186
- function formatMask(raw, options) {
187
- const { slots, slotChar, transform } = getResolvedOptions(options, raw);
188
- return applyMaskToRaw(raw, slots, slotChar, transform);
189
- }
190
- function unformatMask(masked, options) {
191
- const { slots } = getResolvedOptions(options, "");
192
- return extractRaw(masked, slots);
193
- }
194
- function isMaskComplete(masked, options) {
195
- const { slots } = getResolvedOptions(options, "");
196
- return checkComplete(masked, slots);
197
- }
198
- function generatePattern(mode, options) {
199
- const { slots } = getResolvedOptions(options, "");
200
- let pattern = "";
201
- for (const slot of slots) {
202
- if (slot.type === "literal") {
203
- pattern += slot.char.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
204
- } else {
205
- const src = slot.pattern.source;
206
- if (mode === "full-inexact") {
207
- pattern += slot.optional ? `${src}?` : src;
208
- } else {
209
- pattern += slot.optional ? `(${src})?` : `(${src})`;
210
- }
211
- }
212
- }
213
- return pattern;
214
- }
215
- function useMask(options) {
216
- const optionsRef = react.useRef(options);
217
- optionsRef.current = options;
218
- const inputRef = react.useRef(null);
219
- const [maskedValue, setMaskedValue] = react.useState("");
220
- const [rawValue, setRawValue] = react.useState("");
221
- const processedRef = react.useRef("");
222
- const wasCompleteRef = react.useRef(false);
223
- const isFocusedRef = react.useRef(false);
224
- const getOptions = react.useCallback(() => {
225
- const opts = optionsRef.current;
226
- return getResolvedOptions(opts, rawValue);
227
- }, [rawValue]);
228
- const updateValue = react.useCallback(
229
- (newMasked, cursorPos) => {
230
- const opts = optionsRef.current;
231
- const { slots } = getResolvedOptions(
232
- opts,
233
- extractRaw(newMasked, getResolvedOptions(opts, "").slots)
234
- );
235
- const raw = extractRaw(newMasked, slots);
236
- const { slots: resolvedSlots, slotChar } = getResolvedOptions(opts, raw);
237
- const reprocessed = processInput(newMasked, resolvedSlots);
238
- const newRaw = extractRaw(reprocessed, resolvedSlots);
239
- const showSlots = opts.alwaysShowMask || isFocusedRef.current;
240
- const showOnFocus = opts.showMaskOnFocus !== false;
241
- const shouldShowSlots = showSlots && (showOnFocus || reprocessed.length > 0);
242
- const displayValue = buildDisplayValue(reprocessed, resolvedSlots, slotChar, shouldShowSlots);
243
- processedRef.current = reprocessed;
244
- setMaskedValue(displayValue);
245
- setRawValue(newRaw);
246
- if (inputRef.current) {
247
- inputRef.current.value = displayValue;
248
- if (cursorPos !== void 0 && document.activeElement === inputRef.current) {
249
- const pos = Math.min(cursorPos, reprocessed.length);
250
- inputRef.current.setSelectionRange(pos, pos);
251
- }
252
- }
253
- if (opts.onChangeRaw) {
254
- opts.onChangeRaw(newRaw, displayValue);
255
- }
256
- const complete = checkComplete(reprocessed, resolvedSlots);
257
- if (complete && !wasCompleteRef.current && opts.onComplete) {
258
- opts.onComplete(displayValue, newRaw);
259
- }
260
- wasCompleteRef.current = complete;
261
- return { displayValue, newRaw, reprocessed, resolvedSlots };
262
- },
263
- [getOptions]
264
- );
265
- const handleInput = react.useCallback(
266
- (e) => {
267
- const input = e.target;
268
- const opts = optionsRef.current;
269
- const { slots: resolvedSlots, slotChar, transform } = getResolvedOptions(opts, "");
270
- const raw = extractRaw(input.value, resolvedSlots);
271
- const reformatted = applyMaskToRaw(raw, resolvedSlots, slotChar, transform);
272
- updateValue(reformatted, reformatted.length);
273
- },
274
- [updateValue]
275
- );
276
- const clampCursorToProcessed = react.useCallback((input) => {
277
- const opts = optionsRef.current;
278
- const { slots } = getResolvedOptions(opts, "");
279
- const processed = processedRef.current;
280
- const cursorPos = input.selectionStart ?? 0;
281
- const maxPos = processed.length > 0 ? findNextEditablePosition(processed.length, slots, processed) : findNextTokenIndex(slots, 0);
282
- if (cursorPos > maxPos) {
283
- input.setSelectionRange(maxPos, maxPos);
284
- }
285
- }, []);
286
- const handleFocus = react.useCallback(() => {
287
- isFocusedRef.current = true;
288
- const opts = optionsRef.current;
289
- const input = inputRef.current;
290
- if (!input) {
291
- return;
292
- }
293
- const { slots, slotChar } = getResolvedOptions(opts, "");
294
- const showOnFocus = opts.showMaskOnFocus !== false;
295
- const processed = processedRef.current;
296
- if (showOnFocus || opts.alwaysShowMask) {
297
- const display = buildDisplayValue(processed, slots, slotChar, true);
298
- input.value = display;
299
- setMaskedValue(display);
300
- }
301
- requestAnimationFrame(() => {
302
- if (input === document.activeElement) {
303
- clampCursorToProcessed(input);
304
- }
305
- });
306
- }, [clampCursorToProcessed]);
307
- const handleMouseUp = react.useCallback(() => {
308
- const input = inputRef.current;
309
- if (!input || input !== document.activeElement) {
310
- return;
311
- }
312
- clampCursorToProcessed(input);
313
- }, [clampCursorToProcessed]);
314
- const handleBlur = react.useCallback(() => {
315
- isFocusedRef.current = false;
316
- const opts = optionsRef.current;
317
- const input = inputRef.current;
318
- if (!input) {
319
- return;
320
- }
321
- const { slots, slotChar } = getResolvedOptions(opts, rawValue);
322
- const processed = processInput(input.value, slots);
323
- const complete = checkComplete(processed, slots);
324
- if (opts.autoClear && !complete && processed.length > 0) {
325
- input.value = "";
326
- processedRef.current = "";
327
- setMaskedValue("");
328
- setRawValue("");
329
- wasCompleteRef.current = false;
330
- if (opts.onChangeRaw) {
331
- opts.onChangeRaw("", "");
332
- }
333
- if (opts.alwaysShowMask) {
334
- const emptyDisplay = buildDisplayValue("", slots, slotChar, true);
335
- input.value = emptyDisplay;
336
- setMaskedValue(emptyDisplay);
337
- }
338
- return;
339
- }
340
- if (!opts.alwaysShowMask && !complete) {
341
- const display = buildDisplayValue(processed, slots, slotChar, false);
342
- input.value = display;
343
- setMaskedValue(display);
344
- }
345
- }, [rawValue]);
346
- const handleKeyDown = react.useCallback(
347
- (e) => {
348
- const input = e.target;
349
- const opts = optionsRef.current;
350
- const { slots, slotChar, transform } = getResolvedOptions(opts, rawValue);
351
- const start = input.selectionStart ?? 0;
352
- const end = input.selectionEnd ?? 0;
353
- const processed = processedRef.current;
354
- if (e.key === "Backspace") {
355
- e.preventDefault();
356
- if (e.metaKey || e.ctrlKey && !e.altKey) {
357
- const clampedStart = Math.min(start, processed.length);
358
- const afterRaw2 = extractRaw(processed.slice(clampedStart), slots.slice(clampedStart));
359
- const newValue2 = applyMaskToRaw(afterRaw2, slots, slotChar, transform);
360
- updateValue(newValue2, 0);
361
- return;
362
- }
363
- if (start !== end) {
364
- const clampedEnd = Math.min(end, processed.length);
365
- const before = processed.slice(0, start);
366
- const afterRaw2 = extractRaw(processed.slice(clampedEnd), slots.slice(clampedEnd));
367
- const newValue2 = applyMaskToRaw(
368
- extractRaw(before, slots) + afterRaw2,
369
- slots,
370
- slotChar,
371
- transform
372
- );
373
- updateValue(newValue2, start);
374
- return;
375
- }
376
- if (start === 0) {
377
- return;
378
- }
379
- let deletePos = start - 1;
380
- while (deletePos >= 0 && slots[deletePos] && slots[deletePos].type === "literal") {
381
- deletePos--;
382
- }
383
- if (deletePos < 0) {
384
- return;
385
- }
386
- const beforeRaw = extractRaw(processed.slice(0, deletePos), slots.slice(0, deletePos));
387
- const afterRaw = extractRaw(processed.slice(deletePos + 1), slots.slice(deletePos + 1));
388
- const newValue = applyMaskToRaw(beforeRaw + afterRaw, slots, slotChar, transform);
389
- updateValue(newValue, deletePos);
390
- } else if (e.key === "Delete") {
391
- e.preventDefault();
392
- if (start !== end) {
393
- const clampedEnd = Math.min(end, processed.length);
394
- const before = processed.slice(0, start);
395
- const afterRaw2 = extractRaw(processed.slice(clampedEnd), slots.slice(clampedEnd));
396
- const newValue2 = applyMaskToRaw(
397
- extractRaw(before, slots) + afterRaw2,
398
- slots,
399
- slotChar,
400
- transform
401
- );
402
- updateValue(newValue2, start);
403
- return;
404
- }
405
- let deletePos = start;
406
- while (deletePos < slots.length && slots[deletePos] && slots[deletePos].type === "literal") {
407
- deletePos++;
408
- }
409
- if (deletePos >= processed.length) {
410
- return;
411
- }
412
- const beforeRaw = extractRaw(processed.slice(0, start), slots.slice(0, start));
413
- const afterRaw = extractRaw(processed.slice(deletePos + 1), slots.slice(deletePos + 1));
414
- const newValue = applyMaskToRaw(beforeRaw + afterRaw, slots, slotChar, transform);
415
- updateValue(newValue, start);
416
- } else if (e.key === "ArrowRight" && !e.shiftKey) {
417
- const nextPos = findNextEditablePosition(start + 1, slots, input.value);
418
- if (nextPos !== start + 1) {
419
- e.preventDefault();
420
- input.setSelectionRange(nextPos, nextPos);
421
- }
422
- } else if (e.key === "ArrowLeft" && !e.shiftKey) {
423
- if (start > 0) {
424
- const prevToken = findPrevTokenIndex(slots, start - 1);
425
- if (prevToken >= 0 && prevToken !== start - 1) {
426
- e.preventDefault();
427
- input.setSelectionRange(prevToken + 1, prevToken + 1);
428
- }
429
- }
430
- } else if (e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {
431
- e.preventDefault();
432
- let insertPos = Math.min(start, processed.length);
433
- while (insertPos < slots.length && slots[insertPos] && slots[insertPos].type === "literal") {
434
- insertPos++;
435
- }
436
- if (insertPos >= slots.length) {
437
- return;
438
- }
439
- const slot = slots[insertPos];
440
- const ch = transform ? transform(e.key) : e.key;
441
- if (!slot.pattern.test(ch)) {
442
- return;
443
- }
444
- const beforeRaw = extractRaw(processed.slice(0, insertPos), slots.slice(0, insertPos));
445
- const afterRaw = start < end ? extractRaw(
446
- processed.slice(Math.min(end, processed.length)),
447
- slots.slice(Math.min(end, processed.length))
448
- ) : extractRaw(processed.slice(insertPos), slots.slice(insertPos));
449
- const newValue = applyMaskToRaw(beforeRaw + ch + afterRaw, slots, slotChar, transform);
450
- const newCursorPos = findNextEditablePosition(insertPos + 1, slots, newValue);
451
- updateValue(newValue, newCursorPos);
452
- }
453
- },
454
- [rawValue, updateValue]
455
- );
456
- const handlePaste = react.useCallback(
457
- (e) => {
458
- e.preventDefault();
459
- const input = e.target;
460
- const opts = optionsRef.current;
461
- const pastedText = e.clipboardData?.getData("text") ?? "";
462
- const start = input.selectionStart ?? 0;
463
- const end = input.selectionEnd ?? 0;
464
- const processed = processedRef.current;
465
- const { slots, slotChar, transform } = getResolvedOptions(opts, "");
466
- const clampedEnd = Math.min(end, processed.length);
467
- const beforeRaw = extractRaw(processed.slice(0, start), slots.slice(0, start));
468
- const afterRaw = extractRaw(processed.slice(clampedEnd), slots.slice(clampedEnd));
469
- const newValue = applyMaskToRaw(
470
- beforeRaw + pastedText + afterRaw,
471
- slots,
472
- slotChar,
473
- transform
474
- );
475
- const { reprocessed } = updateValue(newValue);
476
- const pasteEndPos = Math.min((reprocessed || newValue).length, slots.length);
477
- if (input === document.activeElement) {
478
- input.setSelectionRange(pasteEndPos, pasteEndPos);
479
- }
480
- },
481
- [updateValue]
482
- );
483
- const setAriaAttributes = react.useCallback((input) => {
484
- const opts = optionsRef.current;
485
- if (opts.invalid) {
486
- input.setAttribute("aria-invalid", "true");
487
- } else {
488
- input.removeAttribute("aria-invalid");
489
- }
490
- }, []);
491
- const refCallback = react.useCallback(
492
- (node) => {
493
- const prevInput = inputRef.current;
494
- if (prevInput) {
495
- prevInput.removeEventListener("input", handleInput);
496
- prevInput.removeEventListener("focus", handleFocus);
497
- prevInput.removeEventListener("blur", handleBlur);
498
- prevInput.removeEventListener("mouseup", handleMouseUp);
499
- prevInput.removeEventListener("keydown", handleKeyDown);
500
- prevInput.removeEventListener("paste", handlePaste);
501
- }
502
- inputRef.current = node;
503
- if (node) {
504
- node.addEventListener("input", handleInput);
505
- node.addEventListener("focus", handleFocus);
506
- node.addEventListener("blur", handleBlur);
507
- node.addEventListener("mouseup", handleMouseUp);
508
- node.addEventListener("keydown", handleKeyDown);
509
- node.addEventListener("paste", handlePaste);
510
- setAriaAttributes(node);
511
- if (options.alwaysShowMask && !node.value) {
512
- const { slots, slotChar } = getResolvedOptions(options, "");
513
- const display = buildDisplayValue("", slots, slotChar, true);
514
- node.value = display;
515
- setMaskedValue(display);
516
- }
517
- }
518
- },
519
- [
520
- handleInput,
521
- handleFocus,
522
- handleBlur,
523
- handleMouseUp,
524
- handleKeyDown,
525
- handlePaste,
526
- setAriaAttributes,
527
- options
528
- ]
529
- );
530
- react.useEffect(() => {
531
- const input = inputRef.current;
532
- if (!input) {
533
- return;
534
- }
535
- setAriaAttributes(input);
536
- }, [options.invalid, setAriaAttributes]);
537
- const isComplete = (() => {
538
- const { slots } = getOptions();
539
- return checkComplete(processedRef.current, slots);
540
- })();
541
- const reset = react.useCallback(() => {
542
- const opts = optionsRef.current;
543
- const input = inputRef.current;
544
- processedRef.current = "";
545
- setMaskedValue("");
546
- setRawValue("");
547
- wasCompleteRef.current = false;
548
- if (input) {
549
- if (opts.alwaysShowMask) {
550
- const { slots, slotChar } = getResolvedOptions(opts, "");
551
- const display = buildDisplayValue("", slots, slotChar, true);
552
- input.value = display;
553
- setMaskedValue(display);
554
- } else {
555
- input.value = "";
556
- }
557
- }
558
- if (opts.onChangeRaw) {
559
- opts.onChangeRaw("", "");
560
- }
561
- }, []);
562
- return {
563
- ref: refCallback,
564
- value: maskedValue,
565
- rawValue,
566
- isComplete,
567
- reset
568
- };
569
- }
570
- function findNextEditablePosition(from, slots, value) {
571
- let pos = from;
572
- while (pos < slots.length && pos < value.length && slots[pos] && slots[pos].type === "literal") {
573
- pos++;
574
- }
575
- return pos;
576
- }
577
-
578
- exports.formatMask = formatMask;
579
- exports.generatePattern = generatePattern;
580
- exports.isMaskComplete = isMaskComplete;
581
- exports.unformatMask = unformatMask;
582
- exports.useMask = useMask;
583
- //# sourceMappingURL=use-mask.cjs.map