@mantine/hooks 5.0.2 → 5.1.1

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 (34) hide show
  1. package/cjs/index.js +4 -0
  2. package/cjs/index.js.map +1 -1
  3. package/cjs/use-click-outside/use-click-outside.js +4 -4
  4. package/cjs/use-click-outside/use-click-outside.js.map +1 -1
  5. package/cjs/use-debounced-state/use-debounced-state.js +29 -0
  6. package/cjs/use-debounced-state/use-debounced-state.js.map +1 -0
  7. package/cjs/use-id/use-id.js +1 -1
  8. package/cjs/use-id/use-id.js.map +1 -1
  9. package/cjs/use-text-selection/use-text-selection.js +24 -0
  10. package/cjs/use-text-selection/use-text-selection.js.map +1 -0
  11. package/cjs/use-toggle/use-toggle.js +1 -1
  12. package/cjs/use-toggle/use-toggle.js.map +1 -1
  13. package/esm/index.js +2 -0
  14. package/esm/index.js.map +1 -1
  15. package/esm/use-click-outside/use-click-outside.js +4 -4
  16. package/esm/use-click-outside/use-click-outside.js.map +1 -1
  17. package/esm/use-debounced-state/use-debounced-state.js +25 -0
  18. package/esm/use-debounced-state/use-debounced-state.js.map +1 -0
  19. package/esm/use-id/use-id.js +1 -1
  20. package/esm/use-id/use-id.js.map +1 -1
  21. package/esm/use-text-selection/use-text-selection.js +20 -0
  22. package/esm/use-text-selection/use-text-selection.js.map +1 -0
  23. package/esm/use-toggle/use-toggle.js +1 -1
  24. package/esm/use-toggle/use-toggle.js.map +1 -1
  25. package/lib/index.d.ts +2 -0
  26. package/lib/index.d.ts.map +1 -1
  27. package/lib/use-click-outside/use-click-outside.d.ts.map +1 -1
  28. package/lib/use-debounced-state/use-debounced-state.d.ts +4 -0
  29. package/lib/use-debounced-state/use-debounced-state.d.ts.map +1 -0
  30. package/lib/use-text-selection/use-text-selection.d.ts +2 -0
  31. package/lib/use-text-selection/use-text-selection.d.ts.map +1 -0
  32. package/lib/use-toggle/use-toggle.d.ts +1 -1
  33. package/lib/use-toggle/use-toggle.d.ts.map +1 -1
  34. package/package.json +1 -1
package/cjs/index.js CHANGED
@@ -6,6 +6,7 @@ var useClickOutside = require('./use-click-outside/use-click-outside.js');
6
6
  var useClipboard = require('./use-clipboard/use-clipboard.js');
7
7
  var useColorScheme = require('./use-color-scheme/use-color-scheme.js');
8
8
  var useCounter = require('./use-counter/use-counter.js');
9
+ var useDebouncedState = require('./use-debounced-state/use-debounced-state.js');
9
10
  var useDebouncedValue = require('./use-debounced-value/use-debounced-value.js');
10
11
  var useDocumentTitle = require('./use-document-title/use-document-title.js');
11
12
  var useDocumentVisibility = require('./use-document-visibility/use-document-visibility.js');
@@ -51,6 +52,7 @@ var useDisclosure = require('./use-disclosure/use-disclosure.js');
51
52
  var useFocusWithin = require('./use-focus-within/use-focus-within.js');
52
53
  var useNetwork = require('./use-network/use-network.js');
53
54
  var useTimeout = require('./use-timeout/use-timeout.js');
55
+ var useTextSelection = require('./use-text-selection/use-text-selection.js');
54
56
  var parseHotkey = require('./use-hotkeys/parse-hotkey.js');
55
57
  var assignRef = require('./utils/assign-ref/assign-ref.js');
56
58
  var clamp = require('./utils/clamp/clamp.js');
@@ -66,6 +68,7 @@ exports.useClickOutside = useClickOutside.useClickOutside;
66
68
  exports.useClipboard = useClipboard.useClipboard;
67
69
  exports.useColorScheme = useColorScheme.useColorScheme;
68
70
  exports.useCounter = useCounter.useCounter;
71
+ exports.useDebouncedState = useDebouncedState.useDebouncedState;
69
72
  exports.useDebouncedValue = useDebouncedValue.useDebouncedValue;
70
73
  exports.useDocumentTitle = useDocumentTitle.useDocumentTitle;
71
74
  exports.useDocumentVisibility = useDocumentVisibility.useDocumentVisibility;
@@ -114,6 +117,7 @@ exports.useDisclosure = useDisclosure.useDisclosure;
114
117
  exports.useFocusWithin = useFocusWithin.useFocusWithin;
115
118
  exports.useNetwork = useNetwork.useNetwork;
116
119
  exports.useTimeout = useTimeout.useTimeout;
120
+ exports.useTextSelection = useTextSelection.useTextSelection;
117
121
  exports.getHotkeyHandler = parseHotkey.getHotkeyHandler;
118
122
  exports.assignRef = assignRef.assignRef;
