@basic-ui/core 0.0.52 → 0.0.53

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 (408) hide show
  1. package/README.md +3 -3
  2. package/build/cjs/index.js +105 -89
  3. package/build/cjs/index.js.map +1 -1
  4. package/build/esm/Accordion/Accordion.d.ts +9 -9
  5. package/build/esm/Accordion/Accordion.js.map +1 -1
  6. package/build/esm/Accordion/AccordionBody.d.ts +6 -6
  7. package/build/esm/Accordion/AccordionBody.js.map +1 -1
  8. package/build/esm/Accordion/AccordionHeader.d.ts +7 -7
  9. package/build/esm/Accordion/AccordionHeader.js.map +1 -1
  10. package/build/esm/Accordion/AccordionItem.d.ts +9 -9
  11. package/build/esm/Accordion/AccordionItem.js.map +1 -1
  12. package/build/esm/Accordion/context.d.ts +19 -19
  13. package/build/esm/Accordion/context.js.map +1 -1
  14. package/build/esm/Accordion/index.d.ts +4 -4
  15. package/build/esm/Accordion/index.js.map +1 -1
  16. package/build/esm/Accordion/scopeQuery.d.ts +2 -2
  17. package/build/esm/Accordion/scopeQuery.js.map +1 -1
  18. package/build/esm/Carousel/Carousel.d.ts +9 -0
  19. package/build/esm/Carousel/Carousel.js +38 -0
  20. package/build/esm/Carousel/Carousel.js.map +1 -0
  21. package/build/esm/Carousel/Fader.d.ts +14 -0
  22. package/build/esm/Carousel/Fader.js +76 -0
  23. package/build/esm/Carousel/Fader.js.map +1 -0
  24. package/build/esm/Carousel/FaderItem.d.ts +5 -0
  25. package/build/esm/Carousel/FaderItem.js +16 -0
  26. package/build/esm/Carousel/FaderItem.js.map +1 -0
  27. package/build/esm/Carousel/Preloader.d.ts +7 -0
  28. package/build/esm/Carousel/Preloader.js +70 -0
  29. package/build/esm/Carousel/Preloader.js.map +1 -0
  30. package/build/esm/Carousel/Slider.d.ts +14 -0
  31. package/build/esm/Carousel/Slider.js +212 -0
  32. package/build/esm/Carousel/Slider.js.map +1 -0
  33. package/build/esm/Carousel/SliderItem.d.ts +12 -0
  34. package/build/esm/Carousel/SliderItem.js +41 -0
  35. package/build/esm/Carousel/SliderItem.js.map +1 -0
  36. package/build/esm/Carousel/context.d.ts +10 -0
  37. package/build/esm/Carousel/context.js +8 -0
  38. package/build/esm/Carousel/context.js.map +1 -0
  39. package/build/esm/Carousel/getSliderParams.d.ts +9 -0
  40. package/build/esm/Carousel/getSliderParams.js +85 -0
  41. package/build/esm/Carousel/getSliderParams.js.map +1 -0
  42. package/build/esm/Carousel/index.d.ts +7 -0
  43. package/build/esm/Carousel/index.js +8 -0
  44. package/build/esm/Carousel/index.js.map +1 -0
  45. package/build/esm/Carousel/useCarouselGestures.d.ts +30 -0
  46. package/build/esm/Carousel/useCarouselGestures.js +33 -0
  47. package/build/esm/Carousel/useCarouselGestures.js.map +1 -0
  48. package/build/esm/CheckBox/CheckBox.d.ts +7 -7
  49. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  50. package/build/esm/CheckBox/index.d.ts +1 -1
  51. package/build/esm/CheckBox/index.js.map +1 -1
  52. package/build/esm/ComboBox/Combobox.d.ts +18 -18
  53. package/build/esm/ComboBox/Combobox.js.map +1 -1
  54. package/build/esm/ComboBox/ComboboxButton.d.ts +9 -9
  55. package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
  56. package/build/esm/ComboBox/ComboboxInput.d.ts +17 -17
  57. package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
  58. package/build/esm/ComboBox/ComboboxLabel.d.ts +7 -7
  59. package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
  60. package/build/esm/ComboBox/ComboboxList.d.ts +8 -8
  61. package/build/esm/ComboBox/ComboboxList.js.map +1 -1
  62. package/build/esm/ComboBox/ComboboxOption.d.ts +11 -11
  63. package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
  64. package/build/esm/ComboBox/ComboboxPopover.d.ts +9 -9
  65. package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
  66. package/build/esm/ComboBox/cities.d.ts +5 -5
  67. package/build/esm/ComboBox/cities.js.map +1 -1
  68. package/build/esm/ComboBox/context.d.ts +30 -30
  69. package/build/esm/ComboBox/context.js.map +1 -1
  70. package/build/esm/ComboBox/hooks.d.ts +37 -37
  71. package/build/esm/ComboBox/hooks.js.map +1 -1
  72. package/build/esm/ComboBox/index.d.ts +8 -8
  73. package/build/esm/ComboBox/index.js.map +1 -1
  74. package/build/esm/ComboBox/makeHash.d.ts +1 -1
  75. package/build/esm/ComboBox/makeHash.js.map +1 -1
  76. package/build/esm/ComboBox/scopeQuery.d.ts +1 -1
  77. package/build/esm/ComboBox/scopeQuery.js.map +1 -1
  78. package/build/esm/DatePicker/DatePicker.d.ts +24 -0
  79. package/build/esm/DatePicker/DatePicker.js +101 -0
  80. package/build/esm/DatePicker/DatePicker.js.map +1 -0
  81. package/build/esm/DatePicker/DatePickerSelect.d.ts +8 -0
  82. package/build/esm/DatePicker/DatePickerSelect.js +201 -0
  83. package/build/esm/DatePicker/DatePickerSelect.js.map +1 -0
  84. package/build/esm/DatePicker/RangeDatePicker.d.ts +28 -0
  85. package/build/esm/DatePicker/RangeDatePicker.js +94 -0
  86. package/build/esm/DatePicker/RangeDatePicker.js.map +1 -0
  87. package/build/esm/DatePicker/adjustDates.d.ts +4 -0
  88. package/build/esm/DatePicker/adjustDates.js +18 -0
  89. package/build/esm/DatePicker/adjustDates.js.map +1 -0
  90. package/build/esm/DatePicker/contexts.d.ts +31 -0
  91. package/build/esm/DatePicker/contexts.js +15 -0
  92. package/build/esm/DatePicker/contexts.js.map +1 -0
  93. package/build/esm/DatePicker/dateTypes.d.ts +2 -0
  94. package/build/esm/DatePicker/dateTypes.js +2 -0
  95. package/build/esm/DatePicker/dateTypes.js.map +1 -0
  96. package/build/esm/DatePicker/hooks.d.ts +36 -0
  97. package/build/esm/DatePicker/hooks.js +98 -0
  98. package/build/esm/DatePicker/hooks.js.map +1 -0
  99. package/build/esm/DatePicker/index.d.ts +5 -0
  100. package/build/esm/DatePicker/index.js +6 -0
  101. package/build/esm/DatePicker/index.js.map +1 -0
  102. package/build/esm/FocusLock/FocusLock.d.ts +9 -9
  103. package/build/esm/FocusLock/FocusLock.js.map +1 -1
  104. package/build/esm/FocusLock/index.d.ts +1 -1
  105. package/build/esm/FocusLock/index.js.map +1 -1
  106. package/build/esm/FocusLock/tabUtils.d.ts +3 -3
  107. package/build/esm/FocusLock/tabUtils.js.map +1 -1
  108. package/build/esm/FocusLock/useFocusLock.d.ts +7 -7
  109. package/build/esm/FocusLock/useFocusLock.js.map +1 -1
  110. package/build/esm/List/List.d.ts +7 -7
  111. package/build/esm/List/List.js.map +1 -1
  112. package/build/esm/List/ListItem.d.ts +7 -7
  113. package/build/esm/List/ListItem.js.map +1 -1
  114. package/build/esm/List/context.d.ts +4 -4
  115. package/build/esm/List/context.js.map +1 -1
  116. package/build/esm/List/index.d.ts +2 -2
  117. package/build/esm/List/index.js.map +1 -1
  118. package/build/esm/Menu/ContextMenuTrigger.d.ts +11 -11
  119. package/build/esm/Menu/ContextMenuTrigger.js.map +1 -1
  120. package/build/esm/Menu/Menu.d.ts +10 -10
  121. package/build/esm/Menu/Menu.js.map +1 -1
  122. package/build/esm/Menu/MenuButton.d.ts +11 -11
  123. package/build/esm/Menu/MenuButton.js.map +1 -1
  124. package/build/esm/Menu/MenuItem.d.ts +8 -8
  125. package/build/esm/Menu/MenuItem.js.map +1 -1
  126. package/build/esm/Menu/MenuList.d.ts +7 -7
  127. package/build/esm/Menu/MenuList.js.map +1 -1
  128. package/build/esm/Menu/MenuPopover.d.ts +8 -8
  129. package/build/esm/Menu/MenuPopover.js.map +1 -1
  130. package/build/esm/Menu/context.d.ts +25 -25
  131. package/build/esm/Menu/context.js.map +1 -1
  132. package/build/esm/Menu/fixtures/countryList.d.ts +1 -1
  133. package/build/esm/Menu/fixtures/countryList.js.map +1 -1
  134. package/build/esm/Menu/index.d.ts +6 -6
  135. package/build/esm/Menu/index.js.map +1 -1
  136. package/build/esm/Menu/scope.d.ts +1 -1
  137. package/build/esm/Menu/scope.js.map +1 -1
  138. package/build/esm/Modal/Modal.d.ts +9 -9
  139. package/build/esm/Modal/Modal.js.map +1 -1
  140. package/build/esm/Modal/ModalBackdrop.d.ts +10 -10
  141. package/build/esm/Modal/ModalBackdrop.js.map +1 -1
  142. package/build/esm/Modal/index.d.ts +2 -2
  143. package/build/esm/Modal/index.js.map +1 -1
  144. package/build/esm/Popper/Popper.d.ts +35 -35
  145. package/build/esm/Popper/Popper.js.map +1 -1
  146. package/build/esm/Popper/PopperArrow.d.ts +6 -6
  147. package/build/esm/Popper/PopperArrow.js.map +1 -1
  148. package/build/esm/Popper/context.d.ts +6 -6
  149. package/build/esm/Popper/context.js.map +1 -1
  150. package/build/esm/Popper/index.d.ts +3 -3
  151. package/build/esm/Popper/index.js.map +1 -1
  152. package/build/esm/Portal/Portal.d.ts +7 -6
  153. package/build/esm/Portal/Portal.js +6 -3
  154. package/build/esm/Portal/Portal.js.map +1 -1
  155. package/build/esm/Portal/PortalSelectorProvider.d.ts +8 -0
  156. package/build/esm/Portal/PortalSelectorProvider.js +13 -0
  157. package/build/esm/Portal/PortalSelectorProvider.js.map +1 -0
  158. package/build/esm/Portal/index.d.ts +2 -1
  159. package/build/esm/Portal/index.js +1 -0
  160. package/build/esm/Portal/index.js.map +1 -1
  161. package/build/esm/RadioButton/RadioButton.d.ts +10 -10
  162. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  163. package/build/esm/RadioButton/RadioGroup.d.ts +12 -12
  164. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  165. package/build/esm/RadioButton/context.d.ts +9 -9
  166. package/build/esm/RadioButton/context.js.map +1 -1
  167. package/build/esm/RadioButton/index.d.ts +2 -2
  168. package/build/esm/RadioButton/index.js.map +1 -1
  169. package/build/esm/SkipNav/SkipNav.d.ts +7 -7
  170. package/build/esm/SkipNav/SkipNav.js.map +1 -1
  171. package/build/esm/SkipNav/index.d.ts +1 -1
  172. package/build/esm/SkipNav/index.js.map +1 -1
  173. package/build/esm/Slider/Slider.d.ts +197 -197
  174. package/build/esm/Slider/Slider.js +82 -82
  175. package/build/esm/Slider/Slider.js.map +1 -1
  176. package/build/esm/Slider/index.d.ts +1 -1
  177. package/build/esm/Slider/index.js.map +1 -1
  178. package/build/esm/Spinner/Spinner.d.ts +12 -12
  179. package/build/esm/Spinner/Spinner.js.map +1 -1
  180. package/build/esm/Spinner/SpinnerButton.d.ts +8 -8
  181. package/build/esm/Spinner/SpinnerButton.js.map +1 -1
  182. package/build/esm/Spinner/context.d.ts +12 -12
  183. package/build/esm/Spinner/context.js.map +1 -1
  184. package/build/esm/Spinner/index.d.ts +2 -2
  185. package/build/esm/Spinner/index.js.map +1 -1
  186. package/build/esm/Tabs/Tab.d.ts +7 -7
  187. package/build/esm/Tabs/Tab.js.map +1 -1
  188. package/build/esm/Tabs/TabList.d.ts +9 -9
  189. package/build/esm/Tabs/TabList.js.map +1 -1
  190. package/build/esm/Tabs/TabPanel.d.ts +8 -8
  191. package/build/esm/Tabs/TabPanel.js.map +1 -1
  192. package/build/esm/Tabs/TabPanels.d.ts +8 -8
  193. package/build/esm/Tabs/TabPanels.js.map +1 -1
  194. package/build/esm/Tabs/Tabs.d.ts +10 -10
  195. package/build/esm/Tabs/Tabs.js.map +1 -1
  196. package/build/esm/Tabs/context.d.ts +17 -17
  197. package/build/esm/Tabs/context.js.map +1 -1
  198. package/build/esm/Tabs/index.d.ts +5 -5
  199. package/build/esm/Tabs/index.js.map +1 -1
  200. package/build/esm/Tabs/scopeQuery.d.ts +1 -1
  201. package/build/esm/Tabs/scopeQuery.js.map +1 -1
  202. package/build/esm/Tooltip/Tooltip.d.ts +10 -10
  203. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  204. package/build/esm/Tooltip/index.d.ts +1 -1
  205. package/build/esm/Tooltip/index.js.map +1 -1
  206. package/build/esm/Tooltip/stateMachine.d.ts +28 -28
  207. package/build/esm/Tooltip/stateMachine.js.map +1 -1
  208. package/build/esm/Tooltip/useTooltip.d.ts +10 -10
  209. package/build/esm/Tooltip/useTooltip.js.map +1 -1
  210. package/build/esm/hooks/index.d.ts +13 -13
  211. package/build/esm/hooks/index.js.map +1 -1
  212. package/build/esm/hooks/useAutoFocus.d.ts +2 -2
  213. package/build/esm/hooks/useAutoFocus.js.map +1 -1
  214. package/build/esm/hooks/useChildrenCounter.d.ts +7 -7
  215. package/build/esm/hooks/useChildrenCounter.js.map +1 -1
  216. package/build/esm/hooks/useControlledState.d.ts +3 -3
  217. package/build/esm/hooks/useFocusReturn.d.ts +2 -2
  218. package/build/esm/hooks/useFocusReturn.js.map +1 -1
  219. package/build/esm/hooks/useFocusState.d.ts +11 -11
  220. package/build/esm/hooks/useFocusState.js.map +1 -1
  221. package/build/esm/hooks/useGestureHandlers.d.ts +52 -52
  222. package/build/esm/hooks/useGestureHandlers.js.map +1 -1
  223. package/build/esm/hooks/useId.d.ts +1 -0
  224. package/build/esm/hooks/useId.js +25 -0
  225. package/build/esm/hooks/useId.js.map +1 -0
  226. package/build/esm/hooks/useMeasure.d.ts +7 -7
  227. package/build/esm/hooks/useMeasure.js.map +1 -1
  228. package/build/esm/hooks/useOnClickOutside.d.ts +2 -2
  229. package/build/esm/hooks/useOnClickOutside.js.map +1 -1
  230. package/build/esm/hooks/useOnKeyDown.d.ts +1 -1
  231. package/build/esm/hooks/useOnKeyDown.js.map +1 -1
  232. package/build/esm/hooks/useReducerMachine.d.ts +24 -24
  233. package/build/esm/hooks/useReducerMachine.js.map +1 -1
  234. package/build/esm/hooks/useRemoveBodyScroll.d.ts +2 -2
  235. package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
  236. package/build/esm/hooks/useScope.d.ts +11 -11
  237. package/build/esm/hooks/useScope.js.map +1 -1
  238. package/build/esm/hooks/useThrottle.d.ts +1 -1
  239. package/build/esm/hooks/useThrottle.js.map +1 -1
  240. package/build/esm/index.d.ts +15 -15
  241. package/build/esm/index.js.map +1 -1
  242. package/build/esm/utils/assign-ref.d.ts +3 -3
  243. package/build/esm/utils/assign-ref.js.map +1 -1
  244. package/build/esm/utils/assignRef.d.ts +3 -0
  245. package/build/esm/utils/assignRef.js +25 -0
  246. package/build/esm/utils/assignRef.js.map +1 -0
  247. package/build/esm/utils/can-use-dom.d.ts +1 -1
  248. package/build/esm/utils/can-use-dom.js.map +1 -1
  249. package/build/esm/utils/clamp.d.ts +1 -1
  250. package/build/esm/utils/clamp.js.map +1 -1
  251. package/build/esm/utils/context.d.ts +7 -7
  252. package/build/esm/utils/context.js.map +1 -1
  253. package/build/esm/utils/create-subscription.d.ts +4 -4
  254. package/build/esm/utils/create-subscription.js.map +1 -1
  255. package/build/esm/utils/get-circular-index.d.ts +1 -1
  256. package/build/esm/utils/get-circular-index.js.map +1 -1
  257. package/build/esm/utils/getCircularIndex.d.ts +1 -0
  258. package/build/esm/utils/getCircularIndex.js +8 -0
  259. package/build/esm/utils/getCircularIndex.js.map +1 -0
  260. package/build/esm/utils/index.d.ts +10 -10
  261. package/build/esm/utils/index.js.map +1 -1
  262. package/build/esm/utils/is-right-click.d.ts +6 -6
  263. package/build/esm/utils/is-right-click.js +4 -4
  264. package/build/esm/utils/is-right-click.js.map +1 -1
  265. package/build/esm/utils/owner-document.d.ts +7 -7
  266. package/build/esm/utils/owner-document.js +5 -5
  267. package/build/esm/utils/owner-document.js.map +1 -1
  268. package/build/esm/utils/polymorphic.d.ts +39 -39
  269. package/build/esm/utils/polymorphic.js.map +1 -1
  270. package/build/esm/utils/rubber-band-clamp.d.ts +2 -2
  271. package/build/esm/utils/rubber-band-clamp.js.map +1 -1
  272. package/build/esm/utils/rubberBandClamp.d.ts +2 -0
  273. package/build/esm/utils/rubberBandClamp.js +20 -0
  274. package/build/esm/utils/rubberBandClamp.js.map +1 -0
  275. package/build/esm/utils/use-stable-callback.d.ts +16 -16
  276. package/build/esm/utils/use-stable-callback.js +16 -16
  277. package/build/esm/utils/use-stable-callback.js.map +1 -1
  278. package/build/esm/utils/wrap-event.d.ts +3 -3
  279. package/build/esm/utils/wrap-event.js.map +1 -1
  280. package/build/esm/utils/wrapEvent.d.ts +3 -0
  281. package/build/esm/utils/wrapEvent.js +16 -0
  282. package/build/esm/utils/wrapEvent.js.map +1 -0
  283. package/build/tsconfig-build.tsbuildinfo +1 -1
  284. package/build/tsconfig.tsbuildinfo +7270 -0
  285. package/package.json +2 -2
  286. package/src/Accordion/Accordion.story.tsx +74 -74
  287. package/src/Accordion/Accordion.tsx +59 -59
  288. package/src/Accordion/AccordionBody.tsx +52 -52
  289. package/src/Accordion/AccordionHeader.tsx +167 -167
  290. package/src/Accordion/AccordionItem.tsx +50 -50
  291. package/src/Accordion/context.ts +37 -37
  292. package/src/Accordion/index.ts +4 -4
  293. package/src/Accordion/scopeQuery.ts +7 -7
  294. package/src/Accordion/styles.css +21 -21
  295. package/src/CheckBox/CheckBox.tsx +41 -41
  296. package/src/CheckBox/index.ts +1 -1
  297. package/src/ComboBox/ComboBox.story.tsx +120 -120
  298. package/src/ComboBox/Combobox.tsx +148 -148
  299. package/src/ComboBox/ComboboxButton.tsx +61 -61
  300. package/src/ComboBox/ComboboxInput.tsx +187 -187
  301. package/src/ComboBox/ComboboxLabel.tsx +33 -33
  302. package/src/ComboBox/ComboboxList.tsx +47 -47
  303. package/src/ComboBox/ComboboxOption.tsx +111 -111
  304. package/src/ComboBox/ComboboxPopover.tsx +64 -64
  305. package/src/ComboBox/cities.ts +23194 -23194
  306. package/src/ComboBox/context.ts +35 -35
  307. package/src/ComboBox/hooks.tsx +451 -451
  308. package/src/ComboBox/index.ts +8 -8
  309. package/src/ComboBox/makeHash.ts +19 -19
  310. package/src/ComboBox/scopeQuery.ts +6 -6
  311. package/src/ComboBox/styles.css +32 -32
  312. package/src/FocusLock/FocusLock.tsx +66 -66
  313. package/src/FocusLock/index.ts +1 -1
  314. package/src/FocusLock/tabUtils.ts +40 -40
  315. package/src/FocusLock/useFocusLock.ts +56 -56
  316. package/src/List/List.story.tsx +18 -18
  317. package/src/List/List.tsx +17 -17
  318. package/src/List/ListItem.tsx +23 -23
  319. package/src/List/context.ts +19 -19
  320. package/src/List/index.ts +2 -2
  321. package/src/Menu/ContextMenu.story.tsx +73 -73
  322. package/src/Menu/ContextMenuTrigger.tsx +76 -76
  323. package/src/Menu/Menu.story.tsx +160 -160
  324. package/src/Menu/Menu.tsx +83 -83
  325. package/src/Menu/MenuButton.tsx +83 -83
  326. package/src/Menu/MenuComplex.story.tsx +58 -58
  327. package/src/Menu/MenuItem.tsx +88 -88
  328. package/src/Menu/MenuList.tsx +254 -254
  329. package/src/Menu/MenuPopover.tsx +35 -35
  330. package/src/Menu/context.ts +44 -44
  331. package/src/Menu/fixtures/countryList.ts +198 -198
  332. package/src/Menu/index.ts +6 -6
  333. package/src/Menu/scope.ts +7 -7
  334. package/src/Menu/styles.css +42 -42
  335. package/src/Modal/Modal.story.tsx +258 -258
  336. package/src/Modal/Modal.tsx +48 -48
  337. package/src/Modal/ModalBackdrop.tsx +78 -78
  338. package/src/Modal/NavDrawer.story.tsx +158 -158
  339. package/src/Modal/index.ts +2 -2
  340. package/src/Modal/styles.css +46 -46
  341. package/src/Popper/Popper.story.tsx +263 -263
  342. package/src/Popper/Popper.tsx +154 -154
  343. package/src/Popper/PopperArrow.tsx +35 -35
  344. package/src/Popper/context.ts +10 -10
  345. package/src/Popper/index.ts +3 -3
  346. package/src/Popper/styles.css +60 -60
  347. package/src/Portal/Portal.tsx +31 -20
  348. package/src/Portal/PortalSelectorProvider.tsx +24 -0
  349. package/src/Portal/index.ts +6 -1
  350. package/src/RadioButton/RadioButton.story.tsx +77 -77
  351. package/src/RadioButton/RadioButton.tsx +55 -55
  352. package/src/RadioButton/RadioGroup.tsx +60 -60
  353. package/src/RadioButton/context.ts +17 -17
  354. package/src/RadioButton/index.ts +2 -2
  355. package/src/SkipNav/SkipNav.tsx +16 -16
  356. package/src/SkipNav/index.tsx +1 -1
  357. package/src/Slider/Slider.story.tsx +45 -45
  358. package/src/Slider/Slider.tsx +1120 -1120
  359. package/src/Slider/index.ts +1 -1
  360. package/src/Slider/styles.css +131 -131
  361. package/src/Spinner/Spinner.story.tsx +31 -31
  362. package/src/Spinner/Spinner.tsx +117 -117
  363. package/src/Spinner/SpinnerButton.tsx +54 -54
  364. package/src/Spinner/context.ts +20 -20
  365. package/src/Spinner/index.ts +2 -2
  366. package/src/Spinner/styles.css +23 -23
  367. package/src/Tabs/Tab.story.tsx +80 -80
  368. package/src/Tabs/Tab.tsx +136 -136
  369. package/src/Tabs/TabList.tsx +71 -71
  370. package/src/Tabs/TabPanel.tsx +53 -53
  371. package/src/Tabs/TabPanels.tsx +30 -30
  372. package/src/Tabs/Tabs.tsx +46 -46
  373. package/src/Tabs/context.ts +30 -30
  374. package/src/Tabs/index.tsx +5 -5
  375. package/src/Tabs/scopeQuery.ts +6 -6
  376. package/src/Tooltip/Tooltip.story.tsx +61 -61
  377. package/src/Tooltip/Tooltip.tsx +50 -50
  378. package/src/Tooltip/index.ts +1 -1
  379. package/src/Tooltip/stateMachine.ts +192 -192
  380. package/src/Tooltip/styles.css +17 -17
  381. package/src/Tooltip/useTooltip.ts +136 -136
  382. package/src/hooks/index.ts +13 -13
  383. package/src/hooks/useAutoFocus.ts +22 -22
  384. package/src/hooks/useChildrenCounter.ts +51 -51
  385. package/src/hooks/useFocusReturn.ts +43 -43
  386. package/src/hooks/useFocusState.ts +30 -30
  387. package/src/hooks/useGestureHandlers.ts +286 -286
  388. package/src/hooks/useMeasure.ts +33 -33
  389. package/src/hooks/useOnClickOutside.ts +32 -32
  390. package/src/hooks/useOnKeyDown.ts +19 -19
  391. package/src/hooks/useReducerMachine.ts +60 -60
  392. package/src/hooks/useRemoveBodyScroll.ts +39 -39
  393. package/src/hooks/useScope.ts +52 -52
  394. package/src/hooks/useThrottle.ts +19 -19
  395. package/src/index.ts +20 -20
  396. package/src/utils/assign-ref.ts +27 -27
  397. package/src/utils/can-use-dom.ts +7 -7
  398. package/src/utils/clamp.ts +3 -3
  399. package/src/utils/context.tsx +48 -48
  400. package/src/utils/create-subscription.ts +16 -16
  401. package/src/utils/get-circular-index.ts +7 -7
  402. package/src/utils/index.ts +10 -10
  403. package/src/utils/is-right-click.ts +14 -14
  404. package/src/utils/owner-document.ts +13 -13
  405. package/src/utils/polymorphic.ts +78 -78
  406. package/src/utils/rubber-band-clamp.ts +25 -25
  407. package/src/utils/use-stable-callback.ts +58 -58
  408. package/src/utils/wrap-event.ts +22 -22
