@basic-ui/core 0.0.53 → 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 (302) hide show
  1. package/build/cjs/index.js +278 -505
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/esm/Accordion/Accordion.js +20 -29
  4. package/build/esm/Accordion/Accordion.js.map +1 -1
  5. package/build/esm/Accordion/AccordionBody.js +18 -32
  6. package/build/esm/Accordion/AccordionBody.js.map +1 -1
  7. package/build/esm/Accordion/AccordionHeader.js +37 -74
  8. package/build/esm/Accordion/AccordionHeader.js.map +1 -1
  9. package/build/esm/Accordion/AccordionItem.js +19 -22
  10. package/build/esm/Accordion/AccordionItem.js.map +1 -1
  11. package/build/esm/Accordion/context.js +16 -13
  12. package/build/esm/Accordion/context.js.map +1 -1
  13. package/build/esm/Accordion/index.js.map +1 -1
  14. package/build/esm/Accordion/scopeQuery.js.map +1 -1
  15. package/build/esm/CheckBox/CheckBox.js +15 -25
  16. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  17. package/build/esm/CheckBox/index.js.map +1 -1
  18. package/build/esm/ComboBox/Combobox.d.ts +7 -7
  19. package/build/esm/ComboBox/Combobox.js +52 -59
  20. package/build/esm/ComboBox/Combobox.js.map +1 -1
  21. package/build/esm/ComboBox/ComboboxButton.js +23 -28
  22. package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
  23. package/build/esm/ComboBox/ComboboxInput.js +67 -70
  24. package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
  25. package/build/esm/ComboBox/ComboboxLabel.js +15 -17
  26. package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
  27. package/build/esm/ComboBox/ComboboxList.js +19 -20
  28. package/build/esm/ComboBox/ComboboxList.js.map +1 -1
  29. package/build/esm/ComboBox/ComboboxOption.js +41 -45
  30. package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
  31. package/build/esm/ComboBox/ComboboxPopover.js +22 -21
  32. package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
  33. package/build/esm/ComboBox/cities.js.map +1 -1
  34. package/build/esm/ComboBox/context.js +5 -6
  35. package/build/esm/ComboBox/context.js.map +1 -1
  36. package/build/esm/ComboBox/hooks.d.ts +2 -2
  37. package/build/esm/ComboBox/hooks.js +175 -148
  38. package/build/esm/ComboBox/hooks.js.map +1 -1
  39. package/build/esm/ComboBox/index.js.map +1 -1
  40. package/build/esm/ComboBox/makeHash.js +3 -6
  41. package/build/esm/ComboBox/makeHash.js.map +1 -1
  42. package/build/esm/ComboBox/scopeQuery.js.map +1 -1
  43. package/build/esm/FocusLock/FocusLock.js +26 -32
  44. package/build/esm/FocusLock/FocusLock.js.map +1 -1
  45. package/build/esm/FocusLock/index.js.map +1 -1
  46. package/build/esm/FocusLock/tabUtils.js +5 -7
  47. package/build/esm/FocusLock/tabUtils.js.map +1 -1
  48. package/build/esm/FocusLock/useFocusLock.js +14 -19
  49. package/build/esm/FocusLock/useFocusLock.js.map +1 -1
  50. package/build/esm/List/List.js +9 -11
  51. package/build/esm/List/List.js.map +1 -1
  52. package/build/esm/List/ListItem.js +9 -11
  53. package/build/esm/List/ListItem.js.map +1 -1
  54. package/build/esm/List/context.js +6 -6
  55. package/build/esm/List/context.js.map +1 -1
  56. package/build/esm/List/index.js.map +1 -1
  57. package/build/esm/Menu/ContextMenuTrigger.d.ts +4 -4
  58. package/build/esm/Menu/ContextMenuTrigger.js +32 -37
  59. package/build/esm/Menu/ContextMenuTrigger.js.map +1 -1
  60. package/build/esm/Menu/Menu.js +33 -49
  61. package/build/esm/Menu/Menu.js.map +1 -1
  62. package/build/esm/Menu/MenuButton.d.ts +4 -4
  63. package/build/esm/Menu/MenuButton.js +28 -44
  64. package/build/esm/Menu/MenuButton.js.map +1 -1
  65. package/build/esm/Menu/MenuItem.js +29 -38
  66. package/build/esm/Menu/MenuItem.js.map +1 -1
  67. package/build/esm/Menu/MenuList.js +61 -116
  68. package/build/esm/Menu/MenuList.js.map +1 -1
  69. package/build/esm/Menu/MenuPopover.js +16 -19
  70. package/build/esm/Menu/MenuPopover.js.map +1 -1
  71. package/build/esm/Menu/context.d.ts +1 -1
  72. package/build/esm/Menu/context.js +14 -12
  73. package/build/esm/Menu/context.js.map +1 -1
  74. package/build/esm/Menu/fixtures/countryList.js +1 -1
  75. package/build/esm/Menu/fixtures/countryList.js.map +1 -1
  76. package/build/esm/Menu/index.js.map +1 -1
  77. package/build/esm/Menu/scope.js.map +1 -1
  78. package/build/esm/Modal/Modal.js +13 -18
  79. package/build/esm/Modal/Modal.js.map +1 -1
  80. package/build/esm/Modal/ModalBackdrop.js +24 -33
  81. package/build/esm/Modal/ModalBackdrop.js.map +1 -1
  82. package/build/esm/Modal/index.js.map +1 -1
  83. package/build/esm/Popper/Popper.d.ts +3 -3
  84. package/build/esm/Popper/Popper.js +44 -61
  85. package/build/esm/Popper/Popper.js.map +1 -1
  86. package/build/esm/Popper/PopperArrow.js +11 -16
  87. package/build/esm/Popper/PopperArrow.js.map +1 -1
  88. package/build/esm/Popper/context.js +3 -5
  89. package/build/esm/Popper/context.js.map +1 -1
  90. package/build/esm/Popper/index.js.map +1 -1
  91. package/build/esm/Portal/Portal.js +9 -11
  92. package/build/esm/Portal/Portal.js.map +1 -1
  93. package/build/esm/Portal/PortalSelectorProvider.d.ts +3 -3
  94. package/build/esm/Portal/PortalSelectorProvider.js +6 -4
  95. package/build/esm/Portal/PortalSelectorProvider.js.map +1 -1
  96. package/build/esm/Portal/index.js.map +1 -1
  97. package/build/esm/RadioButton/RadioButton.js +17 -23
  98. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  99. package/build/esm/RadioButton/RadioGroup.js +19 -28
  100. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  101. package/build/esm/RadioButton/context.d.ts +1 -1
  102. package/build/esm/RadioButton/context.js +8 -6
  103. package/build/esm/RadioButton/context.js.map +1 -1
  104. package/build/esm/RadioButton/index.js.map +1 -1
  105. package/build/esm/SkipNav/SkipNav.js +9 -11
  106. package/build/esm/SkipNav/SkipNav.js.map +1 -1
  107. package/build/esm/SkipNav/index.js.map +1 -1
  108. package/build/esm/Slider/Slider.d.ts +7 -7
  109. package/build/esm/Slider/Slider.js +340 -407
  110. package/build/esm/Slider/Slider.js.map +1 -1
  111. package/build/esm/Slider/index.js.map +1 -1
  112. package/build/esm/Spinner/Spinner.js +31 -59
  113. package/build/esm/Spinner/Spinner.js.map +1 -1
  114. package/build/esm/Spinner/SpinnerButton.js +14 -19
  115. package/build/esm/Spinner/SpinnerButton.js.map +1 -1
  116. package/build/esm/Spinner/context.js +8 -7
  117. package/build/esm/Spinner/context.js.map +1 -1
  118. package/build/esm/Spinner/index.js.map +1 -1
  119. package/build/esm/Tabs/Tab.js +32 -50
  120. package/build/esm/Tabs/Tab.js.map +1 -1
  121. package/build/esm/Tabs/TabList.js +24 -34
  122. package/build/esm/Tabs/TabList.js.map +1 -1
  123. package/build/esm/Tabs/TabPanel.js +16 -23
  124. package/build/esm/Tabs/TabPanel.js.map +1 -1
  125. package/build/esm/Tabs/TabPanels.js +15 -20
  126. package/build/esm/Tabs/TabPanels.js.map +1 -1
  127. package/build/esm/Tabs/Tabs.js +17 -33
  128. package/build/esm/Tabs/Tabs.js.map +1 -1
  129. package/build/esm/Tabs/context.js +16 -13
  130. package/build/esm/Tabs/context.js.map +1 -1
  131. package/build/esm/Tabs/index.js.map +1 -1
  132. package/build/esm/Tabs/scopeQuery.js.map +1 -1
  133. package/build/esm/Tooltip/Tooltip.d.ts +2 -2
  134. package/build/esm/Tooltip/Tooltip.js +20 -30
  135. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  136. package/build/esm/Tooltip/index.js.map +1 -1
  137. package/build/esm/Tooltip/stateMachine.d.ts +2 -2
  138. package/build/esm/Tooltip/stateMachine.js +95 -81
  139. package/build/esm/Tooltip/stateMachine.js.map +1 -1
  140. package/build/esm/Tooltip/useTooltip.d.ts +2 -2
  141. package/build/esm/Tooltip/useTooltip.js +38 -50
  142. package/build/esm/Tooltip/useTooltip.js.map +1 -1
  143. package/build/esm/hooks/index.js.map +1 -1
  144. package/build/esm/hooks/useAutoFocus.js +3 -3
  145. package/build/esm/hooks/useAutoFocus.js.map +1 -1
  146. package/build/esm/hooks/useChildrenCounter.js +6 -8
  147. package/build/esm/hooks/useChildrenCounter.js.map +1 -1
  148. package/build/esm/hooks/useControlledState.js +6 -16
  149. package/build/esm/hooks/useControlledState.js.map +1 -1
  150. package/build/esm/hooks/useFocusReturn.js +8 -12
  151. package/build/esm/hooks/useFocusReturn.js.map +1 -1
  152. package/build/esm/hooks/useFocusState.d.ts +2 -2
  153. package/build/esm/hooks/useFocusState.js +9 -15
  154. package/build/esm/hooks/useFocusState.js.map +1 -1
  155. package/build/esm/hooks/useGestureHandlers.d.ts +1 -1
  156. package/build/esm/hooks/useGestureHandlers.js +80 -100
  157. package/build/esm/hooks/useGestureHandlers.js.map +1 -1
  158. package/build/esm/hooks/useMeasure.js +7 -15
  159. package/build/esm/hooks/useMeasure.js.map +1 -1
  160. package/build/esm/hooks/useOnClickOutside.js +4 -6
  161. package/build/esm/hooks/useOnClickOutside.js.map +1 -1
  162. package/build/esm/hooks/useOnKeyDown.js +3 -4
  163. package/build/esm/hooks/useOnKeyDown.js.map +1 -1
  164. package/build/esm/hooks/useReducerMachine.d.ts +1 -1
  165. package/build/esm/hooks/useReducerMachine.js +15 -26
  166. package/build/esm/hooks/useReducerMachine.js.map +1 -1
  167. package/build/esm/hooks/useRemoveBodyScroll.js +9 -14
  168. package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
  169. package/build/esm/hooks/useScope.d.ts +2 -2
  170. package/build/esm/hooks/useScope.js +12 -14
  171. package/build/esm/hooks/useScope.js.map +1 -1
  172. package/build/esm/hooks/useThrottle.js +5 -10
  173. package/build/esm/hooks/useThrottle.js.map +1 -1
  174. package/build/esm/index.js +4 -2
  175. package/build/esm/index.js.map +1 -1
  176. package/build/esm/styles.d.js +2 -0
  177. package/build/esm/styles.d.js.map +1 -0
  178. package/build/esm/utils/assign-ref.js +3 -5
  179. package/build/esm/utils/assign-ref.js.map +1 -1
  180. package/build/esm/utils/can-use-dom.js.map +1 -1
  181. package/build/esm/utils/clamp.js.map +1 -1
  182. package/build/esm/utils/context.d.ts +1 -1
  183. package/build/esm/utils/context.js +13 -20
  184. package/build/esm/utils/context.js.map +1 -1
  185. package/build/esm/utils/create-subscription.js +5 -10
  186. package/build/esm/utils/create-subscription.js.map +1 -1
  187. package/build/esm/utils/get-circular-index.js +0 -1
  188. package/build/esm/utils/get-circular-index.js.map +1 -1
  189. package/build/esm/utils/index.js.map +1 -1
  190. package/build/esm/utils/is-right-click.js.map +1 -1
  191. package/build/esm/utils/owner-document.js +1 -1
  192. package/build/esm/utils/owner-document.js.map +1 -1
  193. package/build/esm/utils/polymorphic.d.ts +10 -10
  194. package/build/esm/utils/polymorphic.js.map +1 -1
  195. package/build/esm/utils/rubber-band-clamp.js +2 -5
  196. package/build/esm/utils/rubber-band-clamp.js.map +1 -1
  197. package/build/esm/utils/use-stable-callback.js +8 -10
  198. package/build/esm/utils/use-stable-callback.js.map +1 -1
  199. package/build/esm/utils/wrap-event.d.ts +1 -1
  200. package/build/esm/utils/wrap-event.js +2 -5
  201. package/build/esm/utils/wrap-event.js.map +1 -1
  202. package/build/tsconfig-build.tsbuildinfo +1 -1
  203. package/package.json +6 -6
  204. package/src/Accordion/Accordion.tsx +1 -1
  205. package/src/Accordion/AccordionBody.tsx +1 -1
  206. package/src/Accordion/AccordionHeader.tsx +1 -2
  207. package/src/ComboBox/Combobox.tsx +2 -2
  208. package/src/ComboBox/ComboboxList.tsx +1 -1
  209. package/src/ComboBox/ComboboxOption.tsx +0 -1
  210. package/src/ComboBox/hooks.tsx +0 -3
  211. package/src/FocusLock/useFocusLock.ts +0 -1
  212. package/src/Menu/Menu.tsx +2 -3
  213. package/src/Menu/MenuItem.tsx +1 -2
  214. package/src/Menu/MenuList.tsx +4 -4
  215. package/src/Modal/Modal.story.tsx +11 -7
  216. package/src/Modal/ModalBackdrop.tsx +1 -1
  217. package/src/Modal/NavDrawer.story.tsx +9 -6
  218. package/src/Popper/Popper.story.tsx +23 -7
  219. package/src/Popper/Popper.tsx +2 -2
  220. package/src/RadioButton/RadioButton.story.tsx +2 -1
  221. package/src/Slider/Slider.tsx +6 -11
  222. package/src/Spinner/Spinner.tsx +1 -1
  223. package/src/Tabs/TabList.tsx +1 -1
  224. package/src/Tooltip/Tooltip.tsx +8 -5
  225. package/src/Tooltip/useTooltip.ts +1 -1
  226. package/src/hooks/useControlledState.ts +1 -6
  227. package/src/hooks/useGestureHandlers.ts +0 -4
  228. package/src/hooks/useRemoveBodyScroll.ts +0 -1
  229. package/src/hooks/useScope.ts +1 -1
  230. package/src/styles.d.ts +1 -0
  231. package/src/utils/polymorphic.ts +14 -10
  232. package/src/utils/use-stable-callback.ts +0 -1
  233. package/build/esm/Carousel/Carousel.d.ts +0 -9
  234. package/build/esm/Carousel/Carousel.js +0 -38
  235. package/build/esm/Carousel/Carousel.js.map +0 -1
  236. package/build/esm/Carousel/Fader.d.ts +0 -14
  237. package/build/esm/Carousel/Fader.js +0 -76
  238. package/build/esm/Carousel/Fader.js.map +0 -1
  239. package/build/esm/Carousel/FaderItem.d.ts +0 -5
  240. package/build/esm/Carousel/FaderItem.js +0 -16
  241. package/build/esm/Carousel/FaderItem.js.map +0 -1
  242. package/build/esm/Carousel/Preloader.d.ts +0 -7
  243. package/build/esm/Carousel/Preloader.js +0 -70
  244. package/build/esm/Carousel/Preloader.js.map +0 -1
  245. package/build/esm/Carousel/Slider.d.ts +0 -14
  246. package/build/esm/Carousel/Slider.js +0 -212
  247. package/build/esm/Carousel/Slider.js.map +0 -1
  248. package/build/esm/Carousel/SliderItem.d.ts +0 -12
  249. package/build/esm/Carousel/SliderItem.js +0 -41
  250. package/build/esm/Carousel/SliderItem.js.map +0 -1
  251. package/build/esm/Carousel/context.d.ts +0 -10
  252. package/build/esm/Carousel/context.js +0 -8
  253. package/build/esm/Carousel/context.js.map +0 -1
  254. package/build/esm/Carousel/getSliderParams.d.ts +0 -9
  255. package/build/esm/Carousel/getSliderParams.js +0 -85
  256. package/build/esm/Carousel/getSliderParams.js.map +0 -1
  257. package/build/esm/Carousel/index.d.ts +0 -7
  258. package/build/esm/Carousel/index.js +0 -8
  259. package/build/esm/Carousel/index.js.map +0 -1
  260. package/build/esm/Carousel/useCarouselGestures.d.ts +0 -30
  261. package/build/esm/Carousel/useCarouselGestures.js +0 -33
  262. package/build/esm/Carousel/useCarouselGestures.js.map +0 -1
  263. package/build/esm/DatePicker/DatePicker.d.ts +0 -24
  264. package/build/esm/DatePicker/DatePicker.js +0 -101
  265. package/build/esm/DatePicker/DatePicker.js.map +0 -1
  266. package/build/esm/DatePicker/DatePickerSelect.d.ts +0 -8
  267. package/build/esm/DatePicker/DatePickerSelect.js +0 -201
  268. package/build/esm/DatePicker/DatePickerSelect.js.map +0 -1
  269. package/build/esm/DatePicker/RangeDatePicker.d.ts +0 -28
  270. package/build/esm/DatePicker/RangeDatePicker.js +0 -94
  271. package/build/esm/DatePicker/RangeDatePicker.js.map +0 -1
  272. package/build/esm/DatePicker/adjustDates.d.ts +0 -4
  273. package/build/esm/DatePicker/adjustDates.js +0 -18
  274. package/build/esm/DatePicker/adjustDates.js.map +0 -1
  275. package/build/esm/DatePicker/contexts.d.ts +0 -31
  276. package/build/esm/DatePicker/contexts.js +0 -15
  277. package/build/esm/DatePicker/contexts.js.map +0 -1
  278. package/build/esm/DatePicker/dateTypes.d.ts +0 -2
  279. package/build/esm/DatePicker/dateTypes.js +0 -2
  280. package/build/esm/DatePicker/dateTypes.js.map +0 -1
  281. package/build/esm/DatePicker/hooks.d.ts +0 -36
  282. package/build/esm/DatePicker/hooks.js +0 -98
  283. package/build/esm/DatePicker/hooks.js.map +0 -1
  284. package/build/esm/DatePicker/index.d.ts +0 -5
  285. package/build/esm/DatePicker/index.js +0 -6
  286. package/build/esm/DatePicker/index.js.map +0 -1
  287. package/build/esm/hooks/useId.d.ts +0 -1
  288. package/build/esm/hooks/useId.js +0 -25
  289. package/build/esm/hooks/useId.js.map +0 -1
  290. package/build/esm/utils/assignRef.d.ts +0 -3
  291. package/build/esm/utils/assignRef.js +0 -25
  292. package/build/esm/utils/assignRef.js.map +0 -1
  293. package/build/esm/utils/getCircularIndex.d.ts +0 -1
  294. package/build/esm/utils/getCircularIndex.js +0 -8
  295. package/build/esm/utils/getCircularIndex.js.map +0 -1
  296. package/build/esm/utils/rubberBandClamp.d.ts +0 -2
  297. package/build/esm/utils/rubberBandClamp.js +0 -20
  298. package/build/esm/utils/rubberBandClamp.js.map +0 -1
  299. package/build/esm/utils/wrapEvent.d.ts +0 -3
  300. package/build/esm/utils/wrapEvent.js +0 -16
  301. package/build/esm/utils/wrapEvent.js.map +0 -1
  302. package/build/tsconfig.tsbuildinfo +0 -7270
