@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
|
@@ -11,15 +11,15 @@ var optionMinHeight = 32;
|
|
|
11
11
|
// Do not merge with StyledMenu, needed for max-height working in IE
|
|
12
12
|
export var StyledWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
13
13
|
displayName: "StyledWrapper",
|
|
14
|
-
componentId: "core-
|
|
14
|
+
componentId: "core-12_43_0__sc-z984sz-0"
|
|
15
15
|
})(["border-radius:inherit;display:flex;max-height:inherit;min-width:inherit;outline:none;width:inherit;"]);
|
|
16
16
|
export var StyledMenu = /*#__PURE__*/styled.div.withConfig({
|
|
17
17
|
displayName: "StyledMenu",
|
|
18
|
-
componentId: "core-
|
|
18
|
+
componentId: "core-12_43_0__sc-z984sz-1"
|
|
19
19
|
})(["border-radius:inherit;display:flex;flex-direction:column;outline:0;width:100%;"]);
|
|
20
20
|
export var StyledOptions = /*#__PURE__*/styled.div.withConfig({
|
|
21
21
|
displayName: "StyledOptions",
|
|
22
|
-
componentId: "core-
|
|
22
|
+
componentId: "core-12_43_0__sc-z984sz-2"
|
|
23
23
|
})(["flex-basis:auto;flex-grow:1;flex-shrink:1;min-height:", "px;", ";padding:", "px 0;position:relative;&:focus-visible{", " margin:-1px;}"], optionMinHeight, function (_ref) {
|
|
24
24
|
var _ref$$scrollable = _ref.$scrollable,
|
|
25
25
|
$scrollable = _ref$$scrollable === void 0 ? true : _ref$$scrollable;
|
|
@@ -27,34 +27,34 @@ export var StyledOptions = /*#__PURE__*/styled.div.withConfig({
|
|
|
27
27
|
}, spacing.sm, getFocus());
|
|
28
28
|
export var StyledGrip = /*#__PURE__*/styled.div.withConfig({
|
|
29
29
|
displayName: "StyledGrip",
|
|
30
|
-
componentId: "core-
|
|
31
|
-
})(["padding:0 2px;height:24px;
|
|
30
|
+
componentId: "core-12_43_0__sc-z984sz-3"
|
|
31
|
+
})(["padding:0 2px;height:24px;"]);
|
|
32
32
|
export var StyledHeader = /*#__PURE__*/styled.div.withConfig({
|
|
33
33
|
displayName: "StyledHeader",
|
|
34
|
-
componentId: "core-
|
|
34
|
+
componentId: "core-12_43_0__sc-z984sz-4"
|
|
35
35
|
})([""]);
|
|
36
36
|
export var StyledSearch = /*#__PURE__*/styled.div.withConfig({
|
|
37
37
|
displayName: "StyledSearch",
|
|
38
|
-
componentId: "core-
|
|
38
|
+
componentId: "core-12_43_0__sc-z984sz-5"
|
|
39
39
|
})(["padding:", "px ", "px ", "px;", " > *{pointer-events:none;}"], spacing.lg, spacing.lg, spacing.sm, StyledButton);
|
|
40
40
|
export var StyledGroup = /*#__PURE__*/styled.div.withConfig({
|
|
41
41
|
displayName: "StyledGroup",
|
|
42
|
-
componentId: "core-
|
|
42
|
+
componentId: "core-12_43_0__sc-z984sz-6"
|
|
43
43
|
})(["&:not(:first-child){margin-top:", "px;}"], spacing.md);
|
|
44
44
|
export var StyledGroupLabel = /*#__PURE__*/styled.span.withConfig({
|
|
45
45
|
displayName: "StyledGroupLabel",
|
|
46
|
-
componentId: "core-
|
|
46
|
+
componentId: "core-12_43_0__sc-z984sz-7"
|
|
47
47
|
})(["", " display:block;color:", ";font-weight:", ";padding:", "px ", "px;cursor:default;"], getTypographyIntent('body'), colors.gray15, typographyWeights.semibold, spacing.xs, spacing.lg);
|
|
48
48
|
export var StyledItem = /*#__PURE__*/styled.div.withConfig({
|
|
49
49
|
displayName: "StyledItem",
|
|
50
|
-
componentId: "core-
|
|
51
|
-
})(["", ";", " cursor:pointer;list-style-type:none;padding:", "px ", "px;a{color:", ";display:block;margin:-", "px -", "px;padding:", "px ", "px;text-decoration:none;&:hover{color:", ";text-decoration:none;}}&[data-highlighted='true']{background-color:", ";}", "
|
|
50
|
+
componentId: "core-12_43_0__sc-z984sz-8"
|
|
51
|
+
})(["", ";", " cursor:pointer;list-style-type:none;padding:", "px ", "px;a{color:", ";display:block;margin:-", "px -", "px;padding:", "px ", "px;text-decoration:none;&:hover{color:", ";text-decoration:none;}}&[data-highlighted='true']{background-color:", ";}", " ", "{color:inherit;cursor:pointer;}", " ", " ", ""], getTypographyIntent('body'), function (_ref2) {
|
|
52
52
|
var as = _ref2.as;
|
|
53
53
|
return as === 'a' && css(["display:block;text-decoration:none;"]);
|
|
54
54
|
}, spacing.xs, spacing.lg, colors.gray15, spacing.xs, spacing.lg, spacing.xs, spacing.lg, colors.gray15, colors.gray96, function (_ref3) {
|
|
55
55
|
var $highlighted = _ref3.$highlighted;
|
|
56
56
|
return $highlighted && "background-color: ".concat(colors.gray96, ";");
|
|
57
|
-
},
|
|
57
|
+
}, StyledCheckboxLabel, function (_ref4) {
|
|
58
58
|
var $disabled = _ref4.$disabled,
|
|
59
59
|
$selected = _ref4.$selected;
|
|
60
60
|
if ($disabled) {
|
|
@@ -71,15 +71,15 @@ export var StyledItem = /*#__PURE__*/styled.div.withConfig({
|
|
|
71
71
|
}, function (_ref6) {
|
|
72
72
|
var $isDragging = _ref6.$isDragging;
|
|
73
73
|
if ($isDragging) {
|
|
74
|
-
return css(["background-color:", ";"
|
|
74
|
+
return css(["background-color:", ";"], colors.gray96);
|
|
75
75
|
}
|
|
76
76
|
});
|
|
77
77
|
export var StyledDroppable = /*#__PURE__*/styled.div.withConfig({
|
|
78
78
|
displayName: "StyledDroppable",
|
|
79
|
-
componentId: "core-
|
|
79
|
+
componentId: "core-12_43_0__sc-z984sz-9"
|
|
80
80
|
})(["", ",", "{padding-left:28px;}"], StyledGroup, StyledItem);
|
|
81
81
|
export var StyledFooter = /*#__PURE__*/styled(Box).withConfig({
|
|
82
82
|
displayName: "StyledFooter",
|
|
83
|
-
componentId: "core-
|
|
83
|
+
componentId: "core-12_43_0__sc-z984sz-10"
|
|
84
84
|
})(["border-top:1px solid ", ";border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;"], colors.gray85);
|
|
85
85
|
//# sourceMappingURL=MenuImperative.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuImperative.styles.js","names":["styled","css","Box","StyledButton","StyledCheckboxLabel","getTypographyIntent","typographyWeights","colors","getFocus","spacing","optionMinHeight","StyledWrapper","div","withConfig","displayName","componentId","StyledMenu","StyledOptions","_ref","_ref$$scrollable","$scrollable","sm","StyledGrip","StyledHeader","StyledSearch","lg","StyledGroup","md","StyledGroupLabel","span","gray15","semibold","xs","StyledItem","_ref2","as","gray96","_ref3","$highlighted","concat","_ref4","$disabled","$selected","gray85","blue50","_ref5","$isDraggable","_ref6","$isDragging","StyledDroppable","StyledFooter"],"sources":["../../src/MenuImperative/MenuImperative.styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport { Box } from '../Box'\nimport { StyledButton } from '../Button'\nimport { StyledCheckboxLabel } from '../Checkbox/Checkbox.styles'\nimport { getTypographyIntent, typographyWeights } from '../Typography'\nimport { colors } from '../_styles/colors'\nimport { getFocus } from '../_styles/mixins'\nimport { spacing } from '../_styles/spacing'\n\nconst optionMinHeight = 32\n\n// Do not merge with StyledMenu, needed for max-height working in IE\nexport const StyledWrapper = styled.div`\n border-radius: inherit;\n display: flex;\n max-height: inherit;\n min-width: inherit;\n outline: none;\n width: inherit;\n`\n\nexport const StyledMenu = styled.div`\n border-radius: inherit;\n display: flex;\n flex-direction: column;\n outline: 0;\n width: 100%;\n`\n\nexport const StyledOptions = styled.div<{ $scrollable?: boolean }>`\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n min-height: ${optionMinHeight}px;\n ${({ $scrollable = true }) => $scrollable && `overflow-y: auto`};\n padding: ${spacing.sm}px 0;\n position: relative;\n\n &:focus-visible {\n ${getFocus()}\n margin: -1px;\n }\n`\n\nexport const StyledGrip = styled.div`\n padding: 0 2px;\n height: 24px;\n
|
|
1
|
+
{"version":3,"file":"MenuImperative.styles.js","names":["styled","css","Box","StyledButton","StyledCheckboxLabel","getTypographyIntent","typographyWeights","colors","getFocus","spacing","optionMinHeight","StyledWrapper","div","withConfig","displayName","componentId","StyledMenu","StyledOptions","_ref","_ref$$scrollable","$scrollable","sm","StyledGrip","StyledHeader","StyledSearch","lg","StyledGroup","md","StyledGroupLabel","span","gray15","semibold","xs","StyledItem","_ref2","as","gray96","_ref3","$highlighted","concat","_ref4","$disabled","$selected","gray85","blue50","_ref5","$isDraggable","_ref6","$isDragging","StyledDroppable","StyledFooter"],"sources":["../../src/MenuImperative/MenuImperative.styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport { Box } from '../Box'\nimport { StyledButton } from '../Button'\nimport { StyledCheckboxLabel } from '../Checkbox/Checkbox.styles'\nimport { getTypographyIntent, typographyWeights } from '../Typography'\nimport { colors } from '../_styles/colors'\nimport { getFocus } from '../_styles/mixins'\nimport { spacing } from '../_styles/spacing'\n\nconst optionMinHeight = 32\n\n// Do not merge with StyledMenu, needed for max-height working in IE\nexport const StyledWrapper = styled.div`\n border-radius: inherit;\n display: flex;\n max-height: inherit;\n min-width: inherit;\n outline: none;\n width: inherit;\n`\n\nexport const StyledMenu = styled.div`\n border-radius: inherit;\n display: flex;\n flex-direction: column;\n outline: 0;\n width: 100%;\n`\n\nexport const StyledOptions = styled.div<{ $scrollable?: boolean }>`\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n min-height: ${optionMinHeight}px;\n ${({ $scrollable = true }) => $scrollable && `overflow-y: auto`};\n padding: ${spacing.sm}px 0;\n position: relative;\n\n &:focus-visible {\n ${getFocus()}\n margin: -1px;\n }\n`\n\nexport const StyledGrip = styled.div`\n padding: 0 2px;\n height: 24px;\n`\n\nexport const StyledHeader = styled.div``\n\nexport const StyledSearch = styled.div`\n padding: ${spacing.lg}px ${spacing.lg}px ${spacing.sm}px;\n\n ${StyledButton} > * {\n pointer-events: none;\n }\n`\n\nexport const StyledGroup = styled.div`\n &:not(:first-child) {\n margin-top: ${spacing.md}px;\n }\n`\n\nexport const StyledGroupLabel = styled.span`\n ${getTypographyIntent('body')}\n\n display: block;\n color: ${colors.gray15};\n font-weight: ${typographyWeights.semibold};\n padding: ${spacing.xs}px ${spacing.lg}px;\n cursor: default;\n`\n\nexport const StyledItem = styled.div<{\n $disabled?: boolean\n $selected?: boolean\n $highlighted?: boolean\n $isDraggable?: boolean\n $isDragging?: boolean\n}>`\n ${getTypographyIntent('body')};\n\n ${({ as }) =>\n as === 'a' &&\n css`\n display: block;\n text-decoration: none;\n `}\n\n cursor: pointer;\n list-style-type: none;\n padding: ${spacing.xs}px ${spacing.lg}px;\n\n a {\n // We decided to use a negative margin trick here to allow us to continue\n // to use listNavigation without having to rewrite a bunch of code in js\n color: ${colors.gray15};\n display: block;\n margin: -${spacing.xs}px -${spacing.lg}px;\n padding: ${spacing.xs}px ${spacing.lg}px;\n text-decoration: none;\n\n &:hover {\n color: ${colors.gray15};\n text-decoration: none;\n }\n }\n\n &[data-highlighted='true'] {\n background-color: ${colors.gray96};\n }\n\n ${({ $highlighted }) => $highlighted && `background-color: ${colors.gray96};`}\n\n ${StyledCheckboxLabel} {\n color: inherit;\n cursor: pointer;\n }\n\n ${({ $disabled, $selected }) => {\n if ($disabled) {\n return css`\n &,\n ${StyledCheckboxLabel} {\n color: ${colors.gray85};\n cursor: default;\n }\n `\n } else if ($selected) {\n return css`\n color: ${colors.blue50};\n font-weight: 700;\n\n a,\n a:hover {\n color: ${colors.blue50};\n text-decoration: none;\n }\n\n &[data-highlighted='true'] {\n background-color: ${colors.gray96};\n }\n `\n }\n\n return css`\n color: ${colors.gray15};\n\n &[data-highlighted='true'] {\n background-color: ${colors.gray96};\n }\n `\n }}\n\n ${({ $isDraggable }) => {\n if ($isDraggable) {\n return css`\n display: flex;\n align-items: center;\n\n ${StyledCheckboxLabel} {\n cursor: grab;\n\n // The unchecked and checked icons\n &:before,\n &:after {\n cursor: pointer;\n }\n }\n\n &&& {\n padding-left: 0;\n }\n `\n }\n }}\n\n ${({ $isDragging }) => {\n if ($isDragging) {\n return css`\n background-color: ${colors.gray96};\n `\n }\n }}\n`\n\nexport const StyledDroppable = styled.div`\n ${StyledGroup}, ${StyledItem} {\n padding-left: 28px;\n }\n`\n\nexport const StyledFooter = styled(Box)`\n border-top: 1px solid ${colors.gray85};\n border-bottom-left-radius: inherit;\n border-bottom-right-radius: inherit;\n`\n"],"mappings":"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"}
|
|
@@ -198,6 +198,10 @@ interface AnchorItemProps extends Omit<ItemProps, 'item'>, Omit<React.AnchorHTML
|
|
|
198
198
|
}
|
|
199
199
|
export declare type MenuItemProps = ItemProps | ItemWithDraggingProps | AnchorItemProps;
|
|
200
200
|
export declare type MenuItemDefaultElement = 'div' | 'a';
|
|
201
|
+
/**
|
|
202
|
+
* @a11y When drag-and-drop is enabled, `children` should be a string so it
|
|
203
|
+
* can be used for DnD announcements (exposed as `data-title`).
|
|
204
|
+
*/
|
|
201
205
|
export interface GroupProps {
|
|
202
206
|
/**
|
|
203
207
|
* @since 10.19.0
|
|
@@ -211,6 +215,10 @@ export interface GroupProps {
|
|
|
211
215
|
* @since 12.39.0
|
|
212
216
|
*/
|
|
213
217
|
label?: string;
|
|
218
|
+
/**
|
|
219
|
+
* @since 12.39.0
|
|
220
|
+
*/
|
|
221
|
+
labelId?: string;
|
|
214
222
|
}
|
|
215
223
|
export interface OptionsProps {
|
|
216
224
|
/**
|
|
@@ -253,6 +261,22 @@ export interface DroppableProps {
|
|
|
253
261
|
* @since 10.19.0
|
|
254
262
|
*/
|
|
255
263
|
children: React.ReactNode;
|
|
264
|
+
/**
|
|
265
|
+
* @since 12.34.2
|
|
266
|
+
*/
|
|
267
|
+
'aria-label'?: string;
|
|
268
|
+
/**
|
|
269
|
+
* @since 12.34.2
|
|
270
|
+
*/
|
|
271
|
+
'aria-labelledby'?: string;
|
|
272
|
+
/**
|
|
273
|
+
* @since 12.34.2
|
|
274
|
+
*/
|
|
275
|
+
role?: React.AriaRole;
|
|
276
|
+
/**
|
|
277
|
+
* @since 12.34.2
|
|
278
|
+
*/
|
|
279
|
+
'aria-multiselectable'?: boolean;
|
|
256
280
|
}
|
|
257
281
|
export interface FooterProps extends Omit<BoxProps, 'as'> {
|
|
258
282
|
}
|
|
@@ -270,10 +294,22 @@ export interface MenuContext {
|
|
|
270
294
|
* @since 10.19.0
|
|
271
295
|
*/
|
|
272
296
|
currentlyDroppableIn: string[];
|
|
297
|
+
/**
|
|
298
|
+
* @since 12.34.2
|
|
299
|
+
*/
|
|
300
|
+
dndInstructionsId: string;
|
|
273
301
|
/**
|
|
274
302
|
* @since 10.19.0
|
|
275
303
|
*/
|
|
276
304
|
onHoverItem: (el?: HTMLDivElement) => void;
|
|
305
|
+
/**
|
|
306
|
+
* @since 12.34.2
|
|
307
|
+
*/
|
|
308
|
+
onFocusItem: (el?: HTMLDivElement) => void;
|
|
309
|
+
/**
|
|
310
|
+
* @since 12.34.2
|
|
311
|
+
*/
|
|
312
|
+
onBlurItem: (el?: HTMLDivElement) => void;
|
|
277
313
|
/**
|
|
278
314
|
* @since 10.19.0
|
|
279
315
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuImperative.types.js","names":[],"sources":["../../src/MenuImperative/MenuImperative.types.ts"],"sourcesContent":["import type * as React from 'react'\nimport type { BoxProps } from '../Box'\nimport type {\n TypeaheadInputProps,\n TypeaheadProps,\n} from '../Typeahead/Typeahead.types'\nimport type { Props } from '../_utils/types'\n\nexport type Ref<T> =\n | ((instance: T | null) => void)\n | React.MutableRefObject<T | null>\n | null\n\ntype Div = React.ComponentPropsWithoutRef<'div'>\n\nexport interface Selection {\n /**\n * @since 10.19.0\n */\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n /**\n * @since 10.19.0\n */\n group: boolean\n /**\n * @since 10.19.0\n */\n item: any\n /**\n * @since 10.19.0\n */\n action: 'selected' | 'unselected'\n /**\n * Indicates should focus be restored to the trigger(e.g. Button of Dropdown)\n * after activating this item. If all items return focus to the trigger once activated,\n * try just `restoreFocusOnHide` on `Dropdown` instead.\n * if it is `undefined`, it is omitted in onSelect callback.\n * @since 11.15.0\n */\n restoreFocus?: boolean\n}\n\nexport interface Reorder {\n /**\n * @since 10.19.0\n */\n draggableId: string\n /**\n * @since 10.19.0\n */\n source: {\n index: number\n droppableId: string\n }\n /**\n * @since 10.19.0\n */\n destination: {\n index: number\n droppableId: string\n }\n}\n\ntype MenuRole = 'menu' | 'listbox' | 'none'\n\nexport interface MenuProps extends Omit<Div, 'onSelect' | 'onDragEnd'> {\n /**\n * @since 10.19.0\n */\n circular?: boolean\n /**\n * Set aria-multiselectable=\"true\"\n * @since 10.19.0\n */\n multiple?: boolean\n /**\n * @since 10.19.0\n */\n onDragEnd?: (result: Reorder) => void\n /**\n * @since 10.19.0\n */\n onScrollBottom?: (e: React.UIEvent<HTMLDivElement, UIEvent>) => void\n /**\n * @since 10.19.0\n */\n onSelect?: (selection: Selection) => any\n /**\n * A menu is a widget that offers a list of choices to the user, such as a set of actions or functions.\n *\n * A listbox widget presents a list of options and allows a user to select one or more of them.\n *\n * @since 11.3.0\n */\n role?: MenuRole\n /**\n * Used when navigation in the menu is controlled by search or another input,\n * called each time virtual focus (highlighted item) is changed\n * Consider use `useMenuImperativeControlNavigation` hook.\n *\n * @since 11.5.0\n */\n onChangeActiveDescendant?: (id: string | undefined) => void\n /**\n * To override default menu navigation\n * @since 11.5.0\n */\n onKeyboardNavigation?: React.KeyboardEventHandler\n}\n\nexport interface MenuRef {\n /**\n * @since 10.19.0\n */\n el: HTMLDivElement | null\n /**\n * @since 10.19.0\n */\n highlight: (item: HTMLElement, shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightFirst: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightLast: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightSelected: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightSuggested: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlighted: () => any\n /**\n * @since 10.19.0\n */\n next: (circular?: boolean) => void\n /**\n * @since 10.19.0\n */\n prev: (circular?: boolean) => void\n /**\n * @since 10.19.0\n */\n select: (\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n ) => void\n /**\n * Usefully for extending navigation behavior with `onKeyboardNavigation`.\n * Pay attention that `ref` is `null` on first render.\n *\n * ```\n * onKeyboardNavigation={(e) => {\n * if (e.key === 'Right' || e.key === 'ArrowRight') {\n * return navigateRight()\n * }\n *\n * ref.defaultKeyDownNavigationHandler(e)\n * }}\n * ```\n *\n * @since 11.5.0\n */\n defaultKeyDownNavigationHandler: React.KeyboardEventHandler\n}\n\nexport interface ItemProps {\n /**\n * @since 10.19.0\n */\n item: any\n /**\n * @since 10.19.0\n */\n selected?: boolean\n /**\n * @since 10.19.0\n */\n suggested?: boolean\n /**\n * @since 10.19.0\n */\n disabled?: boolean\n /**\n * Indicates should focus be restored to the trigger(e.g. Button of Dropdown)\n * after activating this item. If all items return focus to the trigger once activated,\n * try just `restoreFocusOnHide` on `Dropdown` instead.\n * if it is `undefined`, it is omitted in onSelect callback.\n * @since 11.15.0\n */\n restoreFocus?: boolean\n}\n\nexport interface ItemWithDraggingProps extends ItemProps {\n /**\n * @since 10.19.0\n */\n droppableIn: string | string[]\n /**\n * @since 10.19.0\n */\n draggableId: string\n /**\n * @since 10.19.0\n */\n draggableIndex: number\n}\n\ninterface AnchorItemProps\n extends Omit<ItemProps, 'item'>,\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'onClick'> {}\n\nexport type MenuItemProps = ItemProps | ItemWithDraggingProps | AnchorItemProps\n\nexport type MenuItemDefaultElement = 'div' | 'a'\n\nexport interface GroupProps {\n /**\n * @since 10.19.0\n */\n clickable?: boolean\n\n /**\n * @since 10.19.0\n */\n item?: any\n\n /**\n * @since 12.39.0\n */\n label?: string\n}\n\nexport interface OptionsProps {\n /**\n * @since 10.19.0\n */\n children?: React.ReactNode\n /**\n * @since 10.19.0\n */\n className?: string\n}\n\nexport interface MenuSearchProps\n extends Omit<TypeaheadProps, 'onChange'>,\n TypeaheadInputProps,\n Props {\n /**\n * @since 10.19.0\n */\n i18nScope?: string\n /**\n * @since 10.21.0\n */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void\n /**\n * Controls the search input value. When provided, the search input becomes\n * a controlled component and the parent must manage the value state.\n * @since 12.34.0\n */\n value?: string\n}\n\nexport interface HeaderProps extends Props {\n /**\n * @since 10.19.0\n */\n tabIndex?: number\n}\n\nexport interface DroppableProps {\n /**\n * @since 10.19.0\n */\n id: string\n /**\n * @since 10.19.0\n */\n children: React.ReactNode\n}\n\nexport interface FooterProps extends Omit<BoxProps, 'as'> {}\n\nexport interface MenuContext {\n /**\n * @since 11.5.0\n */\n a11yOptionsProps: {\n role?: MenuRole\n onKeyboardNavigation?: React.KeyboardEventHandler | null\n tabIndex?: number\n id?: string\n }\n /**\n * @since 10.19.0\n */\n currentlyDroppableIn: string[]\n /**\n * @since 10.19.0\n */\n onHoverItem: (el?: HTMLDivElement) => void\n /**\n * @since 10.19.0\n */\n onScrollBottom: (e: React.UIEvent<HTMLDivElement, UIEvent>) => void\n /**\n * @since 10.19.0\n */\n onSelect: (selection: Selection) => void\n /**\n * @since 11.3.0\n */\n role: MenuRole\n}\n\nexport interface ControlNavigationProps {\n menuId?: MenuProps['id']\n}\n\nexport interface ControlNavigationReturn {\n menuNavigationTriggerProps: {\n 'aria-activedescendant'?: string\n 'aria-controls'?: string\n onKeyDown?: React.KeyboardEventHandler<Element>\n }\n menuProps: {\n onChangeActiveDescendant?: React.Dispatch<\n React.SetStateAction<string | undefined>\n >\n id: string\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"MenuImperative.types.js","names":[],"sources":["../../src/MenuImperative/MenuImperative.types.ts"],"sourcesContent":["import type * as React from 'react'\nimport type { BoxProps } from '../Box'\nimport type {\n TypeaheadInputProps,\n TypeaheadProps,\n} from '../Typeahead/Typeahead.types'\nimport type { Props } from '../_utils/types'\n\nexport type Ref<T> =\n | ((instance: T | null) => void)\n | React.MutableRefObject<T | null>\n | null\n\ntype Div = React.ComponentPropsWithoutRef<'div'>\n\nexport interface Selection {\n /**\n * @since 10.19.0\n */\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n /**\n * @since 10.19.0\n */\n group: boolean\n /**\n * @since 10.19.0\n */\n item: any\n /**\n * @since 10.19.0\n */\n action: 'selected' | 'unselected'\n /**\n * Indicates should focus be restored to the trigger(e.g. Button of Dropdown)\n * after activating this item. If all items return focus to the trigger once activated,\n * try just `restoreFocusOnHide` on `Dropdown` instead.\n * if it is `undefined`, it is omitted in onSelect callback.\n * @since 11.15.0\n */\n restoreFocus?: boolean\n}\n\nexport interface Reorder {\n /**\n * @since 10.19.0\n */\n draggableId: string\n /**\n * @since 10.19.0\n */\n source: {\n index: number\n droppableId: string\n }\n /**\n * @since 10.19.0\n */\n destination: {\n index: number\n droppableId: string\n }\n}\n\ntype MenuRole = 'menu' | 'listbox' | 'none'\n\nexport interface MenuProps extends Omit<Div, 'onSelect' | 'onDragEnd'> {\n /**\n * @since 10.19.0\n */\n circular?: boolean\n /**\n * Set aria-multiselectable=\"true\"\n * @since 10.19.0\n */\n multiple?: boolean\n /**\n * @since 10.19.0\n */\n onDragEnd?: (result: Reorder) => void\n /**\n * @since 10.19.0\n */\n onScrollBottom?: (e: React.UIEvent<HTMLDivElement, UIEvent>) => void\n /**\n * @since 10.19.0\n */\n onSelect?: (selection: Selection) => any\n /**\n * A menu is a widget that offers a list of choices to the user, such as a set of actions or functions.\n *\n * A listbox widget presents a list of options and allows a user to select one or more of them.\n *\n * @since 11.3.0\n */\n role?: MenuRole\n /**\n * Used when navigation in the menu is controlled by search or another input,\n * called each time virtual focus (highlighted item) is changed\n * Consider use `useMenuImperativeControlNavigation` hook.\n *\n * @since 11.5.0\n */\n onChangeActiveDescendant?: (id: string | undefined) => void\n /**\n * To override default menu navigation\n * @since 11.5.0\n */\n onKeyboardNavigation?: React.KeyboardEventHandler\n}\n\nexport interface MenuRef {\n /**\n * @since 10.19.0\n */\n el: HTMLDivElement | null\n /**\n * @since 10.19.0\n */\n highlight: (item: HTMLElement, shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightFirst: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightLast: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightSelected: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlightSuggested: (shouldScroll?: boolean) => void\n /**\n * @since 10.19.0\n */\n highlighted: () => any\n /**\n * @since 10.19.0\n */\n next: (circular?: boolean) => void\n /**\n * @since 10.19.0\n */\n prev: (circular?: boolean) => void\n /**\n * @since 10.19.0\n */\n select: (\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n ) => void\n /**\n * Usefully for extending navigation behavior with `onKeyboardNavigation`.\n * Pay attention that `ref` is `null` on first render.\n *\n * ```\n * onKeyboardNavigation={(e) => {\n * if (e.key === 'Right' || e.key === 'ArrowRight') {\n * return navigateRight()\n * }\n *\n * ref.defaultKeyDownNavigationHandler(e)\n * }}\n * ```\n *\n * @since 11.5.0\n */\n defaultKeyDownNavigationHandler: React.KeyboardEventHandler\n}\n\nexport interface ItemProps {\n /**\n * @since 10.19.0\n */\n item: any\n /**\n * @since 10.19.0\n */\n selected?: boolean\n /**\n * @since 10.19.0\n */\n suggested?: boolean\n /**\n * @since 10.19.0\n */\n disabled?: boolean\n /**\n * Indicates should focus be restored to the trigger(e.g. Button of Dropdown)\n * after activating this item. If all items return focus to the trigger once activated,\n * try just `restoreFocusOnHide` on `Dropdown` instead.\n * if it is `undefined`, it is omitted in onSelect callback.\n * @since 11.15.0\n */\n restoreFocus?: boolean\n}\n\nexport interface ItemWithDraggingProps extends ItemProps {\n /**\n * @since 10.19.0\n */\n droppableIn: string | string[]\n /**\n * @since 10.19.0\n */\n draggableId: string\n /**\n * @since 10.19.0\n */\n draggableIndex: number\n}\n\ninterface AnchorItemProps\n extends Omit<ItemProps, 'item'>,\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'onClick'> {}\n\nexport type MenuItemProps = ItemProps | ItemWithDraggingProps | AnchorItemProps\n\nexport type MenuItemDefaultElement = 'div' | 'a'\n\n/**\n * @a11y When drag-and-drop is enabled, `children` should be a string so it\n * can be used for DnD announcements (exposed as `data-title`).\n */\nexport interface GroupProps {\n /**\n * @since 10.19.0\n */\n clickable?: boolean\n\n /**\n * @since 10.19.0\n */\n item?: any\n\n /**\n * @since 12.39.0\n */\n label?: string\n /**\n * @since 12.39.0\n */\n labelId?: string\n}\n\nexport interface OptionsProps {\n /**\n * @since 10.19.0\n */\n children?: React.ReactNode\n /**\n * @since 10.19.0\n */\n className?: string\n}\n\nexport interface MenuSearchProps\n extends Omit<TypeaheadProps, 'onChange'>,\n TypeaheadInputProps,\n Props {\n /**\n * @since 10.19.0\n */\n i18nScope?: string\n /**\n * @since 10.21.0\n */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void\n /**\n * Controls the search input value. When provided, the search input becomes\n * a controlled component and the parent must manage the value state.\n * @since 12.34.0\n */\n value?: string\n}\n\nexport interface HeaderProps extends Props {\n /**\n * @since 10.19.0\n */\n tabIndex?: number\n}\n\nexport interface DroppableProps {\n /**\n * @since 10.19.0\n */\n id: string\n /**\n * @since 10.19.0\n */\n children: React.ReactNode\n /**\n * @since 12.34.2\n */\n 'aria-label'?: string\n /**\n * @since 12.34.2\n */\n 'aria-labelledby'?: string\n /**\n * @since 12.34.2\n */\n role?: React.AriaRole\n /**\n * @since 12.34.2\n */\n 'aria-multiselectable'?: boolean\n}\n\nexport interface FooterProps extends Omit<BoxProps, 'as'> {}\n\nexport interface MenuContext {\n /**\n * @since 11.5.0\n */\n a11yOptionsProps: {\n role?: MenuRole\n onKeyboardNavigation?: React.KeyboardEventHandler | null\n tabIndex?: number\n id?: string\n }\n /**\n * @since 10.19.0\n */\n currentlyDroppableIn: string[]\n /**\n * @since 12.34.2\n */\n dndInstructionsId: string\n /**\n * @since 10.19.0\n */\n onHoverItem: (el?: HTMLDivElement) => void\n /**\n * @since 12.34.2\n */\n onFocusItem: (el?: HTMLDivElement) => void\n /**\n * @since 12.34.2\n */\n onBlurItem: (el?: HTMLDivElement) => void\n /**\n * @since 10.19.0\n */\n onScrollBottom: (e: React.UIEvent<HTMLDivElement, UIEvent>) => void\n /**\n * @since 10.19.0\n */\n onSelect: (selection: Selection) => void\n /**\n * @since 11.3.0\n */\n role: MenuRole\n}\n\nexport interface ControlNavigationProps {\n menuId?: MenuProps['id']\n}\n\nexport interface ControlNavigationReturn {\n menuNavigationTriggerProps: {\n 'aria-activedescendant'?: string\n 'aria-controls'?: string\n onKeyDown?: React.KeyboardEventHandler<Element>\n }\n menuProps: {\n onChangeActiveDescendant?: React.Dispatch<\n React.SetStateAction<string | undefined>\n >\n id: string\n }\n}\n"],"mappings":""}
|
|
@@ -6,12 +6,15 @@ export declare const menuItemsWrapperAttribute: {
|
|
|
6
6
|
export declare function createSensors(ref: React.RefObject<HTMLDivElement>, circular: boolean, onChangeActiveDescendant: (id: string | undefined, menuRef: Element | null) => void): {
|
|
7
7
|
handleKeyDown(event: React.KeyboardEvent<HTMLDivElement>): void;
|
|
8
8
|
handleItemHover(el?: HTMLDivElement): void;
|
|
9
|
+
handleItemFocus(el?: HTMLDivElement): void;
|
|
10
|
+
handleItemBlur(el?: HTMLDivElement): void;
|
|
9
11
|
useKeyboardSensor(api: SensorAPI): void;
|
|
12
|
+
setIsDragging(isDragging: boolean): void;
|
|
10
13
|
updateSelectCallback(callback: (selection: Selection) => any): void;
|
|
11
|
-
highlight: (item: HTMLElement | null | undefined, shouldScroll?: boolean) => void;
|
|
14
|
+
highlight: (item: HTMLElement | null | undefined, shouldScroll?: boolean, shouldFocus?: boolean) => void;
|
|
12
15
|
highlighted(): any;
|
|
13
|
-
highlightFirst: (shouldScroll?: boolean) => void;
|
|
14
|
-
highlightLast: (shouldScroll?: boolean) => void;
|
|
16
|
+
highlightFirst: (shouldScroll?: boolean, shouldFocus?: boolean) => void;
|
|
17
|
+
highlightLast: (shouldScroll?: boolean, shouldFocus?: boolean) => void;
|
|
15
18
|
rehighlightCurrent(): void;
|
|
16
19
|
highlightSelected(shouldScroll?: boolean): void;
|
|
17
20
|
highlightSuggested(shouldScroll?: boolean): void;
|
|
@@ -45,8 +45,10 @@ function updateHighlightedAttribute(item, highlight) {
|
|
|
45
45
|
export function createSensors(ref, circular, onChangeActiveDescendant) {
|
|
46
46
|
var highlightedItem = null;
|
|
47
47
|
var dragAndDropApi = null;
|
|
48
|
-
var currentDrag = null;
|
|
49
48
|
var onSelect = noop;
|
|
49
|
+
var isDraggingStateRef = {
|
|
50
|
+
current: false
|
|
51
|
+
};
|
|
50
52
|
function select(event) {
|
|
51
53
|
if (ref.current && highlightedItem) {
|
|
52
54
|
var _highlightedItem, _highlightedItem2, _highlightedItem3, _highlightedItem4, _highlightedItem5, _onSelect;
|
|
@@ -70,6 +72,7 @@ export function createSensors(ref, circular, onChangeActiveDescendant) {
|
|
|
70
72
|
}
|
|
71
73
|
function highlightItem(item) {
|
|
72
74
|
var shouldScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
75
|
+
var shouldFocus = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
73
76
|
// performance improvement, highlightItem is called onMouseMove for Item
|
|
74
77
|
if (item === highlightedItem) {
|
|
75
78
|
return;
|
|
@@ -83,6 +86,9 @@ export function createSensors(ref, circular, onChangeActiveDescendant) {
|
|
|
83
86
|
var id = (_item$getAttribute = item.getAttribute('id')) !== null && _item$getAttribute !== void 0 ? _item$getAttribute : undefined;
|
|
84
87
|
onChangeActiveDescendant(id, ref.current);
|
|
85
88
|
highlightedItem = item;
|
|
89
|
+
if (shouldFocus) {
|
|
90
|
+
item.focus();
|
|
91
|
+
}
|
|
86
92
|
if (shouldScroll) {
|
|
87
93
|
scrollIntoView(-1, item);
|
|
88
94
|
}
|
|
@@ -90,6 +96,10 @@ export function createSensors(ref, circular, onChangeActiveDescendant) {
|
|
|
90
96
|
onChangeActiveDescendant('', ref.current);
|
|
91
97
|
}
|
|
92
98
|
}
|
|
99
|
+
function _handleItemBlur(el) {
|
|
100
|
+
updateHighlightedAttribute(el, false);
|
|
101
|
+
highlightedItem = null;
|
|
102
|
+
}
|
|
93
103
|
function getPrevHighlightableItem(currentItem) {
|
|
94
104
|
var prev = getPrevItem(currentItem, ref.current);
|
|
95
105
|
if (prev) {
|
|
@@ -113,21 +123,23 @@ export function createSensors(ref, circular, onChangeActiveDescendant) {
|
|
|
113
123
|
}
|
|
114
124
|
function highlightFirstItem() {
|
|
115
125
|
var shouldScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
116
|
-
|
|
126
|
+
var shouldFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
127
|
+
highlightItem(getFirstItem(ref.current), shouldScroll, shouldFocus);
|
|
117
128
|
}
|
|
118
129
|
function highlightLastItem() {
|
|
119
130
|
var shouldScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
120
|
-
|
|
131
|
+
var shouldFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
132
|
+
highlightItem(getLastItem(ref.current), shouldScroll, shouldFocus);
|
|
121
133
|
}
|
|
122
134
|
function highlightPrevItem() {
|
|
123
135
|
var _ref$current;
|
|
124
136
|
if (highlightedItem && (_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.contains(highlightedItem)) {
|
|
125
137
|
var prev = getPrevHighlightableItem(highlightedItem);
|
|
126
138
|
if (prev) {
|
|
127
|
-
highlightItem(prev);
|
|
139
|
+
highlightItem(prev, true, true);
|
|
128
140
|
}
|
|
129
141
|
} else {
|
|
130
|
-
highlightLastItem();
|
|
142
|
+
highlightLastItem(true, true);
|
|
131
143
|
}
|
|
132
144
|
}
|
|
133
145
|
function highlightNextItem() {
|
|
@@ -135,67 +147,63 @@ export function createSensors(ref, circular, onChangeActiveDescendant) {
|
|
|
135
147
|
if (highlightedItem && (_ref$current2 = ref.current) !== null && _ref$current2 !== void 0 && _ref$current2.contains(highlightedItem)) {
|
|
136
148
|
var next = getNextHighlightableItem(highlightedItem);
|
|
137
149
|
if (next) {
|
|
138
|
-
highlightItem(next);
|
|
150
|
+
highlightItem(next, true, true);
|
|
139
151
|
}
|
|
140
152
|
} else {
|
|
141
|
-
highlightFirstItem();
|
|
153
|
+
highlightFirstItem(true, true);
|
|
142
154
|
}
|
|
143
155
|
}
|
|
144
156
|
return {
|
|
145
157
|
handleKeyDown: function handleKeyDown(event) {
|
|
146
158
|
if (ref.current) {
|
|
147
|
-
var
|
|
159
|
+
var isDragActive = isDraggingStateRef.current;
|
|
148
160
|
if (event.key === 'ArrowUp' || event.key === 'Up') {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
161
|
+
if (!isDragActive) {
|
|
162
|
+
event.preventDefault();
|
|
163
|
+
highlightPrevItem();
|
|
164
|
+
}
|
|
152
165
|
} else if (event.key === 'ArrowDown' || event.key === 'Down') {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
166
|
+
if (!isDragActive) {
|
|
167
|
+
event.preventDefault();
|
|
168
|
+
highlightNextItem();
|
|
169
|
+
}
|
|
156
170
|
} else if (event.key === 'Enter') {
|
|
157
|
-
var _currentDrag3;
|
|
158
171
|
event.preventDefault();
|
|
159
|
-
if (
|
|
160
|
-
var _highlightedItem6;
|
|
161
|
-
var draggableId = (_highlightedItem6 = highlightedItem) === null || _highlightedItem6 === void 0 ? void 0 : _highlightedItem6.getAttribute('data-rbd-draggable-id');
|
|
162
|
-
if (draggableId) {
|
|
163
|
-
var _dragAndDropApi;
|
|
164
|
-
var preDrag = (_dragAndDropApi = dragAndDropApi) === null || _dragAndDropApi === void 0 ? void 0 : _dragAndDropApi.tryGetLock(draggableId);
|
|
165
|
-
if (preDrag) {
|
|
166
|
-
currentDrag = preDrag.snapLift();
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
} else if ((_currentDrag3 = currentDrag) !== null && _currentDrag3 !== void 0 && _currentDrag3.isActive()) {
|
|
170
|
-
currentDrag.drop();
|
|
171
|
-
} else {
|
|
172
|
+
if (!isDragActive) {
|
|
172
173
|
select(event);
|
|
173
174
|
}
|
|
174
|
-
} else if (event.key === 'Escape' && (_currentDrag4 = currentDrag) !== null && _currentDrag4 !== void 0 && _currentDrag4.isActive()) {
|
|
175
|
-
currentDrag.cancel();
|
|
176
175
|
}
|
|
177
176
|
}
|
|
178
177
|
},
|
|
179
178
|
handleItemHover: function handleItemHover(el) {
|
|
180
179
|
highlightItem(el, false);
|
|
181
180
|
},
|
|
181
|
+
handleItemFocus: function handleItemFocus(el) {
|
|
182
|
+
highlightItem(el, true, true);
|
|
183
|
+
},
|
|
184
|
+
handleItemBlur: function handleItemBlur(el) {
|
|
185
|
+
_handleItemBlur(el);
|
|
186
|
+
},
|
|
182
187
|
useKeyboardSensor: function useKeyboardSensor(api) {
|
|
183
188
|
dragAndDropApi = api;
|
|
184
189
|
},
|
|
190
|
+
setIsDragging: function setIsDragging(isDragging) {
|
|
191
|
+
isDraggingStateRef.current = isDragging;
|
|
192
|
+
},
|
|
185
193
|
updateSelectCallback: function updateSelectCallback(callback) {
|
|
186
194
|
onSelect = callback;
|
|
187
195
|
},
|
|
188
196
|
highlight: highlightItem,
|
|
189
197
|
highlighted: function highlighted() {
|
|
190
|
-
var
|
|
191
|
-
return JSON.parse(((
|
|
198
|
+
var _highlightedItem6;
|
|
199
|
+
return JSON.parse(((_highlightedItem6 = highlightedItem) === null || _highlightedItem6 === void 0 ? void 0 : _highlightedItem6.dataset.value) || 'null');
|
|
192
200
|
},
|
|
193
201
|
highlightFirst: highlightFirstItem,
|
|
194
202
|
highlightLast: highlightLastItem,
|
|
195
203
|
rehighlightCurrent: function rehighlightCurrent() {
|
|
196
|
-
var
|
|
204
|
+
var _highlightedItem7;
|
|
197
205
|
// Rehighlights an item that may have lost its styling due to the re-render of the list items
|
|
198
|
-
var draggableId = (
|
|
206
|
+
var draggableId = (_highlightedItem7 = highlightedItem) === null || _highlightedItem7 === void 0 ? void 0 : _highlightedItem7.getAttribute('data-rbd-draggable-id');
|
|
199
207
|
if (draggableId) {
|
|
200
208
|
var _ref$current3;
|
|
201
209
|
var newItem = (_ref$current3 = ref.current) === null || _ref$current3 === void 0 ? void 0 : _ref$current3.querySelector("[data-rbd-draggable-id=\"".concat(draggableId.replace(/["\\]/g, '\\$&'), "\"]"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sensors.js","names":["scrollIntoView","noop","MOUSE_ENTER","MOUSE_LEAVE","menuItemsWrapperAttributeName","menuItemsWrapperAttribute","_defineProperty","isItem","element","hasAttribute","isGroup","el","JSON","parse","dataset","group","isWrapper","getAttribute","getAllItems","menu","querySelectorAll","getFirstItem","_getAllItems","getPrevItem","item","items","Array","prototype","indexOf","call","getNextItem","getLastItem","length","updateHighlightedAttribute","highlight","setAttribute","dispatchEvent","MouseEvent","createSensors","ref","circular","onChangeActiveDescendant","highlightedItem","dragAndDropApi","currentDrag","onSelect","select","event","current","_highlightedItem","_highlightedItem2","_highlightedItem3","_highlightedItem4","_highlightedItem5","_onSelect","disabled","value","selected","restoreFocus","restorefocus","undefined","tagName","click","_objectSpread","action","highlightItem","shouldScroll","arguments","_item$getAttribute","id","getPrevHighlightableItem","currentItem","prev","getNextHighlightableItem","next","highlightFirstItem","highlightLastItem","highlightPrevItem","_ref$current","contains","highlightNextItem","_ref$current2","handleKeyDown","_currentDrag4","key","_currentDrag","preventDefault","isActive","moveUp","_currentDrag2","moveDown","_currentDrag3","ctrlKey","metaKey","_highlightedItem6","draggableId","_dragAndDropApi","preDrag","tryGetLock","snapLift","drop","cancel","handleItemHover","useKeyboardSensor","api","updateSelectCallback","callback","highlighted","_highlightedItem7","highlightFirst","highlightLast","rehighlightCurrent","_highlightedItem8","_ref$current3","newItem","querySelector","concat","replace","highlightSelected","_ref$current4","selectedItem","highlightSuggested","_ref$current5","suggestedItem"],"sources":["../../src/MenuImperative/sensors.ts"],"sourcesContent":["import type {\n SensorAPI,\n SnapDragActions,\n} from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-migration'\nimport type React from 'react'\nimport { scrollIntoView } from '../_utils/scrollIntoView'\nimport type { Selection } from './MenuImperative.types'\n\nfunction noop() {}\n\nconst MOUSE_ENTER = 'mouseenter'\nconst MOUSE_LEAVE = 'mouseleave'\n\nconst menuItemsWrapperAttributeName = 'data-core-menuimperative-items-wrapper'\nexport const menuItemsWrapperAttribute = {\n [menuItemsWrapperAttributeName]: 'true',\n}\n\nconst isItem = (element: Element | null) => element?.hasAttribute('data-value')\n\nfunction isGroup(el: HTMLElement) {\n return JSON.parse(el.dataset.group || 'false')\n}\n\nconst isWrapper = (element: Element | null) =>\n element?.getAttribute(menuItemsWrapperAttributeName) === 'true'\n\nfunction getAllItems(menu: Element | null) {\n return menu?.querySelectorAll<HTMLElement>(\n '[data-value]:not([data-group=\"true\"])'\n )\n}\n\nfunction getFirstItem(menu: Element | null) {\n return getAllItems(menu)?.[0]\n}\n\nfunction getPrevItem(item: Element, menu: Element | null): HTMLElement | null {\n const items = getAllItems(menu)\n\n return items ? items[Array.prototype.indexOf.call(items, item) - 1] : null\n}\n\nfunction getNextItem(item: Element, menu: Element | null): HTMLElement | null {\n const items = getAllItems(menu)\n\n return items ? items[Array.prototype.indexOf.call(items, item) + 1] : null\n}\n\nfunction getLastItem(menu: Element | null) {\n const items = getAllItems(menu)\n return items?.[items.length - 1]\n}\n\nfunction updateHighlightedAttribute(\n item: Element | null | undefined,\n highlight: boolean\n) {\n item?.setAttribute('data-highlighted', highlight ? 'true' : 'false')\n item?.dispatchEvent(new MouseEvent(highlight ? MOUSE_ENTER : MOUSE_LEAVE))\n}\n\nexport function createSensors(\n ref: React.RefObject<HTMLDivElement>,\n circular: boolean,\n onChangeActiveDescendant: (\n id: string | undefined,\n menuRef: Element | null\n ) => void\n) {\n let highlightedItem: HTMLElement | null = null\n let dragAndDropApi: SensorAPI | null = null\n let currentDrag: SnapDragActions | null = null\n let onSelect: (selection: Selection) => any = noop\n\n function select(\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n ) {\n if (ref.current && highlightedItem) {\n const disabled = JSON.parse(highlightedItem?.dataset.disabled || 'false')\n if (disabled) return\n\n const item = JSON.parse(highlightedItem?.dataset.value || 'null')\n const selected = JSON.parse(highlightedItem?.dataset.selected || 'false')\n const restoreFocus = highlightedItem?.dataset.restorefocus\n ? JSON.parse(highlightedItem?.dataset.restorefocus)\n : undefined\n\n if (highlightedItem.tagName === 'A') {\n highlightedItem.click()\n }\n\n onSelect?.({\n event,\n item,\n group: false,\n action: selected ? 'unselected' : 'selected',\n ...(restoreFocus === undefined ? {} : { restoreFocus }),\n })\n }\n }\n\n function highlightItem(\n item: HTMLElement | null | undefined,\n shouldScroll: boolean = true\n ) {\n // performance improvement, highlightItem is called onMouseMove for Item\n if (item === highlightedItem) {\n return\n }\n\n if (item) {\n updateHighlightedAttribute(highlightedItem, false)\n\n // TODO add localized screenreader instructions for the item\n updateHighlightedAttribute(item, true)\n\n const id = item.getAttribute('id') ?? undefined\n onChangeActiveDescendant(id, ref.current)\n\n highlightedItem = item\n\n if (shouldScroll) {\n scrollIntoView(-1, item)\n }\n } else {\n onChangeActiveDescendant('', ref.current)\n }\n }\n\n function getPrevHighlightableItem(\n currentItem: HTMLElement\n ): HTMLElement | null | undefined {\n const prev = getPrevItem(currentItem, ref.current)\n if (prev) {\n if (isItem(prev)) {\n return prev\n }\n } else if (circular) {\n return getLastItem(ref.current)\n }\n\n return prev\n }\n\n function getNextHighlightableItem(\n currentItem: HTMLElement\n ): HTMLElement | null | undefined {\n const next = getNextItem(currentItem, ref.current)\n\n if (next) {\n if (isItem(next)) {\n return next\n }\n } else if (circular) {\n return getFirstItem(ref.current)\n }\n }\n\n function highlightFirstItem(shouldScroll: boolean = true) {\n highlightItem(getFirstItem(ref.current), shouldScroll)\n }\n\n function highlightLastItem(shouldScroll: boolean = true) {\n highlightItem(getLastItem(ref.current), shouldScroll)\n }\n\n function highlightPrevItem() {\n if (highlightedItem && ref.current?.contains(highlightedItem)) {\n const prev = getPrevHighlightableItem(highlightedItem)\n if (prev) {\n highlightItem(prev)\n }\n } else {\n highlightLastItem()\n }\n }\n\n function highlightNextItem() {\n if (highlightedItem && ref.current?.contains(highlightedItem)) {\n const next = getNextHighlightableItem(highlightedItem)\n if (next) {\n highlightItem(next)\n }\n } else {\n highlightFirstItem()\n }\n }\n\n return {\n handleKeyDown(event: React.KeyboardEvent<HTMLDivElement>) {\n if (ref.current) {\n if (event.key === 'ArrowUp' || event.key === 'Up') {\n event.preventDefault()\n currentDrag?.isActive() ? currentDrag.moveUp() : highlightPrevItem()\n } else if (event.key === 'ArrowDown' || event.key === 'Down') {\n event.preventDefault()\n currentDrag?.isActive() ? currentDrag.moveDown() : highlightNextItem()\n } else if (event.key === 'Enter') {\n event.preventDefault()\n if (event.ctrlKey || event.metaKey) {\n const draggableId = highlightedItem?.getAttribute(\n 'data-rbd-draggable-id'\n )\n if (draggableId) {\n const preDrag = dragAndDropApi?.tryGetLock(draggableId)\n if (preDrag) {\n currentDrag = preDrag.snapLift()\n }\n }\n } else if (currentDrag?.isActive()) {\n currentDrag.drop()\n } else {\n select(event)\n }\n } else if (event.key === 'Escape' && currentDrag?.isActive()) {\n currentDrag.cancel()\n }\n }\n },\n handleItemHover(el?: HTMLDivElement) {\n highlightItem(el, false)\n },\n useKeyboardSensor(api: SensorAPI) {\n dragAndDropApi = api\n },\n\n updateSelectCallback(callback: (selection: Selection) => any) {\n onSelect = callback\n },\n\n highlight: highlightItem,\n\n highlighted() {\n return JSON.parse(highlightedItem?.dataset.value || 'null')\n },\n\n highlightFirst: highlightFirstItem,\n highlightLast: highlightLastItem,\n rehighlightCurrent() {\n // Rehighlights an item that may have lost its styling due to the re-render of the list items\n const draggableId = highlightedItem?.getAttribute('data-rbd-draggable-id')\n if (draggableId) {\n const newItem = ref.current?.querySelector<HTMLElement>(\n `[data-rbd-draggable-id=\"${draggableId.replace(/[\"\\\\]/g, '\\\\$&')}\"]`\n )\n highlightItem(newItem)\n }\n },\n\n highlightSelected(shouldScroll: boolean = true) {\n const selectedItem = ref.current?.querySelector<HTMLElement>(\n '[data-selected=\"true\"]'\n )\n\n highlightItem(selectedItem, shouldScroll)\n },\n\n highlightSuggested(shouldScroll: boolean = true) {\n const suggestedItem = ref.current?.querySelector<HTMLElement>(\n '[data-suggested=\"true\"]'\n )\n\n highlightItem(suggestedItem, shouldScroll)\n },\n\n prev: highlightPrevItem,\n next: highlightNextItem,\n select,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sensors.js","names":["scrollIntoView","noop","MOUSE_ENTER","MOUSE_LEAVE","menuItemsWrapperAttributeName","menuItemsWrapperAttribute","_defineProperty","isItem","element","hasAttribute","isGroup","el","JSON","parse","dataset","group","isWrapper","getAttribute","getAllItems","menu","querySelectorAll","getFirstItem","_getAllItems","getPrevItem","item","items","Array","prototype","indexOf","call","getNextItem","getLastItem","length","updateHighlightedAttribute","highlight","setAttribute","dispatchEvent","MouseEvent","createSensors","ref","circular","onChangeActiveDescendant","highlightedItem","dragAndDropApi","onSelect","isDraggingStateRef","current","select","event","_highlightedItem","_highlightedItem2","_highlightedItem3","_highlightedItem4","_highlightedItem5","_onSelect","disabled","value","selected","restoreFocus","restorefocus","undefined","tagName","click","_objectSpread","action","highlightItem","shouldScroll","arguments","shouldFocus","_item$getAttribute","id","focus","handleItemBlur","getPrevHighlightableItem","currentItem","prev","getNextHighlightableItem","next","highlightFirstItem","highlightLastItem","highlightPrevItem","_ref$current","contains","highlightNextItem","_ref$current2","handleKeyDown","isDragActive","key","preventDefault","handleItemHover","handleItemFocus","useKeyboardSensor","api","setIsDragging","isDragging","updateSelectCallback","callback","highlighted","_highlightedItem6","highlightFirst","highlightLast","rehighlightCurrent","_highlightedItem7","draggableId","_ref$current3","newItem","querySelector","concat","replace","highlightSelected","_ref$current4","selectedItem","highlightSuggested","_ref$current5","suggestedItem"],"sources":["../../src/MenuImperative/sensors.ts"],"sourcesContent":["import type { SensorAPI } from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-migration'\nimport type React from 'react'\nimport { scrollIntoView } from '../_utils/scrollIntoView'\nimport type { Selection } from './MenuImperative.types'\n\nfunction noop() {}\n\nconst MOUSE_ENTER = 'mouseenter'\nconst MOUSE_LEAVE = 'mouseleave'\n\nconst menuItemsWrapperAttributeName = 'data-core-menuimperative-items-wrapper'\nexport const menuItemsWrapperAttribute = {\n [menuItemsWrapperAttributeName]: 'true',\n}\n\nconst isItem = (element: Element | null) => element?.hasAttribute('data-value')\n\nfunction isGroup(el: HTMLElement) {\n return JSON.parse(el.dataset.group || 'false')\n}\n\nconst isWrapper = (element: Element | null) =>\n element?.getAttribute(menuItemsWrapperAttributeName) === 'true'\n\nfunction getAllItems(menu: Element | null) {\n return menu?.querySelectorAll<HTMLElement>(\n '[data-value]:not([data-group=\"true\"])'\n )\n}\n\nfunction getFirstItem(menu: Element | null) {\n return getAllItems(menu)?.[0]\n}\n\nfunction getPrevItem(item: Element, menu: Element | null): HTMLElement | null {\n const items = getAllItems(menu)\n\n return items ? items[Array.prototype.indexOf.call(items, item) - 1] : null\n}\n\nfunction getNextItem(item: Element, menu: Element | null): HTMLElement | null {\n const items = getAllItems(menu)\n\n return items ? items[Array.prototype.indexOf.call(items, item) + 1] : null\n}\n\nfunction getLastItem(menu: Element | null) {\n const items = getAllItems(menu)\n return items?.[items.length - 1]\n}\n\nfunction updateHighlightedAttribute(\n item: Element | null | undefined,\n highlight: boolean\n) {\n item?.setAttribute('data-highlighted', highlight ? 'true' : 'false')\n item?.dispatchEvent(new MouseEvent(highlight ? MOUSE_ENTER : MOUSE_LEAVE))\n}\n\nexport function createSensors(\n ref: React.RefObject<HTMLDivElement>,\n circular: boolean,\n onChangeActiveDescendant: (\n id: string | undefined,\n menuRef: Element | null\n ) => void\n) {\n let highlightedItem: HTMLElement | null = null\n let dragAndDropApi: SensorAPI | null = null\n let onSelect: (selection: Selection) => any = noop\n const isDraggingStateRef = { current: false }\n\n function select(\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n ) {\n if (ref.current && highlightedItem) {\n const disabled = JSON.parse(highlightedItem?.dataset.disabled || 'false')\n if (disabled) return\n\n const item = JSON.parse(highlightedItem?.dataset.value || 'null')\n const selected = JSON.parse(highlightedItem?.dataset.selected || 'false')\n const restoreFocus = highlightedItem?.dataset.restorefocus\n ? JSON.parse(highlightedItem?.dataset.restorefocus)\n : undefined\n\n if (highlightedItem.tagName === 'A') {\n highlightedItem.click()\n }\n\n onSelect?.({\n event,\n item,\n group: false,\n action: selected ? 'unselected' : 'selected',\n ...(restoreFocus === undefined ? {} : { restoreFocus }),\n })\n }\n }\n\n function highlightItem(\n item: HTMLElement | null | undefined,\n shouldScroll: boolean = true,\n shouldFocus: boolean = false\n ) {\n // performance improvement, highlightItem is called onMouseMove for Item\n if (item === highlightedItem) {\n return\n }\n\n if (item) {\n updateHighlightedAttribute(highlightedItem, false)\n\n // TODO add localized screenreader instructions for the item\n updateHighlightedAttribute(item, true)\n\n const id = item.getAttribute('id') ?? undefined\n onChangeActiveDescendant(id, ref.current)\n\n highlightedItem = item\n\n if (shouldFocus) {\n item.focus()\n }\n\n if (shouldScroll) {\n scrollIntoView(-1, item)\n }\n } else {\n onChangeActiveDescendant('', ref.current)\n }\n }\n\n function handleItemBlur(el?: HTMLDivElement) {\n updateHighlightedAttribute(el, false)\n highlightedItem = null\n }\n\n function getPrevHighlightableItem(\n currentItem: HTMLElement\n ): HTMLElement | null | undefined {\n const prev = getPrevItem(currentItem, ref.current)\n if (prev) {\n if (isItem(prev)) {\n return prev\n }\n } else if (circular) {\n return getLastItem(ref.current)\n }\n\n return prev\n }\n\n function getNextHighlightableItem(\n currentItem: HTMLElement\n ): HTMLElement | null | undefined {\n const next = getNextItem(currentItem, ref.current)\n\n if (next) {\n if (isItem(next)) {\n return next\n }\n } else if (circular) {\n return getFirstItem(ref.current)\n }\n }\n\n function highlightFirstItem(\n shouldScroll: boolean = true,\n shouldFocus: boolean = true\n ) {\n highlightItem(getFirstItem(ref.current), shouldScroll, shouldFocus)\n }\n\n function highlightLastItem(\n shouldScroll: boolean = true,\n shouldFocus: boolean = true\n ) {\n highlightItem(getLastItem(ref.current), shouldScroll, shouldFocus)\n }\n\n function highlightPrevItem() {\n if (highlightedItem && ref.current?.contains(highlightedItem)) {\n const prev = getPrevHighlightableItem(highlightedItem)\n if (prev) {\n highlightItem(prev, true, true)\n }\n } else {\n highlightLastItem(true, true)\n }\n }\n\n function highlightNextItem() {\n if (highlightedItem && ref.current?.contains(highlightedItem)) {\n const next = getNextHighlightableItem(highlightedItem)\n if (next) {\n highlightItem(next, true, true)\n }\n } else {\n highlightFirstItem(true, true)\n }\n }\n\n return {\n handleKeyDown(event: React.KeyboardEvent<HTMLDivElement>) {\n if (ref.current) {\n const isDragActive = isDraggingStateRef.current\n if (event.key === 'ArrowUp' || event.key === 'Up') {\n if (!isDragActive) {\n event.preventDefault()\n highlightPrevItem()\n }\n } else if (event.key === 'ArrowDown' || event.key === 'Down') {\n if (!isDragActive) {\n event.preventDefault()\n highlightNextItem()\n }\n } else if (event.key === 'Enter') {\n event.preventDefault()\n if (!isDragActive) {\n select(event)\n }\n }\n }\n },\n handleItemHover(el?: HTMLDivElement) {\n highlightItem(el, false)\n },\n handleItemFocus(el?: HTMLDivElement) {\n highlightItem(el, true, true)\n },\n handleItemBlur(el?: HTMLDivElement) {\n handleItemBlur(el)\n },\n useKeyboardSensor(api: SensorAPI) {\n dragAndDropApi = api\n },\n setIsDragging(isDragging: boolean) {\n isDraggingStateRef.current = isDragging\n },\n\n updateSelectCallback(callback: (selection: Selection) => any) {\n onSelect = callback\n },\n\n highlight: highlightItem,\n\n highlighted() {\n return JSON.parse(highlightedItem?.dataset.value || 'null')\n },\n\n highlightFirst: highlightFirstItem,\n highlightLast: highlightLastItem,\n rehighlightCurrent() {\n // Rehighlights an item that may have lost its styling due to the re-render of the list items\n const draggableId = highlightedItem?.getAttribute('data-rbd-draggable-id')\n if (draggableId) {\n const newItem = ref.current?.querySelector<HTMLElement>(\n `[data-rbd-draggable-id=\"${draggableId.replace(/[\"\\\\]/g, '\\\\$&')}\"]`\n )\n highlightItem(newItem)\n }\n },\n\n highlightSelected(shouldScroll: boolean = true) {\n const selectedItem = ref.current?.querySelector<HTMLElement>(\n '[data-selected=\"true\"]'\n )\n\n highlightItem(selectedItem, shouldScroll)\n },\n\n highlightSuggested(shouldScroll: boolean = true) {\n const suggestedItem = ref.current?.querySelector<HTMLElement>(\n '[data-suggested=\"true\"]'\n )\n\n highlightItem(suggestedItem, shouldScroll)\n },\n\n prev: highlightPrevItem,\n next: highlightNextItem,\n select,\n }\n}\n"],"mappings":";;;;;;AAEA,SAASA,cAAc,QAAQ,0BAA0B;AAGzD,SAASC,IAAIA,CAAA,EAAG,CAAC;AAEjB,IAAMC,WAAW,GAAG,YAAY;AAChC,IAAMC,WAAW,GAAG,YAAY;AAEhC,IAAMC,6BAA6B,GAAG,wCAAwC;AAC9E,OAAO,IAAMC,yBAAyB,GAAAC,eAAA,KACnCF,6BAA6B,EAAG,MAAM,CACxC;AAED,IAAMG,MAAM,GAAG,SAATA,MAAMA,CAAIC,OAAuB;EAAA,OAAKA,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,YAAY,CAAC,YAAY,CAAC;AAAA;AAE/E,SAASC,OAAOA,CAACC,EAAe,EAAE;EAChC,OAAOC,IAAI,CAACC,KAAK,CAACF,EAAE,CAACG,OAAO,CAACC,KAAK,IAAI,OAAO,CAAC;AAChD;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAIR,OAAuB;EAAA,OACxC,CAAAA,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAES,YAAY,CAACb,6BAA6B,CAAC,MAAK,MAAM;AAAA;AAEjE,SAASc,WAAWA,CAACC,IAAoB,EAAE;EACzC,OAAOA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEC,gBAAgB,CAC3B,uCACF,CAAC;AACH;AAEA,SAASC,YAAYA,CAACF,IAAoB,EAAE;EAAA,IAAAG,YAAA;EAC1C,QAAAA,YAAA,GAAOJ,WAAW,CAACC,IAAI,CAAC,cAAAG,YAAA,uBAAjBA,YAAA,CAAoB,CAAC,CAAC;AAC/B;AAEA,SAASC,WAAWA,CAACC,IAAa,EAAEL,IAAoB,EAAsB;EAC5E,IAAMM,KAAK,GAAGP,WAAW,CAACC,IAAI,CAAC;EAE/B,OAAOM,KAAK,GAAGA,KAAK,CAACC,KAAK,CAACC,SAAS,CAACC,OAAO,CAACC,IAAI,CAACJ,KAAK,EAAED,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;AAC5E;AAEA,SAASM,WAAWA,CAACN,IAAa,EAAEL,IAAoB,EAAsB;EAC5E,IAAMM,KAAK,GAAGP,WAAW,CAACC,IAAI,CAAC;EAE/B,OAAOM,KAAK,GAAGA,KAAK,CAACC,KAAK,CAACC,SAAS,CAACC,OAAO,CAACC,IAAI,CAACJ,KAAK,EAAED,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;AAC5E;AAEA,SAASO,WAAWA,CAACZ,IAAoB,EAAE;EACzC,IAAMM,KAAK,GAAGP,WAAW,CAACC,IAAI,CAAC;EAC/B,OAAOM,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAGA,KAAK,CAACO,MAAM,GAAG,CAAC,CAAC;AAClC;AAEA,SAASC,0BAA0BA,CACjCT,IAAgC,EAChCU,SAAkB,EAClB;EACAV,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEW,YAAY,CAAC,kBAAkB,EAAED,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;EACpEV,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEY,aAAa,CAAC,IAAIC,UAAU,CAACH,SAAS,GAAGhC,WAAW,GAAGC,WAAW,CAAC,CAAC;AAC5E;AAEA,OAAO,SAASmC,aAAaA,CAC3BC,GAAoC,EACpCC,QAAiB,EACjBC,wBAGS,EACT;EACA,IAAIC,eAAmC,GAAG,IAAI;EAC9C,IAAIC,cAAgC,GAAG,IAAI;EAC3C,IAAIC,QAAuC,GAAG3C,IAAI;EAClD,IAAM4C,kBAAkB,GAAG;IAAEC,OAAO,EAAE;EAAM,CAAC;EAE7C,SAASC,MAAMA,CACbC,KAEoC,EACpC;IACA,IAAIT,GAAG,CAACO,OAAO,IAAIJ,eAAe,EAAE;MAAA,IAAAO,gBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,SAAA;MAClC,IAAMC,QAAQ,GAAG3C,IAAI,CAACC,KAAK,CAAC,EAAAoC,gBAAA,GAAAP,eAAe,cAAAO,gBAAA,uBAAfA,gBAAA,CAAiBnC,OAAO,CAACyC,QAAQ,KAAI,OAAO,CAAC;MACzE,IAAIA,QAAQ,EAAE;MAEd,IAAM/B,IAAI,GAAGZ,IAAI,CAACC,KAAK,CAAC,EAAAqC,iBAAA,GAAAR,eAAe,cAAAQ,iBAAA,uBAAfA,iBAAA,CAAiBpC,OAAO,CAAC0C,KAAK,KAAI,MAAM,CAAC;MACjE,IAAMC,QAAQ,GAAG7C,IAAI,CAACC,KAAK,CAAC,EAAAsC,iBAAA,GAAAT,eAAe,cAAAS,iBAAA,uBAAfA,iBAAA,CAAiBrC,OAAO,CAAC2C,QAAQ,KAAI,OAAO,CAAC;MACzE,IAAMC,YAAY,GAAG,CAAAN,iBAAA,GAAAV,eAAe,cAAAU,iBAAA,eAAfA,iBAAA,CAAiBtC,OAAO,CAAC6C,YAAY,GACtD/C,IAAI,CAACC,KAAK,EAAAwC,iBAAA,GAACX,eAAe,cAAAW,iBAAA,uBAAfA,iBAAA,CAAiBvC,OAAO,CAAC6C,YAAY,CAAC,GACjDC,SAAS;MAEb,IAAIlB,eAAe,CAACmB,OAAO,KAAK,GAAG,EAAE;QACnCnB,eAAe,CAACoB,KAAK,CAAC,CAAC;MACzB;MAEA,CAAAR,SAAA,GAAAV,QAAQ,cAAAU,SAAA,uBAARA,SAAA,CAAAS,aAAA;QACEf,KAAK,EAALA,KAAK;QACLxB,IAAI,EAAJA,IAAI;QACJT,KAAK,EAAE,KAAK;QACZiD,MAAM,EAAEP,QAAQ,GAAG,YAAY,GAAG;MAAU,GACxCC,YAAY,KAAKE,SAAS,GAAG,CAAC,CAAC,GAAG;QAAEF,YAAY,EAAZA;MAAa,CAAC,CACvD,CAAC;IACJ;EACF;EAEA,SAASO,aAAaA,CACpBzC,IAAoC,EAGpC;IAAA,IAFA0C,YAAqB,GAAAC,SAAA,CAAAnC,MAAA,QAAAmC,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,IAAI;IAAA,IAC5BC,WAAoB,GAAAD,SAAA,CAAAnC,MAAA,QAAAmC,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,KAAK;IAE5B;IACA,IAAI3C,IAAI,KAAKkB,eAAe,EAAE;MAC5B;IACF;IAEA,IAAIlB,IAAI,EAAE;MAAA,IAAA6C,kBAAA;MACRpC,0BAA0B,CAACS,eAAe,EAAE,KAAK,CAAC;;MAElD;MACAT,0BAA0B,CAACT,IAAI,EAAE,IAAI,CAAC;MAEtC,IAAM8C,EAAE,IAAAD,kBAAA,GAAG7C,IAAI,CAACP,YAAY,CAAC,IAAI,CAAC,cAAAoD,kBAAA,cAAAA,kBAAA,GAAIT,SAAS;MAC/CnB,wBAAwB,CAAC6B,EAAE,EAAE/B,GAAG,CAACO,OAAO,CAAC;MAEzCJ,eAAe,GAAGlB,IAAI;MAEtB,IAAI4C,WAAW,EAAE;QACf5C,IAAI,CAAC+C,KAAK,CAAC,CAAC;MACd;MAEA,IAAIL,YAAY,EAAE;QAChBlE,cAAc,CAAC,CAAC,CAAC,EAAEwB,IAAI,CAAC;MAC1B;IACF,CAAC,MAAM;MACLiB,wBAAwB,CAAC,EAAE,EAAEF,GAAG,CAACO,OAAO,CAAC;IAC3C;EACF;EAEA,SAAS0B,eAAcA,CAAC7D,EAAmB,EAAE;IAC3CsB,0BAA0B,CAACtB,EAAE,EAAE,KAAK,CAAC;IACrC+B,eAAe,GAAG,IAAI;EACxB;EAEA,SAAS+B,wBAAwBA,CAC/BC,WAAwB,EACQ;IAChC,IAAMC,IAAI,GAAGpD,WAAW,CAACmD,WAAW,EAAEnC,GAAG,CAACO,OAAO,CAAC;IAClD,IAAI6B,IAAI,EAAE;MACR,IAAIpE,MAAM,CAACoE,IAAI,CAAC,EAAE;QAChB,OAAOA,IAAI;MACb;IACF,CAAC,MAAM,IAAInC,QAAQ,EAAE;MACnB,OAAOT,WAAW,CAACQ,GAAG,CAACO,OAAO,CAAC;IACjC;IAEA,OAAO6B,IAAI;EACb;EAEA,SAASC,wBAAwBA,CAC/BF,WAAwB,EACQ;IAChC,IAAMG,IAAI,GAAG/C,WAAW,CAAC4C,WAAW,EAAEnC,GAAG,CAACO,OAAO,CAAC;IAElD,IAAI+B,IAAI,EAAE;MACR,IAAItE,MAAM,CAACsE,IAAI,CAAC,EAAE;QAChB,OAAOA,IAAI;MACb;IACF,CAAC,MAAM,IAAIrC,QAAQ,EAAE;MACnB,OAAOnB,YAAY,CAACkB,GAAG,CAACO,OAAO,CAAC;IAClC;EACF;EAEA,SAASgC,kBAAkBA,CAAA,EAGzB;IAAA,IAFAZ,YAAqB,GAAAC,SAAA,CAAAnC,MAAA,QAAAmC,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,IAAI;IAAA,IAC5BC,WAAoB,GAAAD,SAAA,CAAAnC,MAAA,QAAAmC,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,IAAI;IAE3BF,aAAa,CAAC5C,YAAY,CAACkB,GAAG,CAACO,OAAO,CAAC,EAAEoB,YAAY,EAAEE,WAAW,CAAC;EACrE;EAEA,SAASW,iBAAiBA,CAAA,EAGxB;IAAA,IAFAb,YAAqB,GAAAC,SAAA,CAAAnC,MAAA,QAAAmC,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,IAAI;IAAA,IAC5BC,WAAoB,GAAAD,SAAA,CAAAnC,MAAA,QAAAmC,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,IAAI;IAE3BF,aAAa,CAAClC,WAAW,CAACQ,GAAG,CAACO,OAAO,CAAC,EAAEoB,YAAY,EAAEE,WAAW,CAAC;EACpE;EAEA,SAASY,iBAAiBA,CAAA,EAAG;IAAA,IAAAC,YAAA;IAC3B,IAAIvC,eAAe,KAAAuC,YAAA,GAAI1C,GAAG,CAACO,OAAO,cAAAmC,YAAA,eAAXA,YAAA,CAAaC,QAAQ,CAACxC,eAAe,CAAC,EAAE;MAC7D,IAAMiC,IAAI,GAAGF,wBAAwB,CAAC/B,eAAe,CAAC;MACtD,IAAIiC,IAAI,EAAE;QACRV,aAAa,CAACU,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;MACjC;IACF,CAAC,MAAM;MACLI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC;IAC/B;EACF;EAEA,SAASI,iBAAiBA,CAAA,EAAG;IAAA,IAAAC,aAAA;IAC3B,IAAI1C,eAAe,KAAA0C,aAAA,GAAI7C,GAAG,CAACO,OAAO,cAAAsC,aAAA,eAAXA,aAAA,CAAaF,QAAQ,CAACxC,eAAe,CAAC,EAAE;MAC7D,IAAMmC,IAAI,GAAGD,wBAAwB,CAAClC,eAAe,CAAC;MACtD,IAAImC,IAAI,EAAE;QACRZ,aAAa,CAACY,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;MACjC;IACF,CAAC,MAAM;MACLC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC;IAChC;EACF;EAEA,OAAO;IACLO,aAAa,WAAbA,aAAaA,CAACrC,KAA0C,EAAE;MACxD,IAAIT,GAAG,CAACO,OAAO,EAAE;QACf,IAAMwC,YAAY,GAAGzC,kBAAkB,CAACC,OAAO;QAC/C,IAAIE,KAAK,CAACuC,GAAG,KAAK,SAAS,IAAIvC,KAAK,CAACuC,GAAG,KAAK,IAAI,EAAE;UACjD,IAAI,CAACD,YAAY,EAAE;YACjBtC,KAAK,CAACwC,cAAc,CAAC,CAAC;YACtBR,iBAAiB,CAAC,CAAC;UACrB;QACF,CAAC,MAAM,IAAIhC,KAAK,CAACuC,GAAG,KAAK,WAAW,IAAIvC,KAAK,CAACuC,GAAG,KAAK,MAAM,EAAE;UAC5D,IAAI,CAACD,YAAY,EAAE;YACjBtC,KAAK,CAACwC,cAAc,CAAC,CAAC;YACtBL,iBAAiB,CAAC,CAAC;UACrB;QACF,CAAC,MAAM,IAAInC,KAAK,CAACuC,GAAG,KAAK,OAAO,EAAE;UAChCvC,KAAK,CAACwC,cAAc,CAAC,CAAC;UACtB,IAAI,CAACF,YAAY,EAAE;YACjBvC,MAAM,CAACC,KAAK,CAAC;UACf;QACF;MACF;IACF,CAAC;IACDyC,eAAe,WAAfA,eAAeA,CAAC9E,EAAmB,EAAE;MACnCsD,aAAa,CAACtD,EAAE,EAAE,KAAK,CAAC;IAC1B,CAAC;IACD+E,eAAe,WAAfA,eAAeA,CAAC/E,EAAmB,EAAE;MACnCsD,aAAa,CAACtD,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;IAC/B,CAAC;IACD6D,cAAc,WAAdA,cAAcA,CAAC7D,EAAmB,EAAE;MAClC6D,eAAc,CAAC7D,EAAE,CAAC;IACpB,CAAC;IACDgF,iBAAiB,WAAjBA,iBAAiBA,CAACC,GAAc,EAAE;MAChCjD,cAAc,GAAGiD,GAAG;IACtB,CAAC;IACDC,aAAa,WAAbA,aAAaA,CAACC,UAAmB,EAAE;MACjCjD,kBAAkB,CAACC,OAAO,GAAGgD,UAAU;IACzC,CAAC;IAEDC,oBAAoB,WAApBA,oBAAoBA,CAACC,QAAuC,EAAE;MAC5DpD,QAAQ,GAAGoD,QAAQ;IACrB,CAAC;IAED9D,SAAS,EAAE+B,aAAa;IAExBgC,WAAW,WAAXA,WAAWA,CAAA,EAAG;MAAA,IAAAC,iBAAA;MACZ,OAAOtF,IAAI,CAACC,KAAK,CAAC,EAAAqF,iBAAA,GAAAxD,eAAe,cAAAwD,iBAAA,uBAAfA,iBAAA,CAAiBpF,OAAO,CAAC0C,KAAK,KAAI,MAAM,CAAC;IAC7D,CAAC;IAED2C,cAAc,EAAErB,kBAAkB;IAClCsB,aAAa,EAAErB,iBAAiB;IAChCsB,kBAAkB,WAAlBA,kBAAkBA,CAAA,EAAG;MAAA,IAAAC,iBAAA;MACnB;MACA,IAAMC,WAAW,IAAAD,iBAAA,GAAG5D,eAAe,cAAA4D,iBAAA,uBAAfA,iBAAA,CAAiBrF,YAAY,CAAC,uBAAuB,CAAC;MAC1E,IAAIsF,WAAW,EAAE;QAAA,IAAAC,aAAA;QACf,IAAMC,OAAO,IAAAD,aAAA,GAAGjE,GAAG,CAACO,OAAO,cAAA0D,aAAA,uBAAXA,aAAA,CAAaE,aAAa,6BAAAC,MAAA,CACbJ,WAAW,CAACK,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,QAClE,CAAC;QACD3C,aAAa,CAACwC,OAAO,CAAC;MACxB;IACF,CAAC;IAEDI,iBAAiB,WAAjBA,iBAAiBA,CAAA,EAA+B;MAAA,IAAAC,aAAA;MAAA,IAA9B5C,YAAqB,GAAAC,SAAA,CAAAnC,MAAA,QAAAmC,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,IAAI;MAC5C,IAAM4C,YAAY,IAAAD,aAAA,GAAGvE,GAAG,CAACO,OAAO,cAAAgE,aAAA,uBAAXA,aAAA,CAAaJ,aAAa,CAC7C,wBACF,CAAC;MAEDzC,aAAa,CAAC8C,YAAY,EAAE7C,YAAY,CAAC;IAC3C,CAAC;IAED8C,kBAAkB,WAAlBA,kBAAkBA,CAAA,EAA+B;MAAA,IAAAC,aAAA;MAAA,IAA9B/C,YAAqB,GAAAC,SAAA,CAAAnC,MAAA,QAAAmC,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,IAAI;MAC7C,IAAM+C,aAAa,IAAAD,aAAA,GAAG1E,GAAG,CAACO,OAAO,cAAAmE,aAAA,uBAAXA,aAAA,CAAaP,aAAa,CAC9C,yBACF,CAAC;MAEDzC,aAAa,CAACiD,aAAa,EAAEhD,YAAY,CAAC;IAC5C,CAAC;IAEDS,IAAI,EAAEK,iBAAiB;IACvBH,IAAI,EAAEM,iBAAiB;IACvBpC,MAAM,EAANA;EACF,CAAC;AACH"}
|
package/dist/Modal/Modal.d.ts
CHANGED
|
@@ -32,6 +32,10 @@ export declare const Modal: React.ForwardRefExoticComponent<ModalProps & React.R
|
|
|
32
32
|
FooterNotation: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & TypographyProps & React.RefAttributes<HTMLSpanElement>>;
|
|
33
33
|
FooterSummary: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
34
34
|
Header: React.ForwardRefExoticComponent<ModalCloseableHeaderProps & React.RefAttributes<HTMLDivElement>>;
|
|
35
|
+
/**
|
|
36
|
+
* @a11y The primary heading inside the `Modal.Header` that is auto linked
|
|
37
|
+
* to the dialog and scroll region with aria-labelledby.
|
|
38
|
+
*/
|
|
35
39
|
Heading: (props: React.PropsWithChildren<HeadingProps & {
|
|
36
40
|
level?: number;
|
|
37
41
|
}>) => React.JSX.Element;
|