@@ -1,111 +1,111 @@
1
- /* eslint-disable @typescript-eslint/no-use-before-define */
2
- import type {
3
- ElementType,
4
- LiHTMLAttributes,
5
- MouseEventHandler,
6
- ReactNode,
7
- } from 'react';
8
- import { forwardRef, useEffect, useRef } from 'react';
9
-
10
- import { SELECT_WITH_CLICK, CLEAR_SELECTION } from './hooks';
11
- import { wrapEvent } from '../utils/wrap-event';
12
- import { useComboBoxContext } from './context';
13
- import { makeHash } from './makeHash';
14
-
15
- export interface ComboboxOptionProps extends LiHTMLAttributes<HTMLLIElement> {
16
- as?: ElementType<any>;
17
- innerAs?: ElementType<any>;
18
- id: string;
19
- value: any;
20
- text?: string;
21
- onClick?: MouseEventHandler<HTMLLIElement>;
22
- children?: ReactNode;
23
- }
24
-
25
- export const ComboboxOption = forwardRef<HTMLLIElement, ComboboxOptionProps>(
26
- function ComboboxOption(
27
- {
28
- children,
29
- id: idProp,
30
- value: valueProp,
31
- text: textProp,
32
- onClick,
33
- as: Comp = 'li',
34
- innerAs,
35
- ...props
36
- },
37
- ref
38
- ) {
39
- const {
40
- onSelect,
41
- data: { navigationItem },
42
- transition,
43
- optionsRef,
44
- } = useComboBoxContext();
45
- const transitionCleanupRef = useRef(transition);
46
- const isActiveRef = useRef(false);
47
-
48
- const value: any = valueProp;
49
- let text: string = textProp ? textProp : '';
50
-
51
- if (text.length === 0) {
52
- if (typeof valueProp === 'string' && valueProp.length > 0) {
53
- text = valueProp;
54
- } else {
55
- throw new Error('Missing text for <ComboboxOption />');
56
- }
57
- }
58
-
59
- const id = String(makeHash(idProp));
60
-
61
- useEffect(() => {
62
- const opts = optionsRef.current;
63
- opts[id] = { value, text };
64
-
65
- return () => {
66
- delete opts[id];
67
- };
68
- }, [optionsRef, id, text, value]);
69
-
70
- // Keep updating this ref with the current
71
- // function pointer for transition, so it can
72
- // be used by the unmount effect below.
73
- transitionCleanupRef.current = transition;
74
- isActiveRef.current = navigationItem === id;
75
-
76
- useEffect(() => {
77
- return () => {
78
- if (isActiveRef.current === true) {
79
- // clean up selections if this option is getting
80
- // unmounted and it was the currently selected item
81
- transitionCleanupRef.current(CLEAR_SELECTION);
82
- }
83
- };
84
- }, []);
85
-
86
- const handleClick = () => {
87
- onSelect && onSelect(text, id, value);
88
- transition(SELECT_WITH_CLICK, { text, item: id });
89
- };
90
-
91
- return (
92
- <Comp
93
- {...props}
94
- as={innerAs}
95
- data-reach-combobox-option=""
96
- ref={ref}
97
- id={id}
98
- role="option"
99
- aria-selected={isActiveRef.current}
100
- data-highlighted={isActiveRef.current ? '' : undefined}
101
- // without this the menu will close from `onBlur`, but with it the
102
- // element can be `document.activeElement` and then our focus checks in
103
- // onBlur will work as intended
104
- tabIndex="-1"
105
- onClick={wrapEvent(onClick, handleClick)}
106
- >
107
- {children || text}
108
- </Comp>
109
- );
110
- }
111
- );
1
+ /* eslint-disable @typescript-eslint/no-use-before-define */
2
+ import type {
3
+ ElementType,
4
+ LiHTMLAttributes,
5
+ MouseEventHandler,
6
+ ReactNode,
7
+ } from 'react';
8
+ import { forwardRef, useEffect, useRef } from 'react';
9
+
10
+ import { SELECT_WITH_CLICK, CLEAR_SELECTION } from './hooks';
11
+ import { wrapEvent } from '../utils/wrap-event';
12
+ import { useComboBoxContext } from './context';
13
+ import { makeHash } from './makeHash';
14
+
15
+ export interface ComboboxOptionProps extends LiHTMLAttributes<HTMLLIElement> {
16
+ as?: ElementType<any>;
17
+ innerAs?: ElementType<any>;
18
+ id: string;
19
+ value: any;
20
+ text?: string;
21
+ onClick?: MouseEventHandler<HTMLLIElement>;
22
+ children?: ReactNode;
23
+ }
24
+
25
+ export const ComboboxOption = forwardRef<HTMLLIElement, ComboboxOptionProps>(
26
+ function ComboboxOption(
27
+ {
28
+ children,
29
+ id: idProp,
30
+ value: valueProp,
31
+ text: textProp,
32
+ onClick,
33
+ as: Comp = 'li',
34
+ innerAs,
35
+ ...props
36
+ },
37
+ ref
38
+ ) {
39
+ const {
40
+ onSelect,
41
+ data: { navigationItem },
42
+ transition,
43
+ optionsRef,
44
+ } = useComboBoxContext();
45
+ const transitionCleanupRef = useRef(transition);
46
+ const isActiveRef = useRef(false);
47
+
48
+ const value: any = valueProp;
49
+ let text: string = textProp ? textProp : '';
50
+
51
+ if (text.length === 0) {
52
+ if (typeof valueProp === 'string' && valueProp.length > 0) {
53
+ text = valueProp;
54
+ } else {
55
+ throw new Error('Missing text for <ComboboxOption />');
56
+ }
57
+ }
58
+
59
+ const id = String(makeHash(idProp));
60
+
61
+ useEffect(() => {
62
+ const opts = optionsRef.current;
63
+ opts[id] = { value, text };
64
+
65
+ return () => {
66
+ delete opts[id];
67
+ };
68
+ }, [optionsRef, id, text, value]);
69
+
70
+ // Keep updating this ref with the current
71
+ // function pointer for transition, so it can
72
+ // be used by the unmount effect below.
73
+ transitionCleanupRef.current = transition;
74
+ isActiveRef.current = navigationItem === id;
75
+
76
+ useEffect(() => {
77
+ return () => {
78
+ if (isActiveRef.current === true) {
79
+ // clean up selections if this option is getting
80
+ // unmounted and it was the currently selected item
81
+ transitionCleanupRef.current(CLEAR_SELECTION);
82
+ }
83
+ };
84
+ }, []);
85
+
86
+ const handleClick = () => {
87
+ onSelect && onSelect(text, id, value);
88
+ transition(SELECT_WITH_CLICK, { text, item: id });
89
+ };
90
+
91
+ return (
92
+ <Comp
93
+ {...props}
94
+ as={innerAs}
95
+ data-reach-combobox-option=""
96
+ ref={ref}
97
+ id={id}
98
+ role="option"
99
+ aria-selected={isActiveRef.current}
100
+ data-highlighted={isActiveRef.current ? '' : undefined}
101
+ // without this the menu will close from `onBlur`, but with it the
102
+ // element can be `document.activeElement` and then our focus checks in
103
+ // onBlur will work as intended
104
+ tabIndex="-1"
105
+ onClick={wrapEvent(onClick, handleClick)}
106
+ >
107
+ {children || text}
108
+ </Comp>
109
+ );
110
+ }
111
+ );
@@ -1,64 +1,64 @@
1
- import type {
2
- ElementType,
3
- FocusEventHandler,
4
- HTMLAttributes,
5
- KeyboardEventHandler,
6
- ReactNode,
7
- } from 'react';
8
- import { forwardRef } from 'react';
9
-
10
- import { useKeyDown, useBlur } from './hooks';
11
- import { wrapEvent } from '../utils/wrap-event';
12
- import { assignMultipleRefs } from '../utils/assign-ref';
13
- import { useComboBoxContext } from './context';
14
-
15
- export interface ComboboxPopoverProps extends HTMLAttributes<HTMLDivElement> {
16
- as?: ElementType<any>;
17
- innerAs?: ElementType<any>;
18
- onBlur?: FocusEventHandler<HTMLDivElement>;
19
- onKeyDown?: KeyboardEventHandler<HTMLDivElement>;
20
- children?: ReactNode;
21
- }
22
-
23
- export const ComboboxPopover = forwardRef<HTMLDivElement, ComboboxPopoverProps>(
24
- function ComboboxPopover(
25
- {
26
- // wrapped events
27
- onKeyDown,
28
- onBlur,
29
-
30
- as: Comp = 'div',
31
- innerAs,
32
- ...props
33
- },
34
- forwardedRef
35
- ) {
36
- const { popoverRef, isVisible } = useComboBoxContext();
37
- const handleKeyDown = useKeyDown();
38
- const handleBlur = useBlur();
39
-
40
- // Instead of conditionally rendering the popover we use the `hidden` prop
41
- // because we don't want to unmount on close (from escape or onSelect). If
42
- // we unmounted, then we'd lose the optionsRef and the user wouldn't be able
43
- // to use the arrow keys to pop the list back open. However, the developer
44
- // can conditionally render the ComboboxPopover if they do want to cause
45
- // mount/unmount based on the app's own data (like results.length or
46
- // whatever).
47
- const hidden = !isVisible;
48
-
49
- return (
50
- <Comp
51
- {...props}
52
- as={innerAs}
53
- data-reach-combobox-popover=""
54
- ref={assignMultipleRefs(popoverRef, forwardedRef)}
55
- onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}
56
- onBlur={wrapEvent(onBlur, handleBlur)}
57
- hidden={hidden}
58
- // Allow the user to click empty space inside the popover without causing
59
- // to close from useBlur
60
- tabIndex="-1"
61
- />
62
- );
63
- }
64
- );
1
+ import type {
2
+ ElementType,
3
+ FocusEventHandler,
4
+ HTMLAttributes,
5
+ KeyboardEventHandler,
6
+ ReactNode,
7
+ } from 'react';
8
+ import { forwardRef } from 'react';
9
+
10
+ import { useKeyDown, useBlur } from './hooks';
11
+ import { wrapEvent } from '../utils/wrap-event';
12
+ import { assignMultipleRefs } from '../utils/assign-ref';
13
+ import { useComboBoxContext } from './context';
14
+
15
+ export interface ComboboxPopoverProps extends HTMLAttributes<HTMLDivElement> {
16
+ as?: ElementType<any>;
17
+ innerAs?: ElementType<any>;
18
+ onBlur?: FocusEventHandler<HTMLDivElement>;
19
+ onKeyDown?: KeyboardEventHandler<HTMLDivElement>;
20
+ children?: ReactNode;
21
+ }
22
+
23
+ export const ComboboxPopover = forwardRef<HTMLDivElement, ComboboxPopoverProps>(
24
+ function ComboboxPopover(
25
+ {
26
+ // wrapped events
27
+ onKeyDown,
28
+ onBlur,
29
+
30
+ as: Comp = 'div',
31
+ innerAs,
32
+ ...props
33
+ },
34
+ forwardedRef
35
+ ) {
36
+ const { popoverRef, isVisible } = useComboBoxContext();
37
+ const handleKeyDown = useKeyDown();
38
+ const handleBlur = useBlur();
39
+
40
+ // Instead of conditionally rendering the popover we use the `hidden` prop
41
+ // because we don't want to unmount on close (from escape or onSelect). If
42
+ // we unmounted, then we'd lose the optionsRef and the user wouldn't be able
43
+ // to use the arrow keys to pop the list back open. However, the developer
44
+ // can conditionally render the ComboboxPopover if they do want to cause
45
+ // mount/unmount based on the app's own data (like results.length or
46
+ // whatever).
47
+ const hidden = !isVisible;
48
+
49
+ return (
50
+ <Comp
51
+ {...props}
52
+ as={innerAs}
53
+ data-reach-combobox-popover=""
54
+ ref={assignMultipleRefs(popoverRef, forwardedRef)}
55
+ onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}
56
+ onBlur={wrapEvent(onBlur, handleBlur)}
57
+ hidden={hidden}
58
+ // Allow the user to click empty space inside the popover without causing
59
+ // to close from useBlur
60
+ tabIndex="-1"
61
+ />
62
+ );
63
+ }
64
+ );