@basic-ui/core 0.0.40 → 0.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/build/cjs/index.js.map +1 -1
  2. package/build/esm/Accordion/Accordion.d.ts +7 -7
  3. package/build/esm/Accordion/Accordion.js +0 -1
  4. package/build/esm/Accordion/Accordion.js.map +1 -1
  5. package/build/esm/Accordion/AccordionBody.d.ts +5 -5
  6. package/build/esm/Accordion/AccordionBody.js +0 -1
  7. package/build/esm/Accordion/AccordionBody.js.map +1 -1
  8. package/build/esm/Accordion/AccordionHeader.d.ts +6 -6
  9. package/build/esm/Accordion/AccordionHeader.js +0 -1
  10. package/build/esm/Accordion/AccordionHeader.js.map +1 -1
  11. package/build/esm/Accordion/AccordionItem.d.ts +7 -7
  12. package/build/esm/Accordion/AccordionItem.js +0 -1
  13. package/build/esm/Accordion/AccordionItem.js.map +1 -1
  14. package/build/esm/Accordion/context.d.ts +3 -3
  15. package/build/esm/Accordion/context.js +0 -0
  16. package/build/esm/Accordion/context.js.map +1 -1
  17. package/build/esm/Accordion/index.js +0 -0
  18. package/build/esm/Accordion/scopeQuery.js +0 -0
  19. package/build/esm/CheckBox/CheckBox.d.ts +6 -6
  20. package/build/esm/CheckBox/CheckBox.js +0 -1
  21. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  22. package/build/esm/CheckBox/index.js +0 -0
  23. package/build/esm/ComboBox/Combobox.d.ts +10 -10
  24. package/build/esm/ComboBox/Combobox.js +0 -1
  25. package/build/esm/ComboBox/Combobox.js.map +1 -1
  26. package/build/esm/ComboBox/ComboboxButton.d.ts +8 -8
  27. package/build/esm/ComboBox/ComboboxButton.js +0 -1
  28. package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
  29. package/build/esm/ComboBox/ComboboxInput.d.ts +10 -10
  30. package/build/esm/ComboBox/ComboboxInput.js +0 -1
  31. package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
  32. package/build/esm/ComboBox/ComboboxLabel.d.ts +5 -5
  33. package/build/esm/ComboBox/ComboboxLabel.js +0 -1
  34. package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
  35. package/build/esm/ComboBox/ComboboxList.d.ts +6 -6
  36. package/build/esm/ComboBox/ComboboxList.js +0 -1
  37. package/build/esm/ComboBox/ComboboxList.js.map +1 -1
  38. package/build/esm/ComboBox/ComboboxOption.d.ts +7 -7
  39. package/build/esm/ComboBox/ComboboxOption.js +0 -1
  40. package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
  41. package/build/esm/ComboBox/ComboboxPopover.d.ts +8 -8
  42. package/build/esm/ComboBox/ComboboxPopover.js +0 -1
  43. package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
  44. package/build/esm/ComboBox/cities.js +0 -0
  45. package/build/esm/ComboBox/context.d.ts +10 -10
  46. package/build/esm/ComboBox/context.js +0 -0
  47. package/build/esm/ComboBox/context.js.map +1 -1
  48. package/build/esm/ComboBox/hooks.d.ts +3 -3
  49. package/build/esm/ComboBox/hooks.js +0 -0
  50. package/build/esm/ComboBox/hooks.js.map +1 -1
  51. package/build/esm/ComboBox/index.js +0 -0
  52. package/build/esm/ComboBox/makeHash.js +0 -0
  53. package/build/esm/ComboBox/scopeQuery.js +0 -0
  54. package/build/esm/FocusLock/FocusLock.d.ts +7 -7
  55. package/build/esm/FocusLock/FocusLock.js +0 -1
  56. package/build/esm/FocusLock/FocusLock.js.map +1 -1
  57. package/build/esm/FocusLock/index.js +0 -0
  58. package/build/esm/FocusLock/tabUtils.js +0 -0
  59. package/build/esm/FocusLock/useFocusLock.d.ts +4 -4
  60. package/build/esm/FocusLock/useFocusLock.js +0 -0
  61. package/build/esm/FocusLock/useFocusLock.js.map +1 -1
  62. package/build/esm/List/List.d.ts +6 -6
  63. package/build/esm/List/List.js +0 -1
  64. package/build/esm/List/List.js.map +1 -1
  65. package/build/esm/List/ListItem.d.ts +6 -6
  66. package/build/esm/List/ListItem.js +0 -1
  67. package/build/esm/List/ListItem.js.map +1 -1
  68. package/build/esm/List/context.js +0 -0
  69. package/build/esm/List/index.js +0 -0
  70. package/build/esm/Menu/Menu.d.ts +6 -6
  71. package/build/esm/Menu/Menu.js +0 -1
  72. package/build/esm/Menu/Menu.js.map +1 -1
  73. package/build/esm/Menu/MenuButton.d.ts +10 -10
  74. package/build/esm/Menu/MenuButton.js +0 -1
  75. package/build/esm/Menu/MenuButton.js.map +1 -1
  76. package/build/esm/Menu/MenuItem.d.ts +6 -6
  77. package/build/esm/Menu/MenuItem.js +0 -1
  78. package/build/esm/Menu/MenuItem.js.map +1 -1
  79. package/build/esm/Menu/MenuList.d.ts +5 -5
  80. package/build/esm/Menu/MenuList.js +0 -1
  81. package/build/esm/Menu/MenuList.js.map +1 -1
  82. package/build/esm/Menu/MenuPopover.d.ts +5 -5
  83. package/build/esm/Menu/MenuPopover.js +0 -1
  84. package/build/esm/Menu/MenuPopover.js.map +1 -1
  85. package/build/esm/Menu/context.d.ts +2 -2
  86. package/build/esm/Menu/context.js +0 -0
  87. package/build/esm/Menu/context.js.map +1 -1
  88. package/build/esm/Menu/index.js +0 -0
  89. package/build/esm/Menu/scope.js +0 -0
  90. package/build/esm/Modal/Modal.d.ts +6 -7
  91. package/build/esm/Modal/Modal.js +0 -1
  92. package/build/esm/Modal/Modal.js.map +1 -1
  93. package/build/esm/Modal/ModalBackdrop.d.ts +6 -6
  94. package/build/esm/Modal/ModalBackdrop.js +0 -1
  95. package/build/esm/Modal/ModalBackdrop.js.map +1 -1
  96. package/build/esm/Modal/index.js +0 -0
  97. package/build/esm/Popper/Popper.d.ts +7 -7
  98. package/build/esm/Popper/Popper.js +0 -1
  99. package/build/esm/Popper/Popper.js.map +1 -1
  100. package/build/esm/Popper/PopperArrow.d.ts +5 -5
  101. package/build/esm/Popper/PopperArrow.js +0 -1
  102. package/build/esm/Popper/PopperArrow.js.map +1 -1
  103. package/build/esm/Popper/context.js +0 -0
  104. package/build/esm/Popper/index.js +0 -0
  105. package/build/esm/Portal/Portal.js +0 -0
  106. package/build/esm/Portal/index.js +0 -0
  107. package/build/esm/RadioButton/RadioButton.d.ts +6 -6
  108. package/build/esm/RadioButton/RadioButton.js +0 -1
  109. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  110. package/build/esm/RadioButton/RadioGroup.d.ts +7 -7
  111. package/build/esm/RadioButton/RadioGroup.js +0 -1
  112. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  113. package/build/esm/RadioButton/context.d.ts +2 -2
  114. package/build/esm/RadioButton/context.js +0 -0
  115. package/build/esm/RadioButton/context.js.map +1 -1
  116. package/build/esm/RadioButton/index.js +0 -0
  117. package/build/esm/SkipNav/SkipNav.d.ts +6 -6
  118. package/build/esm/SkipNav/SkipNav.js +0 -1
  119. package/build/esm/SkipNav/SkipNav.js.map +1 -1
  120. package/build/esm/SkipNav/index.js +0 -0
  121. package/build/esm/Spinner/Spinner.d.ts +7 -7
  122. package/build/esm/Spinner/Spinner.js +0 -1
  123. package/build/esm/Spinner/Spinner.js.map +1 -1
  124. package/build/esm/Spinner/SpinnerButton.d.ts +6 -6
  125. package/build/esm/Spinner/SpinnerButton.js +0 -1
  126. package/build/esm/Spinner/SpinnerButton.js.map +1 -1
  127. package/build/esm/Spinner/context.d.ts +2 -2
  128. package/build/esm/Spinner/context.js +0 -0
  129. package/build/esm/Spinner/context.js.map +1 -1
  130. package/build/esm/Spinner/index.js +0 -0
  131. package/build/esm/Tabs/Tab.d.ts +6 -6
  132. package/build/esm/Tabs/Tab.js +0 -1
  133. package/build/esm/Tabs/Tab.js.map +1 -1
  134. package/build/esm/Tabs/TabList.d.ts +6 -6
  135. package/build/esm/Tabs/TabList.js +0 -1
  136. package/build/esm/Tabs/TabList.js.map +1 -1
  137. package/build/esm/Tabs/TabPanel.d.ts +6 -6
  138. package/build/esm/Tabs/TabPanel.js +0 -1
  139. package/build/esm/Tabs/TabPanel.js.map +1 -1
  140. package/build/esm/Tabs/TabPanels.d.ts +5 -5
  141. package/build/esm/Tabs/TabPanels.js +0 -1
  142. package/build/esm/Tabs/TabPanels.js.map +1 -1
  143. package/build/esm/Tabs/Tabs.d.ts +6 -6
  144. package/build/esm/Tabs/Tabs.js +0 -1
  145. package/build/esm/Tabs/Tabs.js.map +1 -1
  146. package/build/esm/Tabs/context.d.ts +2 -2
  147. package/build/esm/Tabs/context.js +0 -0
  148. package/build/esm/Tabs/context.js.map +1 -1
  149. package/build/esm/Tabs/index.js +0 -0
  150. package/build/esm/Tabs/scopeQuery.js +0 -0
  151. package/build/esm/Tooltip/Tooltip.d.ts +7 -8
  152. package/build/esm/Tooltip/Tooltip.js +1 -1
  153. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  154. package/build/esm/Tooltip/index.js +0 -0
  155. package/build/esm/Tooltip/stateMachine.js +0 -0
  156. package/build/esm/Tooltip/useTooltip.d.ts +7 -7
  157. package/build/esm/Tooltip/useTooltip.js +0 -0
  158. package/build/esm/Tooltip/useTooltip.js.map +1 -1
  159. package/build/esm/hooks/index.js +0 -0
  160. package/build/esm/hooks/useAutoFocus.d.ts +2 -2
  161. package/build/esm/hooks/useAutoFocus.js +0 -0
  162. package/build/esm/hooks/useAutoFocus.js.map +1 -1
  163. package/build/esm/hooks/useChildrenCounter.js +0 -0
  164. package/build/esm/hooks/useControlledState.d.ts +2 -6
  165. package/build/esm/hooks/useControlledState.js +0 -0
  166. package/build/esm/hooks/useControlledState.js.map +1 -1
  167. package/build/esm/hooks/useFocusReturn.js +0 -0
  168. package/build/esm/hooks/useFocusState.d.ts +3 -3
  169. package/build/esm/hooks/useFocusState.js +0 -0
  170. package/build/esm/hooks/useFocusState.js.map +1 -1
  171. package/build/esm/hooks/useGestureHandlers.d.ts +5 -5
  172. package/build/esm/hooks/useGestureHandlers.js +0 -0
  173. package/build/esm/hooks/useGestureHandlers.js.map +1 -1
  174. package/build/esm/hooks/useMeasure.d.ts +2 -2
  175. package/build/esm/hooks/useMeasure.js +0 -0
  176. package/build/esm/hooks/useMeasure.js.map +1 -1
  177. package/build/esm/hooks/useOnClickOutside.d.ts +2 -2
  178. package/build/esm/hooks/useOnClickOutside.js +0 -0
  179. package/build/esm/hooks/useOnClickOutside.js.map +1 -1
  180. package/build/esm/hooks/useOnKeyDown.js +0 -0
  181. package/build/esm/hooks/useReducerMachine.js +0 -0
  182. package/build/esm/hooks/useRemoveBodyScroll.js +0 -0
  183. package/build/esm/hooks/useScope.js +0 -0
  184. package/build/esm/hooks/useThrottle.js +0 -0
  185. package/build/esm/index.js +0 -0
  186. package/build/esm/utils/assignRef.js +0 -0
  187. package/build/esm/utils/clamp.js +0 -0
  188. package/build/esm/utils/createSubscription.js +0 -0
  189. package/build/esm/utils/getCircularIndex.js +0 -0
  190. package/build/esm/utils/index.js +0 -0
  191. package/build/esm/utils/rubberBandClamp.js +0 -0
  192. package/build/esm/utils/wrapEvent.d.ts +3 -3
  193. package/build/esm/utils/wrapEvent.js +0 -0
  194. package/build/esm/utils/wrapEvent.js.map +1 -1
  195. package/build/tsconfig-build.tsbuildinfo +1 -0
  196. package/build/tsconfig.tsbuildinfo +1 -1
  197. package/package.json +3 -3
  198. package/src/Accordion/Accordion.tsx +12 -6
  199. package/src/Accordion/AccordionBody.tsx +4 -5
  200. package/src/Accordion/AccordionHeader.tsx +30 -27
  201. package/src/Accordion/AccordionItem.tsx +12 -6
  202. package/src/Accordion/context.ts +3 -2
  203. package/src/CheckBox/CheckBox.tsx +5 -6
  204. package/src/ComboBox/ComboBox.story.tsx +3 -3
  205. package/src/ComboBox/Combobox.tsx +5 -8
  206. package/src/ComboBox/ComboboxButton.tsx +13 -7
  207. package/src/ComboBox/ComboboxInput.tsx +18 -10
  208. package/src/ComboBox/ComboboxLabel.tsx +4 -4
  209. package/src/ComboBox/ComboboxList.tsx +5 -6
  210. package/src/ComboBox/ComboboxOption.tsx +11 -7
  211. package/src/ComboBox/ComboboxPopover.tsx +13 -8
  212. package/src/ComboBox/context.ts +10 -9
  213. package/src/ComboBox/hooks.tsx +3 -2
  214. package/src/FocusLock/FocusLock.tsx +13 -7
  215. package/src/FocusLock/useFocusLock.ts +4 -3
  216. package/src/List/List.tsx +5 -5
  217. package/src/List/ListItem.tsx +5 -5
  218. package/src/Menu/Menu.story.tsx +2 -2
  219. package/src/Menu/Menu.tsx +13 -7
  220. package/src/Menu/MenuButton.tsx +12 -9
  221. package/src/Menu/MenuItem.tsx +14 -10
  222. package/src/Menu/MenuList.tsx +5 -5
  223. package/src/Menu/MenuPopover.tsx +4 -4
  224. package/src/Menu/context.ts +9 -4
  225. package/src/Modal/Modal.tsx +10 -6
  226. package/src/Modal/ModalBackdrop.tsx +14 -9
  227. package/src/Popper/Popper.tsx +6 -6
  228. package/src/Popper/PopperArrow.tsx +4 -4
  229. package/src/RadioButton/RadioButton.tsx +11 -6
  230. package/src/RadioButton/RadioGroup.tsx +11 -9
  231. package/src/RadioButton/context.ts +2 -4
  232. package/src/SkipNav/SkipNav.tsx +5 -5
  233. package/src/Spinner/Spinner.tsx +13 -9
  234. package/src/Spinner/SpinnerButton.tsx +11 -6
  235. package/src/Spinner/context.ts +2 -3
  236. package/src/Tabs/Tab.tsx +13 -8
  237. package/src/Tabs/TabList.tsx +5 -5
  238. package/src/Tabs/TabPanel.tsx +5 -5
  239. package/src/Tabs/TabPanels.tsx +4 -4
  240. package/src/Tabs/Tabs.tsx +5 -7
  241. package/src/Tabs/context.ts +2 -3
  242. package/src/Tooltip/Tooltip.story.tsx +1 -1
  243. package/src/Tooltip/Tooltip.tsx +13 -7
  244. package/src/Tooltip/useTooltip.ts +15 -9
  245. package/src/hooks/useAutoFocus.ts +2 -1
  246. package/src/hooks/useControlledState.ts +4 -7
  247. package/src/hooks/useFocusState.ts +3 -2
  248. package/src/hooks/useGestureHandlers.ts +11 -7
  249. package/src/hooks/useMeasure.ts +2 -1
  250. package/src/hooks/useOnClickOutside.ts +2 -2
  251. package/src/utils/wrapEvent.ts +4 -5