119
123
  exports.clamp = clamp.clamp;
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -9,12 +9,12 @@ function useClickOutside(handler, events, nodes) {
9
9
  const ref = React.useRef();
10
10
  React.useEffect(() => {
11
11
  const listener = (event) => {
12
- var _a;
12
+ const { target } = event != null ? event : {};
13
13
  if (Array.isArray(nodes)) {
14
- const shouldIgnore = (_a = event == null ? void 0 : event.target) == null ? void 0 : _a.hasAttribute("data-ignore-outside-clicks");
15
- const shouldTrigger = nodes.every((node) => !!node && !node.contains(event.target));
14
+ const shouldIgnore = (target == null ? void 0 : target.hasAttribute("data-ignore-outside-clicks")) || !document.body.contains(target);
15
+ const shouldTrigger = nodes.every((node) => !!node && !node.contains(target));
16
16
  shouldTrigger && !shouldIgnore && handler();
17
- } else if (ref.current && !ref.current.contains(event.target)) {
17
+ } else if (ref.current && !ref.current.contains(target)) {
18
18
  handler();
19
19
  }
20
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-click-outside.js","sources":["../../src/use-click-outside/use-click-outside.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nconst DEFAULT_EVENTS = ['mousedown', 'touchstart'];\n\nexport function useClickOutside<T extends HTMLElement = any>(\n handler: () => void,\n events?: string[] | null,\n nodes?: HTMLElement[]\n) {\n const ref = useRef<T>();\n\n useEffect(() => {\n const listener = (event: any) => {\n if (Array.isArray(nodes)) {\n const shouldIgnore = event?.target?.hasAttribute('data-ignore-outside-clicks');\n const shouldTrigger = nodes.every((node) => !!node && !node.contains(event.target));\n shouldTrigger && !shouldIgnore && handler();\n } else if (ref.current && !ref.current.contains(event.target)) {\n handler();\n }\n };\n\n (events || DEFAULT_EVENTS).forEach((fn) => document.addEventListener(fn, listener));\n\n return () => {\n (events || DEFAULT_EVENTS).forEach((fn) => document.removeEventListener(fn, listener));\n };\n }, [ref, handler, nodes]);\n\n return ref;\n}\n"],"names":["useRef","useEffect"],"mappings":";;;;;;AACA,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAC5C,SAAS,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;AACxD,EAAE,MAAM,GAAG,GAAGA,YAAM,EAAE,CAAC;AACvB,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK;AAChC,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChC,QAAQ,MAAM,YAAY,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAC;AAC3I,QAAQ,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5F,QAAQ,aAAa,IAAI,CAAC,YAAY,IAAI,OAAO,EAAE,CAAC;AACpD,OAAO,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACrE,QAAQ,OAAO,EAAE,CAAC;AAClB,OAAO;AACP,KAAK,CAAC;AACN,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxF,IAAI,OAAO,MAAM;AACjB,MAAM,CAAC,MAAM,IAAI,cAAc,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,mBAAmB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7F,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5B,EAAE,OAAO,GAAG,CAAC;AACb;;;;"}
1
+ {"version":3,"file":"use-click-outside.js","sources":["../../src/use-click-outside/use-click-outside.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nconst DEFAULT_EVENTS = ['mousedown', 'touchstart'];\n\nexport function useClickOutside<T extends HTMLElement = any>(\n handler: () => void,\n events?: string[] | null,\n nodes?: HTMLElement[]\n) {\n const ref = useRef<T>();\n\n useEffect(() => {\n const listener = (event: any) => {\n const { target } = event ?? {};\n if (Array.isArray(nodes)) {\n const shouldIgnore =\n target?.hasAttribute('data-ignore-outside-clicks') || !document.body.contains(target);\n const shouldTrigger = nodes.every((node) => !!node && !node.contains(target));\n shouldTrigger && !shouldIgnore && handler();\n } else if (ref.current && !ref.current.contains(target)) {\n handler();\n }\n };\n\n (events || DEFAULT_EVENTS).forEach((fn) => document.addEventListener(fn, listener));\n\n return () => {\n (events || DEFAULT_EVENTS).forEach((fn) => document.removeEventListener(fn, listener));\n };\n }, [ref, handler, nodes]);\n\n return ref;\n}\n"],"names":["useRef","useEffect"],"mappings":";;;;;;AACA,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAC5C,SAAS,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;AACxD,EAAE,MAAM,GAAG,GAAGA,YAAM,EAAE,CAAC;AACvB,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK;AAChC,MAAM,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;AACpD,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChC,QAAQ,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,4BAA4B,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9I,QAAQ,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACtF,QAAQ,aAAa,IAAI,CAAC,YAAY,IAAI,OAAO,EAAE,CAAC;AACpD,OAAO,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC/D,QAAQ,OAAO,EAAE,CAAC;AAClB,OAAO;AACP,KAAK,CAAC;AACN,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxF,IAAI,OAAO,MAAM;AACjB,MAAM,CAAC,MAAM,IAAI,cAAc,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,mBAAmB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7F,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5B,EAAE,OAAO,GAAG,CAAC;AACb;;;;"}
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ function useDebouncedState(defaultValue, wait, options = { leading: false }) {
8
+ const [value, setValue] = React.useState(defaultValue);
9
+ const timeoutRef = React.useRef(null);
10
+ const leadingRef = React.useRef(true);
11
+ const clearTimeout = () => window.clearTimeout(timeoutRef.current);
12
+ React.useEffect(() => clearTimeout, []);
13
+ const debouncedSetValue = (newValue) => {
14
+ clearTimeout();
15
+ if (leadingRef.current && options.leading) {
16
+ setValue(newValue);
17
+ } else {
18
+ timeoutRef.current = window.setTimeout(() => {
19
+ leadingRef.current = true;
20
+ setValue(newValue);
21
+ }, wait);
22
+ }
23
+ leadingRef.current = false;
24
+ };
25
+ return [value, debouncedSetValue];
26
+ }
27
+
28
+ exports.useDebouncedState = useDebouncedState;
29
+ //# sourceMappingURL=use-debounced-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-debounced-state.js","sources":["../../src/use-debounced-state/use-debounced-state.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nexport function useDebouncedState<T = any>(\n defaultValue: T,\n wait: number,\n options = { leading: false }\n) {\n const [value, setValue] = useState(defaultValue);\n const timeoutRef = useRef<number>(null);\n const leadingRef = useRef(true);\n\n const clearTimeout = () => window.clearTimeout(timeoutRef.current);\n useEffect(() => clearTimeout, []);\n\n const debouncedSetValue = (newValue: T) => {\n clearTimeout();\n if (leadingRef.current && options.leading) {\n setValue(newValue);\n } else {\n timeoutRef.current = window.setTimeout(() => {\n leadingRef.current = true;\n setValue(newValue);\n }, wait);\n }\n leadingRef.current = false;\n };\n\n return [value, debouncedSetValue] as const;\n}\n"],"names":["useState","useRef","useEffect"],"mappings":";;;;;;AACO,SAAS,iBAAiB,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;AACpF,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGA,cAAQ,CAAC,YAAY,CAAC,CAAC;AACnD,EAAE,MAAM,UAAU,GAAGC,YAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,MAAM,UAAU,GAAGA,YAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACrE,EAAEC,eAAS,CAAC,MAAM,YAAY,EAAE,EAAE,CAAC,CAAC;AACpC,EAAE,MAAM,iBAAiB,GAAG,CAAC,QAAQ,KAAK;AAC1C,IAAI,YAAY,EAAE,CAAC;AACnB,IAAI,IAAI,UAAU,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;AAC/C,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzB,KAAK,MAAM;AACX,MAAM,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM;AACnD,QAAQ,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;AAClC,QAAQ,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,OAAO,EAAE,IAAI,CAAC,CAAC;AACf,KAAK;AACL,IAAI,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;AAC/B,GAAG,CAAC;AACJ,EAAE,OAAO,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AACpC;;;;"}
@@ -20,7 +20,7 @@ function useClientId() {
20
20
  }
21
21
  function getReactId() {
22
22
  const id = useReactId();
23
- return id ? `mantine-${id.replaceAll(":", "")}` : "";
23
+ return id ? `mantine-${id.replace(/:/g, "")}` : "";
24
24
  }
25
25
  function useId(staticId) {
26
26
  return typeof staticId === "string" ? staticId : getReactId() || useClientId();
@@ -1 +1 @@
1
- {"version":3,"file":"use-id.js","sources":["../../src/use-id/use-id.ts"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\n\nconst randomId = () => `mantine-${Math.random().toString(36).slice(2, 11)}`;\n\nconst useIsomorphicEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nconst useReactId: () => string | undefined =\n (React as any)['useId'.toString()] || (() => undefined);\n\nfunction useClientId() {\n const [uuid, setUuid] = useState('');\n\n useIsomorphicEffect(() => {\n setUuid(randomId());\n }, []);\n\n return uuid;\n}\n\nfunction getReactId() {\n const id = useReactId();\n return id ? `mantine-${id.replaceAll(':', '')}` : '';\n}\n\nexport function useId(staticId?: string) {\n return typeof staticId === 'string' ? staticId : getReactId() || useClientId();\n}\n"],"names":["useLayoutEffect","useEffect","React","useState"],"mappings":";;;;;;;;;;AACA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E,MAAM,mBAAmB,GAAG,OAAO,QAAQ,KAAK,WAAW,GAAGA,qBAAe,GAAGC,eAAS,CAAC;AAC1F,MAAM,UAAU,GAAGC,cAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC;AAC/D,SAAS,WAAW,GAAG;AACvB,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAGC,cAAQ,CAAC,EAAE,CAAC,CAAC;AACvC,EAAE,mBAAmB,CAAC,MAAM;AAC5B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,GAAG,EAAE,EAAE,CAAC,CAAC;AACT,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD,SAAS,UAAU,GAAG;AACtB,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;AAC1B,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvD,CAAC;AACM,SAAS,KAAK,CAAC,QAAQ,EAAE;AAChC,EAAE,OAAO,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,UAAU,EAAE,IAAI,WAAW,EAAE,CAAC;AACjF;;;;"}
1
+ {"version":3,"file":"use-id.js","sources":["../../src/use-id/use-id.ts"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\n\nconst randomId = () => `mantine-${Math.random().toString(36).slice(2, 11)}`;\n\nconst useIsomorphicEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nconst useReactId: () => string | undefined =\n (React as any)['useId'.toString()] || (() => undefined);\n\nfunction useClientId() {\n const [uuid, setUuid] = useState('');\n\n useIsomorphicEffect(() => {\n setUuid(randomId());\n }, []);\n\n return uuid;\n}\n\nfunction getReactId() {\n const id = useReactId();\n return id ? `mantine-${id.replace(/:/g, '')}` : '';\n}\n\nexport function useId(staticId?: string) {\n return typeof staticId === 'string' ? staticId : getReactId() || useClientId();\n}\n"],"names":["useLayoutEffect","useEffect","React","useState"],"mappings":";;;;;;;;;;AACA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E,MAAM,mBAAmB,GAAG,OAAO,QAAQ,KAAK,WAAW,GAAGA,qBAAe,GAAGC,eAAS,CAAC;AAC1F,MAAM,UAAU,GAAGC,cAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC;AAC/D,SAAS,WAAW,GAAG;AACvB,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAGC,cAAQ,CAAC,EAAE,CAAC,CAAC;AACvC,EAAE,mBAAmB,CAAC,MAAM;AAC5B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,GAAG,EAAE,EAAE,CAAC,CAAC;AACT,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD,SAAS,UAAU,GAAG;AACtB,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;AAC1B,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrD,CAAC;AACM,SAAS,KAAK,CAAC,QAAQ,EAAE;AAChC,EAAE,OAAO,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,UAAU,EAAE,IAAI,WAAW,EAAE,CAAC;AACjF;;;;"}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var useForceUpdate = require('../use-force-update/use-force-update.js');
7
+
8
+ function useTextSelection() {
9
+ const forceUpdate = useForceUpdate.useForceUpdate();
10
+ const [selection, setSelection] = React.useState(null);
11
+ const handleSelectionChange = () => {
12
+ setSelection(document.getSelection());
13
+ forceUpdate();
14
+ };
15
+ React.useEffect(() => {
16
+ setSelection(document.getSelection());
17
+ document.addEventListener("selectionchange", handleSelectionChange);
18
+ return () => document.removeEventListener("selectionchange", handleSelectionChange);
19
+ }, []);
20
+ return selection;
21
+ }
22
+
23
+ exports.useTextSelection = useTextSelection;
24
+ //# sourceMappingURL=use-text-selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-text-selection.js","sources":["../../src/use-text-selection/use-text-selection.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { useForceUpdate } from '../use-force-update/use-force-update';\n\nexport function useTextSelection(): Selection | null {\n const forceUpdate = useForceUpdate();\n const [selection, setSelection] = useState<Selection | null>(null);\n\n const handleSelectionChange = () => {\n setSelection(document.getSelection());\n forceUpdate();\n };\n\n useEffect(() => {\n setSelection(document.getSelection());\n document.addEventListener('selectionchange', handleSelectionChange);\n return () => document.removeEventListener('selectionchange', handleSelectionChange);\n }, []);\n\n return selection;\n}\n"],"names":["useForceUpdate","useState","useEffect"],"mappings":";;;;;;;AAEO,SAAS,gBAAgB,GAAG;AACnC,EAAE,MAAM,WAAW,GAAGA,6BAAc,EAAE,CAAC;AACvC,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGC,cAAQ,CAAC,IAAI,CAAC,CAAC;AACnD,EAAE,MAAM,qBAAqB,GAAG,MAAM;AACtC,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;AAC1C,IAAI,WAAW,EAAE,CAAC;AAClB,GAAG,CAAC;AACJ,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;AAC1C,IAAI,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;AACxE,IAAI,OAAO,MAAM,QAAQ,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;AACxF,GAAG,EAAE,EAAE,CAAC,CAAC;AACT,EAAE,OAAO,SAAS,CAAC;AACnB;;;;"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
 
7
- function useToggle(options) {
7
+ function useToggle(options = [false, true]) {
8
8
  const [state, setState] = React.useState(options[0]);
9
9
  const toggle = (value) => {
10
10
  if (typeof value !== "undefined") {
@@ -1 +1 @@
1
- {"version":3,"file":"use-toggle.js","sources":["../../src/use-toggle/use-toggle.ts"],"sourcesContent":["import { useState } from 'react';\n\nexport function useToggle<T>(options: readonly [T, T]) {\n const [state, setState] = useState(options[0]);\n\n const toggle = (value?: React.SetStateAction<T>) => {\n if (typeof value !== 'undefined') {\n setState(value);\n } else {\n setState((current) => {\n if (current === options[0]) {\n return options[1];\n }\n\n return options[0];\n });\n }\n };\n\n return [state, toggle] as const;\n}\n"],"names":["useState"],"mappings":";;;;;;AACO,SAAS,SAAS,CAAC,OAAO,EAAE;AACnC,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGA,cAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,EAAE,MAAM,MAAM,GAAG,CAAC,KAAK,KAAK;AAC5B,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;AACtC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtB,KAAK,MAAM;AACX,MAAM,QAAQ,CAAC,CAAC,OAAO,KAAK;AAC5B,QAAQ,IAAI,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE;AACpC,UAAU,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,QAAQ,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,OAAO,CAAC,CAAC;AACT,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACzB;;;;"}
1
+ {"version":3,"file":"use-toggle.js","sources":["../../src/use-toggle/use-toggle.ts"],"sourcesContent":["import { useState } from 'react';\n\nexport function useToggle<T = boolean>(options: readonly [T, T] = [false, true] as any) {\n const [state, setState] = useState(options[0]);\n\n const toggle = (value?: React.SetStateAction<T>) => {\n if (typeof value !== 'undefined') {\n setState(value);\n } else {\n setState((current) => {\n if (current === options[0]) {\n return options[1];\n }\n\n return options[0];\n });\n }\n };\n\n return [state, toggle] as const;\n}\n"],"names":["useState"],"mappings":";;;;;;AACO,SAAS,SAAS,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;AACnD,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGA,cAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,EAAE,MAAM,MAAM,GAAG,CAAC,KAAK,KAAK;AAC5B,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;AACtC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtB,KAAK,MAAM;AACX,MAAM,QAAQ,CAAC,CAAC,OAAO,KAAK;AAC5B,QAAQ,IAAI,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE;AACpC,UAAU,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,QAAQ,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,OAAO,CAAC,CAAC;AACT,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACzB;;;;"}
package/esm/index.js CHANGED
@@ -2,6 +2,7 @@ export { useClickOutside } from './use-click-outside/use-click-outside.js';
2
2
  export { useClipboard } from './use-clipboard/use-clipboard.js';
3
3
  export { useColorScheme } from './use-color-scheme/use-color-scheme.js';
4
4
  export { useCounter } from './use-counter/use-counter.js';
5
+ export { useDebouncedState } from './use-debounced-state/use-debounced-state.js';
5
6
  export { useDebouncedValue } from './use-debounced-value/use-debounced-value.js';
6
7
  export { useDocumentTitle } from './use-document-title/use-document-title.js';
7
8
  export { useDocumentVisibility } from './use-document-visibility/use-document-visibility.js';
@@ -47,6 +48,7 @@ export { useDisclosure } from './use-disclosure/use-disclosure.js';
47
48
  export { useFocusWithin } from './use-focus-within/use-focus-within.js';
48
49
  export { useNetwork } from './use-network/use-network.js';
49
50
  export { useTimeout } from './use-timeout/use-timeout.js';
51
+ export { useTextSelection } from './use-text-selection/use-text-selection.js';
50
52
  export { getHotkeyHandler } from './use-hotkeys/parse-hotkey.js';
51
53
  export { assignRef } from './utils/assign-ref/assign-ref.js';
52
54
  export { clamp } from './utils/clamp/clamp.js';
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -5,12 +5,12 @@ function useClickOutside(handler, events, nodes) {
5
5
  const ref = useRef();
6
6
  useEffect(() => {
7
7
  const listener = (event) => {
8
- var _a;
8
+ const { target } = event != null ? event : {};
9
9
  if (Array.isArray(nodes)) {
10
- const shouldIgnore = (_a = event == null ? void 0 : event.target) == null ? void 0 : _a.hasAttribute("data-ignore-outside-clicks");
11
- const shouldTrigger = nodes.every((node) => !!node && !node.contains(event.target));
10
+ const shouldIgnore = (target == null ? void 0 : target.hasAttribute("data-ignore-outside-clicks")) || !document.body.contains(target);
11
+ const shouldTrigger = nodes.every((node) => !!node && !node.contains(target));
12
12
  shouldTrigger && !shouldIgnore && handler();
13
- } else if (ref.current && !ref.current.contains(event.target)) {
13
+ } else if (ref.current && !ref.current.contains(target)) {
14
14
  handler();
15
15
  }
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-click-outside.js","sources":["../../src/use-click-outside/use-click-outside.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nconst DEFAULT_EVENTS = ['mousedown', 'touchstart'];\n\nexport function useClickOutside<T extends HTMLElement = any>(\n handler: () => void,\n events?: string[] | null,\n nodes?: HTMLElement[]\n) {\n const ref = useRef<T>();\n\n useEffect(() => {\n const listener = (event: any) => {\n if (Array.isArray(nodes)) {\n const shouldIgnore = event?.target?.hasAttribute('data-ignore-outside-clicks');\n const shouldTrigger = nodes.every((node) => !!node && !node.contains(event.target));\n shouldTrigger && !shouldIgnore && handler();\n } else if (ref.current && !ref.current.contains(event.target)) {\n handler();\n }\n };\n\n (events || DEFAULT_EVENTS).forEach((fn) => document.addEventListener(fn, listener));\n\n return () => {\n (events || DEFAULT_EVENTS).forEach((fn) => document.removeEventListener(fn, listener));\n };\n }, [ref, handler, nodes]);\n\n return ref;\n}\n"],"names":[],"mappings":";;AACA,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAC5C,SAAS,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;AACxD,EAAE,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;AACvB,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK;AAChC,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChC,QAAQ,MAAM,YAAY,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAC;AAC3I,QAAQ,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5F,QAAQ,aAAa,IAAI,CAAC,YAAY,IAAI,OAAO,EAAE,CAAC;AACpD,OAAO,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACrE,QAAQ,OAAO,EAAE,CAAC;AAClB,OAAO;AACP,KAAK,CAAC;AACN,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxF,IAAI,OAAO,MAAM;AACjB,MAAM,CAAC,MAAM,IAAI,cAAc,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,mBAAmB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7F,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5B,EAAE,OAAO,GAAG,CAAC;AACb;;;;"}
1
+ {"version":3,"file":"use-click-outside.js","sources":["../../src/use-click-outside/use-click-outside.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nconst DEFAULT_EVENTS = ['mousedown', 'touchstart'];\n\nexport function useClickOutside<T extends HTMLElement = any>(\n handler: () => void,\n events?: string[] | null,\n nodes?: HTMLElement[]\n) {\n const ref = useRef<T>();\n\n useEffect(() => {\n const listener = (event: any) => {\n const { target } = event ?? {};\n if (Array.isArray(nodes)) {\n const shouldIgnore =\n target?.hasAttribute('data-ignore-outside-clicks') || !document.body.contains(target);\n const shouldTrigger = nodes.every((node) => !!node && !node.contains(target));\n shouldTrigger && !shouldIgnore && handler();\n } else if (ref.current && !ref.current.contains(target)) {\n handler();\n }\n };\n\n (events || DEFAULT_EVENTS).forEach((fn) => document.addEventListener(fn, listener));\n\n return () => {\n (events || DEFAULT_EVENTS).forEach((fn) => document.removeEventListener(fn, listener));\n };\n }, [ref, handler, nodes]);\n\n return ref;\n}\n"],"names":[],"mappings":";;AACA,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAC5C,SAAS,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;AACxD,EAAE,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;AACvB,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK;AAChC,MAAM,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;AACpD,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChC,QAAQ,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,4BAA4B,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9I,QAAQ,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACtF,QAAQ,aAAa,IAAI,CAAC,YAAY,IAAI,OAAO,EAAE,CAAC;AACpD,OAAO,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC/D,QAAQ,OAAO,EAAE,CAAC;AAClB,OAAO;AACP,KAAK,CAAC;AACN,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxF,IAAI,OAAO,MAAM;AACjB,MAAM,CAAC,MAAM,IAAI,cAAc,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,mBAAmB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7F,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5B,EAAE,OAAO,GAAG,CAAC;AACb;;;;"}
@@ -0,0 +1,25 @@
1
+ import { useState, useRef, useEffect } from 'react';
2
+
3
+ function useDebouncedState(defaultValue, wait, options = { leading: false }) {
4
+ const [value, setValue] = useState(defaultValue);
5
+ const timeoutRef = useRef(null);
6
+ const leadingRef = useRef(true);
7
+ const clearTimeout = () => window.clearTimeout(timeoutRef.current);
8
+ useEffect(() => clearTimeout, []);
9
+ const debouncedSetValue = (newValue) => {
10
+ clearTimeout();
11
+ if (leadingRef.current && options.leading) {
12
+ setValue(newValue);
13
+ } else {
14
+ timeoutRef.current = window.setTimeout(() => {
15
+ leadingRef.current = true;
16
+ setValue(newValue);
17
+ }, wait);
18
+ }
19
+ leadingRef.current = false;
20
+ };
21
+ return [value, debouncedSetValue];
22
+ }
23
+
24
+ export { useDebouncedState };
25
+ //# sourceMappingURL=use-debounced-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-debounced-state.js","sources":["../../src/use-debounced-state/use-debounced-state.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nexport function useDebouncedState<T = any>(\n defaultValue: T,\n wait: number,\n options = { leading: false }\n) {\n const [value, setValue] = useState(defaultValue);\n const timeoutRef = useRef<number>(null);\n const leadingRef = useRef(true);\n\n const clearTimeout = () => window.clearTimeout(timeoutRef.current);\n useEffect(() => clearTimeout, []);\n\n const debouncedSetValue = (newValue: T) => {\n clearTimeout();\n if (leadingRef.current && options.leading) {\n setValue(newValue);\n } else {\n timeoutRef.current = window.setTimeout(() => {\n leadingRef.current = true;\n setValue(newValue);\n }, wait);\n }\n leadingRef.current = false;\n };\n\n return [value, debouncedSetValue] as const;\n}\n"],"names":[],"mappings":";;AACO,SAAS,iBAAiB,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;AACpF,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AACnD,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACrE,EAAE,SAAS,CAAC,MAAM,YAAY,EAAE,EAAE,CAAC,CAAC;AACpC,EAAE,MAAM,iBAAiB,GAAG,CAAC,QAAQ,KAAK;AAC1C,IAAI,YAAY,EAAE,CAAC;AACnB,IAAI,IAAI,UAAU,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;AAC/C,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzB,KAAK,MAAM;AACX,MAAM,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM;AACnD,QAAQ,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;AAClC,QAAQ,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,OAAO,EAAE,IAAI,CAAC,CAAC;AACf,KAAK;AACL,IAAI,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;AAC/B,GAAG,CAAC;AACJ,EAAE,OAAO,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AACpC;;;;"}
@@ -12,7 +12,7 @@ function useClientId() {
12
12
  }
13
13
  function getReactId() {
14
14
  const id = useReactId();
15
- return id ? `mantine-${id.replaceAll(":", "")}` : "";
15
+ return id ? `mantine-${id.replace(/:/g, "")}` : "";
16
16
  }
17
17
  function useId(staticId) {
18
18
  return typeof staticId === "string" ? staticId : getReactId() || useClientId();
@@ -1 +1 @@
1
- {"version":3,"file":"use-id.js","sources":["../../src/use-id/use-id.ts"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\n\nconst randomId = () => `mantine-${Math.random().toString(36).slice(2, 11)}`;\n\nconst useIsomorphicEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nconst useReactId: () => string | undefined =\n (React as any)['useId'.toString()] || (() => undefined);\n\nfunction useClientId() {\n const [uuid, setUuid] = useState('');\n\n useIsomorphicEffect(() => {\n setUuid(randomId());\n }, []);\n\n return uuid;\n}\n\nfunction getReactId() {\n const id = useReactId();\n return id ? `mantine-${id.replaceAll(':', '')}` : '';\n}\n\nexport function useId(staticId?: string) {\n return typeof staticId === 'string' ? staticId : getReactId() || useClientId();\n}\n"],"names":[],"mappings":";;AACA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E,MAAM,mBAAmB,GAAG,OAAO,QAAQ,KAAK,WAAW,GAAG,eAAe,GAAG,SAAS,CAAC;AAC1F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC;AAC/D,SAAS,WAAW,GAAG;AACvB,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvC,EAAE,mBAAmB,CAAC,MAAM;AAC5B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,GAAG,EAAE,EAAE,CAAC,CAAC;AACT,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD,SAAS,UAAU,GAAG;AACtB,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;AAC1B,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvD,CAAC;AACM,SAAS,KAAK,CAAC,QAAQ,EAAE;AAChC,EAAE,OAAO,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,UAAU,EAAE,IAAI,WAAW,EAAE,CAAC;AACjF;;;;"}
1
+ {"version":3,"file":"use-id.js","sources":["../../src/use-id/use-id.ts"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\n\nconst randomId = () => `mantine-${Math.random().toString(36).slice(2, 11)}`;\n\nconst useIsomorphicEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nconst useReactId: () => string | undefined =\n (React as any)['useId'.toString()] || (() => undefined);\n\nfunction useClientId() {\n const [uuid, setUuid] = useState('');\n\n useIsomorphicEffect(() => {\n setUuid(randomId());\n }, []);\n\n return uuid;\n}\n\nfunction getReactId() {\n const id = useReactId();\n return id ? `mantine-${id.replace(/:/g, '')}` : '';\n}\n\nexport function useId(staticId?: string) {\n return typeof staticId === 'string' ? staticId : getReactId() || useClientId();\n}\n"],"names":[],"mappings":";;AACA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E,MAAM,mBAAmB,GAAG,OAAO,QAAQ,KAAK,WAAW,GAAG,eAAe,GAAG,SAAS,CAAC;AAC1F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC;AAC/D,SAAS,WAAW,GAAG;AACvB,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvC,EAAE,mBAAmB,CAAC,MAAM;AAC5B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxB,GAAG,EAAE,EAAE,CAAC,CAAC;AACT,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD,SAAS,UAAU,GAAG;AACtB,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;AAC1B,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrD,CAAC;AACM,SAAS,KAAK,CAAC,QAAQ,EAAE;AAChC,EAAE,OAAO,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,UAAU,EAAE,IAAI,WAAW,EAAE,CAAC;AACjF;;;;"}
@@ -0,0 +1,20 @@
1
+ import { useState, useEffect } from 'react';
2
+ import { useForceUpdate } from '../use-force-update/use-force-update.js';
3
+
4
+ function useTextSelection() {
5
+ const forceUpdate = useForceUpdate();
6
+ const [selection, setSelection] = useState(null);
7
+ const handleSelectionChange = () => {
8
+ setSelection(document.getSelection());
9
+ forceUpdate();
10
+ };
11
+ useEffect(() => {
12
+ setSelection(document.getSelection());
13
+ document.addEventListener("selectionchange", handleSelectionChange);
14
+ return () => document.removeEventListener("selectionchange", handleSelectionChange);
15
+ }, []);
16
+ return selection;
17
+ }
18
+
19
+ export { useTextSelection };
20
+ //# sourceMappingURL=use-text-selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-text-selection.js","sources":["../../src/use-text-selection/use-text-selection.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { useForceUpdate } from '../use-force-update/use-force-update';\n\nexport function useTextSelection(): Selection | null {\n const forceUpdate = useForceUpdate();\n const [selection, setSelection] = useState<Selection | null>(null);\n\n const handleSelectionChange = () => {\n setSelection(document.getSelection());\n forceUpdate();\n };\n\n useEffect(() => {\n setSelection(document.getSelection());\n document.addEventListener('selectionchange', handleSelectionChange);\n return () => document.removeEventListener('selectionchange', handleSelectionChange);\n }, []);\n\n return selection;\n}\n"],"names":[],"mappings":";;;AAEO,SAAS,gBAAgB,GAAG;AACnC,EAAE,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;AACvC,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnD,EAAE,MAAM,qBAAqB,GAAG,MAAM;AACtC,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;AAC1C,IAAI,WAAW,EAAE,CAAC;AAClB,GAAG,CAAC;AACJ,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;AAC1C,IAAI,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;AACxE,IAAI,OAAO,MAAM,QAAQ,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;AACxF,GAAG,EAAE,EAAE,CAAC,CAAC;AACT,EAAE,OAAO,SAAS,CAAC;AACnB;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { useState } from 'react';
2
2
 
3
- function useToggle(options) {
3
+ function useToggle(options = [false, true]) {
4
4
  const [state, setState] = useState(options[0]);
5
5
  const toggle = (value) => {
6
6
  if (typeof value !== "undefined") {
@@ -1 +1 @@
1
- {"version":3,"file":"use-toggle.js","sources":["../../src/use-toggle/use-toggle.ts"],"sourcesContent":["import { useState } from 'react';\n\nexport function useToggle<T>(options: readonly [T, T]) {\n const [state, setState] = useState(options[0]);\n\n const toggle = (value?: React.SetStateAction<T>) => {\n if (typeof value !== 'undefined') {\n setState(value);\n } else {\n setState((current) => {\n if (current === options[0]) {\n return options[1];\n }\n\n return options[0];\n });\n }\n };\n\n return [state, toggle] as const;\n}\n"],"names":[],"mappings":";;AACO,SAAS,SAAS,CAAC,OAAO,EAAE;AACnC,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,EAAE,MAAM,MAAM,GAAG,CAAC,KAAK,KAAK;AAC5B,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;AACtC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtB,KAAK,MAAM;AACX,MAAM,QAAQ,CAAC,CAAC,OAAO,KAAK;AAC5B,QAAQ,IAAI,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE;AACpC,UAAU,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,QAAQ,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,OAAO,CAAC,CAAC;AACT,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACzB;;;;"}
1
+ {"version":3,"file":"use-toggle.js","sources":["../../src/use-toggle/use-toggle.ts"],"sourcesContent":["import { useState } from 'react';\n\nexport function useToggle<T = boolean>(options: readonly [T, T] = [false, true] as any) {\n const [state, setState] = useState(options[0]);\n\n const toggle = (value?: React.SetStateAction<T>) => {\n if (typeof value !== 'undefined') {\n setState(value);\n } else {\n setState((current) => {\n if (current === options[0]) {\n return options[1];\n }\n\n return options[0];\n });\n }\n };\n\n return [state, toggle] as const;\n}\n"],"names":[],"mappings":";;AACO,SAAS,SAAS,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;AACnD,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,EAAE,MAAM,MAAM,GAAG,CAAC,KAAK,KAAK;AAC5B,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;AACtC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtB,KAAK,MAAM;AACX,MAAM,QAAQ,CAAC,CAAC,OAAO,KAAK;AAC5B,QAAQ,IAAI,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE;AACpC,UAAU,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,QAAQ,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,OAAO,CAAC,CAAC;AACT,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACzB;;;;"}
package/lib/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export { useClickOutside } from './use-click-outside/use-click-outside';
3
3
  export { useClipboard } from './use-clipboard/use-clipboard';
4
4
  export { useColorScheme } from './use-color-scheme/use-color-scheme';
5
5
  export { useCounter } from './use-counter/use-counter';
6
+ export { useDebouncedState } from './use-debounced-state/use-debounced-state';
6
7
  export { useDebouncedValue } from './use-debounced-value/use-debounced-value';
7
8
  export { useDocumentTitle } from './use-document-title/use-document-title';
8
9
  export { useDocumentVisibility } from './use-document-visibility/use-document-visibility';
@@ -48,6 +49,7 @@ export { useDisclosure } from './use-disclosure/use-disclosure';
48
49
  export { useFocusWithin } from './use-focus-within/use-focus-within';
49
50
  export { useNetwork } from './use-network/use-network';
50
51
  export { useTimeout } from './use-timeout/use-timeout';
52
+ export { useTextSelection } from './use-text-selection/use-text-selection';
51
53
  export type { UseMovePosition } from './use-move/use-move';
52
54
  export type { OS } from './use-os/use-os';
53
55
  export type { HotkeyItem } from './use-hotkeys/use-hotkeys';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE3E,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAC1C,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,YAAY,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-click-outside.d.ts","sourceRoot":"","sources":["../../src/use-click-outside/use-click-outside.ts"],"names":[],"mappings":";AAIA,wBAAgB,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,EACzD,OAAO,EAAE,MAAM,IAAI,EACnB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EACxB,KAAK,CAAC,EAAE,WAAW,EAAE,uCAuBtB"}
1
+ {"version":3,"file":"use-click-outside.d.ts","sourceRoot":"","sources":["../../src/use-click-outside/use-click-outside.ts"],"names":[],"mappings":";AAIA,wBAAgB,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,EACzD,OAAO,EAAE,MAAM,IAAI,EACnB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EACxB,KAAK,CAAC,EAAE,WAAW,EAAE,uCAyBtB"}
@@ -0,0 +1,4 @@
1
+ export declare function useDebouncedState<T = any>(defaultValue: T, wait: number, options?: {
2
+ leading: boolean;
3
+ }): readonly [T, (newValue: T) => void];
4
+ //# sourceMappingURL=use-debounced-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-debounced-state.d.ts","sourceRoot":"","sources":["../../src/use-debounced-state/use-debounced-state.ts"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,GAAG,EACvC,YAAY,EAAE,CAAC,EACf,IAAI,EAAE,MAAM,EACZ,OAAO;;CAAqB,2BASS,CAAC,WAcvC"}
@@ -0,0 +1,2 @@
1
+ export declare function useTextSelection(): Selection | null;
2
+ //# sourceMappingURL=use-text-selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-text-selection.d.ts","sourceRoot":"","sources":["../../src/use-text-selection/use-text-selection.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,IAAI,SAAS,GAAG,IAAI,CAgBnD"}
@@ -1,2 +1,2 @@
1
- export declare function useToggle<T>(options: readonly [T, T]): readonly [T, (value?: React.SetStateAction<T>) => void];
1
+ export declare function useToggle<T = boolean>(options?: readonly [T, T]): readonly [T, (value?: React.SetStateAction<T>) => void];
2
2
  //# sourceMappingURL=use-toggle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-toggle.d.ts","sourceRoot":"","sources":["../../src/use-toggle/use-toggle.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,yBAG3B,MAAM,cAAc,CAAC,CAAC,CAAC,WAehD"}
1
+ {"version":3,"file":"use-toggle.d.ts","sourceRoot":"","sources":["../../src/use-toggle/use-toggle.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,GAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAwB,yBAG5D,MAAM,cAAc,CAAC,CAAC,CAAC,WAehD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mantine/hooks",
3
- "version": "5.0.2",
3
+ "version": "5.1.1",
4
4
  "main": "cjs/index.js",
5
5
  "module": "esm/index.js",
6
6
  "types": "lib/index.d.ts",