@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":"MultiSelect.js","names":["Clear","useId","React","Box","MenuImperative","useMenuImperativeControlNavigation","OverlayTrigger","Spinner","Token","Typography","isEventSource","useI18nContext","addSubcomponents","StyledMultiSelectArrow","StyledMultiSelectArrowContainer","StyledMultiSelectButton","StyledMultiSelectClearIcon","StyledMultiSelectMenu","StyledMultiSelectSearch","StyledMultiSelectSearchIcon","StyledMultiSelectSearchInput","StyledMultiSelectToken","StyledMultiSelectValues","targetShowKeys","targetHideKeys","overlayHideKeys","emptyArray","noop","returnTrue","isAlphaNumeric","str","length","match","setFocusTo","ref","current","focus","isOption","obj","_typeof","type","Option","defaultIsOptionDisabled","defaultGetId","item","id","defaultGetLabel","label","defaultGetGroup","groupId","defaultIsSelectable","defaultOptionRenderer","_ref","_qa$option","getId","getLabel","qa","value","props","_objectWithoutProperties","_excluded","createElement","_extends","key","option","call","defaultGroupHeaderRenderer","group","Group","concat","clickable","defaultTokenRenderer","_ref2","_qa$token","_qa$tokenClear","focused","disabled","removeToken","token","Label","Remove","onClick","tokenClear","useMultiSelect","_ref3","getGroup","menuRef","_ref3$onChange","onChange","onSearch_","onSearch","options_","options","optgroups","_React$useState","useState","_React$useState2","_slicedToArray","index","setIndex","_React$useState3","_React$useState4","search","setSearch","valueIds","reduce","acc","cur","add","Set","count","useMemo","filter","opt","toLowerCase","includes","useCallback","e","target","setTimeout","_menuRef$current","highlightFirst","clearToken","removeSelection","selection","selected","s","onSelect","newSelected","has","_toConsumableArray","i","decrementToken","Math","max","incrementToken","onKeyDown","event","_menuRef$current2","select","_menuRef$current3","prev","_menuRef$current4","next","repeat","useEffect","groupedOptions","optionsByGroup","_ref4","_objectSpread","_defineProperty","orphanOptions","forEach","groupOptions","push","console","warn","flatMap","groupHeader","isGroupHeader","ids","domHandlers","forwardRef","_ref5","_excluded2","Item","GroupedOptions","_ref6","multiselect","groupHeaderRenderer","optionRenderer","isOptionDisabled","Options","map","MultiSelect_","MultiSelect","_ref7","_ref7$afterHide","afterHide","_ref7$afterShow","afterShow","_ref7$beforeHide","beforeHide","_ref7$beforeShow","beforeShow","_ref7$block","block","_ref7$disabled","emptyMessage","_ref7$error","error","footer","_ref7$getId","_ref7$getLabel","_ref7$getGroup","_ref7$loading","loading","_ref7$onChange","onScrollBottom","_ref7$options","_ref7$isOptionDisable","_ref7$optionRenderer","_ref7$groupHeaderRend","_ref7$tokenRenderer","tokenRenderer","placeholder","_ref7$placement","placement","_ref7$value","_ref7$tabIndex","tabIndex","ariaLabelledBy","_ref7$qa","_excluded3","i18n","ownRef","useRef","targetRef","searchRef","menuId","tokenListId","tokenBaseId","_React$useState5","_React$useState6","isMenuOpen","setIsMenuOpen","_useMenuImperativeCon","menuNavigationTriggerProps","menuProps","I18n","showClearIcon","isNavigatingTokens","activeTokenId","undefined","overlay","shadowStrength","role","padding","color","intent","italic","t","Footer","canFlip","_menuRef$current5","MouseEvent","hideKeys","showKeys","trigger","_ref8","disable","enable","isVisible","$block","$error","$emptyValue","$disabled","$loading","$open","tokenId","tokenLabel","$isNavigatingTokens","onBlur","preventDefault","stopPropagation","size","variant","icon","$show","displayName"],"sources":["../../src/MultiSelect/MultiSelect.tsx"],"sourcesContent":["import { Clear } from '@procore/core-icons/dist'\nimport { useId } from '@react-aria/utils'\nimport React from 'react'\nimport { Box } from '../Box'\nimport {\n MenuImperative,\n useMenuImperativeControlNavigation,\n} from '../MenuImperative/MenuImperative'\nimport type { MenuRef, Selection } from '../MenuImperative/MenuImperative.types'\nimport { OverlayTrigger } from '../OverlayTrigger'\nimport { Spinner } from '../Spinner'\nimport { Token } from '../Token'\nimport { Typography } from '../Typography'\nimport { isEventSource } from '../_hooks/ClickOutside'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport {\n StyledMultiSelectArrow,\n StyledMultiSelectArrowContainer,\n StyledMultiSelectButton,\n StyledMultiSelectClearIcon,\n StyledMultiSelectMenu,\n StyledMultiSelectSearch,\n StyledMultiSelectSearchIcon,\n StyledMultiSelectSearchInput,\n StyledMultiSelectToken,\n StyledMultiSelectValues,\n} from './MultiSelect.styles'\nimport type {\n ChangeEvent,\n GroupedOptionsProps,\n GroupHeader,\n GroupItem,\n MultiSelectConfig,\n MultiSelectHook,\n MultiSelectOptionProps,\n MultiSelectOptionRendererProps,\n MultiSelectProps,\n MultiSelectTokenRendererProps,\n OptionItem,\n} from './MultiSelect.types'\n\nconst targetShowKeys = ['ArrowDown', 'Down']\n\nconst targetHideKeys = ['Esc', 'Escape']\n\nconst overlayHideKeys = targetHideKeys\n\nconst emptyArray: OptionItem[] = []\n\nfunction noop() {}\n\nfunction returnTrue() {\n return true\n}\n\nfunction isAlphaNumeric(str: string) {\n return str.length === 1 && str.match(/[A-Za-z0-9 _.,!\"'/$]*/i)\n}\n\nfunction setFocusTo(ref: React.RefObject<HTMLElement>) {\n if (ref.current) {\n ref.current.focus()\n }\n}\n\nfunction isOption(obj: React.ReactChild) {\n return typeof obj === 'object' && obj.type === Option\n}\n\nfunction defaultIsOptionDisabled() {\n return false\n}\n\nfunction defaultGetId(item: OptionItem) {\n return item.id\n}\n\nfunction defaultGetLabel(item: OptionItem) {\n return item.label\n}\n\nfunction defaultGetGroup(item: OptionItem) {\n return item.groupId\n}\n\nfunction defaultIsSelectable(obj: React.ReactChild) {\n typeof obj === 'object' && obj.type === Option\n}\n\nfunction defaultOptionRenderer(\n item: OptionItem,\n { getId, getLabel, qa, value, ...props }: MultiSelectOptionRendererProps\n) {\n return (\n <Option\n key={getId(item)}\n value={value || item}\n data-qa={qa?.option?.(item)}\n {...props}\n >\n {getLabel(item)}\n </Option>\n )\n}\n\nfunction defaultGroupHeaderRenderer(group: GroupItem) {\n return (\n <MenuImperative.Group key={`group_${group.id}`} clickable={false}>\n {group.label}\n </MenuImperative.Group>\n )\n}\n\nfunction defaultTokenRenderer({\n focused,\n disabled,\n option,\n removeToken,\n getLabel,\n qa,\n}: MultiSelectTokenRendererProps) {\n return (\n <Token disabled={disabled} focused={focused} data-qa={qa?.token?.(option)}>\n <Token.Label>{getLabel(option)}</Token.Label>\n <Token.Remove\n data-close\n onClick={removeToken}\n data-qa={qa?.tokenClear?.(option)}\n />\n </Token>\n )\n}\n\nfunction useMultiSelect({\n getId,\n getLabel,\n getGroup,\n menuRef,\n onChange = noop,\n onSearch: onSearch_,\n options: options_,\n value,\n optgroups,\n}: MultiSelectConfig): MultiSelectHook {\n const [index, setIndex] = React.useState<number | null>(null)\n\n const [search, setSearch] = React.useState<string>('')\n\n const valueIds = value.reduce<Set<number | string>>((acc, cur) => {\n acc.add(getId(cur))\n\n return acc\n }, new Set())\n\n const count = value.length\n\n const options = React.useMemo(\n function () {\n if (onSearch_) {\n return options_\n }\n\n return options_.filter((opt) =>\n getLabel(opt).toLowerCase().includes(search.toLowerCase())\n )\n },\n [options_, onSearch_, getLabel, search]\n )\n\n const onSearch = React.useCallback(\n function (e: ChangeEvent) {\n if (onSearch_) {\n onSearch_(e)\n }\n\n setSearch(e.target.value)\n\n // TODO: because menu highlighting is now imperative, we have to wait\n // for a render to highlight the first item. Is there a better way\n // to schedule this?\n setTimeout(() => menuRef.current?.highlightFirst(), 0)\n },\n [menuRef, onSearch_]\n )\n\n const clearToken = () => setIndex(null)\n\n const removeSelection = React.useCallback(\n function (selection: OptionItem, selected: OptionItem[]) {\n return selected.filter((s) => getId(s) !== getId(selection))\n },\n [getId]\n )\n\n const onSelect = React.useCallback(\n (selection: Selection) => {\n const newSelected = valueIds.has(getId(selection.item))\n ? removeSelection(selection.item, value)\n : [...value, selection.item]\n\n setSearch('')\n\n onChange(newSelected)\n },\n [setSearch, onChange, getId, removeSelection, value, valueIds]\n )\n\n const removeToken = React.useCallback(\n function (i: number) {\n onChange(removeSelection(value[i], value))\n },\n [value, onChange, removeSelection]\n )\n\n const decrementToken = React.useCallback(\n function () {\n if (index === null) {\n // index is null, set it to the last token index\n setIndex(count - 1)\n } else {\n // decrementToken by one, don't go below 0\n setIndex(Math.max(0, index - 1))\n }\n },\n [count, index, setIndex]\n )\n\n const incrementToken = React.useCallback(\n function () {\n if (index === count - 1) {\n setIndex(null)\n } else if (index !== null) {\n setIndex(index + 1)\n }\n },\n [count, index, setIndex]\n )\n\n const onKeyDown = React.useCallback(\n function (event: React.KeyboardEvent<HTMLInputElement>) {\n if (event.key === 'Enter') {\n menuRef.current?.select(event)\n }\n\n if (event.key === 'ArrowUp' || event.key === 'Up') {\n menuRef.current?.prev()\n }\n\n if (event.key === 'ArrowDown' || event.key === 'Down') {\n menuRef.current?.next()\n }\n\n if (search === '') {\n if (event.key === 'Backspace') {\n // to prevent accidentally deleting too many tokens, don't do anything\n // on repeating key events\n if (event.repeat) {\n return\n }\n\n // if we are focused on a token, remove it, otherwise remove the last token\n removeToken(index !== null ? index : count - 1)\n\n if (count >= 1) {\n decrementToken()\n } else {\n clearToken()\n }\n }\n\n if (event.key === 'ArrowLeft' || event.key === 'Left') {\n decrementToken()\n }\n\n if (event.key === 'ArrowRight' || event.key === 'Right') {\n incrementToken()\n }\n }\n },\n [count, decrementToken, incrementToken, index, menuRef, removeToken, search]\n )\n\n React.useEffect(\n function () {\n // if we've deleted a token and our new count is less than\n // our current index, clear the index\n if (count <= (index || 0)) {\n clearToken()\n }\n },\n [count, index]\n )\n\n const groupedOptions = React.useMemo(() => {\n if (!optgroups || !optgroups.length) {\n return options\n }\n\n const optionsByGroup: Record<string, (OptionItem | GroupHeader)[]> =\n optgroups.reduce((acc, { id }) => {\n return {\n ...acc,\n [id]: [],\n }\n }, {})\n\n const orphanOptions = [] as OptionItem[]\n\n options.forEach((option) => {\n const groupId = getGroup(option)\n const groupOptions = optionsByGroup[groupId]\n\n if (!groupId || !groupOptions) {\n orphanOptions.push(option)\n return\n }\n\n optionsByGroup[groupId].push(option)\n })\n\n if (orphanOptions.length) {\n console.warn(\n `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.`,\n orphanOptions\n )\n }\n\n return optgroups.flatMap((group: GroupItem) => {\n const groupHeader = { ...group, isGroupHeader: true }\n const groupOptions = optionsByGroup[group.id]\n\n if (!groupOptions.length) {\n return []\n }\n\n return [groupHeader, ...groupOptions]\n }, [])\n }, [options, getGroup, optgroups])\n\n return {\n ids: valueIds,\n index,\n menuRef,\n options: groupedOptions,\n search,\n\n clearToken,\n decrementToken,\n incrementToken,\n onSearch,\n onSelect,\n removeToken,\n\n domHandlers: {\n onKeyDown,\n },\n }\n}\n\nexport const Option = React.forwardRef<HTMLDivElement, MultiSelectOptionProps>(\n function Option({ value, ...props }, ref) {\n return <MenuImperative.Item ref={ref} {...props} item={value} />\n }\n)\n\nfunction GroupedOptions({\n multiselect,\n groupHeaderRenderer,\n optionRenderer,\n getId,\n getLabel,\n isOptionDisabled,\n qa,\n}: GroupedOptionsProps) {\n return (\n <MenuImperative.Options>\n {multiselect.options.map((opt) => {\n if (opt.isGroupHeader) {\n const groupHeader: GroupHeader = opt\n return groupHeaderRenderer(groupHeader)\n }\n\n return optionRenderer(opt, {\n getId,\n getLabel,\n // @ts-ignore\n // Object literal may only specify known properties, and 'key' does not exist in type 'OptionRendererProps'.\n key: getId(opt),\n selected: multiselect.ids.has(getId(opt)),\n disabled: isOptionDisabled(opt),\n value: opt,\n qa,\n })\n })}\n </MenuImperative.Options>\n )\n}\n\n/**\n\n Multi selects allow our users to choose one to many options from a list,\n presented in a dropdown. We typically see these selects on forms.\n\n Other select components are group select, select, and tiered select.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_multiselect--basic)\n\n @see [Design Guidelines](https://design.procore.com/multi-select)\n\n */\nconst MultiSelect_ = React.forwardRef<HTMLDivElement, MultiSelectProps>(\n function MultiSelect(\n {\n afterHide = noop,\n afterShow = noop,\n beforeHide = returnTrue,\n beforeShow = returnTrue,\n block = false,\n disabled = false,\n emptyMessage,\n error = false,\n footer,\n getId = defaultGetId,\n getLabel = defaultGetLabel,\n getGroup = defaultGetGroup,\n loading = false,\n onChange = noop,\n onScrollBottom,\n onSearch,\n options = emptyArray,\n isOptionDisabled = defaultIsOptionDisabled,\n optionRenderer = defaultOptionRenderer,\n optgroups,\n groupHeaderRenderer = defaultGroupHeaderRenderer,\n tokenRenderer = defaultTokenRenderer,\n placeholder,\n placement = 'bottom-left',\n value = emptyArray,\n tabIndex = 0,\n ['aria-labelledby']: ariaLabelledBy,\n qa = {},\n ...props\n },\n ref\n ) {\n const i18n = useI18nContext()\n const ownRef = React.useRef<HTMLDivElement>()\n const targetRef = (ref as React.RefObject<HTMLDivElement>) || ownRef\n\n const searchRef = React.useRef<HTMLInputElement>(null)\n\n const menuRef = React.useRef<MenuRef | null>(null)\n const menuId = useId()\n const tokenListId = useId()\n const tokenBaseId = useId()\n const [isMenuOpen, setIsMenuOpen] = React.useState(false)\n const { menuNavigationTriggerProps, menuProps } =\n useMenuImperativeControlNavigation(menuRef, isMenuOpen)\n\n const I18n = useI18nContext()\n\n const multiselect = useMultiSelect({\n getId,\n getLabel,\n getGroup,\n menuRef,\n onSearch,\n options,\n onChange: function (value) {\n onChange(value)\n\n setFocusTo(searchRef)\n },\n value,\n optgroups,\n })\n\n const showClearIcon = value.length > 0 && !loading\n\n const isNavigatingTokens = multiselect.index !== null\n const activeTokenId = isNavigatingTokens\n ? `${tokenBaseId}-${multiselect.index}`\n : undefined\n\n const overlay = (\n <StyledMultiSelectMenu shadowStrength={2}>\n <MenuImperative\n {...menuProps}\n ref={menuRef}\n id={menuId}\n onScrollBottom={onScrollBottom}\n onSelect={multiselect.onSelect}\n data-qa=\"multi-select-menu\"\n role=\"listbox\"\n >\n {multiselect.options.length ? (\n <GroupedOptions\n multiselect={multiselect}\n getId={getId}\n getLabel={getLabel}\n isOptionDisabled={isOptionDisabled}\n groupHeaderRenderer={groupHeaderRenderer}\n optionRenderer={optionRenderer}\n qa={qa}\n />\n ) : (\n <Box padding=\"md lg\">\n <Typography color=\"gray45\" intent=\"small\" italic>\n {emptyMessage || I18n.t('core.multiSelect.noResults')}\n </Typography>\n </Box>\n )}\n {footer && <MenuImperative.Footer>{footer}</MenuImperative.Footer>}\n </MenuImperative>\n </StyledMultiSelectMenu>\n )\n\n return (\n <OverlayTrigger\n canFlip={true}\n afterHide={() => {\n multiselect.clearToken()\n setIsMenuOpen(false)\n\n afterHide()\n }}\n afterShow={() => {\n multiselect.clearToken()\n\n menuRef.current?.highlightFirst()\n setIsMenuOpen(true)\n\n afterShow()\n }}\n beforeHide={(e) => {\n // if we are clicking somewhere in the target, set focus on the search\n if (e instanceof MouseEvent && isEventSource(targetRef, e)) {\n setFocusTo(searchRef)\n }\n\n return beforeHide(e)\n }}\n beforeShow={(e) => {\n setFocusTo(searchRef)\n\n return beforeShow(e)\n }}\n hideKeys={{\n overlay: overlayHideKeys,\n target: targetHideKeys,\n }}\n overlay={overlay}\n placement={placement}\n ref={targetRef}\n showKeys={targetShowKeys}\n trigger=\"click\"\n >\n {({ disable, enable, isVisible }) => {\n return (\n <StyledMultiSelectButton\n $block={block}\n $error={error}\n $emptyValue={value.length === 0}\n $disabled={disabled}\n $loading={loading}\n $open={isVisible}\n {...props}\n >\n <StyledMultiSelectValues\n id={tokenListId}\n role=\"list\"\n aria-label={I18n.t('core.multiSelect.selectedItems')}\n >\n {value.map((selection, i) => {\n const tokenId = `${tokenBaseId}-${i}`\n const tokenLabel = getLabel(selection)\n return (\n <StyledMultiSelectToken\n key={getId(selection)}\n id={tokenId}\n role=\"listitem\"\n aria-label={\n typeof tokenLabel === 'string'\n ? I18n.t('core.multiSelect.selectedToken', {\n tokenLabel,\n })\n : undefined\n }\n >\n {tokenRenderer({\n option: selection,\n focused: i === multiselect.index,\n disabled: disabled,\n getLabel,\n removeToken: function () {\n multiselect.removeToken(i)\n },\n qa,\n })}\n </StyledMultiSelectToken>\n )\n })}\n\n <StyledMultiSelectSearch>\n <StyledMultiSelectSearchInput\n aria-activedescendant={activeTokenId}\n aria-controls={isNavigatingTokens ? tokenListId : menuId}\n aria-expanded={isVisible}\n aria-labelledby={ariaLabelledBy}\n data-qa=\"core-multiselect-input\"\n role=\"combobox\"\n $isNavigatingTokens={isNavigatingTokens}\n disabled={disabled}\n onBlur={multiselect.clearToken}\n onChange={function (\n e: React.ChangeEvent<HTMLInputElement>\n ) {\n multiselect.onSearch(e)\n }}\n {...menuNavigationTriggerProps}\n onKeyDown={function (\n e: React.KeyboardEvent<HTMLInputElement>\n ) {\n if (isNavigatingTokens && e.key !== 'Tab') {\n // if we are navigating tokens don't do any input but allow Tab\n e.preventDefault()\n }\n\n if (isVisible) {\n // if the overlay is visible, close it and keep focus\n if (e.key === 'Tab') {\n e.preventDefault()\n\n disable(e)\n }\n // if open, don't notify parents (like Modal) but still let OverlayTrigger close it and keep it focus\n if (e.key === 'Esc' || e.key === 'Escape') {\n e.stopPropagation()\n disable(e)\n }\n } else {\n // if we type in an alphanumeric character, show the overlay\n if (isAlphaNumeric(e.key)) {\n enable(e)\n }\n }\n\n multiselect.domHandlers.onKeyDown(e)\n }}\n placeholder={\n value?.length > 0\n ? ''\n : placeholder ?? I18n.t('core.multiSelect.selectValues')\n }\n ref={searchRef}\n tabIndex={tabIndex}\n value={multiselect.search}\n />\n </StyledMultiSelectSearch>\n </StyledMultiSelectValues>\n <StyledMultiSelectSearchIcon>\n <StyledMultiSelectClearIcon\n aria-label={i18n.t('core.multiSelect.clearAll')}\n data-close\n data-qa=\"core-multiselect-clear\"\n size=\"sm\"\n variant=\"tertiary\"\n disabled={disabled}\n icon={<Clear />}\n onClick={() => onChange([])}\n tabIndex={showClearIcon ? 0 : -1}\n $show={showClearIcon}\n />\n {loading ? (\n <Spinner color=\"blue50\" size=\"xs\" />\n ) : (\n <StyledMultiSelectArrowContainer\n data-qa=\"multiselect-select-arrow\"\n onClick={(e: React.MouseEvent) => isVisible && disable(e)}\n >\n <StyledMultiSelectArrow />\n </StyledMultiSelectArrowContainer>\n )}\n </StyledMultiSelectSearchIcon>\n </StyledMultiSelectButton>\n )\n }}\n </OverlayTrigger>\n )\n }\n)\n\nMultiSelect_.displayName = 'MultiSelect'\n\n/**\n * @see [Storybook](https://procore.github.io/core/latest/?path=/story/demos-multiselect--demo)\n * @see [Design Guidelines](https://design.procore.com/multi-select)\n */\nexport const MultiSelect = addSubcomponents(\n {\n Option,\n },\n MultiSelect_\n)\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MultiSelect.js","names":["Clear","useId","VisuallyHidden","React","Box","MenuImperative","useMenuImperativeControlNavigation","OverlayTrigger","Spinner","Token","Typography","isEventSource","useI18nContext","addSubcomponents","StyledMultiSelectArrow","StyledMultiSelectArrowContainer","StyledMultiSelectButton","StyledMultiSelectClearIcon","StyledMultiSelectInner","StyledMultiSelectMenu","StyledMultiSelectSearch","StyledMultiSelectSearchIcon","StyledMultiSelectSearchInput","StyledMultiSelectToken","StyledMultiSelectValues","targetShowKeys","targetHideKeys","overlayHideKeys","emptyArray","noop","returnTrue","isAlphaNumeric","str","length","match","setFocusTo","ref","current","focus","isOption","obj","_typeof","type","Option","defaultIsOptionDisabled","defaultGetId","item","id","defaultGetLabel","label","defaultGetGroup","groupId","defaultIsSelectable","defaultOptionRenderer","_ref","_qa$option","getId","getLabel","qa","value","props","_objectWithoutProperties","_excluded","createElement","_extends","key","option","call","defaultGroupRenderer","group","Group","concat","children","defaultTokenRenderer","_ref2","_qa$token","_qa$tokenClear","focused","disabled","removeToken","tabIndex","token","Label","Remove","onClick","tokenClear","useMultiSelect","_ref3","getGroup","menuRef","_ref3$onChange","onChange","onSearch_","onSearch","options_","options","optgroups","_React$useState","useState","_React$useState2","_slicedToArray","index","setIndex","_React$useState3","_React$useState4","search","setSearch","valueIds","reduce","acc","cur","add","Set","count","useMemo","filter","opt","toLowerCase","includes","useCallback","e","target","setTimeout","_menuRef$current","highlightFirst","clearToken","removeSelection","selection","selected","s","onSelect","newSelected","has","_toConsumableArray","i","decrementToken","Math","max","incrementToken","onKeyDown","event","_menuRef$current2","select","_menuRef$current3","prev","_menuRef$current4","next","repeat","useEffect","groupedOptions","optionsByGroup","_ref4","_objectSpread","_defineProperty","orphanOptions","forEach","groupOptions","push","console","warn","map","isGroupHeader","Boolean","ids","domHandlers","forwardRef","_ref5","_excluded2","Item","GroupedOptions","_ref6","multiselect","groupHeaderRenderer","groupRenderer","optionRenderer","isOptionDisabled","renderOption","groupHeader","Fragment","Options","MultiSelect_","MultiSelect","_ref7","_ref7$afterHide","afterHide","_ref7$afterShow","afterShow","_ref7$beforeHide","beforeHide","_ref7$beforeShow","beforeShow","_ref7$block","block","_ref7$disabled","emptyMessage","_ref7$error","error","footer","_ref7$getId","_ref7$getLabel","_ref7$getGroup","_ref7$loading","loading","_ref7$onChange","onScrollBottom","_ref7$options","_ref7$isOptionDisable","_ref7$optionRenderer","_ref7$groupRenderer","_ref7$tokenRenderer","tokenRenderer","placeholder","_ref7$placement","placement","_ref7$value","_ref7$tabIndex","ariaLabelledBy","ariaDescribedBy","_ref7$qa","_excluded3","i18n","ownRef","useRef","targetRef","searchRef","menuId","tokenListId","tokenBaseId","noneSelectedId","_React$useState5","_React$useState6","isMenuOpen","setIsMenuOpen","_useMenuImperativeCon","menuNavigationTriggerProps","menuProps","I18n","showClearIcon","isNavigatingTokens","activeTokenId","undefined","overlay","shadowStrength","role","padding","color","intent","italic","t","Footer","canFlip","_menuRef$current5","MouseEvent","hideKeys","showKeys","trigger","_ref8","disable","enable","isVisible","$block","$error","$emptyValue","$disabled","$loading","$open","tokenId","tokenLabel","join","$isNavigatingTokens","onBlur","preventDefault","stopPropagation","size","variant","icon","$show","displayName"],"sources":["../../src/MultiSelect/MultiSelect.tsx"],"sourcesContent":["import { Clear } from '@procore/core-icons/dist'\nimport { useId } from '@react-aria/utils'\nimport { VisuallyHidden } from '@react-aria/visually-hidden'\nimport React from 'react'\nimport { Box } from '../Box'\nimport {\n MenuImperative,\n useMenuImperativeControlNavigation,\n} from '../MenuImperative/MenuImperative'\nimport type { MenuRef, Selection } from '../MenuImperative/MenuImperative.types'\nimport { OverlayTrigger } from '../OverlayTrigger'\nimport { Spinner } from '../Spinner'\nimport { Token } from '../Token'\nimport { Typography } from '../Typography'\nimport { isEventSource } from '../_hooks/ClickOutside'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport {\n StyledMultiSelectArrow,\n StyledMultiSelectArrowContainer,\n StyledMultiSelectButton,\n StyledMultiSelectClearIcon,\n StyledMultiSelectInner,\n StyledMultiSelectMenu,\n StyledMultiSelectSearch,\n StyledMultiSelectSearchIcon,\n StyledMultiSelectSearchInput,\n StyledMultiSelectToken,\n StyledMultiSelectValues,\n} from './MultiSelect.styles'\nimport type {\n ChangeEvent,\n GroupedOptionsProps,\n GroupHeader,\n GroupHeaderProps,\n GroupItem,\n MultiSelectConfig,\n MultiSelectHook,\n MultiSelectOptionProps,\n MultiSelectOptionRendererProps,\n MultiSelectProps,\n MultiSelectTokenRendererProps,\n OptionItem,\n} from './MultiSelect.types'\n\nconst targetShowKeys = ['ArrowDown', 'Down']\n\nconst targetHideKeys = ['Esc', 'Escape']\n\nconst overlayHideKeys = targetHideKeys\n\nconst emptyArray: OptionItem[] = []\n\nfunction noop() {}\n\nfunction returnTrue() {\n return true\n}\n\nfunction isAlphaNumeric(str: string) {\n return str.length === 1 && str.match(/[A-Za-z0-9 _.,!\"'/$]*/i)\n}\n\nfunction setFocusTo(ref: React.RefObject<HTMLElement>) {\n if (ref.current) {\n ref.current.focus()\n }\n}\n\nfunction isOption(obj: React.ReactChild) {\n return typeof obj === 'object' && obj.type === Option\n}\n\nfunction defaultIsOptionDisabled() {\n return false\n}\n\nfunction defaultGetId(item: OptionItem) {\n return item.id\n}\n\nfunction defaultGetLabel(item: OptionItem) {\n return item.label\n}\n\nfunction defaultGetGroup(item: OptionItem) {\n return item.groupId\n}\n\nfunction defaultIsSelectable(obj: React.ReactChild) {\n typeof obj === 'object' && obj.type === Option\n}\n\nfunction defaultOptionRenderer(\n item: OptionItem,\n { getId, getLabel, qa, value, ...props }: MultiSelectOptionRendererProps\n) {\n return (\n <Option\n key={getId(item)}\n value={value || item}\n data-qa={qa?.option?.(item)}\n {...props}\n >\n {getLabel(item)}\n </Option>\n )\n}\n\nfunction defaultGroupRenderer(group: GroupHeaderProps) {\n return (\n <MenuImperative.Group key={`group_${group.id}`} label={group.label}>\n {group.children}\n </MenuImperative.Group>\n )\n}\n\nfunction defaultTokenRenderer({\n focused,\n disabled,\n option,\n removeToken,\n getLabel,\n qa,\n}: MultiSelectTokenRendererProps) {\n return (\n <Token\n disabled={disabled}\n focused={focused}\n tabIndex={-1}\n data-qa={qa?.token?.(option)}\n >\n <Token.Label>{getLabel(option)}</Token.Label>\n <Token.Remove\n data-close\n onClick={removeToken}\n tabIndex={-1}\n data-qa={qa?.tokenClear?.(option)}\n />\n </Token>\n )\n}\n\nfunction useMultiSelect({\n getId,\n getLabel,\n getGroup,\n menuRef,\n onChange = noop,\n onSearch: onSearch_,\n options: options_,\n value,\n optgroups,\n}: MultiSelectConfig): MultiSelectHook {\n const [index, setIndex] = React.useState<number | null>(null)\n\n const [search, setSearch] = React.useState<string>('')\n\n const valueIds = value.reduce<Set<number | string>>((acc, cur) => {\n acc.add(getId(cur))\n\n return acc\n }, new Set())\n\n const count = value.length\n\n const options = React.useMemo(\n function () {\n if (onSearch_) {\n return options_\n }\n\n return options_.filter((opt) =>\n getLabel(opt).toLowerCase().includes(search.toLowerCase())\n )\n },\n [options_, onSearch_, getLabel, search]\n )\n\n const onSearch = React.useCallback(\n function (e: ChangeEvent) {\n if (onSearch_) {\n onSearch_(e)\n }\n\n setSearch(e.target.value)\n\n // TODO: because menu highlighting is now imperative, we have to wait\n // for a render to highlight the first item. Is there a better way\n // to schedule this?\n setTimeout(() => menuRef.current?.highlightFirst(), 0)\n },\n [menuRef, onSearch_]\n )\n\n const clearToken = () => setIndex(null)\n\n const removeSelection = React.useCallback(\n function (selection: OptionItem, selected: OptionItem[]) {\n return selected.filter((s) => getId(s) !== getId(selection))\n },\n [getId]\n )\n\n const onSelect = React.useCallback(\n (selection: Selection) => {\n const newSelected = valueIds.has(getId(selection.item))\n ? removeSelection(selection.item, value)\n : [...value, selection.item]\n\n setSearch('')\n onChange(newSelected)\n },\n [setSearch, onChange, getId, removeSelection, value, valueIds]\n )\n\n const removeToken = React.useCallback(\n function (i: number) {\n onChange(removeSelection(value[i], value))\n },\n [value, onChange, removeSelection]\n )\n\n const decrementToken = React.useCallback(\n function () {\n if (index === null) {\n // index is null, set it to the last token index\n setIndex(count - 1)\n } else {\n // decrementToken by one, don't go below 0\n setIndex(Math.max(0, index - 1))\n }\n },\n [count, index, setIndex]\n )\n\n const incrementToken = React.useCallback(\n function () {\n if (index === count - 1) {\n setIndex(null)\n } else if (index !== null) {\n setIndex(index + 1)\n }\n },\n [count, index, setIndex]\n )\n\n const onKeyDown = React.useCallback(\n function (event: React.KeyboardEvent<HTMLInputElement>) {\n if (event.key === 'Enter') {\n menuRef.current?.select(event)\n }\n\n if (event.key === 'ArrowUp' || event.key === 'Up') {\n menuRef.current?.prev()\n }\n\n if (event.key === 'ArrowDown' || event.key === 'Down') {\n menuRef.current?.next()\n }\n\n if (search === '') {\n if (event.key === 'Backspace' || event.key === 'Delete') {\n // to prevent accidentally deleting too many tokens, don't do anything\n // on repeating key events\n if (event.repeat) {\n return\n }\n\n // if we are focused on a token, remove it, otherwise remove the last token\n removeToken(index !== null ? index : count - 1)\n\n if (count >= 1) {\n decrementToken()\n } else {\n clearToken()\n }\n }\n\n if (event.key === 'ArrowLeft' || event.key === 'Left') {\n decrementToken()\n }\n\n if (event.key === 'ArrowRight' || event.key === 'Right') {\n incrementToken()\n }\n }\n },\n [count, decrementToken, incrementToken, index, menuRef, removeToken, search]\n )\n\n React.useEffect(\n function () {\n // if we've deleted a token and our new count is less than\n // our current index, clear the index\n if (count <= (index || 0)) {\n clearToken()\n }\n },\n [count, index]\n )\n\n const groupedOptions = React.useMemo(() => {\n if (!optgroups || !optgroups.length) {\n return options\n }\n\n const optionsByGroup: Record<string, (OptionItem | GroupHeader)[]> =\n optgroups.reduce((acc, { id }) => {\n return {\n ...acc,\n [id]: [],\n }\n }, {})\n\n const orphanOptions = [] as OptionItem[]\n\n options.forEach((option) => {\n const groupId = getGroup(option)\n const groupOptions = optionsByGroup[groupId]\n\n if (!groupId || !groupOptions) {\n orphanOptions.push(option)\n return\n }\n\n optionsByGroup[groupId].push(option)\n })\n\n if (orphanOptions.length) {\n console.warn(\n `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.`,\n orphanOptions\n )\n }\n\n return optgroups\n .map((group: GroupItem) => {\n const groupOptions = optionsByGroup[group.id]\n\n if (!groupOptions.length) {\n return null\n }\n\n return { ...group, isGroupHeader: true, options: groupOptions }\n }, [])\n .filter(Boolean)\n }, [options, getGroup, optgroups])\n\n return {\n ids: valueIds,\n index,\n menuRef,\n options: groupedOptions,\n search,\n\n clearToken,\n decrementToken,\n incrementToken,\n onSearch,\n onSelect,\n removeToken,\n\n domHandlers: {\n onKeyDown,\n },\n }\n}\n\nexport const Option = React.forwardRef<HTMLDivElement, MultiSelectOptionProps>(\n function Option({ value, ...props }, ref) {\n return <MenuImperative.Item ref={ref} {...props} item={value} />\n }\n)\n\nfunction GroupedOptions({\n multiselect,\n groupHeaderRenderer,\n groupRenderer,\n optionRenderer,\n getId,\n getLabel,\n isOptionDisabled,\n qa,\n}: GroupedOptionsProps) {\n const renderOption = (option: OptionItem | GroupHeader): React.ReactNode => {\n if (option.isGroupHeader) {\n const groupHeader: GroupHeader = option\n if (groupHeaderRenderer) {\n return (\n <>\n {groupHeaderRenderer(groupHeader)}\n {groupHeader.options.map(renderOption)}\n </>\n )\n }\n return groupRenderer({\n ...groupHeader,\n children: groupHeader.options.map(renderOption),\n })\n }\n\n return optionRenderer(option, {\n getId,\n getLabel,\n // @ts-ignore\n // Object literal may only specify known properties, and 'key' does not exist in type 'OptionRendererProps'.\n key: getId(option),\n selected: multiselect.ids.has(getId(option)),\n disabled: isOptionDisabled(option),\n value: option,\n qa,\n })\n }\n return (\n <MenuImperative.Options>\n {multiselect.options.map(renderOption)}\n </MenuImperative.Options>\n )\n}\n\n/**\n\n Multi selects allow our users to choose one to many options from a list,\n presented in a dropdown. We typically see these selects on forms.\n\n Other select components are group select, select, and tiered select.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_multiselect--basic)\n\n @see [Design Guidelines](https://design.procore.com/multi-select)\n\n */\nconst MultiSelect_ = React.forwardRef<HTMLDivElement, MultiSelectProps>(\n function MultiSelect(\n {\n afterHide = noop,\n afterShow = noop,\n beforeHide = returnTrue,\n beforeShow = returnTrue,\n block = false,\n disabled = false,\n emptyMessage,\n error = false,\n footer,\n getId = defaultGetId,\n getLabel = defaultGetLabel,\n getGroup = defaultGetGroup,\n loading = false,\n onChange = noop,\n onScrollBottom,\n onSearch,\n options = emptyArray,\n isOptionDisabled = defaultIsOptionDisabled,\n optionRenderer = defaultOptionRenderer,\n optgroups,\n groupHeaderRenderer,\n groupRenderer = defaultGroupRenderer,\n tokenRenderer = defaultTokenRenderer,\n placeholder,\n placement = 'bottom-left',\n value = emptyArray,\n tabIndex = 0,\n ['aria-labelledby']: ariaLabelledBy,\n ['aria-describedby']: ariaDescribedBy,\n qa = {},\n ...props\n },\n ref\n ) {\n const i18n = useI18nContext()\n const ownRef = React.useRef<HTMLDivElement>()\n const targetRef = (ref as React.RefObject<HTMLDivElement>) || ownRef\n\n const searchRef = React.useRef<HTMLInputElement>(null)\n\n const menuRef = React.useRef<MenuRef | null>(null)\n const menuId = useId()\n const tokenListId = useId()\n const tokenBaseId = useId()\n const noneSelectedId = useId()\n const [isMenuOpen, setIsMenuOpen] = React.useState(false)\n const { menuNavigationTriggerProps, menuProps } =\n useMenuImperativeControlNavigation(menuRef, isMenuOpen)\n\n const I18n = useI18nContext()\n\n const multiselect = useMultiSelect({\n getId,\n getLabel,\n getGroup,\n menuRef,\n onSearch,\n options,\n onChange: function (value) {\n onChange(value)\n\n setFocusTo(searchRef)\n },\n value,\n optgroups,\n })\n\n const showClearIcon = value.length > 0 && !loading\n\n const isNavigatingTokens = multiselect.index !== null\n const activeTokenId = isNavigatingTokens\n ? `${tokenBaseId}-${multiselect.index}`\n : undefined\n\n const overlay = (\n <StyledMultiSelectMenu shadowStrength={2}>\n <MenuImperative\n {...menuProps}\n ref={menuRef}\n id={menuId}\n onScrollBottom={onScrollBottom}\n onSelect={multiselect.onSelect}\n data-qa=\"multi-select-menu\"\n role=\"listbox\"\n >\n {multiselect.options.length ? (\n <GroupedOptions\n multiselect={multiselect}\n getId={getId}\n getLabel={getLabel}\n isOptionDisabled={isOptionDisabled}\n groupHeaderRenderer={groupHeaderRenderer}\n groupRenderer={groupRenderer}\n optionRenderer={optionRenderer}\n qa={qa}\n />\n ) : (\n <Box padding=\"md lg\">\n <Typography color=\"gray45\" intent=\"small\" italic>\n {emptyMessage || I18n.t('core.multiSelect.noResults')}\n </Typography>\n </Box>\n )}\n {footer && <MenuImperative.Footer>{footer}</MenuImperative.Footer>}\n </MenuImperative>\n </StyledMultiSelectMenu>\n )\n\n return (\n <OverlayTrigger\n canFlip={true}\n afterHide={() => {\n multiselect.clearToken()\n setIsMenuOpen(false)\n\n afterHide()\n }}\n afterShow={() => {\n multiselect.clearToken()\n\n menuRef.current?.highlightFirst()\n setIsMenuOpen(true)\n\n afterShow()\n }}\n beforeHide={(e) => {\n // if we are clicking somewhere in the target, set focus on the search\n if (e instanceof MouseEvent && isEventSource(targetRef, e)) {\n setFocusTo(searchRef)\n }\n\n return beforeHide(e)\n }}\n beforeShow={(e) => {\n setFocusTo(searchRef)\n\n return beforeShow(e)\n }}\n hideKeys={{\n overlay: overlayHideKeys,\n target: targetHideKeys,\n }}\n overlay={overlay}\n placement={placement}\n ref={targetRef}\n showKeys={targetShowKeys}\n trigger=\"click\"\n >\n {({ disable, enable, isVisible }) => {\n return (\n <StyledMultiSelectButton\n $block={block}\n $error={error}\n $emptyValue={value.length === 0}\n $disabled={disabled}\n $loading={loading}\n $open={isVisible}\n {...props}\n >\n {value.length === 0 && (\n <VisuallyHidden>\n <span id={noneSelectedId}>\n {I18n.t('core.multiSelect.noneSelected')}\n </span>\n </VisuallyHidden>\n )}\n <StyledMultiSelectInner>\n <StyledMultiSelectValues\n id={tokenListId}\n role=\"list\"\n aria-label={\n value.length > 0\n ? I18n.t('core.multiSelect.selectedItems')\n : I18n.t('core.multiSelect.noneSelected')\n }\n >\n {value.map((selection, i) => {\n const tokenId = `${tokenBaseId}-${i}`\n const tokenLabel = getLabel(selection)\n return (\n <StyledMultiSelectToken\n key={getId(selection)}\n id={tokenId}\n role=\"listitem\"\n aria-label={\n typeof tokenLabel === 'string'\n ? I18n.t('core.multiSelect.selectedToken', {\n tokenLabel,\n })\n : undefined\n }\n >\n {tokenRenderer({\n option: selection,\n focused: i === multiselect.index,\n disabled: disabled,\n getLabel,\n removeToken: function () {\n multiselect.removeToken(i)\n },\n qa,\n })}\n </StyledMultiSelectToken>\n )\n })}\n </StyledMultiSelectValues>\n\n <StyledMultiSelectSearch>\n <StyledMultiSelectSearchInput\n aria-activedescendant={activeTokenId}\n aria-controls={isNavigatingTokens ? tokenListId : menuId}\n aria-describedby={\n [\n ariaDescribedBy,\n value.length === 0 ? noneSelectedId : undefined,\n ]\n .filter(Boolean)\n .join(' ') || undefined\n }\n aria-expanded={isVisible}\n aria-invalid={error || undefined}\n aria-labelledby={ariaLabelledBy}\n data-qa=\"core-multiselect-input\"\n role=\"combobox\"\n $isNavigatingTokens={isNavigatingTokens}\n disabled={disabled}\n onBlur={multiselect.clearToken}\n onChange={function (\n e: React.ChangeEvent<HTMLInputElement>\n ) {\n multiselect.onSearch(e)\n }}\n {...menuNavigationTriggerProps}\n onKeyDown={function (\n e: React.KeyboardEvent<HTMLInputElement>\n ) {\n if (isNavigatingTokens && e.key !== 'Tab') {\n // if we are navigating tokens don't do any input but allow Tab\n e.preventDefault()\n }\n\n if (isVisible) {\n // if the overlay is visible, close it and keep focus\n if (e.key === 'Tab') {\n e.preventDefault()\n\n disable(e)\n }\n // if open, don't notify parents (like Modal) but still let OverlayTrigger close it and keep it focus\n if (e.key === 'Esc' || e.key === 'Escape') {\n e.stopPropagation()\n disable(e)\n }\n // close dropdown when navigating tokens with arrow keys\n if (\n multiselect.search === '' &&\n (e.key === 'ArrowLeft' ||\n e.key === 'Left' ||\n e.key === 'ArrowRight' ||\n e.key === 'Right')\n ) {\n disable(e)\n }\n } else {\n // if we type in an alphanumeric character, show the overlay\n if (isAlphaNumeric(e.key)) {\n enable(e)\n }\n }\n\n multiselect.domHandlers.onKeyDown(e)\n }}\n placeholder={\n value?.length > 0\n ? ''\n : placeholder ?? I18n.t('core.multiSelect.selectValues')\n }\n ref={searchRef}\n tabIndex={tabIndex}\n value={multiselect.search}\n />\n </StyledMultiSelectSearch>\n </StyledMultiSelectInner>\n <StyledMultiSelectSearchIcon>\n <StyledMultiSelectClearIcon\n aria-label={i18n.t('core.multiSelect.clearAll')}\n data-close\n data-qa=\"core-multiselect-clear\"\n size=\"sm\"\n variant=\"tertiary\"\n disabled={disabled}\n icon={<Clear />}\n onClick={() => onChange([])}\n tabIndex={showClearIcon ? 0 : -1}\n $show={showClearIcon}\n />\n {loading ? (\n <Spinner color=\"blue50\" size=\"xs\" />\n ) : (\n <StyledMultiSelectArrowContainer\n data-qa=\"multiselect-select-arrow\"\n onClick={(e: React.MouseEvent) => isVisible && disable(e)}\n >\n <StyledMultiSelectArrow />\n </StyledMultiSelectArrowContainer>\n )}\n </StyledMultiSelectSearchIcon>\n </StyledMultiSelectButton>\n )\n }}\n </OverlayTrigger>\n )\n }\n)\n\nMultiSelect_.displayName = 'MultiSelect'\n\n/**\n * @see [Storybook](https://procore.github.io/core/latest/?path=/story/demos-multiselect--demo)\n * @see [Design Guidelines](https://design.procore.com/multi-select)\n */\nexport const MultiSelect = addSubcomponents(\n {\n Option,\n },\n MultiSelect_\n)\n"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
export declare const StyledMultiSelectInner: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
2
3
|
export declare const StyledMultiSelectValues: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
3
4
|
export declare const StyledMultiSelectToken: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
4
5
|
export declare const StyledMultiSelectSearchInput: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, {
|
|
@@ -6,32 +6,36 @@ import { getTypographyIntent } from '../Typography/Typography.styles';
|
|
|
6
6
|
import { colors } from '../_styles/colors';
|
|
7
7
|
import { getFocus } from '../_styles/mixins';
|
|
8
8
|
import { spacing } from '../_styles/spacing';
|
|
9
|
+
export var StyledMultiSelectInner = /*#__PURE__*/styled.div.withConfig({
|
|
10
|
+
displayName: "StyledMultiSelectInner",
|
|
11
|
+
componentId: "core-12_39_0__sc-s9ym9q-0"
|
|
12
|
+
})(["display:flex;flex-wrap:wrap;margin-bottom:2px;margin-left:", "px;margin-right:", "px;margin-top:2px;min-width:0;width:100%;"], spacing.md, spacing.xs);
|
|
9
13
|
export var StyledMultiSelectValues = /*#__PURE__*/styled.div.withConfig({
|
|
10
14
|
displayName: "StyledMultiSelectValues",
|
|
11
|
-
componentId: "core-
|
|
12
|
-
})(["display:
|
|
15
|
+
componentId: "core-12_39_0__sc-s9ym9q-1"
|
|
16
|
+
})(["display:contents;"]);
|
|
13
17
|
export var StyledMultiSelectToken = /*#__PURE__*/styled.div.withConfig({
|
|
14
18
|
displayName: "StyledMultiSelectToken",
|
|
15
|
-
componentId: "core-
|
|
19
|
+
componentId: "core-12_39_0__sc-s9ym9q-2"
|
|
16
20
|
})(["margin-bottom:2px;margin-right:", "px;margin-top:2px;flex:0 1 auto;> div{max-width:178px;width:100%;}"], spacing.xs);
|
|
17
21
|
export var StyledMultiSelectSearchInput = /*#__PURE__*/styled.input.withConfig({
|
|
18
22
|
displayName: "StyledMultiSelectSearchInput",
|
|
19
|
-
componentId: "core-
|
|
23
|
+
componentId: "core-12_39_0__sc-s9ym9q-3"
|
|
20
24
|
})(["background-color:transparent;border-width:0;font-family:inherit;padding:0;height:24px;width:100%;", " ", " &::-ms-clear{display:none;}&:focus{box-shadow:none;outline:none;}&::placeholder{color:", ";}"], getTypographyIntent('body'), function (_ref) {
|
|
21
25
|
var $isNavigatingTokens = _ref.$isNavigatingTokens;
|
|
22
26
|
return $isNavigatingTokens && css(["color:transparent;"]);
|
|
23
27
|
}, colors.gray45);
|
|
24
28
|
export var StyledMultiSelectSearch = /*#__PURE__*/styled.div.withConfig({
|
|
25
29
|
displayName: "StyledMultiSelectSearch",
|
|
26
|
-
componentId: "core-
|
|
30
|
+
componentId: "core-12_39_0__sc-s9ym9q-4"
|
|
27
31
|
})(["margin-bottom:2px;margin-right:", "px;margin-top:2px;flex:1;max-width:100%;min-width:24px;"], spacing.xs);
|
|
28
32
|
export var StyledMultiSelectSearchIcon = /*#__PURE__*/styled.div.withConfig({
|
|
29
33
|
displayName: "StyledMultiSelectSearchIcon",
|
|
30
|
-
componentId: "core-
|
|
34
|
+
componentId: "core-12_39_0__sc-s9ym9q-5"
|
|
31
35
|
})(["align-items:center;align-self:flex-start;display:flex;height:34px;justify-content:flex-end;margin-left:", "px;margin-right:", "px;min-width:40px;width:40px;"], spacing.xs, spacing.md);
|
|
32
36
|
export var StyledMultiSelectClearIcon = /*#__PURE__*/styled(Button).withConfig({
|
|
33
37
|
displayName: "StyledMultiSelectClearIcon",
|
|
34
|
-
componentId: "core-
|
|
38
|
+
componentId: "core-12_39_0__sc-s9ym9q-6"
|
|
35
39
|
})(["", " ", "{pointer-events:none;}"], function (_ref2) {
|
|
36
40
|
var $show = _ref2.$show;
|
|
37
41
|
return css(["opacity:", ";"], $show ? 1 : 0);
|
|
@@ -41,7 +45,7 @@ export var StyledMultiSelectArrow = StyledSelectArrow;
|
|
|
41
45
|
export var StyledMultiSelectMenu = StyledSelectMenu;
|
|
42
46
|
export var StyledMultiSelectButton = /*#__PURE__*/styled(StyledSelectButton).withConfig({
|
|
43
47
|
displayName: "StyledMultiSelectButton",
|
|
44
|
-
componentId: "core-
|
|
48
|
+
componentId: "core-12_39_0__sc-s9ym9q-7"
|
|
45
49
|
})(["height:auto;padding:0;white-space:normal;&:focus-within{", "}", ""], getFocus(), function (_ref3) {
|
|
46
50
|
var $emptyValue = _ref3.$emptyValue;
|
|
47
51
|
return $emptyValue && css(["", "{cursor:pointer;}"], StyledMultiSelectSearchInput);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.styles.js","names":["styled","css","Button","StyledContent","StyledSelectArrow","StyledSelectArrowContainer","StyledSelectButton","StyledSelectMenu","getTypographyIntent","colors","getFocus","spacing","
|
|
1
|
+
{"version":3,"file":"MultiSelect.styles.js","names":["styled","css","Button","StyledContent","StyledSelectArrow","StyledSelectArrowContainer","StyledSelectButton","StyledSelectMenu","getTypographyIntent","colors","getFocus","spacing","StyledMultiSelectInner","div","withConfig","displayName","componentId","md","xs","StyledMultiSelectValues","StyledMultiSelectToken","StyledMultiSelectSearchInput","input","_ref","$isNavigatingTokens","gray45","StyledMultiSelectSearch","StyledMultiSelectSearchIcon","StyledMultiSelectClearIcon","_ref2","$show","StyledMultiSelectArrowContainer","StyledMultiSelectArrow","StyledMultiSelectMenu","StyledMultiSelectButton","_ref3","$emptyValue"],"sources":["../../src/MultiSelect/MultiSelect.styles.tsx"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport { Button } from '../Button'\nimport { StyledContent } from '../Button/Button.styles'\nimport {\n StyledSelectArrow,\n StyledSelectArrowContainer,\n StyledSelectButton,\n StyledSelectMenu,\n} from '../Select/Select.styles'\nimport { getTypographyIntent } from '../Typography/Typography.styles'\nimport { colors } from '../_styles/colors'\nimport { getFocus } from '../_styles/mixins'\nimport { spacing } from '../_styles/spacing'\n\nexport const StyledMultiSelectInner = styled.div`\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 2px;\n margin-left: ${spacing.md}px;\n margin-right: ${spacing.xs}px;\n margin-top: 2px;\n min-width: 0;\n width: 100%;\n`\n\nexport const StyledMultiSelectValues = styled.div`\n display: contents;\n`\n\nexport const StyledMultiSelectToken = styled.div`\n margin-bottom: 2px;\n margin-right: ${spacing.xs}px;\n margin-top: 2px;\n flex: 0 1 auto;\n\n > div {\n max-width: 178px;\n width: 100%;\n }\n`\n\nexport const StyledMultiSelectSearchInput = styled.input<{\n $isNavigatingTokens?: boolean\n}>`\n background-color: transparent;\n border-width: 0;\n font-family: inherit;\n padding: 0;\n height: 24px;\n width: 100%;\n\n ${getTypographyIntent('body')}\n\n ${({ $isNavigatingTokens }) =>\n $isNavigatingTokens &&\n css`\n color: transparent;\n `}\n\n &::-ms-clear {\n display: none;\n }\n\n &:focus {\n box-shadow: none;\n outline: none;\n }\n\n &::placeholder {\n color: ${colors.gray45};\n }\n`\n\nexport const StyledMultiSelectSearch = styled.div`\n margin-bottom: 2px;\n margin-right: ${spacing.xs}px;\n margin-top: 2px;\n flex: 1;\n max-width: 100%;\n min-width: 24px;\n`\n\nexport const StyledMultiSelectSearchIcon = styled.div`\n align-items: center;\n align-self: flex-start;\n display: flex;\n height: 34px;\n justify-content: flex-end;\n margin-left: ${spacing.xs}px;\n margin-right: ${spacing.md}px;\n min-width: 40px;\n width: 40px;\n`\n\nexport const StyledMultiSelectClearIcon = styled(Button)<{ $show?: boolean }>`\n ${({ $show }) => css`\n opacity: ${$show ? 1 : 0};\n `}\n\n ${StyledContent} {\n pointer-events: none;\n }\n`\n\nexport const StyledMultiSelectArrowContainer = StyledSelectArrowContainer\n\nexport const StyledMultiSelectArrow = StyledSelectArrow\n\nexport const StyledMultiSelectMenu = StyledSelectMenu\n\nexport const StyledMultiSelectButton = styled(StyledSelectButton)<{\n $emptyValue: boolean\n}>`\n height: auto;\n padding: 0;\n white-space: normal;\n\n &:focus-within {\n ${getFocus()}\n }\n\n ${({ $emptyValue }) =>\n $emptyValue &&\n css`\n ${StyledMultiSelectSearchInput} {\n cursor: pointer;\n }\n `}\n`\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAC/C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,aAAa,QAAQ,yBAAyB;AACvD,SACEC,iBAAiB,EACjBC,0BAA0B,EAC1BC,kBAAkB,EAClBC,gBAAgB,QACX,yBAAyB;AAChC,SAASC,mBAAmB,QAAQ,iCAAiC;AACrE,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,OAAO,QAAQ,oBAAoB;AAE5C,OAAO,IAAMC,sBAAsB,gBAAGZ,MAAM,CAACa,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,oIAI/BL,OAAO,CAACM,EAAE,EACTN,OAAO,CAACO,EAAE,CAI3B;AAED,OAAO,IAAMC,uBAAuB,gBAAGnB,MAAM,CAACa,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,yBAEhD;AAED,OAAO,IAAMI,sBAAsB,gBAAGpB,MAAM,CAACa,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8GAE9BL,OAAO,CAACO,EAAE,CAQ3B;AAED,OAAO,IAAMG,4BAA4B,gBAAGrB,MAAM,CAACsB,KAAK,CAAAR,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,gNAUpDR,mBAAmB,CAAC,MAAM,CAAC,EAE3B,UAAAe,IAAA;EAAA,IAAGC,mBAAmB,GAAAD,IAAA,CAAnBC,mBAAmB;EAAA,OACtBA,mBAAmB,IACnBvB,GAAG,wBAEF;AAAA,GAYQQ,MAAM,CAACgB,MAAM,CAEzB;AAED,OAAO,IAAMC,uBAAuB,gBAAG1B,MAAM,CAACa,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,mGAE/BL,OAAO,CAACO,EAAE,CAK3B;AAED,OAAO,IAAMS,2BAA2B,gBAAG3B,MAAM,CAACa,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,qKAMpCL,OAAO,CAACO,EAAE,EACTP,OAAO,CAACM,EAAE,CAG3B;AAED,OAAO,IAAMW,0BAA0B,gBAAG5B,MAAM,CAACE,MAAM,CAAC,CAAAY,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wCACpD,UAAAa,KAAA;EAAA,IAAGC,KAAK,GAAAD,KAAA,CAALC,KAAK;EAAA,OAAO7B,GAAG,oBACP6B,KAAK,GAAG,CAAC,GAAG,CAAC;AAAA,CACzB,EAEC3B,aAAa,CAGhB;AAED,OAAO,IAAM4B,+BAA+B,GAAG1B,0BAA0B;AAEzE,OAAO,IAAM2B,sBAAsB,GAAG5B,iBAAiB;AAEvD,OAAO,IAAM6B,qBAAqB,GAAG1B,gBAAgB;AAErD,OAAO,IAAM2B,uBAAuB,gBAAGlC,MAAM,CAACM,kBAAkB,CAAC,CAAAQ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0EAQ3DN,QAAQ,CAAC,CAAC,EAGZ,UAAAyB,KAAA;EAAA,IAAGC,WAAW,GAAAD,KAAA,CAAXC,WAAW;EAAA,OACdA,WAAW,IACXnC,GAAG,4BACCoB,4BAA4B,CAG/B;AAAA,EACJ"}
|
|
@@ -59,6 +59,16 @@ export interface GroupHeader extends GroupItem {
|
|
|
59
59
|
* @since 10.19.0
|
|
60
60
|
*/
|
|
61
61
|
isGroupHeader: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* @since 12.39.0
|
|
64
|
+
*/
|
|
65
|
+
options: OptionItem[];
|
|
66
|
+
}
|
|
67
|
+
export interface GroupHeaderProps extends GroupItem {
|
|
68
|
+
/**
|
|
69
|
+
* @since 12.39.0
|
|
70
|
+
*/
|
|
71
|
+
children?: React.ReactNode;
|
|
62
72
|
}
|
|
63
73
|
export interface MultiSelectConfig {
|
|
64
74
|
/**
|
|
@@ -161,8 +171,14 @@ export interface GroupedOptionsProps {
|
|
|
161
171
|
multiselect: MultiSelectHook;
|
|
162
172
|
/**
|
|
163
173
|
* @since 10.19.0
|
|
174
|
+
* @deprecated The `groupHeaderRenderer` prop is deprecated and will be removed in a future version. Use `groupRenderer` instead to customize the entire group rendering, including the header.
|
|
175
|
+
* @deprecatedSince 12.39.0
|
|
164
176
|
*/
|
|
165
|
-
groupHeaderRenderer
|
|
177
|
+
groupHeaderRenderer?: (group: GroupItem) => React.ReactNode;
|
|
178
|
+
/**
|
|
179
|
+
* @since 12.39.0
|
|
180
|
+
*/
|
|
181
|
+
groupRenderer: (group: GroupHeaderProps) => React.ReactNode;
|
|
166
182
|
/**
|
|
167
183
|
* @since 10.19.0
|
|
168
184
|
*/
|
|
@@ -316,8 +332,18 @@ export interface MultiSelectProps {
|
|
|
316
332
|
* (group: GroupItem) => React.ReactNode
|
|
317
333
|
* ```
|
|
318
334
|
* @since 10.19.0
|
|
335
|
+
* @deprecated The `groupHeaderRenderer` prop is deprecated and will be removed in a future version. Use `groupRenderer` instead to customize the entire group rendering, including the header.
|
|
336
|
+
* @deprecatedSince 12.39.0
|
|
319
337
|
*/
|
|
320
338
|
groupHeaderRenderer?: (group: GroupItem) => React.ReactNode;
|
|
339
|
+
/**
|
|
340
|
+
* Callback for rendering header for each entry in `groups`
|
|
341
|
+
* ```
|
|
342
|
+
* (group: GroupHeader) => React.ReactNode
|
|
343
|
+
* ```
|
|
344
|
+
* @since 12.39.0
|
|
345
|
+
*/
|
|
346
|
+
groupRenderer?: (group: GroupHeaderProps) => React.ReactNode;
|
|
321
347
|
/**
|
|
322
348
|
* @since 10.19.0
|
|
323
349
|
*/
|
|
@@ -375,4 +401,8 @@ export interface MultiSelectProps {
|
|
|
375
401
|
* @since 11.4.0
|
|
376
402
|
*/
|
|
377
403
|
['aria-labelledby']?: string;
|
|
404
|
+
/**
|
|
405
|
+
* @since 12.35.1
|
|
406
|
+
*/
|
|
407
|
+
['aria-describedby']?: string;
|
|
378
408
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.types.js","names":[],"sources":["../../src/MultiSelect/MultiSelect.types.ts"],"sourcesContent":["import type { DropdownPlacement } from '../Dropdown/Dropdown.types'\nimport type {\n MenuProps,\n MenuRef,\n Selection,\n} from '../MenuImperative/MenuImperative.types'\nimport type { OverlayTriggerProps } from '../OverlayTrigger'\n\nexport type ChangeEvent = React.ChangeEvent<HTMLInputElement>\n\nexport type OptionItem = any\n\nexport interface MultiSelectOptionProps {\n /**\n * @since 10.19.0\n */\n children?: React.ReactNode\n /**\n * @since 10.19.0\n */\n className?: string\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 * @since 10.19.0\n */\n value: OptionItem\n}\n\nexport interface MultiSelectOptionRendererProps extends MultiSelectOptionProps {\n /**\n * @since 10.19.0\n */\n getId: MultiSelectConfig['getId']\n\n /**\n * @since 10.19.0\n */\n getLabel: MultiSelectConfig['getLabel']\n /**\n * @since 10.19.0\n */\n qa: QaTags\n}\n\nexport interface GroupItem {\n /**\n * @since 10.19.0\n */\n id: string\n /**\n * @since 10.19.0\n */\n label: string\n}\n\nexport interface GroupHeader extends GroupItem {\n /**\n * @since 10.19.0\n */\n isGroupHeader: boolean\n}\n\nexport interface MultiSelectConfig {\n /**\n * @since 10.19.0\n */\n getGroup: (option: OptionItem) => number | string\n /**\n * @since 10.19.0\n */\n getId: (option: OptionItem) => number | string\n /**\n * @since 10.19.0\n */\n getLabel: (option: OptionItem) => string\n /**\n * @since 10.19.0\n */\n menuRef: React.RefObject<MenuRef>\n /**\n * @since 10.19.0\n */\n onChange?: (value: OptionItem[], event?: Event) => void\n /**\n * @since 10.19.0\n */\n onSearch?: (e: ChangeEvent) => void\n /**\n * @since 10.19.0\n */\n onSelect?: (selection: Selection) => void\n /**\n * @since 10.19.0\n */\n optgroups?: GroupItem[]\n /**\n * @since 10.19.0\n */\n options: OptionItem[]\n /**\n * @since 10.19.0\n */\n value: OptionItem[]\n}\n\nexport interface MultiSelectHook {\n /**\n * @since 10.19.0\n */\n ids: Set<number | string>\n /**\n * @since 10.19.0\n */\n index: number | null\n /**\n * @since 10.19.0\n */\n menuRef: React.RefObject<MenuRef>\n /**\n * @since 10.19.0\n */\n options: (OptionItem | GroupHeader)[]\n /**\n * @since 10.19.0\n */\n search: string\n /**\n * @since 10.19.0\n */\n clearToken: () => void\n /**\n * @since 10.19.0\n */\n decrementToken: () => void\n /**\n * @since 10.19.0\n */\n incrementToken: () => void\n /**\n * @since 10.19.0\n */\n onSearch: (e: React.ChangeEvent<HTMLInputElement>) => void\n /**\n * @since 10.19.0\n */\n onSelect: (selection: Selection) => void\n /**\n * @since 10.19.0\n */\n removeToken: (index: number) => void\n /**\n * @since 10.19.0\n */\n domHandlers: {\n onKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void\n }\n}\n\nexport interface GroupedOptionsProps {\n /**\n * @since 10.19.0\n */\n multiselect: MultiSelectHook\n /**\n * @since 10.19.0\n */\n groupHeaderRenderer
|
|
1
|
+
{"version":3,"file":"MultiSelect.types.js","names":[],"sources":["../../src/MultiSelect/MultiSelect.types.ts"],"sourcesContent":["import type { DropdownPlacement } from '../Dropdown/Dropdown.types'\nimport type {\n MenuProps,\n MenuRef,\n Selection,\n} from '../MenuImperative/MenuImperative.types'\nimport type { OverlayTriggerProps } from '../OverlayTrigger'\n\nexport type ChangeEvent = React.ChangeEvent<HTMLInputElement>\n\nexport type OptionItem = any\n\nexport interface MultiSelectOptionProps {\n /**\n * @since 10.19.0\n */\n children?: React.ReactNode\n /**\n * @since 10.19.0\n */\n className?: string\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 * @since 10.19.0\n */\n value: OptionItem\n}\n\nexport interface MultiSelectOptionRendererProps extends MultiSelectOptionProps {\n /**\n * @since 10.19.0\n */\n getId: MultiSelectConfig['getId']\n\n /**\n * @since 10.19.0\n */\n getLabel: MultiSelectConfig['getLabel']\n /**\n * @since 10.19.0\n */\n qa: QaTags\n}\n\nexport interface GroupItem {\n /**\n * @since 10.19.0\n */\n id: string\n /**\n * @since 10.19.0\n */\n label: string\n}\n\nexport interface GroupHeader extends GroupItem {\n /**\n * @since 10.19.0\n */\n isGroupHeader: boolean\n\n /**\n * @since 12.39.0\n */\n options: OptionItem[]\n}\n\nexport interface GroupHeaderProps extends GroupItem {\n /**\n * @since 12.39.0\n */\n children?: React.ReactNode\n}\n\nexport interface MultiSelectConfig {\n /**\n * @since 10.19.0\n */\n getGroup: (option: OptionItem) => number | string\n /**\n * @since 10.19.0\n */\n getId: (option: OptionItem) => number | string\n /**\n * @since 10.19.0\n */\n getLabel: (option: OptionItem) => string\n /**\n * @since 10.19.0\n */\n menuRef: React.RefObject<MenuRef>\n /**\n * @since 10.19.0\n */\n onChange?: (value: OptionItem[], event?: Event) => void\n /**\n * @since 10.19.0\n */\n onSearch?: (e: ChangeEvent) => void\n /**\n * @since 10.19.0\n */\n onSelect?: (selection: Selection) => void\n /**\n * @since 10.19.0\n */\n optgroups?: GroupItem[]\n /**\n * @since 10.19.0\n */\n options: OptionItem[]\n /**\n * @since 10.19.0\n */\n value: OptionItem[]\n}\n\nexport interface MultiSelectHook {\n /**\n * @since 10.19.0\n */\n ids: Set<number | string>\n /**\n * @since 10.19.0\n */\n index: number | null\n /**\n * @since 10.19.0\n */\n menuRef: React.RefObject<MenuRef>\n /**\n * @since 10.19.0\n */\n options: (OptionItem | GroupHeader)[]\n /**\n * @since 10.19.0\n */\n search: string\n /**\n * @since 10.19.0\n */\n clearToken: () => void\n /**\n * @since 10.19.0\n */\n decrementToken: () => void\n /**\n * @since 10.19.0\n */\n incrementToken: () => void\n /**\n * @since 10.19.0\n */\n onSearch: (e: React.ChangeEvent<HTMLInputElement>) => void\n /**\n * @since 10.19.0\n */\n onSelect: (selection: Selection) => void\n /**\n * @since 10.19.0\n */\n removeToken: (index: number) => void\n /**\n * @since 10.19.0\n */\n domHandlers: {\n onKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void\n }\n}\n\nexport interface GroupedOptionsProps {\n /**\n * @since 10.19.0\n */\n multiselect: MultiSelectHook\n /**\n * @since 10.19.0\n * @deprecated The `groupHeaderRenderer` prop is deprecated and will be removed in a future version. Use `groupRenderer` instead to customize the entire group rendering, including the header.\n * @deprecatedSince 12.39.0\n */\n groupHeaderRenderer?: (group: GroupItem) => React.ReactNode\n /**\n * @since 12.39.0\n */\n groupRenderer: (group: GroupHeaderProps) => React.ReactNode\n /**\n * @since 10.19.0\n */\n optionRenderer: (\n option: OptionItem,\n props: MultiSelectOptionRendererProps\n ) => React.ReactNode\n /**\n * @since 10.19.0\n */\n getId: MultiSelectConfig['getId']\n /**\n * @since 10.19.0\n */\n getLabel: MultiSelectConfig['getLabel']\n /**\n * @since 10.19.0\n */\n isOptionDisabled: (option: OptionItem) => boolean\n /**\n * @since 10.19.0\n */\n qa: QaTags\n}\n\nexport interface QaTags {\n /**\n * @since 10.19.0\n */\n option?: (option: OptionItem) => string\n /**\n * @since 10.19.0\n */\n token?: (option: OptionItem) => string\n /**\n * @since 10.19.0\n */\n tokenClear?: (option: OptionItem) => string\n}\n\nexport interface MultiSelectTokenRendererProps {\n /**\n * @since 10.19.0\n */\n focused: boolean\n /**\n * @since 10.19.0\n */\n disabled: boolean\n /**\n * @since 10.19.0\n */\n option: OptionItem\n /**\n * @since 10.19.0\n */\n removeToken: () => void\n /**\n * @since 10.19.0\n */\n getLabel: (opt: OptionItem) => React.ReactNode\n /**\n * @since 10.19.0\n */\n qa: QaTags\n}\n\nexport interface MultiSelectProps {\n /**\n * @since 10.19.0\n */\n afterHide?: OverlayTriggerProps['afterHide']\n /**\n * @since 10.19.0\n */\n afterShow?: OverlayTriggerProps['afterShow']\n /**\n * @since 10.19.0\n */\n beforeHide?: OverlayTriggerProps['beforeHide']\n /**\n * @since 10.19.0\n */\n beforeShow?: OverlayTriggerProps['beforeShow']\n\n /**\n * Callback for each entry in `options` to define relation to group in `groups`\n * ```\n * (option: OptionItem) => React.ReactNode\n * ```\n * @since 10.19.0\n */\n getGroup?: MultiSelectConfig['getGroup']\n\n /**\n * Callback for each entry in `options` for keying and optimizations\n * ```\n * (option: OptionItem) => number | string\n * ```\n * @since 10.19.0\n */\n getId?: MultiSelectConfig['getId']\n\n /**\n * Callback for each entry in `options` to generate the token label.\n * ```\n * (option: OptionItem) => string\n * ```\n * @since 10.19.0\n */\n getLabel?: MultiSelectConfig['getLabel']\n\n /**\n * Callback for when a user types into the multiselect input\n * ```\n * (event: KeyboardEvent) => void\n * ```\n * @since 10.19.0\n */\n onSearch?: MultiSelectConfig['onSearch']\n\n /**\n * Array of available option groups\n */\n optgroups?: MultiSelectConfig['optgroups']\n\n /**\n * Array of available options\n * @since 10.19.0\n */\n options?: MultiSelectConfig['options']\n\n /**\n * @since 10.19.0\n */\n onScrollBottom?: MenuProps['onScrollBottom']\n\n /**\n * @since 10.19.0\n */\n block?: boolean\n\n /**\n * @since 10.19.0\n */\n className?: string\n /**\n * @since 10.19.0\n */\n disabled?: boolean\n /**\n * @since 10.19.0\n */\n isOptionDisabled?: (option: OptionItem) => boolean\n /**\n * @since 10.19.0\n */\n emptyMessage?: string\n /**\n * @since 10.19.0\n */\n error?: boolean\n /**\n * Callback for rendering header for each entry in `groups`\n * ```\n * (group: GroupItem) => React.ReactNode\n * ```\n * @since 10.19.0\n * @deprecated The `groupHeaderRenderer` prop is deprecated and will be removed in a future version. Use `groupRenderer` instead to customize the entire group rendering, including the header.\n * @deprecatedSince 12.39.0\n */\n groupHeaderRenderer?: (group: GroupItem) => React.ReactNode\n /**\n * Callback for rendering header for each entry in `groups`\n * ```\n * (group: GroupHeader) => React.ReactNode\n * ```\n * @since 12.39.0\n */\n groupRenderer?: (group: GroupHeaderProps) => React.ReactNode\n /**\n * @since 10.19.0\n */\n loading?: boolean\n /**\n * @since 10.19.0\n */\n onBlur?: React.SelectHTMLAttributes<HTMLDivElement>['onBlur']\n /**\n * @since 10.19.0\n */\n onChange?: (value: OptionItem[], event?: Event) => void\n /**\n * @since 10.19.0\n */\n onFocus?: React.SelectHTMLAttributes<HTMLDivElement>['onFocus']\n /**\n * @since 10.19.0\n */\n optionRenderer?: (\n option: OptionItem,\n props?: MultiSelectOptionRendererProps\n ) => React.ReactNode\n /**\n * @since 10.19.0\n */\n placeholder?: string\n /**\n * @since 10.19.0\n */\n placement?: DropdownPlacement\n /**\n * @since 10.19.0\n */\n qa?: QaTags\n /**\n * @since 10.19.0\n */\n tabIndex?: number\n /**\n * Callback for rendering each selected value\n * ```\n * (props: TokenRendererProps) => React.ReactNode\n * ```\n * @since 10.19.0\n */\n tokenRenderer?: (props: MultiSelectTokenRendererProps) => React.ReactNode\n\n /**\n * Array of the currently selected values\n * @since 10.19.0\n */\n value?: OptionItem[]\n\n /**\n * @since 10.29.0\n */\n footer?: React.ReactNode\n\n /**\n * @since 11.4.0\n */\n ['aria-labelledby']?: string\n\n /**\n * @since 12.35.1\n */\n ['aria-describedby']?: string\n}\n"],"mappings":""}
|
|
@@ -6,14 +6,14 @@ export var optionMinHeight = 32;
|
|
|
6
6
|
export var defaultMenuHeight = 64;
|
|
7
7
|
export var StyledOptions = /*#__PURE__*/styled.div.withConfig({
|
|
8
8
|
displayName: "StyledOptions",
|
|
9
|
-
componentId: "core-
|
|
9
|
+
componentId: "core-12_39_0__sc-3o6zya-0"
|
|
10
10
|
})([""]);
|
|
11
11
|
export var StyledItem = /*#__PURE__*/styled.div.withConfig({
|
|
12
12
|
displayName: "StyledItem",
|
|
13
|
-
componentId: "core-
|
|
13
|
+
componentId: "core-12_39_0__sc-3o6zya-1"
|
|
14
14
|
})(["", ";padding:", "px ", "px;cursor:pointer;list-style-type:none;"], getTypographyIntent('body'), spacing.xs, spacing.md);
|
|
15
15
|
export var StyledGroup = /*#__PURE__*/styled.div.withConfig({
|
|
16
16
|
displayName: "StyledGroup",
|
|
17
|
-
componentId: "core-
|
|
17
|
+
componentId: "core-12_39_0__sc-3o6zya-2"
|
|
18
18
|
})(["", ";padding:", "px ", "px ", "px;font-weight:", ";background:white;list-style-type:none;"], getTypographyIntent('body'), spacing.md, spacing.md, spacing.xs, typographyWeights.semibold);
|
|
19
19
|
//# sourceMappingURL=NextMenu.styles.js.map
|
|
@@ -14,7 +14,7 @@ var variantColorMap = {
|
|
|
14
14
|
};
|
|
15
15
|
var StyledNotation = /*#__PURE__*/styled.i.withConfig({
|
|
16
16
|
displayName: "StyledNotation",
|
|
17
|
-
componentId: "core-
|
|
17
|
+
componentId: "core-12_39_0__sc-160q1m6-0"
|
|
18
18
|
})(["", " color:", ";font-style:italic;"], getTypographyIntent('small'), function (_ref) {
|
|
19
19
|
var $variant = _ref.$variant;
|
|
20
20
|
return $variant ? colors[variantColorMap[$variant]] : colors.gray15;
|
|
@@ -12,37 +12,37 @@ var inputBgColor = colors.white;
|
|
|
12
12
|
var inputBorder = "".concat(colors.gray50, " solid 1px");
|
|
13
13
|
var StyledRootAddon = /*#__PURE__*/styled.span.withConfig({
|
|
14
14
|
displayName: "StyledRootAddon",
|
|
15
|
-
componentId: "core-
|
|
15
|
+
componentId: "core-12_39_0__sc-1782nvg-0"
|
|
16
16
|
})(["display:inline-flex;align-items:center;height:100%;position:absolute;top:0;color:", ";", ";"], function (_ref) {
|
|
17
17
|
var disabled = _ref.disabled;
|
|
18
18
|
return disabled ? colors.gray70 : colors.gray45;
|
|
19
19
|
}, getTypographyIntent('body'));
|
|
20
20
|
export var StyledPrefix = /*#__PURE__*/styled(StyledRootAddon).withConfig({
|
|
21
21
|
displayName: "StyledPrefix",
|
|
22
|
-
componentId: "core-
|
|
22
|
+
componentId: "core-12_39_0__sc-1782nvg-1"
|
|
23
23
|
})(["left:", "px;"], spacing.md);
|
|
24
24
|
export var StyledSuffix = /*#__PURE__*/styled(StyledRootAddon).withConfig({
|
|
25
25
|
displayName: "StyledSuffix",
|
|
26
|
-
componentId: "core-
|
|
26
|
+
componentId: "core-12_39_0__sc-1782nvg-2"
|
|
27
27
|
})(["right:", "px;"], function (_ref2) {
|
|
28
28
|
var $withIncrementer = _ref2.$withIncrementer;
|
|
29
29
|
return $withIncrementer ? spacing.md + incrementerWidth : spacing.md;
|
|
30
30
|
});
|
|
31
31
|
export var StyledIncrementerWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
32
32
|
displayName: "StyledIncrementerWrapper",
|
|
33
|
-
componentId: "core-
|
|
33
|
+
componentId: "core-12_39_0__sc-1782nvg-3"
|
|
34
34
|
})(["display:flex;flex-direction:column;position:absolute;top:1px;right:1px;height:100%;"]);
|
|
35
35
|
export var StyledIncrementerButton = /*#__PURE__*/styled.button.withConfig({
|
|
36
36
|
displayName: "StyledIncrementerButton",
|
|
37
|
-
componentId: "core-
|
|
37
|
+
componentId: "core-12_39_0__sc-1782nvg-4"
|
|
38
38
|
})(["display:inline-flex;justify-content:center;align-items:center;width:", "px;height:calc(50% - 1px);border:none;border-radius:0px;outline:none;background-color:", ";padding:0;cursor:pointer;&:first-child,&:last-child{border-left:", ";&:disabled{border-color:", ";background-color:", ";}}&:first-child{border-top-right-radius:2px;}&:last-child{border-top:", ";border-bottom-right-radius:2px;}svg{fill:", ";}&:hover{svg{fill:", ";}}&:disabled{cursor:default;svg{fill:", ";}}"], incrementerWidth, inputBgColor, inputBorder, colors.gray50, colors.gray94, inputBorder, colors.gray45, colors.gray10, colors.gray70);
|
|
39
39
|
export var StyledInput = /*#__PURE__*/styled(Input).withConfig({
|
|
40
40
|
displayName: "StyledInput",
|
|
41
|
-
componentId: "core-
|
|
41
|
+
componentId: "core-12_39_0__sc-1782nvg-5"
|
|
42
42
|
})([""]);
|
|
43
43
|
export var StyledWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
44
44
|
displayName: "StyledWrapper",
|
|
45
|
-
componentId: "core-
|
|
45
|
+
componentId: "core-12_39_0__sc-1782nvg-6"
|
|
46
46
|
})(["position:relative;", ""], function (_ref3) {
|
|
47
47
|
var $hasIncrementer = _ref3.$hasIncrementer;
|
|
48
48
|
return $hasIncrementer && css(["", "{padding-right:", "px;}"], StyledInput, spacing.md + incrementerWidth);
|
|
@@ -2,6 +2,6 @@ import styled from 'styled-components';
|
|
|
2
2
|
export var arrowSize = 8;
|
|
3
3
|
export var StyledArrow = /*#__PURE__*/styled.div.withConfig({
|
|
4
4
|
displayName: "StyledArrow",
|
|
5
|
-
componentId: "core-
|
|
5
|
+
componentId: "core-12_39_0__sc-1epxw7u-0"
|
|
6
6
|
})(["position:absolute;background:inherit;width:", "px;height:", "px;transform:rotate(45deg);"], arrowSize, arrowSize);
|
|
7
7
|
//# sourceMappingURL=OverlayArrow.styles.js.map
|
|
@@ -99,7 +99,8 @@ export var OverlayTrigger = /*#__PURE__*/React.forwardRef(function OverlayTrigge
|
|
|
99
99
|
overlayApiRef = _ref2.overlayRef,
|
|
100
100
|
role = _ref2.role,
|
|
101
101
|
_ref2$passA11yPropsTo = _ref2.passA11yPropsToOverlay,
|
|
102
|
-
passA11yPropsToOverlay = _ref2$passA11yPropsTo === void 0 ? false : _ref2$passA11yPropsTo
|
|
102
|
+
passA11yPropsToOverlay = _ref2$passA11yPropsTo === void 0 ? false : _ref2$passA11yPropsTo,
|
|
103
|
+
overlayIdProp = _ref2.overlayId;
|
|
103
104
|
var isDialogRole = role === 'dialog';
|
|
104
105
|
if (isDialogRole && (trigger === 'hover' || trigger !== null && trigger !== void 0 && trigger.includes('hover'))) {
|
|
105
106
|
console.warn("@procore/core-react: OverlayTigger has role ".concat(role, " and a hover trigger, this may cause weird focus management and is unrecommended. Review autoFocus prop."));
|
|
@@ -181,7 +182,8 @@ export var OverlayTrigger = /*#__PURE__*/React.forwardRef(function OverlayTrigge
|
|
|
181
182
|
};
|
|
182
183
|
}, [triggers, visibility.isVisible, delayedToggle]);
|
|
183
184
|
var triggerElement = typeof children === 'function' ? children(triggerApi) : children;
|
|
184
|
-
var
|
|
185
|
+
var defaultOverlayId = useId();
|
|
186
|
+
var overlayId = overlayIdProp !== null && overlayIdProp !== void 0 ? overlayIdProp : defaultOverlayId;
|
|
185
187
|
var _useOverlayTriggerA = useOverlayTriggerA11y({
|
|
186
188
|
canPropOverlayUp: /*#__PURE__*/React.isValidElement(overlay) && passA11yPropsToOverlay,
|
|
187
189
|
'aria-describedby': ariaDescribedby,
|