@basic-ui/core 0.0.40 → 0.0.43

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 (348) hide show
  1. package/build/cjs/index.js +1312 -464
  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 +4 -4
  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 +4 -4
  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 +4 -4
  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 +2 -2
  14. package/build/esm/Accordion/AccordionItem.js.map +1 -1
  15. package/build/esm/Accordion/context.d.ts +3 -3
  16. package/build/esm/Accordion/context.js.map +1 -1
  17. package/build/esm/Accordion/index.d.ts +0 -0
  18. package/build/esm/Accordion/index.js.map +1 -1
  19. package/build/esm/Accordion/scopeQuery.d.ts +0 -0
  20. package/build/esm/Accordion/scopeQuery.js.map +1 -1
  21. package/build/esm/CheckBox/CheckBox.d.ts +6 -6
  22. package/build/esm/CheckBox/CheckBox.js +2 -2
  23. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  24. package/build/esm/CheckBox/index.d.ts +0 -0
  25. package/build/esm/CheckBox/index.js.map +1 -1
  26. package/build/esm/ComboBox/Combobox.d.ts +10 -10
  27. package/build/esm/ComboBox/Combobox.js +3 -3
  28. package/build/esm/ComboBox/Combobox.js.map +1 -1
  29. package/build/esm/ComboBox/ComboboxButton.d.ts +8 -8
  30. package/build/esm/ComboBox/ComboboxButton.js +4 -4
  31. package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
  32. package/build/esm/ComboBox/ComboboxInput.d.ts +10 -10
  33. package/build/esm/ComboBox/ComboboxInput.js +3 -3
  34. package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
  35. package/build/esm/ComboBox/ComboboxLabel.d.ts +5 -5
  36. package/build/esm/ComboBox/ComboboxLabel.js +2 -2
  37. package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
  38. package/build/esm/ComboBox/ComboboxList.d.ts +6 -6
  39. package/build/esm/ComboBox/ComboboxList.js +3 -3
  40. package/build/esm/ComboBox/ComboboxList.js.map +1 -1
  41. package/build/esm/ComboBox/ComboboxOption.d.ts +7 -7
  42. package/build/esm/ComboBox/ComboboxOption.js +4 -4
  43. package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
  44. package/build/esm/ComboBox/ComboboxPopover.d.ts +8 -8
  45. package/build/esm/ComboBox/ComboboxPopover.js +5 -5
  46. package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
  47. package/build/esm/ComboBox/cities.d.ts +0 -0
  48. package/build/esm/ComboBox/cities.js.map +1 -1
  49. package/build/esm/ComboBox/context.d.ts +10 -10
  50. package/build/esm/ComboBox/context.js.map +1 -1
  51. package/build/esm/ComboBox/hooks.d.ts +3 -3
  52. package/build/esm/ComboBox/hooks.js +11 -11
  53. package/build/esm/ComboBox/hooks.js.map +1 -1
  54. package/build/esm/ComboBox/index.d.ts +0 -0
  55. package/build/esm/ComboBox/index.js.map +1 -1
  56. package/build/esm/ComboBox/makeHash.d.ts +0 -0
  57. package/build/esm/ComboBox/makeHash.js.map +1 -1
  58. package/build/esm/ComboBox/scopeQuery.d.ts +0 -0
  59. package/build/esm/ComboBox/scopeQuery.js.map +1 -1
  60. package/build/esm/FocusLock/FocusLock.d.ts +7 -7
  61. package/build/esm/FocusLock/FocusLock.js +2 -2
  62. package/build/esm/FocusLock/FocusLock.js.map +1 -1
  63. package/build/esm/FocusLock/index.d.ts +0 -0
  64. package/build/esm/FocusLock/index.js.map +1 -1
  65. package/build/esm/FocusLock/tabUtils.d.ts +0 -0
  66. package/build/esm/FocusLock/tabUtils.js.map +1 -1
  67. package/build/esm/FocusLock/useFocusLock.d.ts +4 -4
  68. package/build/esm/FocusLock/useFocusLock.js.map +1 -1
  69. package/build/esm/List/List.d.ts +6 -6
  70. package/build/esm/List/List.js +2 -2
  71. package/build/esm/List/List.js.map +1 -1
  72. package/build/esm/List/ListItem.d.ts +6 -6
  73. package/build/esm/List/ListItem.js +2 -2
  74. package/build/esm/List/ListItem.js.map +1 -1
  75. package/build/esm/List/context.d.ts +0 -0
  76. package/build/esm/List/context.js.map +1 -1
  77. package/build/esm/List/index.d.ts +0 -0
  78. package/build/esm/List/index.js.map +1 -1
  79. package/build/esm/Menu/Menu.d.ts +6 -6
  80. package/build/esm/Menu/Menu.js +2 -2
  81. package/build/esm/Menu/Menu.js.map +1 -1
  82. package/build/esm/Menu/MenuButton.d.ts +10 -10
  83. package/build/esm/Menu/MenuButton.js +3 -3
  84. package/build/esm/Menu/MenuButton.js.map +1 -1
  85. package/build/esm/Menu/MenuItem.d.ts +6 -6
  86. package/build/esm/Menu/MenuItem.js +4 -4
  87. package/build/esm/Menu/MenuItem.js.map +1 -1
  88. package/build/esm/Menu/MenuList.d.ts +5 -5
  89. package/build/esm/Menu/MenuList.js +6 -6
  90. package/build/esm/Menu/MenuList.js.map +1 -1
  91. package/build/esm/Menu/MenuPopover.d.ts +5 -5
  92. package/build/esm/Menu/MenuPopover.js +2 -2
  93. package/build/esm/Menu/MenuPopover.js.map +1 -1
  94. package/build/esm/Menu/context.d.ts +2 -2
  95. package/build/esm/Menu/context.js.map +1 -1
  96. package/build/esm/Menu/index.d.ts +0 -0
  97. package/build/esm/Menu/index.js.map +1 -1
  98. package/build/esm/Menu/scope.d.ts +0 -0
  99. package/build/esm/Menu/scope.js.map +1 -1
  100. package/build/esm/Modal/Modal.d.ts +6 -7
  101. package/build/esm/Modal/Modal.js +5 -5
  102. package/build/esm/Modal/Modal.js.map +1 -1
  103. package/build/esm/Modal/ModalBackdrop.d.ts +6 -6
  104. package/build/esm/Modal/ModalBackdrop.js +6 -6
  105. package/build/esm/Modal/ModalBackdrop.js.map +1 -1
  106. package/build/esm/Modal/index.d.ts +0 -0
  107. package/build/esm/Modal/index.js.map +1 -1
  108. package/build/esm/Popper/Popper.d.ts +7 -7
  109. package/build/esm/Popper/Popper.js +6 -6
  110. package/build/esm/Popper/Popper.js.map +1 -1
  111. package/build/esm/Popper/PopperArrow.d.ts +5 -5
  112. package/build/esm/Popper/PopperArrow.js +5 -6
  113. package/build/esm/Popper/PopperArrow.js.map +1 -1
  114. package/build/esm/Popper/context.d.ts +0 -0
  115. package/build/esm/Popper/context.js.map +1 -1
  116. package/build/esm/Popper/index.d.ts +0 -0
  117. package/build/esm/Popper/index.js.map +1 -1
  118. package/build/esm/Portal/Portal.d.ts +0 -0
  119. package/build/esm/Portal/Portal.js.map +1 -1
  120. package/build/esm/Portal/index.d.ts +0 -0
  121. package/build/esm/Portal/index.js.map +1 -1
  122. package/build/esm/RadioButton/RadioButton.d.ts +6 -6
  123. package/build/esm/RadioButton/RadioButton.js +5 -3
  124. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  125. package/build/esm/RadioButton/RadioGroup.d.ts +7 -7
  126. package/build/esm/RadioButton/RadioGroup.js +2 -2
  127. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  128. package/build/esm/RadioButton/context.d.ts +2 -2
  129. package/build/esm/RadioButton/context.js.map +1 -1
  130. package/build/esm/RadioButton/index.d.ts +0 -0
  131. package/build/esm/RadioButton/index.js.map +1 -1
  132. package/build/esm/SkipNav/SkipNav.d.ts +6 -6
  133. package/build/esm/SkipNav/SkipNav.js +2 -2
  134. package/build/esm/SkipNav/SkipNav.js.map +1 -1
  135. package/build/esm/SkipNav/index.d.ts +0 -0
  136. package/build/esm/SkipNav/index.js.map +1 -1
  137. package/build/esm/Slider/Slider.d.ts +218 -0
  138. package/build/esm/Slider/Slider.js +842 -0
  139. package/build/esm/Slider/Slider.js.map +1 -0
  140. package/build/esm/Slider/index.d.ts +1 -0
  141. package/build/esm/Slider/index.js +2 -0
  142. package/build/esm/Slider/index.js.map +1 -0
  143. package/build/esm/Spinner/Spinner.d.ts +7 -7
  144. package/build/esm/Spinner/Spinner.js +2 -2
  145. package/build/esm/Spinner/Spinner.js.map +1 -1
  146. package/build/esm/Spinner/SpinnerButton.d.ts +6 -6
  147. package/build/esm/Spinner/SpinnerButton.js +3 -3
  148. package/build/esm/Spinner/SpinnerButton.js.map +1 -1
  149. package/build/esm/Spinner/context.d.ts +2 -2
  150. package/build/esm/Spinner/context.js.map +1 -1
  151. package/build/esm/Spinner/index.d.ts +0 -0
  152. package/build/esm/Spinner/index.js.map +1 -1
  153. package/build/esm/Tabs/Tab.d.ts +6 -6
  154. package/build/esm/Tabs/Tab.js +3 -3
  155. package/build/esm/Tabs/Tab.js.map +1 -1
  156. package/build/esm/Tabs/TabList.d.ts +6 -6
  157. package/build/esm/Tabs/TabList.js +4 -4
  158. package/build/esm/Tabs/TabList.js.map +1 -1
  159. package/build/esm/Tabs/TabPanel.d.ts +6 -6
  160. package/build/esm/Tabs/TabPanel.js +4 -4
  161. package/build/esm/Tabs/TabPanel.js.map +1 -1
  162. package/build/esm/Tabs/TabPanels.d.ts +5 -5
  163. package/build/esm/Tabs/TabPanels.js +4 -4
  164. package/build/esm/Tabs/TabPanels.js.map +1 -1
  165. package/build/esm/Tabs/Tabs.d.ts +6 -6
  166. package/build/esm/Tabs/Tabs.js +2 -2
  167. package/build/esm/Tabs/Tabs.js.map +1 -1
  168. package/build/esm/Tabs/context.d.ts +2 -2
  169. package/build/esm/Tabs/context.js.map +1 -1
  170. package/build/esm/Tabs/index.d.ts +0 -0
  171. package/build/esm/Tabs/index.js.map +1 -1
  172. package/build/esm/Tabs/scopeQuery.d.ts +0 -0
  173. package/build/esm/Tabs/scopeQuery.js.map +1 -1
  174. package/build/esm/Tooltip/Tooltip.d.ts +7 -8
  175. package/build/esm/Tooltip/Tooltip.js +5 -3
  176. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  177. package/build/esm/Tooltip/index.d.ts +0 -0
  178. package/build/esm/Tooltip/index.js.map +1 -1
  179. package/build/esm/Tooltip/stateMachine.d.ts +0 -0
  180. package/build/esm/Tooltip/stateMachine.js +9 -9
  181. package/build/esm/Tooltip/stateMachine.js.map +1 -1
  182. package/build/esm/Tooltip/useTooltip.d.ts +7 -7
  183. package/build/esm/Tooltip/useTooltip.js +6 -5
  184. package/build/esm/Tooltip/useTooltip.js.map +1 -1
  185. package/build/esm/hooks/index.d.ts +0 -0
  186. package/build/esm/hooks/index.js.map +1 -1
  187. package/build/esm/hooks/useAutoFocus.d.ts +2 -2
  188. package/build/esm/hooks/useAutoFocus.js.map +1 -1
  189. package/build/esm/hooks/useChildrenCounter.d.ts +0 -0
  190. package/build/esm/hooks/useChildrenCounter.js.map +1 -1
  191. package/build/esm/hooks/useControlledState.d.ts +2 -6
  192. package/build/esm/hooks/useControlledState.js +8 -7
  193. package/build/esm/hooks/useControlledState.js.map +1 -1
  194. package/build/esm/hooks/useFocusReturn.d.ts +0 -0
  195. package/build/esm/hooks/useFocusReturn.js +2 -2
  196. package/build/esm/hooks/useFocusReturn.js.map +1 -1
  197. package/build/esm/hooks/useFocusState.d.ts +5 -5
  198. package/build/esm/hooks/useFocusState.js +1 -1
  199. package/build/esm/hooks/useFocusState.js.map +1 -1
  200. package/build/esm/hooks/useGestureHandlers.d.ts +5 -5
  201. package/build/esm/hooks/useGestureHandlers.js +23 -15
  202. package/build/esm/hooks/useGestureHandlers.js.map +1 -1
  203. package/build/esm/hooks/useMeasure.d.ts +2 -2
  204. package/build/esm/hooks/useMeasure.js +0 -1
  205. package/build/esm/hooks/useMeasure.js.map +1 -1
  206. package/build/esm/hooks/useOnClickOutside.d.ts +2 -2
  207. package/build/esm/hooks/useOnClickOutside.js.map +1 -1
  208. package/build/esm/hooks/useOnKeyDown.d.ts +1 -1
  209. package/build/esm/hooks/useOnKeyDown.js +5 -5
  210. package/build/esm/hooks/useOnKeyDown.js.map +1 -1
  211. package/build/esm/hooks/useReducerMachine.d.ts +0 -0
  212. package/build/esm/hooks/useReducerMachine.js +2 -1
  213. package/build/esm/hooks/useReducerMachine.js.map +1 -1
  214. package/build/esm/hooks/useRemoveBodyScroll.d.ts +2 -1
  215. package/build/esm/hooks/useRemoveBodyScroll.js +12 -8
  216. package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
  217. package/build/esm/hooks/useScope.d.ts +0 -0
  218. package/build/esm/hooks/useScope.js.map +1 -1
  219. package/build/esm/hooks/useThrottle.d.ts +0 -0
  220. package/build/esm/hooks/useThrottle.js.map +1 -1
  221. package/build/esm/index.d.ts +1 -0
  222. package/build/esm/index.js +1 -0
  223. package/build/esm/index.js.map +1 -1
  224. package/build/esm/utils/assign-ref.d.ts +3 -0
  225. package/build/esm/utils/{assignRef.js → assign-ref.js} +1 -1
  226. package/build/esm/utils/assign-ref.js.map +1 -0
  227. package/build/esm/utils/can-use-dom.d.ts +1 -0
  228. package/build/esm/utils/can-use-dom.js +4 -0
  229. package/build/esm/utils/can-use-dom.js.map +1 -0
  230. package/build/esm/utils/clamp.d.ts +0 -0
  231. package/build/esm/utils/clamp.js.map +1 -1
  232. package/build/esm/utils/context.d.ts +7 -0
  233. package/build/esm/utils/context.js +41 -0
  234. package/build/esm/utils/context.js.map +1 -0
  235. package/build/esm/utils/{createSubscription.d.ts → create-subscription.d.ts} +0 -0
  236. package/build/esm/utils/{createSubscription.js → create-subscription.js} +1 -1
  237. package/build/esm/utils/create-subscription.js.map +1 -0
  238. package/build/esm/utils/{getCircularIndex.d.ts → get-circular-index.d.ts} +0 -0
  239. package/build/esm/utils/{getCircularIndex.js → get-circular-index.js} +1 -1
  240. package/build/esm/utils/get-circular-index.js.map +1 -0
  241. package/build/esm/utils/index.d.ts +10 -4
  242. package/build/esm/utils/index.js +10 -4
  243. package/build/esm/utils/index.js.map +1 -1
  244. package/build/esm/utils/is-right-click.d.ts +6 -0
  245. package/build/esm/utils/is-right-click.js +9 -0
  246. package/build/esm/utils/is-right-click.js.map +1 -0
  247. package/build/esm/utils/owner-document.d.ts +7 -0
  248. package/build/esm/utils/owner-document.js +12 -0
  249. package/build/esm/utils/owner-document.js.map +1 -0
  250. package/build/esm/utils/polymorphic.d.ts +32 -0
  251. package/build/esm/utils/polymorphic.js +2 -0
  252. package/build/esm/utils/polymorphic.js.map +1 -0
  253. package/build/esm/utils/{rubberBandClamp.d.ts → rubber-band-clamp.d.ts} +0 -0
  254. package/build/esm/utils/{rubberBandClamp.js → rubber-band-clamp.js} +1 -1
  255. package/build/esm/utils/rubber-band-clamp.js.map +1 -0
  256. package/build/esm/utils/use-stable-callback.d.ts +16 -0
  257. package/build/esm/utils/use-stable-callback.js +43 -0
  258. package/build/esm/utils/use-stable-callback.js.map +1 -0
  259. package/build/esm/utils/wrap-event.d.ts +3 -0
  260. package/build/esm/utils/{wrapEvent.js → wrap-event.js} +1 -1
  261. package/build/esm/utils/wrap-event.js.map +1 -0
  262. package/build/tsconfig-build.tsbuildinfo +1 -0
  263. package/package.json +5 -6
  264. package/src/Accordion/Accordion.tsx +12 -6
  265. package/src/Accordion/AccordionBody.tsx +4 -5
  266. package/src/Accordion/AccordionHeader.tsx +30 -27
  267. package/src/Accordion/AccordionItem.tsx +12 -6
  268. package/src/Accordion/context.ts +3 -2
  269. package/src/CheckBox/CheckBox.tsx +5 -6
  270. package/src/ComboBox/ComboBox.story.tsx +3 -3
  271. package/src/ComboBox/Combobox.tsx +5 -8
  272. package/src/ComboBox/ComboboxButton.tsx +15 -9
  273. package/src/ComboBox/ComboboxInput.tsx +18 -10
  274. package/src/ComboBox/ComboboxLabel.tsx +4 -4
  275. package/src/ComboBox/ComboboxList.tsx +5 -6
  276. package/src/ComboBox/ComboboxOption.tsx +12 -8
  277. package/src/ComboBox/ComboboxPopover.tsx +15 -10
  278. package/src/ComboBox/context.ts +10 -9
  279. package/src/ComboBox/hooks.tsx +4 -3
  280. package/src/FocusLock/FocusLock.tsx +13 -7
  281. package/src/FocusLock/useFocusLock.ts +4 -3
  282. package/src/List/List.tsx +5 -5
  283. package/src/List/ListItem.tsx +5 -5
  284. package/src/Menu/Menu.story.tsx +2 -2
  285. package/src/Menu/Menu.tsx +13 -7
  286. package/src/Menu/MenuButton.tsx +13 -10
  287. package/src/Menu/MenuItem.tsx +15 -11
  288. package/src/Menu/MenuList.tsx +6 -6
  289. package/src/Menu/MenuPopover.tsx +4 -4
  290. package/src/Menu/context.ts +9 -4
  291. package/src/Modal/Modal.tsx +11 -7
  292. package/src/Modal/ModalBackdrop.tsx +16 -11
  293. package/src/Popper/Popper.tsx +7 -7
  294. package/src/Popper/PopperArrow.tsx +6 -8
  295. package/src/RadioButton/RadioButton.tsx +11 -6
  296. package/src/RadioButton/RadioGroup.tsx +11 -9
  297. package/src/RadioButton/context.ts +2 -4
  298. package/src/SkipNav/SkipNav.tsx +5 -5
  299. package/src/Slider/Slider.story.tsx +45 -0
  300. package/src/Slider/Slider.tsx +1106 -0
  301. package/src/Slider/index.ts +1 -0
  302. package/src/Slider/styles.css +131 -0
  303. package/src/Spinner/Spinner.tsx +13 -9
  304. package/src/Spinner/SpinnerButton.tsx +11 -6
  305. package/src/Spinner/context.ts +2 -3
  306. package/src/Tabs/Tab.tsx +13 -8
  307. package/src/Tabs/TabList.tsx +5 -5
  308. package/src/Tabs/TabPanel.tsx +5 -5
  309. package/src/Tabs/TabPanels.tsx +4 -4
  310. package/src/Tabs/Tabs.tsx +5 -7
  311. package/src/Tabs/context.ts +2 -3
  312. package/src/Tooltip/Tooltip.story.tsx +3 -3
  313. package/src/Tooltip/Tooltip.tsx +13 -7
  314. package/src/Tooltip/stateMachine.ts +9 -13
  315. package/src/Tooltip/useTooltip.ts +17 -11
  316. package/src/hooks/useAutoFocus.ts +2 -1
  317. package/src/hooks/useControlledState.ts +14 -14
  318. package/src/hooks/useFocusState.ts +4 -3
  319. package/src/hooks/useGestureHandlers.ts +33 -19
  320. package/src/hooks/useMeasure.ts +2 -2
  321. package/src/hooks/useOnClickOutside.ts +2 -2
  322. package/src/hooks/useOnKeyDown.ts +4 -3
  323. package/src/hooks/useRemoveBodyScroll.ts +18 -8
  324. package/src/index.ts +1 -0
  325. package/src/utils/{assignRef.ts → assign-ref.ts} +4 -4
  326. package/src/utils/can-use-dom.ts +7 -0
  327. package/src/utils/context.tsx +48 -0
  328. package/src/utils/{createSubscription.ts → create-subscription.ts} +0 -0
  329. package/src/utils/{getCircularIndex.ts → get-circular-index.ts} +0 -0
  330. package/src/utils/index.ts +10 -4
  331. package/src/utils/is-right-click.ts +14 -0
  332. package/src/utils/owner-document.ts +13 -0
  333. package/src/utils/polymorphic.ts +72 -0
  334. package/src/utils/{rubberBandClamp.ts → rubber-band-clamp.ts} +0 -0
  335. package/src/utils/use-stable-callback.ts +58 -0
  336. package/src/utils/wrap-event.ts +22 -0
  337. package/build/esm/hooks/useId.d.ts +0 -3
  338. package/build/esm/hooks/useId.js +0 -16
  339. package/build/esm/hooks/useId.js.map +0 -1
  340. package/build/esm/utils/assignRef.d.ts +0 -3
  341. package/build/esm/utils/assignRef.js.map +0 -1
  342. package/build/esm/utils/createSubscription.js.map +0 -1
  343. package/build/esm/utils/getCircularIndex.js.map +0 -1
  344. package/build/esm/utils/rubberBandClamp.js.map +0 -1
  345. package/build/esm/utils/wrapEvent.d.ts +0 -3
  346. package/build/esm/utils/wrapEvent.js.map +0 -1
  347. package/build/tsconfig.tsbuildinfo +0 -1
  348. package/src/utils/wrapEvent.ts +0 -20