@@ -1,15 +1,20 @@
1
+ import type {
2
+ HTMLAttributes,
3
+ ElementType,
4
+ CSSProperties,
5
+ MouseEvent,
6
+ KeyboardEvent,
7
+ } from 'react';
1
8
  import { useRef, forwardRef } from 'react';
2
- import * as React from 'react';
3
9
 
4
10
  import { assignMultipleRefs } from '../utils/assignRef';
5
11
  import { wrapEvent } from '../utils/wrapEvent';
6
12
 
7
- export interface ModalBackdropProps
8
- extends React.HTMLAttributes<HTMLDivElement> {
9
- as?: React.ElementType<any>;
10
- innerAs?: React.ElementType<any>;
13
+ export interface ModalBackdropProps extends HTMLAttributes<HTMLDivElement> {
14
+ as?: ElementType<any>;
15
+ innerAs?: ElementType<any>;
11
16
  onClose?: () => void;
12
- style?: React.CSSProperties;
17
+ style?: CSSProperties;
13
18
  disableCloseOnClick?: boolean;
14
19
  disableEscapeKeyDown?: boolean;
15
20
  }
@@ -31,7 +36,7 @@ export const ModalBackdrop = forwardRef<HTMLDivElement, ModalBackdropProps>(
31
36
  const ref = useRef();
32
37
  const mouseDownTargetRef = useRef<EventTarget | null>(null);
33
38
 
34
- const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {
39
+ const handleClick = (e: MouseEvent<HTMLDivElement>) => {
35
40
  // Ignore the events not coming from the "backdrop"
36
41
  // We don't want to close the dialog when clicking the dialog content.
37
42
  if (e.target !== e.currentTarget) {
@@ -48,11 +53,11 @@ export const ModalBackdrop = forwardRef<HTMLDivElement, ModalBackdropProps>(
48
53
  e.stopPropagation();
49
54
  };
50
55
 
51
- const handleMouseDown = (e: React.MouseEvent<HTMLDivElement>) => {
56
+ const handleMouseDown = (e: MouseEvent<HTMLDivElement>) => {
52
57
  mouseDownTargetRef.current = e.target;
53
58
  };
54
59
 
55
- const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {
60
+ const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {
56
61
  if (e.key === 'Escape') {
57
62
  !disableEscapeKeyDown && onClose?.();
58
63
  e.stopPropagation();
@@ -1,3 +1,4 @@
1
+ import type { HTMLAttributes, ElementType, RefObject, ReactNode } from 'react';
1
2
  import {
2
3
  forwardRef,
3
4
  useRef,
@@ -6,7 +7,6 @@ import {
6
7
  useMemo,
7
8
  memo,
8
9
  } from 'react';
9
- import * as React from 'react';
10
10
  import type {
11
11
  Placement,
12
12
  Modifier,
@@ -32,11 +32,11 @@ export type OffsetsFunction = (arg0: {
32
32
  placement: Placement;
33
33
  }) => [number | null | undefined, number | null | undefined];
34
34
 
35
- export interface PopperProps extends React.HTMLAttributes<HTMLDivElement> {
36
- as?: React.ElementType<any>;
37
- innerAs?: React.ElementType<any>;
38
- anchorEl: React.RefObject<HTMLElement>;
39
- children?: React.ReactNode;
35
+ export interface PopperProps extends HTMLAttributes<HTMLDivElement> {
36
+ as?: ElementType<any>;
37
+ innerAs?: ElementType<any>;
38
+ anchorEl: RefObject<HTMLElement>;
39
+ children?: ReactNode;
40
40
  placement?: Placement;
41
41
  strategy?: PositioningStrategy;
42
42
  modifiers?: Array<Partial<Modifier<any, any>>>;
@@ -1,12 +1,12 @@
1
+ import type { ElementType, HTMLAttributes } from 'react';
1
2
  import { forwardRef } from 'react';
2
- import * as React from 'react';
3
3
 
4
4
  import { usePopperContext } from './context';
5
5
  import { assignRef } from '../utils/assignRef';
6
6
 
7
- export interface PopperArrowProps extends React.HTMLAttributes<HTMLDivElement> {
8
- as?: React.ElementType<any>;
9
- innerAs?: React.ElementType<any>;
7
+ export interface PopperArrowProps extends HTMLAttributes<HTMLDivElement> {
8
+ as?: ElementType<any>;
9
+ innerAs?: ElementType<any>;
10
10
  }
11
11
 
12
12
  export const PopperArrow = forwardRef<HTMLDivElement, PopperArrowProps>(
@@ -1,15 +1,20 @@
1
+ import type {
2
+ ChangeEvent,
3
+ ElementType,
4
+ InputHTMLAttributes,
5
+ ReactNode,
6
+ } from 'react';
1
7
  import { forwardRef } from 'react';
2
- import * as React from 'react';
3
8
 
4
9
  import type { RadioValue } from './context';
5
10
  import { useRadioGroupContext } from './context';
6
11
  import { wrapEvent } from '../utils';
7
12
 
8
13
  export interface RadioButtonProps
9
- extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value'> {
10
- as?: React.ElementType<any>;
11
- innerAs?: React.ElementType<any>;
12
- children?: React.ReactNode;
14
+ extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value'> {
15
+ as?: ElementType<any>;
16
+ innerAs?: ElementType<any>;
17
+ children?: ReactNode;
13
18
  checked?: boolean;
14
19
  value: RadioValue;
15
20
  }
@@ -26,7 +31,7 @@ export const RadioButton = forwardRef<HTMLInputElement, RadioButtonProps>(
26
31
  } = props;
27
32
  const radioGroupContext = useRadioGroupContext();
28
33
 
29
- const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
34
+ const handleChange = (e: ChangeEvent<HTMLInputElement>) => {
30
35
  radioGroupContext?.onChange?.(e, valueProp);
31
36
  };
32
37
 
@@ -1,5 +1,10 @@
1
+ import type {
2
+ ChangeEvent,
3
+ ElementType,
4
+ HTMLAttributes,
5
+ ReactNode,
6
+ } from 'react';
1
7
  import { forwardRef, useId } from 'react';
2
- import * as React from 'react';
3
8
 
4
9
  import type { RadioValue } from './context';
5
10
  import { RadioGroupProvider } from './context';
@@ -7,19 +12,16 @@ import { useControlledState } from '../hooks';
7
12
 
8
13
  export interface RadioGroupProps
9
14
  extends Omit<
10
- React.HTMLAttributes<HTMLDivElement>,
15
+ HTMLAttributes<HTMLDivElement>,
11
16
  'onChange' | 'value' | 'defaultValue'
12
17
  > {
13
- as?: React.ElementType<any>;
14
- innerAs?: React.ElementType<any>;
15
- children?: React.ReactNode;
18
+ as?: ElementType<any>;
19
+ innerAs?: ElementType<any>;
20
+ children?: ReactNode;
16
21
  value?: RadioValue;
17
22
  defaultValue?: RadioValue;
18
23
  name?: string;
19
- onChange?: (
20
- e: React.ChangeEvent<HTMLInputElement>,
21
- value: RadioValue
22
- ) => void;
24
+ onChange?: (e: ChangeEvent<HTMLInputElement>, value: RadioValue) => void;
23
25
  }
24
26
 
25
27
  export const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(
@@ -1,3 +1,4 @@
1
+ import type { ChangeEvent } from 'react';
1
2
  import { createContext, useContext } from 'react';
2
3
 
3
4
  export type RadioValue = string | number | boolean;
@@ -5,10 +6,7 @@ export type RadioValue = string | number | boolean;
5
6
  // RadioGroup Component
6
7
  export interface RadioGroupContextProps {
7
8
  value: RadioValue | undefined;
8
- onChange?: (
9
- e: React.ChangeEvent<HTMLInputElement>,
10
- value: RadioValue
11
- ) => void;
9
+ onChange?: (e: ChangeEvent<HTMLInputElement>, value: RadioValue) => void;
12
10
  name: string | undefined;
13
11
  }
14
12
 
@@ -1,10 +1,10 @@
1
+ import type { ElementType, HTMLAttributes, ReactNode } from 'react';
1
2
  import { forwardRef } from 'react';
2
- import * as React from 'react';
3
3
 
4
- export interface SkipNavProps extends React.HTMLAttributes<HTMLDivElement> {
5
- as?: React.ElementType<any>;
6
- innerAs?: React.ElementType<any>;
7
- children?: React.ReactNode;
4
+ export interface SkipNavProps extends HTMLAttributes<HTMLDivElement> {
5
+ as?: ElementType<any>;
6
+ innerAs?: ElementType<any>;
7
+ children?: ReactNode;
8
8
  }
9
9
 
10
10
  export const SkipNav = forwardRef<HTMLDivElement, SkipNavProps>(
@@ -1,23 +1,27 @@
1
+ import type {
2
+ HTMLAttributes,
3
+ ElementType,
4
+ ReactNode,
5
+ MouseEvent,
6
+ KeyboardEvent,
7
+ } from 'react';
1
8
  import { forwardRef, useState, useRef } from 'react';
2
- import * as React from 'react';
3
9
 
4
10
  import { SpinnerProvider } from './context';
5
11
  import { clamp as clampFunc } from '../utils/clamp';
6
12
  import { wrapEvent, assignMultipleRefs } from '../utils';
7
13
 
8
14
  export interface SpinnerProps
9
- extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
10
- as?: React.ElementType<any>;
11
- innerAs?: React.ElementType<any>;
12
- children?: React.ReactNode;
15
+ extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
16
+ as?: ElementType<any>;
17
+ innerAs?: ElementType<any>;
18
+ children?: ReactNode;
13
19
  value?: number;
14
20
  minValue?: number;
15
21
  maxValue?: number;
16
22
  stepSize?: number;
17
23
  onChange?: (
18
- e:
19
- | React.MouseEvent<HTMLButtonElement>
20
- | React.KeyboardEvent<HTMLDivElement>,
24
+ e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLDivElement>,
21
25
  value: number
22
26
  ) => void;
23
27
  }
@@ -41,7 +45,7 @@ export const Spinner = forwardRef<HTMLDivElement, SpinnerProps>(
41
45
 
42
46
  const clamp = (value: number) => clampFunc(value, minValue, maxValue);
43
47
 
44
- const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {
48
+ const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {
45
49
  let nextValue = value;
46
50
  switch (e.key) {
47
51
  case 'ArrowUp':
@@ -1,14 +1,19 @@
1
+ import type {
2
+ ButtonHTMLAttributes,
3
+ ElementType,
4
+ MouseEvent,
5
+ ReactNode,
6
+ } from 'react';
1
7
  import { forwardRef } from 'react';
2
- import * as React from 'react';
3
8
 
4
9
  import { useSpinnerContext } from './context';
5
10
  import { wrapEvent } from '../utils';
6
11
 
7
12
  export interface SpinnerButtonProps
8
- extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'type'> {
9
- as?: React.ElementType<any>;
10
- innerAs?: React.ElementType<any>;
11
- children?: React.ReactNode;
13
+ extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'type'> {
14
+ as?: ElementType<any>;
15
+ innerAs?: ElementType<any>;
16
+ children?: ReactNode;
12
17
  type: 'next' | 'previous';
13
18
  }
14
19
 
@@ -21,7 +26,7 @@ export const SpinnerButton = forwardRef<HTMLButtonElement, SpinnerButtonProps>(
21
26
  throw new Error('Missing <Spinner /> in component tree');
22
27
  }
23
28
 
24
- const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {
29
+ const handleClick = (e: MouseEvent<HTMLButtonElement>) => {
25
30
  const delta = type === 'next' ? 1 : -1;
26
31
 
27
32
  spinnerContext.onChange &&
@@ -1,3 +1,4 @@
1
+ import type { KeyboardEvent, MouseEvent } from 'react';
1
2
  import { createContext, useContext } from 'react';
2
3
 
3
4
  // Spinner Component
@@ -7,9 +8,7 @@ export interface SpinnerContextProps {
7
8
  maxValue: number;
8
9
  stepSize: number;
9
10
  onChange?: (
10
- e:
11
- | React.MouseEvent<HTMLButtonElement>
12
- | React.KeyboardEvent<HTMLDivElement>,
11
+ e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLDivElement>,
13
12
  value: number
14
13
  ) => void;
15
14
  clamp: (value: number) => number;
package/src/Tabs/Tab.tsx CHANGED
@@ -1,5 +1,11 @@
1
+ import type {
2
+ ButtonHTMLAttributes,
3
+ ElementType,
4
+ KeyboardEvent,
5
+ MouseEvent,
6
+ ReactNode,
7
+ } from 'react';
1
8
  import { forwardRef, useRef } from 'react';
2
- import * as React from 'react';
3
9
 
4
10
  import { useTabsContext, useTabListContext } from './context';
5
11
  import { assignMultipleRefs, getCircularIndex, wrapEvent } from '../utils';
@@ -24,11 +30,10 @@ function getNextIndex(
24
30
  return null;
25
31
  }
26
32
 
27
- export interface TabProps
28
- extends React.ButtonHTMLAttributes<HTMLButtonElement> {
29
- as?: React.ElementType<any>;
30
- innerAs?: React.ElementType<any>;
31
- children?: React.ReactNode;
33
+ export interface TabProps extends ButtonHTMLAttributes<HTMLButtonElement> {
34
+ as?: ElementType<any>;
35
+ innerAs?: ElementType<any>;
36
+ children?: ReactNode;
32
37
  }
33
38
 
34
39
  export const Tab = forwardRef<HTMLButtonElement, TabProps>(function Tab(
@@ -51,7 +56,7 @@ export const Tab = forwardRef<HTMLButtonElement, TabProps>(function Tab(
51
56
  throw new Error('Missing <Tabs /> or <TabList /> in the component tree');
52
57
  }
53
58
 
54
- const handleKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {
59
+ const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {
55
60
  const right = tabListContext.vertical ? 'ArrowDown' : 'ArrowRight';
56
61
  const left = tabListContext.vertical ? 'ArrowUp' : 'ArrowLeft';
57
62
  const first = 'Home';
@@ -94,7 +99,7 @@ export const Tab = forwardRef<HTMLButtonElement, TabProps>(function Tab(
94
99
  }
95
100
  };
96
101
 
97
- const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {
102
+ const handleClick = (e: MouseEvent<HTMLButtonElement>) => {
98
103
  const allTabs = tabListContext.tabsScope.current.queryAllNodes(scopeQuery);
99
104
  const currentIndex = ref.current ? allTabs.indexOf(ref.current) : -1;
100
105
 
@@ -1,3 +1,4 @@
1
+ import type { HTMLAttributes, ElementType, ReactNode } from 'react';
1
2
  import {
2
3
  forwardRef,
3
4
  useRef,
@@ -6,18 +7,17 @@ import {
6
7
  cloneElement,
7
8
  useId,
8
9
  } from 'react';
9
- import * as React from 'react';
10
10
 
11
11
  import { TabListProvider, useTabsContext } from './context';
12
12
  import { useScope } from '../hooks';
13
13
  import { assignMultipleRefs } from '../utils';
14
14
 
15
- export interface TabListProps extends React.HTMLAttributes<HTMLDivElement> {
16
- as?: React.ElementType<any>;
17
- innerAs?: React.ElementType<any>;
15
+ export interface TabListProps extends HTMLAttributes<HTMLDivElement> {
16
+ as?: ElementType<any>;
17
+ innerAs?: ElementType<any>;
18
18
  manualActivation?: boolean;
19
19
  vertical?: boolean;
20
- children?: React.ReactNode;
20
+ children?: ReactNode;
21
21
  }
22
22
 
23
23
  export const TabList = forwardRef<HTMLDivElement, TabListProps>(
@@ -1,12 +1,12 @@
1
+ import type { ElementType, HTMLAttributes, ReactNode } from 'react';
1
2
  import { forwardRef } from 'react';
2
- import * as React from 'react';
3
3
 
4
4
  import { useTabsContext } from './context';
5
5
 
6
- export interface TabPanelProps extends React.HTMLAttributes<HTMLDivElement> {
7
- as?: React.ElementType<any>;
8
- innerAs?: React.ElementType<any>;
9
- children?: React.ReactNode;
6
+ export interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {
7
+ as?: ElementType<any>;
8
+ innerAs?: ElementType<any>;
9
+ children?: ReactNode;
10
10
  lazy?: boolean;
11
11
  }
12
12
 
@@ -1,11 +1,11 @@
1
+ import type { ElementType, ReactNode } from 'react';
1
2
  import { forwardRef, Fragment, Children, cloneElement } from 'react';
2
- import * as React from 'react';
3
3
 
4
4
  export interface TabPanelsProps {
5
- as?: React.ElementType<any>;
6
- innerAs?: React.ElementType<any>;
5
+ as?: ElementType<any>;
6
+ innerAs?: ElementType<any>;
7
7
  lazy?: boolean;
8
- children?: React.ReactNode;
8
+ children?: ReactNode;
9
9
  }
10
10
 
11
11
  export const TabPanels = forwardRef<HTMLDivElement, TabPanelsProps>(
package/src/Tabs/Tabs.tsx CHANGED
@@ -1,17 +1,15 @@
1
+ import type { ElementType, KeyboardEvent, MouseEvent, ReactNode } from 'react';
1
2
  import { forwardRef, Fragment, useState } from 'react';
2
- import * as React from 'react';
3
3
 
4
4
  import { TabsProvider } from './context';
5
5
  import { useControlledState } from '../hooks';
6
6
 
7
7
  export interface TabsProps {
8
- as?: React.ElementType<any>;
9
- innerAs?: React.ElementType<any>;
10
- children?: React.ReactNode;
8
+ as?: ElementType<any>;
9
+ innerAs?: ElementType<any>;
10
+ children?: ReactNode;
11
11
  onChange?: (
12
- e:
13
- | React.MouseEvent<HTMLButtonElement>
14
- | React.KeyboardEvent<HTMLButtonElement>,
12
+ e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>,
15
13
  value: number
16
14
  ) => void;
17
15
  index?: number;
@@ -1,3 +1,4 @@
1
+ import type { KeyboardEvent, MouseEvent } from 'react';
1
2
  import { createContext, useContext } from 'react';
2
3
 
3
4
  import type { Scope } from '../hooks/useScope';
@@ -6,9 +7,7 @@ import type { Scope } from '../hooks/useScope';
6
7
  export interface TabsContextProps {
7
8
  currentIndex: number;
8
9
  onChange?: (
9
- e:
10
- | React.MouseEvent<HTMLButtonElement>
11
- | React.KeyboardEvent<HTMLButtonElement>,
10
+ e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>,
12
11
  value: number
13
12
  ) => void;
14
13
  tabListId: string | null;
@@ -1,4 +1,4 @@
1
- import React, { useRef, forwardRef } from 'react';
1
+ import { useRef, forwardRef } from 'react';
2
2
 
3
3
  import { Tooltip } from './';
4
4
  import { Popper } from '../Popper/Popper';
@@ -1,14 +1,20 @@
1
- import type { ReactElement, RefAttributes } from 'react';
2
- import React, { forwardRef, cloneElement, Children } from 'react';
1
+ import type {
2
+ ElementType,
3
+ HTMLAttributes,
4
+ ReactElement,
5
+ ReactNode,
6
+ RefAttributes,
7
+ } from 'react';
8
+ import { forwardRef, cloneElement, Children } from 'react';
3
9
 
4
10
  import { useTooltip } from './useTooltip';
5
11
  export type { InjectedTooltipProps } from './useTooltip';
6
12
 
7
- export interface TooltipProps extends React.HTMLAttributes<HTMLDivElement> {
8
- as?: React.ElementType<any>;
9
- innerAs?: React.ElementType<any>;
10
- children?: React.ReactNode;
11
- label: React.ReactNode;
13
+ export interface TooltipProps extends HTMLAttributes<HTMLDivElement> {
14
+ as?: ElementType<any>;
15
+ innerAs?: ElementType<any>;
16
+ children?: ReactNode;
17
+ label: ReactNode;
12
18
  disabled?: boolean;
13
19
  }
14
20
 
@@ -1,4 +1,11 @@
1
- import type { RefAttributes } from 'react';
1
+ import type {
2
+ HTMLAttributes,
3
+ KeyboardEvent,
4
+ ReactNode,
5
+ Ref,
6
+ RefAttributes,
7
+ RefObject,
8
+ } from 'react';
2
9
  import { useRef, useEffect, useState, useId } from 'react';
3
10
 
4
11
  import { assignMultipleRefs } from '../utils/assignRef';
@@ -18,20 +25,19 @@ import {
18
25
  Visible,
19
26
  } from './stateMachine';
20
27
 
21
- export type ChildProps = React.HTMLAttributes<HTMLElement> &
28
+ export type ChildProps = HTMLAttributes<HTMLElement> &
22
29
  RefAttributes<HTMLElement>;
23
30
 
24
- export interface InjectedTooltipProps
25
- extends React.HTMLAttributes<HTMLElement> {
26
- anchorEl: React.RefObject<HTMLElement>;
31
+ export interface InjectedTooltipProps extends HTMLAttributes<HTMLElement> {
32
+ anchorEl: RefObject<HTMLElement>;
27
33
  visible: boolean;
28
- children?: React.ReactNode;
34
+ children?: ReactNode;
29
35
  }
30
36
 
31
37
  export function useTooltip(
32
38
  childProps: ChildProps,
33
- childRef: React.Ref<HTMLElement> | undefined,
34
- tooltipProps: React.HTMLAttributes<HTMLElement> & { label?: React.ReactNode }
39
+ childRef: Ref<HTMLElement> | undefined,
40
+ tooltipProps: HTMLAttributes<HTMLElement> & { label?: ReactNode }
35
41
  ): [ChildProps, InjectedTooltipProps] {
36
42
  const {
37
43
  onMouseEnter,
@@ -86,7 +92,7 @@ export function useTooltip(
86
92
  }
87
93
  }
88
94
 
89
- function handleKeyDown(event: React.KeyboardEvent<HTMLElement>) {
95
+ function handleKeyDown(event: KeyboardEvent<HTMLElement>) {
90
96
  if (event.key === 'Enter' || event.key === ' ') {
91
97
  send(SelectWithKeyboard);
92
98
  }
@@ -1,10 +1,11 @@
1
+ import type { MutableRefObject } from 'react';
1
2
  import { useEffect } from 'react';
2
3
 
3
4
  import { focusOnChildNode } from '../FocusLock/tabUtils';
4
5
 
5
6
  export function useAutoFocus(
6
7
  open: boolean,
7
- elementRef: React.MutableRefObject<HTMLElement | null>
8
+ elementRef: MutableRefObject<HTMLElement | null>
8
9
  ) {
9
10
  useEffect(() => {
10
11
  if (open) {
@@ -1,3 +1,4 @@
1
+ import type { Dispatch, SetStateAction, SyntheticEvent } from 'react';
1
2
  import { useRef, useState } from 'react';
2
3
 
3
4
  import type { CustomEventHandler } from '../utils';
@@ -5,20 +6,16 @@ import { wrapEvent } from '../utils';
5
6
 
6
7
  export function useControlledState<
7
8
  V,
8
- E extends React.SyntheticEvent<any>,
9
+ E extends SyntheticEvent<any>,
9
10
  H extends unknown[]
10
11
  >(
11
12
  valueProp: V | undefined,
12
13
  onChangeProp: CustomEventHandler<E, H> | undefined,
13
14
  defaultValue: V,
14
15
  defaultOnChange: (
15
- setValue: React.Dispatch<React.SetStateAction<V>>
16
+ setValue: Dispatch<SetStateAction<V>>
16
17
  ) => CustomEventHandler<E, H>
17
- ): [
18
- V,
19
- CustomEventHandler<E, H> | undefined,
20
- React.Dispatch<React.SetStateAction<V>>
21
- ] {
18
+ ): [V, CustomEventHandler<E, H> | undefined, Dispatch<SetStateAction<V>>] {
22
19
  const isControlled = useRef(valueProp !== undefined);
23
20
  const [valueState, setValueState] = useState<V>(defaultValue);
24
21
 
@@ -1,11 +1,12 @@
1
+ import type { FocusEventHandler } from 'react';
1
2
  import { useState } from 'react';
2
3
 
3
4
  import { wrapEvent } from '../utils/wrapEvent';
4
5
 
5
6
  export function useFocusState<T>(
6
7
  props: {
7
- onFocus?: React.FocusEventHandler<T>;
8
- onBlur?: React.FocusEventHandler<T>;
8
+ onFocus?: FocusEventHandler<T>;
9
+ onBlur?: FocusEventHandler<T>;
9
10
  } = {}
10
11
  ) {
11
12
  const { onFocus, onBlur } = props;
@@ -1,5 +1,9 @@
1
+ import type {
2
+ MutableRefObject,
3
+ MouseEvent as ReactMouseEvent,
4
+ TouchEvent as ReactTouchEvent,
5
+ } from 'react';
1
6
  import { useRef } from 'react';
2
- import type * as React from 'react';
3
7
 
4
8
  export interface GestureHandlersState {
5
9
  target: null | EventTarget;
@@ -26,8 +30,8 @@ type SetStateFunc<S> = (
26
30
  ) => void;
27
31
 
28
32
  export interface GestureHandlersReturn {
29
- onMouseDown: (e: React.MouseEvent<HTMLElement>) => void;
30
- onTouchStart: (e: React.TouchEvent<HTMLElement>) => void;
33
+ onMouseDown: (e: ReactMouseEvent<HTMLElement>) => void;
34
+ onTouchStart: (e: ReactTouchEvent<HTMLElement>) => void;
31
35
  }
32
36
 
33
37
  export interface GestureHandlerOptions {
@@ -59,7 +63,7 @@ const VELOCITY_DEPR_FACTOR = FRAMERATE_CONST * 2;
59
63
 
60
64
  export function gestureHandlers(
61
65
  set: SetStateFunc<GestureHandlersState>,
62
- containerRef?: React.MutableRefObject<HTMLElement | null>,
66
+ containerRef?: MutableRefObject<HTMLElement | null>,
63
67
  options: GestureHandlerOptions = {}
64
68
  ): GestureHandlersReturn {
65
69
  const { ensureTargetIsContainer = false, minTouchDelta = 0 } = options;
@@ -192,7 +196,7 @@ export function gestureHandlers(
192
196
  handleMove(e.touches.item(0) as any);
193
197
  }
194
198
 
195
- function handleTouchStart(e: React.TouchEvent<HTMLElement>) {
199
+ function handleTouchStart(e: ReactTouchEvent<HTMLElement>) {
196
200
  // making sure we're not dragging the element when more than one finger press the screen
197
201
  const { touches } = e;
198
202
  if (touches.length > 1) {
@@ -221,7 +225,7 @@ export function gestureHandlers(
221
225
  }
222
226
 
223
227
  // Mouse handlers
224
- function handleMouseDown(e: React.MouseEvent<HTMLElement>) {
228
+ function handleMouseDown(e: ReactMouseEvent<HTMLElement>) {
225
229
  if (
226
230
  ensureTargetIsContainer &&
227
231
  containerRef &&
@@ -251,7 +255,7 @@ export function gestureHandlers(
251
255
  }
252
256
 
253
257
  export const useGestureHandlers = (
254
- containerRef: React.MutableRefObject<HTMLElement | null> | undefined,
258
+ containerRef: MutableRefObject<HTMLElement | null> | undefined,
255
259
  onGesture: (e: GestureHandlersState) => void,
256
260
  options: GestureHandlerOptions = {}
257
261
  ) => {
@@ -1,7 +1,8 @@
1
+ import type { MutableRefObject } from 'react';
1
2
  import { useRef, useState, useEffect } from 'react';
2
3
  import ResizeObserver from 'resize-observer-polyfill';
3
4
 
4
- export function useMeasure(ref: React.MutableRefObject<HTMLElement | null>) {
5
+ export function useMeasure(ref: MutableRefObject<HTMLElement | null>) {
5
6
  const ro = useRef<ResizeObserver | null>(null);
6
7
  const [bounds, setBounds] = useState({
7
8
  left: 0,