@mantine/hooks 5.0.0-alpha.2 → 5.0.0-alpha.20

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 (125) hide show
  1. package/README.md +1 -1
  2. package/cjs/index.js +2 -3
  3. package/cjs/index.js.map +1 -1
  4. package/cjs/use-click-outside/use-click-outside.js +3 -3
  5. package/cjs/use-clipboard/use-clipboard.js +4 -4
  6. package/cjs/use-counter/use-counter.js +6 -14
  7. package/cjs/use-counter/use-counter.js.map +1 -1
  8. package/cjs/use-debounced-value/use-debounced-value.js +7 -7
  9. package/cjs/use-did-update/use-did-update.js +3 -3
  10. package/cjs/use-disclosure/use-disclosure.js +2 -2
  11. package/cjs/use-document-visibility/use-document-visibility.js +3 -3
  12. package/cjs/use-event-listener/use-event-listener.js +3 -3
  13. package/cjs/use-focus-return/use-focus-return.js +5 -9
  14. package/cjs/use-focus-return/use-focus-return.js.map +1 -1
  15. package/cjs/use-focus-trap/tabbable.js +4 -0
  16. package/cjs/use-focus-trap/tabbable.js.map +1 -1
  17. package/cjs/use-focus-trap/use-focus-trap.js +5 -5
  18. package/cjs/use-focus-within/use-focus-within.js +5 -5
  19. package/cjs/use-force-update/use-force-update.js +2 -2
  20. package/cjs/use-fullscreen/use-fullscreen.js +8 -8
  21. package/cjs/use-hash/use-hash.js +2 -2
  22. package/cjs/use-hotkeys/use-hotkeys.js +2 -2
  23. package/cjs/use-hover/use-hover.js +6 -6
  24. package/cjs/use-id/use-id.js +21 -5
  25. package/cjs/use-id/use-id.js.map +1 -1
  26. package/cjs/use-idle/use-idle.js +4 -4
  27. package/cjs/use-input-state/use-input-state.js +2 -2
  28. package/cjs/use-intersection/use-intersection.js +5 -5
  29. package/cjs/use-intersection/use-intersection.js.map +1 -1
  30. package/cjs/use-interval/use-interval.js +13 -7
  31. package/cjs/use-interval/use-interval.js.map +1 -1
  32. package/cjs/use-isomorphic-effect/use-isomorphic-effect.js +2 -2
  33. package/cjs/use-list-state/use-list-state.js +7 -3
  34. package/cjs/use-list-state/use-list-state.js.map +1 -1
  35. package/cjs/use-local-storage/use-local-storage.js +5 -5
  36. package/cjs/use-logger/use-logger.js +2 -2
  37. package/cjs/use-media-query/use-media-query.js +4 -4
  38. package/cjs/use-merged-ref/use-merged-ref.js +2 -2
  39. package/cjs/use-mouse/use-mouse.js +4 -4
  40. package/cjs/use-move/use-move.js +13 -13
  41. package/cjs/use-move/use-move.js.map +1 -1
  42. package/cjs/use-network/use-network.js +4 -4
  43. package/cjs/use-page-leave/use-page-leave.js +2 -2
  44. package/cjs/use-pagination/use-pagination.js +3 -4
  45. package/cjs/use-pagination/use-pagination.js.map +1 -1
  46. package/cjs/use-queue/use-queue.js +2 -2
  47. package/cjs/use-resize-observer/use-resize-observer.js +6 -6
  48. package/cjs/use-scroll-into-view/use-scroll-into-view.js +8 -8
  49. package/cjs/use-scroll-lock/use-scroll-lock.js +7 -7
  50. package/cjs/use-set-state/use-set-state.js +2 -2
  51. package/cjs/use-shallow-effect/use-shallow-effect.js +4 -4
  52. package/cjs/use-timeout/use-timeout.js +33 -0
  53. package/cjs/use-timeout/use-timeout.js.map +1 -0
  54. package/cjs/use-toggle/use-toggle.js +3 -7
  55. package/cjs/use-toggle/use-toggle.js.map +1 -1
  56. package/cjs/use-uncontrolled/use-uncontrolled.js +8 -26
  57. package/cjs/use-uncontrolled/use-uncontrolled.js.map +1 -1
  58. package/cjs/use-validated-state/use-validated-state.js +5 -5
  59. package/cjs/use-validated-state/use-validated-state.js.map +1 -1
  60. package/cjs/use-viewport-size/use-viewport-size.js +3 -3
  61. package/cjs/use-window-event/use-window-event.js +2 -2
  62. package/cjs/use-window-scroll/use-window-scroll.js +2 -2
  63. package/cjs/utils/clamp/clamp.js +1 -1
  64. package/cjs/utils/clamp/clamp.js.map +1 -1
  65. package/esm/index.js +2 -2
  66. package/esm/use-counter/use-counter.js +5 -13
  67. package/esm/use-counter/use-counter.js.map +1 -1
  68. package/esm/use-focus-return/use-focus-return.js +3 -7
  69. package/esm/use-focus-return/use-focus-return.js.map +1 -1
  70. package/esm/use-focus-trap/tabbable.js +4 -0
  71. package/esm/use-focus-trap/tabbable.js.map +1 -1
  72. package/esm/use-id/use-id.js +17 -5
  73. package/esm/use-id/use-id.js.map +1 -1
  74. package/esm/use-intersection/use-intersection.js +1 -1
  75. package/esm/use-intersection/use-intersection.js.map +1 -1
  76. package/esm/use-interval/use-interval.js +11 -5
  77. package/esm/use-interval/use-interval.js.map +1 -1
  78. package/esm/use-list-state/use-list-state.js +5 -1
  79. package/esm/use-list-state/use-list-state.js.map +1 -1
  80. package/esm/use-move/use-move.js +5 -5
  81. package/esm/use-move/use-move.js.map +1 -1
  82. package/esm/use-pagination/use-pagination.js +1 -2
  83. package/esm/use-pagination/use-pagination.js.map +1 -1
  84. package/esm/use-timeout/use-timeout.js +29 -0
  85. package/esm/use-timeout/use-timeout.js.map +1 -0
  86. package/esm/use-toggle/use-toggle.js +3 -6
  87. package/esm/use-toggle/use-toggle.js.map +1 -1
  88. package/esm/use-uncontrolled/use-uncontrolled.js +8 -26
  89. package/esm/use-uncontrolled/use-uncontrolled.js.map +1 -1
  90. package/esm/use-validated-state/use-validated-state.js +2 -2
  91. package/esm/use-validated-state/use-validated-state.js.map +1 -1
  92. package/esm/utils/clamp/clamp.js +1 -1
  93. package/esm/utils/clamp/clamp.js.map +1 -1
  94. package/lib/index.d.ts +3 -2
  95. package/lib/index.d.ts.map +1 -1
  96. package/lib/use-counter/use-counter.d.ts +2 -2
  97. package/lib/use-counter/use-counter.d.ts.map +1 -1
  98. package/lib/use-focus-return/use-focus-return.d.ts +1 -2
  99. package/lib/use-focus-return/use-focus-return.d.ts.map +1 -1
  100. package/lib/use-focus-trap/tabbable.d.ts.map +1 -1
  101. package/lib/use-id/use-id.d.ts +1 -1
  102. package/lib/use-id/use-id.d.ts.map +1 -1
  103. package/lib/use-intersection/use-intersection.d.ts +4 -1
  104. package/lib/use-intersection/use-intersection.d.ts.map +1 -1
  105. package/lib/use-interval/use-interval.d.ts.map +1 -1
  106. package/lib/use-list-state/use-list-state.d.ts +3 -2
  107. package/lib/use-list-state/use-list-state.d.ts.map +1 -1
  108. package/lib/use-pagination/use-pagination.d.ts.map +1 -1
  109. package/lib/use-timeout/use-timeout.d.ts +7 -0
  110. package/lib/use-timeout/use-timeout.d.ts.map +1 -0
  111. package/lib/use-toggle/use-toggle.d.ts +1 -2
  112. package/lib/use-toggle/use-toggle.d.ts.map +1 -1
  113. package/lib/use-uncontrolled/use-uncontrolled.d.ts +11 -9
  114. package/lib/use-uncontrolled/use-uncontrolled.d.ts.map +1 -1
  115. package/lib/use-validated-state/use-validated-state.d.ts +1 -1
  116. package/lib/use-validated-state/use-validated-state.d.ts.map +1 -1
  117. package/lib/utils/clamp/clamp.d.ts +1 -7
  118. package/lib/utils/clamp/clamp.d.ts.map +1 -1
  119. package/package.json +1 -1
  120. package/cjs/use-uuid/use-uuid.js +0 -18
  121. package/cjs/use-uuid/use-uuid.js.map +0 -1
  122. package/esm/use-uuid/use-uuid.js +0 -14
  123. package/esm/use-uuid/use-uuid.js.map +0 -1
  124. package/lib/use-uuid/use-uuid.d.ts +0 -2
  125. package/lib/use-uuid/use-uuid.d.ts.map +0 -1