@@ -1,6 +1,6 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import { useState } from 'react';
3
- import { wrapEvent } from '../utils/wrapEvent';
3
+ import { wrapEvent } from '../utils/wrap-event';
4
4
  export function useFocusState() {
5
5
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
6
  var onFocus = props.onFocus,
@@ -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;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 { useState } from 'react';\n\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,"file":"useFocusState.js","names":["useState","wrapEvent","useFocusState","props","onFocus","onBlur","hasFocus","setHasFocus","handleFocus","handleBlur","bind"],"sources":["../../../src/hooks/useFocusState.ts"],"sourcesContent":["import type { FocusEventHandler } from 'react';\nimport { useState } from 'react';\n\nimport { wrapEvent } from '../utils/wrap-event';\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"],"mappings":";AACA,SAASA,QAAT,QAAyB,OAAzB;AAEA,SAASC,SAAT,QAA0B,qBAA1B;AAEA,OAAO,SAASC,aAAT,GAKL;EAAA,IAJAC,KAIA,uEADI,EACJ;EACA,IAAQC,OAAR,GAA4BD,KAA5B,CAAQC,OAAR;EAAA,IAAiBC,MAAjB,GAA4BF,KAA5B,CAAiBE,MAAjB;;EACA,gBAAgCL,QAAQ,CAAC,KAAD,CAAxC;EAAA;EAAA,IAAOM,QAAP;EAAA,IAAiBC,WAAjB;;EAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;IACxBD,WAAW,CAAC,IAAD,CAAX;EACD,CAFD;;EAIA,IAAME,UAAU,GAAG,SAAbA,UAAa,GAAM;IACvBF,WAAW,CAAC,KAAD,CAAX;EACD,CAFD;;EAIA,OAAO;IACLG,IAAI,EAAE;MACJN,OAAO,EAAEH,SAAS,CAACG,OAAD,EAAUI,WAAV,CADd;MAEJH,MAAM,EAAEJ,SAAS,CAACI,MAAD,EAASI,UAAT;IAFb,CADD;IAKLH,QAAQ,EAARA;EALK,CAAP;AAOD"}
@@ -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,5 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import { useRef } from 'react';
3
+ import { getOwnerDocument } from '../utils';
3
4
  export var initialGestureHandlersState = {
4
5
  target: null,
5
6
  x: 0,
@@ -36,7 +37,7 @@ export function gestureHandlers(set, containerRef) {
36
37
  var xVelocity = calcVelocity(xDelta, deltaTime, state.xVelocity);
37
38
  var yVelocity = calcVelocity(yDelta, deltaTime, state.yVelocity);
38
39
 
39
- var newState = _extends({}, state, {
40
+ var newState = _extends(_extends({}, state), {}, {
40
41
  xVelocity: xVelocity,
41
42
  yVelocity: yVelocity,
42
43
  target: null,
@@ -52,7 +53,7 @@ export function gestureHandlers(set, containerRef) {
52
53
  pageX = e.pageX,
53
54
  pageY = e.pageY;
54
55
  set(function (state) {
55
- var newState = _extends({}, state, {
56
+ var newState = _extends(_extends({}, state), {}, {
56
57
  target: target,
57
58
  x: pageX,
58
59
  xDelta: 0,
@@ -115,7 +116,7 @@ export function gestureHandlers(set, containerRef) {
115
116
  var yDeltaPercent = yDelta * 100 / height;
116
117
  var yVelocity = calcVelocity(yDelta, deltaTime, state.yVelocity);
117
118
 
118
- var newState = _extends({}, state, {
119
+ var newState = _extends(_extends({}, state), {}, {
119
120
  xDelta: xDelta,
120
121
  xDeltaPercent: xDeltaPercent,
121
122
  x: pageX,
@@ -154,20 +155,23 @@ export function gestureHandlers(set, containerRef) {
154
155
 
155
156
  if (ensureTargetIsContainer && containerRef && e.target !== containerRef.current) {
156
157
  return;
157
- }
158
+ } // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
159
+
158
160
 
159
- window.addEventListener('touchmove', handleTouchMove, {
161
+ var ownerDocument = getOwnerDocument(e.currentTarget);
162
+ var ownerWindow = ownerDocument.defaultView || window;
163
+ ownerWindow.addEventListener('touchmove', handleTouchMove, {
160
164
  passive: false
161
165
  });
162
- window.addEventListener('touchend', handleTouchEnd);
163
- window.addEventListener('touchcancel', handleTouchEnd);
166
+ ownerWindow.addEventListener('touchend', handleTouchEnd);
167
+ ownerWindow.addEventListener('touchcancel', handleTouchEnd);
164
168
  handleDown(e.touches.item(0));
165
169
  }
166
170
 
167
171
  function handleTouchEnd() {
168
- window.removeEventListener('touchmove', handleTouchMove);
169
- window.removeEventListener('touchend', handleTouchEnd);
170
- window.removeEventListener('touchcancel', handleTouchEnd);
172
+ this.removeEventListener('touchmove', handleTouchMove);
173
+ this.removeEventListener('touchend', handleTouchEnd);
174
+ this.removeEventListener('touchcancel', handleTouchEnd);
171
175
  handleUp();
172
176
  } // Mouse handlers
173
177
 
@@ -175,18 +179,22 @@ export function gestureHandlers(set, containerRef) {
175
179
  function handleMouseDown(e) {
176
180
  if (ensureTargetIsContainer && containerRef && e.target !== containerRef.current) {
177
181
  return;
178
- }
182
+ } // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
183
+
184
+
185
+ var ownerDocument = getOwnerDocument(e.currentTarget);
186
+ var ownerWindow = ownerDocument.defaultView || window;
179
187
 
180
188
  if (e.button === 0) {
181
- window.addEventListener('mousemove', handleMove);
182
- window.addEventListener('mouseup', handleMouseUp);
189
+ ownerWindow.addEventListener('mousemove', handleMove);
190
+ ownerWindow.addEventListener('mouseup', handleMouseUp);
183
191
  handleDown(e);
184
192
  }
185
193
  }
186
194
 
187
195
  function handleMouseUp() {
188
- window.removeEventListener('mousemove', handleMove);
189
- window.removeEventListener('mouseup', handleMouseUp);
196
+ this.removeEventListener('mousemove', handleMove);
197
+ this.removeEventListener('mouseup', handleMouseUp);
190
198
  handleUp();
191
199
  }
192
200
  /* eslint-enable @typescript-eslint/no-use-before-define */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useGestureHandlers.ts"],"names":["useRef","initialGestureHandlersState","target","x","xDelta","xDeltaPercent","xInitial","xPrev","xVelocity","y","yDelta","yDeltaPercent","yInitial","yPrev","yVelocity","startTime","down","scrollLocked","FRAMERATE_CONST","VELOCITY_DEPR_FACTOR","gestureHandlers","set","containerRef","options","ensureTargetIsContainer","minTouchDelta","handleUp","state","deltaTime","Date","now","calcVelocity","newState","handleDown","e","pageX","pageY","deltaSpace","prevVelocity","speed","depr","Math","min","handleMove","cancelable","preventDefault","getDeltaSum","currentPos","initialPos","prevPos","abs","current","width","offsetWidth","NaN","height","offsetHeight","handleTouchMove","touches","item","handleTouchStart","length","window","addEventListener","passive","handleTouchEnd","removeEventListener","handleMouseDown","button","handleMouseUp","onMouseDown","onTouchStart","useGestureHandlers","onGesture","cb","handlers"],"mappings":"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","sourcesContent":["import { useRef } from 'react';\nimport type * as React from 'react';\n\nexport interface GestureHandlersState {\n target: null | EventTarget;\n x: number;\n xDelta: number;\n xDeltaPercent: number;\n xInitial: number;\n xPrev: number;\n xVelocity: number;\n y: number;\n yDelta: number;\n yDeltaPercent: number;\n yInitial: number;\n yPrev: number;\n yVelocity: number;\n startTime: number;\n down: boolean;\n scrollLocked: boolean;\n}\n\ntype SetStateFunc<S> = (\n state: (prevState: Readonly<S>) => S,\n callback?: () => void\n) => void;\n\nexport interface GestureHandlersReturn {\n onMouseDown: (e: React.MouseEvent<HTMLElement>) => void;\n onTouchStart: (e: React.TouchEvent<HTMLElement>) => void;\n}\n\nexport interface GestureHandlerOptions {\n ensureTargetIsContainer?: boolean;\n minTouchDelta?: number;\n}\n\nexport const initialGestureHandlersState: GestureHandlersState = {\n target: null,\n x: 0,\n xDelta: 0,\n xDeltaPercent: 0,\n xInitial: 0,\n xPrev: 0,\n xVelocity: 0,\n y: 0,\n yDelta: 0,\n yDeltaPercent: 0,\n yInitial: 0,\n yPrev: 0,\n yVelocity: 0,\n startTime: 0,\n down: false,\n scrollLocked: false,\n};\n\nconst FRAMERATE_CONST = 1000 / 60; // 60 fps\nconst VELOCITY_DEPR_FACTOR = FRAMERATE_CONST * 2;\n\nexport function gestureHandlers(\n set: SetStateFunc<GestureHandlersState>,\n containerRef?: React.MutableRefObject<HTMLElement | null>,\n options: GestureHandlerOptions = {}\n): GestureHandlersReturn {\n const { ensureTargetIsContainer = false, minTouchDelta = 0 } = options;\n\n // Common handlers\n const handleUp = () => {\n set((state: GestureHandlersState) => {\n const deltaTime = Date.now() - state.startTime;\n const xDelta = state.x - state.xInitial;\n const yDelta = state.y - state.yInitial;\n const xVelocity = calcVelocity(xDelta, deltaTime, state.xVelocity);\n const yVelocity = calcVelocity(yDelta, deltaTime, state.yVelocity);\n const newState: GestureHandlersState = {\n ...state,\n xVelocity,\n yVelocity,\n target: null,\n down: false,\n };\n\n return newState;\n });\n };\n\n const handleDown = (e: MouseEvent) => {\n const { target, pageX, pageY } = e;\n\n set((state: GestureHandlersState) => {\n const newState = {\n ...state,\n target,\n x: pageX,\n xDelta: 0,\n xDeltaPercent: 0,\n xVelocity: 0,\n xInitial: pageX,\n xPrev: pageX,\n y: pageY,\n yDelta: 0,\n yDeltaPercent: 0,\n yVelocity: 0,\n yInitial: pageY,\n yPrev: pageY,\n startTime: Date.now(),\n down: true,\n scrollLocked: false,\n };\n\n return newState;\n });\n };\n\n function calcVelocity(\n deltaSpace: number,\n deltaTime: number,\n prevVelocity: number\n ) {\n if (deltaTime < 1) {\n deltaTime = 1;\n }\n const speed = deltaSpace / deltaTime;\n const depr = 0.5 + Math.min(deltaTime / VELOCITY_DEPR_FACTOR, 0.5);\n return speed * depr + prevVelocity * (1 - depr);\n }\n\n function handleMove(e: MouseEvent) {\n const { pageX, pageY } = e;\n if (e.cancelable) {\n // prevent drag & drop behaviour from browser\n e.preventDefault && e.preventDefault();\n }\n\n set((state: GestureHandlersState) => {\n function getDeltaSum(\n currentPos: number,\n initialPos: number,\n prevPos: number\n ): number {\n if (\n state.scrollLocked ||\n Math.abs(currentPos - initialPos) >= minTouchDelta\n ) {\n state.scrollLocked = true;\n return currentPos - prevPos;\n }\n return 0;\n }\n\n const target =\n (containerRef && containerRef.current) || (e as any).target;\n\n const deltaTime = Date.now() - state.startTime;\n\n const width = target ? target.offsetWidth : NaN;\n const xDelta = state.xDelta + getDeltaSum(pageX, state.xInitial, state.x);\n const xDeltaPercent = (xDelta * 100) / width;\n const xVelocity = calcVelocity(xDelta, deltaTime, state.xVelocity);\n\n const height = target ? target.offsetHeight : NaN;\n const yDelta = state.yDelta + getDeltaSum(pageY, state.yInitial, state.y);\n const yDeltaPercent = (yDelta * 100) / height;\n const yVelocity = calcVelocity(yDelta, deltaTime, state.yVelocity);\n\n const newState = {\n ...state,\n xDelta,\n xDeltaPercent,\n x: pageX,\n xPrev: state.x,\n xVelocity,\n yDelta,\n yDeltaPercent,\n y: pageY,\n yPrev: state.y,\n yVelocity,\n };\n\n return newState;\n });\n }\n\n // Touch handlers\n\n /* eslint-disable @typescript-eslint/no-use-before-define */\n function handleTouchMove(e: TouchEvent) {\n if (e.cancelable) {\n // prevent drag & drop behaviour from browser\n e.preventDefault();\n }\n handleMove(e.touches.item(0) as any);\n }\n\n function handleTouchStart(e: React.TouchEvent<HTMLElement>) {\n // making sure we're not dragging the element when more than one finger press the screen\n const { touches } = e;\n if (touches.length > 1) {\n return;\n }\n\n if (\n ensureTargetIsContainer &&\n containerRef &&\n e.target !== containerRef.current\n ) {\n return;\n }\n\n window.addEventListener('touchmove', handleTouchMove, { passive: false });\n window.addEventListener('touchend', handleTouchEnd);\n window.addEventListener('touchcancel', handleTouchEnd);\n handleDown(e.touches.item(0) as any);\n }\n\n function handleTouchEnd() {\n window.removeEventListener('touchmove', handleTouchMove);\n window.removeEventListener('touchend', handleTouchEnd);\n window.removeEventListener('touchcancel', handleTouchEnd);\n handleUp();\n }\n\n // Mouse handlers\n function handleMouseDown(e: React.MouseEvent<HTMLElement>) {\n if (\n ensureTargetIsContainer &&\n containerRef &&\n e.target !== containerRef.current\n ) {\n return;\n }\n\n if (e.button === 0) {\n window.addEventListener('mousemove', handleMove);\n window.addEventListener('mouseup', handleMouseUp);\n handleDown(e as any);\n }\n }\n\n function handleMouseUp() {\n window.removeEventListener('mousemove', handleMove);\n window.removeEventListener('mouseup', handleMouseUp);\n handleUp();\n }\n /* eslint-enable @typescript-eslint/no-use-before-define */\n\n return {\n onMouseDown: handleMouseDown,\n onTouchStart: handleTouchStart,\n };\n}\n\nexport const useGestureHandlers = (\n containerRef: React.MutableRefObject<HTMLElement | null> | undefined,\n onGesture: (e: GestureHandlersState) => void,\n options: GestureHandlerOptions = {}\n) => {\n const state = useRef({ ...initialGestureHandlersState });\n\n const set = (\n cb: (prevState: GestureHandlersState) => GestureHandlersState\n ) => {\n state.current = cb(state.current);\n onGesture && onGesture(state.current);\n\n return state.current;\n };\n\n const handlers = gestureHandlers(set, containerRef, options);\n\n return { state: state.current, handlers };\n};\n"],"file":"useGestureHandlers.js"}
1
+ {"version":3,"file":"useGestureHandlers.js","names":["useRef","getOwnerDocument","initialGestureHandlersState","target","x","xDelta","xDeltaPercent","xInitial","xPrev","xVelocity","y","yDelta","yDeltaPercent","yInitial","yPrev","yVelocity","startTime","down","scrollLocked","FRAMERATE_CONST","VELOCITY_DEPR_FACTOR","gestureHandlers","set","containerRef","options","ensureTargetIsContainer","minTouchDelta","handleUp","state","deltaTime","Date","now","calcVelocity","newState","handleDown","e","pageX","pageY","deltaSpace","prevVelocity","speed","depr","Math","min","handleMove","cancelable","preventDefault","getDeltaSum","currentPos","initialPos","prevPos","abs","current","width","offsetWidth","NaN","height","offsetHeight","handleTouchMove","touches","item","handleTouchStart","length","ownerDocument","currentTarget","ownerWindow","defaultView","window","addEventListener","passive","handleTouchEnd","removeEventListener","handleMouseDown","button","handleMouseUp","onMouseDown","onTouchStart","useGestureHandlers","onGesture","cb","handlers"],"sources":["../../../src/hooks/useGestureHandlers.ts"],"sourcesContent":["import type {\n MutableRefObject,\n MouseEvent as ReactMouseEvent,\n TouchEvent as ReactTouchEvent,\n} from 'react';\nimport { useRef } from 'react';\n\nimport { getOwnerDocument } from '../utils';\n\nexport interface GestureHandlersState {\n target: null | EventTarget;\n x: number;\n xDelta: number;\n xDeltaPercent: number;\n xInitial: number;\n xPrev: number;\n xVelocity: number;\n y: number;\n yDelta: number;\n yDeltaPercent: number;\n yInitial: number;\n yPrev: number;\n yVelocity: number;\n startTime: number;\n down: boolean;\n scrollLocked: boolean;\n}\n\ntype SetStateFunc<S> = (\n state: (prevState: Readonly<S>) => S,\n callback?: () => void\n) => void;\n\nexport interface GestureHandlersReturn {\n onMouseDown: (e: ReactMouseEvent<HTMLElement>) => void;\n onTouchStart: (e: ReactTouchEvent<HTMLElement>) => void;\n}\n\nexport interface GestureHandlerOptions {\n ensureTargetIsContainer?: boolean;\n minTouchDelta?: number;\n}\n\nexport const initialGestureHandlersState: GestureHandlersState = {\n target: null,\n x: 0,\n xDelta: 0,\n xDeltaPercent: 0,\n xInitial: 0,\n xPrev: 0,\n xVelocity: 0,\n y: 0,\n yDelta: 0,\n yDeltaPercent: 0,\n yInitial: 0,\n yPrev: 0,\n yVelocity: 0,\n startTime: 0,\n down: false,\n scrollLocked: false,\n};\n\nconst FRAMERATE_CONST = 1000 / 60; // 60 fps\nconst VELOCITY_DEPR_FACTOR = FRAMERATE_CONST * 2;\n\nexport function gestureHandlers(\n set: SetStateFunc<GestureHandlersState>,\n containerRef?: MutableRefObject<HTMLElement | null>,\n options: GestureHandlerOptions = {}\n): GestureHandlersReturn {\n const { ensureTargetIsContainer = false, minTouchDelta = 0 } = options;\n\n // Common handlers\n const handleUp = () => {\n set((state: GestureHandlersState) => {\n const deltaTime = Date.now() - state.startTime;\n const xDelta = state.x - state.xInitial;\n const yDelta = state.y - state.yInitial;\n const xVelocity = calcVelocity(xDelta, deltaTime, state.xVelocity);\n const yVelocity = calcVelocity(yDelta, deltaTime, state.yVelocity);\n const newState: GestureHandlersState = {\n ...state,\n xVelocity,\n yVelocity,\n target: null,\n down: false,\n };\n\n return newState;\n });\n };\n\n const handleDown = (e: MouseEvent) => {\n const { target, pageX, pageY } = e;\n\n set((state: GestureHandlersState) => {\n const newState = {\n ...state,\n target,\n x: pageX,\n xDelta: 0,\n xDeltaPercent: 0,\n xVelocity: 0,\n xInitial: pageX,\n xPrev: pageX,\n y: pageY,\n yDelta: 0,\n yDeltaPercent: 0,\n yVelocity: 0,\n yInitial: pageY,\n yPrev: pageY,\n startTime: Date.now(),\n down: true,\n scrollLocked: false,\n };\n\n return newState;\n });\n };\n\n function calcVelocity(\n deltaSpace: number,\n deltaTime: number,\n prevVelocity: number\n ) {\n if (deltaTime < 1) {\n deltaTime = 1;\n }\n const speed = deltaSpace / deltaTime;\n const depr = 0.5 + Math.min(deltaTime / VELOCITY_DEPR_FACTOR, 0.5);\n return speed * depr + prevVelocity * (1 - depr);\n }\n\n function handleMove(e: MouseEvent) {\n const { pageX, pageY } = e;\n if (e.cancelable) {\n // prevent drag & drop behaviour from browser\n e.preventDefault && e.preventDefault();\n }\n\n set((state: GestureHandlersState) => {\n function getDeltaSum(\n currentPos: number,\n initialPos: number,\n prevPos: number\n ): number {\n if (\n state.scrollLocked ||\n Math.abs(currentPos - initialPos) >= minTouchDelta\n ) {\n state.scrollLocked = true;\n return currentPos - prevPos;\n }\n return 0;\n }\n\n const target =\n (containerRef && containerRef.current) || (e as any).target;\n\n const deltaTime = Date.now() - state.startTime;\n\n const width = target ? target.offsetWidth : NaN;\n const xDelta = state.xDelta + getDeltaSum(pageX, state.xInitial, state.x);\n const xDeltaPercent = (xDelta * 100) / width;\n const xVelocity = calcVelocity(xDelta, deltaTime, state.xVelocity);\n\n const height = target ? target.offsetHeight : NaN;\n const yDelta = state.yDelta + getDeltaSum(pageY, state.yInitial, state.y);\n const yDeltaPercent = (yDelta * 100) / height;\n const yVelocity = calcVelocity(yDelta, deltaTime, state.yVelocity);\n\n const newState = {\n ...state,\n xDelta,\n xDeltaPercent,\n x: pageX,\n xPrev: state.x,\n xVelocity,\n yDelta,\n yDeltaPercent,\n y: pageY,\n yPrev: state.y,\n yVelocity,\n };\n\n return newState;\n });\n }\n\n // Touch handlers\n\n /* eslint-disable @typescript-eslint/no-use-before-define */\n function handleTouchMove(e: TouchEvent) {\n if (e.cancelable) {\n // prevent drag & drop behaviour from browser\n e.preventDefault();\n }\n handleMove(e.touches.item(0) as any);\n }\n\n function handleTouchStart(e: ReactTouchEvent<HTMLElement>) {\n // making sure we're not dragging the element when more than one finger press the screen\n const { touches } = e;\n if (touches.length > 1) {\n return;\n }\n\n if (\n ensureTargetIsContainer &&\n containerRef &&\n e.target !== containerRef.current\n ) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const ownerDocument = getOwnerDocument(e.currentTarget)!;\n const ownerWindow = ownerDocument.defaultView || window;\n ownerWindow.addEventListener('touchmove', handleTouchMove, {\n passive: false,\n });\n ownerWindow.addEventListener('touchend', handleTouchEnd);\n ownerWindow.addEventListener('touchcancel', handleTouchEnd);\n handleDown(e.touches.item(0) as any);\n }\n\n function handleTouchEnd(this: Window) {\n this.removeEventListener('touchmove', handleTouchMove);\n this.removeEventListener('touchend', handleTouchEnd);\n this.removeEventListener('touchcancel', handleTouchEnd);\n handleUp();\n }\n\n // Mouse handlers\n function handleMouseDown(e: ReactMouseEvent<HTMLElement>) {\n if (\n ensureTargetIsContainer &&\n containerRef &&\n e.target !== containerRef.current\n ) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const ownerDocument = getOwnerDocument(e.currentTarget)!;\n const ownerWindow = ownerDocument.defaultView || window;\n if (e.button === 0) {\n ownerWindow.addEventListener('mousemove', handleMove);\n ownerWindow.addEventListener('mouseup', handleMouseUp);\n handleDown(e as any);\n }\n }\n\n function handleMouseUp(this: Window) {\n this.removeEventListener('mousemove', handleMove);\n this.removeEventListener('mouseup', handleMouseUp);\n handleUp();\n }\n /* eslint-enable @typescript-eslint/no-use-before-define */\n\n return {\n onMouseDown: handleMouseDown,\n onTouchStart: handleTouchStart,\n };\n}\n\nexport const useGestureHandlers = (\n containerRef: MutableRefObject<HTMLElement | null> | undefined,\n onGesture: (e: GestureHandlersState) => void,\n options: GestureHandlerOptions = {}\n) => {\n const state = useRef({ ...initialGestureHandlersState });\n\n const set = (\n cb: (prevState: GestureHandlersState) => GestureHandlersState\n ) => {\n state.current = cb(state.current);\n onGesture && onGesture(state.current);\n\n return state.current;\n };\n\n const handlers = gestureHandlers(set, containerRef, options);\n\n return { state: state.current, handlers };\n};\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- /// <reference types="react" />
2
- export declare function useMeasure(ref: React.MutableRefObject<HTMLElement | null>): {
1
+ import type { MutableRefObject } from 'react';
2
+ export declare function useMeasure(ref: MutableRefObject<HTMLElement | null>): {
3
3
  left: number;
4
4
  top: number;
5
5
  width: number;
@@ -1,6 +1,5 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import { useRef, useState, useEffect } from 'react';
3
- import ResizeObserver from 'resize-observer-polyfill';
4
3
  export function useMeasure(ref) {
5
4
  var ro = useRef(null);
6
5
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useMeasure.ts"],"names":["useRef","useState","useEffect","ResizeObserver","useMeasure","ref","ro","left","top","width","height","bounds","setBounds","current","entries","entry","contentRect","observe","disconnect"],"mappings":";AAAA,SAASA,MAAT,EAAiBC,QAAjB,EAA2BC,SAA3B,QAA4C,OAA5C;AACA,OAAOC,cAAP,MAA2B,0BAA3B;AAEA,OAAO,SAASC,UAAT,CAAoBC,GAApB,EAAqE;AAC1E,MAAMC,EAAE,GAAGN,MAAM,CAAwB,IAAxB,CAAjB;;AAD0E,kBAE9CC,QAAQ,CAAC;AACnCM,IAAAA,IAAI,EAAE,CAD6B;AAEnCC,IAAAA,GAAG,EAAE,CAF8B;AAGnCC,IAAAA,KAAK,EAAE,CAH4B;AAInCC,IAAAA,MAAM,EAAE;AAJ2B,GAAD,CAFsC;AAAA;AAAA,MAEnEC,MAFmE;AAAA,MAE3DC,SAF2D;;AAS1EV,EAAAA,SAAS,CAAC,YAAM;AACd,QAAII,EAAE,CAACO,OAAH,KAAe,IAAnB,EAAyB;AACvBP,MAAAA,EAAE,CAACO,OAAH,GAAa,IAAIV,cAAJ,CAAmB,UAACW,OAAD,EAAkB;AAChD,YAAMC,KAAK,GAAGD,OAAO,CAAC,CAAD,CAArB;AACAF,QAAAA,SAAS,CAACG,KAAK,CAACC,WAAP,CAAT;AACD,OAHY,CAAb;AAID;;AAED,QAAIX,GAAG,CAACQ,OAAR,EAAiB;AACfP,MAAAA,EAAE,CAACO,OAAH,CAAWI,OAAX,CAAmBZ,GAAG,CAACQ,OAAvB;AACD;;AAED,WAAO,YAAM;AACX,UAAIP,EAAE,CAACO,OAAP,EAAgB;AACdP,QAAAA,EAAE,CAACO,OAAH,CAAWK,UAAX;AACD;AACF,KAJD;AAKD,GAjBQ,EAiBN,CAACb,GAAD,CAjBM,CAAT;AAmBA,SAAOM,MAAP;AACD","sourcesContent":["import { useRef, useState, useEffect } from 'react';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nexport function useMeasure(ref: React.MutableRefObject<HTMLElement | null>) {\n const ro = useRef<ResizeObserver | null>(null);\n const [bounds, setBounds] = useState({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n });\n\n useEffect(() => {\n if (ro.current === null) {\n ro.current = new ResizeObserver((entries: any) => {\n const entry = entries[0];\n setBounds(entry.contentRect);\n });\n }\n\n if (ref.current) {\n ro.current.observe(ref.current);\n }\n\n return () => {\n if (ro.current) {\n ro.current.disconnect();\n }\n };\n }, [ref]);\n\n return bounds;\n}\n"],"file":"useMeasure.js"}
1
+ {"version":3,"file":"useMeasure.js","names":["useRef","useState","useEffect","useMeasure","ref","ro","left","top","width","height","bounds","setBounds","current","ResizeObserver","entries","entry","contentRect","observe","disconnect"],"sources":["../../../src/hooks/useMeasure.ts"],"sourcesContent":["import type { MutableRefObject } from 'react';\nimport { useRef, useState, useEffect } from 'react';\n\nexport function useMeasure(ref: MutableRefObject<HTMLElement | null>) {\n const ro = useRef<ResizeObserver | null>(null);\n const [bounds, setBounds] = useState({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n });\n\n useEffect(() => {\n if (ro.current === null) {\n ro.current = new ResizeObserver((entries: any) => {\n const entry = entries[0];\n setBounds(entry.contentRect);\n });\n }\n\n if (ref.current) {\n ro.current.observe(ref.current);\n }\n\n return () => {\n if (ro.current) {\n ro.current.disconnect();\n }\n };\n }, [ref]);\n\n return bounds;\n}\n"],"mappings":";AACA,SAASA,MAAT,EAAiBC,QAAjB,EAA2BC,SAA3B,QAA4C,OAA5C;AAEA,OAAO,SAASC,UAAT,CAAoBC,GAApB,EAA+D;EACpE,IAAMC,EAAE,GAAGL,MAAM,CAAwB,IAAxB,CAAjB;;EACA,gBAA4BC,QAAQ,CAAC;IACnCK,IAAI,EAAE,CAD6B;IAEnCC,GAAG,EAAE,CAF8B;IAGnCC,KAAK,EAAE,CAH4B;IAInCC,MAAM,EAAE;EAJ2B,CAAD,CAApC;EAAA;EAAA,IAAOC,MAAP;EAAA,IAAeC,SAAf;;EAOAT,SAAS,CAAC,YAAM;IACd,IAAIG,EAAE,CAACO,OAAH,KAAe,IAAnB,EAAyB;MACvBP,EAAE,CAACO,OAAH,GAAa,IAAIC,cAAJ,CAAmB,UAACC,OAAD,EAAkB;QAChD,IAAMC,KAAK,GAAGD,OAAO,CAAC,CAAD,CAArB;QACAH,SAAS,CAACI,KAAK,CAACC,WAAP,CAAT;MACD,CAHY,CAAb;IAID;;IAED,IAAIZ,GAAG,CAACQ,OAAR,EAAiB;MACfP,EAAE,CAACO,OAAH,CAAWK,OAAX,CAAmBb,GAAG,CAACQ,OAAvB;IACD;;IAED,OAAO,YAAM;MACX,IAAIP,EAAE,CAACO,OAAP,EAAgB;QACdP,EAAE,CAACO,OAAH,CAAWM,UAAX;MACD;IACF,CAJD;EAKD,CAjBQ,EAiBN,CAACd,GAAD,CAjBM,CAAT;EAmBA,OAAOM,MAAP;AACD"}
@@ -1,2 +1,2 @@
1
- import type * as React from 'react';
2
- export declare function useOnClickOutside(ref: React.RefObject<any>, handler: (e: PointerEvent) => void, active?: boolean): void;
1
+ import type { RefObject } from 'react';
2
+ export declare function useOnClickOutside(ref: RefObject<any>, handler: (e: PointerEvent) => void, active?: boolean): void;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useOnClickOutside.ts"],"names":["useEffect","useCallback","useOnClickOutside","ref","handler","active","listener","event","current","contains","target","document","addEventListener","removeEventListener"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,WAApB,QAAuC,OAAvC;AAGA,OAAO,SAASC,iBAAT,CACLC,GADK,EAELC,OAFK,EAIL;AAAA,MADAC,MACA,uEADS,IACT;AACA,MAAMC,QAAQ,GAAGL,WAAW,CAC1B,UAACM,KAAD,EAAyB;AACvB;AACA,QAAI,CAACJ,GAAG,CAACK,OAAL,IAAgBL,GAAG,CAACK,OAAJ,CAAYC,QAAZ,CAAqBF,KAAK,CAACG,MAA3B,CAApB,EAAwD;AACtD;AACD;;AAEDN,IAAAA,OAAO,IAAIA,OAAO,CAACG,KAAD,CAAlB;AACD,GARyB,EAS1B,CAACJ,GAAD,EAAMC,OAAN,CAT0B,CAA5B;AAYAJ,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIK,MAAJ,EAAY;AACVM,MAAAA,QAAQ,CAACC,gBAAT,CAA0B,WAA1B,EAAuCN,QAAvC;AAEA,aAAO,YAAM;AACXK,QAAAA,QAAQ,CAACE,mBAAT,CAA6B,WAA7B,EAA0CP,QAA1C;AACD,OAFD;AAGD;;AAED;AACD,GAVQ,EAUN,CAACA,QAAD,EAAWD,MAAX,CAVM,CAAT;AAWD","sourcesContent":["import { useEffect, useCallback } from 'react';\nimport type * as React from 'react';\n\nexport function useOnClickOutside(\n ref: React.RefObject<any>,\n handler: (e: PointerEvent) => void,\n active = true\n) {\n const listener = useCallback(\n (event: PointerEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n\n handler && handler(event);\n },\n [ref, handler]\n );\n\n useEffect(() => {\n if (active) {\n document.addEventListener('pointerup', listener);\n\n return () => {\n document.removeEventListener('pointerup', listener);\n };\n }\n\n return;\n }, [listener, active]);\n}\n"],"file":"useOnClickOutside.js"}
1
+ {"version":3,"file":"useOnClickOutside.js","names":["useEffect","useCallback","useOnClickOutside","ref","handler","active","listener","event","current","contains","target","document","addEventListener","removeEventListener"],"sources":["../../../src/hooks/useOnClickOutside.ts"],"sourcesContent":["import type { RefObject } from 'react';\nimport { useEffect, useCallback } from 'react';\n\nexport function useOnClickOutside(\n ref: RefObject<any>,\n handler: (e: PointerEvent) => void,\n active = true\n) {\n const listener = useCallback(\n (event: PointerEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n\n handler && handler(event);\n },\n [ref, handler]\n );\n\n useEffect(() => {\n if (active) {\n document.addEventListener('pointerup', listener);\n\n return () => {\n document.removeEventListener('pointerup', listener);\n };\n }\n\n return;\n }, [listener, active]);\n}\n"],"mappings":"AACA,SAASA,SAAT,EAAoBC,WAApB,QAAuC,OAAvC;AAEA,OAAO,SAASC,iBAAT,CACLC,GADK,EAELC,OAFK,EAIL;EAAA,IADAC,MACA,uEADS,IACT;EACA,IAAMC,QAAQ,GAAGL,WAAW,CAC1B,UAACM,KAAD,EAAyB;IACvB;IACA,IAAI,CAACJ,GAAG,CAACK,OAAL,IAAgBL,GAAG,CAACK,OAAJ,CAAYC,QAAZ,CAAqBF,KAAK,CAACG,MAA3B,CAApB,EAAwD;MACtD;IACD;;IAEDN,OAAO,IAAIA,OAAO,CAACG,KAAD,CAAlB;EACD,CARyB,EAS1B,CAACJ,GAAD,EAAMC,OAAN,CAT0B,CAA5B;EAYAJ,SAAS,CAAC,YAAM;IACd,IAAIK,MAAJ,EAAY;MACVM,QAAQ,CAACC,gBAAT,CAA0B,WAA1B,EAAuCN,QAAvC;MAEA,OAAO,YAAM;QACXK,QAAQ,CAACE,mBAAT,CAA6B,WAA7B,EAA0CP,QAA1C;MACD,CAFD;IAGD;;IAED;EACD,CAVQ,EAUN,CAACA,QAAD,EAAWD,MAAX,CAVM,CAAT;AAWD"}
@@ -1 +1 @@
1
- export declare function useOnKeyDown(handler: (e: KeyboardEvent) => void, active?: boolean): void;
1
+ export declare function useOnKeyDown(ownerWindow: Window, handler: (e: KeyboardEvent) => void, active?: boolean): void;
@@ -1,15 +1,15 @@
1
1
  import { useEffect } from 'react';
2
- export function useOnKeyDown(handler) {
3
- var active = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
2
+ export function useOnKeyDown(ownerWindow, handler) {
3
+ var active = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
4
4
  useEffect(function () {
5
5
  if (active) {
6
- window.addEventListener('keydown', handler);
6
+ ownerWindow.addEventListener('keydown', handler);
7
7
  return function () {
8
- window.removeEventListener('keydown', handler);
8
+ ownerWindow.removeEventListener('keydown', handler);
9
9
  };
10
10
  }
11
11
 
12
12
  return;
13
- }, [active, handler]);
13
+ }, [ownerWindow, active, handler]);
14
14
  }
15
15
  //# sourceMappingURL=useOnKeyDown.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useOnKeyDown.ts"],"names":["useEffect","useOnKeyDown","handler","active","window","addEventListener","removeEventListener"],"mappings":"AAAA,SAASA,SAAT,QAA0B,OAA1B;AAEA,OAAO,SAASC,YAAT,CACLC,OADK,EAGL;AAAA,MADAC,MACA,uEADS,IACT;AACAH,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIG,MAAJ,EAAY;AACVC,MAAAA,MAAM,CAACC,gBAAP,CAAwB,SAAxB,EAAmCH,OAAnC;AAEA,aAAO,YAAM;AACXE,QAAAA,MAAM,CAACE,mBAAP,CAA2B,SAA3B,EAAsCJ,OAAtC;AACD,OAFD;AAGD;;AAED;AACD,GAVQ,EAUN,CAACC,MAAD,EAASD,OAAT,CAVM,CAAT;AAWD","sourcesContent":["import { useEffect } from 'react';\n\nexport function useOnKeyDown(\n handler: (e: KeyboardEvent) => void,\n active = true\n) {\n useEffect(() => {\n if (active) {\n window.addEventListener('keydown', handler);\n\n return () => {\n window.removeEventListener('keydown', handler);\n };\n }\n\n return;\n }, [active, handler]);\n}\n"],"file":"useOnKeyDown.js"}
1
+ {"version":3,"file":"useOnKeyDown.js","names":["useEffect","useOnKeyDown","ownerWindow","handler","active","addEventListener","removeEventListener"],"sources":["../../../src/hooks/useOnKeyDown.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nexport function useOnKeyDown(\n ownerWindow: Window,\n handler: (e: KeyboardEvent) => void,\n active = true\n) {\n useEffect(() => {\n if (active) {\n ownerWindow.addEventListener('keydown', handler);\n\n return () => {\n ownerWindow.removeEventListener('keydown', handler);\n };\n }\n\n return;\n }, [ownerWindow, active, handler]);\n}\n"],"mappings":"AAAA,SAASA,SAAT,QAA0B,OAA1B;AAEA,OAAO,SAASC,YAAT,CACLC,WADK,EAELC,OAFK,EAIL;EAAA,IADAC,MACA,uEADS,IACT;EACAJ,SAAS,CAAC,YAAM;IACd,IAAII,MAAJ,EAAY;MACVF,WAAW,CAACG,gBAAZ,CAA6B,SAA7B,EAAwCF,OAAxC;MAEA,OAAO,YAAM;QACXD,WAAW,CAACI,mBAAZ,CAAgC,SAAhC,EAA2CH,OAA3C;MACD,CAFD;IAGD;;IAED;EACD,CAVQ,EAUN,CAACD,WAAD,EAAcE,MAAd,EAAsBD,OAAtB,CAVM,CAAT;AAWD"}
File without changes
@@ -1,6 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ var _excluded = ["state"];
4
5
  import { useReducer } from 'react';
5
6
  // This manages transitions between states with a built in reducer to manage
6
7
  // the data that goes with those transitions.
@@ -11,7 +12,7 @@ export function useReducerMachine(chart, reducer, initialData) {
11
12
  dispatch = _useReducer2[1];
12
13
 
13
14
  var state = reducerState.state,
14
- data = _objectWithoutProperties(reducerState, ["state"]);
15
+ data = _objectWithoutProperties(reducerState, _excluded);
15
16
 
16
17
  var transition = function transition(action) {
17
18
  var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useReducerMachine.ts"],"names":["useReducer","useReducerMachine","chart","reducer","initialData","reducerState","dispatch","state","data","transition","action","payload","currentState","states","Error","nextState","on","type"],"mappings":";;;AACA,SAASA,UAAT,QAA2B,OAA3B;AA4BA;AACA;AACA,OAAO,SAASC,iBAAT,CAMLC,KANK,EAOLC,OAPK,EAQLC,WARK,EAS+C;AAAA,oBACnBJ,UAAU,CAACG,OAAD,EAAUC,WAAV,CADS;AAAA;AAAA,MAC7CC,YAD6C;AAAA,MAC/BC,QAD+B;;AAAA,MAE5CC,KAF4C,GAEzBF,YAFyB,CAE5CE,KAF4C;AAAA,MAElCC,IAFkC,4BAEzBH,YAFyB;;AAIpD,MAAMI,UAAkC,GAAG,SAArCA,UAAqC,CAACC,MAAD,EAA0B;AAAA,QAAjBC,OAAiB,uEAAP,EAAO;AACnE,QAAMC,YAAY,GAAGV,KAAK,CAACW,MAAN,CAAaN,KAAb,CAArB;;AACA,QAAI,CAACK,YAAL,EAAmB;AACjB,YAAM,IAAIE,KAAJ,kCAAmCP,KAAnC,QAAN;AACD;;AAED,QAAMQ,SAA6B,GAAGH,YAAY,CAACI,EAAb,CAAgBN,MAAhB,CAAtC;;AACA,QAAI,CAACK,SAAL,EAAgB;AACd,YAAM,IAAID,KAAJ,4BAA6BJ,MAA7B,4BAAmDH,KAAnD,QAAN;AACD;;AAEDD,IAAAA,QAAQ;AAAGW,MAAAA,IAAI,EAAEP,MAAT;AAAiBK,MAAAA,SAAS,EAATA;AAAjB,OAA+BJ,OAA/B,EAAR;AACD,GAZD;;AAcA,SAAO,CAACJ,KAAD,EAAQC,IAAR,EAAcC,UAAd,CAAP;AACD","sourcesContent":["import type { Reducer } from 'react';\nimport { useReducer } from 'react';\n\nexport interface StateChart<STypes extends string, ATypes extends string> {\n initial: STypes;\n states: {\n [state in STypes]?: {\n enter?: (prevState: STypes, payload: any) => void;\n leave?: (nextState: STypes, payload: any) => void;\n on: { [action in ATypes]?: STypes };\n };\n };\n}\n\nexport interface StateMachineState<STypes, ATypes> {\n state: STypes;\n lastActionType: ATypes;\n}\n\nexport interface StateMachineAction<STypes, ATypes> {\n type: ATypes;\n nextState: STypes;\n}\n\ntype TransitionType<ATypes extends string> = (\n action: ATypes,\n payload: any\n) => void;\n\n// This manages transitions between states with a built in reducer to manage\n// the data that goes with those transitions.\nexport function useReducerMachine<\n S extends StateMachineState<STypes, ATypes>,\n A extends StateMachineAction<STypes, ATypes>,\n STypes extends string,\n ATypes extends string\n>(\n chart: StateChart<STypes, ATypes>,\n reducer: Reducer<S, A>,\n initialData: S\n): [STypes, Omit<S, 'state'>, TransitionType<ATypes>] {\n const [reducerState, dispatch] = useReducer(reducer, initialData);\n const { state, ...data } = reducerState;\n\n const transition: TransitionType<ATypes> = (action, payload = {}) => {\n const currentState = chart.states[state];\n if (!currentState) {\n throw new Error(`Unknown currentState \"${state}\"`);\n }\n\n const nextState: STypes | undefined = currentState.on[action];\n if (!nextState) {\n throw new Error(`Unknown action \"${action}\" for state \"${state}\"`);\n }\n\n dispatch({ type: action, nextState, ...payload } as any);\n };\n\n return [state, data, transition];\n}\n"],"file":"useReducerMachine.js"}
1
+ {"version":3,"file":"useReducerMachine.js","names":["useReducer","useReducerMachine","chart","reducer","initialData","reducerState","dispatch","state","data","transition","action","payload","currentState","states","Error","nextState","on","type"],"sources":["../../../src/hooks/useReducerMachine.ts"],"sourcesContent":["import type { Reducer } from 'react';\nimport { useReducer } from 'react';\n\nexport interface StateChart<STypes extends string, ATypes extends string> {\n initial: STypes;\n states: {\n [state in STypes]?: {\n enter?: (prevState: STypes, payload: any) => void;\n leave?: (nextState: STypes, payload: any) => void;\n on: { [action in ATypes]?: STypes };\n };\n };\n}\n\nexport interface StateMachineState<STypes, ATypes> {\n state: STypes;\n lastActionType: ATypes;\n}\n\nexport interface StateMachineAction<STypes, ATypes> {\n type: ATypes;\n nextState: STypes;\n}\n\ntype TransitionType<ATypes extends string> = (\n action: ATypes,\n payload: any\n) => void;\n\n// This manages transitions between states with a built in reducer to manage\n// the data that goes with those transitions.\nexport function useReducerMachine<\n S extends StateMachineState<STypes, ATypes>,\n A extends StateMachineAction<STypes, ATypes>,\n STypes extends string,\n ATypes extends string\n>(\n chart: StateChart<STypes, ATypes>,\n reducer: Reducer<S, A>,\n initialData: S\n): [STypes, Omit<S, 'state'>, TransitionType<ATypes>] {\n const [reducerState, dispatch] = useReducer(reducer, initialData);\n const { state, ...data } = reducerState;\n\n const transition: TransitionType<ATypes> = (action, payload = {}) => {\n const currentState = chart.states[state];\n if (!currentState) {\n throw new Error(`Unknown currentState \"${state}\"`);\n }\n\n const nextState: STypes | undefined = currentState.on[action];\n if (!nextState) {\n throw new Error(`Unknown action \"${action}\" for state \"${state}\"`);\n }\n\n dispatch({ type: action, nextState, ...payload } as any);\n };\n\n return [state, data, transition];\n}\n"],"mappings":";;;;AACA,SAASA,UAAT,QAA2B,OAA3B;AA4BA;AACA;AACA,OAAO,SAASC,iBAAT,CAMLC,KANK,EAOLC,OAPK,EAQLC,WARK,EAS+C;EACpD,kBAAiCJ,UAAU,CAACG,OAAD,EAAUC,WAAV,CAA3C;EAAA;EAAA,IAAOC,YAAP;EAAA,IAAqBC,QAArB;;EACA,IAAQC,KAAR,GAA2BF,YAA3B,CAAQE,KAAR;EAAA,IAAkBC,IAAlB,4BAA2BH,YAA3B;;EAEA,IAAMI,UAAkC,GAAG,SAArCA,UAAqC,CAACC,MAAD,EAA0B;IAAA,IAAjBC,OAAiB,uEAAP,EAAO;IACnE,IAAMC,YAAY,GAAGV,KAAK,CAACW,MAAN,CAAaN,KAAb,CAArB;;IACA,IAAI,CAACK,YAAL,EAAmB;MACjB,MAAM,IAAIE,KAAJ,kCAAmCP,KAAnC,QAAN;IACD;;IAED,IAAMQ,SAA6B,GAAGH,YAAY,CAACI,EAAb,CAAgBN,MAAhB,CAAtC;;IACA,IAAI,CAACK,SAAL,EAAgB;MACd,MAAM,IAAID,KAAJ,4BAA6BJ,MAA7B,4BAAmDH,KAAnD,QAAN;IACD;;IAEDD,QAAQ;MAAGW,IAAI,EAAEP,MAAT;MAAiBK,SAAS,EAATA;IAAjB,GAA+BJ,OAA/B,EAAR;EACD,CAZD;;EAcA,OAAO,CAACJ,KAAD,EAAQC,IAAR,EAAcC,UAAd,CAAP;AACD"}
@@ -1 +1,2 @@
1
- export declare function useRemoveBodyScroll(open: boolean): void;
1
+ import type { RefObject } from 'react';
2
+ export declare function useRemoveBodyScroll(open: boolean, elementRef: RefObject<HTMLElement | null>): void;
@@ -1,31 +1,35 @@
1
1
  import { useEffect } from 'react';
2
+ import { getOwnerDocument } from '../utils';
2
3
  var scrollBodyCount = 0;
3
- export function useRemoveBodyScroll(open) {
4
+ export function useRemoveBodyScroll(open, elementRef) {
4
5
  useEffect(function () {
5
- if (open) {
6
+ if (open && elementRef.current) {
7
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
8
+ var ownerDocument = getOwnerDocument(elementRef.current);
9
+ var ownerWindow = ownerDocument.defaultView || window;
6
10
  scrollBodyCount += 1; // calculate scrollbar width if mounting the first scroll lock
7
11
 
8
12
  var scrollBarWidth = 0;
9
13
 
10
14
  if (scrollBodyCount === 1) {
11
- scrollBarWidth = window.innerWidth - document.body.clientWidth;
15
+ scrollBarWidth = ownerWindow.innerWidth - ownerDocument.body.clientWidth;
12
16
  }
13
17
 
14
- document.body.style.overflow = 'hidden';
18
+ ownerDocument.body.style.overflow = 'hidden';
15
19
 
16
20
  if (scrollBarWidth > 0) {
17
- document.body.style.marginRight = "".concat(scrollBarWidth, "px");
21
+ ownerDocument.body.style.marginRight = "".concat(scrollBarWidth, "px");
18
22
  }
19
23
 
20
24
  return function () {
21
25
  scrollBodyCount -= 1;
22
26
 
23
27
  if (scrollBodyCount === 0) {
24
- document.body.style.overflow = '';
25
- document.body.style.marginRight = '';
28
+ ownerDocument.body.style.overflow = '';
29
+ ownerDocument.body.style.marginRight = '';
26
30
  }
27
31
  };
28
32
  }
29
- }, [open]);
33
+ }, [elementRef, open]);
30
34
  }
31
35
  //# sourceMappingURL=useRemoveBodyScroll.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useRemoveBodyScroll.ts"],"names":["useEffect","scrollBodyCount","useRemoveBodyScroll","open","scrollBarWidth","window","innerWidth","document","body","clientWidth","style","overflow","marginRight"],"mappings":"AAAA,SAASA,SAAT,QAA0B,OAA1B;AAEA,IAAIC,eAAe,GAAG,CAAtB;AACA,OAAO,SAASC,mBAAT,CAA6BC,IAA7B,EAA4C;AACjDH,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIG,IAAJ,EAAU;AACRF,MAAAA,eAAe,IAAI,CAAnB,CADQ,CAGR;;AACA,UAAIG,cAAc,GAAG,CAArB;;AACA,UAAIH,eAAe,KAAK,CAAxB,EAA2B;AACzBG,QAAAA,cAAc,GAAGC,MAAM,CAACC,UAAP,GAAoBC,QAAQ,CAACC,IAAT,CAAcC,WAAnD;AACD;;AAEDF,MAAAA,QAAQ,CAACC,IAAT,CAAcE,KAAd,CAAoBC,QAApB,GAA+B,QAA/B;;AACA,UAAIP,cAAc,GAAG,CAArB,EAAwB;AACtBG,QAAAA,QAAQ,CAACC,IAAT,CAAcE,KAAd,CAAoBE,WAApB,aAAqCR,cAArC;AACD;;AAED,aAAO,YAAM;AACXH,QAAAA,eAAe,IAAI,CAAnB;;AACA,YAAIA,eAAe,KAAK,CAAxB,EAA2B;AACzBM,UAAAA,QAAQ,CAACC,IAAT,CAAcE,KAAd,CAAoBC,QAApB,GAA+B,EAA/B;AACAJ,UAAAA,QAAQ,CAACC,IAAT,CAAcE,KAAd,CAAoBE,WAApB,GAAkC,EAAlC;AACD;AACF,OAND;AAOD;AACF,GAvBQ,EAuBN,CAACT,IAAD,CAvBM,CAAT;AAwBD","sourcesContent":["import { useEffect } from 'react';\n\nlet scrollBodyCount = 0;\nexport function useRemoveBodyScroll(open: boolean) {\n useEffect(() => {\n if (open) {\n scrollBodyCount += 1;\n\n // calculate scrollbar width if mounting the first scroll lock\n let scrollBarWidth = 0;\n if (scrollBodyCount === 1) {\n scrollBarWidth = window.innerWidth - document.body.clientWidth;\n }\n\n document.body.style.overflow = 'hidden';\n if (scrollBarWidth > 0) {\n document.body.style.marginRight = `${scrollBarWidth}px`;\n }\n\n return () => {\n scrollBodyCount -= 1;\n if (scrollBodyCount === 0) {\n document.body.style.overflow = '';\n document.body.style.marginRight = '';\n }\n };\n }\n }, [open]);\n}\n"],"file":"useRemoveBodyScroll.js"}
1
+ {"version":3,"file":"useRemoveBodyScroll.js","names":["useEffect","getOwnerDocument","scrollBodyCount","useRemoveBodyScroll","open","elementRef","current","ownerDocument","ownerWindow","defaultView","window","scrollBarWidth","innerWidth","body","clientWidth","style","overflow","marginRight"],"sources":["../../../src/hooks/useRemoveBodyScroll.ts"],"sourcesContent":["import type { RefObject } from 'react';\nimport { useEffect } from 'react';\n\nimport { getOwnerDocument } from '../utils';\n\nlet scrollBodyCount = 0;\nexport function useRemoveBodyScroll(\n open: boolean,\n elementRef: RefObject<HTMLElement | null>\n) {\n useEffect(() => {\n if (open && elementRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const ownerDocument = getOwnerDocument(elementRef.current)!;\n const ownerWindow = ownerDocument.defaultView || window;\n scrollBodyCount += 1;\n\n // calculate scrollbar width if mounting the first scroll lock\n let scrollBarWidth = 0;\n if (scrollBodyCount === 1) {\n scrollBarWidth =\n ownerWindow.innerWidth - ownerDocument.body.clientWidth;\n }\n\n ownerDocument.body.style.overflow = 'hidden';\n if (scrollBarWidth > 0) {\n ownerDocument.body.style.marginRight = `${scrollBarWidth}px`;\n }\n\n return () => {\n scrollBodyCount -= 1;\n if (scrollBodyCount === 0) {\n ownerDocument.body.style.overflow = '';\n ownerDocument.body.style.marginRight = '';\n }\n };\n }\n }, [elementRef, open]);\n}\n"],"mappings":"AACA,SAASA,SAAT,QAA0B,OAA1B;AAEA,SAASC,gBAAT,QAAiC,UAAjC;AAEA,IAAIC,eAAe,GAAG,CAAtB;AACA,OAAO,SAASC,mBAAT,CACLC,IADK,EAELC,UAFK,EAGL;EACAL,SAAS,CAAC,YAAM;IACd,IAAII,IAAI,IAAIC,UAAU,CAACC,OAAvB,EAAgC;MAC9B;MACA,IAAMC,aAAa,GAAGN,gBAAgB,CAACI,UAAU,CAACC,OAAZ,CAAtC;MACA,IAAME,WAAW,GAAGD,aAAa,CAACE,WAAd,IAA6BC,MAAjD;MACAR,eAAe,IAAI,CAAnB,CAJ8B,CAM9B;;MACA,IAAIS,cAAc,GAAG,CAArB;;MACA,IAAIT,eAAe,KAAK,CAAxB,EAA2B;QACzBS,cAAc,GACZH,WAAW,CAACI,UAAZ,GAAyBL,aAAa,CAACM,IAAd,CAAmBC,WAD9C;MAED;;MAEDP,aAAa,CAACM,IAAd,CAAmBE,KAAnB,CAAyBC,QAAzB,GAAoC,QAApC;;MACA,IAAIL,cAAc,GAAG,CAArB,EAAwB;QACtBJ,aAAa,CAACM,IAAd,CAAmBE,KAAnB,CAAyBE,WAAzB,aAA0CN,cAA1C;MACD;;MAED,OAAO,YAAM;QACXT,eAAe,IAAI,CAAnB;;QACA,IAAIA,eAAe,KAAK,CAAxB,EAA2B;UACzBK,aAAa,CAACM,IAAd,CAAmBE,KAAnB,CAAyBC,QAAzB,GAAoC,EAApC;UACAT,aAAa,CAACM,IAAd,CAAmBE,KAAnB,CAAyBE,WAAzB,GAAuC,EAAvC;QACD;MACF,CAND;IAOD;EACF,CA3BQ,EA2BN,CAACZ,UAAD,EAAaD,IAAb,CA3BM,CAAT;AA4BD"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useScope.ts"],"names":["useRef","getScope","rootRef","queryAllNodes","matcherFn","current","allNodes","querySelectorAll","filtered","forEach","node","props","attributes","i","length","attr","name","value","tagName","toLowerCase","push","useScope","scope"],"mappings":"AACA,SAASA,MAAT,QAAuB,OAAvB;AAcA,OAAO,SAASC,QAAT,CACLC,OADK,EAEL;AACA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,SAAD,EAA+B;AACnD,QAAI,CAACF,OAAO,CAACG,OAAb,EAAsB;AACpB,aAAO,EAAP;AACD;;AAED,QAAMC,QAAQ,GAAGJ,OAAO,CAACG,OAAR,CAAgBE,gBAAhB,CAAiC,GAAjC,CAAjB;AAEA,QAAMC,QAAa,GAAG,EAAtB;AACAF,IAAAA,QAAQ,CAACG,OAAT,CAAiB,UAACC,IAAD,EAAU;AACzB,UAAMC,KAAK,GAAG,EAAd;AADyB,UAEjBC,UAFiB,GAEFF,IAFE,CAEjBE,UAFiB;;AAGzB,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,UAAU,CAACE,MAA/B,EAAuCD,CAAC,EAAxC,EAA4C;AAC1C,YAAME,IAAI,GAAGH,UAAU,CAACC,CAAD,CAAvB;AACAF,QAAAA,KAAK,CAACI,IAAI,CAACC,IAAN,CAAL,GAAmBD,IAAI,CAACE,KAAxB;AACD;;AAED,UAAIb,SAAS,CAACM,IAAI,CAACQ,OAAL,CAAaC,WAAb,EAAD,EAA6BR,KAA7B,EAAoCD,IAApC,CAAb,EAAwD;AACtDF,QAAAA,QAAQ,CAACY,IAAT,CAAcV,IAAd;AACD;AACF,KAXD;AAaA,WAAOF,QAAP;AACD,GAtBD;;AAwBA,SAAO;AAAEL,IAAAA,aAAa,EAAbA;AAAF,GAAP;AACD;AAED,OAAO,SAASkB,QAAT,CACLnB,OADK,EAEK;AACV,MAAMoB,KAAe,GAAGtB,MAAM,CAACC,QAAQ,CAACC,OAAD,CAAT,CAA9B;AAEA,SAAOoB,KAAP;AACD","sourcesContent":["import type { MutableRefObject } from 'react';\nimport { useRef } from 'react';\n\nexport type ScopeMatcherFn = (\n nodeType: string,\n props: {\n [key: string]: string;\n },\n instance: Element\n) => boolean;\n\nexport type Scope<T extends HTMLElement> = MutableRefObject<{\n queryAllNodes: (matcherFn: ScopeMatcherFn) => T[];\n}>;\n\nexport function getScope<T extends HTMLElement, R extends HTMLElement>(\n rootRef: MutableRefObject<R | undefined | null>\n) {\n const queryAllNodes = (matcherFn: ScopeMatcherFn) => {\n if (!rootRef.current) {\n return [];\n }\n\n const allNodes = rootRef.current.querySelectorAll('*');\n\n const filtered: T[] = [];\n allNodes.forEach((node) => {\n const props = {};\n const { attributes } = node;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes[i];\n props[attr.name] = attr.value;\n }\n\n if (matcherFn(node.tagName.toLowerCase(), props, node)) {\n filtered.push(node as T);\n }\n });\n\n return filtered;\n };\n\n return { queryAllNodes };\n}\n\nexport function useScope<T extends HTMLElement, R extends HTMLElement>(\n rootRef: MutableRefObject<R | undefined | null>\n): Scope<T> {\n const scope: Scope<T> = useRef(getScope(rootRef));\n\n return scope;\n}\n"],"file":"useScope.js"}
1
+ {"version":3,"file":"useScope.js","names":["useRef","getScope","rootRef","queryAllNodes","matcherFn","current","allNodes","querySelectorAll","filtered","forEach","node","props","attributes","i","length","attr","name","value","tagName","toLowerCase","push","useScope","scope"],"sources":["../../../src/hooks/useScope.ts"],"sourcesContent":["import type { MutableRefObject } from 'react';\nimport { useRef } from 'react';\n\nexport type ScopeMatcherFn = (\n nodeType: string,\n props: {\n [key: string]: string;\n },\n instance: Element\n) => boolean;\n\nexport type Scope<T extends HTMLElement> = MutableRefObject<{\n queryAllNodes: (matcherFn: ScopeMatcherFn) => T[];\n}>;\n\nexport function getScope<T extends HTMLElement, R extends HTMLElement>(\n rootRef: MutableRefObject<R | undefined | null>\n) {\n const queryAllNodes = (matcherFn: ScopeMatcherFn) => {\n if (!rootRef.current) {\n return [];\n }\n\n const allNodes = rootRef.current.querySelectorAll('*');\n\n const filtered: T[] = [];\n allNodes.forEach((node) => {\n const props = {};\n const { attributes } = node;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes[i];\n props[attr.name] = attr.value;\n }\n\n if (matcherFn(node.tagName.toLowerCase(), props, node)) {\n filtered.push(node as T);\n }\n });\n\n return filtered;\n };\n\n return { queryAllNodes };\n}\n\nexport function useScope<T extends HTMLElement, R extends HTMLElement>(\n rootRef: MutableRefObject<R | undefined | null>\n): Scope<T> {\n const scope: Scope<T> = useRef(getScope(rootRef));\n\n return scope;\n}\n"],"mappings":"AACA,SAASA,MAAT,QAAuB,OAAvB;AAcA,OAAO,SAASC,QAAT,CACLC,OADK,EAEL;EACA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,SAAD,EAA+B;IACnD,IAAI,CAACF,OAAO,CAACG,OAAb,EAAsB;MACpB,OAAO,EAAP;IACD;;IAED,IAAMC,QAAQ,GAAGJ,OAAO,CAACG,OAAR,CAAgBE,gBAAhB,CAAiC,GAAjC,CAAjB;IAEA,IAAMC,QAAa,GAAG,EAAtB;IACAF,QAAQ,CAACG,OAAT,CAAiB,UAACC,IAAD,EAAU;MACzB,IAAMC,KAAK,GAAG,EAAd;MACA,IAAQC,UAAR,GAAuBF,IAAvB,CAAQE,UAAR;;MACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,UAAU,CAACE,MAA/B,EAAuCD,CAAC,EAAxC,EAA4C;QAC1C,IAAME,IAAI,GAAGH,UAAU,CAACC,CAAD,CAAvB;QACAF,KAAK,CAACI,IAAI,CAACC,IAAN,CAAL,GAAmBD,IAAI,CAACE,KAAxB;MACD;;MAED,IAAIb,SAAS,CAACM,IAAI,CAACQ,OAAL,CAAaC,WAAb,EAAD,EAA6BR,KAA7B,EAAoCD,IAApC,CAAb,EAAwD;QACtDF,QAAQ,CAACY,IAAT,CAAcV,IAAd;MACD;IACF,CAXD;IAaA,OAAOF,QAAP;EACD,CAtBD;;EAwBA,OAAO;IAAEL,aAAa,EAAbA;EAAF,CAAP;AACD;AAED,OAAO,SAASkB,QAAT,CACLnB,OADK,EAEK;EACV,IAAMoB,KAAe,GAAGtB,MAAM,CAACC,QAAQ,CAACC,OAAD,CAAT,CAA9B;EAEA,OAAOoB,KAAP;AACD"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useThrottle.ts"],"names":["useState","useEffect","useRef","useThrottle","value","limit","throttledValue","setThrottledValue","lastRan","Date","now","handler","setTimeout","current","clearTimeout"],"mappings":";AAAA,SAASA,QAAT,EAAmBC,SAAnB,EAA8BC,MAA9B,QAA4C,OAA5C;AAEA,OAAO,SAASC,WAAT,CAAwBC,KAAxB,EAAkCC,KAAlC,EAAiD;AAAA,kBACVL,QAAQ,CAACI,KAAD,CADE;AAAA;AAAA,MAC/CE,cAD+C;AAAA,MAC/BC,iBAD+B;;AAEtD,MAAMC,OAAO,GAAGN,MAAM,CAACO,IAAI,CAACC,GAAL,EAAD,CAAtB;AAEAT,EAAAA,SAAS,CAAC,YAAM;AACd,QAAMU,OAAO,GAAGC,UAAU,CAAC,YAAM;AAC/BL,MAAAA,iBAAiB,CAACH,KAAD,CAAjB;AACAI,MAAAA,OAAO,CAACK,OAAR,GAAkBJ,IAAI,CAACC,GAAL,EAAlB;AACD,KAHyB,EAGvBL,KAAK,IAAII,IAAI,CAACC,GAAL,KAAaF,OAAO,CAACK,OAAzB,CAHkB,CAA1B;AAKA,WAAO,YAAM;AACXC,MAAAA,YAAY,CAACH,OAAD,CAAZ;AACD,KAFD;AAGD,GATQ,EASN,CAACP,KAAD,EAAQC,KAAR,CATM,CAAT;AAWA,SAAOC,cAAP;AACD","sourcesContent":["import { useState, useEffect, useRef } from 'react';\n\nexport function useThrottle<T>(value: T, limit: number) {\n const [throttledValue, setThrottledValue] = useState(value);\n const lastRan = useRef(Date.now());\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setThrottledValue(value);\n lastRan.current = Date.now();\n }, limit - (Date.now() - lastRan.current));\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, limit]);\n\n return throttledValue;\n}\n"],"file":"useThrottle.js"}
1
+ {"version":3,"file":"useThrottle.js","names":["useState","useEffect","useRef","useThrottle","value","limit","throttledValue","setThrottledValue","lastRan","Date","now","handler","setTimeout","current","clearTimeout"],"sources":["../../../src/hooks/useThrottle.ts"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\n\nexport function useThrottle<T>(value: T, limit: number) {\n const [throttledValue, setThrottledValue] = useState(value);\n const lastRan = useRef(Date.now());\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setThrottledValue(value);\n lastRan.current = Date.now();\n }, limit - (Date.now() - lastRan.current));\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, limit]);\n\n return throttledValue;\n}\n"],"mappings":";AAAA,SAASA,QAAT,EAAmBC,SAAnB,EAA8BC,MAA9B,QAA4C,OAA5C;AAEA,OAAO,SAASC,WAAT,CAAwBC,KAAxB,EAAkCC,KAAlC,EAAiD;EACtD,gBAA4CL,QAAQ,CAACI,KAAD,CAApD;EAAA;EAAA,IAAOE,cAAP;EAAA,IAAuBC,iBAAvB;;EACA,IAAMC,OAAO,GAAGN,MAAM,CAACO,IAAI,CAACC,GAAL,EAAD,CAAtB;EAEAT,SAAS,CAAC,YAAM;IACd,IAAMU,OAAO,GAAGC,UAAU,CAAC,YAAM;MAC/BL,iBAAiB,CAACH,KAAD,CAAjB;MACAI,OAAO,CAACK,OAAR,GAAkBJ,IAAI,CAACC,GAAL,EAAlB;IACD,CAHyB,EAGvBL,KAAK,IAAII,IAAI,CAACC,GAAL,KAAaF,OAAO,CAACK,OAAzB,CAHkB,CAA1B;IAKA,OAAO,YAAM;MACXC,YAAY,CAACH,OAAD,CAAZ;IACD,CAFD;EAGD,CATQ,EASN,CAACP,KAAD,EAAQC,KAAR,CATM,CAAT;EAWA,OAAOC,cAAP;AACD"}
@@ -7,6 +7,7 @@ export * from './Modal';
7
7
  export * from './Popper';
8
8
  export * from './Portal';
9
9
  export * from './RadioButton';
10
+ export * from './Slider';
10
11
  export * from './Spinner';
11
12
  export * from './Tabs';
12
13
  export * from './Tooltip';
@@ -8,6 +8,7 @@ export * from './Modal';
8
8
  export * from './Popper';
9
9
  export * from './Portal';
10
10
  export * from './RadioButton';
11
+ export * from './Slider';
11
12
  export * from './Spinner';
12
13
  export * from './Tabs';
13
14
  export * from './Tooltip'; // General React utilities
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;AACA,cAAc,aAAd;AACA,cAAc,YAAd;AACA,cAAc,YAAd;AACA,cAAc,aAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd;AACA,cAAc,UAAd;AACA,cAAc,UAAd;AACA,cAAc,eAAd;AACA,cAAc,WAAd;AACA,cAAc,QAAd;AACA,cAAc,WAAd,C,CAEA;;AACA,cAAc,SAAd,C,CAEA;;AACA,cAAc,SAAd","sourcesContent":["// Components\nexport * from './Accordion';\nexport * from './CheckBox';\nexport * from './ComboBox';\nexport * from './FocusLock';\nexport * from './Menu';\nexport * from './Modal';\nexport * from './Popper';\nexport * from './Portal';\nexport * from './RadioButton';\nexport * from './Spinner';\nexport * from './Tabs';\nexport * from './Tooltip';\n\n// General React utilities\nexport * from './utils';\n\n// Hooks\nexport * from './hooks';\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["// Components\nexport * from './Accordion';\nexport * from './CheckBox';\nexport * from './ComboBox';\nexport * from './FocusLock';\nexport * from './Menu';\nexport * from './Modal';\nexport * from './Popper';\nexport * from './Portal';\nexport * from './RadioButton';\nexport * from './Slider';\nexport * from './Spinner';\nexport * from './Tabs';\nexport * from './Tooltip';\n\n// General React utilities\nexport * from './utils';\n\n// Hooks\nexport * from './hooks';\n"],"mappings":"AAAA;AACA,cAAc,aAAd;AACA,cAAc,YAAd;AACA,cAAc,YAAd;AACA,cAAc,aAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd;AACA,cAAc,UAAd;AACA,cAAc,UAAd;AACA,cAAc,eAAd;AACA,cAAc,UAAd;AACA,cAAc,WAAd;AACA,cAAc,QAAd;AACA,cAAc,WAAd,C,CAEA;;AACA,cAAc,SAAd,C,CAEA;;AACA,cAAc,SAAd"}
@@ -0,0 +1,3 @@
1
+ import type { MutableRefObject, RefCallback } from 'react';
2
+ export declare function assignRef<T>(ref: MutableRefObject<T> | RefCallback<T> | null | undefined, value: T): void;
3
+ export declare function assignMultipleRefs<T>(...refs: (MutableRefObject<T> | RefCallback<T> | null | undefined)[]): RefCallback<T>;
@@ -22,4 +22,4 @@ export function assignMultipleRefs() {
22
22
  });
23
23
  };
24
24
  }
25
- //# sourceMappingURL=assignRef.js.map
25
+ //# sourceMappingURL=assign-ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assign-ref.js","names":["assignRef","ref","value","current","error","Error","assignMultipleRefs","refs","node","forEach"],"sources":["../../../src/utils/assign-ref.ts"],"sourcesContent":["import type { MutableRefObject, RefCallback } from 'react';\n\nexport function assignRef<T>(\n ref: MutableRefObject<T> | RefCallback<T> | null | undefined,\n value: T\n) {\n if (ref == null) return;\n if (typeof ref === 'function') {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error(`Cannot assign value \"${value}\" to ref \"${ref}\"`);\n }\n }\n}\n\nexport function assignMultipleRefs<T>(\n ...refs: (MutableRefObject<T> | RefCallback<T> | null | undefined)[]\n): RefCallback<T> {\n return (node: T | null) => {\n refs.forEach((ref) => {\n assignRef(ref, node);\n });\n };\n}\n"],"mappings":"AAEA,OAAO,SAASA,SAAT,CACLC,GADK,EAELC,KAFK,EAGL;EACA,IAAID,GAAG,IAAI,IAAX,EAAiB;;EACjB,IAAI,OAAOA,GAAP,KAAe,UAAnB,EAA+B;IAC7BA,GAAG,CAACC,KAAD,CAAH;EACD,CAFD,MAEO;IACL,IAAI;MACFD,GAAG,CAACE,OAAJ,GAAcD,KAAd;IACD,CAFD,CAEE,OAAOE,KAAP,EAAc;MACd,MAAM,IAAIC,KAAJ,iCAAkCH,KAAlC,yBAAoDD,GAApD,QAAN;IACD;EACF;AACF;AAED,OAAO,SAASK,kBAAT,GAEW;EAAA,kCADbC,IACa;IADbA,IACa;EAAA;;EAChB,OAAO,UAACC,IAAD,EAAoB;IACzBD,IAAI,CAACE,OAAL,CAAa,UAACR,GAAD,EAAS;MACpBD,SAAS,CAACC,GAAD,EAAMO,IAAN,CAAT;IACD,CAFD;EAGD,CAJD;AAKD"}
@@ -0,0 +1 @@
1
+ export declare function canUseDOM(): boolean;
@@ -0,0 +1,4 @@
1
+ export function canUseDOM() {
2
+ return !!(typeof window !== 'undefined' && window.document && window.document.createElement);
3
+ }
4
+ //# sourceMappingURL=can-use-dom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"can-use-dom.js","names":["canUseDOM","window","document","createElement"],"sources":["../../../src/utils/can-use-dom.ts"],"sourcesContent":["export function canUseDOM() {\n return !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n );\n}\n"],"mappings":"AAAA,OAAO,SAASA,SAAT,GAAqB;EAC1B,OAAO,CAAC,EACN,OAAOC,MAAP,KAAkB,WAAlB,IACAA,MAAM,CAACC,QADP,IAEAD,MAAM,CAACC,QAAP,CAAgBC,aAHV,CAAR;AAKD"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/clamp.ts"],"names":["clamp","value","min","max","Math"],"mappings":"AAAA,OAAO,SAASA,KAAT,CAAeC,KAAf,EAA8BC,GAA9B,EAA2CC,GAA3C,EAAwD;AAC7D,SAAOC,IAAI,CAACF,GAAL,CAASE,IAAI,CAACD,GAAL,CAASF,KAAT,EAAgBC,GAAhB,CAAT,EAA+BC,GAA/B,CAAP;AACD","sourcesContent":["export function clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n"],"file":"clamp.js"}
1
+ {"version":3,"file":"clamp.js","names":["clamp","value","min","max","Math"],"sources":["../../../src/utils/clamp.ts"],"sourcesContent":["export function clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n"],"mappings":"AAAA,OAAO,SAASA,KAAT,CAAeC,KAAf,EAA8BC,GAA9B,EAA2CC,GAA3C,EAAwD;EAC7D,OAAOC,IAAI,CAACF,GAAL,CAASE,IAAI,CAACD,GAAL,CAASF,KAAT,EAAgBC,GAAhB,CAAT,EAA+BC,GAA/B,CAAP;AACD"}
@@ -0,0 +1,7 @@
1
+ import type { FC, PropsWithChildren } from 'react';
2
+ declare type ContextProvider<T> = FC<PropsWithChildren<T>>;
3
+ export declare function createContext<ContextValueType extends object | null>(rootName: string, defaultContext?: ContextValueType): [
4
+ ContextProvider<ContextValueType>,
5
+ (childName: string) => ContextValueType
6
+ ];
7
+ export {};
@@ -0,0 +1,41 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
+ var _excluded = ["children"];
3
+ import { useMemo, createContext as ReactCreateContext, useContext as useReactContext } from 'react'; ////////////////////////////////////////////////////////////////////////////////
4
+
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ export function createContext(rootName, defaultContext) {
7
+ var Ctx = /*#__PURE__*/ReactCreateContext(defaultContext);
8
+
9
+ function Provider(props) {
10
+ var children = props.children,
11
+ context = _objectWithoutProperties(props, _excluded);
12
+
13
+ var value = useMemo(function () {
14
+ return context;
15
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
16
+ Object.values(context));
17
+ return /*#__PURE__*/_jsx(Ctx.Provider, {
18
+ value: value,
19
+ children: children
20
+ });
21
+ }
22
+
23
+ function useContext(childName) {
24
+ var context = useReactContext(Ctx);
25
+
26
+ if (context) {
27
+ return context;
28
+ }
29
+
30
+ if (defaultContext) {
31
+ return defaultContext;
32
+ }
33
+
34
+ throw Error("".concat(childName, " must be rendered inside of a ").concat(rootName, " component."));
35
+ }
36
+
37
+ Ctx.displayName = "".concat(rootName, "Context");
38
+ Provider.displayName = "".concat(rootName, "Provider");
39
+ return [Provider, useContext];
40
+ }
41
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","names":["useMemo","createContext","ReactCreateContext","useContext","useReactContext","rootName","defaultContext","Ctx","Provider","props","children","context","value","Object","values","childName","Error","displayName"],"sources":["../../../src/utils/context.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from 'react';\nimport {\n useMemo,\n createContext as ReactCreateContext,\n useContext as useReactContext,\n} from 'react';\n\n////////////////////////////////////////////////////////////////////////////////\n\ntype ContextProvider<T> = FC<PropsWithChildren<T>>;\n\nexport function createContext<ContextValueType extends object | null>(\n rootName: string,\n defaultContext?: ContextValueType\n): [\n ContextProvider<ContextValueType>,\n (childName: string) => ContextValueType\n] {\n const Ctx = ReactCreateContext<ContextValueType | undefined>(defaultContext);\n\n function Provider(props: PropsWithChildren<ContextValueType>) {\n const { children, ...context } = props;\n const value = useMemo(\n () => context,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Object.values(context)\n ) as ContextValueType;\n return <Ctx.Provider value={value}>{children}</Ctx.Provider>;\n }\n\n function useContext(childName: string) {\n const context = useReactContext(Ctx);\n if (context) {\n return context;\n }\n if (defaultContext) {\n return defaultContext;\n }\n throw Error(\n `${childName} must be rendered inside of a ${rootName} component.`\n );\n }\n\n Ctx.displayName = `${rootName}Context`;\n Provider.displayName = `${rootName}Provider`;\n\n return [Provider, useContext];\n}\n"],"mappings":";;AACA,SACEA,OADF,EAEEC,aAAa,IAAIC,kBAFnB,EAGEC,UAAU,IAAIC,eAHhB,QAIO,OAJP,C,CAMA;;;AAIA,OAAO,SAASH,aAAT,CACLI,QADK,EAELC,cAFK,EAML;EACA,IAAMC,GAAG,gBAAGL,kBAAkB,CAA+BI,cAA/B,CAA9B;;EAEA,SAASE,QAAT,CAAkBC,KAAlB,EAA8D;IAC5D,IAAQC,QAAR,GAAiCD,KAAjC,CAAQC,QAAR;IAAA,IAAqBC,OAArB,4BAAiCF,KAAjC;;IACA,IAAMG,KAAK,GAAGZ,OAAO,CACnB;MAAA,OAAMW,OAAN;IAAA,CADmB,EAEnB;IACAE,MAAM,CAACC,MAAP,CAAcH,OAAd,CAHmB,CAArB;IAKA,oBAAO,KAAC,GAAD,CAAK,QAAL;MAAc,KAAK,EAAEC,KAArB;MAAA,UAA6BF;IAA7B,EAAP;EACD;;EAED,SAASP,UAAT,CAAoBY,SAApB,EAAuC;IACrC,IAAMJ,OAAO,GAAGP,eAAe,CAACG,GAAD,CAA/B;;IACA,IAAII,OAAJ,EAAa;MACX,OAAOA,OAAP;IACD;;IACD,IAAIL,cAAJ,EAAoB;MAClB,OAAOA,cAAP;IACD;;IACD,MAAMU,KAAK,WACND,SADM,2CACoCV,QADpC,iBAAX;EAGD;;EAEDE,GAAG,CAACU,WAAJ,aAAqBZ,QAArB;EACAG,QAAQ,CAACS,WAAT,aAA0BZ,QAA1B;EAEA,OAAO,CAACG,QAAD,EAAWL,UAAX,CAAP;AACD"}
@@ -19,4 +19,4 @@ export function createSubscription() {
19
19
  notify: notify
20
20
  };
21
21
  }
22
- //# sourceMappingURL=createSubscription.js.map
22
+ //# sourceMappingURL=create-subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-subscription.js","names":["createSubscription","subscriptions","subscribe","fn","push","splice","indexOf","notify","forEach"],"sources":["../../../src/utils/create-subscription.ts"],"sourcesContent":["export function createSubscription() {\n const subscriptions: (() => void)[] = [];\n\n function subscribe(fn: () => void) {\n subscriptions.push(fn);\n return () => {\n subscriptions.splice(subscriptions.indexOf(fn), 1);\n };\n }\n\n function notify() {\n subscriptions.forEach((fn) => fn());\n }\n\n return { subscribe, notify };\n}\n"],"mappings":"AAAA,OAAO,SAASA,kBAAT,GAA8B;EACnC,IAAMC,aAA6B,GAAG,EAAtC;;EAEA,SAASC,SAAT,CAAmBC,EAAnB,EAAmC;IACjCF,aAAa,CAACG,IAAd,CAAmBD,EAAnB;IACA,OAAO,YAAM;MACXF,aAAa,CAACI,MAAd,CAAqBJ,aAAa,CAACK,OAAd,CAAsBH,EAAtB,CAArB,EAAgD,CAAhD;IACD,CAFD;EAGD;;EAED,SAASI,MAAT,GAAkB;IAChBN,aAAa,CAACO,OAAd,CAAsB,UAACL,EAAD;MAAA,OAAQA,EAAE,EAAV;IAAA,CAAtB;EACD;;EAED,OAAO;IAAED,SAAS,EAATA,SAAF;IAAaK,MAAM,EAANA;EAAb,CAAP;AACD"}
@@ -5,4 +5,4 @@ export function getCircularIndex(index, maxLength) {
5
5
 
6
6
  return (index % maxLength + maxLength) % maxLength;
7
7
  }
8
- //# sourceMappingURL=getCircularIndex.js.map
8
+ //# sourceMappingURL=get-circular-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-circular-index.js","names":["getCircularIndex","index","maxLength"],"sources":["../../../src/utils/get-circular-index.ts"],"sourcesContent":["export function getCircularIndex(index: number, maxLength: number) {\n if (maxLength < 0) {\n return null;\n }\n\n return ((index % maxLength) + maxLength) % maxLength;\n}\n"],"mappings":"AAAA,OAAO,SAASA,gBAAT,CAA0BC,KAA1B,EAAyCC,SAAzC,EAA4D;EACjE,IAAIA,SAAS,GAAG,CAAhB,EAAmB;IACjB,OAAO,IAAP;EACD;;EAED,OAAO,CAAED,KAAK,GAAGC,SAAT,GAAsBA,SAAvB,IAAoCA,SAA3C;AACD"}