@basic-ui/core 0.0.38 → 0.0.41

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 (266) hide show
  1. package/build/cjs/index.js +1 -1
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/esm/Accordion/Accordion.d.ts +7 -7
  4. package/build/esm/Accordion/Accordion.js +22 -17
  5. package/build/esm/Accordion/Accordion.js.map +1 -1
  6. package/build/esm/Accordion/AccordionBody.d.ts +5 -5
  7. package/build/esm/Accordion/AccordionBody.js +23 -15
  8. package/build/esm/Accordion/AccordionBody.js.map +1 -1
  9. package/build/esm/Accordion/AccordionHeader.d.ts +6 -6
  10. package/build/esm/Accordion/AccordionHeader.js +45 -31
  11. package/build/esm/Accordion/AccordionHeader.js.map +1 -1
  12. package/build/esm/Accordion/AccordionItem.d.ts +7 -7
  13. package/build/esm/Accordion/AccordionItem.js +16 -16
  14. package/build/esm/Accordion/AccordionItem.js.map +1 -1
  15. package/build/esm/Accordion/context.d.ts +4 -4
  16. package/build/esm/Accordion/context.js +12 -10
  17. package/build/esm/Accordion/context.js.map +1 -1
  18. package/build/esm/CheckBox/CheckBox.d.ts +6 -6
  19. package/build/esm/CheckBox/CheckBox.js +19 -12
  20. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  21. package/build/esm/ComboBox/Combobox.d.ts +10 -10
  22. package/build/esm/ComboBox/Combobox.js +52 -46
  23. package/build/esm/ComboBox/Combobox.js.map +1 -1
  24. package/build/esm/ComboBox/ComboboxButton.d.ts +8 -8
  25. package/build/esm/ComboBox/ComboboxButton.js +19 -20
  26. package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
  27. package/build/esm/ComboBox/ComboboxInput.d.ts +10 -10
  28. package/build/esm/ComboBox/ComboboxInput.js +52 -50
  29. package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
  30. package/build/esm/ComboBox/ComboboxLabel.d.ts +5 -5
  31. package/build/esm/ComboBox/ComboboxLabel.js +11 -12
  32. package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
  33. package/build/esm/ComboBox/ComboboxList.d.ts +6 -6
  34. package/build/esm/ComboBox/ComboboxList.js +15 -17
  35. package/build/esm/ComboBox/ComboboxList.js.map +1 -1
  36. package/build/esm/ComboBox/ComboboxOption.d.ts +7 -7
  37. package/build/esm/ComboBox/ComboboxOption.js +31 -34
  38. package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
  39. package/build/esm/ComboBox/ComboboxPopover.d.ts +8 -8
  40. package/build/esm/ComboBox/ComboboxPopover.js +15 -17
  41. package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
  42. package/build/esm/ComboBox/context.d.ts +13 -13
  43. package/build/esm/ComboBox/context.js +6 -5
  44. package/build/esm/ComboBox/context.js.map +1 -1
  45. package/build/esm/ComboBox/hooks.d.ts +4 -4
  46. package/build/esm/ComboBox/hooks.js +82 -115
  47. package/build/esm/ComboBox/hooks.js.map +1 -1
  48. package/build/esm/ComboBox/makeHash.js +3 -3
  49. package/build/esm/ComboBox/makeHash.js.map +1 -1
  50. package/build/esm/FocusLock/FocusLock.d.ts +7 -7
  51. package/build/esm/FocusLock/FocusLock.js +17 -16
  52. package/build/esm/FocusLock/FocusLock.js.map +1 -1
  53. package/build/esm/FocusLock/tabUtils.js +4 -4
  54. package/build/esm/FocusLock/tabUtils.js.map +1 -1
  55. package/build/esm/FocusLock/useFocusLock.d.ts +4 -4
  56. package/build/esm/FocusLock/useFocusLock.js +10 -11
  57. package/build/esm/FocusLock/useFocusLock.js.map +1 -1
  58. package/build/esm/List/List.d.ts +6 -6
  59. package/build/esm/List/List.js +5 -6
  60. package/build/esm/List/List.js.map +1 -1
  61. package/build/esm/List/ListItem.d.ts +6 -6
  62. package/build/esm/List/ListItem.js +5 -6
  63. package/build/esm/List/ListItem.js.map +1 -1
  64. package/build/esm/List/context.js +3 -3
  65. package/build/esm/List/context.js.map +1 -1
  66. package/build/esm/Menu/Menu.d.ts +6 -6
  67. package/build/esm/Menu/Menu.js +29 -21
  68. package/build/esm/Menu/Menu.js.map +1 -1
  69. package/build/esm/Menu/MenuButton.d.ts +10 -10
  70. package/build/esm/Menu/MenuButton.js +27 -24
  71. package/build/esm/Menu/MenuButton.js.map +1 -1
  72. package/build/esm/Menu/MenuItem.d.ts +6 -6
  73. package/build/esm/Menu/MenuItem.js +23 -24
  74. package/build/esm/Menu/MenuItem.js.map +1 -1
  75. package/build/esm/Menu/MenuList.d.ts +5 -5
  76. package/build/esm/Menu/MenuList.js +61 -45
  77. package/build/esm/Menu/MenuList.js.map +1 -1
  78. package/build/esm/Menu/MenuPopover.d.ts +6 -6
  79. package/build/esm/Menu/MenuPopover.js +8 -10
  80. package/build/esm/Menu/MenuPopover.js.map +1 -1
  81. package/build/esm/Menu/context.d.ts +2 -2
  82. package/build/esm/Menu/context.js +11 -8
  83. package/build/esm/Menu/context.js.map +1 -1
  84. package/build/esm/Modal/Modal.d.ts +6 -7
  85. package/build/esm/Modal/Modal.js +11 -10
  86. package/build/esm/Modal/Modal.js.map +1 -1
  87. package/build/esm/Modal/ModalBackdrop.d.ts +6 -6
  88. package/build/esm/Modal/ModalBackdrop.js +20 -19
  89. package/build/esm/Modal/ModalBackdrop.js.map +1 -1
  90. package/build/esm/Popper/Popper.d.ts +8 -8
  91. package/build/esm/Popper/Popper.js +46 -37
  92. package/build/esm/Popper/Popper.js.map +1 -1
  93. package/build/esm/Popper/PopperArrow.d.ts +5 -5
  94. package/build/esm/Popper/PopperArrow.js +8 -9
  95. package/build/esm/Popper/PopperArrow.js.map +1 -1
  96. package/build/esm/Popper/context.d.ts +1 -1
  97. package/build/esm/Popper/context.js +5 -3
  98. package/build/esm/Popper/context.js.map +1 -1
  99. package/build/esm/Portal/Portal.d.ts +1 -1
  100. package/build/esm/Portal/Portal.js +6 -5
  101. package/build/esm/Portal/Portal.js.map +1 -1
  102. package/build/esm/RadioButton/RadioButton.d.ts +7 -7
  103. package/build/esm/RadioButton/RadioButton.js +12 -13
  104. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  105. package/build/esm/RadioButton/RadioGroup.d.ts +8 -8
  106. package/build/esm/RadioButton/RadioGroup.js +22 -16
  107. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  108. package/build/esm/RadioButton/context.d.ts +2 -2
  109. package/build/esm/RadioButton/context.js +6 -5
  110. package/build/esm/RadioButton/context.js.map +1 -1
  111. package/build/esm/SkipNav/SkipNav.d.ts +6 -6
  112. package/build/esm/SkipNav/SkipNav.js +5 -6
  113. package/build/esm/SkipNav/SkipNav.js.map +1 -1
  114. package/build/esm/Spinner/Spinner.d.ts +7 -7
  115. package/build/esm/Spinner/Spinner.js +41 -31
  116. package/build/esm/Spinner/Spinner.js.map +1 -1
  117. package/build/esm/Spinner/SpinnerButton.d.ts +6 -6
  118. package/build/esm/Spinner/SpinnerButton.js +11 -12
  119. package/build/esm/Spinner/SpinnerButton.js.map +1 -1
  120. package/build/esm/Spinner/context.d.ts +2 -2
  121. package/build/esm/Spinner/context.js +6 -5
  122. package/build/esm/Spinner/context.js.map +1 -1
  123. package/build/esm/Tabs/Tab.d.ts +6 -6
  124. package/build/esm/Tabs/Tab.js +29 -29
  125. package/build/esm/Tabs/Tab.js.map +1 -1
  126. package/build/esm/Tabs/TabList.d.ts +6 -6
  127. package/build/esm/Tabs/TabList.js +24 -21
  128. package/build/esm/Tabs/TabList.js.map +1 -1
  129. package/build/esm/Tabs/TabPanel.d.ts +6 -6
  130. package/build/esm/Tabs/TabPanel.js +12 -12
  131. package/build/esm/Tabs/TabPanel.js.map +1 -1
  132. package/build/esm/Tabs/TabPanels.d.ts +5 -5
  133. package/build/esm/Tabs/TabPanels.js +13 -12
  134. package/build/esm/Tabs/TabPanels.js.map +1 -1
  135. package/build/esm/Tabs/Tabs.d.ts +6 -6
  136. package/build/esm/Tabs/Tabs.js +27 -14
  137. package/build/esm/Tabs/Tabs.js.map +1 -1
  138. package/build/esm/Tabs/context.d.ts +3 -3
  139. package/build/esm/Tabs/context.js +12 -10
  140. package/build/esm/Tabs/context.js.map +1 -1
  141. package/build/esm/Tooltip/Tooltip.d.ts +7 -7
  142. package/build/esm/Tooltip/Tooltip.js +18 -16
  143. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  144. package/build/esm/Tooltip/stateMachine.js +56 -80
  145. package/build/esm/Tooltip/stateMachine.js.map +1 -1
  146. package/build/esm/Tooltip/useTooltip.d.ts +7 -7
  147. package/build/esm/Tooltip/useTooltip.js +32 -30
  148. package/build/esm/Tooltip/useTooltip.js.map +1 -1
  149. package/build/esm/hooks/useAutoFocus.d.ts +2 -2
  150. package/build/esm/hooks/useAutoFocus.js +1 -1
  151. package/build/esm/hooks/useAutoFocus.js.map +1 -1
  152. package/build/esm/hooks/useChildrenCounter.d.ts +1 -1
  153. package/build/esm/hooks/useChildrenCounter.js +6 -4
  154. package/build/esm/hooks/useChildrenCounter.js.map +1 -1
  155. package/build/esm/hooks/useControlledState.d.ts +3 -7
  156. package/build/esm/hooks/useControlledState.js +7 -2
  157. package/build/esm/hooks/useControlledState.js.map +1 -1
  158. package/build/esm/hooks/useFocusReturn.d.ts +1 -1
  159. package/build/esm/hooks/useFocusReturn.js +6 -6
  160. package/build/esm/hooks/useFocusReturn.js.map +1 -1
  161. package/build/esm/hooks/useFocusState.d.ts +3 -3
  162. package/build/esm/hooks/useFocusState.js +13 -9
  163. package/build/esm/hooks/useFocusState.js.map +1 -1
  164. package/build/esm/hooks/useGestureHandlers.d.ts +5 -5
  165. package/build/esm/hooks/useGestureHandlers.js +59 -63
  166. package/build/esm/hooks/useGestureHandlers.js.map +1 -1
  167. package/build/esm/hooks/useMeasure.d.ts +2 -2
  168. package/build/esm/hooks/useMeasure.js +13 -7
  169. package/build/esm/hooks/useMeasure.js.map +1 -1
  170. package/build/esm/hooks/useOnClickOutside.d.ts +2 -2
  171. package/build/esm/hooks/useOnClickOutside.js +5 -4
  172. package/build/esm/hooks/useOnClickOutside.js.map +1 -1
  173. package/build/esm/hooks/useOnKeyDown.js +4 -3
  174. package/build/esm/hooks/useOnKeyDown.js.map +1 -1
  175. package/build/esm/hooks/useReducerMachine.d.ts +1 -1
  176. package/build/esm/hooks/useReducerMachine.js +13 -10
  177. package/build/esm/hooks/useReducerMachine.js.map +1 -1
  178. package/build/esm/hooks/useRemoveBodyScroll.js +4 -4
  179. package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
  180. package/build/esm/hooks/useScope.d.ts +1 -1
  181. package/build/esm/hooks/useScope.js +10 -12
  182. package/build/esm/hooks/useScope.js.map +1 -1
  183. package/build/esm/hooks/useThrottle.js +10 -5
  184. package/build/esm/hooks/useThrottle.js.map +1 -1
  185. package/build/esm/utils/assignRef.d.ts +1 -1
  186. package/build/esm/utils/assignRef.js +7 -3
  187. package/build/esm/utils/assignRef.js.map +1 -1
  188. package/build/esm/utils/createSubscription.js +7 -5
  189. package/build/esm/utils/createSubscription.js.map +1 -1
  190. package/build/esm/utils/rubberBandClamp.js +5 -2
  191. package/build/esm/utils/rubberBandClamp.js.map +1 -1
  192. package/build/esm/utils/wrapEvent.d.ts +3 -3
  193. package/build/esm/utils/wrapEvent.js +7 -3
  194. package/build/esm/utils/wrapEvent.js.map +1 -1
  195. package/build/tsconfig-build.tsbuildinfo +1 -0
  196. package/build/tsconfig.tsbuildinfo +1 -1
  197. package/package.json +3 -3
  198. package/src/Accordion/Accordion.story.tsx +1 -0
  199. package/src/Accordion/Accordion.tsx +15 -7
  200. package/src/Accordion/AccordionBody.tsx +7 -8
  201. package/src/Accordion/AccordionHeader.tsx +35 -33
  202. package/src/Accordion/AccordionItem.tsx +15 -7
  203. package/src/Accordion/context.ts +5 -3
  204. package/src/CheckBox/CheckBox.tsx +6 -6
  205. package/src/ComboBox/ComboBox.story.tsx +5 -5
  206. package/src/ComboBox/Combobox.tsx +12 -17
  207. package/src/ComboBox/ComboboxButton.tsx +16 -15
  208. package/src/ComboBox/ComboboxInput.tsx +19 -10
  209. package/src/ComboBox/ComboboxLabel.tsx +5 -4
  210. package/src/ComboBox/ComboboxList.tsx +6 -6
  211. package/src/ComboBox/ComboboxOption.tsx +11 -7
  212. package/src/ComboBox/ComboboxPopover.tsx +14 -8
  213. package/src/ComboBox/context.ts +14 -12
  214. package/src/ComboBox/hooks.tsx +9 -11
  215. package/src/FocusLock/FocusLock.tsx +14 -7
  216. package/src/FocusLock/useFocusLock.ts +5 -3
  217. package/src/List/List.tsx +5 -5
  218. package/src/List/ListItem.tsx +5 -5
  219. package/src/Menu/Menu.story.tsx +7 -6
  220. package/src/Menu/Menu.tsx +16 -8
  221. package/src/Menu/MenuButton.tsx +15 -16
  222. package/src/Menu/MenuItem.tsx +15 -10
  223. package/src/Menu/MenuList.tsx +8 -12
  224. package/src/Menu/MenuPopover.tsx +7 -5
  225. package/src/Menu/context.ts +10 -4
  226. package/src/Modal/Modal.story.tsx +1 -0
  227. package/src/Modal/Modal.tsx +12 -6
  228. package/src/Modal/ModalBackdrop.tsx +15 -9
  229. package/src/Modal/NavDrawer.story.tsx +3 -3
  230. package/src/Popper/Popper.story.tsx +3 -4
  231. package/src/Popper/Popper.tsx +13 -12
  232. package/src/Popper/PopperArrow.tsx +5 -4
  233. package/src/Popper/context.ts +2 -1
  234. package/src/Portal/Portal.tsx +1 -1
  235. package/src/RadioButton/RadioButton.story.tsx +1 -0
  236. package/src/RadioButton/RadioButton.tsx +14 -7
  237. package/src/RadioButton/RadioGroup.tsx +14 -10
  238. package/src/RadioButton/context.ts +2 -4
  239. package/src/SkipNav/SkipNav.tsx +5 -5
  240. package/src/Spinner/Spinner.story.tsx +1 -0
  241. package/src/Spinner/Spinner.tsx +14 -9
  242. package/src/Spinner/SpinnerButton.tsx +12 -6
  243. package/src/Spinner/context.ts +2 -3
  244. package/src/Tabs/Tab.story.tsx +1 -0
  245. package/src/Tabs/Tab.tsx +16 -11
  246. package/src/Tabs/TabList.tsx +6 -5
  247. package/src/Tabs/TabPanel.tsx +6 -5
  248. package/src/Tabs/TabPanels.tsx +4 -4
  249. package/src/Tabs/Tabs.tsx +6 -7
  250. package/src/Tabs/context.ts +4 -4
  251. package/src/Tooltip/Tooltip.story.tsx +3 -2
  252. package/src/Tooltip/Tooltip.tsx +11 -9
  253. package/src/Tooltip/stateMachine.ts +1 -1
  254. package/src/Tooltip/useTooltip.ts +19 -10
  255. package/src/hooks/useAutoFocus.ts +3 -1
  256. package/src/hooks/useChildrenCounter.ts +2 -1
  257. package/src/hooks/useControlledState.ts +7 -8
  258. package/src/hooks/useFocusReturn.ts +2 -1
  259. package/src/hooks/useFocusState.ts +4 -2
  260. package/src/hooks/useGestureHandlers.ts +11 -7
  261. package/src/hooks/useMeasure.ts +2 -1
  262. package/src/hooks/useOnClickOutside.ts +2 -2
  263. package/src/hooks/useReducerMachine.ts +2 -1
  264. package/src/hooks/useScope.ts +2 -1
  265. package/src/utils/assignRef.ts +1 -1
  266. package/src/utils/wrapEvent.ts +4 -5