package/README.md CHANGED
@@ -6,7 +6,7 @@ A set of react hooks for state and UI management
6
6
 
7
7
  ## Installation
8
8
 
9
- ```sh
9
+ ```bash
10
10
  # With yarn
11
11
  yarn add @mantine/hooks
12
12
 
package/cjs/index.js CHANGED
@@ -42,7 +42,6 @@ var useHotkeys = require('./use-hotkeys/use-hotkeys.js');
42
42
  var useFullscreen = require('./use-fullscreen/use-fullscreen.js');
43
43
  var useLogger = require('./use-logger/use-logger.js');
44
44
  var useHover = require('./use-hover/use-hover.js');
45
- var useUuid = require('./use-uuid/use-uuid.js');
46
45
  var useValidatedState = require('./use-validated-state/use-validated-state.js');
47
46
  var useOs = require('./use-os/use-os.js');
48
47
  var useSetState = require('./use-set-state/use-set-state.js');
@@ -51,6 +50,7 @@ var useEventListener = require('./use-event-listener/use-event-listener.js');
51
50
  var useDisclosure = require('./use-disclosure/use-disclosure.js');
52
51
  var useFocusWithin = require('./use-focus-within/use-focus-within.js');
53
52
  var useNetwork = require('./use-network/use-network.js');
53
+ var useTimeout = require('./use-timeout/use-timeout.js');
54
54
  var parseHotkey = require('./use-hotkeys/parse-hotkey.js');
55
55
  var assignRef = require('./utils/assign-ref/assign-ref.js');
56
56
  var clamp = require('./utils/clamp/clamp.js');
@@ -94,7 +94,6 @@ exports.useElementSize = useResizeObserver.useElementSize;
94
94
  exports.useResizeObserver = useResizeObserver.useResizeObserver;
95
95
  exports.useScrollLock = useScrollLock.useScrollLock;
96
96
  exports.useShallowEffect = useShallowEffect.useShallowEffect;
97
- exports.useBooleanToggle = useToggle.useBooleanToggle;
98
97
  exports.useToggle = useToggle.useToggle;
99
98
  exports.useUncontrolled = useUncontrolled.useUncontrolled;
100
99
  exports.useViewportSize = useViewportSize.useViewportSize;
@@ -106,7 +105,6 @@ exports.useHotkeys = useHotkeys.useHotkeys;
106
105
  exports.useFullscreen = useFullscreen.useFullscreen;
107
106
  exports.useLogger = useLogger.useLogger;
108
107
  exports.useHover = useHover.useHover;
109
- exports.useUuid = useUuid.useUuid;
110
108
  exports.useValidatedState = useValidatedState.useValidatedState;
111
109
  exports.useOs = useOs.useOs;
112
110
  exports.useSetState = useSetState.useSetState;
@@ -115,6 +113,7 @@ exports.useEventListener = useEventListener.useEventListener;
115
113
  exports.useDisclosure = useDisclosure.useDisclosure;
116
114
  exports.useFocusWithin = useFocusWithin.useFocusWithin;
117
115
  exports.useNetwork = useNetwork.useNetwork;
116
+ exports.useTimeout = useTimeout.useTimeout;
118
117
  exports.getHotkeyHandler = parseHotkey.getHotkeyHandler;
119
118
  exports.assignRef = assignRef.assignRef;
120
119
  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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,12 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
 
7
7
  const DEFAULT_EVENTS = ["mousedown", "touchstart"];
