@basic-ui/core 0.0.54 → 0.0.56

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 (410) hide show
  1. package/README.md +3 -3
  2. package/build/cjs/index.js +364 -591
  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 +20 -29
  6. package/build/esm/Accordion/Accordion.js.map +1 -1
  7. package/build/esm/Accordion/AccordionBody.d.ts +6 -6
  8. package/build/esm/Accordion/AccordionBody.js +18 -32
  9. package/build/esm/Accordion/AccordionBody.js.map +1 -1
  10. package/build/esm/Accordion/AccordionHeader.d.ts +7 -7
  11. package/build/esm/Accordion/AccordionHeader.js +37 -74
  12. package/build/esm/Accordion/AccordionHeader.js.map +1 -1
  13. package/build/esm/Accordion/AccordionItem.d.ts +9 -9
  14. package/build/esm/Accordion/AccordionItem.js +19 -22
  15. package/build/esm/Accordion/AccordionItem.js.map +1 -1
  16. package/build/esm/Accordion/context.d.ts +19 -19
  17. package/build/esm/Accordion/context.js +16 -13
  18. package/build/esm/Accordion/context.js.map +1 -1
  19. package/build/esm/Accordion/index.d.ts +4 -4
  20. package/build/esm/Accordion/index.js.map +1 -1
  21. package/build/esm/Accordion/scopeQuery.d.ts +2 -2
  22. package/build/esm/Accordion/scopeQuery.js.map +1 -1
  23. package/build/esm/CheckBox/CheckBox.d.ts +7 -7
  24. package/build/esm/CheckBox/CheckBox.js +15 -25
  25. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  26. package/build/esm/CheckBox/index.d.ts +1 -1
  27. package/build/esm/CheckBox/index.js.map +1 -1
  28. package/build/esm/ComboBox/Combobox.d.ts +18 -18
  29. package/build/esm/ComboBox/Combobox.js +52 -59
  30. package/build/esm/ComboBox/Combobox.js.map +1 -1
  31. package/build/esm/ComboBox/ComboboxButton.d.ts +9 -9
  32. package/build/esm/ComboBox/ComboboxButton.js +23 -28
  33. package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
  34. package/build/esm/ComboBox/ComboboxInput.d.ts +17 -17
  35. package/build/esm/ComboBox/ComboboxInput.js +67 -70
  36. package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
  37. package/build/esm/ComboBox/ComboboxLabel.d.ts +7 -7
  38. package/build/esm/ComboBox/ComboboxLabel.js +15 -17
  39. package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
  40. package/build/esm/ComboBox/ComboboxList.d.ts +8 -8
  41. package/build/esm/ComboBox/ComboboxList.js +19 -20
  42. package/build/esm/ComboBox/ComboboxList.js.map +1 -1
  43. package/build/esm/ComboBox/ComboboxOption.d.ts +11 -11
  44. package/build/esm/ComboBox/ComboboxOption.js +41 -45
  45. package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
  46. package/build/esm/ComboBox/ComboboxPopover.d.ts +9 -9
  47. package/build/esm/ComboBox/ComboboxPopover.js +22 -21
  48. package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
  49. package/build/esm/ComboBox/cities.d.ts +5 -5
  50. package/build/esm/ComboBox/cities.js.map +1 -1
  51. package/build/esm/ComboBox/context.d.ts +30 -30
  52. package/build/esm/ComboBox/context.js +5 -6
  53. package/build/esm/ComboBox/context.js.map +1 -1
  54. package/build/esm/ComboBox/hooks.d.ts +37 -37
  55. package/build/esm/ComboBox/hooks.js +175 -148
  56. package/build/esm/ComboBox/hooks.js.map +1 -1
  57. package/build/esm/ComboBox/index.d.ts +8 -8
  58. package/build/esm/ComboBox/index.js.map +1 -1
  59. package/build/esm/ComboBox/makeHash.d.ts +1 -1
  60. package/build/esm/ComboBox/makeHash.js +3 -6
  61. package/build/esm/ComboBox/makeHash.js.map +1 -1
  62. package/build/esm/ComboBox/scopeQuery.d.ts +1 -1
  63. package/build/esm/ComboBox/scopeQuery.js.map +1 -1
  64. package/build/esm/FocusLock/FocusLock.d.ts +9 -9
  65. package/build/esm/FocusLock/FocusLock.js +26 -32
  66. package/build/esm/FocusLock/FocusLock.js.map +1 -1
  67. package/build/esm/FocusLock/index.d.ts +1 -1
  68. package/build/esm/FocusLock/index.js.map +1 -1
  69. package/build/esm/FocusLock/tabUtils.d.ts +3 -3
  70. package/build/esm/FocusLock/tabUtils.js +5 -7
  71. package/build/esm/FocusLock/tabUtils.js.map +1 -1
  72. package/build/esm/FocusLock/useFocusLock.d.ts +7 -7
  73. package/build/esm/FocusLock/useFocusLock.js +14 -19
  74. package/build/esm/FocusLock/useFocusLock.js.map +1 -1
  75. package/build/esm/List/List.d.ts +7 -7
  76. package/build/esm/List/List.js +9 -11
  77. package/build/esm/List/List.js.map +1 -1
  78. package/build/esm/List/ListItem.d.ts +7 -7
  79. package/build/esm/List/ListItem.js +9 -11
  80. package/build/esm/List/ListItem.js.map +1 -1
  81. package/build/esm/List/context.d.ts +4 -4
  82. package/build/esm/List/context.js +6 -6
  83. package/build/esm/List/context.js.map +1 -1
  84. package/build/esm/List/index.d.ts +2 -2
  85. package/build/esm/List/index.js.map +1 -1
  86. package/build/esm/Menu/ContextMenuTrigger.d.ts +11 -11
  87. package/build/esm/Menu/ContextMenuTrigger.js +32 -37
  88. package/build/esm/Menu/ContextMenuTrigger.js.map +1 -1
  89. package/build/esm/Menu/Menu.d.ts +10 -10
  90. package/build/esm/Menu/Menu.js +33 -49
  91. package/build/esm/Menu/Menu.js.map +1 -1
  92. package/build/esm/Menu/MenuButton.d.ts +11 -11
  93. package/build/esm/Menu/MenuButton.js +28 -44
  94. package/build/esm/Menu/MenuButton.js.map +1 -1
  95. package/build/esm/Menu/MenuItem.d.ts +8 -8
  96. package/build/esm/Menu/MenuItem.js +29 -38
  97. package/build/esm/Menu/MenuItem.js.map +1 -1
  98. package/build/esm/Menu/MenuList.d.ts +7 -7
  99. package/build/esm/Menu/MenuList.js +61 -116
  100. package/build/esm/Menu/MenuList.js.map +1 -1
  101. package/build/esm/Menu/MenuPopover.d.ts +8 -8
  102. package/build/esm/Menu/MenuPopover.js +16 -19
  103. package/build/esm/Menu/MenuPopover.js.map +1 -1
  104. package/build/esm/Menu/context.d.ts +25 -25
  105. package/build/esm/Menu/context.js +14 -12
  106. package/build/esm/Menu/context.js.map +1 -1
  107. package/build/esm/Menu/fixtures/countryList.d.ts +1 -1
  108. package/build/esm/Menu/fixtures/countryList.js +1 -1
  109. package/build/esm/Menu/fixtures/countryList.js.map +1 -1
  110. package/build/esm/Menu/index.d.ts +6 -6
  111. package/build/esm/Menu/index.js.map +1 -1
  112. package/build/esm/Menu/scope.d.ts +1 -1
  113. package/build/esm/Menu/scope.js.map +1 -1
  114. package/build/esm/Modal/Modal.d.ts +9 -9
  115. package/build/esm/Modal/Modal.js +13 -18
  116. package/build/esm/Modal/Modal.js.map +1 -1
  117. package/build/esm/Modal/ModalBackdrop.d.ts +10 -10
  118. package/build/esm/Modal/ModalBackdrop.js +24 -33
  119. package/build/esm/Modal/ModalBackdrop.js.map +1 -1
  120. package/build/esm/Modal/index.d.ts +2 -2
  121. package/build/esm/Modal/index.js.map +1 -1
  122. package/build/esm/Popper/Popper.d.ts +35 -35
  123. package/build/esm/Popper/Popper.js +44 -60
  124. package/build/esm/Popper/Popper.js.map +1 -1
  125. package/build/esm/Popper/PopperArrow.d.ts +6 -6
  126. package/build/esm/Popper/PopperArrow.js +11 -16
  127. package/build/esm/Popper/PopperArrow.js.map +1 -1
  128. package/build/esm/Popper/context.d.ts +6 -6
  129. package/build/esm/Popper/context.js +3 -5
  130. package/build/esm/Popper/context.js.map +1 -1
  131. package/build/esm/Popper/index.d.ts +3 -3
  132. package/build/esm/Popper/index.js.map +1 -1
  133. package/build/esm/Portal/Portal.d.ts +7 -7
  134. package/build/esm/Portal/Portal.js +9 -11
  135. package/build/esm/Portal/Portal.js.map +1 -1
  136. package/build/esm/Portal/PortalSelectorProvider.d.ts +8 -8
  137. package/build/esm/Portal/PortalSelectorProvider.js +6 -4
  138. package/build/esm/Portal/PortalSelectorProvider.js.map +1 -1
  139. package/build/esm/Portal/index.d.ts +2 -2
  140. package/build/esm/Portal/index.js.map +1 -1
  141. package/build/esm/RadioButton/RadioButton.d.ts +10 -10
  142. package/build/esm/RadioButton/RadioButton.js +17 -23
  143. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  144. package/build/esm/RadioButton/RadioGroup.d.ts +12 -12
  145. package/build/esm/RadioButton/RadioGroup.js +19 -28
  146. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  147. package/build/esm/RadioButton/context.d.ts +9 -9
  148. package/build/esm/RadioButton/context.js +8 -6
  149. package/build/esm/RadioButton/context.js.map +1 -1
  150. package/build/esm/RadioButton/index.d.ts +2 -2
  151. package/build/esm/RadioButton/index.js.map +1 -1
  152. package/build/esm/SkipNav/SkipNav.d.ts +7 -7
  153. package/build/esm/SkipNav/SkipNav.js +9 -11
  154. package/build/esm/SkipNav/SkipNav.js.map +1 -1
  155. package/build/esm/SkipNav/index.d.ts +1 -1
  156. package/build/esm/SkipNav/index.js.map +1 -1
  157. package/build/esm/Slider/Slider.d.ts +197 -197
  158. package/build/esm/Slider/Slider.js +422 -489
  159. package/build/esm/Slider/Slider.js.map +1 -1
  160. package/build/esm/Slider/index.d.ts +1 -1
  161. package/build/esm/Slider/index.js.map +1 -1
  162. package/build/esm/Spinner/Spinner.d.ts +12 -12
  163. package/build/esm/Spinner/Spinner.js +31 -59
  164. package/build/esm/Spinner/Spinner.js.map +1 -1
  165. package/build/esm/Spinner/SpinnerButton.d.ts +8 -8
  166. package/build/esm/Spinner/SpinnerButton.js +14 -19
  167. package/build/esm/Spinner/SpinnerButton.js.map +1 -1
  168. package/build/esm/Spinner/context.d.ts +12 -12
  169. package/build/esm/Spinner/context.js +8 -7
  170. package/build/esm/Spinner/context.js.map +1 -1
  171. package/build/esm/Spinner/index.d.ts +2 -2
  172. package/build/esm/Spinner/index.js.map +1 -1
  173. package/build/esm/Tabs/Tab.d.ts +7 -7
  174. package/build/esm/Tabs/Tab.js +32 -50
  175. package/build/esm/Tabs/Tab.js.map +1 -1
  176. package/build/esm/Tabs/TabList.d.ts +9 -9
  177. package/build/esm/Tabs/TabList.js +24 -34
  178. package/build/esm/Tabs/TabList.js.map +1 -1
  179. package/build/esm/Tabs/TabPanel.d.ts +8 -8
  180. package/build/esm/Tabs/TabPanel.js +16 -23
  181. package/build/esm/Tabs/TabPanel.js.map +1 -1
  182. package/build/esm/Tabs/TabPanels.d.ts +8 -8
  183. package/build/esm/Tabs/TabPanels.js +15 -20
  184. package/build/esm/Tabs/TabPanels.js.map +1 -1
  185. package/build/esm/Tabs/Tabs.d.ts +10 -10
  186. package/build/esm/Tabs/Tabs.js +17 -33
  187. package/build/esm/Tabs/Tabs.js.map +1 -1
  188. package/build/esm/Tabs/context.d.ts +17 -17
  189. package/build/esm/Tabs/context.js +16 -13
  190. package/build/esm/Tabs/context.js.map +1 -1
  191. package/build/esm/Tabs/index.d.ts +5 -5
  192. package/build/esm/Tabs/index.js.map +1 -1
  193. package/build/esm/Tabs/scopeQuery.d.ts +1 -1
  194. package/build/esm/Tabs/scopeQuery.js.map +1 -1
  195. package/build/esm/Tooltip/Tooltip.d.ts +10 -10
  196. package/build/esm/Tooltip/Tooltip.js +20 -30
  197. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  198. package/build/esm/Tooltip/index.d.ts +1 -1
  199. package/build/esm/Tooltip/index.js.map +1 -1
  200. package/build/esm/Tooltip/stateMachine.d.ts +28 -28
  201. package/build/esm/Tooltip/stateMachine.js +95 -81
  202. package/build/esm/Tooltip/stateMachine.js.map +1 -1
  203. package/build/esm/Tooltip/useTooltip.d.ts +10 -10
  204. package/build/esm/Tooltip/useTooltip.js +38 -50
  205. package/build/esm/Tooltip/useTooltip.js.map +1 -1
  206. package/build/esm/hooks/index.d.ts +13 -13
  207. package/build/esm/hooks/index.js.map +1 -1
  208. package/build/esm/hooks/useAutoFocus.d.ts +2 -2
  209. package/build/esm/hooks/useAutoFocus.js +3 -3
  210. package/build/esm/hooks/useAutoFocus.js.map +1 -1
  211. package/build/esm/hooks/useChildrenCounter.d.ts +7 -7
  212. package/build/esm/hooks/useChildrenCounter.js +6 -8
  213. package/build/esm/hooks/useChildrenCounter.js.map +1 -1
  214. package/build/esm/hooks/useControlledState.d.ts +3 -3
  215. package/build/esm/hooks/useControlledState.js +6 -16
  216. package/build/esm/hooks/useControlledState.js.map +1 -1
  217. package/build/esm/hooks/useFocusReturn.d.ts +2 -2
  218. package/build/esm/hooks/useFocusReturn.js +8 -12
  219. package/build/esm/hooks/useFocusReturn.js.map +1 -1
  220. package/build/esm/hooks/useFocusState.d.ts +11 -11
  221. package/build/esm/hooks/useFocusState.js +9 -15
  222. package/build/esm/hooks/useFocusState.js.map +1 -1
  223. package/build/esm/hooks/useGestureHandlers.d.ts +52 -52
  224. package/build/esm/hooks/useGestureHandlers.js +80 -100
  225. package/build/esm/hooks/useGestureHandlers.js.map +1 -1
  226. package/build/esm/hooks/useMeasure.d.ts +7 -7
  227. package/build/esm/hooks/useMeasure.js +7 -15
  228. package/build/esm/hooks/useMeasure.js.map +1 -1
  229. package/build/esm/hooks/useOnClickOutside.d.ts +2 -2
  230. package/build/esm/hooks/useOnClickOutside.js +4 -6
  231. package/build/esm/hooks/useOnClickOutside.js.map +1 -1
  232. package/build/esm/hooks/useOnKeyDown.d.ts +1 -1
  233. package/build/esm/hooks/useOnKeyDown.js +3 -4
  234. package/build/esm/hooks/useOnKeyDown.js.map +1 -1
  235. package/build/esm/hooks/useReducerMachine.d.ts +24 -24
  236. package/build/esm/hooks/useReducerMachine.js +15 -26
  237. package/build/esm/hooks/useReducerMachine.js.map +1 -1
  238. package/build/esm/hooks/useRemoveBodyScroll.d.ts +2 -2
  239. package/build/esm/hooks/useRemoveBodyScroll.js +9 -14
  240. package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
  241. package/build/esm/hooks/useScope.d.ts +11 -11
  242. package/build/esm/hooks/useScope.js +12 -14
  243. package/build/esm/hooks/useScope.js.map +1 -1
  244. package/build/esm/hooks/useThrottle.d.ts +1 -1
  245. package/build/esm/hooks/useThrottle.js +5 -10
  246. package/build/esm/hooks/useThrottle.js.map +1 -1
  247. package/build/esm/index.d.ts +15 -15
  248. package/build/esm/index.js +4 -2
  249. package/build/esm/index.js.map +1 -1
  250. package/build/esm/styles.d.js +2 -0
  251. package/build/esm/styles.d.js.map +1 -0
  252. package/build/esm/utils/assign-ref.d.ts +3 -3
  253. package/build/esm/utils/assign-ref.js +3 -5
  254. package/build/esm/utils/assign-ref.js.map +1 -1
  255. package/build/esm/utils/can-use-dom.d.ts +1 -1
  256. package/build/esm/utils/can-use-dom.js.map +1 -1
  257. package/build/esm/utils/clamp.d.ts +1 -1
  258. package/build/esm/utils/clamp.js.map +1 -1
  259. package/build/esm/utils/context.d.ts +7 -7
  260. package/build/esm/utils/context.js +13 -20
  261. package/build/esm/utils/context.js.map +1 -1
  262. package/build/esm/utils/create-subscription.d.ts +4 -4
  263. package/build/esm/utils/create-subscription.js +5 -10
  264. package/build/esm/utils/create-subscription.js.map +1 -1
  265. package/build/esm/utils/get-circular-index.d.ts +1 -1
  266. package/build/esm/utils/get-circular-index.js +0 -1
  267. package/build/esm/utils/get-circular-index.js.map +1 -1
  268. package/build/esm/utils/index.d.ts +10 -10
  269. package/build/esm/utils/index.js.map +1 -1
  270. package/build/esm/utils/is-right-click.d.ts +6 -6
  271. package/build/esm/utils/is-right-click.js +4 -4
  272. package/build/esm/utils/is-right-click.js.map +1 -1
  273. package/build/esm/utils/owner-document.d.ts +7 -7
  274. package/build/esm/utils/owner-document.js +6 -6
  275. package/build/esm/utils/owner-document.js.map +1 -1
  276. package/build/esm/utils/polymorphic.d.ts +39 -39
  277. package/build/esm/utils/polymorphic.js.map +1 -1
  278. package/build/esm/utils/rubber-band-clamp.d.ts +2 -2
  279. package/build/esm/utils/rubber-band-clamp.js +2 -5
  280. package/build/esm/utils/rubber-band-clamp.js.map +1 -1
  281. package/build/esm/utils/use-stable-callback.d.ts +16 -16
  282. package/build/esm/utils/use-stable-callback.js +24 -26
  283. package/build/esm/utils/use-stable-callback.js.map +1 -1
  284. package/build/esm/utils/wrap-event.d.ts +3 -3
  285. package/build/esm/utils/wrap-event.js +2 -5
  286. package/build/esm/utils/wrap-event.js.map +1 -1
  287. package/build/tsconfig-build.tsbuildinfo +1 -1
  288. package/package.json +6 -6
  289. package/src/Accordion/Accordion.story.tsx +74 -74
  290. package/src/Accordion/Accordion.tsx +59 -59
  291. package/src/Accordion/AccordionBody.tsx +52 -52
  292. package/src/Accordion/AccordionHeader.tsx +166 -167
  293. package/src/Accordion/AccordionItem.tsx +50 -50
  294. package/src/Accordion/context.ts +37 -37
  295. package/src/Accordion/index.ts +4 -4
  296. package/src/Accordion/scopeQuery.ts +7 -7
  297. package/src/Accordion/styles.css +21 -21
  298. package/src/CheckBox/CheckBox.tsx +41 -41
  299. package/src/CheckBox/index.ts +1 -1
  300. package/src/ComboBox/ComboBox.story.tsx +120 -120
  301. package/src/ComboBox/Combobox.tsx +148 -148
  302. package/src/ComboBox/ComboboxButton.tsx +61 -61
  303. package/src/ComboBox/ComboboxInput.tsx +187 -187
  304. package/src/ComboBox/ComboboxLabel.tsx +33 -33
  305. package/src/ComboBox/ComboboxList.tsx +47 -47
  306. package/src/ComboBox/ComboboxOption.tsx +110 -111
  307. package/src/ComboBox/ComboboxPopover.tsx +64 -64
  308. package/src/ComboBox/cities.ts +23194 -23194
  309. package/src/ComboBox/context.ts +35 -35
  310. package/src/ComboBox/hooks.tsx +448 -451
  311. package/src/ComboBox/index.ts +8 -8
  312. package/src/ComboBox/makeHash.ts +19 -19
  313. package/src/ComboBox/scopeQuery.ts +6 -6
  314. package/src/ComboBox/styles.css +32 -32
  315. package/src/FocusLock/FocusLock.tsx +66 -66
  316. package/src/FocusLock/index.ts +1 -1
  317. package/src/FocusLock/tabUtils.ts +40 -40
  318. package/src/FocusLock/useFocusLock.ts +55 -56
  319. package/src/List/List.story.tsx +18 -18
  320. package/src/List/List.tsx +17 -17
  321. package/src/List/ListItem.tsx +23 -23
  322. package/src/List/context.ts +19 -19
  323. package/src/List/index.ts +2 -2
  324. package/src/Menu/ContextMenu.story.tsx +73 -73
  325. package/src/Menu/ContextMenuTrigger.tsx +76 -76
  326. package/src/Menu/Menu.story.tsx +160 -160
  327. package/src/Menu/Menu.tsx +82 -83
  328. package/src/Menu/MenuButton.tsx +83 -83
  329. package/src/Menu/MenuComplex.story.tsx +58 -58
  330. package/src/Menu/MenuItem.tsx +87 -88
  331. package/src/Menu/MenuList.tsx +254 -254
  332. package/src/Menu/MenuPopover.tsx +35 -35
  333. package/src/Menu/context.ts +44 -44
  334. package/src/Menu/fixtures/countryList.ts +198 -198
  335. package/src/Menu/index.ts +6 -6
  336. package/src/Menu/scope.ts +7 -7
  337. package/src/Menu/styles.css +42 -42
  338. package/src/Modal/Modal.story.tsx +262 -258
  339. package/src/Modal/Modal.tsx +48 -48
  340. package/src/Modal/ModalBackdrop.tsx +78 -78
  341. package/src/Modal/NavDrawer.story.tsx +161 -158
  342. package/src/Modal/index.ts +2 -2
  343. package/src/Modal/styles.css +46 -46
  344. package/src/Popper/Popper.story.tsx +279 -263
  345. package/src/Popper/Popper.tsx +1 -1
  346. package/src/Popper/PopperArrow.tsx +35 -35
  347. package/src/Popper/context.ts +10 -10
  348. package/src/Popper/index.ts +3 -3
  349. package/src/Popper/styles.css +60 -60
  350. package/src/RadioButton/RadioButton.story.tsx +78 -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 +1115 -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 +53 -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/useControlledState.ts +1 -6
  386. package/src/hooks/useFocusReturn.ts +43 -43
  387. package/src/hooks/useFocusState.ts +30 -30
  388. package/src/hooks/useGestureHandlers.ts +282 -286
  389. package/src/hooks/useMeasure.ts +33 -33
  390. package/src/hooks/useOnClickOutside.ts +32 -32
  391. package/src/hooks/useOnKeyDown.ts +19 -19
  392. package/src/hooks/useReducerMachine.ts +60 -60
  393. package/src/hooks/useRemoveBodyScroll.ts +38 -39
  394. package/src/hooks/useScope.ts +52 -52
  395. package/src/hooks/useThrottle.ts +19 -19
  396. package/src/index.ts +20 -20
  397. package/src/styles.d.ts +1 -0
  398. package/src/utils/assign-ref.ts +27 -27
  399. package/src/utils/can-use-dom.ts +7 -7
  400. package/src/utils/clamp.ts +3 -3
  401. package/src/utils/context.tsx +48 -48
  402. package/src/utils/create-subscription.ts +16 -16
  403. package/src/utils/get-circular-index.ts +7 -7
  404. package/src/utils/index.ts +10 -10
  405. package/src/utils/is-right-click.ts +14 -14
  406. package/src/utils/owner-document.ts +13 -13
  407. package/src/utils/polymorphic.ts +82 -78
  408. package/src/utils/rubber-band-clamp.ts +25 -25
  409. package/src/utils/use-stable-callback.ts +57 -58
  410. package/src/utils/wrap-event.ts +22 -22
