@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.
- package/build/cjs/index.js +278 -505
- package/build/cjs/index.js.map +1 -1
- package/build/esm/Accordion/Accordion.js +20 -29
- package/build/esm/Accordion/Accordion.js.map +1 -1
- package/build/esm/Accordion/AccordionBody.js +18 -32
- package/build/esm/Accordion/AccordionBody.js.map +1 -1
- package/build/esm/Accordion/AccordionHeader.js +37 -74
- package/build/esm/Accordion/AccordionHeader.js.map +1 -1
- package/build/esm/Accordion/AccordionItem.js +19 -22
- package/build/esm/Accordion/AccordionItem.js.map +1 -1
- package/build/esm/Accordion/context.js +16 -13
- package/build/esm/Accordion/context.js.map +1 -1
- package/build/esm/Accordion/index.js.map +1 -1
- package/build/esm/Accordion/scopeQuery.js.map +1 -1
- package/build/esm/CheckBox/CheckBox.js +15 -25
- package/build/esm/CheckBox/CheckBox.js.map +1 -1
- package/build/esm/CheckBox/index.js.map +1 -1
- package/build/esm/ComboBox/Combobox.d.ts +7 -7
- package/build/esm/ComboBox/Combobox.js +52 -59
- package/build/esm/ComboBox/Combobox.js.map +1 -1
- package/build/esm/ComboBox/ComboboxButton.js +23 -28
- package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
- package/build/esm/ComboBox/ComboboxInput.js +67 -70
- package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
- package/build/esm/ComboBox/ComboboxLabel.js +15 -17
- package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
- package/build/esm/ComboBox/ComboboxList.js +19 -20
- package/build/esm/ComboBox/ComboboxList.js.map +1 -1
- package/build/esm/ComboBox/ComboboxOption.js +41 -45
- package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
- package/build/esm/ComboBox/ComboboxPopover.js +22 -21
- package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
- package/build/esm/ComboBox/cities.js.map +1 -1
- package/build/esm/ComboBox/context.js +5 -6
- package/build/esm/ComboBox/context.js.map +1 -1
- package/build/esm/ComboBox/hooks.d.ts +2 -2
- package/build/esm/ComboBox/hooks.js +175 -148
- package/build/esm/ComboBox/hooks.js.map +1 -1
- package/build/esm/ComboBox/index.js.map +1 -1
- package/build/esm/ComboBox/makeHash.js +3 -6
- package/build/esm/ComboBox/makeHash.js.map +1 -1
- package/build/esm/ComboBox/scopeQuery.js.map +1 -1
- package/build/esm/FocusLock/FocusLock.js +26 -32
- package/build/esm/FocusLock/FocusLock.js.map +1 -1
- package/build/esm/FocusLock/index.js.map +1 -1
- package/build/esm/FocusLock/tabUtils.js +5 -7
- package/build/esm/FocusLock/tabUtils.js.map +1 -1
- package/build/esm/FocusLock/useFocusLock.js +14 -19
- package/build/esm/FocusLock/useFocusLock.js.map +1 -1
- package/build/esm/List/List.js +9 -11
- package/build/esm/List/List.js.map +1 -1
- package/build/esm/List/ListItem.js +9 -11
- package/build/esm/List/ListItem.js.map +1 -1
- package/build/esm/List/context.js +6 -6
- package/build/esm/List/context.js.map +1 -1
- package/build/esm/List/index.js.map +1 -1
- package/build/esm/Menu/ContextMenuTrigger.d.ts +4 -4
- package/build/esm/Menu/ContextMenuTrigger.js +32 -37
- package/build/esm/Menu/ContextMenuTrigger.js.map +1 -1
- package/build/esm/Menu/Menu.js +33 -49
- package/build/esm/Menu/Menu.js.map +1 -1
- package/build/esm/Menu/MenuButton.d.ts +4 -4
- package/build/esm/Menu/MenuButton.js +28 -44
- package/build/esm/Menu/MenuButton.js.map +1 -1
- package/build/esm/Menu/MenuItem.js +29 -38
- package/build/esm/Menu/MenuItem.js.map +1 -1
- package/build/esm/Menu/MenuList.js +61 -116
- package/build/esm/Menu/MenuList.js.map +1 -1
- package/build/esm/Menu/MenuPopover.js +16 -19
- package/build/esm/Menu/MenuPopover.js.map +1 -1
- package/build/esm/Menu/context.d.ts +1 -1
- package/build/esm/Menu/context.js +14 -12
- package/build/esm/Menu/context.js.map +1 -1
- package/build/esm/Menu/fixtures/countryList.js +1 -1
- package/build/esm/Menu/fixtures/countryList.js.map +1 -1
- package/build/esm/Menu/index.js.map +1 -1
- package/build/esm/Menu/scope.js.map +1 -1
- package/build/esm/Modal/Modal.js +13 -18
- package/build/esm/Modal/Modal.js.map +1 -1
- package/build/esm/Modal/ModalBackdrop.js +24 -33
- package/build/esm/Modal/ModalBackdrop.js.map +1 -1
- package/build/esm/Modal/index.js.map +1 -1
- package/build/esm/Popper/Popper.d.ts +3 -3
- package/build/esm/Popper/Popper.js +44 -61
- package/build/esm/Popper/Popper.js.map +1 -1
- package/build/esm/Popper/PopperArrow.js +11 -16
- package/build/esm/Popper/PopperArrow.js.map +1 -1
- package/build/esm/Popper/context.js +3 -5
- package/build/esm/Popper/context.js.map +1 -1
- package/build/esm/Popper/index.js.map +1 -1
- package/build/esm/Portal/Portal.js +9 -11
- package/build/esm/Portal/Portal.js.map +1 -1
- package/build/esm/Portal/PortalSelectorProvider.d.ts +3 -3
- package/build/esm/Portal/PortalSelectorProvider.js +6 -4
- package/build/esm/Portal/PortalSelectorProvider.js.map +1 -1
- package/build/esm/Portal/index.js.map +1 -1
- package/build/esm/RadioButton/RadioButton.js +17 -23
- package/build/esm/RadioButton/RadioButton.js.map +1 -1
- package/build/esm/RadioButton/RadioGroup.js +19 -28
- package/build/esm/RadioButton/RadioGroup.js.map +1 -1
- package/build/esm/RadioButton/context.d.ts +1 -1
- package/build/esm/RadioButton/context.js +8 -6
- package/build/esm/RadioButton/context.js.map +1 -1
- package/build/esm/RadioButton/index.js.map +1 -1
- package/build/esm/SkipNav/SkipNav.js +9 -11
- package/build/esm/SkipNav/SkipNav.js.map +1 -1
- package/build/esm/SkipNav/index.js.map +1 -1
- package/build/esm/Slider/Slider.d.ts +7 -7
- package/build/esm/Slider/Slider.js +340 -407
- package/build/esm/Slider/Slider.js.map +1 -1
- package/build/esm/Slider/index.js.map +1 -1
- package/build/esm/Spinner/Spinner.js +31 -59
- package/build/esm/Spinner/Spinner.js.map +1 -1
- package/build/esm/Spinner/SpinnerButton.js +14 -19
- package/build/esm/Spinner/SpinnerButton.js.map +1 -1
- package/build/esm/Spinner/context.js +8 -7
- package/build/esm/Spinner/context.js.map +1 -1
- package/build/esm/Spinner/index.js.map +1 -1
- package/build/esm/Tabs/Tab.js +32 -50
- package/build/esm/Tabs/Tab.js.map +1 -1
- package/build/esm/Tabs/TabList.js +24 -34
- package/build/esm/Tabs/TabList.js.map +1 -1
- package/build/esm/Tabs/TabPanel.js +16 -23
- package/build/esm/Tabs/TabPanel.js.map +1 -1
- package/build/esm/Tabs/TabPanels.js +15 -20
- package/build/esm/Tabs/TabPanels.js.map +1 -1
- package/build/esm/Tabs/Tabs.js +17 -33
- package/build/esm/Tabs/Tabs.js.map +1 -1
- package/build/esm/Tabs/context.js +16 -13
- package/build/esm/Tabs/context.js.map +1 -1
- package/build/esm/Tabs/index.js.map +1 -1
- package/build/esm/Tabs/scopeQuery.js.map +1 -1
- package/build/esm/Tooltip/Tooltip.d.ts +2 -2
- package/build/esm/Tooltip/Tooltip.js +20 -30
- package/build/esm/Tooltip/Tooltip.js.map +1 -1
- package/build/esm/Tooltip/index.js.map +1 -1
- package/build/esm/Tooltip/stateMachine.d.ts +2 -2
- package/build/esm/Tooltip/stateMachine.js +95 -81
- package/build/esm/Tooltip/stateMachine.js.map +1 -1
- package/build/esm/Tooltip/useTooltip.d.ts +2 -2
- package/build/esm/Tooltip/useTooltip.js +38 -50
- package/build/esm/Tooltip/useTooltip.js.map +1 -1
- package/build/esm/hooks/index.js.map +1 -1
- package/build/esm/hooks/useAutoFocus.js +3 -3
- package/build/esm/hooks/useAutoFocus.js.map +1 -1
- package/build/esm/hooks/useChildrenCounter.js +6 -8
- package/build/esm/hooks/useChildrenCounter.js.map +1 -1
- package/build/esm/hooks/useControlledState.js +6 -16
- package/build/esm/hooks/useControlledState.js.map +1 -1
- package/build/esm/hooks/useFocusReturn.js +8 -12
- package/build/esm/hooks/useFocusReturn.js.map +1 -1
- package/build/esm/hooks/useFocusState.d.ts +2 -2
- package/build/esm/hooks/useFocusState.js +9 -15
- package/build/esm/hooks/useFocusState.js.map +1 -1
- package/build/esm/hooks/useGestureHandlers.d.ts +1 -1
- package/build/esm/hooks/useGestureHandlers.js +80 -100
- package/build/esm/hooks/useGestureHandlers.js.map +1 -1
- package/build/esm/hooks/useMeasure.js +7 -15
- package/build/esm/hooks/useMeasure.js.map +1 -1
- package/build/esm/hooks/useOnClickOutside.js +4 -6
- package/build/esm/hooks/useOnClickOutside.js.map +1 -1
- package/build/esm/hooks/useOnKeyDown.js +3 -4
- package/build/esm/hooks/useOnKeyDown.js.map +1 -1
- package/build/esm/hooks/useReducerMachine.d.ts +1 -1
- package/build/esm/hooks/useReducerMachine.js +15 -26
- package/build/esm/hooks/useReducerMachine.js.map +1 -1
- package/build/esm/hooks/useRemoveBodyScroll.js +9 -14
- package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
- package/build/esm/hooks/useScope.d.ts +2 -2
- package/build/esm/hooks/useScope.js +12 -14
- package/build/esm/hooks/useScope.js.map +1 -1
- package/build/esm/hooks/useThrottle.js +5 -10
- package/build/esm/hooks/useThrottle.js.map +1 -1
- package/build/esm/index.js +4 -2
- package/build/esm/index.js.map +1 -1
- package/build/esm/styles.d.js +2 -0
- package/build/esm/styles.d.js.map +1 -0
- package/build/esm/utils/assign-ref.js +3 -5
- package/build/esm/utils/assign-ref.js.map +1 -1
- package/build/esm/utils/can-use-dom.js.map +1 -1
- package/build/esm/utils/clamp.js.map +1 -1
- package/build/esm/utils/context.d.ts +1 -1
- package/build/esm/utils/context.js +13 -20
- package/build/esm/utils/context.js.map +1 -1
- package/build/esm/utils/create-subscription.js +5 -10
- package/build/esm/utils/create-subscription.js.map +1 -1
- package/build/esm/utils/get-circular-index.js +0 -1
- package/build/esm/utils/get-circular-index.js.map +1 -1
- package/build/esm/utils/index.js.map +1 -1
- package/build/esm/utils/is-right-click.js.map +1 -1
- package/build/esm/utils/owner-document.js +1 -1
- package/build/esm/utils/owner-document.js.map +1 -1
- package/build/esm/utils/polymorphic.d.ts +10 -10
- package/build/esm/utils/polymorphic.js.map +1 -1
- package/build/esm/utils/rubber-band-clamp.js +2 -5
- package/build/esm/utils/rubber-band-clamp.js.map +1 -1
- package/build/esm/utils/use-stable-callback.js +8 -10
- package/build/esm/utils/use-stable-callback.js.map +1 -1
- package/build/esm/utils/wrap-event.d.ts +1 -1
- package/build/esm/utils/wrap-event.js +2 -5
- package/build/esm/utils/wrap-event.js.map +1 -1
- package/build/tsconfig-build.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/Accordion/Accordion.tsx +1 -1
- package/src/Accordion/AccordionBody.tsx +1 -1
- package/src/Accordion/AccordionHeader.tsx +1 -2
- package/src/ComboBox/Combobox.tsx +2 -2
- package/src/ComboBox/ComboboxList.tsx +1 -1
- package/src/ComboBox/ComboboxOption.tsx +0 -1
- package/src/ComboBox/hooks.tsx +0 -3
- package/src/FocusLock/useFocusLock.ts +0 -1
- package/src/Menu/Menu.tsx +2 -3
- package/src/Menu/MenuItem.tsx +1 -2
- package/src/Menu/MenuList.tsx +4 -4
- package/src/Modal/Modal.story.tsx +11 -7
- package/src/Modal/ModalBackdrop.tsx +1 -1
- package/src/Modal/NavDrawer.story.tsx +9 -6
- package/src/Popper/Popper.story.tsx +23 -7
- package/src/Popper/Popper.tsx +2 -2
- package/src/RadioButton/RadioButton.story.tsx +2 -1
- package/src/Slider/Slider.tsx +6 -11
- package/src/Spinner/Spinner.tsx +1 -1
- package/src/Tabs/TabList.tsx +1 -1
- package/src/Tooltip/Tooltip.tsx +8 -5
- package/src/Tooltip/useTooltip.ts +1 -1
- package/src/hooks/useControlledState.ts +1 -6
- package/src/hooks/useGestureHandlers.ts +0 -4
- package/src/hooks/useRemoveBodyScroll.ts +0 -1
- package/src/hooks/useScope.ts +1 -1
- package/src/styles.d.ts +1 -0
- package/src/utils/polymorphic.ts +14 -10
- package/src/utils/use-stable-callback.ts +0 -1
- package/build/esm/Carousel/Carousel.d.ts +0 -9
- package/build/esm/Carousel/Carousel.js +0 -38
- package/build/esm/Carousel/Carousel.js.map +0 -1
- package/build/esm/Carousel/Fader.d.ts +0 -14
- package/build/esm/Carousel/Fader.js +0 -76
- package/build/esm/Carousel/Fader.js.map +0 -1
- package/build/esm/Carousel/FaderItem.d.ts +0 -5
- package/build/esm/Carousel/FaderItem.js +0 -16
- package/build/esm/Carousel/FaderItem.js.map +0 -1
- package/build/esm/Carousel/Preloader.d.ts +0 -7
- package/build/esm/Carousel/Preloader.js +0 -70
- package/build/esm/Carousel/Preloader.js.map +0 -1
- package/build/esm/Carousel/Slider.d.ts +0 -14
- package/build/esm/Carousel/Slider.js +0 -212
- package/build/esm/Carousel/Slider.js.map +0 -1
- package/build/esm/Carousel/SliderItem.d.ts +0 -12
- package/build/esm/Carousel/SliderItem.js +0 -41
- package/build/esm/Carousel/SliderItem.js.map +0 -1
- package/build/esm/Carousel/context.d.ts +0 -10
- package/build/esm/Carousel/context.js +0 -8
- package/build/esm/Carousel/context.js.map +0 -1
- package/build/esm/Carousel/getSliderParams.d.ts +0 -9
- package/build/esm/Carousel/getSliderParams.js +0 -85
- package/build/esm/Carousel/getSliderParams.js.map +0 -1
- package/build/esm/Carousel/index.d.ts +0 -7
- package/build/esm/Carousel/index.js +0 -8
- package/build/esm/Carousel/index.js.map +0 -1
- package/build/esm/Carousel/useCarouselGestures.d.ts +0 -30
- package/build/esm/Carousel/useCarouselGestures.js +0 -33
- package/build/esm/Carousel/useCarouselGestures.js.map +0 -1
- package/build/esm/DatePicker/DatePicker.d.ts +0 -24
- package/build/esm/DatePicker/DatePicker.js +0 -101
- package/build/esm/DatePicker/DatePicker.js.map +0 -1
- package/build/esm/DatePicker/DatePickerSelect.d.ts +0 -8
- package/build/esm/DatePicker/DatePickerSelect.js +0 -201
- package/build/esm/DatePicker/DatePickerSelect.js.map +0 -1
- package/build/esm/DatePicker/RangeDatePicker.d.ts +0 -28
- package/build/esm/DatePicker/RangeDatePicker.js +0 -94
- package/build/esm/DatePicker/RangeDatePicker.js.map +0 -1
- package/build/esm/DatePicker/adjustDates.d.ts +0 -4
- package/build/esm/DatePicker/adjustDates.js +0 -18
- package/build/esm/DatePicker/adjustDates.js.map +0 -1
- package/build/esm/DatePicker/contexts.d.ts +0 -31
- package/build/esm/DatePicker/contexts.js +0 -15
- package/build/esm/DatePicker/contexts.js.map +0 -1
- package/build/esm/DatePicker/dateTypes.d.ts +0 -2
- package/build/esm/DatePicker/dateTypes.js +0 -2
- package/build/esm/DatePicker/dateTypes.js.map +0 -1
- package/build/esm/DatePicker/hooks.d.ts +0 -36
- package/build/esm/DatePicker/hooks.js +0 -98
- package/build/esm/DatePicker/hooks.js.map +0 -1
- package/build/esm/DatePicker/index.d.ts +0 -5
- package/build/esm/DatePicker/index.js +0 -6
- package/build/esm/DatePicker/index.js.map +0 -1
- package/build/esm/hooks/useId.d.ts +0 -1
- package/build/esm/hooks/useId.js +0 -25
- package/build/esm/hooks/useId.js.map +0 -1
- package/build/esm/utils/assignRef.d.ts +0 -3
- package/build/esm/utils/assignRef.js +0 -25
- package/build/esm/utils/assignRef.js.map +0 -1
- package/build/esm/utils/getCircularIndex.d.ts +0 -1
- package/build/esm/utils/getCircularIndex.js +0 -8
- package/build/esm/utils/getCircularIndex.js.map +0 -1
- package/build/esm/utils/rubberBandClamp.d.ts +0 -2
- package/build/esm/utils/rubberBandClamp.js +0 -20
- package/build/esm/utils/rubberBandClamp.js.map +0 -1
- package/build/esm/utils/wrapEvent.d.ts +0 -3
- package/build/esm/utils/wrapEvent.js +0 -16
- package/build/esm/utils/wrapEvent.js.map +0 -1
- 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
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
setOffsetFn(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
|
|
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","
|
|
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":[]}
|
package/build/esm/Menu/Menu.js
CHANGED
|
@@ -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
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
39
|
-
|
|
22
|
+
const isContextMenu = useRef(false);
|
|
40
23
|
if (!open && offsetFn) {
|
|
41
24
|
setOffsetFn(undefined);
|
|
42
25
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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","
|
|
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
|
|
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
|
|
9
|
-
innerAs?: ElementType<any
|
|
10
|
-
onClick?: (
|
|
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
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
36
|
-
|
|
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
|
-
|
|
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","
|
|
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
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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":[]}
|