@procore/core-react 12.37.0 → 12.39.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/.jest/testShims.js +6 -0
- package/CHANGELOG.md +64 -0
- package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
- package/dist/Avatar/Avatar.styles.js +6 -6
- package/dist/Avatar/Avatar.styles.js.map +1 -1
- package/dist/AvatarStack/AvatarStack.js +65 -25
- package/dist/AvatarStack/AvatarStack.js.map +1 -1
- package/dist/AvatarStack/AvatarStack.styles.js +8 -8
- package/dist/AvatarStack/AvatarStack.styles.js.map +1 -1
- package/dist/AvatarStack/useAvatarPopover.d.ts +14 -0
- package/dist/AvatarStack/useAvatarPopover.js +57 -0
- package/dist/AvatarStack/useAvatarPopover.js.map +1 -0
- package/dist/AvatarStack/useAvatarPopover.types.d.ts +4 -0
- package/dist/AvatarStack/useAvatarPopover.types.js +2 -0
- package/dist/AvatarStack/useAvatarPopover.types.js.map +1 -0
- package/dist/Badge/Badge.styles.js +2 -2
- package/dist/BadgePill/BadgePill.styles.js +4 -4
- package/dist/Banner/Banner.d.ts +2 -1
- package/dist/Banner/Banner.js +53 -34
- package/dist/Banner/Banner.js.map +1 -1
- package/dist/Banner/Banner.styles.js +10 -10
- package/dist/Banner/Banner.types.d.ts +6 -0
- package/dist/Banner/Banner.types.js.map +1 -1
- package/dist/Banner/index.d.ts +1 -1
- package/dist/Banner/index.js.map +1 -1
- 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/Calendar/Calendar.styles.js +9 -9
- package/dist/Card/Card.styles.js +1 -1
- package/dist/Checkbox/Checkbox.d.ts +0 -1
- package/dist/Checkbox/Checkbox.js +5 -6
- package/dist/Checkbox/Checkbox.js.map +1 -1
- package/dist/Checkbox/Checkbox.styles.js +6 -6
- package/dist/ContactItem/ContactItem.styles.js +5 -5
- package/dist/Content/Content.styles.js +2 -2
- package/dist/DateInput/DateInput.js +12 -2
- package/dist/DateInput/DateInput.js.map +1 -1
- package/dist/DateInput/DateInput.styles.js +6 -6
- package/dist/DateSelect/DateSelect.types.d.ts +1 -1
- package/dist/DateSelect/DateSelect.types.js.map +1 -1
- 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.js +3 -7
- package/dist/FileList/FileList.js.map +1 -1
- package/dist/FileList/FileList.styles.d.ts +0 -1
- package/dist/FileList/FileList.styles.js +3 -7
- package/dist/FileList/FileList.styles.js.map +1 -1
- package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.js +3 -1
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.js.map +1 -1
- 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.js +10 -5
- package/dist/FileSelect/SourceItem/SourceItem.js.map +1 -1
- package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
- package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
- package/dist/FileToken/FileToken.styles.js +4 -4
- package/dist/FilterToken/FilterToken.styles.js +5 -5
- package/dist/FlexList/FlexList.styles.js +1 -1
- package/dist/Form/Form.js +74 -58
- package/dist/Form/Form.js.map +1 -1
- package/dist/Form/Form.styles.d.ts +0 -14
- package/dist/Form/Form.styles.js +14 -24
- package/dist/Form/Form.styles.js.map +1 -1
- package/dist/Form/Form.types.d.ts +22 -2
- package/dist/Form/Form.types.js.map +1 -1
- package/dist/Form/FormFieldTooltip.js +4 -11
- package/dist/Form/FormFieldTooltip.js.map +1 -1
- package/dist/Form/StyledFormikForm.styles.js +2 -2
- package/dist/Form/stories/util.js +1 -12
- package/dist/Form/stories/util.js.map +1 -1
- package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
- package/dist/Grid/Grid.styles.js +2 -2
- package/dist/GroupSelect/GroupSelect.js +5 -4
- package/dist/GroupSelect/GroupSelect.js.map +1 -1
- package/dist/GroupSelect/GroupSelect.styles.js +1 -1
- package/dist/GroupSelect/GroupSelect.types.d.ts +5 -5
- package/dist/GroupSelect/GroupSelect.types.js.map +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/Menu/Menu.js +1 -5
- package/dist/Menu/Menu.js.map +1 -1
- package/dist/MenuImperative/MenuImperative.js +7 -10
- package/dist/MenuImperative/MenuImperative.js.map +1 -1
- package/dist/MenuImperative/MenuImperative.styles.d.ts +2 -3
- package/dist/MenuImperative/MenuImperative.styles.js +26 -25
- package/dist/MenuImperative/MenuImperative.styles.js.map +1 -1
- package/dist/MenuImperative/MenuImperative.types.d.ts +4 -0
- package/dist/MenuImperative/MenuImperative.types.js.map +1 -1
- package/dist/MenuImperative/sensors.js +16 -58
- package/dist/MenuImperative/sensors.js.map +1 -1
- package/dist/Modal/Modal.styles.js +13 -13
- package/dist/MultiSelect/MultiSelect.js +50 -28
- package/dist/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/MultiSelect/MultiSelect.styles.d.ts +1 -0
- package/dist/MultiSelect/MultiSelect.styles.js +12 -8
- package/dist/MultiSelect/MultiSelect.styles.js.map +1 -1
- package/dist/MultiSelect/MultiSelect.types.d.ts +31 -1
- package/dist/MultiSelect/MultiSelect.types.js.map +1 -1
- 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/OverlayTrigger.js +4 -2
- package/dist/OverlayTrigger/OverlayTrigger.js.map +1 -1
- package/dist/OverlayTrigger/OverlayTrigger.types.d.ts +8 -0
- package/dist/OverlayTrigger/OverlayTrigger.types.js.map +1 -1
- package/dist/OverlayTrigger/a11yPresets.js +5 -3
- package/dist/OverlayTrigger/a11yPresets.js.map +1 -1
- package/dist/PageLayout/PageLayout.js +31 -12
- package/dist/PageLayout/PageLayout.js.map +1 -1
- package/dist/PageLayout/PageLayout.styles.d.ts +1 -0
- package/dist/PageLayout/PageLayout.styles.js +17 -17
- package/dist/PageLayout/PageLayout.styles.js.map +1 -1
- package/dist/PageLayout/PageLayout.types.d.ts +10 -0
- package/dist/PageLayout/PageLayout.types.js.map +1 -1
- 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.js +4 -3
- package/dist/PillSelect/PillSelect.js.map +1 -1
- package/dist/PillSelect/PillSelect.styles.js +4 -4
- package/dist/Popover/Popover.js +2 -1
- package/dist/Popover/Popover.js.map +1 -1
- package/dist/Popover/Popover.styles.js +2 -2
- package/dist/Portal/Portal.styles.js +1 -1
- package/dist/ProgressBar/ProgressBar.styles.js +2 -2
- 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 +9 -9
- package/dist/Section/Section.styles.js.map +1 -1
- package/dist/SegmentedController/SegmentedController.js +1 -2
- package/dist/SegmentedController/SegmentedController.js.map +1 -1
- package/dist/SegmentedController/SegmentedController.styles.js +4 -4
- package/dist/Select/Select.d.ts +3 -4
- package/dist/Select/Select.js +37 -15
- package/dist/Select/Select.js.map +1 -1
- package/dist/Select/Select.styles.js +9 -9
- package/dist/Select/Select.styles.js.map +1 -1
- package/dist/Select/Select.types.d.ts +20 -0
- package/dist/Select/Select.types.js.map +1 -1
- package/dist/Select/index.d.ts +1 -1
- package/dist/Select/index.js.map +1 -1
- package/dist/Semantic/Semantic.styles.js +9 -9
- package/dist/Slider/Slider.styles.js +5 -5
- package/dist/Spinner/Spinner.js +21 -6
- package/dist/Spinner/Spinner.js.map +1 -1
- package/dist/Spinner/Spinner.styles.js +7 -7
- package/dist/SplitViewCard/SplitViewCard.js +13 -0
- package/dist/SplitViewCard/SplitViewCard.js.map +1 -1
- package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
- package/dist/SuperSelect/SuperSelect.components.js +6 -15
- package/dist/SuperSelect/SuperSelect.components.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.js +1 -1
- package/dist/SuperSelect/SuperSelect.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
- package/dist/SuperSelect/SuperSelect.styles.js +38 -38
- package/dist/SuperSelect/SuperSelect.types.d.ts +0 -3
- package/dist/SuperSelect/SuperSelect.types.js.map +1 -1
- package/dist/SuperSelect/useSuperSelect.d.ts +1 -1
- package/dist/SuperSelect/useSuperSelect.js +19 -52
- package/dist/SuperSelect/useSuperSelect.js.map +1 -1
- package/dist/Switch/Switch.styles.js +4 -4
- package/dist/Table/Table.styles.d.ts +1 -1
- package/dist/Table/Table.styles.js +28 -28
- package/dist/TableShelf/TableShelf.styles.js +5 -5
- package/dist/Tabs/Tabs.styles.js +15 -15
- package/dist/Tearsheet/Tearsheet.styles.js +17 -28
- package/dist/Tearsheet/Tearsheet.styles.js.map +1 -1
- package/dist/Tearsheet/storybook/PageLayoutDemo.js +11 -2
- 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.styles.js +17 -17
- package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
- 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.styles.js +3 -3
- package/dist/ToolHeader/ToolHeader.styles.js +6 -6
- package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
- package/dist/Tooltip/Tooltip.d.ts +4 -2
- package/dist/Tooltip/Tooltip.js +30 -5
- package/dist/Tooltip/Tooltip.js.map +1 -1
- package/dist/Tooltip/Tooltip.styles.d.ts +1 -0
- package/dist/Tooltip/Tooltip.styles.js +12 -4
- package/dist/Tooltip/Tooltip.styles.js.map +1 -1
- package/dist/Tooltip/Tooltip.types.d.ts +8 -0
- package/dist/Tooltip/Tooltip.types.js.map +1 -1
- package/dist/Tree/Tree.js +1 -1
- package/dist/Tree/Tree.styles.js +10 -10
- 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/_hooks/I18n.d.ts +65 -67
- package/dist/_hooks/IntersectionObserver/createIntersectionObserver.d.ts +0 -1
- package/dist/_hooks/IntersectionObserver/createIntersectionObserver.js +0 -1
- package/dist/_hooks/IntersectionObserver/createIntersectionObserver.js.map +1 -1
- package/dist/_locales/de-DE.json +3 -1
- package/dist/_locales/en-AU.json +3 -1
- package/dist/_locales/en-CA.json +3 -1
- package/dist/_locales/en-GB.json +3 -1
- package/dist/_locales/en.json +5 -2
- package/dist/_locales/es-ES.json +3 -1
- package/dist/_locales/es.json +3 -1
- package/dist/_locales/fr-CA.json +3 -1
- package/dist/_locales/fr-FR.json +3 -1
- package/dist/_locales/is-IS.json +3 -1
- package/dist/_locales/it-IT.json +3 -1
- package/dist/_locales/ja-JP.json +3 -1
- package/dist/_locales/pl-PL.json +3 -1
- package/dist/_locales/pseudo.json +5 -2
- package/dist/_locales/pt-BR.json +3 -1
- package/dist/_locales/pt-PT.json +5 -3
- package/dist/_locales/th-TH.json +3 -1
- package/dist/_locales/zh-SG.json +3 -1
- package/dist/_locales/zh-TW.json +3 -1
- package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
- package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
- package/dist/_styles/mixins.d.ts +13 -1
- package/dist/_styles/mixins.js +15 -1
- package/dist/_styles/mixins.js.map +1 -1
- package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
- package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
- package/dist/_typedoc/AvatarStack/AvatarStack.types.json +24 -24
- package/dist/_typedoc/Badge/Badge.types.json +6 -6
- package/dist/_typedoc/Banner/Banner.types.json +39 -13
- package/dist/_typedoc/Box/Box.types.json +68 -68
- package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
- package/dist/_typedoc/Button/Button.types.json +13 -13
- 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 +37 -37
- 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 +862 -762
- 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 +75 -55
- 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 +77 -77
- package/dist/_typedoc/Modal/Modal.types.json +46 -46
- package/dist/_typedoc/MultiSelect/MultiSelect.types.json +52 -32
- 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 +48 -48
- package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +42 -32
- package/dist/_typedoc/PageLayout/PageLayout.types.json +46 -26
- package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
- package/dist/_typedoc/Panel/Panel.types.json +30 -30
- 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 +141 -60
- 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 +20 -20
- 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 +1 -1
- 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 +8 -8
- package/dist/_typedoc/Tooltip/Tooltip.types.json +25 -14
- package/dist/_typedoc/Tree/Tree.types.json +88 -88
- package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
- package/dist/_typedoc/Typography/Typography.types.json +9 -9
- package/dist/_typedoc/_utils/types.json +3 -3
- package/dist/_utils/scrollIntoView.js +21 -7
- package/dist/_utils/scrollIntoView.js.map +1 -1
- package/package.json +9 -8
- package/dist/Checkbox/CheckboxTooltip.d.ts +0 -4
- package/dist/Checkbox/CheckboxTooltip.js +0 -26
- package/dist/Checkbox/CheckboxTooltip.js.map +0 -1
|
@@ -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 * @since 10.19.0\n */\n item?: any\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\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":""}
|
|
@@ -19,59 +19,24 @@ function isGroup(el) {
|
|
|
19
19
|
var isWrapper = function isWrapper(element) {
|
|
20
20
|
return (element === null || element === void 0 ? void 0 : element.getAttribute(menuItemsWrapperAttributeName)) === 'true';
|
|
21
21
|
};
|
|
22
|
+
function getAllItems(menu) {
|
|
23
|
+
return menu === null || menu === void 0 ? void 0 : menu.querySelectorAll('[data-value]:not([data-group="true"])');
|
|
24
|
+
}
|
|
22
25
|
function getFirstItem(menu) {
|
|
23
|
-
var
|
|
24
|
-
|
|
25
|
-
return getNextItem(firstItem);
|
|
26
|
-
}
|
|
27
|
-
return firstItem;
|
|
26
|
+
var _getAllItems;
|
|
27
|
+
return (_getAllItems = getAllItems(menu)) === null || _getAllItems === void 0 ? void 0 : _getAllItems[0];
|
|
28
28
|
}
|
|
29
|
-
function getPrevItem(item) {
|
|
30
|
-
var
|
|
31
|
-
|
|
32
|
-
// LocationFilter in data-table has div-wrapper around some items
|
|
33
|
-
if (isWrapper(item.previousElementSibling)) {
|
|
34
|
-
return getLastItem(item.previousElementSibling);
|
|
35
|
-
}
|
|
36
|
-
return item.previousElementSibling;
|
|
37
|
-
}
|
|
38
|
-
if (isWrapper(item === null || item === void 0 ? void 0 : item.parentElement)) {
|
|
39
|
-
var _item$parentElement;
|
|
40
|
-
return item === null || item === void 0 ? void 0 : (_item$parentElement = item.parentElement) === null || _item$parentElement === void 0 ? void 0 : _item$parentElement.previousElementSibling;
|
|
41
|
-
}
|
|
42
|
-
if ((item === null || item === void 0 ? void 0 : (_item$parentElement2 = item.parentElement) === null || _item$parentElement2 === void 0 ? void 0 : _item$parentElement2.getAttribute('data-droppable')) === 'true') {
|
|
43
|
-
var _item$parentElement3, _item$parentElement3$;
|
|
44
|
-
var prevDroppableItems = item === null || item === void 0 ? void 0 : (_item$parentElement3 = item.parentElement) === null || _item$parentElement3 === void 0 ? void 0 : (_item$parentElement3$ = _item$parentElement3.previousElementSibling) === null || _item$parentElement3$ === void 0 ? void 0 : _item$parentElement3$.querySelectorAll('[data-group="false"]');
|
|
45
|
-
return prevDroppableItems !== null && prevDroppableItems !== void 0 && prevDroppableItems.length ? prevDroppableItems[prevDroppableItems.length - 1] : null;
|
|
46
|
-
}
|
|
47
|
-
return null;
|
|
29
|
+
function getPrevItem(item, menu) {
|
|
30
|
+
var items = getAllItems(menu);
|
|
31
|
+
return items ? items[Array.prototype.indexOf.call(items, item) - 1] : null;
|
|
48
32
|
}
|
|
49
|
-
function getNextItem(item) {
|
|
50
|
-
var
|
|
51
|
-
|
|
52
|
-
// LocationFilter in data-table has div-wrapper around some items
|
|
53
|
-
if (isWrapper(item.nextElementSibling)) {
|
|
54
|
-
return getFirstItem(item.previousElementSibling);
|
|
55
|
-
}
|
|
56
|
-
return item.nextElementSibling;
|
|
57
|
-
}
|
|
58
|
-
if (isWrapper(item === null || item === void 0 ? void 0 : item.parentElement)) {
|
|
59
|
-
var _item$parentElement4;
|
|
60
|
-
return item === null || item === void 0 ? void 0 : (_item$parentElement4 = item.parentElement) === null || _item$parentElement4 === void 0 ? void 0 : _item$parentElement4.nextElementSibling;
|
|
61
|
-
}
|
|
62
|
-
if ((item === null || item === void 0 ? void 0 : (_item$parentElement5 = item.parentElement) === null || _item$parentElement5 === void 0 ? void 0 : _item$parentElement5.getAttribute('data-droppable')) === 'true') {
|
|
63
|
-
var _item$parentElement6, _item$parentElement6$;
|
|
64
|
-
return item === null || item === void 0 ? void 0 : (_item$parentElement6 = item.parentElement) === null || _item$parentElement6 === void 0 ? void 0 : (_item$parentElement6$ = _item$parentElement6.nextElementSibling) === null || _item$parentElement6$ === void 0 ? void 0 : _item$parentElement6$.querySelector('[data-group="false"]');
|
|
65
|
-
}
|
|
66
|
-
return null;
|
|
33
|
+
function getNextItem(item, menu) {
|
|
34
|
+
var items = getAllItems(menu);
|
|
35
|
+
return items ? items[Array.prototype.indexOf.call(items, item) + 1] : null;
|
|
67
36
|
}
|
|
68
37
|
function getLastItem(menu) {
|
|
69
|
-
var items = menu
|
|
70
|
-
|
|
71
|
-
if (lastItem && isGroup(lastItem)) {
|
|
72
|
-
return getPrevItem(lastItem);
|
|
73
|
-
}
|
|
74
|
-
return lastItem;
|
|
38
|
+
var items = getAllItems(menu);
|
|
39
|
+
return items === null || items === void 0 ? void 0 : items[items.length - 1];
|
|
75
40
|
}
|
|
76
41
|
function updateHighlightedAttribute(item, highlight) {
|
|
77
42
|
item === null || item === void 0 ? void 0 : item.setAttribute('data-highlighted', highlight ? 'true' : 'false');
|
|
@@ -126,14 +91,10 @@ export function createSensors(ref, circular, onChangeActiveDescendant) {
|
|
|
126
91
|
}
|
|
127
92
|
}
|
|
128
93
|
function getPrevHighlightableItem(currentItem) {
|
|
129
|
-
var prev = getPrevItem(currentItem);
|
|
94
|
+
var prev = getPrevItem(currentItem, ref.current);
|
|
130
95
|
if (prev) {
|
|
131
96
|
if (isItem(prev)) {
|
|
132
|
-
|
|
133
|
-
return getPrevHighlightableItem(prev);
|
|
134
|
-
} else {
|
|
135
|
-
return prev;
|
|
136
|
-
}
|
|
97
|
+
return prev;
|
|
137
98
|
}
|
|
138
99
|
} else if (circular) {
|
|
139
100
|
return getLastItem(ref.current);
|
|
@@ -141,12 +102,9 @@ export function createSensors(ref, circular, onChangeActiveDescendant) {
|
|
|
141
102
|
return prev;
|
|
142
103
|
}
|
|
143
104
|
function getNextHighlightableItem(currentItem) {
|
|
144
|
-
var next = getNextItem(currentItem);
|
|
105
|
+
var next = getNextItem(currentItem, ref.current);
|
|
145
106
|
if (next) {
|
|
146
107
|
if (isItem(next)) {
|
|
147
|
-
if (isGroup(next)) {
|
|
148
|
-
return getNextHighlightableItem(next);
|
|
149
|
-
}
|
|
150
108
|
return next;
|
|
151
109
|
}
|
|
152
110
|
} else if (circular) {
|
|
@@ -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","getFirstItem","menu","firstItem","querySelector","getNextItem","getPrevItem","item","_item$parentElement2","previousElementSibling","getLastItem","parentElement","_item$parentElement","_item$parentElement3","_item$parentElement3$","prevDroppableItems","querySelectorAll","length","_item$parentElement5","nextElementSibling","_item$parentElement4","_item$parentElement6","_item$parentElement6$","items","lastItem","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","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 getFirstItem(menu: Element | null) {\n const firstItem = menu?.querySelector<HTMLElement>('[data-value]:first-child')\n\n if (firstItem && isGroup(firstItem)) {\n return getNextItem(firstItem)\n }\n\n return firstItem\n}\n\nfunction getPrevItem(item: Element): HTMLElement | null {\n if (item.previousElementSibling) {\n // LocationFilter in data-table has div-wrapper around some items\n if (isWrapper(item.previousElementSibling)) {\n return getLastItem(item.previousElementSibling) as HTMLElement\n }\n\n return item.previousElementSibling as HTMLElement\n }\n\n if (isWrapper(item?.parentElement)) {\n return item?.parentElement?.previousElementSibling as HTMLElement\n }\n\n if (item?.parentElement?.getAttribute('data-droppable') === 'true') {\n const prevDroppableItems =\n item?.parentElement?.previousElementSibling?.querySelectorAll<HTMLElement>(\n '[data-group=\"false\"]'\n )\n return prevDroppableItems?.length\n ? prevDroppableItems[prevDroppableItems.length - 1]\n : null\n }\n\n return null\n}\n\nfunction getNextItem(item: Element): HTMLElement | null {\n if (item.nextElementSibling) {\n // LocationFilter in data-table has div-wrapper around some items\n if (isWrapper(item.nextElementSibling)) {\n return getFirstItem(item.previousElementSibling) as HTMLElement\n }\n return item.nextElementSibling as HTMLElement\n }\n\n if (isWrapper(item?.parentElement)) {\n return item?.parentElement?.nextElementSibling as HTMLElement\n }\n\n if (item?.parentElement?.getAttribute('data-droppable') === 'true') {\n return item?.parentElement?.nextElementSibling?.querySelector(\n '[data-group=\"false\"]'\n ) as HTMLElement\n }\n\n return null\n}\n\nfunction getLastItem(menu: Element | null) {\n const items = menu?.querySelectorAll<HTMLElement>('[data-value]')\n const lastItem = items?.[items.length - 1]\n\n if (lastItem && isGroup(lastItem)) {\n return getPrevItem(lastItem)\n }\n\n return lastItem\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)\n if (prev) {\n if (isItem(prev)) {\n if (isGroup(prev)) {\n return getPrevHighlightableItem(prev)\n } else {\n return prev\n }\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)\n\n if (next) {\n if (isItem(next)) {\n if (isGroup(next)) {\n return getNextHighlightableItem(next)\n }\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","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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"}
|
|
@@ -32,15 +32,15 @@ var screenWidthPixelBreakpoints = {
|
|
|
32
32
|
};
|
|
33
33
|
export var StyledModal = /*#__PURE__*/styled.div.withConfig({
|
|
34
34
|
displayName: "StyledModal",
|
|
35
|
-
componentId: "core-
|
|
35
|
+
componentId: "core-12_39_0__sc-1ijdug2-0"
|
|
36
36
|
})(["display:flex;height:100vh;position:absolute;opacity:0;transition:0.3s opacity ease;width:100vw;z-index:0;pointer-events:none;&.", "{opacity:1;pointer-events:auto;}&.", "{opacity:0;pointer-events:none;}"], fadeInClassName, fadeOutClassName);
|
|
37
37
|
export var StyledModalButtons = /*#__PURE__*/styled.div.withConfig({
|
|
38
38
|
displayName: "StyledModalButtons",
|
|
39
|
-
componentId: "core-
|
|
39
|
+
componentId: "core-12_39_0__sc-1ijdug2-1"
|
|
40
40
|
})(["display:flex;flex:0 0 auto;margin-left:", "px;> * + *{margin-left:", "px;}"], spacing.lg, spacing.sm);
|
|
41
41
|
export var StyledModalContainer = /*#__PURE__*/styled(Card).withConfig({
|
|
42
42
|
displayName: "StyledModalContainer",
|
|
43
|
-
componentId: "core-
|
|
43
|
+
componentId: "core-12_39_0__sc-1ijdug2-2"
|
|
44
44
|
})(["display:flex;flex-direction:row;position:absolute;z-index:2;", " ", " ", ""], function (_ref) {
|
|
45
45
|
var $compact = _ref.$compact;
|
|
46
46
|
if (!$compact) {
|
|
@@ -64,11 +64,11 @@ export var StyledModalContainer = /*#__PURE__*/styled(Card).withConfig({
|
|
|
64
64
|
});
|
|
65
65
|
export var StyledModalFooter = /*#__PURE__*/styled.div.withConfig({
|
|
66
66
|
displayName: "StyledModalFooter",
|
|
67
|
-
componentId: "core-
|
|
67
|
+
componentId: "core-12_39_0__sc-1ijdug2-3"
|
|
68
68
|
})(["align-items:center;display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;padding:", "px ", "px ", "px;"], spacing.xl, spacing.xxl, spacing.xxl);
|
|
69
69
|
export var StyledModalBody = /*#__PURE__*/styled.div.withConfig({
|
|
70
70
|
displayName: "StyledModalBody",
|
|
71
|
-
componentId: "core-
|
|
71
|
+
componentId: "core-12_39_0__sc-1ijdug2-4"
|
|
72
72
|
})(["", " &:focus-visible{", "}box-sizing:border-box;color:", ";display:flex;flex-direction:column;overflow:auto;", " ", " > ", "{padding-left:0;padding-right:0;&:first-child > ", "{padding-top:0;}}", ""], getTypographyIntent('body'), getFocusInset(), colors.gray15, function (_ref4) {
|
|
73
73
|
var $noSideSpacing = _ref4.$noSideSpacing;
|
|
74
74
|
return css(["padding:", "px ", "px;"], spacing.xl, $noSideSpacing ? 0 : spacing.xxl);
|
|
@@ -85,7 +85,7 @@ export var StyledModalBody = /*#__PURE__*/styled.div.withConfig({
|
|
|
85
85
|
});
|
|
86
86
|
export var StyledModalContent = /*#__PURE__*/styled.div.withConfig({
|
|
87
87
|
displayName: "StyledModalContent",
|
|
88
|
-
componentId: "core-
|
|
88
|
+
componentId: "core-12_39_0__sc-1ijdug2-5"
|
|
89
89
|
})(["display:flex;flex-direction:column;max-height:90vh;overflow:hidden;width:100%;", ""], function (_ref7) {
|
|
90
90
|
var _ref7$$compact = _ref7.$compact,
|
|
91
91
|
$compact = _ref7$$compact === void 0 ? false : _ref7$$compact;
|
|
@@ -96,11 +96,11 @@ export var StyledModalContent = /*#__PURE__*/styled.div.withConfig({
|
|
|
96
96
|
});
|
|
97
97
|
export var StyledModalFooterNotation = /*#__PURE__*/styled(Typography).withConfig({
|
|
98
98
|
displayName: "StyledModalFooterNotation",
|
|
99
|
-
componentId: "core-
|
|
99
|
+
componentId: "core-12_39_0__sc-1ijdug2-6"
|
|
100
100
|
})(["flex-grow:1;"]);
|
|
101
101
|
export var StyledModalHeader = /*#__PURE__*/styled.div.withConfig({
|
|
102
102
|
displayName: "StyledModalHeader",
|
|
103
|
-
componentId: "core-
|
|
103
|
+
componentId: "core-12_39_0__sc-1ijdug2-7"
|
|
104
104
|
})(["align-items:flex-start;color:", ";display:flex;flex:0 0 auto;position:relative;", " ", ""], colors.gray10, function (_ref8) {
|
|
105
105
|
var $compact = _ref8.$compact,
|
|
106
106
|
$isBodyScrolled = _ref8.$isBodyScrolled;
|
|
@@ -118,7 +118,7 @@ export var StyledModalHeader = /*#__PURE__*/styled.div.withConfig({
|
|
|
118
118
|
});
|
|
119
119
|
export var StyledModalHeading = /*#__PURE__*/styled.div.withConfig({
|
|
120
120
|
displayName: "StyledModalHeading",
|
|
121
|
-
componentId: "core-
|
|
121
|
+
componentId: "core-12_39_0__sc-1ijdug2-8"
|
|
122
122
|
})(["", " align-items:center;display:flex;flex:1 1 auto;min-height:36px;padding-right:", "px;", ""], function (_ref0) {
|
|
123
123
|
var $compact = _ref0.$compact;
|
|
124
124
|
return getTypographyIntent($compact ? 'h3' : 'h2');
|
|
@@ -134,18 +134,18 @@ export var StyledModalHeading = /*#__PURE__*/styled.div.withConfig({
|
|
|
134
134
|
});
|
|
135
135
|
export var StyledModalCancel = /*#__PURE__*/styled.div.withConfig({
|
|
136
136
|
displayName: "StyledModalCancel",
|
|
137
|
-
componentId: "core-
|
|
137
|
+
componentId: "core-12_39_0__sc-1ijdug2-9"
|
|
138
138
|
})(["flex:0 0 auto;"]);
|
|
139
139
|
export var StyledModalScrim = /*#__PURE__*/styled.div.withConfig({
|
|
140
140
|
displayName: "StyledModalScrim",
|
|
141
|
-
componentId: "core-
|
|
141
|
+
componentId: "core-12_39_0__sc-1ijdug2-10"
|
|
142
142
|
})(["background:hsla(200,8%,10%,0.6);height:100vh;left:0;position:absolute;top:0;width:100vw;z-index:1;"]);
|
|
143
143
|
export var StyledModalWarningIcon = /*#__PURE__*/styled(Warning).withConfig({
|
|
144
144
|
displayName: "StyledModalWarningIcon",
|
|
145
|
-
componentId: "core-
|
|
145
|
+
componentId: "core-12_39_0__sc-1ijdug2-11"
|
|
146
146
|
})(["color:", ";margin-right:", "px;"], colors.yellow40, spacing.sm);
|
|
147
147
|
export var StyledModalFooterSummary = /*#__PURE__*/styled.div.withConfig({
|
|
148
148
|
displayName: "StyledModalFooterSummary",
|
|
149
|
-
componentId: "core-
|
|
149
|
+
componentId: "core-12_39_0__sc-1ijdug2-12"
|
|
150
150
|
})(["", " border-top:1px solid ", ";border-bottom:1px solid ", ";padding:", "px ", "px;color:", ";font-style:italic;background-color:", ";margin:-", "px -", "px ", "px -", "px;flex:1 1 100%;"], getTypographyIntent('small'), colors.gray85, colors.gray85, spacing.md, spacing.xxl, colors.gray15, colors.gray98, spacing.xl, spacing.xxl, spacing.xl, spacing.xxl);
|
|
151
151
|
//# sourceMappingURL=Modal.styles.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var _excluded = ["getId", "getLabel", "qa", "value"],
|
|
2
2
|
_excluded2 = ["value"],
|
|
3
|
-
_excluded3 = ["afterHide", "afterShow", "beforeHide", "beforeShow", "block", "disabled", "emptyMessage", "error", "footer", "getId", "getLabel", "getGroup", "loading", "onChange", "onScrollBottom", "onSearch", "options", "isOptionDisabled", "optionRenderer", "optgroups", "groupHeaderRenderer", "tokenRenderer", "placeholder", "placement", "value", "tabIndex", "aria-labelledby", "qa"];
|
|
3
|
+
_excluded3 = ["afterHide", "afterShow", "beforeHide", "beforeShow", "block", "disabled", "emptyMessage", "error", "footer", "getId", "getLabel", "getGroup", "loading", "onChange", "onScrollBottom", "onSearch", "options", "isOptionDisabled", "optionRenderer", "optgroups", "groupHeaderRenderer", "groupRenderer", "tokenRenderer", "placeholder", "placement", "value", "tabIndex", "aria-labelledby", "aria-describedby", "qa"];
|
|
4
4
|
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; }
|
|
5
5
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
6
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -22,6 +22,7 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
|
|
|
22
22
|
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); }
|
|
23
23
|
import { Clear } from '@procore/core-icons/dist';
|
|
24
24
|
import { useId } from '@react-aria/utils';
|
|
25
|
+
import { VisuallyHidden } from '@react-aria/visually-hidden';
|
|
25
26
|
import React from 'react';
|
|
26
27
|
import { Box } from '../Box';
|
|
27
28
|
import { MenuImperative, useMenuImperativeControlNavigation } from '../MenuImperative/MenuImperative';
|
|
@@ -32,7 +33,7 @@ import { Typography } from '../Typography';
|
|
|
32
33
|
import { isEventSource } from '../_hooks/ClickOutside';
|
|
33
34
|
import { useI18nContext } from '../_hooks/I18n';
|
|
34
35
|
import { addSubcomponents } from '../_utils/addSubcomponents';
|
|
35
|
-
import { StyledMultiSelectArrow, StyledMultiSelectArrowContainer, StyledMultiSelectButton, StyledMultiSelectClearIcon, StyledMultiSelectMenu, StyledMultiSelectSearch, StyledMultiSelectSearchIcon, StyledMultiSelectSearchInput, StyledMultiSelectToken, StyledMultiSelectValues } from './MultiSelect.styles';
|
|
36
|
+
import { StyledMultiSelectArrow, StyledMultiSelectArrowContainer, StyledMultiSelectButton, StyledMultiSelectClearIcon, StyledMultiSelectInner, StyledMultiSelectMenu, StyledMultiSelectSearch, StyledMultiSelectSearchIcon, StyledMultiSelectSearchInput, StyledMultiSelectToken, StyledMultiSelectValues } from './MultiSelect.styles';
|
|
36
37
|
var targetShowKeys = ['ArrowDown', 'Down'];
|
|
37
38
|
var targetHideKeys = ['Esc', 'Escape'];
|
|
38
39
|
var overlayHideKeys = targetHideKeys;
|
|
@@ -80,11 +81,11 @@ function defaultOptionRenderer(item, _ref) {
|
|
|
80
81
|
"data-qa": qa === null || qa === void 0 ? void 0 : (_qa$option = qa.option) === null || _qa$option === void 0 ? void 0 : _qa$option.call(qa, item)
|
|
81
82
|
}, props), getLabel(item));
|
|
82
83
|
}
|
|
83
|
-
function
|
|
84
|
+
function defaultGroupRenderer(group) {
|
|
84
85
|
return /*#__PURE__*/React.createElement(MenuImperative.Group, {
|
|
85
86
|
key: "group_".concat(group.id),
|
|
86
|
-
|
|
87
|
-
}, group.
|
|
87
|
+
label: group.label
|
|
88
|
+
}, group.children);
|
|
88
89
|
}
|
|
89
90
|
function defaultTokenRenderer(_ref2) {
|
|
90
91
|
var _qa$token, _qa$tokenClear;
|
|
@@ -97,10 +98,12 @@ function defaultTokenRenderer(_ref2) {
|
|
|
97
98
|
return /*#__PURE__*/React.createElement(Token, {
|
|
98
99
|
disabled: disabled,
|
|
99
100
|
focused: focused,
|
|
101
|
+
tabIndex: -1,
|
|
100
102
|
"data-qa": qa === null || qa === void 0 ? void 0 : (_qa$token = qa.token) === null || _qa$token === void 0 ? void 0 : _qa$token.call(qa, option)
|
|
101
103
|
}, /*#__PURE__*/React.createElement(Token.Label, null, getLabel(option)), /*#__PURE__*/React.createElement(Token.Remove, {
|
|
102
104
|
"data-close": true,
|
|
103
105
|
onClick: removeToken,
|
|
106
|
+
tabIndex: -1,
|
|
104
107
|
"data-qa": qa === null || qa === void 0 ? void 0 : (_qa$tokenClear = qa.tokenClear) === null || _qa$tokenClear === void 0 ? void 0 : _qa$tokenClear.call(qa, option)
|
|
105
108
|
}));
|
|
106
109
|
}
|
|
@@ -196,7 +199,7 @@ function useMultiSelect(_ref3) {
|
|
|
196
199
|
(_menuRef$current4 = menuRef.current) === null || _menuRef$current4 === void 0 ? void 0 : _menuRef$current4.next();
|
|
197
200
|
}
|
|
198
201
|
if (search === '') {
|
|
199
|
-
if (event.key === 'Backspace') {
|
|
202
|
+
if (event.key === 'Backspace' || event.key === 'Delete') {
|
|
200
203
|
// to prevent accidentally deleting too many tokens, don't do anything
|
|
201
204
|
// on repeating key events
|
|
202
205
|
if (event.repeat) {
|
|
@@ -247,16 +250,16 @@ function useMultiSelect(_ref3) {
|
|
|
247
250
|
if (orphanOptions.length) {
|
|
248
251
|
console.warn("Could not find option groups for the options below. Make sure that every option has a proper \"groupId\" field or if \"getGroup\" is implemented correctly.", orphanOptions);
|
|
249
252
|
}
|
|
250
|
-
return optgroups.
|
|
251
|
-
var groupHeader = _objectSpread(_objectSpread({}, group), {}, {
|
|
252
|
-
isGroupHeader: true
|
|
253
|
-
});
|
|
253
|
+
return optgroups.map(function (group) {
|
|
254
254
|
var groupOptions = optionsByGroup[group.id];
|
|
255
255
|
if (!groupOptions.length) {
|
|
256
|
-
return
|
|
256
|
+
return null;
|
|
257
257
|
}
|
|
258
|
-
return
|
|
259
|
-
|
|
258
|
+
return _objectSpread(_objectSpread({}, group), {}, {
|
|
259
|
+
isGroupHeader: true,
|
|
260
|
+
options: groupOptions
|
|
261
|
+
});
|
|
262
|
+
}, []).filter(Boolean);
|
|
260
263
|
}, [options, getGroup, optgroups]);
|
|
261
264
|
return {
|
|
262
265
|
ids: valueIds,
|
|
@@ -287,28 +290,35 @@ export var Option = /*#__PURE__*/React.forwardRef(function Option(_ref5, ref) {
|
|
|
287
290
|
function GroupedOptions(_ref6) {
|
|
288
291
|
var multiselect = _ref6.multiselect,
|
|
289
292
|
groupHeaderRenderer = _ref6.groupHeaderRenderer,
|
|
293
|
+
groupRenderer = _ref6.groupRenderer,
|
|
290
294
|
optionRenderer = _ref6.optionRenderer,
|
|
291
295
|
getId = _ref6.getId,
|
|
292
296
|
getLabel = _ref6.getLabel,
|
|
293
297
|
isOptionDisabled = _ref6.isOptionDisabled,
|
|
294
298
|
qa = _ref6.qa;
|
|
295
|
-
|
|
296
|
-
if (
|
|
297
|
-
var groupHeader =
|
|
298
|
-
|
|
299
|
+
var _renderOption = function renderOption(option) {
|
|
300
|
+
if (option.isGroupHeader) {
|
|
301
|
+
var groupHeader = option;
|
|
302
|
+
if (groupHeaderRenderer) {
|
|
303
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, groupHeaderRenderer(groupHeader), groupHeader.options.map(_renderOption));
|
|
304
|
+
}
|
|
305
|
+
return groupRenderer(_objectSpread(_objectSpread({}, groupHeader), {}, {
|
|
306
|
+
children: groupHeader.options.map(_renderOption)
|
|
307
|
+
}));
|
|
299
308
|
}
|
|
300
|
-
return optionRenderer(
|
|
309
|
+
return optionRenderer(option, {
|
|
301
310
|
getId: getId,
|
|
302
311
|
getLabel: getLabel,
|
|
303
312
|
// @ts-ignore
|
|
304
313
|
// Object literal may only specify known properties, and 'key' does not exist in type 'OptionRendererProps'.
|
|
305
|
-
key: getId(
|
|
306
|
-
selected: multiselect.ids.has(getId(
|
|
307
|
-
disabled: isOptionDisabled(
|
|
308
|
-
value:
|
|
314
|
+
key: getId(option),
|
|
315
|
+
selected: multiselect.ids.has(getId(option)),
|
|
316
|
+
disabled: isOptionDisabled(option),
|
|
317
|
+
value: option,
|
|
309
318
|
qa: qa
|
|
310
319
|
});
|
|
311
|
-
}
|
|
320
|
+
};
|
|
321
|
+
return /*#__PURE__*/React.createElement(MenuImperative.Options, null, multiselect.options.map(_renderOption));
|
|
312
322
|
}
|
|
313
323
|
|
|
314
324
|
/**
|
|
@@ -361,8 +371,9 @@ var MultiSelect_ = /*#__PURE__*/React.forwardRef(function MultiSelect(_ref7, ref
|
|
|
361
371
|
_ref7$optionRenderer = _ref7.optionRenderer,
|
|
362
372
|
optionRenderer = _ref7$optionRenderer === void 0 ? defaultOptionRenderer : _ref7$optionRenderer,
|
|
363
373
|
optgroups = _ref7.optgroups,
|
|
364
|
-
|
|
365
|
-
|
|
374
|
+
groupHeaderRenderer = _ref7.groupHeaderRenderer,
|
|
375
|
+
_ref7$groupRenderer = _ref7.groupRenderer,
|
|
376
|
+
groupRenderer = _ref7$groupRenderer === void 0 ? defaultGroupRenderer : _ref7$groupRenderer,
|
|
366
377
|
_ref7$tokenRenderer = _ref7.tokenRenderer,
|
|
367
378
|
tokenRenderer = _ref7$tokenRenderer === void 0 ? defaultTokenRenderer : _ref7$tokenRenderer,
|
|
368
379
|
placeholder = _ref7.placeholder,
|
|
@@ -373,6 +384,7 @@ var MultiSelect_ = /*#__PURE__*/React.forwardRef(function MultiSelect(_ref7, ref
|
|
|
373
384
|
_ref7$tabIndex = _ref7.tabIndex,
|
|
374
385
|
tabIndex = _ref7$tabIndex === void 0 ? 0 : _ref7$tabIndex,
|
|
375
386
|
ariaLabelledBy = _ref7['aria-labelledby'],
|
|
387
|
+
ariaDescribedBy = _ref7['aria-describedby'],
|
|
376
388
|
_ref7$qa = _ref7.qa,
|
|
377
389
|
qa = _ref7$qa === void 0 ? {} : _ref7$qa,
|
|
378
390
|
props = _objectWithoutProperties(_ref7, _excluded3);
|
|
@@ -384,6 +396,7 @@ var MultiSelect_ = /*#__PURE__*/React.forwardRef(function MultiSelect(_ref7, ref
|
|
|
384
396
|
var menuId = useId();
|
|
385
397
|
var tokenListId = useId();
|
|
386
398
|
var tokenBaseId = useId();
|
|
399
|
+
var noneSelectedId = useId();
|
|
387
400
|
var _React$useState5 = React.useState(false),
|
|
388
401
|
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
389
402
|
isMenuOpen = _React$useState6[0],
|
|
@@ -424,6 +437,7 @@ var MultiSelect_ = /*#__PURE__*/React.forwardRef(function MultiSelect(_ref7, ref
|
|
|
424
437
|
getLabel: getLabel,
|
|
425
438
|
isOptionDisabled: isOptionDisabled,
|
|
426
439
|
groupHeaderRenderer: groupHeaderRenderer,
|
|
440
|
+
groupRenderer: groupRenderer,
|
|
427
441
|
optionRenderer: optionRenderer,
|
|
428
442
|
qa: qa
|
|
429
443
|
}) : /*#__PURE__*/React.createElement(Box, {
|
|
@@ -478,10 +492,12 @@ var MultiSelect_ = /*#__PURE__*/React.forwardRef(function MultiSelect(_ref7, ref
|
|
|
478
492
|
$disabled: disabled,
|
|
479
493
|
$loading: loading,
|
|
480
494
|
$open: isVisible
|
|
481
|
-
}, props), /*#__PURE__*/React.createElement(
|
|
495
|
+
}, props), value.length === 0 && /*#__PURE__*/React.createElement(VisuallyHidden, null, /*#__PURE__*/React.createElement("span", {
|
|
496
|
+
id: noneSelectedId
|
|
497
|
+
}, I18n.t('core.multiSelect.noneSelected'))), /*#__PURE__*/React.createElement(StyledMultiSelectInner, null, /*#__PURE__*/React.createElement(StyledMultiSelectValues, {
|
|
482
498
|
id: tokenListId,
|
|
483
499
|
role: "list",
|
|
484
|
-
"aria-label": I18n.t('core.multiSelect.selectedItems')
|
|
500
|
+
"aria-label": value.length > 0 ? I18n.t('core.multiSelect.selectedItems') : I18n.t('core.multiSelect.noneSelected')
|
|
485
501
|
}, value.map(function (selection, i) {
|
|
486
502
|
var tokenId = "".concat(tokenBaseId, "-").concat(i);
|
|
487
503
|
var tokenLabel = getLabel(selection);
|
|
@@ -502,10 +518,12 @@ var MultiSelect_ = /*#__PURE__*/React.forwardRef(function MultiSelect(_ref7, ref
|
|
|
502
518
|
},
|
|
503
519
|
qa: qa
|
|
504
520
|
}));
|
|
505
|
-
}), /*#__PURE__*/React.createElement(StyledMultiSelectSearch, null, /*#__PURE__*/React.createElement(StyledMultiSelectSearchInput, _extends({
|
|
521
|
+
})), /*#__PURE__*/React.createElement(StyledMultiSelectSearch, null, /*#__PURE__*/React.createElement(StyledMultiSelectSearchInput, _extends({
|
|
506
522
|
"aria-activedescendant": activeTokenId,
|
|
507
523
|
"aria-controls": isNavigatingTokens ? tokenListId : menuId,
|
|
524
|
+
"aria-describedby": [ariaDescribedBy, value.length === 0 ? noneSelectedId : undefined].filter(Boolean).join(' ') || undefined,
|
|
508
525
|
"aria-expanded": isVisible,
|
|
526
|
+
"aria-invalid": error || undefined,
|
|
509
527
|
"aria-labelledby": ariaLabelledBy,
|
|
510
528
|
"data-qa": "core-multiselect-input",
|
|
511
529
|
role: "combobox",
|
|
@@ -532,6 +550,10 @@ var MultiSelect_ = /*#__PURE__*/React.forwardRef(function MultiSelect(_ref7, ref
|
|
|
532
550
|
e.stopPropagation();
|
|
533
551
|
disable(e);
|
|
534
552
|
}
|
|
553
|
+
// close dropdown when navigating tokens with arrow keys
|
|
554
|
+
if (multiselect.search === '' && (e.key === 'ArrowLeft' || e.key === 'Left' || e.key === 'ArrowRight' || e.key === 'Right')) {
|
|
555
|
+
disable(e);
|
|
556
|
+
}
|
|
535
557
|
} else {
|
|
536
558
|
// if we type in an alphanumeric character, show the overlay
|
|
537
559
|
if (isAlphaNumeric(e.key)) {
|