@@ -1,16 +1,16 @@
1
- export function createSubscription() {
2
- const subscriptions: (() => void)[] = [];
3
-
4
- function subscribe(fn: () => void) {
5
- subscriptions.push(fn);
6
- return () => {
7
- subscriptions.splice(subscriptions.indexOf(fn), 1);
8
- };
9
- }
10
-
11
- function notify() {
12
- subscriptions.forEach((fn) => fn());
13
- }
14
-
15
- return { subscribe, notify };
16
- }
1
+ export function createSubscription() {
2
+ const subscriptions: (() => void)[] = [];
3
+
4
+ function subscribe(fn: () => void) {
5
+ subscriptions.push(fn);
6
+ return () => {
7
+ subscriptions.splice(subscriptions.indexOf(fn), 1);
8
+ };
9
+ }
10
+
11
+ function notify() {
12
+ subscriptions.forEach((fn) => fn());
13
+ }
14
+
15
+ return { subscribe, notify };
16
+ }
@@ -1,7 +1,7 @@
1
- export function getCircularIndex(index: number, maxLength: number) {
2
- if (maxLength < 0) {
3
- return null;
4
- }
5
-
6
- return ((index % maxLength) + maxLength) % maxLength;
7
- }
1
+ export function getCircularIndex(index: number, maxLength: number) {
2
+ if (maxLength < 0) {
3
+ return null;
4
+ }
5
+
6
+ return ((index % maxLength) + maxLength) % maxLength;
7
+ }
@@ -1,10 +1,10 @@
1
- export * from './assign-ref';
2
- export * from './can-use-dom';
3
- export * from './context';
4
- export * from './get-circular-index';
5
- export * from './is-right-click';
6
- export * from './owner-document';
7
- export * from './polymorphic';
8
- export * from './rubber-band-clamp';
9
- export * from './use-stable-callback';
10
- export * from './wrap-event';
1
+ export * from './assign-ref';
2
+ export * from './can-use-dom';
3
+ export * from './context';
4
+ export * from './get-circular-index';
5
+ export * from './is-right-click';
6
+ export * from './owner-document';
7
+ export * from './polymorphic';
8
+ export * from './rubber-band-clamp';
9
+ export * from './use-stable-callback';
10
+ export * from './wrap-event';
@@ -1,14 +1,14 @@
1
- /**
2
- * Detects right clicks
3
- *
4
- * @param nativeEvent
5
- */
6
- export function isRightClick(
7
- nativeEvent: MouseEvent | PointerEvent | TouchEvent
8
- ) {
9
- return 'which' in nativeEvent
10
- ? nativeEvent.which === 3
11
- : 'button' in nativeEvent
12
- ? (nativeEvent as any).button === 2
13
- : false;
14
- }
1
+ /**
2
+ * Detects right clicks
3
+ *
4
+ * @param nativeEvent
5
+ */
6
+ export function isRightClick(
7
+ nativeEvent: MouseEvent | PointerEvent | TouchEvent
8
+ ) {
9
+ return 'which' in nativeEvent
10
+ ? nativeEvent.which === 3
11
+ : 'button' in nativeEvent
12
+ ? (nativeEvent as any).button === 2
13
+ : false;
14
+ }
@@ -1,13 +1,13 @@
1
- import { canUseDOM } from './can-use-dom';
2
-
3
- /**
4
- * Get an element's owner document. Useful when components are used in iframes
5
- * or other environments like dev tools.
6
- *
7
- * @param element
8
- */
9
- export function getOwnerDocument<T extends Element>(
10
- element: T | null | undefined
11
- ) {
12
- return canUseDOM() ? (element ? element.ownerDocument : document) : null;
13
- }
1
+ import { canUseDOM } from './can-use-dom';
2
+
3
+ /**
4
+ * Get an element's owner document. Useful when components are used in iframes
5
+ * or other environments like dev tools.
6
+ *
7
+ * @param element
8
+ */
9
+ export function getOwnerDocument<T extends Element>(
10
+ element: T | null | undefined
11
+ ) {
12
+ return canUseDOM() ? (element ? element.ownerDocument : document) : null;
13
+ }
@@ -1,78 +1,82 @@
1
- /* eslint-disable @typescript-eslint/ban-types */
2
- // adapted from https://github.com/radix-ui/primitives/blob/2f139a832ba0cdfd445c937ebf63c2e79e0ef7ed/packages/react/polymorphic/src/polymorphic.ts
3
- // Would have liked to use it directly instead of copying but they are
4
- // (rightfully) treating it as an internal utility, so copy/paste it is to
5
- // prevent any needless churn if they make breaking changes. Big thanks to Jenna
6
- // for the heavy lifting! https://github.com/jjenzz
7
-
8
- import type * as React from 'react';
9
-
10
- // eslint-disable-next-line @typescript-eslint/ban-types
11
- export type Merge<P1 = {}, P2 = {}> = Omit<P1, keyof P2> & P2;
12
-
13
- /**
14
- * Infers the OwnProps if E is a ForwardRefExoticComponentWithAs
15
- */
16
- export type OwnProps<E> = E extends ForwardRefComponent<any, infer P> ? P : {};
17
-
18
- /**
19
- * Infers the JSX.IntrinsicElement if E is a ForwardRefExoticComponentWithAs
20
- */
21
- export type IntrinsicElement<E> = E extends ForwardRefComponent<infer I, any>
22
- ? I
23
- : never;
24
-
25
- type ForwardRefExoticComponent<E, OwnProps> = React.ForwardRefExoticComponent<
26
- Merge<
27
- E extends React.ElementType ? React.ComponentPropsWithRef<E> : never,
28
- OwnProps & { as?: E; innerAs?: E }
29
- >
30
- >;
31
-
32
- export interface ForwardRefComponent<
33
- IntrinsicElementString,
34
- OwnProps = {}
35
- /*
36
- * Extends original type to ensure built in React types play nice with
37
- * polymorphic components still e.g. `React.ElementRef` etc.
38
- */
39
- > extends ForwardRefExoticComponent<IntrinsicElementString, OwnProps> {
40
- /*
41
- * When `as` prop is passed, use this overload. Merges original own props
42
- * (without DOM props) and the inferred props from `as` element with the own
43
- * props taking precendence.
44
- *
45
- * We explicitly avoid `React.ElementType` and manually narrow the prop types
46
- * so that events are typed when using JSX.IntrinsicElements.
47
- */
48
- <As = IntrinsicElementString>(
49
- props: As extends ''
50
- ? {
51
- as: keyof JSX.IntrinsicElements;
52
- innerAs?: keyof JSX.IntrinsicElements;
53
- }
54
- : As extends React.ComponentType<infer P>
55
- ? Merge<P, OwnProps & { as: As; innerAs?: As }>
56
- : As extends keyof JSX.IntrinsicElements
57
- ? Merge<JSX.IntrinsicElements[As], OwnProps & { as: As; innerAs?: As }>
58
- : never
59
- ): React.ReactElement | null;
60
- }
61
-
62
- export interface MemoComponent<IntrinsicElementString, OwnProps = {}>
63
- extends React.MemoExoticComponent<
64
- ForwardRefComponent<IntrinsicElementString, OwnProps>
65
- > {
66
- <As = IntrinsicElementString>(
67
- props: As extends ''
68
- ? {
69
- as: keyof JSX.IntrinsicElements;
70
- innerAs?: keyof JSX.IntrinsicElements;
71
- }
72
- : As extends React.ComponentType<infer P>
73
- ? Merge<P, OwnProps & { as: As; innerAs?: As }>
74
- : As extends keyof JSX.IntrinsicElements
75
- ? Merge<JSX.IntrinsicElements[As], OwnProps & { as: As; innerAs?: As }>
76
- : never
77
- ): React.ReactElement | null;
78
- }
1
+ // adapted from https://github.com/radix-ui/primitives/blob/2f139a832ba0cdfd445c937ebf63c2e79e0ef7ed/packages/react/polymorphic/src/polymorphic.ts
2
+ // Would have liked to use it directly instead of copying but they are
3
+ // (rightfully) treating it as an internal utility, so copy/paste it is to
4
+ // prevent any needless churn if they make breaking changes. Big thanks to Jenna
5
+ // for the heavy lifting! https://github.com/jjenzz
6
+
7
+ import type * as React from 'react';
8
+
9
+ export type Merge<P1 = {}, P2 = {}> = Omit<P1, keyof P2> & P2;
10
+
11
+ /**
12
+ * Infers the OwnProps if E is a ForwardRefExoticComponentWithAs
13
+ */
14
+ export type OwnProps<E> = E extends ForwardRefComponent<any, infer P> ? P : {};
15
+
16
+ /**
17
+ * Infers the JSX.IntrinsicElement if E is a ForwardRefExoticComponentWithAs
18
+ */
19
+ export type IntrinsicElement<E> = E extends ForwardRefComponent<infer I, any>
20
+ ? I
21
+ : never;
22
+
23
+ type ForwardRefExoticComponent<E, OwnProps> = React.ForwardRefExoticComponent<
24
+ Merge<
25
+ E extends React.ElementType ? React.ComponentPropsWithRef<E> : never,
26
+ OwnProps & { as?: E; innerAs?: E }
27
+ >
28
+ >;
29
+
30
+ export interface ForwardRefComponent<
31
+ IntrinsicElementString,
32
+ OwnProps = {}
33
+ /*
34
+ * Extends original type to ensure built in React types play nice with
35
+ * polymorphic components still e.g. `React.ElementRef` etc.
36
+ */
37
+ > extends ForwardRefExoticComponent<IntrinsicElementString, OwnProps> {
38
+ /*
39
+ * When `as` prop is passed, use this overload. Merges original own props
40
+ * (without DOM props) and the inferred props from `as` element with the own
41
+ * props taking precendence.
42
+ *
43
+ * We explicitly avoid `React.ElementType` and manually narrow the prop types
44
+ * so that events are typed when using JSX.IntrinsicElements.
45
+ */
46
+ <As = IntrinsicElementString>(
47
+ props: As extends ''
48
+ ? {
49
+ as: keyof React.JSX.IntrinsicElements;
50
+ innerAs?: keyof React.JSX.IntrinsicElements;
51
+ }
52
+ : As extends React.ComponentType<infer P>
53
+ ? Merge<P, OwnProps & { as: As; innerAs?: As }>
54
+ : As extends keyof React.JSX.IntrinsicElements
55
+ ? Merge<
56
+ React.JSX.IntrinsicElements[As],
57
+ OwnProps & { as: As; innerAs?: As }
58
+ >
59
+ : never
60
+ ): React.ReactElement | null;
61
+ }
62
+
63
+ export interface MemoComponent<IntrinsicElementString, OwnProps = {}>
64
+ extends React.MemoExoticComponent<
65
+ ForwardRefComponent<IntrinsicElementString, OwnProps>
66
+ > {
67
+ <As = IntrinsicElementString>(
68
+ props: As extends ''
69
+ ? {
70
+ as: keyof React.JSX.IntrinsicElements;
71
+ innerAs?: keyof React.JSX.IntrinsicElements;
72
+ }
73
+ : As extends React.ComponentType<infer P>
74
+ ? Merge<P, OwnProps & { as: As; innerAs?: As }>
75
+ : As extends keyof React.JSX.IntrinsicElements
76
+ ? Merge<
77
+ React.JSX.IntrinsicElements[As],
78
+ OwnProps & { as: As; innerAs?: As }
79
+ >
80
+ : never
81
+ ): React.ReactElement | null;
82
+ }
@@ -1,25 +1,25 @@
1
- // https://twitter.com/chpwn/status/285540192096497664
2
- // iOS constant = 0.55
3
- export function rubberBand(
4
- distance: number,
5
- dimension: number,
6
- constant = 0.15
7
- ) {
8
- return (distance * dimension * constant) / (dimension + constant * distance);
9
- }
10
-
11
- export function rubberBandClamp(
12
- min: number,
13
- max: number,
14
- delta: number,
15
- constant = 0.15
16
- ) {
17
- if (delta < min) {
18
- return -rubberBand(min - delta, max - min, constant) + min;
19
- }
20
- if (delta > max) {
21
- return rubberBand(delta - max, max - min, constant) + max;
22
- }
23
-
24
- return delta;
25
- }
1
+ // https://twitter.com/chpwn/status/285540192096497664
2
+ // iOS constant = 0.55
3
+ export function rubberBand(
4
+ distance: number,
5
+ dimension: number,
6
+ constant = 0.15
7
+ ) {
8
+ return (distance * dimension * constant) / (dimension + constant * distance);
9
+ }
10
+
11
+ export function rubberBandClamp(
12
+ min: number,
13
+ max: number,
14
+ delta: number,
15
+ constant = 0.15
16
+ ) {
17
+ if (delta < min) {
18
+ return -rubberBand(min - delta, max - min, constant) + min;
19
+ }
20
+ if (delta > max) {
21
+ return rubberBand(delta - max, max - min, constant) + max;
22
+ }
23
+
24
+ return delta;
25
+ }
@@ -1,58 +1,57 @@
1
- /* eslint-disable react-hooks/rules-of-hooks */
2
- import { useRef, useEffect, useCallback, useLayoutEffect } from 'react';
3
- import type * as React from 'react';
4
-
5
- const useEnhancedEffect =
6
- typeof window !== 'undefined' ? useLayoutEffect : useEffect;
7
-
8
- /**
9
- * Converts a callback to a ref to avoid triggering re-renders when passed as a
10
- * prop and exposed as a stable function to avoid executing effects when
11
- * passed as a dependency.
12
- */
13
- function createStableCallbackHook<T extends (...args: any[]) => any>(
14
- useEffectHook: (
15
- effect: React.EffectCallback,
16
- deps?: React.DependencyList | undefined
17
- ) => void,
18
- callback: T | null | undefined
19
- ): T {
20
- const callbackRef = useRef(callback);
21
- useEffectHook(() => {
22
- callbackRef.current = callback;
23
- });
24
-
25
- // eslint-disable-next-line react-hooks/exhaustive-deps
26
- return useCallback(
27
- ((...args) => {
28
- callbackRef.current && callbackRef.current(...args);
29
- }) as T,
30
- []
31
- );
32
- }
33
-
34
- /**
35
- * Converts a callback to a ref to avoid triggering re-renders when passed as a
36
- * prop and exposed as a stable function to avoid executing effects when passed
37
- * as a dependency.
38
- */
39
- export function useStableCallback<T extends (...args: any[]) => any>(
40
- callback: T | null | undefined
41
- ): T {
42
- return createStableCallbackHook(useEffect, callback);
43
- }
44
-
45
- /**
46
- * Converts a callback to a ref to avoid triggering re-renders when passed as a
47
- * prop and exposed as a stable function to avoid executing effects when passed
48
- * as a dependency.
49
- *
50
- * Use this over `useStableCallback` when you want the callback to be cached in
51
- * `useLayoutEffect` instead of `useEffect` to deal with timing issues only when
52
- * needed.
53
- */
54
- export function useStableLayoutCallback<T extends (...args: any[]) => any>(
55
- callback: T | null | undefined
56
- ): T {
57
- return createStableCallbackHook(useEnhancedEffect, callback);
58
- }
1
+ /* eslint-disable react-hooks/rules-of-hooks */
2
+ import { useRef, useEffect, useCallback, useLayoutEffect } from 'react';
3
+ import type * as React from 'react';
4
+
5
+ const useEnhancedEffect =
6
+ typeof window !== 'undefined' ? useLayoutEffect : useEffect;
7
+
8
+ /**
9
+ * Converts a callback to a ref to avoid triggering re-renders when passed as a
10
+ * prop and exposed as a stable function to avoid executing effects when
11
+ * passed as a dependency.
12
+ */
13
+ function createStableCallbackHook<T extends (...args: any[]) => any>(
14
+ useEffectHook: (
15
+ effect: React.EffectCallback,
16
+ deps?: React.DependencyList | undefined
17
+ ) => void,
18
+ callback: T | null | undefined
19
+ ): T {
20
+ const callbackRef = useRef(callback);
21
+ useEffectHook(() => {
22
+ callbackRef.current = callback;
23
+ });
24
+
25
+ return useCallback(
26
+ ((...args) => {
27
+ callbackRef.current && callbackRef.current(...args);
28
+ }) as T,
29
+ []
30
+ );
31
+ }
32
+
33
+ /**
34
+ * Converts a callback to a ref to avoid triggering re-renders when passed as a
35
+ * prop and exposed as a stable function to avoid executing effects when passed
36
+ * as a dependency.
37
+ */
38
+ export function useStableCallback<T extends (...args: any[]) => any>(
39
+ callback: T | null | undefined
40
+ ): T {
41
+ return createStableCallbackHook(useEffect, callback);
42
+ }
43
+
44
+ /**
45
+ * Converts a callback to a ref to avoid triggering re-renders when passed as a
46
+ * prop and exposed as a stable function to avoid executing effects when passed
47
+ * as a dependency.
48
+ *
49
+ * Use this over `useStableCallback` when you want the callback to be cached in
50
+ * `useLayoutEffect` instead of `useEffect` to deal with timing issues only when
51
+ * needed.
52
+ */
53
+ export function useStableLayoutCallback<T extends (...args: any[]) => any>(
54
+ callback: T | null | undefined
55
+ ): T {
56
+ return createStableCallbackHook(useEnhancedEffect, callback);
57
+ }
@@ -1,22 +1,22 @@
1
- import type { SyntheticEvent } from 'react';
2
-
3
- export type CustomEventHandler<
4
- E extends SyntheticEvent<any> | Event,
5
- H extends unknown[]
6
- > = (e: E, ...args: H) => void;
7
-
8
- export function wrapEvent<
9
- EventType extends SyntheticEvent<any> | Event,
10
- H extends unknown[]
11
- >(
12
- theirHandler: CustomEventHandler<EventType, H> | undefined,
13
- ourHandler: CustomEventHandler<EventType, H>
14
- ): CustomEventHandler<EventType, H> {
15
- return (event: EventType, ...otherArgs: H) => {
16
- const ret = theirHandler && theirHandler(event, ...otherArgs);
17
- if (!event || !event.defaultPrevented) {
18
- return ourHandler(event, ...otherArgs);
19
- }
20
- return ret;
21
- };
22
- }
1
+ import type { SyntheticEvent } from 'react';
2
+
3
+ export type CustomEventHandler<
4
+ E extends SyntheticEvent<any> | Event,
5
+ H extends unknown[]
6
+ > = (e: E, ...args: H) => void;
7
+
8
+ export function wrapEvent<
9
+ EventType extends SyntheticEvent<any> | Event,
10
+ H extends unknown[]
11
+ >(
12
+ theirHandler: CustomEventHandler<EventType, H> | undefined,
13
+ ourHandler: CustomEventHandler<EventType, H>
14
+ ): CustomEventHandler<EventType, H> {
15
+ return (event: EventType, ...otherArgs: H) => {
16
+ const ret = theirHandler && theirHandler(event, ...otherArgs);
17
+ if (!event || !event.defaultPrevented) {
18
+ return ourHandler(event, ...otherArgs);
19
+ }
20
+ return ret;
21
+ };
22
+ }