8
8
  function useClickOutside(handler, events, nodes) {
9
- const ref = react.useRef();
10
- react.useEffect(() => {
9
+ const ref = React.useRef();
10
+ React.useEffect(() => {
11
11
  const listener = (event) => {
12
12
  var _a;
13
13
  if (Array.isArray(nodes)) {
@@ -2,12 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
 
7
7
  function useClipboard({ timeout = 2e3 } = {}) {
8
- const [error, setError] = react.useState(null);
9
- const [copied, setCopied] = react.useState(false);
10
- const [copyTimeout, setCopyTimeout] = react.useState(null);
8
+ const [error, setError] = React.useState(null);
9
+ const [copied, setCopied] = React.useState(false);
10
+ const [copyTimeout, setCopyTimeout] = React.useState(null);
11
11
  const handleCopyResult = (value) => {
12
12
  clearTimeout(copyTimeout);
13
13
  setCopyTimeout(setTimeout(() => setCopied(false), timeout));
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
  var clamp = require('../utils/clamp/clamp.js');
7
7
 
8
8
  var __defProp = Object.defineProperty;
@@ -27,19 +27,11 @@ const DEFAULT_OPTIONS = {
27
27
  };
28
28
  function useCounter(initialValue = 0, options) {
29
29
  const { min, max } = __spreadValues(__spreadValues({}, DEFAULT_OPTIONS), options);
30
- const [count, setCount] = react.useState(clamp.clamp({ value: initialValue, min, max }));
31
- const increment = (delta = 1) => {
32
- setCount((current) => clamp.clamp({ value: current + delta, min, max }));
33
- };
34
- const decrement = (delta = 1) => {
35
- setCount((current) => clamp.clamp({ value: current - delta, min, max }));
36
- };
37
- const set = (value) => {
38
- setCount(clamp.clamp({ value, min, max }));
39
- };
40
- const reset = () => {
41
- setCount(clamp.clamp({ value: initialValue, min, max }));
42
- };
30
+ const [count, setCount] = React.useState(clamp.clamp(initialValue, min, max));
31
+ const increment = () => setCount((current) => clamp.clamp(current + 1, min, max));
32
+ const decrement = () => setCount((current) => clamp.clamp(current - 1, min, max));
33
+ const set = (value) => setCount(clamp.clamp(value, min, max));
34
+ const reset = () => setCount(clamp.clamp(initialValue, min, max));
43
35
  return [count, { increment, decrement, set, reset }];
44
36
  }
45
37
 
@@ -1 +1 @@
1
- {"version":3,"file":"use-counter.js","sources":["../../src/use-counter/use-counter.ts"],"sourcesContent":["import { useState } from 'react';\nimport { clamp } from '../utils';\n\nconst DEFAULT_OPTIONS = {\n min: -Infinity,\n max: Infinity,\n};\n\nexport function useCounter(initialValue = 0, options?: Partial<{ min: number; max: number }>) {\n const { min, max } = { ...DEFAULT_OPTIONS, ...options };\n const [count, setCount] = useState<number>(clamp({ value: initialValue, min, max }));\n\n const increment = (delta = 1) => {\n setCount((current) => clamp({ value: current + delta, min, max }));\n };\n\n const decrement = (delta = 1) => {\n setCount((current) => clamp({ value: current - delta, min, max }));\n };\n\n const set = (value: number) => {\n setCount(clamp({ value, min, max }));\n };\n\n const reset = () => {\n setCount(clamp({ value: initialValue, min, max }));\n };\n\n return [count, { increment, decrement, set, reset }] as const;\n}\n"],"names":["useState","clamp"],"mappings":";;;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAGF,MAAM,eAAe,GAAG;AACxB,EAAE,GAAG,EAAE,CAAC,QAAQ;AAChB,EAAE,GAAG,EAAE,QAAQ;AACf,CAAC,CAAC;AACK,SAAS,UAAU,CAAC,YAAY,GAAG,CAAC,EAAE,OAAO,EAAE;AACtD,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,CAAC,CAAC;AACpF,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGA,cAAQ,CAACC,WAAK,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/E,EAAE,MAAM,SAAS,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK;AACnC,IAAI,QAAQ,CAAC,CAAC,OAAO,KAAKA,WAAK,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvE,GAAG,CAAC;AACJ,EAAE,MAAM,SAAS,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK;AACnC,IAAI,QAAQ,CAAC,CAAC,OAAO,KAAKA,WAAK,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvE,GAAG,CAAC;AACJ,EAAE,MAAM,GAAG,GAAG,CAAC,KAAK,KAAK;AACzB,IAAI,QAAQ,CAACA,WAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACzC,GAAG,CAAC;AACJ,EAAE,MAAM,KAAK,GAAG,MAAM;AACtB,IAAI,QAAQ,CAACA,WAAK,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvD,GAAG,CAAC;AACJ,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AACvD;;;;"}
1
+ {"version":3,"file":"use-counter.js","sources":["../../src/use-counter/use-counter.ts"],"sourcesContent":["import { useState } from 'react';\nimport { clamp } from '../utils';\n\nconst DEFAULT_OPTIONS = {\n min: -Infinity,\n max: Infinity,\n};\n\nexport function useCounter(initialValue = 0, options?: Partial<{ min: number; max: number }>) {\n const { min, max } = { ...DEFAULT_OPTIONS, ...options };\n const [count, setCount] = useState<number>(clamp(initialValue, min, max));\n\n const increment = () => setCount((current) => clamp(current + 1, min, max));\n const decrement = () => setCount((current) => clamp(current - 1, min, max));\n const set = (value: number) => setCount(clamp(value, min, max));\n const reset = () => setCount(clamp(initialValue, min, max));\n\n return [count, { increment, decrement, set, reset }] as const;\n}\n"],"names":["useState","clamp"],"mappings":";;;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAGF,MAAM,eAAe,GAAG;AACxB,EAAE,GAAG,EAAE,CAAC,QAAQ;AAChB,EAAE,GAAG,EAAE,QAAQ;AACf,CAAC,CAAC;AACK,SAAS,UAAU,CAAC,YAAY,GAAG,CAAC,EAAE,OAAO,EAAE;AACtD,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,CAAC,CAAC;AACpF,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGA,cAAQ,CAACC,WAAK,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACpE,EAAE,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,CAAC,OAAO,KAAKA,WAAK,CAAC,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9E,EAAE,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,CAAC,OAAO,KAAKA,WAAK,CAAC,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9E,EAAE,MAAM,GAAG,GAAG,CAAC,KAAK,KAAK,QAAQ,CAACA,WAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1D,EAAE,MAAM,KAAK,GAAG,MAAM,QAAQ,CAACA,WAAK,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9D,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AACvD;;;;"}
@@ -2,15 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
 
7
7
  function useDebouncedValue(value, wait, options = { leading: false }) {
8
- const [_value, setValue] = react.useState(value);
9
- const mountedRef = react.useRef(false);
10
- const timeoutRef = react.useRef(null);
11
- const cooldownRef = react.useRef(false);
8
+ const [_value, setValue] = React.useState(value);
9
+ const mountedRef = React.useRef(false);
10
+ const timeoutRef = React.useRef(null);
11
+ const cooldownRef = React.useRef(false);
12
12
  const cancel = () => window.clearTimeout(timeoutRef.current);
13
- react.useEffect(() => {
13
+ React.useEffect(() => {
14
14
  if (mountedRef.current) {
15
15
  if (!cooldownRef.current && options.leading) {
16
16
  cooldownRef.current = true;
@@ -24,7 +24,7 @@ function useDebouncedValue(value, wait, options = { leading: false }) {
24
24
  }
25
25
  }
26
26
  }, [value, options.leading]);
27
- react.useEffect(() => {
27
+ React.useEffect(() => {
28
28
  mountedRef.current = true;
29
29
  return cancel;
30
30
  }, []);
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
 
7
7
  function useDidUpdate(fn, dependencies) {
8
- const mounted = react.useRef(false);
9
- react.useEffect(() => {
8
+ const mounted = React.useRef(false);
9
+ React.useEffect(() => {
10
10
  if (mounted.current) {
11
11
  fn();
12
12
  } else {
@@ -2,10 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
 
7
7
  function useDisclosure(initialState, callbacks) {
8
- const [opened, setOpened] = react.useState(initialState);
8
+ const [opened, setOpened] = React.useState(initialState);
9
9
  const open = () => {
10
10
  var _a;
11
11
  if (!opened) {
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
 
7
7
  const getVisibility = () => {
8
8
  if (typeof document === "undefined")
@@ -10,8 +10,8 @@ const getVisibility = () => {
10
10
  return document.visibilityState;
11
11
  };
12
12
  function useDocumentVisibility() {
13
- const [documentVisibility, setDocumentVisibility] = react.useState(getVisibility());
14
- react.useEffect(() => {
13
+ const [documentVisibility, setDocumentVisibility] = React.useState(getVisibility());
14
+ React.useEffect(() => {
15
15
  const listener = () => setDocumentVisibility(getVisibility());
16
16
  document.addEventListener("visibilitychange", listener);
17
17
  return () => document.removeEventListener("visibilitychange", listener);
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
 
7
7
  function useEventListener(type, listener, options) {
8
- const ref = react.useRef();
9
- react.useEffect(() => {
8
+ const ref = React.useRef();
9
+ React.useEffect(() => {
10
10
  if (ref.current) {
11
11
  ref.current.addEventListener(type, listener, options);
12
12
  return () => {
@@ -2,15 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
  var useDidUpdate = require('../use-did-update/use-did-update.js');
7
7
 
8
- function useFocusReturn({
9
- opened,
10
- transitionDuration,
11
- shouldReturnFocus = true
12
- }) {
13
- const lastActiveElement = react.useRef();
8
+ function useFocusReturn({ opened, shouldReturnFocus = true }) {
9
+ const lastActiveElement = React.useRef();
14
10
  const returnFocus = () => {
15
11
  var _a;
16
12
  if (lastActiveElement.current && "focus" in lastActiveElement.current && typeof lastActiveElement.current.focus === "function") {
@@ -20,7 +16,7 @@ function useFocusReturn({
20
16
  useDidUpdate.useDidUpdate(() => {
21
17
  let timeout = -1;
22
18
  const clearFocusTimeout = (event) => {
23
- if (event.code === "Tab") {
19
+ if (event.key === "Tab") {
24
20
  window.clearTimeout(timeout);
25
21
  }
26
22
  };
@@ -28,7 +24,7 @@ function useFocusReturn({
28
24
  if (opened) {
29
25
  lastActiveElement.current = document.activeElement;
30
26
  } else if (shouldReturnFocus) {
31
- timeout = window.setTimeout(returnFocus, transitionDuration + 10);
27
+ timeout = window.setTimeout(returnFocus, 10);
32
28
  }
33
29
  return () => {
34
30
  window.clearTimeout(timeout);
@@ -1 +1 @@
1
- {"version":3,"file":"use-focus-return.js","sources":["../../src/use-focus-return/use-focus-return.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { useDidUpdate } from '../use-did-update/use-did-update';\n\ninterface UseFocusReturn {\n opened: boolean;\n transitionDuration: number;\n shouldReturnFocus?: boolean;\n}\n\n/** Returns focus to last active element, used in Modal and Drawer */\nexport function useFocusReturn({\n opened,\n transitionDuration,\n shouldReturnFocus = true,\n}: UseFocusReturn) {\n const lastActiveElement = useRef<HTMLElement>();\n const returnFocus = () => {\n if (\n lastActiveElement.current &&\n 'focus' in lastActiveElement.current &&\n typeof lastActiveElement.current.focus === 'function'\n ) {\n lastActiveElement.current?.focus();\n }\n };\n\n useDidUpdate(() => {\n let timeout = -1;\n\n const clearFocusTimeout = (event: KeyboardEvent) => {\n if (event.code === 'Tab') {\n window.clearTimeout(timeout);\n }\n };\n\n document.addEventListener('keydown', clearFocusTimeout);\n\n if (opened) {\n lastActiveElement.current = document.activeElement as HTMLElement;\n } else if (shouldReturnFocus) {\n timeout = window.setTimeout(returnFocus, transitionDuration + 10);\n }\n\n return () => {\n window.clearTimeout(timeout);\n document.removeEventListener('keydown', clearFocusTimeout);\n };\n }, [opened]);\n\n return returnFocus;\n}\n"],"names":["useRef","useDidUpdate"],"mappings":";;;;;;;AAEO,SAAS,cAAc,CAAC;AAC/B,EAAE,MAAM;AACR,EAAE,kBAAkB;AACpB,EAAE,iBAAiB,GAAG,IAAI;AAC1B,CAAC,EAAE;AACH,EAAE,MAAM,iBAAiB,GAAGA,YAAM,EAAE,CAAC;AACrC,EAAE,MAAM,WAAW,GAAG,MAAM;AAC5B,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,iBAAiB,CAAC,OAAO,IAAI,OAAO,IAAI,iBAAiB,CAAC,OAAO,IAAI,OAAO,iBAAiB,CAAC,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE;AACpI,MAAM,CAAC,EAAE,GAAG,iBAAiB,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;AACrE,KAAK;AACL,GAAG,CAAC;AACJ,EAAEC,yBAAY,CAAC,MAAM;AACrB,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;AACrB,IAAI,MAAM,iBAAiB,GAAG,CAAC,KAAK,KAAK;AACzC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAChC,QAAQ,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACrC,OAAO;AACP,KAAK,CAAC;AACN,IAAI,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAC5D,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,iBAAiB,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;AACzD,KAAK,MAAM,IAAI,iBAAiB,EAAE;AAClC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,kBAAkB,GAAG,EAAE,CAAC,CAAC;AACxE,KAAK;AACL,IAAI,OAAO,MAAM;AACjB,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACnC,MAAM,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AACjE,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf,EAAE,OAAO,WAAW,CAAC;AACrB;;;;"}
1
+ {"version":3,"file":"use-focus-return.js","sources":["../../src/use-focus-return/use-focus-return.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { useDidUpdate } from '../use-did-update/use-did-update';\n\ninterface UseFocusReturn {\n opened: boolean;\n shouldReturnFocus?: boolean;\n}\n\n/** Returns focus to last active element, used in Modal and Drawer */\nexport function useFocusReturn({ opened, shouldReturnFocus = true }: UseFocusReturn) {\n const lastActiveElement = useRef<HTMLElement>();\n const returnFocus = () => {\n if (\n lastActiveElement.current &&\n 'focus' in lastActiveElement.current &&\n typeof lastActiveElement.current.focus === 'function'\n ) {\n lastActiveElement.current?.focus();\n }\n };\n\n useDidUpdate(() => {\n let timeout = -1;\n\n const clearFocusTimeout = (event: KeyboardEvent) => {\n if (event.key === 'Tab') {\n window.clearTimeout(timeout);\n }\n };\n\n document.addEventListener('keydown', clearFocusTimeout);\n\n if (opened) {\n lastActiveElement.current = document.activeElement as HTMLElement;\n } else if (shouldReturnFocus) {\n timeout = window.setTimeout(returnFocus, 10);\n }\n\n return () => {\n window.clearTimeout(timeout);\n document.removeEventListener('keydown', clearFocusTimeout);\n };\n }, [opened]);\n\n return returnFocus;\n}\n"],"names":["useRef","useDidUpdate"],"mappings":";;;;;;;AAEO,SAAS,cAAc,CAAC,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,EAAE,EAAE;AACrE,EAAE,MAAM,iBAAiB,GAAGA,YAAM,EAAE,CAAC;AACrC,EAAE,MAAM,WAAW,GAAG,MAAM;AAC5B,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,iBAAiB,CAAC,OAAO,IAAI,OAAO,IAAI,iBAAiB,CAAC,OAAO,IAAI,OAAO,iBAAiB,CAAC,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE;AACpI,MAAM,CAAC,EAAE,GAAG,iBAAiB,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;AACrE,KAAK;AACL,GAAG,CAAC;AACJ,EAAEC,yBAAY,CAAC,MAAM;AACrB,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;AACrB,IAAI,MAAM,iBAAiB,GAAG,CAAC,KAAK,KAAK;AACzC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;AAC/B,QAAQ,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACrC,OAAO;AACP,KAAK,CAAC;AACN,IAAI,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAC5D,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,iBAAiB,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;AACzD,KAAK,MAAM,IAAI,iBAAiB,EAAE;AAClC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,OAAO,MAAM;AACjB,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACnC,MAAM,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AACjE,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf,EAAE,OAAO,WAAW,CAAC;AACrB;;;;"}
@@ -11,6 +11,10 @@ function hidden(element) {
11
11
  return element.style.display === "none";
12
12
  }
13
13
  function visible(element) {
14
+ const isHidden = element.getAttribute("aria-hidden") || element.getAttribute("hidden") || element.getAttribute("type") === "hidden";
15
+ if (isHidden) {
16
+ return false;
17
+ }
14
18
  let parentElement = element;
15
19
  while (parentElement) {
16
20
  if (parentElement === document.body) {
@@ -1 +1 @@
1
- {"version":3,"file":"tabbable.js","sources":["../../src/use-focus-trap/tabbable.ts"],"sourcesContent":["const TABBABLE_NODES = /input|select|textarea|button|object/;\nexport const FOCUS_SELECTOR = 'a, input, select, textarea, button, object, [tabindex]';\n\nfunction hidden(element: HTMLElement) {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n\n return element.style.display === 'none';\n}\n\nfunction visible(element: HTMLElement) {\n let parentElement: HTMLElement = element;\n while (parentElement) {\n if (parentElement === document.body) {\n break;\n }\n\n if (hidden(parentElement)) {\n return false;\n }\n\n parentElement = parentElement.parentNode as HTMLElement;\n }\n\n return true;\n}\n\nfunction getElementTabIndex(element: HTMLElement) {\n let tabIndex = element.getAttribute('tabindex');\n if (tabIndex === null) {\n tabIndex = undefined;\n }\n return parseInt(tabIndex, 10);\n}\n\nexport function focusable(element: HTMLElement) {\n const nodeName = element.nodeName.toLowerCase();\n const isTabIndexNotNaN = !Number.isNaN(getElementTabIndex(element));\n const res =\n // @ts-ignore\n (TABBABLE_NODES.test(nodeName) && !element.disabled) ||\n (element instanceof HTMLAnchorElement ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n\n return res && visible(element);\n}\n\nexport function tabbable(element: HTMLElement) {\n const tabIndex = getElementTabIndex(element);\n const isTabIndexNaN = Number.isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element);\n}\n\nexport function findTabbableDescendants(element: HTMLElement): HTMLElement[] {\n return Array.from(element.querySelectorAll<HTMLElement>(FOCUS_SELECTOR)).filter(tabbable);\n}\n"],"names":[],"mappings":";;;;AAAA,MAAM,cAAc,GAAG,qCAAqC,CAAC;AACjD,MAAC,cAAc,GAAG,yDAAyD;AACvF,SAAS,MAAM,CAAC,OAAO,EAAE;AACzB,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE;AACvC,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC;AAC1C,CAAC;AACD,SAAS,OAAO,CAAC,OAAO,EAAE;AAC1B,EAAE,IAAI,aAAa,GAAG,OAAO,CAAC;AAC9B,EAAE,OAAO,aAAa,EAAE;AACxB,IAAI,IAAI,aAAa,KAAK,QAAQ,CAAC,IAAI,EAAE;AACzC,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE;AAC/B,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC;AAC7C,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD,SAAS,kBAAkB,CAAC,OAAO,EAAE;AACrC,EAAE,IAAI,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;AAClD,EAAE,IAAI,QAAQ,KAAK,IAAI,EAAE;AACzB,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC;AACM,SAAS,SAAS,CAAC,OAAO,EAAE;AACnC,EAAE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AAClD,EAAE,MAAM,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;AACtE,EAAE,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,YAAY,iBAAiB,GAAG,OAAO,CAAC,IAAI,IAAI,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;AACjK,EAAE,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AACM,SAAS,QAAQ,CAAC,OAAO,EAAE;AAClC,EAAE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC/C,EAAE,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC/C,EAAE,OAAO,CAAC,aAAa,IAAI,QAAQ,IAAI,CAAC,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC;AACM,SAAS,uBAAuB,CAAC,OAAO,EAAE;AACjD,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC/E;;;;;;;"}
1
+ {"version":3,"file":"tabbable.js","sources":["../../src/use-focus-trap/tabbable.ts"],"sourcesContent":["const TABBABLE_NODES = /input|select|textarea|button|object/;\nexport const FOCUS_SELECTOR = 'a, input, select, textarea, button, object, [tabindex]';\n\nfunction hidden(element: HTMLElement) {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n\n return element.style.display === 'none';\n}\n\nfunction visible(element: HTMLElement) {\n const isHidden =\n element.getAttribute('aria-hidden') ||\n element.getAttribute('hidden') ||\n element.getAttribute('type') === 'hidden';\n\n if (isHidden) {\n return false;\n }\n\n let parentElement: HTMLElement = element;\n while (parentElement) {\n if (parentElement === document.body) {\n break;\n }\n\n if (hidden(parentElement)) {\n return false;\n }\n\n parentElement = parentElement.parentNode as HTMLElement;\n }\n\n return true;\n}\n\nfunction getElementTabIndex(element: HTMLElement) {\n let tabIndex = element.getAttribute('tabindex');\n if (tabIndex === null) {\n tabIndex = undefined;\n }\n return parseInt(tabIndex, 10);\n}\n\nexport function focusable(element: HTMLElement) {\n const nodeName = element.nodeName.toLowerCase();\n const isTabIndexNotNaN = !Number.isNaN(getElementTabIndex(element));\n const res =\n // @ts-ignore\n (TABBABLE_NODES.test(nodeName) && !element.disabled) ||\n (element instanceof HTMLAnchorElement ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n\n return res && visible(element);\n}\n\nexport function tabbable(element: HTMLElement) {\n const tabIndex = getElementTabIndex(element);\n const isTabIndexNaN = Number.isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element);\n}\n\nexport function findTabbableDescendants(element: HTMLElement): HTMLElement[] {\n return Array.from(element.querySelectorAll<HTMLElement>(FOCUS_SELECTOR)).filter(tabbable);\n}\n"],"names":[],"mappings":";;;;AAAA,MAAM,cAAc,GAAG,qCAAqC,CAAC;AACjD,MAAC,cAAc,GAAG,yDAAyD;AACvF,SAAS,MAAM,CAAC,OAAO,EAAE;AACzB,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE;AACvC,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC;AAC1C,CAAC;AACD,SAAS,OAAO,CAAC,OAAO,EAAE;AAC1B,EAAE,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;AACtI,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,IAAI,aAAa,GAAG,OAAO,CAAC;AAC9B,EAAE,OAAO,aAAa,EAAE;AACxB,IAAI,IAAI,aAAa,KAAK,QAAQ,CAAC,IAAI,EAAE;AACzC,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE;AAC/B,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC;AAC7C,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD,SAAS,kBAAkB,CAAC,OAAO,EAAE;AACrC,EAAE,IAAI,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;AAClD,EAAE,IAAI,QAAQ,KAAK,IAAI,EAAE;AACzB,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC;AACM,SAAS,SAAS,CAAC,OAAO,EAAE;AACnC,EAAE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AAClD,EAAE,MAAM,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;AACtE,EAAE,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,YAAY,iBAAiB,GAAG,OAAO,CAAC,IAAI,IAAI,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;AACjK,EAAE,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AACM,SAAS,QAAQ,CAAC,OAAO,EAAE;AAClC,EAAE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC/C,EAAE,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC/C,EAAE,OAAO,CAAC,aAAa,IAAI,QAAQ,IAAI,CAAC,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC;AACM,SAAS,uBAAuB,CAAC,OAAO,EAAE;AACjD,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC/E;;;;;;;"}
@@ -2,15 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
  var tabbable = require('./tabbable.js');
7
7
  var scopeTab = require('./scope-tab.js');
8
8
  var createAriaHider = require('./create-aria-hider.js');
9
9
 
10
10
  function useFocusTrap(active = true) {
11
- const ref = react.useRef();
12
- const restoreAria = react.useRef(null);
13
- const setRef = react.useCallback((node) => {
11
+ const ref = React.useRef();
12
+ const restoreAria = React.useRef(null);
13
+ const setRef = React.useCallback((node) => {
14
14
  if (!active) {
15
15
  return;
16
16
  }
@@ -45,7 +45,7 @@ function useFocusTrap(active = true) {
45
45
  ref.current = null;
46
46
  }
47
47
  }, [active]);
48
- react.useEffect(() => {
48
+ React.useEffect(() => {
49
49
  if (!active) {
50
50
  return void 0;
51
51
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
 
7
7
  function containsRelatedTarget(event) {
8
8
  if (event.currentTarget instanceof HTMLElement && event.relatedTarget instanceof HTMLElement) {
@@ -14,9 +14,9 @@ function useFocusWithin({
14
14
  onBlur,
15
15
  onFocus
16
16
  } = {}) {
17
- const ref = react.useRef();
18
- const [focused, _setFocused] = react.useState(false);
19
- const focusedRef = react.useRef(false);
17
+ const ref = React.useRef();
18
+ const [focused, _setFocused] = React.useState(false);
19
+ const focusedRef = React.useRef(false);
20
20
  const setFocused = (value) => {
21
21
  _setFocused(value);
22
22
  focusedRef.current = value;
@@ -33,7 +33,7 @@ function useFocusWithin({
33
33
  onBlur == null ? void 0 : onBlur(event);
34
34
  }
35
35
  };
36
- react.useEffect(() => {
36
+ React.useEffect(() => {
37
37
  if (ref.current) {
38
38
  ref.current.addEventListener("focusin", handleFocusIn);
39
39
  ref.current.addEventListener("focusout", handleFocusOut);
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
 
7
7
  const reducer = (value) => (value + 1) % 1e6;
8
8
  function useForceUpdate() {
9
- const [, update] = react.useReducer(reducer, 0);
9
+ const [, update] = React.useReducer(reducer, 0);
10
10
  return update;
11
11
  }
12
12
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
 
7
7
  function getFullscreenElement() {
8
8
  const _document = window.document;
@@ -43,30 +43,30 @@ function addEvents(element, {
43
43
  };
44
44
  }
45
45
  function useFullscreen() {
46
- const [fullscreen, setFullscreen] = react.useState(false);
47
- const _ref = react.useRef();
48
- const handleFullscreenChange = react.useCallback((event) => {
46
+ const [fullscreen, setFullscreen] = React.useState(false);
47
+ const _ref = React.useRef();
48
+ const handleFullscreenChange = React.useCallback((event) => {
49
49
  setFullscreen(event.target === getFullscreenElement());
50
50
  }, [setFullscreen]);
51
- const handleFullscreenError = react.useCallback((event) => {
51
+ const handleFullscreenError = React.useCallback((event) => {
52
52
  setFullscreen(false);
53
53
  console.error(`[@mantine/hooks] use-fullscreen: Error attempting full-screen mode method: ${event} (${event.target})`);
54
54
  }, [setFullscreen]);
55
- const toggle = react.useCallback(async () => {
55
+ const toggle = React.useCallback(async () => {
56
56
  if (!getFullscreenElement()) {
57
57
  await enterFullScreen(_ref.current);
58
58
  } else {
59
59
  await exitFullscreen();
60
60
  }
61
61
  }, []);
62
- const ref = react.useCallback((element) => {
62
+ const ref = React.useCallback((element) => {
63
63
  if (element === null) {
64
64
  _ref.current = window.document.documentElement;
65
65
  } else {
66
66
  _ref.current = element;
67
67
  }
68
68
  }, []);
69
- react.useEffect(() => {
69
+ React.useEffect(() => {
70
70
  if (!_ref.current && window.document) {
71
71
  _ref.current = window.document.documentElement;
72
72
  return addEvents(_ref.current, {
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
  var useWindowEvent = require('../use-window-event/use-window-event.js');
7
7
 
8
8
  function useHash() {
9
- const [hash, setHashValue] = react.useState(typeof window !== "undefined" ? window.location.hash : "");
9
+ const [hash, setHashValue] = React.useState(typeof window !== "undefined" ? window.location.hash : "");
10
10
  const setHash = (value) => {
11
11
  window.location.hash = value;
12
12
  setHashValue(value);
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
  var parseHotkey = require('./parse-hotkey.js');
7
7
 
8
8
  function shouldFireEvent(event) {
@@ -12,7 +12,7 @@ function shouldFireEvent(event) {
12
12
  return true;
13
13
  }
14
14
  function useHotkeys(hotkeys) {
15
- react.useEffect(() => {
15
+ React.useEffect(() => {
16
16
  const keydownListener = (event) => {
17
17
  hotkeys.forEach(([hotkey, handler]) => {
18
18
  if (parseHotkey.getHotkeyMatcher(hotkey)(event) && shouldFireEvent(event)) {
@@ -2,14 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
 
7
7
  function useHover() {
8
- const [hovered, setHovered] = react.useState(false);
9
- const ref = react.useRef(null);
10
- const onMouseEnter = react.useCallback(() => setHovered(true), []);
11
- const onMouseLeave = react.useCallback(() => setHovered(false), []);
12
- react.useEffect(() => {
8
+ const [hovered, setHovered] = React.useState(false);
9
+ const ref = React.useRef(null);
10
+ const onMouseEnter = React.useCallback(() => setHovered(true), []);
11
+ const onMouseLeave = React.useCallback(() => setHovered(false), []);
12
+ React.useEffect(() => {
13
13
  if (ref.current) {
14
14
  ref.current.addEventListener("mouseenter", onMouseEnter);
15
15
  ref.current.addEventListener("mouseleave", onMouseLeave);
@@ -2,12 +2,28 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
6
- var randomId = require('../utils/random-id/random-id.js');
5
+ var React = require('react');
7
6
 
8
- function useId(id, generateId = randomId.randomId) {
9
- const generatedId = react.useRef(generateId());
10
- return id || generatedId.current;
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
8
+
9
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
+
11
+ const randomId = () => `mantine-${Math.random().toString(36).slice(2, 11)}`;
12
+ const useIsomorphicEffect = typeof document !== "undefined" ? React.useLayoutEffect : React.useEffect;
13
+ const useReactId = React__default["useId".toString()] || (() => void 0);
14
+ function useClientId() {
15
+ const [uuid, setUuid] = React.useState("");
16
+ useIsomorphicEffect(() => {
17
+ setUuid(randomId());
18
+ }, []);
19
+ return uuid;
20
+ }
21
+ function getReactId() {
22
+ const id = useReactId();
23
+ return id ? `mantine-${id.replaceAll(":", "")}` : "";
24
+ }
25
+ function useId(staticId) {
26
+ return typeof staticId === "string" ? staticId : getReactId() || useClientId();
11
27
  }
12
28
 
13
29
  exports.useId = useId;
@@ -1 +1 @@
1
- {"version":3,"file":"use-id.js","sources":["../../src/use-id/use-id.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { randomId } from '../utils';\n\nexport function useId(id?: string, generateId: () => string = randomId) {\n const generatedId = useRef(generateId());\n return id || generatedId.current;\n}\n"],"names":["randomId","useRef"],"mappings":";;;;;;;AAEO,SAAS,KAAK,CAAC,EAAE,EAAE,UAAU,GAAGA,iBAAQ,EAAE;AACjD,EAAE,MAAM,WAAW,GAAGC,YAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC3C,EAAE,OAAO,EAAE,IAAI,WAAW,CAAC,OAAO,CAAC;AACnC;;;;"}
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;;;;"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
 
7
7
  var __defProp = Object.defineProperty;
8
8
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
@@ -27,9 +27,9 @@ const DEFAULT_OPTIONS = {
27
27
  };
28
28
  function useIdle(timeout, options) {
29
29
  const { events, initialState } = __spreadValues(__spreadValues({}, DEFAULT_OPTIONS), options);
30
- const [idle, setIdle] = react.useState(initialState);
31
- const timer = react.useRef();
32
- react.useEffect(() => {
30
+ const [idle, setIdle] = React.useState(initialState);
31
+ const timer = React.useRef();
32
+ React.useEffect(() => {
33
33
  const handleEvents = () => {
34
34
  setIdle(false);
35
35
  if (timer.current) {
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
 
7
7
  function getInputOnChange(setValue) {
8
8
  return (val) => {
@@ -23,7 +23,7 @@ function getInputOnChange(setValue) {
23
23
  };
24
24
  }
25
25
  function useInputState(initialState) {
26
- const [value, setValue] = react.useState(initialState);
26
+ const [value, setValue] = React.useState(initialState);
27
27
  return [value, getInputOnChange(setValue)];
28
28
  }
29
29
 
@@ -2,12 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var react = require('react');
5
+ var React = require('react');
6
6
 
7
7
  function useIntersection(options) {
8
- const [entry, setEntry] = react.useState(null);
9
- const observer = react.useRef();
10
- const ref = react.useCallback((element) => {
8
+ const [entry, setEntry] = React.useState(null);
9
+ const observer = React.useRef();
10
+ const ref = React.useCallback((element) => {
11
11
  if (observer.current) {
12
12
  observer.current.disconnect();
13
13
  observer.current = null;
@@ -21,7 +21,7 @@ function useIntersection(options) {
21
21
  }, options);
22
22
  observer.current.observe(element);
23
23
  }, [options == null ? void 0 : options.rootMargin, options == null ? void 0 : options.root, options == null ? void 0 : options.threshold]);
24
- return [ref, entry];
24
+ return { ref, entry };
25
25
  }
26
26
 
27
27
  exports.useIntersection = useIntersection;
@@ -1 +1 @@
1
- {"version":3,"file":"use-intersection.js","sources":["../../src/use-intersection/use-intersection.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nexport function useIntersection<T extends HTMLElement = any>(\n options?: ConstructorParameters<typeof IntersectionObserver>[1]\n): readonly [(element: T | null) => void, IntersectionObserverEntry | null] {\n const [entry, setEntry] = useState<IntersectionObserverEntry>(null);\n\n const observer = useRef<IntersectionObserver>();\n\n const ref = useCallback(\n (element: T | null) => {\n if (observer.current) {\n observer.current.disconnect();\n observer.current = null;\n }\n\n if (element === null) {\n setEntry(null);\n return;\n }\n\n observer.current = new IntersectionObserver(([_entry]) => {\n setEntry(_entry);\n }, options);\n\n observer.current.observe(element);\n },\n [options?.rootMargin, options?.root, options?.threshold]\n );\n\n return [ref, entry] as const;\n}\n"],"names":["useState","useRef","useCallback"],"mappings":";;;;;;AACO,SAAS,eAAe,CAAC,OAAO,EAAE;AACzC,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGA,cAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C,EAAE,MAAM,QAAQ,GAAGC,YAAM,EAAE,CAAC;AAC5B,EAAE,MAAM,GAAG,GAAGC,iBAAW,CAAC,CAAC,OAAO,KAAK;AACvC,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE;AAC1B,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;AACpC,MAAM,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE;AAC1B,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,QAAQ,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;AAC9D,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvB,KAAK,EAAE,OAAO,CAAC,CAAC;AAChB,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACtC,GAAG,EAAE,CAAC,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7I,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtB;;;;"}
1
+ {"version":3,"file":"use-intersection.js","sources":["../../src/use-intersection/use-intersection.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nexport function useIntersection<T extends HTMLElement = any>(\n options?: ConstructorParameters<typeof IntersectionObserver>[1]\n) {\n const [entry, setEntry] = useState<IntersectionObserverEntry>(null);\n\n const observer = useRef<IntersectionObserver>();\n\n const ref = useCallback(\n (element: T | null) => {\n if (observer.current) {\n observer.current.disconnect();\n observer.current = null;\n }\n\n if (element === null) {\n setEntry(null);\n return;\n }\n\n observer.current = new IntersectionObserver(([_entry]) => {\n setEntry(_entry);\n }, options);\n\n observer.current.observe(element);\n },\n [options?.rootMargin, options?.root, options?.threshold]\n );\n\n return { ref, entry };\n}\n"],"names":["useState","useRef","useCallback"],"mappings":";;;;;;AACO,SAAS,eAAe,CAAC,OAAO,EAAE;AACzC,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGA,cAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C,EAAE,MAAM,QAAQ,GAAGC,YAAM,EAAE,CAAC;AAC5B,EAAE,MAAM,GAAG,GAAGC,iBAAW,CAAC,CAAC,OAAO,KAAK;AACvC,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE;AAC1B,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;AACpC,MAAM,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE;AAC1B,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,QAAQ,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;AAC9D,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvB,KAAK,EAAE,OAAO,CAAC,CAAC;AAChB,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACtC,GAAG,EAAE,CAAC,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7I,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB;;;;"}