@procore/core-react 12.41.0 → 12.43.0
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/CHANGELOG.md +69 -0
- package/dist/AnchorNavigation/AnchorNavigation.js +11 -5
- package/dist/AnchorNavigation/AnchorNavigation.js.map +1 -1
- package/dist/AnchorNavigation/AnchorNavigation.styles.d.ts +1 -0
- package/dist/AnchorNavigation/AnchorNavigation.styles.js +7 -3
- package/dist/AnchorNavigation/AnchorNavigation.styles.js.map +1 -1
- package/dist/AnchorNavigation/AnchorNavigation.types.d.ts +7 -1
- package/dist/AnchorNavigation/AnchorNavigation.types.js.map +1 -1
- package/dist/Avatar/Avatar.styles.js +5 -5
- package/dist/AvatarStack/AvatarStack.styles.d.ts +74 -74
- package/dist/AvatarStack/AvatarStack.styles.js +7 -7
- package/dist/Badge/Badge.styles.js +2 -2
- package/dist/BadgePill/BadgePill.styles.js +4 -4
- package/dist/Banner/Banner.styles.js +10 -10
- package/dist/Box/Box.styles.js +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
- package/dist/Button/Button.styles.js +5 -5
- package/dist/Button/Button.types.d.ts +1 -4
- package/dist/Button/Button.types.js.map +1 -1
- package/dist/Button/index.d.ts +1 -1
- package/dist/Button/index.js.map +1 -1
- package/dist/Calendar/Calendar.styles.js +9 -9
- package/dist/Card/Card.styles.js +1 -1
- package/dist/Checkbox/Checkbox.js +1 -0
- package/dist/Checkbox/Checkbox.js.map +1 -1
- package/dist/Checkbox/Checkbox.styles.js +6 -6
- package/dist/ContactItem/ContactItem.js +7 -3
- package/dist/ContactItem/ContactItem.js.map +1 -1
- package/dist/ContactItem/ContactItem.styles.js +5 -5
- package/dist/Content/Content.styles.js +2 -2
- package/dist/DateInput/DateInput.js +9 -0
- package/dist/DateInput/DateInput.js.map +1 -1
- package/dist/DateInput/DateInput.styles.js +6 -6
- package/dist/DetailPage/DetailPage.styles.js +7 -7
- package/dist/Dropdown/Dropdown.styles.js +3 -3
- package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
- package/dist/Dropzone/Dropzone.js +1 -1
- package/dist/Dropzone/Dropzone.styles.js +9 -9
- package/dist/EmptyState/EmptyState.styles.js +6 -6
- package/dist/Field/Field.styles.js +3 -3
- package/dist/FileList/FileList.styles.js +3 -3
- package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
- package/dist/FileSelect/FileSelect.styles.js +2 -2
- package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
- package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
- package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
- package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
- package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.d.ts +1 -1
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
- package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
- package/dist/FileToken/FileToken.styles.js +6 -6
- package/dist/FileToken/FileTokenInner.js +1 -3
- package/dist/FileToken/FileTokenInner.js.map +1 -1
- package/dist/FilterToken/FilterToken.styles.js +5 -5
- package/dist/FlexList/FlexList.styles.js +1 -1
- package/dist/Form/Form.styles.js +13 -13
- package/dist/Form/StyledFormikForm.styles.d.ts +2 -2
- package/dist/Form/StyledFormikForm.styles.js +2 -2
- package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
- package/dist/Grid/Grid.styles.js +2 -2
- package/dist/GroupSelect/GroupSelect.styles.js +1 -1
- package/dist/Input/Input.styles.js +1 -1
- package/dist/Link/Link.styles.js +1 -1
- package/dist/ListPage/ListPage.styles.js +8 -8
- package/dist/Loader/Loader.styles.js +2 -2
- package/dist/MenuImperative/MenuImperative.d.ts +1 -1
- package/dist/MenuImperative/MenuImperative.js +126 -34
- package/dist/MenuImperative/MenuImperative.js.map +1 -1
- package/dist/MenuImperative/MenuImperative.styles.js +15 -15
- package/dist/MenuImperative/MenuImperative.styles.js.map +1 -1
- package/dist/MenuImperative/MenuImperative.types.d.ts +36 -0
- package/dist/MenuImperative/MenuImperative.types.js.map +1 -1
- package/dist/MenuImperative/sensors.d.ts +6 -3
- package/dist/MenuImperative/sensors.js +42 -34
- package/dist/MenuImperative/sensors.js.map +1 -1
- package/dist/Modal/Modal.d.ts +4 -0
- package/dist/Modal/Modal.js +30 -14
- package/dist/Modal/Modal.js.map +1 -1
- package/dist/Modal/Modal.styles.js +13 -13
- package/dist/Modal/Modal.types.d.ts +28 -5
- package/dist/Modal/Modal.types.js.map +1 -1
- package/dist/Modal/index.d.ts +1 -1
- package/dist/Modal/index.js.map +1 -1
- package/dist/MultiSelect/MultiSelect.js +7 -5
- package/dist/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/MultiSelect/MultiSelect.styles.js +8 -8
- package/dist/NextMenu/NextMenu.styles.js +3 -3
- package/dist/Notation/Notation.js +1 -1
- package/dist/NumberInput/NumberInput.styles.js +7 -7
- package/dist/Overlay/OverlayArrow.styles.js +1 -1
- package/dist/OverlayTrigger/a11yPresets.d.ts +23 -30
- package/dist/OverlayTrigger/a11yPresets.js +29 -27
- package/dist/OverlayTrigger/a11yPresets.js.map +1 -1
- package/dist/PageLayout/PageLayout.styles.d.ts +1 -1
- package/dist/PageLayout/PageLayout.styles.js +16 -16
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
- package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
- package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
- package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
- package/dist/Pagination/Pagination.styles.js +5 -5
- package/dist/Panel/Panel.styles.js +11 -11
- package/dist/Pill/Pill.styles.js +3 -3
- package/dist/PillSelect/PillSelect.styles.js +4 -4
- package/dist/Popover/Popover.styles.js +2 -2
- package/dist/Portal/Portal.styles.js +1 -1
- package/dist/ProgressBar/ProgressBar.styles.js +4 -4
- package/dist/ProgressBar/ProgressBar.styles.js.map +1 -1
- package/dist/RadioButton/RadioButton.styles.js +3 -3
- package/dist/Required/Required.styles.js +3 -3
- package/dist/Search/Search.styles.js +5 -5
- package/dist/Section/Section.styles.js +7 -7
- package/dist/SegmentedController/SegmentedController.styles.js +4 -4
- package/dist/Select/Select.js +3 -2
- package/dist/Select/Select.js.map +1 -1
- package/dist/Select/Select.styles.js +8 -8
- package/dist/Semantic/Semantic.styles.d.ts +74 -74
- package/dist/Semantic/Semantic.styles.js +9 -9
- package/dist/Slider/Slider.styles.js +5 -5
- package/dist/Spinner/Spinner.styles.js +7 -7
- package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
- package/dist/SuperSelect/SuperSelect.components.js +35 -22
- package/dist/SuperSelect/SuperSelect.components.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
- package/dist/SuperSelect/SuperSelect.styles.d.ts +4 -2
- package/dist/SuperSelect/SuperSelect.styles.js +49 -42
- package/dist/SuperSelect/SuperSelect.styles.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.types.d.ts +3 -4
- package/dist/SuperSelect/SuperSelect.types.js.map +1 -1
- package/dist/SuperSelect/presets/filterPreset.js +7 -2
- package/dist/SuperSelect/presets/filterPreset.js.map +1 -1
- package/dist/SuperSelect/useSuperSelect.d.ts +1 -1
- package/dist/SuperSelect/useSuperSelect.js +117 -90
- package/dist/SuperSelect/useSuperSelect.js.map +1 -1
- package/dist/Switch/Switch.styles.js +4 -4
- package/dist/Table/Table.styles.js +28 -28
- package/dist/TableShelf/TableShelf.styles.js +5 -5
- package/dist/Tabs/Tabs.js +1 -1
- package/dist/Tabs/Tabs.js.map +1 -1
- package/dist/Tabs/Tabs.styles.js +15 -15
- package/dist/Tearsheet/Tearsheet.js +1 -1
- package/dist/Tearsheet/Tearsheet.js.map +1 -1
- package/dist/Tearsheet/Tearsheet.styles.js +5 -5
- package/dist/Tearsheet/storybook/PageLayoutDemo.js +1 -0
- package/dist/Tearsheet/storybook/PageLayoutDemo.js.map +1 -1
- package/dist/TextArea/TextArea.styles.js +1 -1
- package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
- package/dist/Thumbnail/Thumbnail.hooks.d.ts +58 -58
- package/dist/Thumbnail/Thumbnail.styles.js +17 -17
- package/dist/ThumbnailGrid/ThumbnailGrid.styles.d.ts +1 -1
- package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
- package/dist/TieredSelect/TieredSelect.styles.d.ts +1 -1
- package/dist/TieredSelect/TieredSelect.styles.js +9 -9
- package/dist/Tile/Tile.styles.js +8 -8
- package/dist/Title/Title.styles.js +7 -7
- package/dist/Toast/Toast.styles.js +3 -3
- package/dist/ToggleButton/ToggleButton.styles.js +1 -1
- package/dist/Token/Token.js +1 -1
- package/dist/Token/Token.js.map +1 -1
- package/dist/Token/Token.styles.js +3 -3
- package/dist/ToolHeader/ToolHeader.styles.js +6 -6
- package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
- package/dist/ToolLandingPageTemplate/ToolLandingPageTemplate.d.ts +1 -1
- package/dist/Tooltip/Tooltip.styles.js +3 -3
- package/dist/Tree/Tree.js +1 -1
- package/dist/Tree/Tree.styles.js +10 -10
- package/dist/Typeahead/Typeahead.js +7 -3
- package/dist/Typeahead/Typeahead.js.map +1 -1
- package/dist/Typeahead/Typeahead.styles.js +3 -3
- package/dist/Typography/Typography.styles.js +1 -1
- package/dist/Typography/Typography.table.story.js +2 -2
- package/dist/Typography/Typography.types.d.ts +1 -0
- package/dist/Typography/Typography.types.js.map +1 -1
- package/dist/_hooks/I18n.d.ts +28 -0
- package/dist/_locales/en.json +15 -1
- package/dist/_locales/pseudo.json +15 -1
- package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
- package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
- package/dist/_styles/colors.js +1 -3
- package/dist/_styles/colors.js.map +1 -1
- package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +13 -3
- package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
- package/dist/_typedoc/AvatarStack/AvatarStack.types.json +25 -25
- package/dist/_typedoc/Badge/Badge.types.json +6 -6
- package/dist/_typedoc/Banner/Banner.types.json +15 -15
- package/dist/_typedoc/Box/Box.types.json +72 -72
- package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
- package/dist/_typedoc/Button/Button.types.json +17 -17
- package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
- package/dist/_typedoc/Card/Card.types.json +6 -6
- package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
- package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
- package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
- package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
- package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
- package/dist/_typedoc/Dropdown/Dropdown.types.json +39 -39
- package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +31 -31
- package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
- package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
- package/dist/_typedoc/FileList/FileList.types.json +9 -9
- package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
- package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
- package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
- package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
- package/dist/_typedoc/Flex/Flex.types.json +27 -27
- package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
- package/dist/_typedoc/Form/Form.types.json +832 -832
- package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
- package/dist/_typedoc/Grid/Grid.types.json +8 -8
- package/dist/_typedoc/GroupSelect/GroupSelect.types.json +54 -54
- package/dist/_typedoc/Input/Input.types.json +2 -2
- package/dist/_typedoc/Link/Link.types.json +1 -1
- package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
- package/dist/_typedoc/Menu/Menu.types.json +62 -62
- package/dist/_typedoc/MenuImperative/MenuImperative.types.json +147 -77
- package/dist/_typedoc/Modal/Modal.types.json +96 -68
- package/dist/_typedoc/MultiSelect/MultiSelect.types.json +33 -33
- package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
- package/dist/_typedoc/Notation/Notation.types.json +4 -4
- package/dist/_typedoc/NumberInput/NumberInput.types.json +54 -54
- package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +33 -33
- package/dist/_typedoc/PageLayout/PageLayout.types.json +28 -28
- package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
- package/dist/_typedoc/Panel/Panel.types.json +27 -27
- package/dist/_typedoc/Pill/Pill.types.json +2 -2
- package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
- package/dist/_typedoc/Popover/Popover.types.json +15 -15
- package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
- package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
- package/dist/_typedoc/Required/Required.types.json +5 -5
- package/dist/_typedoc/Search/Search.types.json +18 -18
- package/dist/_typedoc/Section/Section.types.json +15 -15
- package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
- package/dist/_typedoc/Select/Select.types.json +69 -69
- package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
- package/dist/_typedoc/Slider/Slider.types.json +6 -6
- package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
- package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
- package/dist/_typedoc/Table/Table.types.json +102 -102
- package/dist/_typedoc/Tabs/Tabs.types.json +21 -21
- package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
- package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
- package/dist/_typedoc/TextEditor/TextEditor.types.json +11 -11
- package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
- package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
- package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +43 -43
- package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
- package/dist/_typedoc/Tile/Tile.types.json +8 -8
- package/dist/_typedoc/Title/Title.types.json +3 -3
- package/dist/_typedoc/Toast/Toast.types.json +4 -4
- package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
- package/dist/_typedoc/Token/Token.types.json +7 -7
- package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
- package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +10 -10
- package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
- package/dist/_typedoc/Tree/Tree.types.json +90 -90
- package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
- package/dist/_typedoc/Typography/Typography.types.json +12 -11
- package/dist/_typedoc/_utils/types.json +3 -3
- package/package.json +3 -3
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
2
|
var _excluded = ["circular", "onDragEnd", "onScrollBottom", "onSelect", "role", "onChangeActiveDescendant", "onKeyboardNavigation", "id", "multiple"],
|
|
3
|
-
_excluded2 = ["clickable", "item", "
|
|
4
|
-
_excluded3 = ["
|
|
5
|
-
_excluded4 = ["
|
|
6
|
-
_excluded5 = ["selected", "disabled", "
|
|
7
|
-
_excluded6 = ["
|
|
8
|
-
_excluded7 = ["
|
|
3
|
+
_excluded2 = ["clickable", "item", "label", "labelId", "children", "id"],
|
|
4
|
+
_excluded3 = ["id", "children"],
|
|
5
|
+
_excluded4 = ["hasCheckbox", "children", "selected", "provided", "dndInstructionsId"],
|
|
6
|
+
_excluded5 = ["as", "children", "item", "onClick", "selected", "suggested", "disabled", "id", "role", "restoreFocus", "draggableId", "draggableIndex", "droppableIn"],
|
|
7
|
+
_excluded6 = ["selected", "disabled", "error", "indeterminate", "children", "role"],
|
|
8
|
+
_excluded7 = ["className", "i18nScope", "placeholder", "onChange", "value"],
|
|
9
|
+
_excluded8 = ["padding"];
|
|
9
10
|
function _objectDestructuringEmpty(t) { if (null == t) throw new TypeError("Cannot destructure " + t); }
|
|
10
11
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
11
12
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -26,6 +27,7 @@ import { Grip } from '@procore/core-icons/dist';
|
|
|
26
27
|
import { useLabel } from '@react-aria/label';
|
|
27
28
|
import { useId } from '@react-aria/utils';
|
|
28
29
|
import React, { isValidElement, useEffect, useMemo, useState } from 'react';
|
|
30
|
+
import { flushSync } from 'react-dom';
|
|
29
31
|
import { Checkbox, FakeCheckbox } from '../Checkbox/Checkbox';
|
|
30
32
|
import { Typeahead } from '../Typeahead';
|
|
31
33
|
import { useI18nContext } from '../_hooks/I18n';
|
|
@@ -36,7 +38,18 @@ import { mergeRefs } from '../_utils/mergeRefs';
|
|
|
36
38
|
import { StyledDroppable, StyledFooter, StyledGrip, StyledGroup, StyledGroupLabel, StyledHeader, StyledItem, StyledMenu, StyledOptions, StyledSearch, StyledWrapper } from './MenuImperative.styles';
|
|
37
39
|
import { createSensors } from './sensors';
|
|
38
40
|
var onScrollBottomThreshold = 8;
|
|
39
|
-
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Finds the group element for a given droppable ID (from DnD result).
|
|
44
|
+
* Locates the Droppable via data-droppable-id, then returns its parent Group
|
|
45
|
+
* (ancestor with data-group="true") so we can read data-title for announcements.
|
|
46
|
+
*/
|
|
47
|
+
function findGroupByDroppableId(container, droppableId) {
|
|
48
|
+
var droppable = container === null || container === void 0 ? void 0 : container.querySelector("[data-droppable-id=\"".concat(droppableId, "\"]"));
|
|
49
|
+
if (!droppable) return null;
|
|
50
|
+
var group = droppable.closest('[data-group="true"]');
|
|
51
|
+
return group !== null && group !== void 0 ? group : null;
|
|
52
|
+
}
|
|
40
53
|
function noop() {}
|
|
41
54
|
function isScrolledToBottom(e) {
|
|
42
55
|
return e.currentTarget instanceof HTMLElement && e.currentTarget.scrollTop >= e.currentTarget.scrollHeight - e.currentTarget.clientHeight - onScrollBottomThreshold;
|
|
@@ -44,7 +57,10 @@ function isScrolledToBottom(e) {
|
|
|
44
57
|
export var MenuContext = /*#__PURE__*/React.createContext({
|
|
45
58
|
a11yOptionsProps: {},
|
|
46
59
|
currentlyDroppableIn: [],
|
|
60
|
+
dndInstructionsId: '',
|
|
47
61
|
onHoverItem: noop,
|
|
62
|
+
onFocusItem: noop,
|
|
63
|
+
onBlurItem: noop,
|
|
48
64
|
onScrollBottom: noop,
|
|
49
65
|
onSelect: noop,
|
|
50
66
|
role: 'none'
|
|
@@ -56,6 +72,10 @@ export function useMenuContext() {
|
|
|
56
72
|
}
|
|
57
73
|
return context;
|
|
58
74
|
}
|
|
75
|
+
var IsInsideDroppableContext = /*#__PURE__*/React.createContext(false);
|
|
76
|
+
function useIsInsideDroppable() {
|
|
77
|
+
return React.useContext(IsInsideDroppableContext);
|
|
78
|
+
}
|
|
59
79
|
|
|
60
80
|
/**
|
|
61
81
|
* Usefully if navigation is controlled by search input or another input.
|
|
@@ -136,6 +156,8 @@ var MenuImperative_ = /*#__PURE__*/React.forwardRef(function Menu(_ref, forwardR
|
|
|
136
156
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
137
157
|
currentlyDroppableIn = _useState4[0],
|
|
138
158
|
setCurrentlyDroppableIn = _useState4[1];
|
|
159
|
+
var i18n = useI18nContext();
|
|
160
|
+
var dndInstructionsId = useId();
|
|
139
161
|
|
|
140
162
|
// for context, used by Menu.Item
|
|
141
163
|
var onSelect = React.useCallback(function (selection) {
|
|
@@ -146,6 +168,8 @@ var MenuImperative_ = /*#__PURE__*/React.forwardRef(function Menu(_ref, forwardR
|
|
|
146
168
|
return createSensors(ref, circular, onChangeHighlight);
|
|
147
169
|
}, [circular, onChangeHighlight]),
|
|
148
170
|
handleItemHover = _useMemo.handleItemHover,
|
|
171
|
+
handleItemFocus = _useMemo.handleItemFocus,
|
|
172
|
+
handleItemBlur = _useMemo.handleItemBlur,
|
|
149
173
|
defaultKeyDownNavigationHandler = _useMemo.handleKeyDown,
|
|
150
174
|
highlight = _useMemo.highlight,
|
|
151
175
|
highlighted = _useMemo.highlighted,
|
|
@@ -157,7 +181,8 @@ var MenuImperative_ = /*#__PURE__*/React.forwardRef(function Menu(_ref, forwardR
|
|
|
157
181
|
prev = _useMemo.prev,
|
|
158
182
|
next = _useMemo.next,
|
|
159
183
|
select = _useMemo.select,
|
|
160
|
-
updateSelectCallback = _useMemo.updateSelectCallback
|
|
184
|
+
updateSelectCallback = _useMemo.updateSelectCallback,
|
|
185
|
+
setIsDragging = _useMemo.setIsDragging;
|
|
161
186
|
var commonA11yOptionProps = _defineProperty({
|
|
162
187
|
role: role,
|
|
163
188
|
id: id
|
|
@@ -189,19 +214,53 @@ var MenuImperative_ = /*#__PURE__*/React.forwardRef(function Menu(_ref, forwardR
|
|
|
189
214
|
});
|
|
190
215
|
useEffect(rehighlightCurrent);
|
|
191
216
|
function onDragStart(start, provided) {
|
|
192
|
-
|
|
193
|
-
provided.announce(NO_ANNOUCEMENT);
|
|
217
|
+
var _findGroupByDroppable, _findGroupByDroppable2;
|
|
194
218
|
var itemInfo = JSON.parse(start.draggableId);
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
219
|
+
// flushSync needed to ensure proper behavior in Safari
|
|
220
|
+
flushSync(function () {
|
|
221
|
+
return setCurrentlyDroppableIn(itemInfo.droppableIn);
|
|
222
|
+
});
|
|
223
|
+
setIsDragging(true);
|
|
224
|
+
var startPosition = start.source.index + 1;
|
|
225
|
+
var startGroupTitle = (_findGroupByDroppable = (_findGroupByDroppable2 = findGroupByDroppableId(ref.current, start.source.droppableId)) === null || _findGroupByDroppable2 === void 0 ? void 0 : _findGroupByDroppable2.getAttribute('data-title')) !== null && _findGroupByDroppable !== void 0 ? _findGroupByDroppable : '';
|
|
226
|
+
var announcement = startGroupTitle ? i18n.t('core.menuImperative.dragStartWithGroup', {
|
|
227
|
+
startPosition: startPosition,
|
|
228
|
+
startGroupTitle: startGroupTitle
|
|
229
|
+
}) : i18n.t('core.menuImperative.dragStart', {
|
|
230
|
+
startPosition: startPosition
|
|
231
|
+
});
|
|
232
|
+
provided.announce(announcement);
|
|
200
233
|
}
|
|
234
|
+
var onDragUpdate = React.useCallback(function (_update, provided) {
|
|
235
|
+
var _findGroupByDroppable3, _findGroupByDroppable4, _update$destination, _findGroupByDroppable5, _findGroupByDroppable6;
|
|
236
|
+
var startPosition = _update.source.index + 1;
|
|
237
|
+
var startGroupTitle = (_findGroupByDroppable3 = (_findGroupByDroppable4 = findGroupByDroppableId(ref.current, _update.source.droppableId)) === null || _findGroupByDroppable4 === void 0 ? void 0 : _findGroupByDroppable4.getAttribute('data-title')) !== null && _findGroupByDroppable3 !== void 0 ? _findGroupByDroppable3 : '';
|
|
238
|
+
var endPosition = ((_update$destination = _update.destination) === null || _update$destination === void 0 ? void 0 : _update$destination.index) + 1;
|
|
239
|
+
var endGroupTitle = _update.destination ? (_findGroupByDroppable5 = (_findGroupByDroppable6 = findGroupByDroppableId(ref.current, _update.destination.droppableId)) === null || _findGroupByDroppable6 === void 0 ? void 0 : _findGroupByDroppable6.getAttribute('data-title')) !== null && _findGroupByDroppable5 !== void 0 ? _findGroupByDroppable5 : '' : '';
|
|
240
|
+
var announcement = startGroupTitle === endGroupTitle || !endGroupTitle || !startGroupTitle ? i18n.t('core.menuImperative.dragUpdate', {
|
|
241
|
+
startPosition: startPosition,
|
|
242
|
+
endPosition: endPosition
|
|
243
|
+
}) : i18n.t('core.menuImperative.dragUpdateWithGroup', {
|
|
244
|
+
startPosition: startPosition,
|
|
245
|
+
endPosition: endPosition,
|
|
246
|
+
startGroupTitle: startGroupTitle,
|
|
247
|
+
endGroupTitle: endGroupTitle
|
|
248
|
+
});
|
|
249
|
+
provided.announce(announcement);
|
|
250
|
+
}, []);
|
|
201
251
|
var onDragEnd = React.useCallback(function (result, provided) {
|
|
202
|
-
|
|
203
|
-
|
|
252
|
+
var _result$destination, _findGroupByDroppable7, _findGroupByDroppable8;
|
|
253
|
+
var endPosition = ((_result$destination = result.destination) === null || _result$destination === void 0 ? void 0 : _result$destination.index) + 1;
|
|
254
|
+
var endGroupTitle = result.destination ? (_findGroupByDroppable7 = (_findGroupByDroppable8 = findGroupByDroppableId(ref.current, result.destination.droppableId)) === null || _findGroupByDroppable8 === void 0 ? void 0 : _findGroupByDroppable8.getAttribute('data-title')) !== null && _findGroupByDroppable7 !== void 0 ? _findGroupByDroppable7 : '' : '';
|
|
255
|
+
var announcement = endGroupTitle ? i18n.t('core.menuImperative.dragEndWithGroup', {
|
|
256
|
+
endPosition: endPosition,
|
|
257
|
+
endGroupTitle: endGroupTitle
|
|
258
|
+
}) : i18n.t('core.menuImperative.dragEnd', {
|
|
259
|
+
endPosition: endPosition
|
|
260
|
+
});
|
|
261
|
+
provided.announce(announcement);
|
|
204
262
|
setCurrentlyDroppableIn([]);
|
|
263
|
+
setIsDragging(false);
|
|
205
264
|
if (result.reason === 'DROP' && result.destination) {
|
|
206
265
|
var itemInfo = JSON.parse(result.draggableId);
|
|
207
266
|
onDragEnd_({
|
|
@@ -210,7 +269,7 @@ var MenuImperative_ = /*#__PURE__*/React.forwardRef(function Menu(_ref, forwardR
|
|
|
210
269
|
destination: result.destination
|
|
211
270
|
});
|
|
212
271
|
}
|
|
213
|
-
}, [onDragEnd_]);
|
|
272
|
+
}, [onDragEnd_, setIsDragging]);
|
|
214
273
|
|
|
215
274
|
// for context, used by Menu.Options
|
|
216
275
|
var onScrollBottom = React.useCallback(function (e) {
|
|
@@ -222,7 +281,10 @@ var MenuImperative_ = /*#__PURE__*/React.forwardRef(function Menu(_ref, forwardR
|
|
|
222
281
|
value: {
|
|
223
282
|
a11yOptionsProps: a11yOptionsProps,
|
|
224
283
|
currentlyDroppableIn: currentlyDroppableIn,
|
|
284
|
+
dndInstructionsId: dndInstructionsId,
|
|
225
285
|
onHoverItem: handleItemHover,
|
|
286
|
+
onFocusItem: handleItemFocus,
|
|
287
|
+
onBlurItem: handleItemBlur,
|
|
226
288
|
onScrollBottom: onScrollBottom,
|
|
227
289
|
onSelect: onSelect,
|
|
228
290
|
role: role
|
|
@@ -233,15 +295,19 @@ var MenuImperative_ = /*#__PURE__*/React.forwardRef(function Menu(_ref, forwardR
|
|
|
233
295
|
onDragStart: onDragStart,
|
|
234
296
|
onDragUpdate: onDragUpdate,
|
|
235
297
|
onDragEnd: onDragEnd
|
|
236
|
-
}, /*#__PURE__*/React.createElement(StyledMenu, props)))
|
|
298
|
+
}, /*#__PURE__*/React.createElement(StyledMenu, props))), /*#__PURE__*/React.createElement("div", {
|
|
299
|
+
id: dndInstructionsId,
|
|
300
|
+
hidden: true
|
|
301
|
+
}, i18n.t('core.menuImperative.dragAndDropInstructions')));
|
|
237
302
|
});
|
|
238
303
|
export var Group = /*#__PURE__*/React.forwardRef(function Group(_ref2, ref) {
|
|
239
304
|
var clickable = _ref2.clickable,
|
|
240
305
|
_ref2$item = _ref2.item,
|
|
241
306
|
item = _ref2$item === void 0 ? 'group' : _ref2$item,
|
|
242
|
-
id = _ref2.id,
|
|
243
307
|
label = _ref2.label,
|
|
308
|
+
labelId = _ref2.labelId,
|
|
244
309
|
children = _ref2.children,
|
|
310
|
+
id = _ref2.id,
|
|
245
311
|
props = _objectWithoutProperties(_ref2, _excluded2);
|
|
246
312
|
var _useLabel = useLabel({
|
|
247
313
|
id: id,
|
|
@@ -250,10 +316,19 @@ export var Group = /*#__PURE__*/React.forwardRef(function Group(_ref2, ref) {
|
|
|
250
316
|
}),
|
|
251
317
|
fieldProps = _useLabel.fieldProps,
|
|
252
318
|
labelProps = _useLabel.labelProps;
|
|
319
|
+
if (labelId) {
|
|
320
|
+
fieldProps = _objectSpread(_objectSpread({}, fieldProps), {}, {
|
|
321
|
+
'aria-labelledby': labelId
|
|
322
|
+
});
|
|
323
|
+
labelProps = _objectSpread(_objectSpread({}, labelProps), {}, {
|
|
324
|
+
id: labelId
|
|
325
|
+
});
|
|
326
|
+
}
|
|
253
327
|
return /*#__PURE__*/React.createElement(StyledGroup, _extends({
|
|
254
328
|
ref: ref,
|
|
255
329
|
"data-group": true,
|
|
256
330
|
"data-value": JSON.stringify(item),
|
|
331
|
+
"data-title": label,
|
|
257
332
|
role: label ? 'group' : 'separator'
|
|
258
333
|
}, fieldProps, props), /*#__PURE__*/React.createElement(StyledGroupLabel, labelProps, label !== null && label !== void 0 ? label : children), label ? children : null);
|
|
259
334
|
});
|
|
@@ -278,7 +353,8 @@ function findDraggableRecursively(children, draggableId) {
|
|
|
278
353
|
}
|
|
279
354
|
export function Droppable(_ref3) {
|
|
280
355
|
var id = _ref3.id,
|
|
281
|
-
children = _ref3.children
|
|
356
|
+
children = _ref3.children,
|
|
357
|
+
props = _objectWithoutProperties(_ref3, _excluded3);
|
|
282
358
|
var ctx = useMenuContext();
|
|
283
359
|
var cloneZIndex = useZIndexContext().value;
|
|
284
360
|
function renderItemClone(provided, _snapshot, rubric) {
|
|
@@ -289,7 +365,8 @@ export function Droppable(_ref3) {
|
|
|
289
365
|
return /*#__PURE__*/React.createElement(ClonedItem, _extends({
|
|
290
366
|
hasCheckbox: (draggingChild === null || draggingChild === void 0 ? void 0 : draggingChild.type) === CheckboxItem,
|
|
291
367
|
provided: provided,
|
|
292
|
-
cloneZIndex: cloneZIndex
|
|
368
|
+
cloneZIndex: cloneZIndex,
|
|
369
|
+
dndInstructionsId: ctx.dndInstructionsId
|
|
293
370
|
}, cloneProps));
|
|
294
371
|
}
|
|
295
372
|
return /*#__PURE__*/React.createElement(DndDroppable, {
|
|
@@ -297,10 +374,13 @@ export function Droppable(_ref3) {
|
|
|
297
374
|
isDropDisabled: !ctx.currentlyDroppableIn.includes(id),
|
|
298
375
|
renderClone: renderItemClone
|
|
299
376
|
}, function (provided, snapshot) {
|
|
300
|
-
return /*#__PURE__*/React.createElement(StyledDroppable, {
|
|
377
|
+
return /*#__PURE__*/React.createElement(StyledDroppable, _extends({
|
|
301
378
|
ref: provided.innerRef,
|
|
302
|
-
"data-droppable": true
|
|
303
|
-
|
|
379
|
+
"data-droppable": true,
|
|
380
|
+
"data-droppable-id": id
|
|
381
|
+
}, props), /*#__PURE__*/React.createElement(IsInsideDroppableContext.Provider, {
|
|
382
|
+
value: true
|
|
383
|
+
}, children, provided.placeholder));
|
|
304
384
|
});
|
|
305
385
|
}
|
|
306
386
|
|
|
@@ -315,8 +395,10 @@ var ClonedItem = function ClonedItem(_ref4) {
|
|
|
315
395
|
_ref4$selected = _ref4.selected,
|
|
316
396
|
selected = _ref4$selected === void 0 ? false : _ref4$selected,
|
|
317
397
|
provided = _ref4.provided,
|
|
318
|
-
|
|
398
|
+
dndInstructionsId = _ref4.dndInstructionsId,
|
|
399
|
+
props = _objectWithoutProperties(_ref4, _excluded4);
|
|
319
400
|
var itemProps = _objectSpread(_objectSpread({}, props), {}, {
|
|
401
|
+
'aria-describedby': dndInstructionsId,
|
|
320
402
|
$selected: selected
|
|
321
403
|
});
|
|
322
404
|
var itemChildren = hasCheckbox ? /*#__PURE__*/React.createElement(Checkbox, {
|
|
@@ -362,9 +444,10 @@ forwardRef) {
|
|
|
362
444
|
draggableId = _ref5.draggableId,
|
|
363
445
|
draggableIndex = _ref5.draggableIndex,
|
|
364
446
|
droppableIn = _ref5.droppableIn,
|
|
365
|
-
props = _objectWithoutProperties(_ref5,
|
|
447
|
+
props = _objectWithoutProperties(_ref5, _excluded5);
|
|
366
448
|
var id = useId(_id);
|
|
367
449
|
var ctx = useMenuContext();
|
|
450
|
+
var isInsideDroppable = useIsInsideDroppable();
|
|
368
451
|
var onClick = React.useCallback(function (event) {
|
|
369
452
|
if (disabled) return;
|
|
370
453
|
onClick_(event);
|
|
@@ -381,20 +464,30 @@ forwardRef) {
|
|
|
381
464
|
var ariaSelected;
|
|
382
465
|
if (ctx.role === 'listbox') {
|
|
383
466
|
contextRole = 'option';
|
|
384
|
-
ariaSelected = selected ? true : undefined;
|
|
385
467
|
} else if (ctx.role === 'menu') {
|
|
386
468
|
contextRole = 'menuitem';
|
|
387
469
|
}
|
|
470
|
+
if ([role, contextRole].includes('option')) {
|
|
471
|
+
ariaSelected = selected ? true : undefined;
|
|
472
|
+
}
|
|
473
|
+
var ariaDescribedBy = isInsideDroppable ? ctx.dndInstructionsId : undefined;
|
|
388
474
|
var itemProps = _objectSpread(_objectSpread({
|
|
389
475
|
'aria-disabled': disabled ? true : undefined,
|
|
390
|
-
'aria-
|
|
476
|
+
'aria-describedby': ariaDescribedBy
|
|
391
477
|
}, props), {}, {
|
|
478
|
+
'aria-selected': ariaSelected,
|
|
392
479
|
id: id,
|
|
393
480
|
role: role !== null && role !== void 0 ? role : contextRole,
|
|
394
481
|
onClick: onClick,
|
|
395
482
|
onMouseMove: function onMouseMove(e) {
|
|
396
483
|
return ctx.onHoverItem(e.currentTarget);
|
|
397
484
|
},
|
|
485
|
+
onFocus: function onFocus(e) {
|
|
486
|
+
return ctx.onFocusItem(e.currentTarget);
|
|
487
|
+
},
|
|
488
|
+
onBlur: function onBlur(e) {
|
|
489
|
+
return ctx.onBlurItem(e.currentTarget);
|
|
490
|
+
},
|
|
398
491
|
'data-group': false,
|
|
399
492
|
'data-value': JSON.stringify(item),
|
|
400
493
|
'data-selected': selected,
|
|
@@ -420,8 +513,7 @@ forwardRef) {
|
|
|
420
513
|
as: as
|
|
421
514
|
}, provided.draggableProps, provided.dragHandleProps, itemProps, {
|
|
422
515
|
$isDraggable: !disabled,
|
|
423
|
-
style: _objectSpread(_objectSpread({}, provided.draggableProps.style), itemProps.style)
|
|
424
|
-
tabIndex: -1
|
|
516
|
+
style: _objectSpread(_objectSpread({}, provided.draggableProps.style), itemProps.style)
|
|
425
517
|
}), !disabled && /*#__PURE__*/React.createElement(StyledGrip, null, /*#__PURE__*/React.createElement(Grip, {
|
|
426
518
|
color: colors.gray45
|
|
427
519
|
})), children);
|
|
@@ -444,7 +536,7 @@ export var CheckboxItem = /*#__PURE__*/React.forwardRef(function CheckboxItem(_r
|
|
|
444
536
|
_ref6$children = _ref6.children,
|
|
445
537
|
children = _ref6$children === void 0 ? null : _ref6$children,
|
|
446
538
|
role = _ref6.role,
|
|
447
|
-
props = _objectWithoutProperties(_ref6,
|
|
539
|
+
props = _objectWithoutProperties(_ref6, _excluded6);
|
|
448
540
|
var ctx = useMenuContext();
|
|
449
541
|
var contextRole;
|
|
450
542
|
var ariaChecked;
|
|
@@ -494,7 +586,7 @@ export var Search = function Search(_ref7) {
|
|
|
494
586
|
placeholder = _ref7.placeholder,
|
|
495
587
|
_onChange = _ref7.onChange,
|
|
496
588
|
valueProp = _ref7.value,
|
|
497
|
-
props = _objectWithoutProperties(_ref7,
|
|
589
|
+
props = _objectWithoutProperties(_ref7, _excluded7);
|
|
498
590
|
var I18n = useI18nContext();
|
|
499
591
|
var isControlled = valueProp !== undefined;
|
|
500
592
|
var _React$useState3 = React.useState(''),
|
|
@@ -533,7 +625,7 @@ export var Header = /*#__PURE__*/React.forwardRef(function Header(_ref8, ref) {
|
|
|
533
625
|
export var Footer = /*#__PURE__*/React.forwardRef(function Footer(_ref9, ref) {
|
|
534
626
|
var _ref9$padding = _ref9.padding,
|
|
535
627
|
padding = _ref9$padding === void 0 ? 'md lg' : _ref9$padding,
|
|
536
|
-
props = _objectWithoutProperties(_ref9,
|
|
628
|
+
props = _objectWithoutProperties(_ref9, _excluded8);
|
|
537
629
|
return /*#__PURE__*/React.createElement(StyledFooter, _extends({
|
|
538
630
|
ref: ref,
|
|
539
631
|
padding: padding
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuImperative.js","names":["DragDropContext","Draggable","Droppable","DndDroppable","Grip","useLabel","useId","React","isValidElement","useEffect","useMemo","useState","Checkbox","FakeCheckbox","Typeahead","useI18nContext","useZIndexContext","colors","addSubcomponents","mergeRefs","StyledDroppable","StyledFooter","StyledGrip","StyledGroup","StyledGroupLabel","StyledHeader","StyledItem","StyledMenu","StyledOptions","StyledSearch","StyledWrapper","createSensors","onScrollBottomThreshold","NO_ANNOUCEMENT","noop","isScrolledToBottom","e","currentTarget","HTMLElement","scrollTop","scrollHeight","clientHeight","MenuContext","createContext","a11yOptionsProps","currentlyDroppableIn","onHoverItem","onScrollBottom","onSelect","role","useMenuContext","context","useContext","Error","useMenuImperativeControlNavigation","ref","enable","arguments","length","undefined","options","_id","menuId","id","_React$useState","_React$useState2","_slicedToArray","activeDescendant","setActiveDescendant","_useState","_useState2","onKeyDown","setOnKeyDown","_ref$current","current","defaultKeyDownNavigationHandler","menuNavigationTriggerProps","menuProps","onChangeActiveDescendant","changeAriaActiveDescendantOnOptions","menuRef","querySelector","setAttribute","MenuImperative_","forwardRef","Menu","_ref","_ref$circular","circular","_ref$onDragEnd","onDragEnd","onDragEnd_","_ref$onScrollBottom","onScrollBottom_","_ref$onSelect","onSelect_","_ref$role","onKeyboardNavigation_","onKeyboardNavigation","multiple","props","_objectWithoutProperties","_excluded","useRef","_useState3","_useState4","setCurrentlyDroppableIn","useCallback","selection","onChangeHighlight","_useMemo","handleItemHover","handleKeyDown","highlight","highlighted","highlightFirst","highlightLast","highlightSelected","highlightSuggested","rehighlightCurrent","prev","next","select","updateSelectCallback","commonA11yOptionProps","_defineProperty","_objectSpread","tabIndex","useImperativeHandle","el","onDragStart","start","provided","announce","itemInfo","JSON","parse","draggableId","droppableIn","onDragUpdate","_update","result","reason","destination","source","createElement","Provider","value","Group","_ref2","clickable","_ref2$item","item","label","children","_excluded2","_useLabel","labelElementType","fieldProps","labelProps","_extends","stringify","findDraggableRecursively","nodeChildren","Children","toArray","i","child","matchingChild","_ref3","ctx","cloneZIndex","renderItemClone","_snapshot","rubric","_draggingChild$props","draggableInfo","draggingChild","cloneProps","ClonedItem","hasCheckbox","type","CheckboxItem","droppableId","isDropDisabled","includes","renderClone","snapshot","innerRef","placeholder","_ref4","_ref4$hasCheckbox","_ref4$children","_ref4$selected","selected","_excluded3","itemProps","$selected","itemChildren","indeterminate","error","checked","onChange","draggableProps","dragHandleProps","$isDraggable","$isDragging","style","zIndex","color","gray45","Item","_ref5","as","_ref5$children","_ref5$item","_ref5$onClick","onClick","onClick_","_ref5$selected","_ref5$suggested","suggested","_ref5$disabled","disabled","restoreFocus","draggableIndex","_excluded4","event","group","action","contextRole","ariaSelected","onMouseMove","$disabled","droppableInfo","Array","isArray","index","isDragDisabled","_ref6","_ref6$selected","_ref6$disabled","_ref6$error","_ref6$indeterminate","_ref6$children","_excluded5","ariaChecked","Options","i18n","t","onScroll","Search","_ref7","className","_ref7$i18nScope","i18nScope","_onChange","valueProp","_excluded6","I18n","isControlled","_React$useState3","_React$useState4","internalValue","setInternalValue","autoFocus","scope","Header","_ref8","_objectDestructuringEmpty","Footer","_ref9","_ref9$padding","padding","_excluded7","displayName","MenuImperative"],"sources":["../../src/MenuImperative/MenuImperative.tsx"],"sourcesContent":["import type {\n DraggableProvided,\n DraggableRubric,\n DraggableStateSnapshot,\n DragStart,\n DragUpdate,\n DroppableProvided,\n DroppableStateSnapshot,\n DropResult,\n ResponderProvided,\n} from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-migration'\nimport {\n DragDropContext,\n Draggable,\n Droppable as DndDroppable,\n} from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-migration'\nimport { Grip } from '@procore/core-icons/dist'\nimport { useLabel } from '@react-aria/label'\nimport { useId } from '@react-aria/utils'\nimport React, { isValidElement, useEffect, useMemo, useState } from 'react'\nimport type { CheckboxProps } from '../Checkbox'\nimport { Checkbox, FakeCheckbox } from '../Checkbox/Checkbox'\nimport type { TypeaheadProps } from '../Typeahead'\nimport { Typeahead } from '../Typeahead'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useZIndexContext } from '../_hooks/ZIndex'\nimport { colors } from '../_styles/colors'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { PolymorphicAs } from '../_utils/polymorphic'\nimport {\n StyledDroppable,\n StyledFooter,\n StyledGrip,\n StyledGroup,\n StyledGroupLabel,\n StyledHeader,\n StyledItem,\n StyledMenu,\n StyledOptions,\n StyledSearch,\n StyledWrapper,\n} from './MenuImperative.styles'\nimport type {\n ControlNavigationProps,\n ControlNavigationReturn,\n DroppableProps,\n FooterProps,\n GroupProps,\n HeaderProps,\n ItemProps,\n ItemWithDraggingProps,\n MenuContext as IMenuContext,\n MenuItemDefaultElement,\n MenuItemProps,\n MenuProps,\n MenuRef,\n MenuSearchProps,\n OptionsProps,\n Selection,\n} from './MenuImperative.types'\nimport { createSensors } from './sensors'\n\nconst onScrollBottomThreshold = 8\nconst NO_ANNOUCEMENT = ''\n\nfunction noop() {}\n\nfunction isScrolledToBottom(e: React.UIEvent<HTMLDivElement, UIEvent>) {\n return (\n e.currentTarget instanceof HTMLElement &&\n e.currentTarget.scrollTop >=\n e.currentTarget.scrollHeight -\n e.currentTarget.clientHeight -\n onScrollBottomThreshold\n )\n}\n\nexport const MenuContext = React.createContext<IMenuContext>({\n a11yOptionsProps: {},\n currentlyDroppableIn: [],\n onHoverItem: noop,\n onScrollBottom: noop,\n onSelect: noop,\n role: 'none',\n})\n\nexport function useMenuContext(): IMenuContext {\n const context = React.useContext(MenuContext)\n\n if (context === null) {\n throw new Error(\n 'Cannot find `Menu` context, please wrap your component in `<MenuContext.Provider>`'\n )\n }\n\n return context\n}\n\n/**\n * Usefully if navigation is controlled by search input or another input.\n *\n * @param ref MenuImperative ref\n * @param enable True by default. Setting to false will change all props\n * to undefined (except id in menuProps), so navigation controlled by menu itself is restored.\n * @param options.menuId provide id otherwise it will be generated\n * @since 11.5.0\n */\nexport const useMenuImperativeControlNavigation = (\n ref: React.RefObject<MenuRef>,\n enable = true,\n options: ControlNavigationProps = {}\n): ControlNavigationReturn => {\n const { menuId: _id } = options\n const id = useId(_id)\n const [activeDescendant, setActiveDescendant] = React.useState<\n string | undefined\n >()\n const [onKeyDown, setOnKeyDown] = useState<React.KeyboardEventHandler>()\n // ref is null on first render\n React.useEffect(() => {\n setOnKeyDown(() => ref.current?.defaultKeyDownNavigationHandler)\n }, [])\n\n if (enable) {\n const menuNavigationTriggerProps = {\n 'aria-activedescendant': activeDescendant,\n 'aria-controls': id,\n onKeyDown,\n }\n\n const menuProps = {\n onChangeActiveDescendant: setActiveDescendant,\n id,\n }\n\n return {\n menuNavigationTriggerProps,\n menuProps,\n }\n } else {\n return {\n menuNavigationTriggerProps: {},\n menuProps: { id },\n }\n }\n}\n\nfunction changeAriaActiveDescendantOnOptions(id = '', menuRef: Element | null) {\n const options = menuRef?.querySelector<HTMLElement>(\n '[data-internal=\"menuimperative-options\"]'\n )\n\n options?.setAttribute('aria-activedescendant', id)\n}\n\nconst MenuImperative_ = React.forwardRef<MenuRef, MenuProps>(function Menu(\n {\n circular = false,\n onDragEnd: onDragEnd_ = noop,\n onScrollBottom: onScrollBottom_ = noop,\n onSelect: onSelect_ = noop,\n role = 'none',\n onChangeActiveDescendant,\n onKeyboardNavigation: onKeyboardNavigation_,\n id,\n multiple,\n ...props\n },\n forwardRef\n) {\n const ref = React.useRef<HTMLDivElement>(null)\n const [currentlyDroppableIn, setCurrentlyDroppableIn] = useState<string[]>([])\n\n // for context, used by Menu.Item\n const onSelect = React.useCallback(\n function (selection: Selection) {\n onSelect_(selection)\n },\n [onSelect_]\n )\n\n const onChangeHighlight = onChangeActiveDescendant\n ? onChangeActiveDescendant\n : changeAriaActiveDescendantOnOptions\n\n const {\n handleItemHover,\n handleKeyDown: defaultKeyDownNavigationHandler,\n highlight,\n highlighted,\n highlightFirst,\n highlightLast,\n highlightSelected,\n highlightSuggested,\n rehighlightCurrent,\n prev,\n next,\n select,\n updateSelectCallback,\n } = useMemo(\n () => createSensors(ref, circular, onChangeHighlight),\n [circular, onChangeHighlight]\n )\n\n const commonA11yOptionProps = {\n role,\n id,\n ['aria-multiselectable']: multiple,\n }\n\n const a11yOptionsProps = !onChangeActiveDescendant\n ? {\n ...commonA11yOptionProps,\n onKeyDown: onKeyboardNavigation_ ?? defaultKeyDownNavigationHandler,\n tabIndex: 0,\n }\n : {\n ...commonA11yOptionProps,\n onKeyDown: undefined,\n tabIndex: undefined,\n }\n\n updateSelectCallback(onSelect)\n\n // exposes internal menu API\n React.useImperativeHandle(forwardRef, () => ({\n el: ref.current,\n highlight,\n highlighted,\n highlightFirst,\n highlightLast,\n highlightSelected,\n highlightSuggested,\n next,\n prev,\n select,\n defaultKeyDownNavigationHandler,\n }))\n\n useEffect(rehighlightCurrent)\n\n function onDragStart(start: DragStart, provided: ResponderProvided) {\n // TODO Replace with localized instructions\n provided.announce(NO_ANNOUCEMENT)\n const itemInfo = JSON.parse(start.draggableId)\n setCurrentlyDroppableIn(itemInfo.droppableIn)\n }\n\n function onDragUpdate(_update: DragUpdate, provided: ResponderProvided) {\n // TODO Replace with localized instructions\n provided.announce(NO_ANNOUCEMENT)\n }\n\n const onDragEnd = React.useCallback(\n function (result: DropResult, provided: ResponderProvided) {\n // TODO Replace with localized instructions\n provided.announce(NO_ANNOUCEMENT)\n setCurrentlyDroppableIn([])\n if (result.reason === 'DROP' && result.destination) {\n const itemInfo = JSON.parse(result.draggableId)\n onDragEnd_({\n draggableId: itemInfo.draggableId,\n source: result.source,\n destination: result.destination,\n })\n }\n },\n [onDragEnd_]\n )\n\n // for context, used by Menu.Options\n const onScrollBottom = React.useCallback(\n function (e: React.UIEvent<HTMLDivElement, UIEvent>) {\n if (isScrolledToBottom(e)) {\n onScrollBottom_(e)\n }\n },\n [onScrollBottom_]\n )\n\n return (\n <MenuContext.Provider\n value={{\n a11yOptionsProps,\n currentlyDroppableIn,\n onHoverItem: handleItemHover,\n onScrollBottom,\n onSelect,\n role,\n }}\n >\n <StyledWrapper ref={ref}>\n <DragDropContext\n onDragStart={onDragStart}\n onDragUpdate={onDragUpdate}\n onDragEnd={onDragEnd}\n >\n <StyledMenu {...props} />\n </DragDropContext>\n </StyledWrapper>\n </MenuContext.Provider>\n )\n})\n\nexport const Group = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & GroupProps\n>(function Group(\n { clickable, item = 'group', id, label, children, ...props },\n ref\n) {\n const { fieldProps, labelProps } = useLabel({\n id,\n label: label ?? children,\n labelElementType: 'span',\n })\n\n return (\n <StyledGroup\n ref={ref}\n data-group={true}\n data-value={JSON.stringify(item)}\n role={label ? 'group' : 'separator'}\n {...fieldProps}\n {...props}\n >\n <StyledGroupLabel {...labelProps}>{label ?? children}</StyledGroupLabel>\n {label ? children : null}\n </StyledGroup>\n )\n})\n\nfunction findDraggableRecursively(\n children: React.ReactNode,\n draggableId: any\n): React.ReactElement | null {\n const nodeChildren = React.Children.toArray(children)\n for (let i = 0; i < nodeChildren.length; i++) {\n const child = nodeChildren[i]\n if (isValidElement(child)) {\n if ('draggableId' in child.props) {\n if (child.props.draggableId === draggableId) {\n return child\n }\n } else {\n const matchingChild = findDraggableRecursively(\n child.props.children,\n draggableId\n )\n if (matchingChild) {\n return matchingChild\n }\n }\n }\n }\n return null\n}\n\nexport function Droppable({ id, children }: DroppableProps) {\n const ctx = useMenuContext()\n const cloneZIndex = useZIndexContext().value\n\n function renderItemClone(\n provided: DraggableProvided,\n _snapshot: DraggableStateSnapshot,\n rubric: DraggableRubric\n ) {\n const draggableInfo = JSON.parse(rubric.draggableId)\n const draggingChild = findDraggableRecursively(\n children,\n draggableInfo.draggableId\n )\n const cloneProps = draggingChild?.props ?? {}\n\n return (\n <ClonedItem\n hasCheckbox={draggingChild?.type === CheckboxItem}\n provided={provided}\n cloneZIndex={cloneZIndex}\n {...cloneProps}\n />\n )\n }\n\n return (\n <DndDroppable\n droppableId={id}\n isDropDisabled={!ctx.currentlyDroppableIn.includes(id)}\n renderClone={renderItemClone}\n >\n {(provided: DroppableProvided, snapshot: DroppableStateSnapshot) => (\n <StyledDroppable ref={provided.innerRef} data-droppable>\n {children}\n {provided.placeholder}\n </StyledDroppable>\n )}\n </DndDroppable>\n )\n}\n\n// creates a version of a draggable item that can be positioned correctly within modals\n// this should always have the same appearance of an Item or CheckboxItem, but doesn't\n// need to handle selection events, which can't be done while the item is being dragged\nconst ClonedItem = ({\n hasCheckbox = false,\n children = null,\n selected = false,\n provided,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> &\n ItemProps &\n Omit<CheckboxProps, 'checked'> & {\n provided: DraggableProvided\n hasCheckbox: boolean\n cloneZIndex: number\n }) => {\n const itemProps = {\n ...props,\n $selected: selected,\n }\n\n const itemChildren = hasCheckbox ? (\n <Checkbox\n indeterminate={props.indeterminate}\n error={props.error}\n checked={selected}\n onChange={noop}\n >\n {children}\n </Checkbox>\n ) : (\n children\n )\n\n return (\n <StyledItem\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n {...itemProps}\n $isDraggable\n $isDragging\n style={{\n ...provided.draggableProps.style,\n ...props.style,\n zIndex: props.cloneZIndex,\n }}\n >\n <StyledGrip>\n <Grip color={colors.gray45} />\n </StyledGrip>\n {itemChildren}\n </StyledItem>\n )\n}\n\nexport const Item = React.forwardRef(function Item<\n E extends React.ElementType = MenuItemDefaultElement\n>(\n {\n as,\n /* @ts-ignore */\n children = null,\n item = null,\n /* @ts-ignore */\n onClick: onClick_ = noop,\n selected = false,\n suggested = false,\n disabled = false,\n id: _id,\n role,\n restoreFocus,\n draggableId,\n draggableIndex,\n droppableIn,\n ...props\n }: PolymorphicAs.ComponentPropsWithoutRef<MenuItemProps, E>,\n /**\n * TODO: although it is typed just fine from the outside (`<Menu.Item ref>` that is),\n * an effort is required to type it properly here too\n */\n forwardRef: React.Ref<any>\n) {\n const id = useId(_id)\n\n const ctx = useMenuContext()\n\n const onClick = React.useCallback(\n function (event: React.MouseEvent<HTMLDivElement, MouseEvent>) {\n if (disabled) return\n\n onClick_(event)\n\n ctx.onSelect({\n item,\n event,\n group: false,\n action: selected ? 'unselected' : 'selected',\n ...(restoreFocus === undefined ? {} : { restoreFocus }),\n })\n },\n [ctx, item, onClick_, disabled, selected]\n )\n\n let contextRole\n let ariaSelected\n\n if (ctx.role === 'listbox') {\n contextRole = 'option'\n ariaSelected = selected ? true : undefined\n } else if (ctx.role === 'menu') {\n contextRole = 'menuitem'\n }\n\n const itemProps = {\n 'aria-disabled': disabled ? true : undefined,\n 'aria-selected': ariaSelected,\n ...props,\n id,\n role: role ?? contextRole,\n onClick,\n onMouseMove: (e: any) => ctx.onHoverItem(e.currentTarget),\n 'data-group': false,\n 'data-value': JSON.stringify(item),\n 'data-selected': selected,\n 'data-suggested': suggested,\n 'data-disabled': disabled,\n 'data-restorefocus': restoreFocus,\n $disabled: disabled,\n $selected: selected,\n }\n\n if (\n droppableIn !== undefined &&\n draggableId !== undefined &&\n draggableIndex !== undefined\n ) {\n // encoding id and valid droppables as the draggableId, so we can use them to determine where this item can be dropped\n const droppableInfo = {\n draggableId,\n droppableIn: Array.isArray(droppableIn) ? droppableIn : [droppableIn],\n }\n return (\n <Draggable\n draggableId={JSON.stringify(droppableInfo)}\n index={draggableIndex}\n isDragDisabled={disabled}\n >\n {(provided: DraggableProvided) => (\n <StyledItem\n ref={mergeRefs(provided.innerRef, forwardRef)}\n as={as}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n {...itemProps}\n $isDraggable={!disabled}\n style={{ ...provided.draggableProps.style, ...itemProps.style }}\n tabIndex={-1}\n >\n {!disabled && (\n <StyledGrip>\n <Grip color={colors.gray45} />\n </StyledGrip>\n )}\n {children}\n </StyledItem>\n )}\n </Draggable>\n )\n }\n\n return (\n <StyledItem ref={forwardRef} as={as} {...itemProps}>\n {children}\n </StyledItem>\n )\n}) as PolymorphicAs.ComponentWithForwardedRef<\n MenuItemProps,\n MenuItemDefaultElement\n>\n\nexport const CheckboxItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> &\n (ItemProps | ItemWithDraggingProps) &\n Omit<CheckboxProps, 'checked'>\n>(function CheckboxItem(\n {\n selected = false,\n disabled = false,\n error = false,\n indeterminate = false,\n children = null,\n role,\n ...props\n },\n forwardRef\n) {\n const ctx = useMenuContext()\n\n let contextRole\n let ariaChecked: React.AriaAttributes['aria-checked']\n let ariaSelected\n\n if (ctx.role === 'listbox') {\n contextRole = 'option'\n ariaSelected = selected ? true : undefined\n } else if (ctx.role === 'menu') {\n contextRole = 'menuitemcheckbox'\n\n if (indeterminate) {\n ariaChecked = 'mixed'\n } else {\n ariaChecked = selected ? 'true' : 'false'\n }\n }\n\n return (\n <Item\n aria-checked={ariaChecked}\n aria-disabled={disabled ? true : undefined}\n aria-selected={ariaSelected}\n {...props}\n role={role ?? contextRole}\n selected={selected}\n disabled={disabled}\n ref={forwardRef}\n >\n <FakeCheckbox\n indeterminate={indeterminate}\n error={error}\n disabled={disabled}\n checked={selected}\n >\n {children}\n </FakeCheckbox>\n </Item>\n )\n})\nexport const Options = React.forwardRef<HTMLDivElement, OptionsProps>(\n function Options(props, ref) {\n const ctx = useMenuContext()\n const i18n = useI18nContext()\n\n return (\n <StyledOptions\n aria-label={i18n.t('core.menuImperative.options.ariaLabel')}\n {...props}\n {...ctx.a11yOptionsProps}\n data-internal=\"menuimperative-options\"\n ref={ref}\n onScroll={ctx.onScrollBottom}\n />\n )\n }\n)\n\nexport const Search = ({\n className,\n i18nScope = 'core.menu',\n placeholder,\n onChange: _onChange,\n value: valueProp,\n ...props\n}: MenuSearchProps) => {\n const I18n = useI18nContext()\n\n const isControlled = valueProp !== undefined\n const [internalValue, setInternalValue] = React.useState('')\n const value = isControlled ? valueProp : internalValue\n\n const onChange: NonNullable<TypeaheadProps['onChange']> = React.useCallback(\n function (value, event) {\n if (!isControlled) {\n setInternalValue(value)\n }\n _onChange?.(event as unknown as React.ChangeEvent<HTMLInputElement>)\n },\n [_onChange, isControlled]\n )\n\n // intentionally changed to type text + searchbox,\n // voiceOver focus goes to clear button when no results in Chrome\n return (\n <StyledSearch className={className}>\n <Typeahead\n {...props}\n type=\"text\"\n role=\"searchbox\"\n autoFocus={true}\n placeholder={placeholder || I18n.t('search', { scope: i18nScope })}\n onChange={onChange}\n value={value}\n />\n </StyledSearch>\n )\n}\n\nexport const Header = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & HeaderProps\n>(function Header({ ...props }, ref) {\n return <StyledHeader ref={ref} {...props} />\n})\n\nexport const Footer = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & FooterProps\n>(function Footer({ padding = 'md lg', ...props }, ref) {\n return <StyledFooter ref={ref} padding={padding} {...props} />\n})\n\nMenuImperative_.displayName = 'Menu'\n\nDroppable.displayName = 'Menu.Droppable'\n\nFooter.displayName = 'Menu.Footer'\n\nGroup.displayName = 'Menu.Group'\n\nHeader.displayName = 'Menu.Header'\n\nItem.displayName = 'Menu.Item'\n\nOptions.displayName = 'Menu.Options'\n\nSearch.displayName = 'Menu.Search'\n\n/**\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-menu-imperative--demo)\n\n */\nexport const MenuImperative = addSubcomponents(\n {\n CheckboxItem,\n Droppable,\n Footer,\n Group,\n Header,\n Item,\n Options,\n Search,\n },\n MenuImperative_\n)\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MenuImperative.js","names":["DragDropContext","Draggable","Droppable","DndDroppable","Grip","useLabel","useId","React","isValidElement","useEffect","useMemo","useState","flushSync","Checkbox","FakeCheckbox","Typeahead","useI18nContext","useZIndexContext","colors","addSubcomponents","mergeRefs","StyledDroppable","StyledFooter","StyledGrip","StyledGroup","StyledGroupLabel","StyledHeader","StyledItem","StyledMenu","StyledOptions","StyledSearch","StyledWrapper","createSensors","onScrollBottomThreshold","findGroupByDroppableId","container","droppableId","droppable","querySelector","concat","group","closest","noop","isScrolledToBottom","e","currentTarget","HTMLElement","scrollTop","scrollHeight","clientHeight","MenuContext","createContext","a11yOptionsProps","currentlyDroppableIn","dndInstructionsId","onHoverItem","onFocusItem","onBlurItem","onScrollBottom","onSelect","role","useMenuContext","context","useContext","Error","IsInsideDroppableContext","useIsInsideDroppable","useMenuImperativeControlNavigation","ref","enable","arguments","length","undefined","options","_id","menuId","id","_React$useState","_React$useState2","_slicedToArray","activeDescendant","setActiveDescendant","_useState","_useState2","onKeyDown","setOnKeyDown","_ref$current","current","defaultKeyDownNavigationHandler","menuNavigationTriggerProps","menuProps","onChangeActiveDescendant","changeAriaActiveDescendantOnOptions","menuRef","setAttribute","MenuImperative_","forwardRef","Menu","_ref","_ref$circular","circular","_ref$onDragEnd","onDragEnd","onDragEnd_","_ref$onScrollBottom","onScrollBottom_","_ref$onSelect","onSelect_","_ref$role","onKeyboardNavigation_","onKeyboardNavigation","multiple","props","_objectWithoutProperties","_excluded","useRef","_useState3","_useState4","setCurrentlyDroppableIn","i18n","useCallback","selection","onChangeHighlight","_useMemo","handleItemHover","handleItemFocus","handleItemBlur","handleKeyDown","highlight","highlighted","highlightFirst","highlightLast","highlightSelected","highlightSuggested","rehighlightCurrent","prev","next","select","updateSelectCallback","setIsDragging","commonA11yOptionProps","_defineProperty","_objectSpread","tabIndex","useImperativeHandle","el","onDragStart","start","provided","_findGroupByDroppable","_findGroupByDroppable2","itemInfo","JSON","parse","draggableId","droppableIn","startPosition","source","index","startGroupTitle","getAttribute","announcement","t","announce","onDragUpdate","_update","_findGroupByDroppable3","_findGroupByDroppable4","_update$destination","_findGroupByDroppable5","_findGroupByDroppable6","endPosition","destination","endGroupTitle","result","_result$destination","_findGroupByDroppable7","_findGroupByDroppable8","reason","createElement","Provider","value","hidden","Group","_ref2","clickable","_ref2$item","item","label","labelId","children","_excluded2","_useLabel","labelElementType","fieldProps","labelProps","_extends","stringify","findDraggableRecursively","nodeChildren","Children","toArray","i","child","matchingChild","_ref3","_excluded3","ctx","cloneZIndex","renderItemClone","_snapshot","rubric","_draggingChild$props","draggableInfo","draggingChild","cloneProps","ClonedItem","hasCheckbox","type","CheckboxItem","isDropDisabled","includes","renderClone","snapshot","innerRef","placeholder","_ref4","_ref4$hasCheckbox","_ref4$children","_ref4$selected","selected","_excluded4","itemProps","$selected","itemChildren","indeterminate","error","checked","onChange","draggableProps","dragHandleProps","$isDraggable","$isDragging","style","zIndex","color","gray45","Item","_ref5","as","_ref5$children","_ref5$item","_ref5$onClick","onClick","onClick_","_ref5$selected","_ref5$suggested","suggested","_ref5$disabled","disabled","restoreFocus","draggableIndex","_excluded5","isInsideDroppable","event","action","contextRole","ariaSelected","ariaDescribedBy","onMouseMove","onFocus","onBlur","$disabled","droppableInfo","Array","isArray","isDragDisabled","_ref6","_ref6$selected","_ref6$disabled","_ref6$error","_ref6$indeterminate","_ref6$children","_excluded6","ariaChecked","Options","onScroll","Search","_ref7","className","_ref7$i18nScope","i18nScope","_onChange","valueProp","_excluded7","I18n","isControlled","_React$useState3","_React$useState4","internalValue","setInternalValue","autoFocus","scope","Header","_ref8","_objectDestructuringEmpty","Footer","_ref9","_ref9$padding","padding","_excluded8","displayName","MenuImperative"],"sources":["../../src/MenuImperative/MenuImperative.tsx"],"sourcesContent":["import type {\n DraggableProvided,\n DraggableRubric,\n DraggableStateSnapshot,\n DragStart,\n DragUpdate,\n DroppableProvided,\n DroppableStateSnapshot,\n DropResult,\n ResponderProvided,\n} from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-migration'\nimport {\n DragDropContext,\n Draggable,\n Droppable as DndDroppable,\n} from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-migration'\nimport { Grip } from '@procore/core-icons/dist'\nimport { useLabel } from '@react-aria/label'\nimport { useId } from '@react-aria/utils'\nimport React, { isValidElement, useEffect, useMemo, useState } from 'react'\nimport { flushSync } from 'react-dom'\nimport type { CheckboxProps } from '../Checkbox'\nimport { Checkbox, FakeCheckbox } from '../Checkbox/Checkbox'\nimport type { TypeaheadProps } from '../Typeahead'\nimport { Typeahead } from '../Typeahead'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useZIndexContext } from '../_hooks/ZIndex'\nimport { colors } from '../_styles/colors'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { PolymorphicAs } from '../_utils/polymorphic'\nimport {\n StyledDroppable,\n StyledFooter,\n StyledGrip,\n StyledGroup,\n StyledGroupLabel,\n StyledHeader,\n StyledItem,\n StyledMenu,\n StyledOptions,\n StyledSearch,\n StyledWrapper,\n} from './MenuImperative.styles'\nimport type {\n ControlNavigationProps,\n ControlNavigationReturn,\n DroppableProps,\n FooterProps,\n GroupProps,\n HeaderProps,\n ItemProps,\n ItemWithDraggingProps,\n MenuContext as IMenuContext,\n MenuItemDefaultElement,\n MenuItemProps,\n MenuProps,\n MenuRef,\n MenuSearchProps,\n OptionsProps,\n Selection,\n} from './MenuImperative.types'\nimport { createSensors } from './sensors'\n\nconst onScrollBottomThreshold = 8\n\n/**\n * Finds the group element for a given droppable ID (from DnD result).\n * Locates the Droppable via data-droppable-id, then returns its parent Group\n * (ancestor with data-group=\"true\") so we can read data-title for announcements.\n */\nfunction findGroupByDroppableId(\n container: HTMLElement | null,\n droppableId: string\n): HTMLElement | null {\n const droppable = container?.querySelector<HTMLElement>(\n `[data-droppable-id=\"${droppableId}\"]`\n )\n if (!droppable) return null\n const group = droppable.closest<HTMLElement>('[data-group=\"true\"]')\n return group ?? null\n}\n\nfunction noop() {}\n\nfunction isScrolledToBottom(e: React.UIEvent<HTMLDivElement, UIEvent>) {\n return (\n e.currentTarget instanceof HTMLElement &&\n e.currentTarget.scrollTop >=\n e.currentTarget.scrollHeight -\n e.currentTarget.clientHeight -\n onScrollBottomThreshold\n )\n}\n\nexport const MenuContext = React.createContext<IMenuContext>({\n a11yOptionsProps: {},\n currentlyDroppableIn: [],\n dndInstructionsId: '',\n onHoverItem: noop,\n onFocusItem: noop,\n onBlurItem: noop,\n onScrollBottom: noop,\n onSelect: noop,\n role: 'none',\n})\n\nexport function useMenuContext(): IMenuContext {\n const context = React.useContext(MenuContext)\n\n if (context === null) {\n throw new Error(\n 'Cannot find `Menu` context, please wrap your component in `<MenuContext.Provider>`'\n )\n }\n\n return context\n}\n\nconst IsInsideDroppableContext = React.createContext(false)\n\nfunction useIsInsideDroppable(): boolean {\n return React.useContext(IsInsideDroppableContext)\n}\n\n/**\n * Usefully if navigation is controlled by search input or another input.\n *\n * @param ref MenuImperative ref\n * @param enable True by default. Setting to false will change all props\n * to undefined (except id in menuProps), so navigation controlled by menu itself is restored.\n * @param options.menuId provide id otherwise it will be generated\n * @since 11.5.0\n */\nexport const useMenuImperativeControlNavigation = (\n ref: React.RefObject<MenuRef>,\n enable = true,\n options: ControlNavigationProps = {}\n): ControlNavigationReturn => {\n const { menuId: _id } = options\n const id = useId(_id)\n const [activeDescendant, setActiveDescendant] = React.useState<\n string | undefined\n >()\n const [onKeyDown, setOnKeyDown] = useState<React.KeyboardEventHandler>()\n // ref is null on first render\n React.useEffect(() => {\n setOnKeyDown(() => ref.current?.defaultKeyDownNavigationHandler)\n }, [])\n\n if (enable) {\n const menuNavigationTriggerProps = {\n 'aria-activedescendant': activeDescendant,\n 'aria-controls': id,\n onKeyDown,\n }\n\n const menuProps = {\n onChangeActiveDescendant: setActiveDescendant,\n id,\n }\n\n return {\n menuNavigationTriggerProps,\n menuProps,\n }\n } else {\n return {\n menuNavigationTriggerProps: {},\n menuProps: { id },\n }\n }\n}\n\nfunction changeAriaActiveDescendantOnOptions(id = '', menuRef: Element | null) {\n const options = menuRef?.querySelector<HTMLElement>(\n '[data-internal=\"menuimperative-options\"]'\n )\n\n options?.setAttribute('aria-activedescendant', id)\n}\n\nconst MenuImperative_ = React.forwardRef<MenuRef, MenuProps>(function Menu(\n {\n circular = false,\n onDragEnd: onDragEnd_ = noop,\n onScrollBottom: onScrollBottom_ = noop,\n onSelect: onSelect_ = noop,\n role = 'none',\n onChangeActiveDescendant,\n onKeyboardNavigation: onKeyboardNavigation_,\n id,\n multiple,\n ...props\n },\n forwardRef\n) {\n const ref = React.useRef<HTMLDivElement>(null)\n const [currentlyDroppableIn, setCurrentlyDroppableIn] = useState<string[]>([])\n const i18n = useI18nContext()\n const dndInstructionsId = useId()\n\n // for context, used by Menu.Item\n const onSelect = React.useCallback(\n function (selection: Selection) {\n onSelect_(selection)\n },\n [onSelect_]\n )\n\n const onChangeHighlight = onChangeActiveDescendant\n ? onChangeActiveDescendant\n : changeAriaActiveDescendantOnOptions\n\n const {\n handleItemHover,\n handleItemFocus,\n handleItemBlur,\n handleKeyDown: defaultKeyDownNavigationHandler,\n highlight,\n highlighted,\n highlightFirst,\n highlightLast,\n highlightSelected,\n highlightSuggested,\n rehighlightCurrent,\n prev,\n next,\n select,\n updateSelectCallback,\n setIsDragging,\n } = useMemo(\n () => createSensors(ref, circular, onChangeHighlight),\n [circular, onChangeHighlight]\n )\n\n const commonA11yOptionProps = {\n role,\n id,\n ['aria-multiselectable']: multiple,\n }\n\n const a11yOptionsProps = !onChangeActiveDescendant\n ? {\n ...commonA11yOptionProps,\n onKeyDown: onKeyboardNavigation_ ?? defaultKeyDownNavigationHandler,\n tabIndex: 0,\n }\n : {\n ...commonA11yOptionProps,\n onKeyDown: undefined,\n tabIndex: undefined,\n }\n\n updateSelectCallback(onSelect)\n\n // exposes internal menu API\n React.useImperativeHandle(forwardRef, () => ({\n el: ref.current,\n highlight,\n highlighted,\n highlightFirst,\n highlightLast,\n highlightSelected,\n highlightSuggested,\n next,\n prev,\n select,\n defaultKeyDownNavigationHandler,\n }))\n\n useEffect(rehighlightCurrent)\n\n function onDragStart(start: DragStart, provided: ResponderProvided) {\n const itemInfo = JSON.parse(start.draggableId)\n // flushSync needed to ensure proper behavior in Safari\n flushSync(() => setCurrentlyDroppableIn(itemInfo.droppableIn))\n setIsDragging(true)\n\n const startPosition = start.source.index + 1\n const startGroupTitle =\n findGroupByDroppableId(\n ref.current,\n start.source.droppableId\n )?.getAttribute('data-title') ?? ''\n\n const announcement = startGroupTitle\n ? i18n.t('core.menuImperative.dragStartWithGroup', {\n startPosition,\n startGroupTitle,\n })\n : i18n.t('core.menuImperative.dragStart', {\n startPosition,\n })\n provided.announce(announcement)\n }\n\n const onDragUpdate = React.useCallback(function (\n _update: DragUpdate,\n provided: ResponderProvided\n ) {\n const startPosition = _update.source.index + 1\n const startGroupTitle =\n findGroupByDroppableId(\n ref.current,\n _update.source.droppableId\n )?.getAttribute('data-title') ?? ''\n\n const endPosition = _update.destination?.index + 1\n const endGroupTitle = _update.destination\n ? findGroupByDroppableId(\n ref.current,\n _update.destination.droppableId\n )?.getAttribute('data-title') ?? ''\n : ''\n\n const announcement =\n startGroupTitle === endGroupTitle || !endGroupTitle || !startGroupTitle\n ? i18n.t('core.menuImperative.dragUpdate', {\n startPosition,\n endPosition,\n })\n : i18n.t('core.menuImperative.dragUpdateWithGroup', {\n startPosition,\n endPosition,\n startGroupTitle,\n endGroupTitle,\n })\n provided.announce(announcement)\n },\n [])\n\n const onDragEnd = React.useCallback(\n function (result: DropResult, provided: ResponderProvided) {\n const endPosition = result.destination?.index + 1\n const endGroupTitle = result.destination\n ? findGroupByDroppableId(\n ref.current,\n result.destination.droppableId\n )?.getAttribute('data-title') ?? ''\n : ''\n\n const announcement = endGroupTitle\n ? i18n.t('core.menuImperative.dragEndWithGroup', {\n endPosition,\n endGroupTitle,\n })\n : i18n.t('core.menuImperative.dragEnd', {\n endPosition,\n })\n provided.announce(announcement)\n setCurrentlyDroppableIn([])\n setIsDragging(false)\n if (result.reason === 'DROP' && result.destination) {\n const itemInfo = JSON.parse(result.draggableId)\n onDragEnd_({\n draggableId: itemInfo.draggableId,\n source: result.source,\n destination: result.destination,\n })\n }\n },\n [onDragEnd_, setIsDragging]\n )\n\n // for context, used by Menu.Options\n const onScrollBottom = React.useCallback(\n function (e: React.UIEvent<HTMLDivElement, UIEvent>) {\n if (isScrolledToBottom(e)) {\n onScrollBottom_(e)\n }\n },\n [onScrollBottom_]\n )\n\n return (\n <MenuContext.Provider\n value={{\n a11yOptionsProps,\n currentlyDroppableIn,\n dndInstructionsId,\n onHoverItem: handleItemHover,\n onFocusItem: handleItemFocus,\n onBlurItem: handleItemBlur,\n onScrollBottom,\n onSelect,\n role,\n }}\n >\n <StyledWrapper ref={ref}>\n <DragDropContext\n onDragStart={onDragStart}\n onDragUpdate={onDragUpdate}\n onDragEnd={onDragEnd}\n >\n <StyledMenu {...props} />\n </DragDropContext>\n </StyledWrapper>\n <div id={dndInstructionsId} hidden>\n {i18n.t('core.menuImperative.dragAndDropInstructions')}\n </div>\n </MenuContext.Provider>\n )\n})\n\nexport const Group = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & GroupProps\n>(function Group(\n { clickable, item = 'group', label, labelId, children, id, ...props },\n ref\n) {\n let { fieldProps, labelProps } = useLabel({\n id,\n label: label ?? children,\n labelElementType: 'span',\n })\n\n if (labelId) {\n fieldProps = {\n ...fieldProps,\n 'aria-labelledby': labelId,\n }\n labelProps = {\n ...labelProps,\n id: labelId,\n }\n }\n\n return (\n <StyledGroup\n ref={ref}\n data-group={true}\n data-value={JSON.stringify(item)}\n data-title={label}\n role={label ? 'group' : 'separator'}\n {...fieldProps}\n {...props}\n >\n <StyledGroupLabel {...labelProps}>{label ?? children}</StyledGroupLabel>\n {label ? children : null}\n </StyledGroup>\n )\n})\n\nfunction findDraggableRecursively(\n children: React.ReactNode,\n draggableId: any\n): React.ReactElement | null {\n const nodeChildren = React.Children.toArray(children)\n for (let i = 0; i < nodeChildren.length; i++) {\n const child = nodeChildren[i]\n if (isValidElement(child)) {\n if ('draggableId' in child.props) {\n if (child.props.draggableId === draggableId) {\n return child\n }\n } else {\n const matchingChild = findDraggableRecursively(\n child.props.children,\n draggableId\n )\n if (matchingChild) {\n return matchingChild\n }\n }\n }\n }\n return null\n}\n\nexport function Droppable({ id, children, ...props }: DroppableProps) {\n const ctx = useMenuContext()\n const cloneZIndex = useZIndexContext().value\n\n function renderItemClone(\n provided: DraggableProvided,\n _snapshot: DraggableStateSnapshot,\n rubric: DraggableRubric\n ) {\n const draggableInfo = JSON.parse(rubric.draggableId)\n const draggingChild = findDraggableRecursively(\n children,\n draggableInfo.draggableId\n )\n const cloneProps = draggingChild?.props ?? {}\n\n return (\n <ClonedItem\n hasCheckbox={draggingChild?.type === CheckboxItem}\n provided={provided}\n cloneZIndex={cloneZIndex}\n dndInstructionsId={ctx.dndInstructionsId}\n {...cloneProps}\n />\n )\n }\n\n return (\n <DndDroppable\n droppableId={id}\n isDropDisabled={!ctx.currentlyDroppableIn.includes(id)}\n renderClone={renderItemClone}\n >\n {(provided: DroppableProvided, snapshot: DroppableStateSnapshot) => (\n <StyledDroppable\n ref={provided.innerRef}\n data-droppable\n data-droppable-id={id}\n {...props}\n >\n <IsInsideDroppableContext.Provider value={true}>\n {children}\n {provided.placeholder}\n </IsInsideDroppableContext.Provider>\n </StyledDroppable>\n )}\n </DndDroppable>\n )\n}\n\n// creates a version of a draggable item that can be positioned correctly within modals\n// this should always have the same appearance of an Item or CheckboxItem, but doesn't\n// need to handle selection events, which can't be done while the item is being dragged\nconst ClonedItem = ({\n hasCheckbox = false,\n children = null,\n selected = false,\n provided,\n dndInstructionsId,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> &\n ItemProps &\n Omit<CheckboxProps, 'checked'> & {\n provided: DraggableProvided\n hasCheckbox: boolean\n cloneZIndex: number\n dndInstructionsId: string\n }) => {\n const itemProps = {\n ...props,\n 'aria-describedby': dndInstructionsId,\n $selected: selected,\n }\n\n const itemChildren = hasCheckbox ? (\n <Checkbox\n indeterminate={props.indeterminate}\n error={props.error}\n checked={selected}\n onChange={noop}\n >\n {children}\n </Checkbox>\n ) : (\n children\n )\n\n return (\n <StyledItem\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n {...itemProps}\n $isDraggable\n $isDragging\n style={{\n ...provided.draggableProps.style,\n ...props.style,\n zIndex: props.cloneZIndex,\n }}\n >\n <StyledGrip>\n <Grip color={colors.gray45} />\n </StyledGrip>\n {itemChildren}\n </StyledItem>\n )\n}\n\nexport const Item = React.forwardRef(function Item<\n E extends React.ElementType = MenuItemDefaultElement\n>(\n {\n as,\n /* @ts-ignore */\n children = null,\n item = null,\n /* @ts-ignore */\n onClick: onClick_ = noop,\n selected = false,\n suggested = false,\n disabled = false,\n id: _id,\n role,\n restoreFocus,\n draggableId,\n draggableIndex,\n droppableIn,\n ...props\n }: PolymorphicAs.ComponentPropsWithoutRef<MenuItemProps, E>,\n /**\n * TODO: although it is typed just fine from the outside (`<Menu.Item ref>` that is),\n * an effort is required to type it properly here too\n */\n forwardRef: React.Ref<any>\n) {\n const id = useId(_id)\n\n const ctx = useMenuContext()\n const isInsideDroppable = useIsInsideDroppable()\n\n const onClick = React.useCallback(\n function (event: React.MouseEvent<HTMLDivElement, MouseEvent>) {\n if (disabled) return\n\n onClick_(event)\n\n ctx.onSelect({\n item,\n event,\n group: false,\n action: selected ? 'unselected' : 'selected',\n ...(restoreFocus === undefined ? {} : { restoreFocus }),\n })\n },\n [ctx, item, onClick_, disabled, selected]\n )\n\n let contextRole\n let ariaSelected\n\n if (ctx.role === 'listbox') {\n contextRole = 'option'\n } else if (ctx.role === 'menu') {\n contextRole = 'menuitem'\n }\n\n if ([role, contextRole].includes('option')) {\n ariaSelected = selected ? true : undefined\n }\n\n const ariaDescribedBy = isInsideDroppable ? ctx.dndInstructionsId : undefined\n\n const itemProps = {\n 'aria-disabled': disabled ? true : undefined,\n 'aria-describedby': ariaDescribedBy,\n ...props,\n 'aria-selected': ariaSelected,\n id,\n role: role ?? contextRole,\n onClick,\n onMouseMove: (e: any) => ctx.onHoverItem(e.currentTarget),\n onFocus: (e: any) => ctx.onFocusItem(e.currentTarget),\n onBlur: (e: any) => ctx.onBlurItem(e.currentTarget),\n 'data-group': false,\n 'data-value': JSON.stringify(item),\n 'data-selected': selected,\n 'data-suggested': suggested,\n 'data-disabled': disabled,\n 'data-restorefocus': restoreFocus,\n $disabled: disabled,\n $selected: selected,\n }\n\n if (\n droppableIn !== undefined &&\n draggableId !== undefined &&\n draggableIndex !== undefined\n ) {\n // encoding id and valid droppables as the draggableId, so we can use them to determine where this item can be dropped\n const droppableInfo = {\n draggableId,\n droppableIn: Array.isArray(droppableIn) ? droppableIn : [droppableIn],\n }\n return (\n <Draggable\n draggableId={JSON.stringify(droppableInfo)}\n index={draggableIndex}\n isDragDisabled={disabled}\n >\n {(provided: DraggableProvided) => (\n <StyledItem\n ref={mergeRefs(provided.innerRef, forwardRef)}\n as={as}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n {...itemProps}\n $isDraggable={!disabled}\n style={{ ...provided.draggableProps.style, ...itemProps.style }}\n >\n {!disabled && (\n <StyledGrip>\n <Grip color={colors.gray45} />\n </StyledGrip>\n )}\n {children}\n </StyledItem>\n )}\n </Draggable>\n )\n }\n\n return (\n <StyledItem ref={forwardRef} as={as} {...itemProps}>\n {children}\n </StyledItem>\n )\n}) as PolymorphicAs.ComponentWithForwardedRef<\n MenuItemProps,\n MenuItemDefaultElement\n>\n\nexport const CheckboxItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> &\n (ItemProps | ItemWithDraggingProps) &\n Omit<CheckboxProps, 'checked'>\n>(function CheckboxItem(\n {\n selected = false,\n disabled = false,\n error = false,\n indeterminate = false,\n children = null,\n role,\n ...props\n },\n forwardRef\n) {\n const ctx = useMenuContext()\n\n let contextRole\n let ariaChecked: React.AriaAttributes['aria-checked']\n let ariaSelected\n\n if (ctx.role === 'listbox') {\n contextRole = 'option'\n ariaSelected = selected ? true : undefined\n } else if (ctx.role === 'menu') {\n contextRole = 'menuitemcheckbox'\n\n if (indeterminate) {\n ariaChecked = 'mixed'\n } else {\n ariaChecked = selected ? 'true' : 'false'\n }\n }\n\n return (\n <Item\n aria-checked={ariaChecked}\n aria-disabled={disabled ? true : undefined}\n aria-selected={ariaSelected}\n {...props}\n role={role ?? contextRole}\n selected={selected}\n disabled={disabled}\n ref={forwardRef}\n >\n <FakeCheckbox\n indeterminate={indeterminate}\n error={error}\n disabled={disabled}\n checked={selected}\n >\n {children}\n </FakeCheckbox>\n </Item>\n )\n})\nexport const Options = React.forwardRef<HTMLDivElement, OptionsProps>(\n function Options(props, ref) {\n const ctx = useMenuContext()\n const i18n = useI18nContext()\n\n return (\n <StyledOptions\n aria-label={i18n.t('core.menuImperative.options.ariaLabel')}\n {...props}\n {...ctx.a11yOptionsProps}\n data-internal=\"menuimperative-options\"\n ref={ref}\n onScroll={ctx.onScrollBottom}\n />\n )\n }\n)\n\nexport const Search = ({\n className,\n i18nScope = 'core.menu',\n placeholder,\n onChange: _onChange,\n value: valueProp,\n ...props\n}: MenuSearchProps) => {\n const I18n = useI18nContext()\n\n const isControlled = valueProp !== undefined\n const [internalValue, setInternalValue] = React.useState('')\n const value = isControlled ? valueProp : internalValue\n\n const onChange: NonNullable<TypeaheadProps['onChange']> = React.useCallback(\n function (value, event) {\n if (!isControlled) {\n setInternalValue(value)\n }\n _onChange?.(event as unknown as React.ChangeEvent<HTMLInputElement>)\n },\n [_onChange, isControlled]\n )\n\n // intentionally changed to type text + searchbox,\n // voiceOver focus goes to clear button when no results in Chrome\n return (\n <StyledSearch className={className}>\n <Typeahead\n {...props}\n type=\"text\"\n role=\"searchbox\"\n autoFocus={true}\n placeholder={placeholder || I18n.t('search', { scope: i18nScope })}\n onChange={onChange}\n value={value}\n />\n </StyledSearch>\n )\n}\n\nexport const Header = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & HeaderProps\n>(function Header({ ...props }, ref) {\n return <StyledHeader ref={ref} {...props} />\n})\n\nexport const Footer = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & FooterProps\n>(function Footer({ padding = 'md lg', ...props }, ref) {\n return <StyledFooter ref={ref} padding={padding} {...props} />\n})\n\nMenuImperative_.displayName = 'Menu'\n\nDroppable.displayName = 'Menu.Droppable'\n\nFooter.displayName = 'Menu.Footer'\n\nGroup.displayName = 'Menu.Group'\n\nHeader.displayName = 'Menu.Header'\n\nItem.displayName = 'Menu.Item'\n\nOptions.displayName = 'Menu.Options'\n\nSearch.displayName = 'Menu.Search'\n\n/**\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-menu-imperative--demo)\n\n */\nexport const MenuImperative = addSubcomponents(\n {\n CheckboxItem,\n Droppable,\n Footer,\n Group,\n Header,\n Item,\n Options,\n Search,\n },\n MenuImperative_\n)\n"],"mappings":"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"}
|