@@ -1,51 +1,45 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["as", "innerAs", "id", "onContextMenu", "disabled"];
4
1
  import { forwardRef, useId } from 'react';
5
2
  import { useMenuContext } from './context';
6
3
  import { wrapEvent } from '../utils/wrap-event';
7
4
  import { jsx as _jsx } from "react/jsx-runtime";
8
- export var ContextMenuTrigger = /*#__PURE__*/forwardRef(function ContextMenuTrigger(props, forwardedRef) {
9
- var _props$as = props.as,
10
- Comp = _props$as === void 0 ? 'div' : _props$as,
11
- innerAs = props.innerAs,
12
- preferredId = props.id,
13
- onContextMenu = props.onContextMenu,
14
- disabled = props.disabled,
15
- otherProps = _objectWithoutProperties(props, _excluded);
16
-
17
- var _useMenuContext = useMenuContext(),
18
- menuListIdRef = _useMenuContext.menuListIdRef,
19
- open = _useMenuContext.open,
20
- buttonRef = _useMenuContext.buttonRef,
21
- onChange = _useMenuContext.onChange,
22
- setOffsetFn = _useMenuContext.setOffsetFn,
23
- isContextMenu = _useMenuContext.isContextMenu;
24
-
25
- var idGenerated = useId();
26
- var id = preferredId || idGenerated;
27
-
28
- var handleContextMenu = function handleContextMenu(e) {
5
+ export const ContextMenuTrigger = /*#__PURE__*/forwardRef(function ContextMenuTrigger(props, forwardedRef) {
6
+ const {
7
+ as: Comp = 'div',
8
+ innerAs,
9
+ id: preferredId,
10
+ onContextMenu,
11
+ disabled,
12
+ ...otherProps
13
+ } = props;
14
+ const {
15
+ menuListIdRef,
16
+ open,
17
+ buttonRef,
18
+ onChange,
19
+ setOffsetFn,
20
+ isContextMenu
21
+ } = useMenuContext();
22
+ const idGenerated = useId();
23
+ const id = preferredId || idGenerated;
24
+ const handleContextMenu = e => {
29
25
  if (disabled) {
30
26
  return;
31
27
  }
32
-
33
- var rect = e.currentTarget.getBoundingClientRect();
28
+ const rect = e.currentTarget.getBoundingClientRect();
34
29
  isContextMenu.current = true;
35
30
  buttonRef.current = e.currentTarget;
36
31
  onChange(e, true);
37
- var mouseX = e.nativeEvent.x;
38
- var mouseY = e.nativeEvent.y;
39
- setOffsetFn(function () {
40
- return function (_ref) {
41
- var reference = _ref.reference;
42
- return [mouseX - rect.x, mouseY - rect.y - reference.height];
43
- };
32
+ const mouseX = e.nativeEvent.x;
33
+ const mouseY = e.nativeEvent.y;
34
+ setOffsetFn(() => _ref => {
35
+ let {
36
+ reference
37
+ } = _ref;
38
+ return [mouseX - rect.x, mouseY - rect.y - reference.height];
44
39
  });
45
40
  e.preventDefault();
46
41
  };
47
-
48
- return /*#__PURE__*/_jsx(Comp, _extends({
42
+ return /*#__PURE__*/_jsx(Comp, {
49
43
  ref: forwardedRef,
50
44
  as: innerAs,
51
45
  id: id,
@@ -54,7 +48,8 @@ export var ContextMenuTrigger = /*#__PURE__*/forwardRef(function ContextMenuTrig
54
48
  "aria-expanded": open ? true : undefined,
55
49
  "data-menu-trigger": "",
56
50
  onContextMenu: wrapEvent(onContextMenu, handleContextMenu),
57
- disabled: disabled
58
- }, otherProps));
51
+ disabled: disabled,
52
+ ...otherProps
53
+ });
59
54
  });
60
55
  //# sourceMappingURL=ContextMenuTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuTrigger.js","names":["forwardRef","useId","useMenuContext","wrapEvent","ContextMenuTrigger","props","forwardedRef","as","Comp","innerAs","preferredId","id","onContextMenu","disabled","otherProps","menuListIdRef","open","buttonRef","onChange","setOffsetFn","isContextMenu","idGenerated","handleContextMenu","e","rect","currentTarget","getBoundingClientRect","current","mouseX","nativeEvent","x","mouseY","y","reference","height","preventDefault","undefined"],"sources":["../../../src/Menu/ContextMenuTrigger.tsx"],"sourcesContent":["import type {\n ElementType,\n HTMLAttributes,\n MouseEvent as ReactMouseEvent,\n} from 'react';\nimport { forwardRef, useId } from 'react';\n\nimport { useMenuContext } from './context';\nimport { wrapEvent } from '../utils/wrap-event';\nimport type { OffsetsFunction } from '../Popper';\n\nexport type ContextMenuTriggerProps = HTMLAttributes<HTMLElement> & {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n disabled?: boolean;\n};\n\nexport const ContextMenuTrigger = forwardRef<\n HTMLElement,\n ContextMenuTriggerProps\n>(function ContextMenuTrigger(props, forwardedRef) {\n const {\n as: Comp = 'div',\n innerAs,\n id: preferredId,\n onContextMenu,\n disabled,\n ...otherProps\n } = props;\n const {\n menuListIdRef,\n open,\n buttonRef,\n onChange,\n setOffsetFn,\n isContextMenu,\n } = useMenuContext();\n\n const idGenerated = useId();\n const id = preferredId || idGenerated;\n\n const handleContextMenu = (e: ReactMouseEvent<HTMLElement>) => {\n if (disabled) {\n return;\n }\n const rect = e.currentTarget.getBoundingClientRect();\n isContextMenu.current = true;\n\n buttonRef.current = e.currentTarget;\n onChange(e, true);\n\n const mouseX = e.nativeEvent.x;\n const mouseY = e.nativeEvent.y;\n setOffsetFn(\n (): OffsetsFunction =>\n ({ reference }) =>\n [mouseX - rect.x, mouseY - rect.y - reference.height]\n );\n e.preventDefault();\n };\n\n return (\n <Comp\n ref={forwardedRef}\n as={innerAs}\n id={id}\n aria-haspopup={true}\n aria-controls={menuListIdRef.current}\n aria-expanded={open ? true : undefined}\n data-menu-trigger=\"\"\n onContextMenu={wrapEvent(onContextMenu, handleContextMenu)}\n disabled={disabled}\n {...otherProps}\n />\n );\n});\n"],"mappings":";;;AAKA,SAASA,UAAT,EAAqBC,KAArB,QAAkC,OAAlC;AAEA,SAASC,cAAT,QAA+B,WAA/B;AACA,SAASC,SAAT,QAA0B,qBAA1B;;AASA,OAAO,IAAMC,kBAAkB,gBAAGJ,UAAU,CAG1C,SAASI,kBAAT,CAA4BC,KAA5B,EAAmCC,YAAnC,EAAiD;EACjD,gBAOID,KAPJ,CACEE,EADF;EAAA,IACMC,IADN,0BACa,KADb;EAAA,IAEEC,OAFF,GAOIJ,KAPJ,CAEEI,OAFF;EAAA,IAGMC,WAHN,GAOIL,KAPJ,CAGEM,EAHF;EAAA,IAIEC,aAJF,GAOIP,KAPJ,CAIEO,aAJF;EAAA,IAKEC,QALF,GAOIR,KAPJ,CAKEQ,QALF;EAAA,IAMKC,UANL,4BAOIT,KAPJ;;EAQA,sBAOIH,cAAc,EAPlB;EAAA,IACEa,aADF,mBACEA,aADF;EAAA,IAEEC,IAFF,mBAEEA,IAFF;EAAA,IAGEC,SAHF,mBAGEA,SAHF;EAAA,IAIEC,QAJF,mBAIEA,QAJF;EAAA,IAKEC,WALF,mBAKEA,WALF;EAAA,IAMEC,aANF,mBAMEA,aANF;;EASA,IAAMC,WAAW,GAAGpB,KAAK,EAAzB;EACA,IAAMU,EAAE,GAAGD,WAAW,IAAIW,WAA1B;;EAEA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,CAAD,EAAqC;IAC7D,IAAIV,QAAJ,EAAc;MACZ;IACD;;IACD,IAAMW,IAAI,GAAGD,CAAC,CAACE,aAAF,CAAgBC,qBAAhB,EAAb;IACAN,aAAa,CAACO,OAAd,GAAwB,IAAxB;IAEAV,SAAS,CAACU,OAAV,GAAoBJ,CAAC,CAACE,aAAtB;IACAP,QAAQ,CAACK,CAAD,EAAI,IAAJ,CAAR;IAEA,IAAMK,MAAM,GAAGL,CAAC,CAACM,WAAF,CAAcC,CAA7B;IACA,IAAMC,MAAM,GAAGR,CAAC,CAACM,WAAF,CAAcG,CAA7B;IACAb,WAAW,CACT;MAAA,OACE;QAAA,IAAGc,SAAH,QAAGA,SAAH;QAAA,OACE,CAACL,MAAM,GAAGJ,IAAI,CAACM,CAAf,EAAkBC,MAAM,GAAGP,IAAI,CAACQ,CAAd,GAAkBC,SAAS,CAACC,MAA9C,CADF;MAAA,CADF;IAAA,CADS,CAAX;IAKAX,CAAC,CAACY,cAAF;EACD,CAlBD;;EAoBA,oBACE,KAAC,IAAD;IACE,GAAG,EAAE7B,YADP;IAEE,EAAE,EAAEG,OAFN;IAGE,EAAE,EAAEE,EAHN;IAIE,iBAAe,IAJjB;IAKE,iBAAeI,aAAa,CAACY,OAL/B;IAME,iBAAeX,IAAI,GAAG,IAAH,GAAUoB,SAN/B;IAOE,qBAAkB,EAPpB;IAQE,aAAa,EAAEjC,SAAS,CAACS,aAAD,EAAgBU,iBAAhB,CAR1B;IASE,QAAQ,EAAET;EATZ,GAUMC,UAVN,EADF;AAcD,CA1D2C,CAArC"}
1
+ {"version":3,"file":"ContextMenuTrigger.js","names":["forwardRef","useId","useMenuContext","wrapEvent","jsx","_jsx","ContextMenuTrigger","props","forwardedRef","as","Comp","innerAs","id","preferredId","onContextMenu","disabled","otherProps","menuListIdRef","open","buttonRef","onChange","setOffsetFn","isContextMenu","idGenerated","handleContextMenu","e","rect","currentTarget","getBoundingClientRect","current","mouseX","nativeEvent","x","mouseY","y","_ref","reference","height","preventDefault","ref","undefined"],"sources":["../../../src/Menu/ContextMenuTrigger.tsx"],"sourcesContent":["import type {\n ElementType,\n HTMLAttributes,\n MouseEvent as ReactMouseEvent,\n} from 'react';\nimport { forwardRef, useId } from 'react';\n\nimport { useMenuContext } from './context';\nimport { wrapEvent } from '../utils/wrap-event';\nimport type { OffsetsFunction } from '../Popper';\n\nexport type ContextMenuTriggerProps = HTMLAttributes<HTMLElement> & {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n disabled?: boolean;\n};\n\nexport const ContextMenuTrigger = forwardRef<\n HTMLElement,\n ContextMenuTriggerProps\n>(function ContextMenuTrigger(props, forwardedRef) {\n const {\n as: Comp = 'div',\n innerAs,\n id: preferredId,\n onContextMenu,\n disabled,\n ...otherProps\n } = props;\n const {\n menuListIdRef,\n open,\n buttonRef,\n onChange,\n setOffsetFn,\n isContextMenu,\n } = useMenuContext();\n\n const idGenerated = useId();\n const id = preferredId || idGenerated;\n\n const handleContextMenu = (e: ReactMouseEvent<HTMLElement>) => {\n if (disabled) {\n return;\n }\n const rect = e.currentTarget.getBoundingClientRect();\n isContextMenu.current = true;\n\n buttonRef.current = e.currentTarget;\n onChange(e, true);\n\n const mouseX = e.nativeEvent.x;\n const mouseY = e.nativeEvent.y;\n setOffsetFn(\n (): OffsetsFunction =>\n ({ reference }) =>\n [mouseX - rect.x, mouseY - rect.y - reference.height]\n );\n e.preventDefault();\n };\n\n return (\n <Comp\n ref={forwardedRef}\n as={innerAs}\n id={id}\n aria-haspopup={true}\n aria-controls={menuListIdRef.current}\n aria-expanded={open ? true : undefined}\n data-menu-trigger=\"\"\n onContextMenu={wrapEvent(onContextMenu, handleContextMenu)}\n disabled={disabled}\n {...otherProps}\n />\n );\n});\n"],"mappings":"AAKA,SAASA,UAAU,EAAEC,KAAK,QAAQ,OAAO;AAEzC,SAASC,cAAc,QAAQ,WAAW;AAC1C,SAASC,SAAS,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAShD,OAAO,MAAMC,kBAAkB,gBAAGN,UAAU,CAG1C,SAASM,kBAAkBA,CAACC,KAAK,EAAEC,YAAY,EAAE;EACjD,MAAM;IACJC,EAAE,EAAEC,IAAI,GAAG,KAAK;IAChBC,OAAO;IACPC,EAAE,EAAEC,WAAW;IACfC,aAAa;IACbC,QAAQ;IACR,GAAGC;EACL,CAAC,GAAGT,KAAK;EACT,MAAM;IACJU,aAAa;IACbC,IAAI;IACJC,SAAS;IACTC,QAAQ;IACRC,WAAW;IACXC;EACF,CAAC,GAAGpB,cAAc,CAAC,CAAC;EAEpB,MAAMqB,WAAW,GAAGtB,KAAK,CAAC,CAAC;EAC3B,MAAMW,EAAE,GAAGC,WAAW,IAAIU,WAAW;EAErC,MAAMC,iBAAiB,GAAIC,CAA+B,IAAK;IAC7D,IAAIV,QAAQ,EAAE;MACZ;IACF;IACA,MAAMW,IAAI,GAAGD,CAAC,CAACE,aAAa,CAACC,qBAAqB,CAAC,CAAC;IACpDN,aAAa,CAACO,OAAO,GAAG,IAAI;IAE5BV,SAAS,CAACU,OAAO,GAAGJ,CAAC,CAACE,aAAa;IACnCP,QAAQ,CAACK,CAAC,EAAE,IAAI,CAAC;IAEjB,MAAMK,MAAM,GAAGL,CAAC,CAACM,WAAW,CAACC,CAAC;IAC9B,MAAMC,MAAM,GAAGR,CAAC,CAACM,WAAW,CAACG,CAAC;IAC9Bb,WAAW,CACT,MACEc,IAAA;MAAA,IAAC;QAAEC;MAAU,CAAC,GAAAD,IAAA;MAAA,OACZ,CAACL,MAAM,GAAGJ,IAAI,CAACM,CAAC,EAAEC,MAAM,GAAGP,IAAI,CAACQ,CAAC,GAAGE,SAAS,CAACC,MAAM,CAAC;IAAA,CAC3D,CAAC;IACDZ,CAAC,CAACa,cAAc,CAAC,CAAC;EACpB,CAAC;EAED,oBACEjC,IAAA,CAACK,IAAI;IACH6B,GAAG,EAAE/B,YAAa;IAClBC,EAAE,EAAEE,OAAQ;IACZC,EAAE,EAAEA,EAAG;IACP,iBAAe,IAAK;IACpB,iBAAeK,aAAa,CAACY,OAAQ;IACrC,iBAAeX,IAAI,GAAG,IAAI,GAAGsB,SAAU;IACvC,qBAAkB,EAAE;IACpB1B,aAAa,EAAEX,SAAS,CAACW,aAAa,EAAEU,iBAAiB,CAAE;IAC3DT,QAAQ,EAAEA,QAAS;IAAA,GACfC;EAAU,CACf,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
@@ -1,63 +1,47 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["as", "innerAs", "open", "defaultOpen", "onChange"];
5
1
  import { useState, forwardRef, useRef, Fragment, useId } from 'react';
6
2
  import { MenuProvider } from './context';
7
3
  import { useControlledState } from '../hooks';
8
4
  import { jsx as _jsx } from "react/jsx-runtime";
9
- export var Menu = /*#__PURE__*/forwardRef(function Menu(props, forwardedRef) {
10
- var _props$as = props.as,
11
- Comp = _props$as === void 0 ? Fragment : _props$as,
12
- innerAs = props.innerAs,
13
- openProp = props.open,
14
- _props$defaultOpen = props.defaultOpen,
15
- defaultOpen = _props$defaultOpen === void 0 ? false : _props$defaultOpen,
16
- onChangeProp = props.onChange,
17
- otherProps = _objectWithoutProperties(props, _excluded);
18
-
19
- var menuListIdRef = useRef();
20
- var openWithArrowKeyRef = useRef(null);
21
- var buttonRef = useRef(null);
22
-
23
- var _useControlledState = useControlledState(openProp, onChangeProp, defaultOpen, function (setState) {
24
- return function (e, isOpen) {
25
- setState(isOpen);
26
- };
27
- }),
28
- _useControlledState2 = _slicedToArray(_useControlledState, 2),
29
- open = _useControlledState2[0],
30
- onChange = _useControlledState2[1];
31
-
32
- var _useState = useState(undefined),
33
- _useState2 = _slicedToArray(_useState, 2),
34
- offsetFn = _useState2[0],
35
- setOffsetFn = _useState2[1];
36
-
5
+ export const Menu = /*#__PURE__*/forwardRef(function Menu(props, forwardedRef) {
6
+ const {
7
+ as: Comp = Fragment,
8
+ innerAs,
9
+ open: openProp,
10
+ defaultOpen = false,
11
+ onChange: onChangeProp,
12
+ ...otherProps
13
+ } = props;
14
+ const menuListIdRef = useRef(undefined);
15
+ const openWithArrowKeyRef = useRef(null);
16
+ const buttonRef = useRef(null);
17
+ const [open, onChange] = useControlledState(openProp, onChangeProp, defaultOpen, setState => (e, isOpen) => {
18
+ setState(isOpen);
19
+ });
20
+ const [offsetFn, setOffsetFn] = useState(undefined);
37
21
  menuListIdRef.current = useId();
38
- var isContextMenu = useRef(false);
39
-
22
+ const isContextMenu = useRef(false);
40
23
  if (!open && offsetFn) {
41
24
  setOffsetFn(undefined);
42
25
  }
43
-
44
- var value = {
45
- menuListIdRef: menuListIdRef,
46
- openWithArrowKeyRef: openWithArrowKeyRef,
47
- open: open,
48
- onChange: onChange,
49
- buttonRef: buttonRef,
50
- offsetFn: offsetFn,
51
- setOffsetFn: setOffsetFn,
52
- isContextMenu: isContextMenu
26
+ const value = {
27
+ menuListIdRef,
28
+ openWithArrowKeyRef,
29
+ open,
30
+ onChange,
31
+ buttonRef,
32
+ offsetFn,
33
+ setOffsetFn,
34
+ isContextMenu
53
35
  };
54
36
  return /*#__PURE__*/_jsx(MenuProvider, {
55
37
  value: value,
56
- children: /*#__PURE__*/_jsx(Comp, _extends(_extends({}, Comp !== Fragment ? {
57
- as: innerAs
58
- } : {}), {}, {
59
- ref: forwardedRef
60
- }, otherProps))
38
+ children: /*#__PURE__*/_jsx(Comp, {
39
+ ...(Comp !== Fragment ? {
40
+ as: innerAs,
41
+ ref: forwardedRef
42
+ } : {}),
43
+ ...otherProps
44
+ })
61
45
  });
62
46
  });
63
47
  //# sourceMappingURL=Menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","names":["useState","forwardRef","useRef","Fragment","useId","MenuProvider","useControlledState","Menu","props","forwardedRef","as","Comp","innerAs","openProp","open","defaultOpen","onChangeProp","onChange","otherProps","menuListIdRef","openWithArrowKeyRef","buttonRef","setState","e","isOpen","undefined","offsetFn","setOffsetFn","current","isContextMenu","value"],"sources":["../../../src/Menu/Menu.tsx"],"sourcesContent":["import type {\n KeyboardEvent,\n MouseEvent,\n PointerEvent,\n ReactNode,\n ElementType,\n} from 'react';\nimport { useState, forwardRef, useRef, Fragment, useId } from 'react';\n\nimport type { MenuContextProps } from './context';\nimport { MenuProvider } from './context';\nimport { useControlledState } from '../hooks';\nimport type { OffsetsFunction } from '../Popper';\n\nexport interface MenuProps {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n children?: ReactNode;\n onChange?: (\n e:\n | KeyboardEvent<HTMLElement>\n | MouseEvent<HTMLElement>\n | PointerEvent<HTMLElement>,\n isOpen: boolean\n ) => void;\n open?: boolean;\n defaultOpen?: boolean;\n}\n\nexport const Menu = forwardRef<HTMLDivElement, MenuProps>(function Menu(\n props,\n forwardedRef\n) {\n const {\n as: Comp = Fragment,\n innerAs,\n open: openProp,\n defaultOpen = false,\n onChange: onChangeProp,\n ...otherProps\n } = props;\n const menuListIdRef = useRef<string>();\n const openWithArrowKeyRef = useRef<'ArrowUp' | 'ArrowDown' | null>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const [open, onChange] = useControlledState(\n openProp,\n onChangeProp,\n defaultOpen,\n (setState) => (e, isOpen) => {\n setState(isOpen);\n }\n );\n const [offsetFn, setOffsetFn] = useState<OffsetsFunction | undefined>(\n undefined\n );\n menuListIdRef.current = useId();\n const isContextMenu = useRef(false);\n\n if (!open && offsetFn) {\n setOffsetFn(undefined);\n }\n\n const value: MenuContextProps = {\n menuListIdRef,\n openWithArrowKeyRef,\n open,\n onChange,\n buttonRef,\n offsetFn,\n setOffsetFn,\n isContextMenu,\n };\n\n return (\n <MenuProvider value={value}>\n <Comp\n {...(Comp !== Fragment ? { as: innerAs } : {})}\n ref={forwardedRef}\n {...otherProps}\n />\n </MenuProvider>\n );\n});\n"],"mappings":";;;;AAOA,SAASA,QAAT,EAAmBC,UAAnB,EAA+BC,MAA/B,EAAuCC,QAAvC,EAAiDC,KAAjD,QAA8D,OAA9D;AAGA,SAASC,YAAT,QAA6B,WAA7B;AACA,SAASC,kBAAT,QAAmC,UAAnC;;AAkBA,OAAO,IAAMC,IAAI,gBAAGN,UAAU,CAA4B,SAASM,IAAT,CACxDC,KADwD,EAExDC,YAFwD,EAGxD;EACA,gBAOID,KAPJ,CACEE,EADF;EAAA,IACMC,IADN,0BACaR,QADb;EAAA,IAEES,OAFF,GAOIJ,KAPJ,CAEEI,OAFF;EAAA,IAGQC,QAHR,GAOIL,KAPJ,CAGEM,IAHF;EAAA,yBAOIN,KAPJ,CAIEO,WAJF;EAAA,IAIEA,WAJF,mCAIgB,KAJhB;EAAA,IAKYC,YALZ,GAOIR,KAPJ,CAKES,QALF;EAAA,IAMKC,UANL,4BAOIV,KAPJ;;EAQA,IAAMW,aAAa,GAAGjB,MAAM,EAA5B;EACA,IAAMkB,mBAAmB,GAAGlB,MAAM,CAAiC,IAAjC,CAAlC;EACA,IAAMmB,SAAS,GAAGnB,MAAM,CAAoB,IAApB,CAAxB;;EACA,0BAAyBI,kBAAkB,CACzCO,QADyC,EAEzCG,YAFyC,EAGzCD,WAHyC,EAIzC,UAACO,QAAD;IAAA,OAAc,UAACC,CAAD,EAAIC,MAAJ,EAAe;MAC3BF,QAAQ,CAACE,MAAD,CAAR;IACD,CAFD;EAAA,CAJyC,CAA3C;EAAA;EAAA,IAAOV,IAAP;EAAA,IAAaG,QAAb;;EAQA,gBAAgCjB,QAAQ,CACtCyB,SADsC,CAAxC;EAAA;EAAA,IAAOC,QAAP;EAAA,IAAiBC,WAAjB;;EAGAR,aAAa,CAACS,OAAd,GAAwBxB,KAAK,EAA7B;EACA,IAAMyB,aAAa,GAAG3B,MAAM,CAAC,KAAD,CAA5B;;EAEA,IAAI,CAACY,IAAD,IAASY,QAAb,EAAuB;IACrBC,WAAW,CAACF,SAAD,CAAX;EACD;;EAED,IAAMK,KAAuB,GAAG;IAC9BX,aAAa,EAAbA,aAD8B;IAE9BC,mBAAmB,EAAnBA,mBAF8B;IAG9BN,IAAI,EAAJA,IAH8B;IAI9BG,QAAQ,EAARA,QAJ8B;IAK9BI,SAAS,EAATA,SAL8B;IAM9BK,QAAQ,EAARA,QAN8B;IAO9BC,WAAW,EAAXA,WAP8B;IAQ9BE,aAAa,EAAbA;EAR8B,CAAhC;EAWA,oBACE,KAAC,YAAD;IAAc,KAAK,EAAEC,KAArB;IAAA,uBACE,KAAC,IAAD,wBACOnB,IAAI,KAAKR,QAAT,GAAoB;MAAEO,EAAE,EAAEE;IAAN,CAApB,GAAsC,EAD7C;MAEE,GAAG,EAAEH;IAFP,GAGMS,UAHN;EADF,EADF;AASD,CArD6B,CAAvB"}
1
+ {"version":3,"file":"Menu.js","names":["useState","forwardRef","useRef","Fragment","useId","MenuProvider","useControlledState","jsx","_jsx","Menu","props","forwardedRef","as","Comp","innerAs","open","openProp","defaultOpen","onChange","onChangeProp","otherProps","menuListIdRef","undefined","openWithArrowKeyRef","buttonRef","setState","e","isOpen","offsetFn","setOffsetFn","current","isContextMenu","value","children","ref"],"sources":["../../../src/Menu/Menu.tsx"],"sourcesContent":["import type {\n KeyboardEvent,\n MouseEvent,\n PointerEvent,\n ReactNode,\n ElementType,\n} from 'react';\nimport { useState, forwardRef, useRef, Fragment, useId } from 'react';\n\nimport type { MenuContextProps } from './context';\nimport { MenuProvider } from './context';\nimport { useControlledState } from '../hooks';\nimport type { OffsetsFunction } from '../Popper';\n\nexport interface MenuProps {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n children?: ReactNode;\n onChange?: (\n e:\n | KeyboardEvent<HTMLElement>\n | MouseEvent<HTMLElement>\n | PointerEvent<HTMLElement>,\n isOpen: boolean\n ) => void;\n open?: boolean;\n defaultOpen?: boolean;\n}\n\nexport const Menu = forwardRef<HTMLDivElement, MenuProps>(function Menu(\n props,\n forwardedRef\n) {\n const {\n as: Comp = Fragment,\n innerAs,\n open: openProp,\n defaultOpen = false,\n onChange: onChangeProp,\n ...otherProps\n } = props;\n const menuListIdRef = useRef<string | undefined>(undefined);\n const openWithArrowKeyRef = useRef<'ArrowUp' | 'ArrowDown' | null>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const [open, onChange] = useControlledState(\n openProp,\n onChangeProp,\n defaultOpen,\n (setState) => (e, isOpen) => {\n setState(isOpen);\n }\n );\n const [offsetFn, setOffsetFn] = useState<OffsetsFunction | undefined>(\n undefined\n );\n menuListIdRef.current = useId();\n const isContextMenu = useRef(false);\n\n if (!open && offsetFn) {\n setOffsetFn(undefined);\n }\n\n const value: MenuContextProps = {\n menuListIdRef,\n openWithArrowKeyRef,\n open,\n onChange,\n buttonRef,\n offsetFn,\n setOffsetFn,\n isContextMenu,\n };\n\n return (\n <MenuProvider value={value}>\n <Comp\n {...(Comp !== Fragment ? { as: innerAs, ref: forwardedRef } : {})}\n {...otherProps}\n />\n </MenuProvider>\n );\n});\n"],"mappings":"AAOA,SAASA,QAAQ,EAAEC,UAAU,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,KAAK,QAAQ,OAAO;AAGrE,SAASC,YAAY,QAAQ,WAAW;AACxC,SAASC,kBAAkB,QAAQ,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAkB9C,OAAO,MAAMC,IAAI,gBAAGR,UAAU,CAA4B,SAASQ,IAAIA,CACrEC,KAAK,EACLC,YAAY,EACZ;EACA,MAAM;IACJC,EAAE,EAAEC,IAAI,GAAGV,QAAQ;IACnBW,OAAO;IACPC,IAAI,EAAEC,QAAQ;IACdC,WAAW,GAAG,KAAK;IACnBC,QAAQ,EAAEC,YAAY;IACtB,GAAGC;EACL,CAAC,GAAGV,KAAK;EACT,MAAMW,aAAa,GAAGnB,MAAM,CAAqBoB,SAAS,CAAC;EAC3D,MAAMC,mBAAmB,GAAGrB,MAAM,CAAiC,IAAI,CAAC;EACxE,MAAMsB,SAAS,GAAGtB,MAAM,CAAoB,IAAI,CAAC;EACjD,MAAM,CAACa,IAAI,EAAEG,QAAQ,CAAC,GAAGZ,kBAAkB,CACzCU,QAAQ,EACRG,YAAY,EACZF,WAAW,EACVQ,QAAQ,IAAK,CAACC,CAAC,EAAEC,MAAM,KAAK;IAC3BF,QAAQ,CAACE,MAAM,CAAC;EAClB,CACF,CAAC;EACD,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG7B,QAAQ,CACtCsB,SACF,CAAC;EACDD,aAAa,CAACS,OAAO,GAAG1B,KAAK,CAAC,CAAC;EAC/B,MAAM2B,aAAa,GAAG7B,MAAM,CAAC,KAAK,CAAC;EAEnC,IAAI,CAACa,IAAI,IAAIa,QAAQ,EAAE;IACrBC,WAAW,CAACP,SAAS,CAAC;EACxB;EAEA,MAAMU,KAAuB,GAAG;IAC9BX,aAAa;IACbE,mBAAmB;IACnBR,IAAI;IACJG,QAAQ;IACRM,SAAS;IACTI,QAAQ;IACRC,WAAW;IACXE;EACF,CAAC;EAED,oBACEvB,IAAA,CAACH,YAAY;IAAC2B,KAAK,EAAEA,KAAM;IAAAC,QAAA,eACzBzB,IAAA,CAACK,IAAI;MAAA,IACEA,IAAI,KAAKV,QAAQ,GAAG;QAAES,EAAE,EAAEE,OAAO;QAAEoB,GAAG,EAAEvB;MAAa,CAAC,GAAG,CAAC,CAAC;MAAA,GAC5DS;IAAU,CACf;EAAC,CACU,CAAC;AAEnB,CAAC,CAAC","ignoreList":[]}
@@ -1,11 +1,11 @@
1
1
  import type { ButtonHTMLAttributes, ElementType, KeyboardEvent, MouseEvent } from 'react';
2
- export declare type MenuButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
2
+ export type MenuButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
3
3
  as?: ElementType<any>;
4
4
  innerAs?: ElementType<any>;
5
5
  onClick?: (e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>) => void;
6
6
  };
7
7
  export declare const MenuButton: import("react").ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & {
8
- as?: ElementType<any> | undefined;
9
- innerAs?: ElementType<any> | undefined;
10
- onClick?: ((e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>) => void) | undefined;
8
+ as?: ElementType<any>;
9
+ innerAs?: ElementType<any>;
10
+ onClick?: (e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>) => void;
11
11
  } & import("react").RefAttributes<HTMLButtonElement>>;
@@ -1,68 +1,51 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["as", "innerAs", "id", "onClick", "onKeyDown", "disabled"];
4
1
  import { forwardRef, useId } from 'react';
5
2
  import { useMenuContext } from './context';
6
3
  import { wrapEvent } from '../utils/wrap-event';
7
4
  import { jsx as _jsx } from "react/jsx-runtime";
8
- export var MenuButton = /*#__PURE__*/forwardRef(function MenuButton(props, forwardedRef) {
9
- var _props$as = props.as,
10
- Comp = _props$as === void 0 ? 'button' : _props$as,
11
- innerAs = props.innerAs,
12
- preferredId = props.id,
13
- onClick = props.onClick,
14
- onKeyDown = props.onKeyDown,
15
- disabled = props.disabled,
16
- otherProps = _objectWithoutProperties(props, _excluded);
17
-
18
- var _useMenuContext = useMenuContext(),
19
- menuListIdRef = _useMenuContext.menuListIdRef,
20
- openWithArrowKeyRef = _useMenuContext.openWithArrowKeyRef,
21
- open = _useMenuContext.open,
22
- buttonRef = _useMenuContext.buttonRef,
23
- onChange = _useMenuContext.onChange;
24
-
25
- var buttonIdGenerated = useId();
26
- var buttonId = preferredId || buttonIdGenerated;
27
-
28
- var handleKeyDown = function handleKeyDown(e) {
5
+ export const MenuButton = /*#__PURE__*/forwardRef(function MenuButton(props, forwardedRef) {
6
+ const {
7
+ as: Comp = 'button',
8
+ innerAs,
9
+ id: preferredId,
10
+ onClick,
11
+ onKeyDown,
12
+ disabled,
13
+ ...otherProps
14
+ } = props;
15
+ const {
16
+ menuListIdRef,
17
+ openWithArrowKeyRef,
18
+ open,
19
+ buttonRef,
20
+ onChange
21
+ } = useMenuContext();
22
+ const buttonIdGenerated = useId();
23
+ const buttonId = preferredId || buttonIdGenerated;
24
+ const handleKeyDown = e => {
29
25
  if (disabled) {
30
26
  return;
31
27
  }
32
-
33
28
  buttonRef.current = e.currentTarget;
34
-
35
- var isArrowKey = function isArrowKey() {
36
- return ['ArrowUp', 'ArrowDown'].includes(e.key);
37
- };
38
-
39
- var isEnterKey = function isEnterKey() {
40
- return [' ', 'Enter'].includes(e.key);
41
- };
42
-
43
- var openedWithArrow = isArrowKey();
44
-
29
+ const isArrowKey = () => ['ArrowUp', 'ArrowDown'].includes(e.key);
30
+ const isEnterKey = () => [' ', 'Enter'].includes(e.key);
31
+ const openedWithArrow = isArrowKey();
45
32
  if (openedWithArrow || isEnterKey()) {
46
33
  if (openedWithArrow) {
47
34
  // Used to make it open at the end or begining of the list
48
35
  openWithArrowKeyRef.current = e.key;
49
36
  }
50
-
51
37
  onChange(e, true);
52
38
  e.preventDefault();
53
39
  }
54
40
  };
55
-
56
- var handleClick = function handleClick(e) {
41
+ const handleClick = e => {
57
42
  if (disabled) {
58
43
  return;
59
44
  }
60
-
61
45
  buttonRef.current = e.currentTarget;
62
46
  onChange(e, !open);
63
47
  };
64
-
65
- return /*#__PURE__*/_jsx(Comp, _extends({
48
+ return /*#__PURE__*/_jsx(Comp, {
66
49
  ref: forwardedRef,
67
50
  as: innerAs,
68
51
  id: buttonId,
@@ -74,7 +57,8 @@ export var MenuButton = /*#__PURE__*/forwardRef(function MenuButton(props, forwa
74
57
  "data-menu-button": "",
75
58
  onClick: wrapEvent(onClick, handleClick),
76
59
  onKeyDown: wrapEvent(onKeyDown, handleKeyDown),
77
- disabled: disabled
78
- }, otherProps));
60
+ disabled: disabled,
61
+ ...otherProps
62
+ });
79
63
  });
80
64
  //# sourceMappingURL=MenuButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuButton.js","names":["forwardRef","useId","useMenuContext","wrapEvent","MenuButton","props","forwardedRef","as","Comp","innerAs","preferredId","id","onClick","onKeyDown","disabled","otherProps","menuListIdRef","openWithArrowKeyRef","open","buttonRef","onChange","buttonIdGenerated","buttonId","handleKeyDown","e","current","currentTarget","isArrowKey","includes","key","isEnterKey","openedWithArrow","preventDefault","handleClick","undefined"],"sources":["../../../src/Menu/MenuButton.tsx"],"sourcesContent":["import type {\n ButtonHTMLAttributes,\n ElementType,\n KeyboardEvent,\n MouseEvent,\n} from 'react';\nimport { forwardRef, useId } from 'react';\n\nimport { useMenuContext } from './context';\nimport { wrapEvent } from '../utils/wrap-event';\n\nexport type MenuButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n onClick?: (\n e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>\n ) => void;\n};\n\nexport const MenuButton = forwardRef<HTMLButtonElement, MenuButtonProps>(\n function MenuButton(props, forwardedRef) {\n const {\n as: Comp = 'button',\n innerAs,\n id: preferredId,\n onClick,\n onKeyDown,\n disabled,\n ...otherProps\n } = props;\n const { menuListIdRef, openWithArrowKeyRef, open, buttonRef, onChange } =\n useMenuContext();\n\n const buttonIdGenerated = useId();\n const buttonId = preferredId || buttonIdGenerated;\n\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n buttonRef.current = e.currentTarget;\n\n const isArrowKey = () => ['ArrowUp', 'ArrowDown'].includes(e.key);\n const isEnterKey = () => [' ', 'Enter'].includes(e.key);\n\n const openedWithArrow = isArrowKey();\n if (openedWithArrow || isEnterKey()) {\n if (openedWithArrow) {\n // Used to make it open at the end or begining of the list\n openWithArrowKeyRef.current = e.key;\n }\n onChange(e, true);\n e.preventDefault();\n }\n };\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n buttonRef.current = e.currentTarget;\n onChange(e, !open);\n };\n\n return (\n <Comp\n ref={forwardedRef}\n as={innerAs}\n id={buttonId}\n role=\"button\"\n type=\"button\"\n aria-haspopup={true}\n aria-controls={menuListIdRef.current}\n aria-expanded={open ? true : undefined}\n data-menu-button=\"\"\n onClick={wrapEvent(onClick, handleClick)}\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\n disabled={disabled}\n {...otherProps}\n />\n );\n }\n);\n"],"mappings":";;;AAMA,SAASA,UAAT,EAAqBC,KAArB,QAAkC,OAAlC;AAEA,SAASC,cAAT,QAA+B,WAA/B;AACA,SAASC,SAAT,QAA0B,qBAA1B;;AAUA,OAAO,IAAMC,UAAU,gBAAGJ,UAAU,CAClC,SAASI,UAAT,CAAoBC,KAApB,EAA2BC,YAA3B,EAAyC;EACvC,gBAQID,KARJ,CACEE,EADF;EAAA,IACMC,IADN,0BACa,QADb;EAAA,IAEEC,OAFF,GAQIJ,KARJ,CAEEI,OAFF;EAAA,IAGMC,WAHN,GAQIL,KARJ,CAGEM,EAHF;EAAA,IAIEC,OAJF,GAQIP,KARJ,CAIEO,OAJF;EAAA,IAKEC,SALF,GAQIR,KARJ,CAKEQ,SALF;EAAA,IAMEC,QANF,GAQIT,KARJ,CAMES,QANF;EAAA,IAOKC,UAPL,4BAQIV,KARJ;;EASA,sBACEH,cAAc,EADhB;EAAA,IAAQc,aAAR,mBAAQA,aAAR;EAAA,IAAuBC,mBAAvB,mBAAuBA,mBAAvB;EAAA,IAA4CC,IAA5C,mBAA4CA,IAA5C;EAAA,IAAkDC,SAAlD,mBAAkDA,SAAlD;EAAA,IAA6DC,QAA7D,mBAA6DA,QAA7D;;EAGA,IAAMC,iBAAiB,GAAGpB,KAAK,EAA/B;EACA,IAAMqB,QAAQ,GAAGZ,WAAW,IAAIW,iBAAhC;;EAEA,IAAME,aAAa,GAAG,SAAhBA,aAAgB,CAACC,CAAD,EAAyC;IAC7D,IAAIV,QAAJ,EAAc;MACZ;IACD;;IACDK,SAAS,CAACM,OAAV,GAAoBD,CAAC,CAACE,aAAtB;;IAEA,IAAMC,UAAU,GAAG,SAAbA,UAAa;MAAA,OAAM,CAAC,SAAD,EAAY,WAAZ,EAAyBC,QAAzB,CAAkCJ,CAAC,CAACK,GAApC,CAAN;IAAA,CAAnB;;IACA,IAAMC,UAAU,GAAG,SAAbA,UAAa;MAAA,OAAM,CAAC,GAAD,EAAM,OAAN,EAAeF,QAAf,CAAwBJ,CAAC,CAACK,GAA1B,CAAN;IAAA,CAAnB;;IAEA,IAAME,eAAe,GAAGJ,UAAU,EAAlC;;IACA,IAAII,eAAe,IAAID,UAAU,EAAjC,EAAqC;MACnC,IAAIC,eAAJ,EAAqB;QACnB;QACAd,mBAAmB,CAACQ,OAApB,GAA8BD,CAAC,CAACK,GAAhC;MACD;;MACDT,QAAQ,CAACI,CAAD,EAAI,IAAJ,CAAR;MACAA,CAAC,CAACQ,cAAF;IACD;EACF,CAlBD;;EAoBA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACT,CAAD,EAAsC;IACxD,IAAIV,QAAJ,EAAc;MACZ;IACD;;IACDK,SAAS,CAACM,OAAV,GAAoBD,CAAC,CAACE,aAAtB;IACAN,QAAQ,CAACI,CAAD,EAAI,CAACN,IAAL,CAAR;EACD,CAND;;EAQA,oBACE,KAAC,IAAD;IACE,GAAG,EAAEZ,YADP;IAEE,EAAE,EAAEG,OAFN;IAGE,EAAE,EAAEa,QAHN;IAIE,IAAI,EAAC,QAJP;IAKE,IAAI,EAAC,QALP;IAME,iBAAe,IANjB;IAOE,iBAAeN,aAAa,CAACS,OAP/B;IAQE,iBAAeP,IAAI,GAAG,IAAH,GAAUgB,SAR/B;IASE,oBAAiB,EATnB;IAUE,OAAO,EAAE/B,SAAS,CAACS,OAAD,EAAUqB,WAAV,CAVpB;IAWE,SAAS,EAAE9B,SAAS,CAACU,SAAD,EAAYU,aAAZ,CAXtB;IAYE,QAAQ,EAAET;EAZZ,GAaMC,UAbN,EADF;AAiBD,CA9DiC,CAA7B"}
1
+ {"version":3,"file":"MenuButton.js","names":["forwardRef","useId","useMenuContext","wrapEvent","jsx","_jsx","MenuButton","props","forwardedRef","as","Comp","innerAs","id","preferredId","onClick","onKeyDown","disabled","otherProps","menuListIdRef","openWithArrowKeyRef","open","buttonRef","onChange","buttonIdGenerated","buttonId","handleKeyDown","e","current","currentTarget","isArrowKey","includes","key","isEnterKey","openedWithArrow","preventDefault","handleClick","ref","role","type","undefined"],"sources":["../../../src/Menu/MenuButton.tsx"],"sourcesContent":["import type {\n ButtonHTMLAttributes,\n ElementType,\n KeyboardEvent,\n MouseEvent,\n} from 'react';\nimport { forwardRef, useId } from 'react';\n\nimport { useMenuContext } from './context';\nimport { wrapEvent } from '../utils/wrap-event';\n\nexport type MenuButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n onClick?: (\n e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>\n ) => void;\n};\n\nexport const MenuButton = forwardRef<HTMLButtonElement, MenuButtonProps>(\n function MenuButton(props, forwardedRef) {\n const {\n as: Comp = 'button',\n innerAs,\n id: preferredId,\n onClick,\n onKeyDown,\n disabled,\n ...otherProps\n } = props;\n const { menuListIdRef, openWithArrowKeyRef, open, buttonRef, onChange } =\n useMenuContext();\n\n const buttonIdGenerated = useId();\n const buttonId = preferredId || buttonIdGenerated;\n\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n buttonRef.current = e.currentTarget;\n\n const isArrowKey = () => ['ArrowUp', 'ArrowDown'].includes(e.key);\n const isEnterKey = () => [' ', 'Enter'].includes(e.key);\n\n const openedWithArrow = isArrowKey();\n if (openedWithArrow || isEnterKey()) {\n if (openedWithArrow) {\n // Used to make it open at the end or begining of the list\n openWithArrowKeyRef.current = e.key;\n }\n onChange(e, true);\n e.preventDefault();\n }\n };\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n buttonRef.current = e.currentTarget;\n onChange(e, !open);\n };\n\n return (\n <Comp\n ref={forwardedRef}\n as={innerAs}\n id={buttonId}\n role=\"button\"\n type=\"button\"\n aria-haspopup={true}\n aria-controls={menuListIdRef.current}\n aria-expanded={open ? true : undefined}\n data-menu-button=\"\"\n onClick={wrapEvent(onClick, handleClick)}\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\n disabled={disabled}\n {...otherProps}\n />\n );\n }\n);\n"],"mappings":"AAMA,SAASA,UAAU,EAAEC,KAAK,QAAQ,OAAO;AAEzC,SAASC,cAAc,QAAQ,WAAW;AAC1C,SAASC,SAAS,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUhD,OAAO,MAAMC,UAAU,gBAAGN,UAAU,CAClC,SAASM,UAAUA,CAACC,KAAK,EAAEC,YAAY,EAAE;EACvC,MAAM;IACJC,EAAE,EAAEC,IAAI,GAAG,QAAQ;IACnBC,OAAO;IACPC,EAAE,EAAEC,WAAW;IACfC,OAAO;IACPC,SAAS;IACTC,QAAQ;IACR,GAAGC;EACL,CAAC,GAAGV,KAAK;EACT,MAAM;IAAEW,aAAa;IAAEC,mBAAmB;IAAEC,IAAI;IAAEC,SAAS;IAAEC;EAAS,CAAC,GACrEpB,cAAc,CAAC,CAAC;EAElB,MAAMqB,iBAAiB,GAAGtB,KAAK,CAAC,CAAC;EACjC,MAAMuB,QAAQ,GAAGX,WAAW,IAAIU,iBAAiB;EAEjD,MAAME,aAAa,GAAIC,CAAmC,IAAK;IAC7D,IAAIV,QAAQ,EAAE;MACZ;IACF;IACAK,SAAS,CAACM,OAAO,GAAGD,CAAC,CAACE,aAAa;IAEnC,MAAMC,UAAU,GAAGA,CAAA,KAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAACC,QAAQ,CAACJ,CAAC,CAACK,GAAG,CAAC;IACjE,MAAMC,UAAU,GAAGA,CAAA,KAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAACF,QAAQ,CAACJ,CAAC,CAACK,GAAG,CAAC;IAEvD,MAAME,eAAe,GAAGJ,UAAU,CAAC,CAAC;IACpC,IAAII,eAAe,IAAID,UAAU,CAAC,CAAC,EAAE;MACnC,IAAIC,eAAe,EAAE;QACnB;QACAd,mBAAmB,CAACQ,OAAO,GAAGD,CAAC,CAACK,GAAG;MACrC;MACAT,QAAQ,CAACI,CAAC,EAAE,IAAI,CAAC;MACjBA,CAAC,CAACQ,cAAc,CAAC,CAAC;IACpB;EACF,CAAC;EAED,MAAMC,WAAW,GAAIT,CAAgC,IAAK;IACxD,IAAIV,QAAQ,EAAE;MACZ;IACF;IACAK,SAAS,CAACM,OAAO,GAAGD,CAAC,CAACE,aAAa;IACnCN,QAAQ,CAACI,CAAC,EAAE,CAACN,IAAI,CAAC;EACpB,CAAC;EAED,oBACEf,IAAA,CAACK,IAAI;IACH0B,GAAG,EAAE5B,YAAa;IAClBC,EAAE,EAAEE,OAAQ;IACZC,EAAE,EAAEY,QAAS;IACba,IAAI,EAAC,QAAQ;IACbC,IAAI,EAAC,QAAQ;IACb,iBAAe,IAAK;IACpB,iBAAepB,aAAa,CAACS,OAAQ;IACrC,iBAAeP,IAAI,GAAG,IAAI,GAAGmB,SAAU;IACvC,oBAAiB,EAAE;IACnBzB,OAAO,EAAEX,SAAS,CAACW,OAAO,EAAEqB,WAAW,CAAE;IACzCpB,SAAS,EAAEZ,SAAS,CAACY,SAAS,EAAEU,aAAa,CAAE;IAC/CT,QAAQ,EAAEA,QAAS;IAAA,GACfC;EAAU,CACf,CAAC;AAEN,CACF,CAAC","ignoreList":[]}
@@ -1,61 +1,51 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["as", "innerAs", "disabled", "onSelect", "onClick", "onKeyDown"];
4
1
  import { forwardRef, useRef, useId } from 'react';
5
2
  import { useMenuContext, useMenuListContext } from './context';
6
3
  import { assignMultipleRefs } from '../utils/assign-ref';
7
4
  import { wrapEvent } from '../utils';
8
5
  import { jsx as _jsx } from "react/jsx-runtime";
9
- export var MenuItem = /*#__PURE__*/forwardRef(function MenuItem(props, forwardedRef) {
10
- var _props$as = props.as,
11
- Comp = _props$as === void 0 ? 'li' : _props$as,
12
- innerAs = props.innerAs,
13
- disabled = props.disabled,
14
- onSelect = props.onSelect,
15
- onClick = props.onClick,
16
- onKeyDown = props.onKeyDown,
17
- otherProps = _objectWithoutProperties(props, _excluded);
18
-
19
- var _useMenuContext = useMenuContext(),
20
- onChange = _useMenuContext.onChange,
21
- buttonRef = _useMenuContext.buttonRef;
22
-
23
- var _useMenuListContext = useMenuListContext(),
24
- navigationItem = _useMenuListContext.navigationItem,
25
- onNavigate = _useMenuListContext.onNavigate;
26
-
27
- var ref = useRef();
28
- var itemId = useId();
29
- var isActive = ref.current && ref.current === navigationItem;
30
- var handleSelect = wrapEvent(onSelect, function (e) {
31
- var _buttonRef$current;
32
-
6
+ export const MenuItem = /*#__PURE__*/forwardRef(function MenuItem(props, forwardedRef) {
7
+ const {
8
+ as: Comp = 'li',
9
+ innerAs,
10
+ disabled,
11
+ onSelect,
12
+ onClick,
13
+ onKeyDown,
14
+ ...otherProps
15
+ } = props;
16
+ const {
17
+ onChange,
18
+ buttonRef
19
+ } = useMenuContext();
20
+ const {
21
+ navigationItem,
22
+ onNavigate
23
+ } = useMenuListContext();
24
+ const ref = useRef(null);
25
+ const itemId = useId();
26
+ const isActive = ref.current && ref.current === navigationItem;
27
+ const handleSelect = wrapEvent(onSelect, e => {
33
28
  onChange(e, false);
34
- (_buttonRef$current = buttonRef.current) === null || _buttonRef$current === void 0 ? void 0 : _buttonRef$current.focus();
29
+ buttonRef.current?.focus();
35
30
  e.preventDefault();
36
31
  });
37
-
38
- var handleClick = function handleClick(e) {
32
+ const handleClick = e => {
39
33
  if (!disabled) {
40
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
41
34
  onNavigate && onNavigate(ref.current);
42
35
  handleSelect(e);
43
36
  }
44
37
  };
45
-
46
- var handleKeyDown = function handleKeyDown(e) {
38
+ const handleKeyDown = e => {
47
39
  switch (e.key) {
48
40
  case ' ':
49
41
  case 'Enter':
50
42
  if (!disabled) {
51
43
  handleSelect(e);
52
44
  }
53
-
54
45
  break;
55
46
  }
56
47
  };
57
-
58
- return /*#__PURE__*/_jsx(Comp, _extends({
48
+ return /*#__PURE__*/_jsx(Comp, {
59
49
  ref: assignMultipleRefs(ref, forwardedRef),
60
50
  as: innerAs,
61
51
  id: disabled ? undefined : itemId,
@@ -67,7 +57,8 @@ export var MenuItem = /*#__PURE__*/forwardRef(function MenuItem(props, forwarded
67
57
  onKeyDown: wrapEvent(onKeyDown, handleKeyDown),
68
58
  "data-disabled": disabled ? '' : undefined,
69
59
  "aria-disabled": disabled ? '' : undefined,
70
- disabled: disabled
71
- }, otherProps));
60
+ disabled: disabled,
61
+ ...otherProps
62
+ });
72
63
  });
73
64
  //# sourceMappingURL=MenuItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","names":["forwardRef","useRef","useId","useMenuContext","useMenuListContext","assignMultipleRefs","wrapEvent","MenuItem","props","forwardedRef","as","Comp","innerAs","disabled","onSelect","onClick","onKeyDown","otherProps","onChange","buttonRef","navigationItem","onNavigate","ref","itemId","isActive","current","handleSelect","e","focus","preventDefault","handleClick","handleKeyDown","key","undefined"],"sources":["../../../src/Menu/MenuItem.tsx"],"sourcesContent":["import type {\n LiHTMLAttributes,\n ElementType,\n MouseEvent,\n KeyboardEvent,\n KeyboardEventHandler,\n} from 'react';\nimport { forwardRef, useRef, useId } from 'react';\n\nimport { useMenuContext, useMenuListContext } from './context';\nimport { assignMultipleRefs } from '../utils/assign-ref';\nimport { wrapEvent } from '../utils';\n\nexport interface MenuItemProps extends LiHTMLAttributes<HTMLLIElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n onSelect?: (\n e: MouseEvent<HTMLLIElement> | KeyboardEvent<HTMLLIElement>\n ) => void;\n disabled?: boolean;\n}\n\nexport const MenuItem = forwardRef<any, MenuItemProps>(function MenuItem(\n props,\n forwardedRef\n) {\n const {\n as: Comp = 'li',\n innerAs,\n disabled,\n onSelect,\n onClick,\n onKeyDown,\n ...otherProps\n } = props;\n const { onChange, buttonRef } = useMenuContext();\n const { navigationItem, onNavigate } = useMenuListContext();\n const ref = useRef<HTMLLIElement>();\n const itemId = useId();\n\n const isActive = ref.current && ref.current === navigationItem;\n\n const handleSelect = wrapEvent(\n onSelect,\n (e: KeyboardEvent<HTMLLIElement> | MouseEvent<HTMLLIElement>) => {\n onChange(e, false);\n buttonRef.current?.focus();\n e.preventDefault();\n }\n );\n\n const handleClick = (e: MouseEvent<HTMLLIElement>) => {\n if (!disabled) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n onNavigate && onNavigate(ref.current!);\n handleSelect(e);\n }\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLLIElement> = (e) => {\n switch (e.key) {\n case ' ':\n case 'Enter':\n if (!disabled) {\n handleSelect(e);\n }\n break;\n }\n };\n\n return (\n <Comp\n ref={assignMultipleRefs(ref, forwardedRef)}\n as={innerAs}\n id={disabled ? undefined : itemId}\n data-menu-item=\"\"\n data-highlighted={isActive ? '' : undefined}\n role=\"menuitem\"\n onClick={wrapEvent(onClick, handleClick)}\n tabIndex={disabled ? -1 : 0}\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\n data-disabled={disabled ? '' : undefined}\n aria-disabled={disabled ? '' : undefined}\n disabled={disabled}\n {...otherProps}\n />\n );\n});\n"],"mappings":";;;AAOA,SAASA,UAAT,EAAqBC,MAArB,EAA6BC,KAA7B,QAA0C,OAA1C;AAEA,SAASC,cAAT,EAAyBC,kBAAzB,QAAmD,WAAnD;AACA,SAASC,kBAAT,QAAmC,qBAAnC;AACA,SAASC,SAAT,QAA0B,UAA1B;;AAWA,OAAO,IAAMC,QAAQ,gBAAGP,UAAU,CAAqB,SAASO,QAAT,CACrDC,KADqD,EAErDC,YAFqD,EAGrD;EACA,gBAQID,KARJ,CACEE,EADF;EAAA,IACMC,IADN,0BACa,IADb;EAAA,IAEEC,OAFF,GAQIJ,KARJ,CAEEI,OAFF;EAAA,IAGEC,QAHF,GAQIL,KARJ,CAGEK,QAHF;EAAA,IAIEC,QAJF,GAQIN,KARJ,CAIEM,QAJF;EAAA,IAKEC,OALF,GAQIP,KARJ,CAKEO,OALF;EAAA,IAMEC,SANF,GAQIR,KARJ,CAMEQ,SANF;EAAA,IAOKC,UAPL,4BAQIT,KARJ;;EASA,sBAAgCL,cAAc,EAA9C;EAAA,IAAQe,QAAR,mBAAQA,QAAR;EAAA,IAAkBC,SAAlB,mBAAkBA,SAAlB;;EACA,0BAAuCf,kBAAkB,EAAzD;EAAA,IAAQgB,cAAR,uBAAQA,cAAR;EAAA,IAAwBC,UAAxB,uBAAwBA,UAAxB;;EACA,IAAMC,GAAG,GAAGrB,MAAM,EAAlB;EACA,IAAMsB,MAAM,GAAGrB,KAAK,EAApB;EAEA,IAAMsB,QAAQ,GAAGF,GAAG,CAACG,OAAJ,IAAeH,GAAG,CAACG,OAAJ,KAAgBL,cAAhD;EAEA,IAAMM,YAAY,GAAGpB,SAAS,CAC5BQ,QAD4B,EAE5B,UAACa,CAAD,EAAiE;IAAA;;IAC/DT,QAAQ,CAACS,CAAD,EAAI,KAAJ,CAAR;IACA,sBAAAR,SAAS,CAACM,OAAV,0EAAmBG,KAAnB;IACAD,CAAC,CAACE,cAAF;EACD,CAN2B,CAA9B;;EASA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACH,CAAD,EAAkC;IACpD,IAAI,CAACd,QAAL,EAAe;MACb;MACAQ,UAAU,IAAIA,UAAU,CAACC,GAAG,CAACG,OAAL,CAAxB;MACAC,YAAY,CAACC,CAAD,CAAZ;IACD;EACF,CAND;;EAQA,IAAMI,aAAkD,GAAG,SAArDA,aAAqD,CAACJ,CAAD,EAAO;IAChE,QAAQA,CAAC,CAACK,GAAV;MACE,KAAK,GAAL;MACA,KAAK,OAAL;QACE,IAAI,CAACnB,QAAL,EAAe;UACba,YAAY,CAACC,CAAD,CAAZ;QACD;;QACD;IANJ;EAQD,CATD;;EAWA,oBACE,KAAC,IAAD;IACE,GAAG,EAAEtB,kBAAkB,CAACiB,GAAD,EAAMb,YAAN,CADzB;IAEE,EAAE,EAAEG,OAFN;IAGE,EAAE,EAAEC,QAAQ,GAAGoB,SAAH,GAAeV,MAH7B;IAIE,kBAAe,EAJjB;IAKE,oBAAkBC,QAAQ,GAAG,EAAH,GAAQS,SALpC;IAME,IAAI,EAAC,UANP;IAOE,OAAO,EAAE3B,SAAS,CAACS,OAAD,EAAUe,WAAV,CAPpB;IAQE,QAAQ,EAAEjB,QAAQ,GAAG,CAAC,CAAJ,GAAQ,CAR5B;IASE,SAAS,EAAEP,SAAS,CAACU,SAAD,EAAYe,aAAZ,CATtB;IAUE,iBAAelB,QAAQ,GAAG,EAAH,GAAQoB,SAVjC;IAWE,iBAAepB,QAAQ,GAAG,EAAH,GAAQoB,SAXjC;IAYE,QAAQ,EAAEpB;EAZZ,GAaMI,UAbN,EADF;AAiBD,CAjEiC,CAA3B"}
1
+ {"version":3,"file":"MenuItem.js","names":["forwardRef","useRef","useId","useMenuContext","useMenuListContext","assignMultipleRefs","wrapEvent","jsx","_jsx","MenuItem","props","forwardedRef","as","Comp","innerAs","disabled","onSelect","onClick","onKeyDown","otherProps","onChange","buttonRef","navigationItem","onNavigate","ref","itemId","isActive","current","handleSelect","e","focus","preventDefault","handleClick","handleKeyDown","key","id","undefined","role","tabIndex"],"sources":["../../../src/Menu/MenuItem.tsx"],"sourcesContent":["import type {\n LiHTMLAttributes,\n ElementType,\n MouseEvent,\n KeyboardEvent,\n KeyboardEventHandler,\n} from 'react';\nimport { forwardRef, useRef, useId } from 'react';\n\nimport { useMenuContext, useMenuListContext } from './context';\nimport { assignMultipleRefs } from '../utils/assign-ref';\nimport { wrapEvent } from '../utils';\n\nexport interface MenuItemProps extends LiHTMLAttributes<HTMLLIElement> {\n as?: ElementType<any>;\n innerAs?: ElementType<any>;\n onSelect?: (\n e: MouseEvent<HTMLLIElement> | KeyboardEvent<HTMLLIElement>\n ) => void;\n disabled?: boolean;\n}\n\nexport const MenuItem = forwardRef<any, MenuItemProps>(function MenuItem(\n props,\n forwardedRef\n) {\n const {\n as: Comp = 'li',\n innerAs,\n disabled,\n onSelect,\n onClick,\n onKeyDown,\n ...otherProps\n } = props;\n const { onChange, buttonRef } = useMenuContext();\n const { navigationItem, onNavigate } = useMenuListContext();\n const ref = useRef<HTMLLIElement | null>(null);\n const itemId = useId();\n\n const isActive = ref.current && ref.current === navigationItem;\n\n const handleSelect = wrapEvent(\n onSelect,\n (e: KeyboardEvent<HTMLLIElement> | MouseEvent<HTMLLIElement>) => {\n onChange(e, false);\n buttonRef.current?.focus();\n e.preventDefault();\n }\n );\n\n const handleClick = (e: MouseEvent<HTMLLIElement>) => {\n if (!disabled) {\n onNavigate && onNavigate(ref.current!);\n handleSelect(e);\n }\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLLIElement> = (e) => {\n switch (e.key) {\n case ' ':\n case 'Enter':\n if (!disabled) {\n handleSelect(e);\n }\n break;\n }\n };\n\n return (\n <Comp\n ref={assignMultipleRefs(ref, forwardedRef)}\n as={innerAs}\n id={disabled ? undefined : itemId}\n data-menu-item=\"\"\n data-highlighted={isActive ? '' : undefined}\n role=\"menuitem\"\n onClick={wrapEvent(onClick, handleClick)}\n tabIndex={disabled ? -1 : 0}\n onKeyDown={wrapEvent(onKeyDown, handleKeyDown)}\n data-disabled={disabled ? '' : undefined}\n aria-disabled={disabled ? '' : undefined}\n disabled={disabled}\n {...otherProps}\n />\n );\n});\n"],"mappings":"AAOA,SAASA,UAAU,EAAEC,MAAM,EAAEC,KAAK,QAAQ,OAAO;AAEjD,SAASC,cAAc,EAAEC,kBAAkB,QAAQ,WAAW;AAC9D,SAASC,kBAAkB,QAAQ,qBAAqB;AACxD,SAASC,SAAS,QAAQ,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAWrC,OAAO,MAAMC,QAAQ,gBAAGT,UAAU,CAAqB,SAASS,QAAQA,CACtEC,KAAK,EACLC,YAAY,EACZ;EACA,MAAM;IACJC,EAAE,EAAEC,IAAI,GAAG,IAAI;IACfC,OAAO;IACPC,QAAQ;IACRC,QAAQ;IACRC,OAAO;IACPC,SAAS;IACT,GAAGC;EACL,CAAC,GAAGT,KAAK;EACT,MAAM;IAAEU,QAAQ;IAAEC;EAAU,CAAC,GAAGlB,cAAc,CAAC,CAAC;EAChD,MAAM;IAAEmB,cAAc;IAAEC;EAAW,CAAC,GAAGnB,kBAAkB,CAAC,CAAC;EAC3D,MAAMoB,GAAG,GAAGvB,MAAM,CAAuB,IAAI,CAAC;EAC9C,MAAMwB,MAAM,GAAGvB,KAAK,CAAC,CAAC;EAEtB,MAAMwB,QAAQ,GAAGF,GAAG,CAACG,OAAO,IAAIH,GAAG,CAACG,OAAO,KAAKL,cAAc;EAE9D,MAAMM,YAAY,GAAGtB,SAAS,CAC5BU,QAAQ,EACPa,CAA2D,IAAK;IAC/DT,QAAQ,CAACS,CAAC,EAAE,KAAK,CAAC;IAClBR,SAAS,CAACM,OAAO,EAAEG,KAAK,CAAC,CAAC;IAC1BD,CAAC,CAACE,cAAc,CAAC,CAAC;EACpB,CACF,CAAC;EAED,MAAMC,WAAW,GAAIH,CAA4B,IAAK;IACpD,IAAI,CAACd,QAAQ,EAAE;MACbQ,UAAU,IAAIA,UAAU,CAACC,GAAG,CAACG,OAAQ,CAAC;MACtCC,YAAY,CAACC,CAAC,CAAC;IACjB;EACF,CAAC;EAED,MAAMI,aAAkD,GAAIJ,CAAC,IAAK;IAChE,QAAQA,CAAC,CAACK,GAAG;MACX,KAAK,GAAG;MACR,KAAK,OAAO;QACV,IAAI,CAACnB,QAAQ,EAAE;UACba,YAAY,CAACC,CAAC,CAAC;QACjB;QACA;IACJ;EACF,CAAC;EAED,oBACErB,IAAA,CAACK,IAAI;IACHW,GAAG,EAAEnB,kBAAkB,CAACmB,GAAG,EAAEb,YAAY,CAAE;IAC3CC,EAAE,EAAEE,OAAQ;IACZqB,EAAE,EAAEpB,QAAQ,GAAGqB,SAAS,GAAGX,MAAO;IAClC,kBAAe,EAAE;IACjB,oBAAkBC,QAAQ,GAAG,EAAE,GAAGU,SAAU;IAC5CC,IAAI,EAAC,UAAU;IACfpB,OAAO,EAAEX,SAAS,CAACW,OAAO,EAAEe,WAAW,CAAE;IACzCM,QAAQ,EAAEvB,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAE;IAC5BG,SAAS,EAAEZ,SAAS,CAACY,SAAS,EAAEe,aAAa,CAAE;IAC/C,iBAAelB,QAAQ,GAAG,EAAE,GAAGqB,SAAU;IACzC,iBAAerB,QAAQ,GAAG,EAAE,GAAGqB,SAAU;IACzCrB,QAAQ,EAAEA,QAAS;IAAA,GACfI;EAAU,CACf,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}