@@ -1,37 +1,41 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
4
  import { useRef, useEffect, useState, useId } from 'react';
4
5
  import { assignMultipleRefs } from '../utils/assignRef';
5
6
  import { wrapEvent } from '../utils/wrapEvent';
6
7
  import { send, state, subscription, Blur, Focus, LeavingVisible, MouseDown, MouseEnter, MouseLeave, MouseMove, SelectWithKeyboard, Visible } from './stateMachine';
7
8
  export function useTooltip(childProps, childRef, tooltipProps) {
8
- const {
9
- onMouseEnter,
10
- onMouseLeave,
11
- onMouseMove,
12
- onMouseDown,
13
- onKeyDown,
14
- onFocus,
15
- onBlur
16
- } = childProps;
17
- const anchorEl = useRef(null);
18
- const [visible, setVisible] = useState(false);
19
- const id = useId();
20
- useEffect(() => {
21
- subscription.subscribe(() => {
9
+ var onMouseEnter = childProps.onMouseEnter,
10
+ onMouseLeave = childProps.onMouseLeave,
11
+ onMouseMove = childProps.onMouseMove,
12
+ onMouseDown = childProps.onMouseDown,
13
+ onKeyDown = childProps.onKeyDown,
14
+ onFocus = childProps.onFocus,
15
+ onBlur = childProps.onBlur;
16
+ var anchorEl = useRef(null);
17
+
18
+ var _useState = useState(false),
19
+ _useState2 = _slicedToArray(_useState, 2),
20
+ visible = _useState2[0],
21
+ setVisible = _useState2[1];
22
+
23
+ var id = useId();
24
+ useEffect(function () {
25
+ subscription.subscribe(function () {
22
26
  setVisible((state.current.state === Visible || state.current.state === LeavingVisible) && state.current.id === id);
23
27
  });
24
28
  }, [id]);
25
29
 
26
30
  function handleMouseEnter() {
27
31
  send(MouseEnter, {
28
- id
32
+ id: id
29
33
  });
30
34
  }
31
35
 
32
36
  function handleMouseMove() {
33
37
  send(MouseMove, {
34
- id
38
+ id: id
35
39
  });
36
40
  }
37
41
 
@@ -48,7 +52,7 @@ export function useTooltip(childProps, childRef, tooltipProps) {
48
52
 
49
53
  function handleFocus() {
50
54
  send(Focus, {
51
- id
55
+ id: id
52
56
  });
53
57
  }
54
58
 
@@ -65,18 +69,16 @@ export function useTooltip(childProps, childRef, tooltipProps) {
65
69
  }
66
70
  }
67
71
 
68
- const {
69
- label: children,
70
- onMouseEnter: tooltipOnMouseEnter,
71
- onMouseLeave: tooltipOnMouseLeave,
72
- onMouseMove: tooltipOnMouseMove
73
- } = tooltipProps,
74
- otherTooltipProps = _objectWithoutPropertiesLoose(tooltipProps, ["label", "onMouseEnter", "onMouseLeave", "onMouseMove"]);
72
+ var children = tooltipProps.label,
73
+ tooltipOnMouseEnter = tooltipProps.onMouseEnter,
74
+ tooltipOnMouseLeave = tooltipProps.onMouseLeave,
75
+ tooltipOnMouseMove = tooltipProps.onMouseMove,
76
+ otherTooltipProps = _objectWithoutProperties(tooltipProps, ["label", "onMouseEnter", "onMouseLeave", "onMouseMove"]);
75
77
 
76
- const tooltipId = "tooltip-".concat(id);
78
+ var tooltipId = "tooltip-".concat(id);
77
79
  return [_extends({}, childProps, {
78
80
  ref: assignMultipleRefs(childRef, anchorEl)
79
- }, visible && {
81
+ }, visible && !childProps['aria-label'] && {
80
82
  'aria-describedby': tooltipId
81
83
  }, {
82
84
  onMouseEnter: wrapEvent(onMouseEnter, handleMouseEnter),
@@ -88,9 +90,9 @@ export function useTooltip(childProps, childRef, tooltipProps) {
88
90
  onKeyDown: wrapEvent(onKeyDown, handleKeyDown)
89
91
  }), _extends({
90
92
  id: tooltipId,
91
- anchorEl,
92
- visible,
93
- children,
93
+ anchorEl: anchorEl,
94
+ visible: visible,
95
+ children: children,
94
96
  onMouseEnter: wrapEvent(tooltipOnMouseEnter, handleMouseEnter),
95
97
  onMouseLeave: wrapEvent(tooltipOnMouseLeave, handleMouseLeave),
96
98
  onMouseMove: wrapEvent(tooltipOnMouseMove, handleMouseMove),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Tooltip/useTooltip.ts"],"names":["useRef","useEffect","useState","useId","assignMultipleRefs","wrapEvent","send","state","subscription","Blur","Focus","LeavingVisible","MouseDown","MouseEnter","MouseLeave","MouseMove","SelectWithKeyboard","Visible","useTooltip","childProps","childRef","tooltipProps","onMouseEnter","onMouseLeave","onMouseMove","onMouseDown","onKeyDown","onFocus","onBlur","anchorEl","visible","setVisible","id","subscribe","current","handleMouseEnter","handleMouseMove","handleMouseLeave","handleMouseDown","handleFocus","handleBlur","undefined","handleKeyDown","event","key","label","children","tooltipOnMouseEnter","tooltipOnMouseLeave","tooltipOnMouseMove","otherTooltipProps","tooltipId","ref","role"],"mappings":"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","sourcesContent":["import { useRef, RefAttributes, useEffect, useState, useId } from 'react';\nimport { assignMultipleRefs } from '../utils/assignRef';\nimport { wrapEvent } from '../utils/wrapEvent';\nimport {\n send,\n state,\n subscription,\n Blur,\n Focus,\n LeavingVisible,\n MouseDown,\n MouseEnter,\n MouseLeave,\n MouseMove,\n SelectWithKeyboard,\n Visible,\n} from './stateMachine';\n\nexport type ChildProps = React.HTMLAttributes<HTMLElement> &\n RefAttributes<HTMLElement>;\n\nexport interface InjectedTooltipProps\n extends React.HTMLAttributes<HTMLElement> {\n anchorEl: React.RefObject<HTMLElement>;\n visible: boolean;\n children?: React.ReactNode;\n}\n\nexport function useTooltip(\n childProps: ChildProps,\n childRef: React.Ref<HTMLElement> | undefined,\n tooltipProps: React.HTMLAttributes<HTMLElement> & { label?: React.ReactNode }\n): [ChildProps, InjectedTooltipProps] {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseDown,\n onKeyDown,\n onFocus,\n onBlur,\n } = childProps;\n const anchorEl = useRef<HTMLElement>(null);\n const [visible, setVisible] = useState(false);\n const id = useId();\n\n useEffect(() => {\n subscription.subscribe(() => {\n setVisible(\n (state.current.state === Visible ||\n state.current.state === LeavingVisible) &&\n state.current.id === id\n );\n });\n }, [id]);\n\n function handleMouseEnter() {\n send(MouseEnter, { id });\n }\n\n function handleMouseMove() {\n send(MouseMove, { id });\n }\n\n function handleMouseLeave() {\n send(MouseLeave);\n }\n\n function handleMouseDown() {\n // Allow quick click from one tool to another\n if (state.current.id === id) {\n send(MouseDown);\n }\n }\n\n function handleFocus() {\n send(Focus, { id });\n }\n\n function handleBlur() {\n // Allow quick click from one tool to another\n if (state.current.id === id) {\n send(Blur, undefined);\n }\n }\n\n function handleKeyDown(event: React.KeyboardEvent<HTMLElement>) {\n if (event.key === 'Enter' || event.key === ' ') {\n send(SelectWithKeyboard);\n }\n }\n\n const {\n label: children,\n onMouseEnter: tooltipOnMouseEnter,\n onMouseLeave: tooltipOnMouseLeave,\n onMouseMove: tooltipOnMouseMove,\n ...otherTooltipProps\n } = tooltipProps;\n\n const tooltipId = `tooltip-${id}`;\n return [\n {\n ...childProps,\n ref: assignMultipleRefs(childRef, anchorEl),\n ...(visible && { 'aria-describedby': tooltipId }),\n onMouseEnter: wrapEvent(onMouseEnter, handleMouseEnter),\n onMouseLeave: wrapEvent(onMouseLeave, handleMouseLeave),\n onMouseMove: wrapEvent(onMouseMove, handleMouseMove),\n onMouseDown: wrapEvent(onMouseDown, handleMouseDown),\n onFocus: wrapEvent(onFocus, handleFocus),\n onBlur: wrapEvent(onBlur, handleBlur),\n onKeyDown: wrapEvent(onKeyDown, handleKeyDown),\n },\n {\n id: tooltipId,\n anchorEl,\n visible,\n children,\n onMouseEnter: wrapEvent(tooltipOnMouseEnter, handleMouseEnter),\n onMouseLeave: wrapEvent(tooltipOnMouseLeave, handleMouseLeave),\n onMouseMove: wrapEvent(tooltipOnMouseMove, handleMouseMove),\n role: 'tooltip',\n ...otherTooltipProps,\n },\n ];\n}\n"],"file":"useTooltip.js"}
1
+ {"version":3,"sources":["../../../src/Tooltip/useTooltip.ts"],"names":["useRef","useEffect","useState","useId","assignMultipleRefs","wrapEvent","send","state","subscription","Blur","Focus","LeavingVisible","MouseDown","MouseEnter","MouseLeave","MouseMove","SelectWithKeyboard","Visible","useTooltip","childProps","childRef","tooltipProps","onMouseEnter","onMouseLeave","onMouseMove","onMouseDown","onKeyDown","onFocus","onBlur","anchorEl","visible","setVisible","id","subscribe","current","handleMouseEnter","handleMouseMove","handleMouseLeave","handleMouseDown","handleFocus","handleBlur","undefined","handleKeyDown","event","key","children","label","tooltipOnMouseEnter","tooltipOnMouseLeave","tooltipOnMouseMove","otherTooltipProps","tooltipId","ref","role"],"mappings":"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","sourcesContent":["import type {\n HTMLAttributes,\n KeyboardEvent,\n ReactNode,\n Ref,\n RefAttributes,\n RefObject,\n} from 'react';\nimport { useRef, useEffect, useState, useId } from 'react';\n\nimport { assignMultipleRefs } from '../utils/assignRef';\nimport { wrapEvent } from '../utils/wrapEvent';\nimport {\n send,\n state,\n subscription,\n Blur,\n Focus,\n LeavingVisible,\n MouseDown,\n MouseEnter,\n MouseLeave,\n MouseMove,\n SelectWithKeyboard,\n Visible,\n} from './stateMachine';\n\nexport type ChildProps = HTMLAttributes<HTMLElement> &\n RefAttributes<HTMLElement>;\n\nexport interface InjectedTooltipProps extends HTMLAttributes<HTMLElement> {\n anchorEl: RefObject<HTMLElement>;\n visible: boolean;\n children?: ReactNode;\n}\n\nexport function useTooltip(\n childProps: ChildProps,\n childRef: Ref<HTMLElement> | undefined,\n tooltipProps: HTMLAttributes<HTMLElement> & { label?: ReactNode }\n): [ChildProps, InjectedTooltipProps] {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseDown,\n onKeyDown,\n onFocus,\n onBlur,\n } = childProps;\n const anchorEl = useRef<HTMLElement>(null);\n const [visible, setVisible] = useState(false);\n const id = useId();\n\n useEffect(() => {\n subscription.subscribe(() => {\n setVisible(\n (state.current.state === Visible ||\n state.current.state === LeavingVisible) &&\n state.current.id === id\n );\n });\n }, [id]);\n\n function handleMouseEnter() {\n send(MouseEnter, { id });\n }\n\n function handleMouseMove() {\n send(MouseMove, { id });\n }\n\n function handleMouseLeave() {\n send(MouseLeave);\n }\n\n function handleMouseDown() {\n // Allow quick click from one tool to another\n if (state.current.id === id) {\n send(MouseDown);\n }\n }\n\n function handleFocus() {\n send(Focus, { id });\n }\n\n function handleBlur() {\n // Allow quick click from one tool to another\n if (state.current.id === id) {\n send(Blur, undefined);\n }\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLElement>) {\n if (event.key === 'Enter' || event.key === ' ') {\n send(SelectWithKeyboard);\n }\n }\n\n const {\n label: children,\n onMouseEnter: tooltipOnMouseEnter,\n onMouseLeave: tooltipOnMouseLeave,\n onMouseMove: tooltipOnMouseMove,\n ...otherTooltipProps\n } = tooltipProps;\n\n const tooltipId = `tooltip-${id}`;\n return [\n {\n ...childProps,\n ref: assignMultipleRefs(childRef, anchorEl),\n ...(visible &&\n !childProps['aria-label'] && { 'aria-describedby': tooltipId }),\n onMouseEnter: wrapEvent(onMouseEnter, handleMouseEnter),\n onMouseLeave: wrapEvent(onMouseLeave, handleMouseLeave),\n onMouseMove: wrapEvent(onMouseMove, handleMouseMove),\n onMouseDown: wrapEvent(onMouseDown, handleMouseDown),\n onFocus: wrapEvent(onFocus, handleFocus),\n onBlur: wrapEvent(onBlur, handleBlur),\n onKeyDown: wrapEvent(onKeyDown, handleKeyDown),\n },\n {\n id: tooltipId,\n anchorEl,\n visible,\n children,\n onMouseEnter: wrapEvent(tooltipOnMouseEnter, handleMouseEnter),\n onMouseLeave: wrapEvent(tooltipOnMouseLeave, handleMouseLeave),\n onMouseMove: wrapEvent(tooltipOnMouseMove, handleMouseMove),\n role: 'tooltip',\n ...otherTooltipProps,\n },\n ];\n}\n"],"file":"useTooltip.js"}
@@ -1,2 +1,2 @@
1
- /// <reference types="react" />
2
- export declare function useAutoFocus(open: boolean, elementRef: React.MutableRefObject<HTMLElement | null>): void;
1
+ import type { MutableRefObject } from 'react';
2
+ export declare function useAutoFocus(open: boolean, elementRef: MutableRefObject<HTMLElement | null>): void;
@@ -1,7 +1,7 @@
1
1
  import { useEffect } from 'react';
2
2
  import { focusOnChildNode } from '../FocusLock/tabUtils';
3
3
  export function useAutoFocus(open, elementRef) {
4
- useEffect(() => {
4
+ useEffect(function () {
5
5
  if (open) {
6
6
  // We will only autoFocus on the first child if the currently active element isn't already trapped inside the modal
7
7
  if (elementRef.current && !elementRef.current.contains(document.activeElement)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useAutoFocus.ts"],"names":["useEffect","focusOnChildNode","useAutoFocus","open","elementRef","current","contains","document","activeElement"],"mappings":"AAAA,SAASA,SAAT,QAA0B,OAA1B;AACA,SAASC,gBAAT,QAAiC,uBAAjC;AAEA,OAAO,SAASC,YAAT,CACLC,IADK,EAELC,UAFK,EAGL;AACAJ,EAAAA,SAAS,CAAC,MAAM;AACd,QAAIG,IAAJ,EAAU;AACR;AACA,UACEC,UAAU,CAACC,OAAX,IACA,CAACD,UAAU,CAACC,OAAX,CAAmBC,QAAnB,CAA4BC,QAAQ,CAACC,aAArC,CAFH,EAGE;AACAP,QAAAA,gBAAgB,CAACG,UAAU,CAACC,OAAZ,EAAqB,CAArB,CAAhB;AACD;AACF,KATa,CAUd;;AACD,GAXQ,EAWN,CAACF,IAAD,CAXM,CAAT;AAYD","sourcesContent":["import { useEffect } from 'react';\nimport { focusOnChildNode } from '../FocusLock/tabUtils';\n\nexport function useAutoFocus(\n open: boolean,\n elementRef: React.MutableRefObject<HTMLElement | null>\n) {\n useEffect(() => {\n if (open) {\n // We will only autoFocus on the first child if the currently active element isn't already trapped inside the modal\n if (\n elementRef.current &&\n !elementRef.current.contains(document.activeElement)\n ) {\n focusOnChildNode(elementRef.current, 0);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n}\n"],"file":"useAutoFocus.js"}
1
+ {"version":3,"sources":["../../../src/hooks/useAutoFocus.ts"],"names":["useEffect","focusOnChildNode","useAutoFocus","open","elementRef","current","contains","document","activeElement"],"mappings":"AACA,SAASA,SAAT,QAA0B,OAA1B;AAEA,SAASC,gBAAT,QAAiC,uBAAjC;AAEA,OAAO,SAASC,YAAT,CACLC,IADK,EAELC,UAFK,EAGL;AACAJ,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIG,IAAJ,EAAU;AACR;AACA,UACEC,UAAU,CAACC,OAAX,IACA,CAACD,UAAU,CAACC,OAAX,CAAmBC,QAAnB,CAA4BC,QAAQ,CAACC,aAArC,CAFH,EAGE;AACAP,QAAAA,gBAAgB,CAACG,UAAU,CAACC,OAAZ,EAAqB,CAArB,CAAhB;AACD;AACF,KATa,CAUd;;AACD,GAXQ,EAWN,CAACF,IAAD,CAXM,CAAT;AAYD","sourcesContent":["import type { MutableRefObject } from 'react';\nimport { useEffect } from 'react';\n\nimport { focusOnChildNode } from '../FocusLock/tabUtils';\n\nexport function useAutoFocus(\n open: boolean,\n elementRef: MutableRefObject<HTMLElement | null>\n) {\n useEffect(() => {\n if (open) {\n // We will only autoFocus on the first child if the currently active element isn't already trapped inside the modal\n if (\n elementRef.current &&\n !elementRef.current.contains(document.activeElement)\n ) {\n focusOnChildNode(elementRef.current, 0);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n}\n"],"file":"useAutoFocus.js"}
@@ -1,4 +1,4 @@
1
- import { MutableRefObject } from 'react';
1
+ import type { MutableRefObject } from 'react';
2
2
  export declare function useChildrenCounterParent<T>(itemsRef: MutableRefObject<T[] & {
3
3
  isNewRender?: boolean;
4
4
  }>): void;
@@ -6,21 +6,23 @@ export function useChildrenCounterParent(itemsRef) {
6
6
  // the array
7
7
  itemsRef.current = [];
8
8
  itemsRef.current.isNewRender = true;
9
- useEffect(() => {
9
+ useEffect(function () {
10
10
  // Rendering is finished. Meaning any children can now rerender,
11
11
  // and they should not push any new items to our array, because
12
12
  // it is not a new render
13
13
  itemsRef.current.isNewRender = false;
14
14
  });
15
- useEffect(() => {
15
+ useEffect(function () {
16
16
  // When we are unmounting, it means there are no children anymore.
17
17
  // Clear out our items array
18
- return () => {
18
+ return function () {
19
19
  itemsRef.current = [];
20
20
  };
21
21
  }, [itemsRef]);
22
22
  }
23
- export function useChildrenCounterChild(itemsRef, itemIndexRef, obj, disabled = false) {
23
+ export function useChildrenCounterChild(itemsRef, itemIndexRef, obj) {
24
+ var disabled = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
25
+
24
26
  if (itemsRef && itemsRef.current.isNewRender) {
25
27
  if (disabled) {
26
28
  itemIndexRef.current = -1;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useChildrenCounter.ts"],"names":["useEffect","useChildrenCounterParent","itemsRef","current","isNewRender","useChildrenCounterChild","itemIndexRef","obj","disabled","length","Function","push"],"mappings":"AAAA,SAA2BA,SAA3B,QAA4C,OAA5C;AAEA,OAAO,SAASC,wBAAT,CACLC,QADK,EAEL;AACA;AACA;AACA;AACA;AACAA,EAAAA,QAAQ,CAACC,OAAT,GAAmB,EAAnB;AACAD,EAAAA,QAAQ,CAACC,OAAT,CAAiBC,WAAjB,GAA+B,IAA/B;AAEAJ,EAAAA,SAAS,CAAC,MAAM;AACd;AACA;AACA;AACAE,IAAAA,QAAQ,CAACC,OAAT,CAAiBC,WAAjB,GAA+B,KAA/B;AACD,GALQ,CAAT;AAOAJ,EAAAA,SAAS,CAAC,MAAM;AACd;AACA;AACA,WAAO,MAAM;AACXE,MAAAA,QAAQ,CAACC,OAAT,GAAmB,EAAnB;AACD,KAFD;AAGD,GANQ,EAMN,CAACD,QAAD,CANM,CAAT;AAOD;AAED,OAAO,SAASG,uBAAT,CACLH,QADK,EAELI,YAFK,EAGLC,GAHK,EAILC,QAAQ,GAAG,KAJN,EAKL;AACA,MAAIN,QAAQ,IAAIA,QAAQ,CAACC,OAAT,CAAiBC,WAAjC,EAA8C;AAC5C,QAAII,QAAJ,EAAc;AACZF,MAAAA,YAAY,CAACH,OAAb,GAAuB,CAAC,CAAxB;AACA;AACD,KAJ2C,CAM5C;;;AACAG,IAAAA,YAAY,CAACH,OAAb,GAAuBD,QAAQ,CAACC,OAAT,CAAiBM,MAAxC;;AAEA,QAAIF,GAAG,YAAYG,QAAnB,EAA6B;AAC3BR,MAAAA,QAAQ,CAACC,OAAT,CAAiBQ,IAAjB,CAAsBJ,GAAG,CAACD,YAAY,CAACH,OAAd,CAAzB;AACD,KAFD,MAEO;AACLD,MAAAA,QAAQ,CAACC,OAAT,CAAiBQ,IAAjB,CAAsBJ,GAAtB;AACD;AACF;AACF","sourcesContent":["import { MutableRefObject, useEffect } from 'react';\n\nexport function useChildrenCounterParent<T>(\n itemsRef: MutableRefObject<T[] & { isNewRender?: boolean }>\n) {\n // Reset the options ref every render so that they are always\n // accurate and ready for keyboard navigation handlers. Using layout\n // effect to schedule this effect before the ComboboxOptions push into\n // the array\n itemsRef.current = [];\n itemsRef.current.isNewRender = true;\n\n useEffect(() => {\n // Rendering is finished. Meaning any children can now rerender,\n // and they should not push any new items to our array, because\n // it is not a new render\n itemsRef.current.isNewRender = false;\n });\n\n useEffect(() => {\n // When we are unmounting, it means there are no children anymore.\n // Clear out our items array\n return () => {\n itemsRef.current = [];\n };\n }, [itemsRef]);\n}\n\nexport function useChildrenCounterChild<T>(\n itemsRef: MutableRefObject<T[] & { isNewRender?: boolean }> | undefined,\n itemIndexRef: MutableRefObject<number>,\n obj: T | ((idx: number) => T),\n disabled = false\n) {\n if (itemsRef && itemsRef.current.isNewRender) {\n if (disabled) {\n itemIndexRef.current = -1;\n return;\n }\n\n // push this option to the optionsRef array\n itemIndexRef.current = itemsRef.current.length;\n\n if (obj instanceof Function) {\n itemsRef.current.push(obj(itemIndexRef.current));\n } else {\n itemsRef.current.push(obj);\n }\n }\n}\n"],"file":"useChildrenCounter.js"}
1
+ {"version":3,"sources":["../../../src/hooks/useChildrenCounter.ts"],"names":["useEffect","useChildrenCounterParent","itemsRef","current","isNewRender","useChildrenCounterChild","itemIndexRef","obj","disabled","length","Function","push"],"mappings":"AACA,SAASA,SAAT,QAA0B,OAA1B;AAEA,OAAO,SAASC,wBAAT,CACLC,QADK,EAEL;AACA;AACA;AACA;AACA;AACAA,EAAAA,QAAQ,CAACC,OAAT,GAAmB,EAAnB;AACAD,EAAAA,QAAQ,CAACC,OAAT,CAAiBC,WAAjB,GAA+B,IAA/B;AAEAJ,EAAAA,SAAS,CAAC,YAAM;AACd;AACA;AACA;AACAE,IAAAA,QAAQ,CAACC,OAAT,CAAiBC,WAAjB,GAA+B,KAA/B;AACD,GALQ,CAAT;AAOAJ,EAAAA,SAAS,CAAC,YAAM;AACd;AACA;AACA,WAAO,YAAM;AACXE,MAAAA,QAAQ,CAACC,OAAT,GAAmB,EAAnB;AACD,KAFD;AAGD,GANQ,EAMN,CAACD,QAAD,CANM,CAAT;AAOD;AAED,OAAO,SAASG,uBAAT,CACLH,QADK,EAELI,YAFK,EAGLC,GAHK,EAKL;AAAA,MADAC,QACA,uEADW,KACX;;AACA,MAAIN,QAAQ,IAAIA,QAAQ,CAACC,OAAT,CAAiBC,WAAjC,EAA8C;AAC5C,QAAII,QAAJ,EAAc;AACZF,MAAAA,YAAY,CAACH,OAAb,GAAuB,CAAC,CAAxB;AACA;AACD,KAJ2C,CAM5C;;;AACAG,IAAAA,YAAY,CAACH,OAAb,GAAuBD,QAAQ,CAACC,OAAT,CAAiBM,MAAxC;;AAEA,QAAIF,GAAG,YAAYG,QAAnB,EAA6B;AAC3BR,MAAAA,QAAQ,CAACC,OAAT,CAAiBQ,IAAjB,CAAsBJ,GAAG,CAACD,YAAY,CAACH,OAAd,CAAzB;AACD,KAFD,MAEO;AACLD,MAAAA,QAAQ,CAACC,OAAT,CAAiBQ,IAAjB,CAAsBJ,GAAtB;AACD;AACF;AACF","sourcesContent":["import type { MutableRefObject } from 'react';\nimport { useEffect } from 'react';\n\nexport function useChildrenCounterParent<T>(\n itemsRef: MutableRefObject<T[] & { isNewRender?: boolean }>\n) {\n // Reset the options ref every render so that they are always\n // accurate and ready for keyboard navigation handlers. Using layout\n // effect to schedule this effect before the ComboboxOptions push into\n // the array\n itemsRef.current = [];\n itemsRef.current.isNewRender = true;\n\n useEffect(() => {\n // Rendering is finished. Meaning any children can now rerender,\n // and they should not push any new items to our array, because\n // it is not a new render\n itemsRef.current.isNewRender = false;\n });\n\n useEffect(() => {\n // When we are unmounting, it means there are no children anymore.\n // Clear out our items array\n return () => {\n itemsRef.current = [];\n };\n }, [itemsRef]);\n}\n\nexport function useChildrenCounterChild<T>(\n itemsRef: MutableRefObject<T[] & { isNewRender?: boolean }> | undefined,\n itemIndexRef: MutableRefObject<number>,\n obj: T | ((idx: number) => T),\n disabled = false\n) {\n if (itemsRef && itemsRef.current.isNewRender) {\n if (disabled) {\n itemIndexRef.current = -1;\n return;\n }\n\n // push this option to the optionsRef array\n itemIndexRef.current = itemsRef.current.length;\n\n if (obj instanceof Function) {\n itemsRef.current.push(obj(itemIndexRef.current));\n } else {\n itemsRef.current.push(obj);\n }\n }\n}\n"],"file":"useChildrenCounter.js"}
@@ -1,7 +1,3 @@
1
- /// <reference types="react" />
2
- import { CustomEventHandler } from '../utils';
3
- export declare function useControlledState<V, E extends React.SyntheticEvent<any>, H extends unknown[]>(valueProp: V | undefined, onChangeProp: CustomEventHandler<E, H> | undefined, defaultValue: V, defaultOnChange: (setValue: React.Dispatch<React.SetStateAction<V>>) => CustomEventHandler<E, H>): [
4
- V,
5
- CustomEventHandler<E, H> | undefined,
6
- React.Dispatch<React.SetStateAction<V>>
7
- ];
1
+ import type { Dispatch, SetStateAction, SyntheticEvent } from 'react';
2
+ import type { CustomEventHandler } from '../utils';
3
+ export declare function useControlledState<V, E extends SyntheticEvent<any>, H extends unknown[]>(valueProp: V | undefined, onChangeProp: CustomEventHandler<E, H> | undefined, defaultValue: V, defaultOnChange: (setValue: Dispatch<SetStateAction<V>>) => CustomEventHandler<E, H>): [V, CustomEventHandler<E, H> | undefined, Dispatch<SetStateAction<V>>];
@@ -1,8 +1,13 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import { useRef, useState } from 'react';
2
3
  import { wrapEvent } from '../utils';
3
4
  export function useControlledState(valueProp, onChangeProp, defaultValue, defaultOnChange) {
4
- const isControlled = useRef(valueProp !== undefined);
5
- const [valueState, setValueState] = useState(defaultValue);
5
+ var isControlled = useRef(valueProp !== undefined);
6
+
7
+ var _useState = useState(defaultValue),
8
+ _useState2 = _slicedToArray(_useState, 2),
9
+ valueState = _useState2[0],
10
+ setValueState = _useState2[1];
6
11
 
7
12
  if (isControlled.current) {
8
13
  if (valueProp === undefined) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useControlledState.ts"],"names":["useRef","useState","wrapEvent","useControlledState","valueProp","onChangeProp","defaultValue","defaultOnChange","isControlled","undefined","valueState","setValueState","current","console","warn"],"mappings":"AAAA,SAASA,MAAT,EAAiBC,QAAjB,QAAiC,OAAjC;AACA,SAASC,SAAT,QAA8C,UAA9C;AAEA,OAAO,SAASC,kBAAT,CAKLC,SALK,EAMLC,YANK,EAOLC,YAPK,EAQLC,eARK,EAeL;AACA,QAAMC,YAAY,GAAGR,MAAM,CAACI,SAAS,KAAKK,SAAf,CAA3B;AACA,QAAM,CAACC,UAAD,EAAaC,aAAb,IAA8BV,QAAQ,CAAIK,YAAJ,CAA5C;;AAEA,MAAIE,YAAY,CAACI,OAAjB,EAA0B;AACxB,QAAIR,SAAS,KAAKK,SAAlB,EAA6B;AAC3BI,MAAAA,OAAO,CAACC,IAAR,CAAa,mDAAb;AACD,KAHuB,CAIxB;;;AACA,WAAO,CAACV,SAAD,EAAaC,YAAb,EAA2BM,aAA3B,CAAP;AACD;;AAED,SAAO,CACL;AACAD,EAAAA,UAFK,EAGLR,SAAS,CAACG,YAAD,EAAeE,eAAe,CAACI,aAAD,CAA9B,CAHJ,EAILA,aAJK,CAAP;AAMD","sourcesContent":["import { useRef, useState } from 'react';\nimport { wrapEvent, CustomEventHandler } from '../utils';\n\nexport function useControlledState<\n V,\n E extends React.SyntheticEvent<any>,\n H extends unknown[]\n>(\n valueProp: V | undefined,\n onChangeProp: CustomEventHandler<E, H> | undefined,\n defaultValue: V,\n defaultOnChange: (\n setValue: React.Dispatch<React.SetStateAction<V>>\n ) => CustomEventHandler<E, H>\n): [\n V,\n CustomEventHandler<E, H> | undefined,\n React.Dispatch<React.SetStateAction<V>>\n] {\n const isControlled = useRef(valueProp !== undefined);\n const [valueState, setValueState] = useState<V>(defaultValue);\n\n if (isControlled.current) {\n if (valueProp === undefined) {\n console.warn('Trying to change from controlled to uncontrolled.');\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return [valueProp!, onChangeProp, setValueState];\n }\n\n return [\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n valueState!,\n wrapEvent(onChangeProp, defaultOnChange(setValueState)),\n setValueState,\n ];\n}\n"],"file":"useControlledState.js"}
1
+ {"version":3,"sources":["../../../src/hooks/useControlledState.ts"],"names":["useRef","useState","wrapEvent","useControlledState","valueProp","onChangeProp","defaultValue","defaultOnChange","isControlled","undefined","valueState","setValueState","current","console","warn"],"mappings":";AACA,SAASA,MAAT,EAAiBC,QAAjB,QAAiC,OAAjC;AAGA,SAASC,SAAT,QAA0B,UAA1B;AAEA,OAAO,SAASC,kBAAT,CAKLC,SALK,EAMLC,YANK,EAOLC,YAPK,EAQLC,eARK,EAWmE;AACxE,MAAMC,YAAY,GAAGR,MAAM,CAACI,SAAS,KAAKK,SAAf,CAA3B;;AADwE,kBAEpCR,QAAQ,CAAIK,YAAJ,CAF4B;AAAA;AAAA,MAEjEI,UAFiE;AAAA,MAErDC,aAFqD;;AAIxE,MAAIH,YAAY,CAACI,OAAjB,EAA0B;AACxB,QAAIR,SAAS,KAAKK,SAAlB,EAA6B;AAC3BI,MAAAA,OAAO,CAACC,IAAR,CAAa,mDAAb;AACD,KAHuB,CAIxB;;;AACA,WAAO,CAACV,SAAD,EAAaC,YAAb,EAA2BM,aAA3B,CAAP;AACD;;AAED,SAAO,CACL;AACAD,EAAAA,UAFK,EAGLR,SAAS,CAACG,YAAD,EAAeE,eAAe,CAACI,aAAD,CAA9B,CAHJ,EAILA,aAJK,CAAP;AAMD","sourcesContent":["import type { Dispatch, SetStateAction, SyntheticEvent } from 'react';\nimport { useRef, useState } from 'react';\n\nimport type { CustomEventHandler } from '../utils';\nimport { wrapEvent } from '../utils';\n\nexport function useControlledState<\n V,\n E extends SyntheticEvent<any>,\n H extends unknown[]\n>(\n valueProp: V | undefined,\n onChangeProp: CustomEventHandler<E, H> | undefined,\n defaultValue: V,\n defaultOnChange: (\n setValue: Dispatch<SetStateAction<V>>\n ) => CustomEventHandler<E, H>\n): [V, CustomEventHandler<E, H> | undefined, Dispatch<SetStateAction<V>>] {\n const isControlled = useRef(valueProp !== undefined);\n const [valueState, setValueState] = useState<V>(defaultValue);\n\n if (isControlled.current) {\n if (valueProp === undefined) {\n console.warn('Trying to change from controlled to uncontrolled.');\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return [valueProp!, onChangeProp, setValueState];\n }\n\n return [\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n valueState!,\n wrapEvent(onChangeProp, defaultOnChange(setValueState)),\n setValueState,\n ];\n}\n"],"file":"useControlledState.js"}
@@ -1,2 +1,2 @@
1
- import { MutableRefObject } from 'react';
1
+ import type { MutableRefObject } from 'react';
2
2
  export declare function useFocusReturn(open: boolean, rootEl: MutableRefObject<HTMLElement | null>): void;
@@ -1,13 +1,13 @@
1
1
  import { useEffect, useRef } from 'react';
2
2
  export function useFocusReturn(open, rootEl) {
3
- const previousFocusRef = useRef((() => {
3
+ var previousFocusRef = useRef(function () {
4
4
  if (open && typeof document !== 'undefined' && document.activeElement instanceof HTMLElement) {
5
5
  return document.activeElement;
6
6
  }
7
7
 
8
8
  return null;
9
- })());
10
- useEffect(() => {
9
+ }());
10
+ useEffect(function () {
11
11
  if (open) {
12
12
  var _rootEl$current;
13
13
 
@@ -17,9 +17,9 @@ export function useFocusReturn(open, rootEl) {
17
17
  previousFocusRef.current = document.activeElement;
18
18
  }
19
19
 
20
- const rootElement = rootEl.current;
21
- const previousElement = previousFocusRef.current;
22
- return () => {
20
+ var rootElement = rootEl.current;
21
+ var previousElement = previousFocusRef.current;
22
+ return function () {
23
23
  // on unmount, return focus to that element
24
24
  if (previousElement && !(rootElement != null && rootElement.contains(document.activeElement))) {
25
25
  previousElement.focus({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useFocusReturn.ts"],"names":["useEffect","useRef","useFocusReturn","open","rootEl","previousFocusRef","document","activeElement","HTMLElement","current","contains","rootElement","previousElement","focus","preventScroll"],"mappings":"AAAA,SAA2BA,SAA3B,EAAsCC,MAAtC,QAAoD,OAApD;AAEA,OAAO,SAASC,cAAT,CACLC,IADK,EAELC,MAFK,EAGL;AACA,QAAMC,gBAAgB,GAAGJ,MAAM,CAC7B,CAAC,MAAM;AACL,QACEE,IAAI,IACJ,OAAOG,QAAP,KAAoB,WADpB,IAEAA,QAAQ,CAACC,aAAT,YAAkCC,WAHpC,EAIE;AACA,aAAOF,QAAQ,CAACC,aAAhB;AACD;;AACD,WAAO,IAAP;AACD,GATD,GAD6B,CAA/B;AAaAP,EAAAA,SAAS,CAAC,MAAM;AACd,QAAIG,IAAJ,EAAU;AAAA;;AACR;AACA;AACA,UACE,CAACE,gBAAgB,CAACI,OAAlB,IACAH,QAAQ,CAACC,aAAT,YAAkCC,WADlC,IAEA,qBAACJ,MAAM,CAACK,OAAR,aAAC,gBAAgBC,QAAhB,CAAyBJ,QAAQ,CAACC,aAAlC,CAAD,CAHF,EAIE;AACAF,QAAAA,gBAAgB,CAACI,OAAjB,GAA2BH,QAAQ,CAACC,aAApC;AACD;;AAED,YAAMI,WAAW,GAAGP,MAAM,CAACK,OAA3B;AACA,YAAMG,eAAe,GAAGP,gBAAgB,CAACI,OAAzC;AACA,aAAO,MAAM;AACX;AACA,YAAIG,eAAe,IAAI,EAACD,WAAD,YAACA,WAAW,CAAED,QAAb,CAAsBJ,QAAQ,CAACC,aAA/B,CAAD,CAAvB,EAAuE;AACrEK,UAAAA,eAAe,CAACC,KAAhB,CAAsB;AAAEC,YAAAA,aAAa,EAAE;AAAjB,WAAtB;AACD;AACF,OALD;AAMD;AACF,GArBQ,EAqBN,CAACX,IAAD,EAAOC,MAAP,CArBM,CAAT;AAsBD","sourcesContent":["import { MutableRefObject, useEffect, useRef } from 'react';\n\nexport function useFocusReturn(\n open: boolean,\n rootEl: MutableRefObject<HTMLElement | null>\n) {\n const previousFocusRef = useRef<HTMLElement | null>(\n (() => {\n if (\n open &&\n typeof document !== 'undefined' &&\n document.activeElement instanceof HTMLElement\n ) {\n return document.activeElement;\n }\n return null;\n })()\n );\n\n useEffect(() => {\n if (open) {\n // once opened, keep track of the element that triggered\n // the Modal opening\n if (\n !previousFocusRef.current &&\n document.activeElement instanceof HTMLElement &&\n !rootEl.current?.contains(document.activeElement)\n ) {\n previousFocusRef.current = document.activeElement;\n }\n\n const rootElement = rootEl.current;\n const previousElement = previousFocusRef.current;\n return () => {\n // on unmount, return focus to that element\n if (previousElement && !rootElement?.contains(document.activeElement)) {\n previousElement.focus({ preventScroll: true });\n }\n };\n }\n }, [open, rootEl]);\n}\n"],"file":"useFocusReturn.js"}
1
+ {"version":3,"sources":["../../../src/hooks/useFocusReturn.ts"],"names":["useEffect","useRef","useFocusReturn","open","rootEl","previousFocusRef","document","activeElement","HTMLElement","current","contains","rootElement","previousElement","focus","preventScroll"],"mappings":"AACA,SAASA,SAAT,EAAoBC,MAApB,QAAkC,OAAlC;AAEA,OAAO,SAASC,cAAT,CACLC,IADK,EAELC,MAFK,EAGL;AACA,MAAMC,gBAAgB,GAAGJ,MAAM,CAC5B,YAAM;AACL,QACEE,IAAI,IACJ,OAAOG,QAAP,KAAoB,WADpB,IAEAA,QAAQ,CAACC,aAAT,YAAkCC,WAHpC,EAIE;AACA,aAAOF,QAAQ,CAACC,aAAhB;AACD;;AACD,WAAO,IAAP;AACD,GATD,EAD6B,CAA/B;AAaAP,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIG,IAAJ,EAAU;AAAA;;AACR;AACA;AACA,UACE,CAACE,gBAAgB,CAACI,OAAlB,IACAH,QAAQ,CAACC,aAAT,YAAkCC,WADlC,IAEA,qBAACJ,MAAM,CAACK,OAAR,aAAC,gBAAgBC,QAAhB,CAAyBJ,QAAQ,CAACC,aAAlC,CAAD,CAHF,EAIE;AACAF,QAAAA,gBAAgB,CAACI,OAAjB,GAA2BH,QAAQ,CAACC,aAApC;AACD;;AAED,UAAMI,WAAW,GAAGP,MAAM,CAACK,OAA3B;AACA,UAAMG,eAAe,GAAGP,gBAAgB,CAACI,OAAzC;AACA,aAAO,YAAM;AACX;AACA,YAAIG,eAAe,IAAI,EAACD,WAAD,YAACA,WAAW,CAAED,QAAb,CAAsBJ,QAAQ,CAACC,aAA/B,CAAD,CAAvB,EAAuE;AACrEK,UAAAA,eAAe,CAACC,KAAhB,CAAsB;AAAEC,YAAAA,aAAa,EAAE;AAAjB,WAAtB;AACD;AACF,OALD;AAMD;AACF,GArBQ,EAqBN,CAACX,IAAD,EAAOC,MAAP,CArBM,CAAT;AAsBD","sourcesContent":["import type { MutableRefObject } from 'react';\nimport { useEffect, useRef } from 'react';\n\nexport function useFocusReturn(\n open: boolean,\n rootEl: MutableRefObject<HTMLElement | null>\n) {\n const previousFocusRef = useRef<HTMLElement | null>(\n (() => {\n if (\n open &&\n typeof document !== 'undefined' &&\n document.activeElement instanceof HTMLElement\n ) {\n return document.activeElement;\n }\n return null;\n })()\n );\n\n useEffect(() => {\n if (open) {\n // once opened, keep track of the element that triggered\n // the Modal opening\n if (\n !previousFocusRef.current &&\n document.activeElement instanceof HTMLElement &&\n !rootEl.current?.contains(document.activeElement)\n ) {\n previousFocusRef.current = document.activeElement;\n }\n\n const rootElement = rootEl.current;\n const previousElement = previousFocusRef.current;\n return () => {\n // on unmount, return focus to that element\n if (previousElement && !rootElement?.contains(document.activeElement)) {\n previousElement.focus({ preventScroll: true });\n }\n };\n }\n }, [open, rootEl]);\n}\n"],"file":"useFocusReturn.js"}
@@ -1,7 +1,7 @@
1
- /// <reference types="react" />
1
+ import type { FocusEventHandler } from 'react';
2
2
  export declare function useFocusState<T>(props?: {
3
- onFocus?: React.FocusEventHandler<T>;
4
- onBlur?: React.FocusEventHandler<T>;
3
+ onFocus?: FocusEventHandler<T>;
4
+ onBlur?: FocusEventHandler<T>;
5
5
  }): {
6
6
  bind: {
7
7
  onFocus: import("../utils/wrapEvent").CustomEventHandler<import("react").FocusEvent<T, Element>, []>;
@@ -1,17 +1,21 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import { useState } from 'react';
2
3
  import { wrapEvent } from '../utils/wrapEvent';
3
- export function useFocusState(props = {}) {
4
- const {
5
- onFocus,
6
- onBlur
7
- } = props;
8
- const [hasFocus, setHasFocus] = useState(false);
4
+ export function useFocusState() {
5
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ var onFocus = props.onFocus,
7
+ onBlur = props.onBlur;
9
8
 
10
- const handleFocus = () => {
9
+ var _useState = useState(false),
10
+ _useState2 = _slicedToArray(_useState, 2),
11
+ hasFocus = _useState2[0],
12
+ setHasFocus = _useState2[1];
13
+
14
+ var handleFocus = function handleFocus() {
11
15
  setHasFocus(true);
12
16
  };
13
17
 
14
- const handleBlur = () => {
18
+ var handleBlur = function handleBlur() {
15
19
  setHasFocus(false);
16
20
  };
17
21
 
@@ -20,7 +24,7 @@ export function useFocusState(props = {}) {
20
24
  onFocus: wrapEvent(onFocus, handleFocus),
21
25
  onBlur: wrapEvent(onBlur, handleBlur)
22
26
  },
23
- hasFocus
27
+ hasFocus: hasFocus
24
28
  };
25
29
  }
26
30
  //# sourceMappingURL=useFocusState.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useFocusState.ts"],"names":["useState","wrapEvent","useFocusState","props","onFocus","onBlur","hasFocus","setHasFocus","handleFocus","handleBlur","bind"],"mappings":"AAAA,SAASA,QAAT,QAAyB,OAAzB;AACA,SAASC,SAAT,QAA0B,oBAA1B;AAEA,OAAO,SAASC,aAAT,CACLC,KAGC,GAAG,EAJC,EAKL;AACA,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,MAAsBF,KAA5B;AACA,QAAM,CAACG,QAAD,EAAWC,WAAX,IAA0BP,QAAQ,CAAC,KAAD,CAAxC;;AAEA,QAAMQ,WAAW,GAAG,MAAM;AACxBD,IAAAA,WAAW,CAAC,IAAD,CAAX;AACD,GAFD;;AAIA,QAAME,UAAU,GAAG,MAAM;AACvBF,IAAAA,WAAW,CAAC,KAAD,CAAX;AACD,GAFD;;AAIA,SAAO;AACLG,IAAAA,IAAI,EAAE;AACJN,MAAAA,OAAO,EAAEH,SAAS,CAACG,OAAD,EAAUI,WAAV,CADd;AAEJH,MAAAA,MAAM,EAAEJ,SAAS,CAACI,MAAD,EAASI,UAAT;AAFb,KADD;AAKLH,IAAAA;AALK,GAAP;AAOD","sourcesContent":["import { useState } from 'react';\nimport { wrapEvent } from '../utils/wrapEvent';\n\nexport function useFocusState<T>(\n props: {\n onFocus?: React.FocusEventHandler<T>;\n onBlur?: React.FocusEventHandler<T>;\n } = {}\n) {\n const { onFocus, onBlur } = props;\n const [hasFocus, setHasFocus] = useState(false);\n\n const handleFocus = () => {\n setHasFocus(true);\n };\n\n const handleBlur = () => {\n setHasFocus(false);\n };\n\n return {\n bind: {\n onFocus: wrapEvent(onFocus, handleFocus),\n onBlur: wrapEvent(onBlur, handleBlur),\n },\n hasFocus,\n };\n}\n"],"file":"useFocusState.js"}
1
+ {"version":3,"sources":["../../../src/hooks/useFocusState.ts"],"names":["useState","wrapEvent","useFocusState","props","onFocus","onBlur","hasFocus","setHasFocus","handleFocus","handleBlur","bind"],"mappings":";AACA,SAASA,QAAT,QAAyB,OAAzB;AAEA,SAASC,SAAT,QAA0B,oBAA1B;AAEA,OAAO,SAASC,aAAT,GAKL;AAAA,MAJAC,KAIA,uEADI,EACJ;AAAA,MACQC,OADR,GAC4BD,KAD5B,CACQC,OADR;AAAA,MACiBC,MADjB,GAC4BF,KAD5B,CACiBE,MADjB;;AAAA,kBAEgCL,QAAQ,CAAC,KAAD,CAFxC;AAAA;AAAA,MAEOM,QAFP;AAAA,MAEiBC,WAFjB;;AAIA,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxBD,IAAAA,WAAW,CAAC,IAAD,CAAX;AACD,GAFD;;AAIA,MAAME,UAAU,GAAG,SAAbA,UAAa,GAAM;AACvBF,IAAAA,WAAW,CAAC,KAAD,CAAX;AACD,GAFD;;AAIA,SAAO;AACLG,IAAAA,IAAI,EAAE;AACJN,MAAAA,OAAO,EAAEH,SAAS,CAACG,OAAD,EAAUI,WAAV,CADd;AAEJH,MAAAA,MAAM,EAAEJ,SAAS,CAACI,MAAD,EAASI,UAAT;AAFb,KADD;AAKLH,IAAAA,QAAQ,EAARA;AALK,GAAP;AAOD","sourcesContent":["import type { FocusEventHandler } from 'react';\nimport { useState } from 'react';\n\nimport { wrapEvent } from '../utils/wrapEvent';\n\nexport function useFocusState<T>(\n props: {\n onFocus?: FocusEventHandler<T>;\n onBlur?: FocusEventHandler<T>;\n } = {}\n) {\n const { onFocus, onBlur } = props;\n const [hasFocus, setHasFocus] = useState(false);\n\n const handleFocus = () => {\n setHasFocus(true);\n };\n\n const handleBlur = () => {\n setHasFocus(false);\n };\n\n return {\n bind: {\n onFocus: wrapEvent(onFocus, handleFocus),\n onBlur: wrapEvent(onBlur, handleBlur),\n },\n hasFocus,\n };\n}\n"],"file":"useFocusState.js"}
@@ -1,4 +1,4 @@
1
- import type * as React from 'react';
1
+ import type { MutableRefObject, MouseEvent as ReactMouseEvent, TouchEvent as ReactTouchEvent } from 'react';
2
2
  export interface GestureHandlersState {
3
3
  target: null | EventTarget;
4
4
  x: number;
@@ -19,16 +19,16 @@ export interface GestureHandlersState {
19
19
  }
20
20
  declare type SetStateFunc<S> = (state: (prevState: Readonly<S>) => S, callback?: () => void) => void;
21
21
  export interface GestureHandlersReturn {
22
- onMouseDown: (e: React.MouseEvent<HTMLElement>) => void;
23
- onTouchStart: (e: React.TouchEvent<HTMLElement>) => void;
22
+ onMouseDown: (e: ReactMouseEvent<HTMLElement>) => void;
23
+ onTouchStart: (e: ReactTouchEvent<HTMLElement>) => void;
24
24
  }
25
25
  export interface GestureHandlerOptions {
26
26
  ensureTargetIsContainer?: boolean;
27
27
  minTouchDelta?: number;
28
28
  }
29
29
  export declare const initialGestureHandlersState: GestureHandlersState;
30
- export declare function gestureHandlers(set: SetStateFunc<GestureHandlersState>, containerRef?: React.MutableRefObject<HTMLElement | null>, options?: GestureHandlerOptions): GestureHandlersReturn;
31
- export declare const useGestureHandlers: (containerRef: React.MutableRefObject<HTMLElement | null> | undefined, onGesture: (e: GestureHandlersState) => void, options?: GestureHandlerOptions) => {
30
+ export declare function gestureHandlers(set: SetStateFunc<GestureHandlersState>, containerRef?: MutableRefObject<HTMLElement | null>, options?: GestureHandlerOptions): GestureHandlersReturn;
31
+ export declare const useGestureHandlers: (containerRef: MutableRefObject<HTMLElement | null> | undefined, onGesture: (e: GestureHandlersState) => void, options?: GestureHandlerOptions) => {
32
32
  state: {
33
33
  target: null | EventTarget;
34
34
  x: number;
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import { useRef } from 'react';
3
- export const initialGestureHandlersState = {
3
+ export var initialGestureHandlersState = {
4
4
  target: null,
5
5
  x: 0,
6
6
  xDelta: 0,
@@ -18,26 +18,27 @@ export const initialGestureHandlersState = {
18
18
  down: false,
19
19
  scrollLocked: false
20
20
  };
21
- const FRAMERATE_CONST = 1000 / 60; // 60 fps
22
-
23
- const VELOCITY_DEPR_FACTOR = FRAMERATE_CONST * 2;
24
- export function gestureHandlers(set, containerRef, options = {}) {
25
- const {
26
- ensureTargetIsContainer = false,
27
- minTouchDelta = 0
28
- } = options; // Common handlers
29
-
30
- const handleUp = () => {
31
- set(state => {
32
- const deltaTime = Date.now() - state.startTime;
33
- const xDelta = state.x - state.xInitial;
34
- const yDelta = state.y - state.yInitial;
35
- const xVelocity = calcVelocity(xDelta, deltaTime, state.xVelocity);
36
- const yVelocity = calcVelocity(yDelta, deltaTime, state.yVelocity);
37
-
38
- const newState = _extends({}, state, {
39
- xVelocity,
40
- yVelocity,
21
+ var FRAMERATE_CONST = 1000 / 60; // 60 fps
22
+
23
+ var VELOCITY_DEPR_FACTOR = FRAMERATE_CONST * 2;
24
+ export function gestureHandlers(set, containerRef) {
25
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
26
+ var _options$ensureTarget = options.ensureTargetIsContainer,
27
+ ensureTargetIsContainer = _options$ensureTarget === void 0 ? false : _options$ensureTarget,
28
+ _options$minTouchDelt = options.minTouchDelta,
29
+ minTouchDelta = _options$minTouchDelt === void 0 ? 0 : _options$minTouchDelt; // Common handlers
30
+
31
+ var handleUp = function handleUp() {
32
+ set(function (state) {
33
+ var deltaTime = Date.now() - state.startTime;
34
+ var xDelta = state.x - state.xInitial;
35
+ var yDelta = state.y - state.yInitial;
36
+ var xVelocity = calcVelocity(xDelta, deltaTime, state.xVelocity);
37
+ var yVelocity = calcVelocity(yDelta, deltaTime, state.yVelocity);
38
+
39
+ var newState = _extends({}, state, {
40
+ xVelocity: xVelocity,
41
+ yVelocity: yVelocity,
41
42
  target: null,
42
43
  down: false
43
44
  });
@@ -46,15 +47,13 @@ export function gestureHandlers(set, containerRef, options = {}) {
46
47
  });
47
48
  };
48
49
 
49
- const handleDown = e => {
50
- const {
51
- target,
52
- pageX,
53
- pageY
54
- } = e;
55
- set(state => {
56
- const newState = _extends({}, state, {
57
- target,
50
+ var handleDown = function handleDown(e) {
51
+ var target = e.target,
52
+ pageX = e.pageX,
53
+ pageY = e.pageY;
54
+ set(function (state) {
55
+ var newState = _extends({}, state, {
56
+ target: target,
58
57
  x: pageX,
59
58
  xDelta: 0,
60
59
  xDeltaPercent: 0,
@@ -81,23 +80,21 @@ export function gestureHandlers(set, containerRef, options = {}) {
81
80
  deltaTime = 1;
82
81
  }
83
82
 
84
- const speed = deltaSpace / deltaTime;
85
- const depr = 0.5 + Math.min(deltaTime / VELOCITY_DEPR_FACTOR, 0.5);
83
+ var speed = deltaSpace / deltaTime;
84
+ var depr = 0.5 + Math.min(deltaTime / VELOCITY_DEPR_FACTOR, 0.5);
86
85
  return speed * depr + prevVelocity * (1 - depr);
87
86
  }
88
87
 
89
88
  function handleMove(e) {
90
- const {
91
- pageX,
92
- pageY
93
- } = e;
89
+ var pageX = e.pageX,
90
+ pageY = e.pageY;
94
91
 
95
92
  if (e.cancelable) {
96
93
  // prevent drag & drop behaviour from browser
97
94
  e.preventDefault && e.preventDefault();
98
95
  }
99
96
 
100
- set(state => {
97
+ set(function (state) {
101
98
  function getDeltaSum(currentPos, initialPos, prevPos) {
102
99
  if (state.scrollLocked || Math.abs(currentPos - initialPos) >= minTouchDelta) {
103
100
  state.scrollLocked = true;
@@ -107,28 +104,28 @@ export function gestureHandlers(set, containerRef, options = {}) {
107
104
  return 0;
108
105
  }
109
106
 
110
- const target = containerRef && containerRef.current || e.target;
111
- const deltaTime = Date.now() - state.startTime;
112
- const width = target ? target.offsetWidth : NaN;
113
- const xDelta = state.xDelta + getDeltaSum(pageX, state.xInitial, state.x);
114
- const xDeltaPercent = xDelta * 100 / width;
115
- const xVelocity = calcVelocity(xDelta, deltaTime, state.xVelocity);
116
- const height = target ? target.offsetHeight : NaN;
117
- const yDelta = state.yDelta + getDeltaSum(pageY, state.yInitial, state.y);
118
- const yDeltaPercent = yDelta * 100 / height;
119
- const yVelocity = calcVelocity(yDelta, deltaTime, state.yVelocity);
120
-
121
- const newState = _extends({}, state, {
122
- xDelta,
123
- xDeltaPercent,
107
+ var target = containerRef && containerRef.current || e.target;
108
+ var deltaTime = Date.now() - state.startTime;
109
+ var width = target ? target.offsetWidth : NaN;
110
+ var xDelta = state.xDelta + getDeltaSum(pageX, state.xInitial, state.x);
111
+ var xDeltaPercent = xDelta * 100 / width;
112
+ var xVelocity = calcVelocity(xDelta, deltaTime, state.xVelocity);
113
+ var height = target ? target.offsetHeight : NaN;
114
+ var yDelta = state.yDelta + getDeltaSum(pageY, state.yInitial, state.y);
115
+ var yDeltaPercent = yDelta * 100 / height;
116
+ var yVelocity = calcVelocity(yDelta, deltaTime, state.yVelocity);
117
+
118
+ var newState = _extends({}, state, {
119
+ xDelta: xDelta,
120
+ xDeltaPercent: xDeltaPercent,
124
121
  x: pageX,
125
122
  xPrev: state.x,
126
- xVelocity,
127
- yDelta,
128
- yDeltaPercent,
123
+ xVelocity: xVelocity,
124
+ yDelta: yDelta,
125
+ yDeltaPercent: yDeltaPercent,
129
126
  y: pageY,
130
127
  yPrev: state.y,
131
- yVelocity
128
+ yVelocity: yVelocity
132
129
  });
133
130
 
134
131
  return newState;
@@ -149,9 +146,7 @@ export function gestureHandlers(set, containerRef, options = {}) {
149
146
 
150
147
  function handleTouchStart(e) {
151
148
  // making sure we're not dragging the element when more than one finger press the screen
152
- const {
153
- touches
154
- } = e;
149
+ var touches = e.touches;
155
150
 
156
151
  if (touches.length > 1) {
157
152
  return;
@@ -202,19 +197,20 @@ export function gestureHandlers(set, containerRef, options = {}) {
202
197
  onTouchStart: handleTouchStart
203
198
  };
204
199
  }
205
- export const useGestureHandlers = (containerRef, onGesture, options = {}) => {
206
- const state = useRef(_extends({}, initialGestureHandlersState));
200
+ export var useGestureHandlers = function useGestureHandlers(containerRef, onGesture) {
201
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
202
+ var state = useRef(_extends({}, initialGestureHandlersState));
207
203
 
208
- const set = cb => {
204
+ var set = function set(cb) {
209
205
  state.current = cb(state.current);
210
206
  onGesture && onGesture(state.current);
211
207
  return state.current;
212
208
  };
213
209
 
214
- const handlers = gestureHandlers(set, containerRef, options);
210
+ var handlers = gestureHandlers(set, containerRef, options);
215
211
  return {
216
212
  state: state.current,
217
- handlers
213
+ handlers: handlers
218
214
  };
219
215
  };
220
216
  //# sourceMappingURL=useGestureHandlers.js.map