@procore/core-react 12.50.1 → 12.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +14 -0
- package/dist/AnchorNavigation/AnchorNavigation.styles.js +4 -4
- package/dist/Avatar/Avatar.styles.js +5 -5
- package/dist/AvatarStack/AvatarStack.styles.js +8 -8
- package/dist/Badge/Badge.styles.js +2 -2
- package/dist/BadgePill/BadgePill.styles.js +4 -4
- package/dist/Banner/Banner.styles.js +10 -10
- package/dist/Box/Box.styles.js +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.d.ts +15 -2
- package/dist/Breadcrumbs/Breadcrumbs.js +27 -4
- package/dist/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
- package/dist/Breadcrumbs/Breadcrumbs.types.d.ts +9 -0
- package/dist/Breadcrumbs/Breadcrumbs.types.js.map +1 -1
- package/dist/Button/Button.styles.js +11 -12
- package/dist/Button/Button.styles.js.map +1 -1
- package/dist/Calendar/Calendar.styles.js +9 -9
- package/dist/Card/Card.styles.js +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.styles.js +6 -6
- package/dist/DetailPage/DetailPage.styles.js +7 -7
- package/dist/Dropdown/Dropdown.styles.js +3 -3
- package/dist/DropdownFlyout/DropdownFlyout.helpers.d.ts +3 -0
- package/dist/DropdownFlyout/DropdownFlyout.helpers.js +30 -2
- package/dist/DropdownFlyout/DropdownFlyout.helpers.js.map +1 -1
- package/dist/DropdownFlyout/DropdownFlyout.js +7 -1
- package/dist/DropdownFlyout/DropdownFlyout.js.map +1 -1
- package/dist/DropdownFlyout/DropdownFlyout.styles.js +5 -5
- package/dist/DropdownFlyout/DropdownFlyout.styles.js.map +1 -1
- package/dist/DropdownFlyout/DropdownFlyout.types.d.ts +4 -0
- package/dist/DropdownFlyout/DropdownFlyout.types.js.map +1 -1
- package/dist/Dropzone/Dropzone.js +1 -1
- package/dist/Dropzone/Dropzone.styles.js +9 -9
- package/dist/EmptyState/EmptyState.styles.js +6 -6
- package/dist/Field/Field.styles.js +3 -3
- package/dist/FileList/FileList.styles.js +3 -3
- package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
- package/dist/FileSelect/FileSelect.styles.js +2 -2
- package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
- package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
- package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
- package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
- package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
- package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
- package/dist/FileToken/FileToken.styles.js +6 -6
- package/dist/FilterToken/FilterToken.styles.js +5 -5
- package/dist/FlexList/FlexList.styles.js +1 -1
- package/dist/Form/Form.styles.js +13 -13
- package/dist/Form/StyledFormikForm.styles.js +2 -2
- package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
- package/dist/Grid/Grid.styles.js +2 -2
- package/dist/GroupSelect/GroupSelect.styles.js +1 -1
- package/dist/Input/Input.styles.js +1 -1
- package/dist/Link/Link.styles.js +1 -1
- package/dist/ListPage/ListPage.styles.js +8 -8
- package/dist/Loader/Loader.styles.js +2 -2
- package/dist/Menu/Menu.js +7 -0
- package/dist/Menu/Menu.js.map +1 -1
- package/dist/Menu/Menu.types.d.ts +1 -0
- package/dist/Menu/Menu.types.js.map +1 -1
- package/dist/MenuImperative/MenuImperative.styles.d.ts +1 -0
- package/dist/MenuImperative/MenuImperative.styles.js +25 -22
- package/dist/MenuImperative/MenuImperative.styles.js.map +1 -1
- package/dist/MenuImperative/sensors.js +20 -4
- package/dist/MenuImperative/sensors.js.map +1 -1
- package/dist/Modal/Modal.styles.js +13 -13
- package/dist/MultiSelect/MultiSelect.styles.js +8 -8
- package/dist/NextMenu/NextMenu.styles.js +3 -3
- package/dist/NextTile/NextTile.styles.js +5 -5
- 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/PageLayout/PageLayout.styles.js +16 -16
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
- package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
- package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
- package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
- package/dist/Pagination/Pagination.styles.js +5 -5
- package/dist/Panel/Panel.styles.js +11 -11
- package/dist/Pill/Pill.styles.js +3 -3
- package/dist/PillSelect/PillSelect.styles.js +4 -4
- package/dist/Popover/Popover.styles.js +2 -2
- package/dist/Portal/Portal.styles.js +1 -1
- package/dist/ProgressBar/ProgressBar.styles.js +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 +7 -7
- package/dist/SegmentedController/SegmentedController.styles.js +4 -4
- package/dist/Select/Select.styles.js +8 -8
- package/dist/Semantic/Semantic.styles.js +9 -9
- package/dist/Slider/Slider.styles.js +5 -5
- package/dist/Spinner/Spinner.styles.js +7 -7
- package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
- package/dist/SuperSelect/SuperSelect.components.js +2 -0
- package/dist/SuperSelect/SuperSelect.components.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
- package/dist/SuperSelect/SuperSelect.styles.d.ts +1 -0
- package/dist/SuperSelect/SuperSelect.styles.js +79 -76
- package/dist/SuperSelect/SuperSelect.styles.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.types.d.ts +1 -0
- package/dist/SuperSelect/SuperSelect.types.js.map +1 -1
- package/dist/SuperSelect/useSuperSelect.js +1 -0
- package/dist/SuperSelect/useSuperSelect.js.map +1 -1
- package/dist/Switch/Switch.styles.js +4 -4
- package/dist/Table/Table.styles.js +29 -29
- package/dist/TableShelf/TableShelf.styles.js +5 -5
- package/dist/Tabs/Tabs.styles.js +16 -16
- package/dist/Tearsheet/Tearsheet.styles.js +5 -5
- package/dist/TextArea/TextArea.styles.js +1 -1
- package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
- package/dist/Thumbnail/Thumbnail.styles.js +21 -21
- 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 +5 -5
- package/dist/ToolHeader/ToolHeader.styles.js +6 -6
- package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
- package/dist/Tooltip/Tooltip.styles.js +3 -3
- package/dist/Tree/Tree.js +1 -1
- package/dist/Tree/Tree.styles.js +10 -10
- package/dist/Typeahead/Typeahead.styles.js +4 -4
- package/dist/Typography/Typography.styles.js +1 -1
- package/dist/Typography/Typography.table.story.js +2 -2
- package/dist/_hooks/I18n.d.ts +45 -9
- package/dist/_locales/de-DE.json +1 -1
- package/dist/_locales/en-AU.json +1 -1
- package/dist/_locales/en-CA.json +1 -1
- package/dist/_locales/en-GB.json +1 -1
- package/dist/_locales/en.json +1 -1
- package/dist/_locales/es-ES.json +1 -1
- package/dist/_locales/fr-CA.json +1 -1
- package/dist/_locales/fr-FR.json +1 -1
- package/dist/_locales/is-IS.json +1 -1
- package/dist/_locales/ja-JP.json +2 -2
- package/dist/_locales/nb-NO.json +1 -1
- package/dist/_locales/pl-PL.json +1 -1
- package/dist/_locales/pt-PT.json +1 -1
- package/dist/_locales/th-TH.json +1 -1
- package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
- package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
- package/dist/_storyHelpers_/primaryButtonThemeCssVars.d.ts +8 -0
- package/dist/_storyHelpers_/primaryButtonThemeCssVars.js +9 -0
- package/dist/_storyHelpers_/primaryButtonThemeCssVars.js.map +1 -0
- package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +4 -4
- package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
- package/dist/_typedoc/AvatarStack/AvatarStack.types.json +25 -25
- package/dist/_typedoc/Badge/Badge.types.json +6 -6
- package/dist/_typedoc/Banner/Banner.types.json +15 -15
- package/dist/_typedoc/Box/Box.types.json +68 -68
- package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +32 -10
- package/dist/_typedoc/Button/Button.types.json +14 -14
- 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 +14 -14
- package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
- package/dist/_typedoc/Dropdown/Dropdown.types.json +38 -38
- package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +41 -31
- package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
- package/dist/_typedoc/EmptyState/EmptyState.types.json +18 -18
- 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 +770 -770
- package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
- package/dist/_typedoc/Grid/Grid.types.json +8 -8
- package/dist/_typedoc/GroupSelect/GroupSelect.types.json +54 -54
- package/dist/_typedoc/Input/Input.types.json +2 -2
- package/dist/_typedoc/Link/Link.types.json +1 -1
- package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
- package/dist/_typedoc/Menu/Menu.types.json +62 -62
- package/dist/_typedoc/MenuImperative/MenuImperative.types.json +84 -84
- package/dist/_typedoc/Modal/Modal.types.json +48 -48
- package/dist/_typedoc/MultiSelect/MultiSelect.types.json +33 -33
- package/dist/_typedoc/NextTile/NextTile.types.json +33 -33
- package/dist/_typedoc/Notation/Notation.types.json +4 -4
- package/dist/_typedoc/NumberInput/NumberInput.types.json +52 -52
- package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +33 -33
- package/dist/_typedoc/PageLayout/PageLayout.types.json +39 -39
- package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
- package/dist/_typedoc/Panel/Panel.types.json +28 -28
- 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 +67 -67
- 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 +105 -105
- package/dist/_typedoc/Tabs/Tabs.types.json +23 -23
- 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 +15 -15
- 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/_typedoc/a11y-tips.json +1 -1
- package/dist/_utils/shadowDOM.d.ts +3 -0
- package/dist/_utils/shadowDOM.js +20 -0
- package/dist/_utils/shadowDOM.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
|
@@ -8,37 +8,37 @@ var cellSize = 36; // TODO one-off size
|
|
|
8
8
|
|
|
9
9
|
export var StyledContainer = /*#__PURE__*/styled.div.withConfig({
|
|
10
10
|
displayName: "StyledContainer",
|
|
11
|
-
componentId: "core-
|
|
11
|
+
componentId: "core-12_51_0__sc-1kkl86t-0"
|
|
12
12
|
})(["", ";display:inline-flex;flex-direction:column;padding:", "px ", "px ", "px;"], getTypographyIntent('small'), spacing.lg, spacing.md, spacing.md);
|
|
13
13
|
export var StyledPaginator = /*#__PURE__*/styled(Button).withConfig({
|
|
14
14
|
displayName: "StyledPaginator",
|
|
15
|
-
componentId: "core-
|
|
15
|
+
componentId: "core-12_51_0__sc-1kkl86t-1"
|
|
16
16
|
})(["flex:0 0 auto;"]);
|
|
17
17
|
export var StyledSelect = /*#__PURE__*/styled.div.withConfig({
|
|
18
18
|
displayName: "StyledSelect",
|
|
19
|
-
componentId: "core-
|
|
19
|
+
componentId: "core-12_51_0__sc-1kkl86t-2"
|
|
20
20
|
})(["display:inline-flex;flex:1 1 0;margin-left:", "px;> div{font-size:12px;}"], spacing.sm);
|
|
21
21
|
export var StyledNavigation = /*#__PURE__*/styled.div.withConfig({
|
|
22
22
|
displayName: "StyledNavigation",
|
|
23
|
-
componentId: "core-
|
|
23
|
+
componentId: "core-12_51_0__sc-1kkl86t-3"
|
|
24
24
|
})(["display:inline-flex;margin-bottom:", "px;", " + ", ",", " + ", "{margin-left:", "px;}"], spacing.sm, StyledPaginator, StyledSelect, StyledSelect, StyledPaginator, spacing.sm);
|
|
25
25
|
export var StyledCell = /*#__PURE__*/styled.div.withConfig({
|
|
26
26
|
displayName: "StyledCell",
|
|
27
|
-
componentId: "core-
|
|
27
|
+
componentId: "core-12_51_0__sc-1kkl86t-4"
|
|
28
28
|
})(["align-items:center;display:inline-flex;height:", "px;justify-content:center;width:", "px;"], cellSize, cellSize);
|
|
29
29
|
export var StyledDayHeaderCell = /*#__PURE__*/styled(StyledCell).withConfig({
|
|
30
30
|
displayName: "StyledDayHeaderCell",
|
|
31
|
-
componentId: "core-
|
|
31
|
+
componentId: "core-12_51_0__sc-1kkl86t-5"
|
|
32
32
|
})(["cursor:default;font-weight:", ";"], typographyWeights.semibold);
|
|
33
33
|
export var StyledCellButton = /*#__PURE__*/styled.button.attrs({
|
|
34
34
|
type: 'button'
|
|
35
35
|
}).withConfig({
|
|
36
36
|
displayName: "StyledCellButton",
|
|
37
|
-
componentId: "core-
|
|
37
|
+
componentId: "core-12_51_0__sc-1kkl86t-6"
|
|
38
38
|
})(["align-items:center;display:inline-flex;height:", "px;justify-content:center;width:", "px;cursor:pointer;border:none;background:none;padding:0;font:inherit;color:inherit;"], cellSize, cellSize);
|
|
39
39
|
export var StyledDayCell = /*#__PURE__*/styled(StyledCellButton).withConfig({
|
|
40
40
|
displayName: "StyledDayCell",
|
|
41
|
-
componentId: "core-
|
|
41
|
+
componentId: "core-12_51_0__sc-1kkl86t-7"
|
|
42
42
|
})(["", ""], function (_ref) {
|
|
43
43
|
var _ref$$disabled = _ref.$disabled,
|
|
44
44
|
$disabled = _ref$$disabled === void 0 ? false : _ref$$disabled,
|
|
@@ -61,6 +61,6 @@ export var StyledDayCell = /*#__PURE__*/styled(StyledCellButton).withConfig({
|
|
|
61
61
|
});
|
|
62
62
|
export var StyledWeekRow = /*#__PURE__*/styled.div.withConfig({
|
|
63
63
|
displayName: "StyledWeekRow",
|
|
64
|
-
componentId: "core-
|
|
64
|
+
componentId: "core-12_51_0__sc-1kkl86t-8"
|
|
65
65
|
})(["display:inline-flex;padding-bottom:2px;user-select:none;&:last-child{padding-bottom:0;}", "{&:first-child{border-top-left-radius:", "px;border-bottom-left-radius:", "px;}&:last-child{border-top-right-radius:", "px;border-bottom-right-radius:", "px;}}"], StyledCell, borderRadius.md, borderRadius.md, borderRadius.md, borderRadius.md);
|
|
66
66
|
//# sourceMappingURL=Calendar.styles.js.map
|
package/dist/Card/Card.styles.js
CHANGED
|
@@ -4,7 +4,7 @@ import { colors } from '../_styles/colors';
|
|
|
4
4
|
import { getShadow } from '../_styles/shadows';
|
|
5
5
|
export var StyledCardContainer = /*#__PURE__*/styled.div.withConfig({
|
|
6
6
|
displayName: "StyledCardContainer",
|
|
7
|
-
componentId: "core-
|
|
7
|
+
componentId: "core-12_51_0__sc-2fii7b-0"
|
|
8
8
|
})(["background-color:", ";border-radius:", "px;transition:box-shadow 0.2s ease-in-out;", " ", ""], colors.white, borderRadius.md, function (_ref) {
|
|
9
9
|
var $level = _ref.$level,
|
|
10
10
|
$shadowStrength = _ref.$shadowStrength;
|
|
@@ -9,7 +9,7 @@ export var dataQa = {
|
|
|
9
9
|
export var checkboxSize = 20;
|
|
10
10
|
export var StyledCheckboxContainer = /*#__PURE__*/styled.div.withConfig({
|
|
11
11
|
displayName: "StyledCheckboxContainer",
|
|
12
|
-
componentId: "core-
|
|
12
|
+
componentId: "core-12_51_0__sc-u63tye-0"
|
|
13
13
|
})(["color:", ";display:block;position:relative;& + &{margin-top:", "px;}"], colors.gray15, spacing.md);
|
|
14
14
|
function StyledIndeterminate() {
|
|
15
15
|
return css(["background-color:", ";content:'';height:2px;left:5px;position:absolute;top:9px;width:10px;border:none;"], colors.white);
|
|
@@ -48,18 +48,18 @@ function StyledFakeIndeterminate() {
|
|
|
48
48
|
}
|
|
49
49
|
export var StyledCheckboxLabelWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
50
50
|
displayName: "StyledCheckboxLabelWrapper",
|
|
51
|
-
componentId: "core-
|
|
51
|
+
componentId: "core-12_51_0__sc-u63tye-1"
|
|
52
52
|
})(["padding-left:", "px;min-height:", "px;position:relative;", ""], function (_ref) {
|
|
53
53
|
var $hasLabel = _ref.$hasLabel;
|
|
54
54
|
return $hasLabel ? checkboxSize + spacing.md : checkboxSize;
|
|
55
55
|
}, checkboxSize, getTypographyIntent('body'));
|
|
56
56
|
export var StyledCheckboxLabel = /*#__PURE__*/styled.label.withConfig({
|
|
57
57
|
displayName: "StyledCheckboxLabel",
|
|
58
|
-
componentId: "core-
|
|
58
|
+
componentId: "core-12_51_0__sc-u63tye-2"
|
|
59
59
|
})(["user-select:none;&:before{background-color:", ";border-radius:2px;border:2px solid ", ";content:'';display:inline-block;height:", "px;width:", "px;min-width:", "px;top:0;left:0;position:absolute;}"], colors.white, colors.gray50, checkboxSize, checkboxSize, checkboxSize);
|
|
60
60
|
export var StyledCheckboxInput = /*#__PURE__*/styled.input.withConfig({
|
|
61
61
|
displayName: "StyledCheckboxInput",
|
|
62
|
-
componentId: "core-
|
|
62
|
+
componentId: "core-12_51_0__sc-u63tye-3"
|
|
63
63
|
})(["left:0;opacity:0;position:absolute;top:0;&:disabled:checked + ", " > ", ":before{background-color:", ";border-color:", ";}&:disabled + ", " > ", ":before{background-color:", ";border-color:", ";}", " &:checked + ", " > ", "{&:before{background-color:", ";border-color:", ";color:", ";}&:after{", "}}&:focus:not(:disabled),&[data-qa=", "]:not(:disabled){+ ", " > ", ":before{", "}}", ""], StyledCheckboxLabelWrapper, StyledCheckboxLabel, colors.blue85, colors.blue85, StyledCheckboxLabelWrapper, StyledCheckboxLabel, function (_ref2) {
|
|
64
64
|
var $indeterminate = _ref2.$indeterminate;
|
|
65
65
|
return $indeterminate ? colors.gray85 : colors.white;
|
|
@@ -83,7 +83,7 @@ export var StyledCheckboxInput = /*#__PURE__*/styled.input.withConfig({
|
|
|
83
83
|
});
|
|
84
84
|
export var StyledFakeCheckboxLabel = /*#__PURE__*/styled.span.withConfig({
|
|
85
85
|
displayName: "StyledFakeCheckboxLabel",
|
|
86
|
-
componentId: "core-
|
|
86
|
+
componentId: "core-12_51_0__sc-u63tye-4"
|
|
87
87
|
})(["", " display:block;min-height:", "px;padding-left:", "px;position:relative;user-select:none;cursor:pointer;", ""], getTypographyIntent('body'), checkboxSize, function (_ref7) {
|
|
88
88
|
var children = _ref7.children;
|
|
89
89
|
return children ? checkboxSize + spacing.md : checkboxSize;
|
|
@@ -99,7 +99,7 @@ export var StyledFakeCheckboxLabel = /*#__PURE__*/styled.span.withConfig({
|
|
|
99
99
|
});
|
|
100
100
|
export var StyledFakeCheckboxInput = /*#__PURE__*/styled.div.withConfig({
|
|
101
101
|
displayName: "StyledFakeCheckboxInput",
|
|
102
|
-
componentId: "core-
|
|
102
|
+
componentId: "core-12_51_0__sc-u63tye-5"
|
|
103
103
|
})(["width:", "px;height:", "px;border-radius:2px;border:2px solid ", ";position:absolute;", " ", " ", " ", ""], checkboxSize, checkboxSize, colors.gray70, function (_ref9) {
|
|
104
104
|
var $checked = _ref9.$checked,
|
|
105
105
|
$disabled = _ref9.$disabled,
|
|
@@ -7,23 +7,23 @@ import { getLineClamp } from '../_styles/mixins';
|
|
|
7
7
|
import { spacing } from '../_styles/spacing';
|
|
8
8
|
export var ContactItemAvatarWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
9
9
|
displayName: "ContactItemAvatarWrapper",
|
|
10
|
-
componentId: "core-
|
|
10
|
+
componentId: "core-12_51_0__sc-1c4z9pn-0"
|
|
11
11
|
})(["display:inline-flex;align-self:flex-start;"]);
|
|
12
12
|
export var ContactItemAvatar = /*#__PURE__*/styled(Avatar).withConfig({
|
|
13
13
|
displayName: "ContactItemAvatar",
|
|
14
|
-
componentId: "core-
|
|
14
|
+
componentId: "core-12_51_0__sc-1c4z9pn-1"
|
|
15
15
|
})(["cursor:inherit;font-weight:", ";"], typographyWeights.bold);
|
|
16
16
|
export var ContactItemTextWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
17
17
|
displayName: "ContactItemTextWrapper",
|
|
18
|
-
componentId: "core-
|
|
18
|
+
componentId: "core-12_51_0__sc-1c4z9pn-2"
|
|
19
19
|
})(["overflow:hidden;margin-left:", "px;"], spacing.sm);
|
|
20
20
|
export var ContactItemText = /*#__PURE__*/styled(Typography).withConfig({
|
|
21
21
|
displayName: "ContactItemText",
|
|
22
|
-
componentId: "core-
|
|
22
|
+
componentId: "core-12_51_0__sc-1c4z9pn-3"
|
|
23
23
|
})(["display:flex;", ""], getLineClamp());
|
|
24
24
|
export var ContactItemWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
25
25
|
displayName: "ContactItemWrapper",
|
|
26
|
-
componentId: "core-
|
|
26
|
+
componentId: "core-12_51_0__sc-1c4z9pn-4"
|
|
27
27
|
})(["display:flex;flex-direction:row;align-items:center;padding:", "px ", "px ", "px ", "px;", " ", " ", ""], spacing.sm, spacing.lg, spacing.sm, spacing.sm, function (_ref) {
|
|
28
28
|
var $disabled = _ref.$disabled,
|
|
29
29
|
$clickable = _ref.$clickable;
|
|
@@ -5,10 +5,10 @@ import { mediaIE11Hack } from '../_styles/media';
|
|
|
5
5
|
import { spacing } from '../_styles/spacing';
|
|
6
6
|
export var StyledContent = /*#__PURE__*/styled(Box).withConfig({
|
|
7
7
|
displayName: "StyledContent",
|
|
8
|
-
componentId: "core-
|
|
8
|
+
componentId: "core-12_51_0__sc-10y57gh-0"
|
|
9
9
|
})(["> * + *,> * + h1,> * + h2,> * + h3,> * + h4,> * + p,> * + ul,> * + ol{margin-top:", "px;}> ", " + *{margin-top:0;}> ", ",> ", " > ", ",> ", "{", "{min-height:0;margin-bottom:", "px;}&:last-child ", "{margin-bottom:0;}}"], spacing.lg, StyledFormRow, StyledFormRow, StyledForm, StyledFormRow, StyledFormRow, StyledFormFieldBanner, spacing.md, StyledFormFieldBanner);
|
|
10
10
|
export var StyledActions = /*#__PURE__*/styled(Box).withConfig({
|
|
11
11
|
displayName: "StyledActions",
|
|
12
|
-
componentId: "core-
|
|
12
|
+
componentId: "core-12_51_0__sc-10y57gh-1"
|
|
13
13
|
})(["display:flex;justify-content:flex-end;gap:", "px;@media ", "{& > * + *{margin-left:", "px;}}"], spacing.sm, mediaIE11Hack, spacing.sm);
|
|
14
14
|
//# sourceMappingURL=Content.styles.js.map
|
|
@@ -10,15 +10,15 @@ var inputHeight = 36; // TODO one-off
|
|
|
10
10
|
var disabledCss = /*#__PURE__*/css(["background-color:", ";color:", ";border-width:1px;border-style:solid;border-color:", ";pointer-events:none;svg{color:", ";}"], colors.gray94, colors.gray45, colors.gray50, colors.gray45);
|
|
11
11
|
export var StyledCalendar = /*#__PURE__*/styled(Calendar).withConfig({
|
|
12
12
|
displayName: "StyledCalendar",
|
|
13
|
-
componentId: "core-
|
|
13
|
+
componentId: "core-12_51_0__sc-w10btf-0"
|
|
14
14
|
})(["color:", ";"], colors.gray45);
|
|
15
15
|
export var StyledDateSegmentsContainer = /*#__PURE__*/styled.div.withConfig({
|
|
16
16
|
displayName: "StyledDateSegmentsContainer",
|
|
17
|
-
componentId: "core-
|
|
17
|
+
componentId: "core-12_51_0__sc-w10btf-1"
|
|
18
18
|
})(["min-width:104px;display:flex;gap:", "px;"], spacing.xs);
|
|
19
19
|
export var StyledDateInputSegment = /*#__PURE__*/styled.div.withConfig({
|
|
20
20
|
displayName: "StyledDateInputSegment",
|
|
21
|
-
componentId: "core-
|
|
21
|
+
componentId: "core-12_51_0__sc-w10btf-2"
|
|
22
22
|
})(["", " outline:none;text-align:center;&:focus{background-color:", ";}&::selection{background-color:transparent;}&[data-placeholder='true']{color:", ";}"], getTypographyIntent('body'), colors.blue96, function (_ref) {
|
|
23
23
|
var $disabled = _ref.$disabled;
|
|
24
24
|
return $disabled ? colors.gray70 : colors.gray45;
|
|
@@ -29,15 +29,15 @@ export var StyledDateInputDelimiter = /*#__PURE__*/styled.span.attrs(function (p
|
|
|
29
29
|
};
|
|
30
30
|
}).withConfig({
|
|
31
31
|
displayName: "StyledDateInputDelimiter",
|
|
32
|
-
componentId: "core-
|
|
32
|
+
componentId: "core-12_51_0__sc-w10btf-3"
|
|
33
33
|
})(["", " user-select:none;"], getTypographyIntent('body'));
|
|
34
34
|
export var StyledDateInputIconContainer = /*#__PURE__*/styled.div.withConfig({
|
|
35
35
|
displayName: "StyledDateInputIconContainer",
|
|
36
|
-
componentId: "core-
|
|
36
|
+
componentId: "core-12_51_0__sc-w10btf-4"
|
|
37
37
|
})(["display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;margin:0 0 0 ", "px;height:24px;width:24px;"], spacing.xs);
|
|
38
38
|
export var StyledDateInput = /*#__PURE__*/styled.div.withConfig({
|
|
39
39
|
displayName: "StyledDateInput",
|
|
40
|
-
componentId: "core-
|
|
40
|
+
componentId: "core-12_51_0__sc-w10btf-5"
|
|
41
41
|
})(["align-items:center;border-color:", ";border-radius:4px;border-style:solid;border-width:1px;display:inline-flex;flex-direction:row;height:", "px;justify-content:center;padding:0 ", "px 0 ", "px;&::placeholder{color:", ";}", " &:focus-within,&[data-qa=", "]{", ";}&:disabled{", "}", " ", ""], colors.gray50, inputHeight, spacing.xs, spacing.sm, colors.gray45, function (_ref2) {
|
|
42
42
|
var $error = _ref2.$error;
|
|
43
43
|
return !$error && css(["&:hover,&[data-qa=", "]{border-color:", ";}"], dataQa.hovered, colors.gray20);
|
|
@@ -9,32 +9,32 @@ import { colors } from '../_styles/colors';
|
|
|
9
9
|
import { spacing } from '../_styles/spacing';
|
|
10
10
|
export var StyledDetailPage = /*#__PURE__*/styled.div.withConfig({
|
|
11
11
|
displayName: "StyledDetailPage",
|
|
12
|
-
componentId: "core-
|
|
12
|
+
componentId: "core-12_51_0__sc-cytnlo-0"
|
|
13
13
|
})(["background-color:", ";height:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;"], colors.gray96);
|
|
14
14
|
export var StyledDetailPageBody = /*#__PURE__*/styled.div.withConfig({
|
|
15
15
|
displayName: "StyledDetailPageBody",
|
|
16
|
-
componentId: "core-
|
|
16
|
+
componentId: "core-12_51_0__sc-cytnlo-1"
|
|
17
17
|
})(["padding-bottom:", "px;> ", "{margin-top:", "px;}"], spacing.xl, StyledRequiredContainer, spacing.lg);
|
|
18
18
|
export var StyledDetailPageFooterNotation = /*#__PURE__*/styled.div.withConfig({
|
|
19
19
|
displayName: "StyledDetailPageFooterNotation",
|
|
20
|
-
componentId: "core-
|
|
20
|
+
componentId: "core-12_51_0__sc-cytnlo-2"
|
|
21
21
|
})(["flex-grow:1;z-index:1;"]);
|
|
22
22
|
export var StyledDetailPageFooter = /*#__PURE__*/styled(Page.Footer).withConfig({
|
|
23
23
|
displayName: "StyledDetailPageFooter",
|
|
24
|
-
componentId: "core-
|
|
24
|
+
componentId: "core-12_51_0__sc-cytnlo-3"
|
|
25
25
|
})(["display:flex;padding:", "px 0;background-color:", ";justify-content:center;"], spacing.lg, colors.white);
|
|
26
26
|
export var StyledDetailPageFooterActions = /*#__PURE__*/styled(Box).withConfig({
|
|
27
27
|
displayName: "StyledDetailPageFooterActions",
|
|
28
|
-
componentId: "core-
|
|
28
|
+
componentId: "core-12_51_0__sc-cytnlo-4"
|
|
29
29
|
})(["", ""], getActions());
|
|
30
30
|
var maxFooterContentWidth = 1920;
|
|
31
31
|
export var StyledDetailPageFooterContent = /*#__PURE__*/styled.div.withConfig({
|
|
32
32
|
displayName: "StyledDetailPageFooterContent",
|
|
33
|
-
componentId: "core-
|
|
33
|
+
componentId: "core-12_51_0__sc-cytnlo-5"
|
|
34
34
|
})(["width:100%;align-items:center;display:flex;justify-content:flex-end;padding:0 ", "px;max-width:", "px;"], spacing.xl, maxFooterContentWidth);
|
|
35
35
|
var detailPageCardBorderRadius = 8;
|
|
36
36
|
export var StyledDetailPageCard = /*#__PURE__*/styled(Card).withConfig({
|
|
37
37
|
displayName: "StyledDetailPageCard",
|
|
38
|
-
componentId: "core-
|
|
38
|
+
componentId: "core-12_51_0__sc-cytnlo-6"
|
|
39
39
|
})(["width:100%;border-radius:", "px;margin-top:", "px;margin-bottom:", "px;& + &{margin-top:", "px;}&:first-child{margin-top:0;}&:last-child{margin-bottom:", "px;}& > ", "{padding:", "px ", "px 0 ", "px;max-width:100%;&:empty{padding:0;}}& > ", " + ", " > ", "{border-top:0;}> .", ":first-child + .", ",> ", " + .", " + .", "{margin-top:", "px;}"], detailPageCardBorderRadius, spacing.lg, spacing.sm, spacing.sm, spacing.lg, StyledPageBanner, spacing.lg, spacing.lg, spacing.lg, StyledPageBanner, StyledSection, StyledSectionInner, sectionClassnames.levelAnonymous, sectionClassnames.level(2), StyledPageBanner, sectionClassnames.levelAnonymous, sectionClassnames.level(2), spacing.xxl * -1);
|
|
40
40
|
//# sourceMappingURL=DetailPage.styles.js.map
|
|
@@ -5,15 +5,15 @@ import { Card } from '../Card/Card';
|
|
|
5
5
|
import { Spinner } from '../Spinner/Spinner';
|
|
6
6
|
export var StyledDropdownMenu = /*#__PURE__*/styled(Card).withConfig({
|
|
7
7
|
displayName: "StyledDropdownMenu",
|
|
8
|
-
componentId: "core-
|
|
8
|
+
componentId: "core-12_51_0__sc-ufsy2q-0"
|
|
9
9
|
})(["display:flex;max-height:40vh;max-width:248px;min-width:inherit;"]);
|
|
10
10
|
export var StyledDropdownSpinner = /*#__PURE__*/styled(Spinner).withConfig({
|
|
11
11
|
displayName: "StyledDropdownSpinner",
|
|
12
|
-
componentId: "core-
|
|
12
|
+
componentId: "core-12_51_0__sc-ufsy2q-1"
|
|
13
13
|
})(["margin:0 6px;"]);
|
|
14
14
|
export var StyledDropdownButton = /*#__PURE__*/styled(Button).withConfig({
|
|
15
15
|
displayName: "StyledDropdownButton",
|
|
16
|
-
componentId: "core-
|
|
16
|
+
componentId: "core-12_51_0__sc-ufsy2q-2"
|
|
17
17
|
})(["pointer-events:", ";", ""], function (_ref) {
|
|
18
18
|
var disabled = _ref.disabled,
|
|
19
19
|
$loading = _ref.$loading;
|
|
@@ -8,6 +8,7 @@ export declare function useDropdownFlyout({ flyoutOptions, onClick: _onClick, on
|
|
|
8
8
|
flyoutOptions: FlyoutOption[];
|
|
9
9
|
}): {
|
|
10
10
|
isFocused: boolean;
|
|
11
|
+
isFocusVisible: (option: FlyoutOption) => boolean;
|
|
11
12
|
isMouseOver: boolean;
|
|
12
13
|
isOpen: boolean;
|
|
13
14
|
options: FlyoutOption[];
|
|
@@ -32,6 +33,7 @@ export declare const DropdownFlyoutContext: React.Context<{
|
|
|
32
33
|
collapse: (option: FlyoutOption) => void;
|
|
33
34
|
optionRenderer: (option: DropdownOption) => React.ReactNode;
|
|
34
35
|
isExpanded: (option: FlyoutOption) => boolean;
|
|
36
|
+
isFocusVisible: (option: FlyoutOption) => boolean;
|
|
35
37
|
isHighlighted: (option: FlyoutOption) => boolean;
|
|
36
38
|
}>;
|
|
37
39
|
export declare const useDropdownFlyoutContext: () => {
|
|
@@ -40,5 +42,6 @@ export declare const useDropdownFlyoutContext: () => {
|
|
|
40
42
|
collapse: (option: FlyoutOption) => void;
|
|
41
43
|
optionRenderer: (option: DropdownOption) => React.ReactNode;
|
|
42
44
|
isExpanded: (option: FlyoutOption) => boolean;
|
|
45
|
+
isFocusVisible: (option: FlyoutOption) => boolean;
|
|
43
46
|
isHighlighted: (option: FlyoutOption) => boolean;
|
|
44
47
|
};
|
|
@@ -59,12 +59,17 @@ function reducer(state, action) {
|
|
|
59
59
|
});
|
|
60
60
|
case 'setMouseOver':
|
|
61
61
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
62
|
-
isMouseOver: action.isMouseOver
|
|
62
|
+
isMouseOver: action.isMouseOver,
|
|
63
|
+
keyboardNavigated: action.isMouseOver ? false : state.keyboardNavigated
|
|
63
64
|
});
|
|
64
65
|
case 'setFocused':
|
|
65
66
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
66
67
|
isFocused: action.isFocused
|
|
67
68
|
});
|
|
69
|
+
case 'setKeyboardNavigated':
|
|
70
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
71
|
+
keyboardNavigated: true
|
|
72
|
+
});
|
|
68
73
|
case 'updateOptions':
|
|
69
74
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
70
75
|
options: action.options
|
|
@@ -116,7 +121,8 @@ export function useDropdownFlyout(_ref) {
|
|
|
116
121
|
highlighted: getFirst(flyoutOptions),
|
|
117
122
|
isMouseOver: false,
|
|
118
123
|
isFocused: false,
|
|
119
|
-
isOpen: false
|
|
124
|
+
isOpen: false,
|
|
125
|
+
keyboardNavigated: false
|
|
120
126
|
}),
|
|
121
127
|
_React$useReducer2 = _slicedToArray(_React$useReducer, 2),
|
|
122
128
|
_React$useReducer2$ = _React$useReducer2[0],
|
|
@@ -126,6 +132,7 @@ export function useDropdownFlyout(_ref) {
|
|
|
126
132
|
isOpen = _React$useReducer2$.isOpen,
|
|
127
133
|
isMouseOver = _React$useReducer2$.isMouseOver,
|
|
128
134
|
isFocused = _React$useReducer2$.isFocused,
|
|
135
|
+
keyboardNavigated = _React$useReducer2$.keyboardNavigated,
|
|
129
136
|
dispatch = _React$useReducer2[1];
|
|
130
137
|
var setMouseOver = React.useCallback(function (isMouseOver) {
|
|
131
138
|
return dispatch({
|
|
@@ -149,6 +156,13 @@ export function useDropdownFlyout(_ref) {
|
|
|
149
156
|
});
|
|
150
157
|
return (isMouseOver || isFocused) && isCorrectId;
|
|
151
158
|
};
|
|
159
|
+
var isFocusVisible = function isFocusVisible(option) {
|
|
160
|
+
var parentIds = collectParentIds(options, highlighted.id);
|
|
161
|
+
var isCorrectId = option.id === highlighted.id || parentIds.some(function (id) {
|
|
162
|
+
return id === option.id;
|
|
163
|
+
});
|
|
164
|
+
return keyboardNavigated && isCorrectId;
|
|
165
|
+
};
|
|
152
166
|
var findOptionById = React.useCallback(function (id) {
|
|
153
167
|
return findById(options, id);
|
|
154
168
|
}, [options]);
|
|
@@ -232,9 +246,15 @@ export function useDropdownFlyout(_ref) {
|
|
|
232
246
|
case 'Enter':
|
|
233
247
|
e.preventDefault();
|
|
234
248
|
if (!isOpen && isFocused) {
|
|
249
|
+
dispatch({
|
|
250
|
+
type: 'setKeyboardNavigated'
|
|
251
|
+
});
|
|
235
252
|
openDropdown();
|
|
236
253
|
} else {
|
|
237
254
|
if (hasChildren(highlighted.origin)) {
|
|
255
|
+
dispatch({
|
|
256
|
+
type: 'setKeyboardNavigated'
|
|
257
|
+
});
|
|
238
258
|
traversingHighlight('children');
|
|
239
259
|
} else {
|
|
240
260
|
onClick(highlighted);
|
|
@@ -259,11 +279,17 @@ export function useDropdownFlyout(_ref) {
|
|
|
259
279
|
case 'ArrowDown':
|
|
260
280
|
case 'Down':
|
|
261
281
|
e.preventDefault();
|
|
282
|
+
dispatch({
|
|
283
|
+
type: 'setKeyboardNavigated'
|
|
284
|
+
});
|
|
262
285
|
traversingHighlight('next');
|
|
263
286
|
break;
|
|
264
287
|
case 'ArrowUp':
|
|
265
288
|
case 'Up':
|
|
266
289
|
e.preventDefault();
|
|
290
|
+
dispatch({
|
|
291
|
+
type: 'setKeyboardNavigated'
|
|
292
|
+
});
|
|
267
293
|
traversingHighlight('prev');
|
|
268
294
|
break;
|
|
269
295
|
}
|
|
@@ -283,6 +309,7 @@ export function useDropdownFlyout(_ref) {
|
|
|
283
309
|
}, [flyoutOptions]);
|
|
284
310
|
return {
|
|
285
311
|
isFocused: isFocused,
|
|
312
|
+
isFocusVisible: isFocusVisible,
|
|
286
313
|
isMouseOver: isMouseOver,
|
|
287
314
|
isOpen: isOpen,
|
|
288
315
|
options: options,
|
|
@@ -312,6 +339,7 @@ export var DropdownFlyoutContext = /*#__PURE__*/React.createContext({
|
|
|
312
339
|
collapse: noop,
|
|
313
340
|
optionRenderer: defaultOptionRenderer,
|
|
314
341
|
isExpanded: returnFalse,
|
|
342
|
+
isFocusVisible: returnFalse,
|
|
315
343
|
isHighlighted: returnFalse
|
|
316
344
|
});
|
|
317
345
|
export var useDropdownFlyoutContext = function useDropdownFlyoutContext() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownFlyout.helpers.js","names":["React","ulid","StyledDropdownFlyoutExpandIcon","StyledDropdownFlyoutLabel","rootId","noop","returnFalse","getFirst","arr","isRootOption","optionId","hasChildren","option","Array","isArray","children","reducer","state","action","type","_objectSpread","highlighted","expanded","concat","_toConsumableArray","collectParentIds","options","id","isOpen","isMouseOver","isFocused","findById","initialValue","arguments","length","undefined","reduce","result","current","transformOption","parentId","acc","updatedOption","origin","useDropdownFlyout","_ref","flyoutOptions","_ref$onClick","onClick","_onClick","_onKeyDown","onKeyDown","_React$useReducer","useReducer","_React$useReducer2","_slicedToArray","_React$useReducer2$","dispatch","setMouseOver","useCallback","setFocused","isExpanded","includes","isHighlighted","parentIds","isCorrectId","some","findOptionById","expand","collapse","highlight","traversingHighlight","item","tier","optionIndex","findIndex","nextIndex","prevIndex","parentOption","closeDropdown","closeSelectedDropdown","e","composedPath","node","_dataset","dataset","flyout","openDropdown","key","preventDefault","_e$stopPropagation","stopPropagation","call","_e$stopPropagation2","useEffect","defaultOptionRenderer","createElement","Fragment","label","DropdownFlyoutContext","createContext","optionRenderer","useDropdownFlyoutContext","useContext"],"sources":["../../src/DropdownFlyout/DropdownFlyout.helpers.tsx"],"sourcesContent":["import React from 'react'\nimport { ulid } from 'ulid'\nimport {\n StyledDropdownFlyoutExpandIcon,\n StyledDropdownFlyoutLabel,\n} from './DropdownFlyout.styles'\nimport type {\n Action,\n DropdownFlyoutProps,\n DropdownOption,\n FlyoutOption,\n FlyoutOptionId,\n State,\n} from './DropdownFlyout.types'\nimport { rootId } from './DropdownFlyout.types'\n\nexport function noop() {}\n\nexport function returnFalse() {\n return false\n}\n\nfunction getFirst<T extends any>(arr: T[]) {\n return arr[0]\n}\nfunction isRootOption(optionId: FlyoutOptionId) {\n return optionId === rootId\n}\n\nexport function hasChildren(option: DropdownOption) {\n return Array.isArray(option.children)\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'highlight':\n return {\n ...state,\n highlighted: action.option,\n }\n case 'expand':\n return {\n ...state,\n highlighted: action.option,\n expanded: [\n ...collectParentIds(state.options, action.option.id),\n action.option.id,\n ],\n }\n case 'collapse':\n return {\n ...state,\n highlighted: action.option,\n expanded: collectParentIds(state.options, action.option.id),\n }\n case 'close':\n return {\n ...state,\n expanded: [],\n highlighted: getFirst(state.options),\n isOpen: false,\n }\n case 'open':\n return {\n ...state,\n isOpen: true,\n }\n case 'setMouseOver':\n return {\n ...state,\n isMouseOver: action.isMouseOver,\n }\n case 'setFocused':\n return {\n ...state,\n isFocused: action.isFocused,\n }\n case 'updateOptions':\n return {\n ...state,\n options: action.options,\n }\n default:\n return state\n }\n}\n\nfunction findById(\n options: FlyoutOption[],\n optionId: FlyoutOption['id'],\n initialValue: FlyoutOption = getFirst(options)\n): FlyoutOption {\n return options.reduce((result, current) => {\n if (current.id === optionId) {\n return current\n }\n\n if (current.children) {\n return findById(current.children, optionId, result)\n }\n\n return result\n }, initialValue)\n}\n\nexport function transformOption(\n options: DropdownOption[],\n parentId: FlyoutOption['parentId']\n): FlyoutOption[] {\n return options.reduce<FlyoutOption[]>((acc, option) => {\n const id = ulid()\n const updatedOption = {\n id,\n parentId,\n origin: option,\n ...(Array.isArray(option.children) && {\n children: transformOption(option.children, id),\n }),\n }\n\n return [...acc, updatedOption]\n }, [])\n}\n\nfunction collectParentIds(\n options: FlyoutOption[],\n optionId: FlyoutOption['id']\n): FlyoutOption['id'][] {\n const option = findById(options, optionId)\n\n if (!isRootOption(option.parentId)) {\n return [...collectParentIds(options, option.parentId), option.parentId]\n }\n return [option.parentId]\n}\n\nexport function useDropdownFlyout({\n flyoutOptions,\n onClick: _onClick = noop,\n onKeyDown: _onKeyDown,\n}: Pick<DropdownFlyoutProps, 'onClick' | 'onKeyDown'> & {\n flyoutOptions: FlyoutOption[]\n}) {\n const [\n { options, expanded, highlighted, isOpen, isMouseOver, isFocused },\n dispatch,\n ] = React.useReducer(reducer, {\n options: flyoutOptions,\n expanded: [],\n highlighted: getFirst(flyoutOptions),\n isMouseOver: false,\n isFocused: false,\n isOpen: false,\n })\n\n const setMouseOver = React.useCallback(\n (isMouseOver: boolean) => dispatch({ type: 'setMouseOver', isMouseOver }),\n []\n )\n\n const setFocused = React.useCallback(\n (isFocused: boolean) => dispatch({ type: 'setFocused', isFocused }),\n []\n )\n\n const isExpanded = (option: FlyoutOption) => expanded.includes(option.id)\n\n const isHighlighted = (option: FlyoutOption): boolean => {\n const parentIds = collectParentIds(options, highlighted.id)\n const isCorrectId =\n option.id === highlighted.id || parentIds.some((id) => id === option.id)\n return (isMouseOver || isFocused) && isCorrectId\n }\n\n const findOptionById = React.useCallback(\n (id: FlyoutOptionId) => findById(options, id),\n [options]\n )\n\n const expand = React.useCallback(\n (option: FlyoutOption) =>\n dispatch({\n type: 'expand',\n option,\n }),\n []\n )\n\n const collapse = React.useCallback(\n (option: FlyoutOption) =>\n dispatch({\n type: 'collapse',\n option,\n }),\n []\n )\n\n const highlight = React.useCallback(\n (option: FlyoutOption) =>\n dispatch({\n type: 'highlight',\n option,\n }),\n []\n )\n\n const traversingHighlight = React.useCallback(\n (item: 'next' | 'prev' | 'children' | 'parent') => {\n const tier = isRootOption(highlighted.parentId)\n ? options\n : findOptionById(highlighted.parentId).children || []\n const optionIndex = tier.findIndex((item) => item.id === highlighted.id)\n\n switch (item) {\n case 'next':\n const nextIndex = optionIndex + 1 >= tier.length ? 0 : optionIndex + 1\n\n highlight(tier[nextIndex])\n break\n case 'prev':\n const prevIndex =\n optionIndex - 1 < 0 ? tier.length - 1 : optionIndex - 1\n\n highlight(tier[prevIndex])\n break\n case 'children':\n if (Array.isArray(highlighted.children)) {\n expand(highlighted)\n\n highlight(getFirst(highlighted.children))\n }\n break\n case 'parent':\n if (!isRootOption(highlighted.parentId)) {\n const parentOption = findOptionById(highlighted.parentId)\n collapse(parentOption)\n }\n break\n default:\n return\n }\n },\n [options, findOptionById, collapse, highlighted, expand, highlight]\n )\n\n const closeDropdown = React.useCallback(() => {\n dispatch({ type: 'close' })\n }, [])\n\n const closeSelectedDropdown = React.useCallback(\n (e: Event | React.FocusEvent) => {\n if (\n e &&\n (e.type === 'click' || e.type === 'mouseup') &&\n !(e as MouseEvent)\n .composedPath()\n .some((node) => (node as HTMLElement).dataset?.flyout)\n ) {\n dispatch({ type: 'close' })\n }\n },\n []\n )\n\n const openDropdown = React.useCallback(() => {\n dispatch({ type: 'open' })\n }, [])\n\n const onClick = React.useCallback(\n (option: FlyoutOption) => {\n if (!hasChildren(option.origin)) {\n _onClick(option.origin)\n closeDropdown()\n }\n },\n [_onClick, closeDropdown]\n )\n\n const onKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const { key } = e\n\n switch (key) {\n case 'Enter':\n e.preventDefault()\n if (!isOpen && isFocused) {\n openDropdown()\n } else {\n if (hasChildren(highlighted.origin)) {\n traversingHighlight('children')\n } else {\n onClick(highlighted)\n }\n }\n break\n case 'Escape':\n case 'Esc':\n e.preventDefault()\n if (isRootOption(highlighted.parentId)) {\n if (isOpen) {\n e.stopPropagation?.()\n }\n closeDropdown()\n } else {\n e.stopPropagation?.()\n traversingHighlight('parent')\n }\n break\n case 'ArrowDown':\n case 'Down':\n e.preventDefault()\n traversingHighlight('next')\n break\n case 'ArrowUp':\n case 'Up':\n e.preventDefault()\n traversingHighlight('prev')\n break\n }\n _onKeyDown?.(e)\n },\n [\n closeDropdown,\n openDropdown,\n traversingHighlight,\n highlighted,\n isOpen,\n isFocused,\n onClick,\n _onKeyDown,\n ]\n )\n // There was an issue that was fixed in scope of UISP-215 https://procoretech.atlassian.net/browse/UISP-215\n // UseEffect is necessary for updating state in UseReducer because props don't automatically update state. (In this case: property \"options\")\n React.useEffect(() => {\n dispatch({ type: 'updateOptions', options: flyoutOptions })\n dispatch({ type: 'highlight', option: getFirst(flyoutOptions) })\n }, [flyoutOptions])\n\n return {\n isFocused,\n isMouseOver,\n isOpen,\n options,\n expanded,\n highlighted,\n expand,\n collapse,\n isHighlighted,\n isExpanded,\n closeDropdown,\n closeSelectedDropdown,\n openDropdown,\n onKeyDown,\n onClick,\n setMouseOver,\n setFocused,\n }\n}\n\nexport function defaultOptionRenderer(option: DropdownOption) {\n return (\n <>\n <StyledDropdownFlyoutLabel>{option.label}</StyledDropdownFlyoutLabel>\n {hasChildren(option) && (\n <StyledDropdownFlyoutExpandIcon data-qa=\"core-dropdown-flyout-option-expand-icon\" />\n )}\n </>\n )\n}\n\nexport const DropdownFlyoutContext = React.createContext<{\n onClick: (option: FlyoutOption) => void\n\n expand: (option: FlyoutOption) => void\n collapse: (option: FlyoutOption) => void\n optionRenderer: (option: DropdownOption) => React.ReactNode\n\n isExpanded: (option: FlyoutOption) => boolean\n isHighlighted: (option: FlyoutOption) => boolean\n}>({\n onClick: noop,\n\n expand: noop,\n collapse: noop,\n optionRenderer: defaultOptionRenderer,\n\n isExpanded: returnFalse,\n isHighlighted: returnFalse,\n})\n\nexport const useDropdownFlyoutContext = () =>\n React.useContext(DropdownFlyoutContext)\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,MAAM;AAC3B,SACEC,8BAA8B,EAC9BC,yBAAyB,QACpB,yBAAyB;AAShC,SAASC,MAAM,QAAQ,wBAAwB;AAE/C,OAAO,SAASC,IAAIA,CAAA,EAAG,CAAC;AAExB,OAAO,SAASC,WAAWA,CAAA,EAAG;EAC5B,OAAO,KAAK;AACd;AAEA,SAASC,QAAQA,CAAgBC,GAAQ,EAAE;EACzC,OAAOA,GAAG,CAAC,CAAC,CAAC;AACf;AACA,SAASC,YAAYA,CAACC,QAAwB,EAAE;EAC9C,OAAOA,QAAQ,KAAKN,MAAM;AAC5B;AAEA,OAAO,SAASO,WAAWA,CAACC,MAAsB,EAAE;EAClD,OAAOC,KAAK,CAACC,OAAO,CAACF,MAAM,CAACG,QAAQ,CAAC;AACvC;AAEA,SAASC,OAAOA,CAACC,KAAY,EAAEC,MAAc,EAAS;EACpD,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,WAAW;MACd,OAAAC,aAAA,CAAAA,aAAA,KACKH,KAAK;QACRI,WAAW,EAAEH,MAAM,CAACN;MAAM;IAE9B,KAAK,QAAQ;MACX,OAAAQ,aAAA,CAAAA,aAAA,KACKH,KAAK;QACRI,WAAW,EAAEH,MAAM,CAACN,MAAM;QAC1BU,QAAQ,KAAAC,MAAA,CAAAC,kBAAA,CACHC,gBAAgB,CAACR,KAAK,CAACS,OAAO,EAAER,MAAM,CAACN,MAAM,CAACe,EAAE,CAAC,IACpDT,MAAM,CAACN,MAAM,CAACe,EAAE;MACjB;IAEL,KAAK,UAAU;MACb,OAAAP,aAAA,CAAAA,aAAA,KACKH,KAAK;QACRI,WAAW,EAAEH,MAAM,CAACN,MAAM;QAC1BU,QAAQ,EAAEG,gBAAgB,CAACR,KAAK,CAACS,OAAO,EAAER,MAAM,CAACN,MAAM,CAACe,EAAE;MAAC;IAE/D,KAAK,OAAO;MACV,OAAAP,aAAA,CAAAA,aAAA,KACKH,KAAK;QACRK,QAAQ,EAAE,EAAE;QACZD,WAAW,EAAEd,QAAQ,CAACU,KAAK,CAACS,OAAO,CAAC;QACpCE,MAAM,EAAE;MAAK;IAEjB,KAAK,MAAM;MACT,OAAAR,aAAA,CAAAA,aAAA,KACKH,KAAK;QACRW,MAAM,EAAE;MAAI;IAEhB,KAAK,cAAc;MACjB,OAAAR,aAAA,CAAAA,aAAA,KACKH,KAAK;QACRY,WAAW,EAAEX,MAAM,CAACW;MAAW;IAEnC,KAAK,YAAY;MACf,OAAAT,aAAA,CAAAA,aAAA,KACKH,KAAK;QACRa,SAAS,EAAEZ,MAAM,CAACY;MAAS;IAE/B,KAAK,eAAe;MAClB,OAAAV,aAAA,CAAAA,aAAA,KACKH,KAAK;QACRS,OAAO,EAAER,MAAM,CAACQ;MAAO;IAE3B;MACE,OAAOT,KAAK;EAChB;AACF;AAEA,SAASc,QAAQA,CACfL,OAAuB,EACvBhB,QAA4B,EAEd;EAAA,IADdsB,YAA0B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG1B,QAAQ,CAACmB,OAAO,CAAC;EAE9C,OAAOA,OAAO,CAACU,MAAM,CAAC,UAACC,MAAM,EAAEC,OAAO,EAAK;IACzC,IAAIA,OAAO,CAACX,EAAE,KAAKjB,QAAQ,EAAE;MAC3B,OAAO4B,OAAO;IAChB;IAEA,IAAIA,OAAO,CAACvB,QAAQ,EAAE;MACpB,OAAOgB,QAAQ,CAACO,OAAO,CAACvB,QAAQ,EAAEL,QAAQ,EAAE2B,MAAM,CAAC;IACrD;IAEA,OAAOA,MAAM;EACf,CAAC,EAAEL,YAAY,CAAC;AAClB;AAEA,OAAO,SAASO,eAAeA,CAC7Bb,OAAyB,EACzBc,QAAkC,EAClB;EAChB,OAAOd,OAAO,CAACU,MAAM,CAAiB,UAACK,GAAG,EAAE7B,MAAM,EAAK;IACrD,IAAMe,EAAE,GAAG1B,IAAI,CAAC,CAAC;IACjB,IAAMyC,aAAa,GAAAtB,aAAA;MACjBO,EAAE,EAAFA,EAAE;MACFa,QAAQ,EAARA,QAAQ;MACRG,MAAM,EAAE/B;IAAM,GACVC,KAAK,CAACC,OAAO,CAACF,MAAM,CAACG,QAAQ,CAAC,IAAI;MACpCA,QAAQ,EAAEwB,eAAe,CAAC3B,MAAM,CAACG,QAAQ,EAAEY,EAAE;IAC/C,CAAC,CACF;IAED,UAAAJ,MAAA,CAAAC,kBAAA,CAAWiB,GAAG,IAAEC,aAAa;EAC/B,CAAC,EAAE,EAAE,CAAC;AACR;AAEA,SAASjB,gBAAgBA,CACvBC,OAAuB,EACvBhB,QAA4B,EACN;EACtB,IAAME,MAAM,GAAGmB,QAAQ,CAACL,OAAO,EAAEhB,QAAQ,CAAC;EAE1C,IAAI,CAACD,YAAY,CAACG,MAAM,CAAC4B,QAAQ,CAAC,EAAE;IAClC,UAAAjB,MAAA,CAAAC,kBAAA,CAAWC,gBAAgB,CAACC,OAAO,EAAEd,MAAM,CAAC4B,QAAQ,CAAC,IAAE5B,MAAM,CAAC4B,QAAQ;EACxE;EACA,OAAO,CAAC5B,MAAM,CAAC4B,QAAQ,CAAC;AAC1B;AAEA,OAAO,SAASI,iBAAiBA,CAAAC,IAAA,EAM9B;EAAA,IALDC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IAAAC,YAAA,GAAAF,IAAA,CACbG,OAAO;IAAEC,QAAQ,GAAAF,YAAA,cAAG1C,IAAI,GAAA0C,YAAA;IACbG,UAAU,GAAAL,IAAA,CAArBM,SAAS;EAIT,IAAAC,iBAAA,GAGIpD,KAAK,CAACqD,UAAU,CAACrC,OAAO,EAAE;MAC5BU,OAAO,EAAEoB,aAAa;MACtBxB,QAAQ,EAAE,EAAE;MACZD,WAAW,EAAEd,QAAQ,CAACuC,aAAa,CAAC;MACpCjB,WAAW,EAAE,KAAK;MAClBC,SAAS,EAAE,KAAK;MAChBF,MAAM,EAAE;IACV,CAAC,CAAC;IAAA0B,kBAAA,GAAAC,cAAA,CAAAH,iBAAA;IAAAI,mBAAA,GAAAF,kBAAA;IATE5B,OAAO,GAAA8B,mBAAA,CAAP9B,OAAO;IAAEJ,QAAQ,GAAAkC,mBAAA,CAARlC,QAAQ;IAAED,WAAW,GAAAmC,mBAAA,CAAXnC,WAAW;IAAEO,MAAM,GAAA4B,mBAAA,CAAN5B,MAAM;IAAEC,WAAW,GAAA2B,mBAAA,CAAX3B,WAAW;IAAEC,SAAS,GAAA0B,mBAAA,CAAT1B,SAAS;IAChE2B,QAAQ,GAAAH,kBAAA;EAUV,IAAMI,YAAY,GAAG1D,KAAK,CAAC2D,WAAW,CACpC,UAAC9B,WAAoB;IAAA,OAAK4B,QAAQ,CAAC;MAAEtC,IAAI,EAAE,cAAc;MAAEU,WAAW,EAAXA;IAAY,CAAC,CAAC;EAAA,GACzE,EACF,CAAC;EAED,IAAM+B,UAAU,GAAG5D,KAAK,CAAC2D,WAAW,CAClC,UAAC7B,SAAkB;IAAA,OAAK2B,QAAQ,CAAC;MAAEtC,IAAI,EAAE,YAAY;MAAEW,SAAS,EAATA;IAAU,CAAC,CAAC;EAAA,GACnE,EACF,CAAC;EAED,IAAM+B,UAAU,GAAG,SAAbA,UAAUA,CAAIjD,MAAoB;IAAA,OAAKU,QAAQ,CAACwC,QAAQ,CAAClD,MAAM,CAACe,EAAE,CAAC;EAAA;EAEzE,IAAMoC,aAAa,GAAG,SAAhBA,aAAaA,CAAInD,MAAoB,EAAc;IACvD,IAAMoD,SAAS,GAAGvC,gBAAgB,CAACC,OAAO,EAAEL,WAAW,CAACM,EAAE,CAAC;IAC3D,IAAMsC,WAAW,GACfrD,MAAM,CAACe,EAAE,KAAKN,WAAW,CAACM,EAAE,IAAIqC,SAAS,CAACE,IAAI,CAAC,UAACvC,EAAE;MAAA,OAAKA,EAAE,KAAKf,MAAM,CAACe,EAAE;IAAA,EAAC;IAC1E,OAAO,CAACE,WAAW,IAAIC,SAAS,KAAKmC,WAAW;EAClD,CAAC;EAED,IAAME,cAAc,GAAGnE,KAAK,CAAC2D,WAAW,CACtC,UAAChC,EAAkB;IAAA,OAAKI,QAAQ,CAACL,OAAO,EAAEC,EAAE,CAAC;EAAA,GAC7C,CAACD,OAAO,CACV,CAAC;EAED,IAAM0C,MAAM,GAAGpE,KAAK,CAAC2D,WAAW,CAC9B,UAAC/C,MAAoB;IAAA,OACnB6C,QAAQ,CAAC;MACPtC,IAAI,EAAE,QAAQ;MACdP,MAAM,EAANA;IACF,CAAC,CAAC;EAAA,GACJ,EACF,CAAC;EAED,IAAMyD,QAAQ,GAAGrE,KAAK,CAAC2D,WAAW,CAChC,UAAC/C,MAAoB;IAAA,OACnB6C,QAAQ,CAAC;MACPtC,IAAI,EAAE,UAAU;MAChBP,MAAM,EAANA;IACF,CAAC,CAAC;EAAA,GACJ,EACF,CAAC;EAED,IAAM0D,SAAS,GAAGtE,KAAK,CAAC2D,WAAW,CACjC,UAAC/C,MAAoB;IAAA,OACnB6C,QAAQ,CAAC;MACPtC,IAAI,EAAE,WAAW;MACjBP,MAAM,EAANA;IACF,CAAC,CAAC;EAAA,GACJ,EACF,CAAC;EAED,IAAM2D,mBAAmB,GAAGvE,KAAK,CAAC2D,WAAW,CAC3C,UAACa,IAA6C,EAAK;IACjD,IAAMC,IAAI,GAAGhE,YAAY,CAACY,WAAW,CAACmB,QAAQ,CAAC,GAC3Cd,OAAO,GACPyC,cAAc,CAAC9C,WAAW,CAACmB,QAAQ,CAAC,CAACzB,QAAQ,IAAI,EAAE;IACvD,IAAM2D,WAAW,GAAGD,IAAI,CAACE,SAAS,CAAC,UAACH,IAAI;MAAA,OAAKA,IAAI,CAAC7C,EAAE,KAAKN,WAAW,CAACM,EAAE;IAAA,EAAC;IAExE,QAAQ6C,IAAI;MACV,KAAK,MAAM;QACT,IAAMI,SAAS,GAAGF,WAAW,GAAG,CAAC,IAAID,IAAI,CAACvC,MAAM,GAAG,CAAC,GAAGwC,WAAW,GAAG,CAAC;QAEtEJ,SAAS,CAACG,IAAI,CAACG,SAAS,CAAC,CAAC;QAC1B;MACF,KAAK,MAAM;QACT,IAAMC,SAAS,GACbH,WAAW,GAAG,CAAC,GAAG,CAAC,GAAGD,IAAI,CAACvC,MAAM,GAAG,CAAC,GAAGwC,WAAW,GAAG,CAAC;QAEzDJ,SAAS,CAACG,IAAI,CAACI,SAAS,CAAC,CAAC;QAC1B;MACF,KAAK,UAAU;QACb,IAAIhE,KAAK,CAACC,OAAO,CAACO,WAAW,CAACN,QAAQ,CAAC,EAAE;UACvCqD,MAAM,CAAC/C,WAAW,CAAC;UAEnBiD,SAAS,CAAC/D,QAAQ,CAACc,WAAW,CAACN,QAAQ,CAAC,CAAC;QAC3C;QACA;MACF,KAAK,QAAQ;QACX,IAAI,CAACN,YAAY,CAACY,WAAW,CAACmB,QAAQ,CAAC,EAAE;UACvC,IAAMsC,YAAY,GAAGX,cAAc,CAAC9C,WAAW,CAACmB,QAAQ,CAAC;UACzD6B,QAAQ,CAACS,YAAY,CAAC;QACxB;QACA;MACF;QACE;IACJ;EACF,CAAC,EACD,CAACpD,OAAO,EAAEyC,cAAc,EAAEE,QAAQ,EAAEhD,WAAW,EAAE+C,MAAM,EAAEE,SAAS,CACpE,CAAC;EAED,IAAMS,aAAa,GAAG/E,KAAK,CAAC2D,WAAW,CAAC,YAAM;IAC5CF,QAAQ,CAAC;MAAEtC,IAAI,EAAE;IAAQ,CAAC,CAAC;EAC7B,CAAC,EAAE,EAAE,CAAC;EAEN,IAAM6D,qBAAqB,GAAGhF,KAAK,CAAC2D,WAAW,CAC7C,UAACsB,CAA2B,EAAK;IAC/B,IACEA,CAAC,KACAA,CAAC,CAAC9D,IAAI,KAAK,OAAO,IAAI8D,CAAC,CAAC9D,IAAI,KAAK,SAAS,CAAC,IAC5C,CAAE8D,CAAC,CACAC,YAAY,CAAC,CAAC,CACdhB,IAAI,CAAC,UAACiB,IAAI;MAAA,IAAAC,QAAA;MAAA,QAAAA,QAAA,GAAMD,IAAI,CAAiBE,OAAO,cAAAD,QAAA,uBAA7BA,QAAA,CAA+BE,MAAM;IAAA,EAAC,EACxD;MACA7B,QAAQ,CAAC;QAAEtC,IAAI,EAAE;MAAQ,CAAC,CAAC;IAC7B;EACF,CAAC,EACD,EACF,CAAC;EAED,IAAMoE,YAAY,GAAGvF,KAAK,CAAC2D,WAAW,CAAC,YAAM;IAC3CF,QAAQ,CAAC;MAAEtC,IAAI,EAAE;IAAO,CAAC,CAAC;EAC5B,CAAC,EAAE,EAAE,CAAC;EAEN,IAAM6B,OAAO,GAAGhD,KAAK,CAAC2D,WAAW,CAC/B,UAAC/C,MAAoB,EAAK;IACxB,IAAI,CAACD,WAAW,CAACC,MAAM,CAAC+B,MAAM,CAAC,EAAE;MAC/BM,QAAQ,CAACrC,MAAM,CAAC+B,MAAM,CAAC;MACvBoC,aAAa,CAAC,CAAC;IACjB;EACF,CAAC,EACD,CAAC9B,QAAQ,EAAE8B,aAAa,CAC1B,CAAC;EAED,IAAM5B,SAAS,GAAGnD,KAAK,CAAC2D,WAAW,CACjC,UAACsB,CAAsC,EAAK;IAC1C,IAAQO,GAAG,GAAKP,CAAC,CAATO,GAAG;IAEX,QAAQA,GAAG;MACT,KAAK,OAAO;QACVP,CAAC,CAACQ,cAAc,CAAC,CAAC;QAClB,IAAI,CAAC7D,MAAM,IAAIE,SAAS,EAAE;UACxByD,YAAY,CAAC,CAAC;QAChB,CAAC,MAAM;UACL,IAAI5E,WAAW,CAACU,WAAW,CAACsB,MAAM,CAAC,EAAE;YACnC4B,mBAAmB,CAAC,UAAU,CAAC;UACjC,CAAC,MAAM;YACLvB,OAAO,CAAC3B,WAAW,CAAC;UACtB;QACF;QACA;MACF,KAAK,QAAQ;MACb,KAAK,KAAK;QACR4D,CAAC,CAACQ,cAAc,CAAC,CAAC;QAClB,IAAIhF,YAAY,CAACY,WAAW,CAACmB,QAAQ,CAAC,EAAE;UACtC,IAAIZ,MAAM,EAAE;YAAA,IAAA8D,kBAAA;YACV,CAAAA,kBAAA,GAAAT,CAAC,CAACU,eAAe,cAAAD,kBAAA,uBAAjBA,kBAAA,CAAAE,IAAA,CAAAX,CAAoB,CAAC;UACvB;UACAF,aAAa,CAAC,CAAC;QACjB,CAAC,MAAM;UAAA,IAAAc,mBAAA;UACL,CAAAA,mBAAA,GAAAZ,CAAC,CAACU,eAAe,cAAAE,mBAAA,uBAAjBA,mBAAA,CAAAD,IAAA,CAAAX,CAAoB,CAAC;UACrBV,mBAAmB,CAAC,QAAQ,CAAC;QAC/B;QACA;MACF,KAAK,WAAW;MAChB,KAAK,MAAM;QACTU,CAAC,CAACQ,cAAc,CAAC,CAAC;QAClBlB,mBAAmB,CAAC,MAAM,CAAC;QAC3B;MACF,KAAK,SAAS;MACd,KAAK,IAAI;QACPU,CAAC,CAACQ,cAAc,CAAC,CAAC;QAClBlB,mBAAmB,CAAC,MAAM,CAAC;QAC3B;IACJ;IACArB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAG+B,CAAC,CAAC;EACjB,CAAC,EACD,CACEF,aAAa,EACbQ,YAAY,EACZhB,mBAAmB,EACnBlD,WAAW,EACXO,MAAM,EACNE,SAAS,EACTkB,OAAO,EACPE,UAAU,CAEd,CAAC;EACD;EACA;EACAlD,KAAK,CAAC8F,SAAS,CAAC,YAAM;IACpBrC,QAAQ,CAAC;MAAEtC,IAAI,EAAE,eAAe;MAAEO,OAAO,EAAEoB;IAAc,CAAC,CAAC;IAC3DW,QAAQ,CAAC;MAAEtC,IAAI,EAAE,WAAW;MAAEP,MAAM,EAAEL,QAAQ,CAACuC,aAAa;IAAE,CAAC,CAAC;EAClE,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;EAEnB,OAAO;IACLhB,SAAS,EAATA,SAAS;IACTD,WAAW,EAAXA,WAAW;IACXD,MAAM,EAANA,MAAM;IACNF,OAAO,EAAPA,OAAO;IACPJ,QAAQ,EAARA,QAAQ;IACRD,WAAW,EAAXA,WAAW;IACX+C,MAAM,EAANA,MAAM;IACNC,QAAQ,EAARA,QAAQ;IACRN,aAAa,EAAbA,aAAa;IACbF,UAAU,EAAVA,UAAU;IACVkB,aAAa,EAAbA,aAAa;IACbC,qBAAqB,EAArBA,qBAAqB;IACrBO,YAAY,EAAZA,YAAY;IACZpC,SAAS,EAATA,SAAS;IACTH,OAAO,EAAPA,OAAO;IACPU,YAAY,EAAZA,YAAY;IACZE,UAAU,EAAVA;EACF,CAAC;AACH;AAEA,OAAO,SAASmC,qBAAqBA,CAACnF,MAAsB,EAAE;EAC5D,oBACEZ,KAAA,CAAAgG,aAAA,CAAAhG,KAAA,CAAAiG,QAAA,qBACEjG,KAAA,CAAAgG,aAAA,CAAC7F,yBAAyB,QAAES,MAAM,CAACsF,KAAiC,CAAC,EACpEvF,WAAW,CAACC,MAAM,CAAC,iBAClBZ,KAAA,CAAAgG,aAAA,CAAC9F,8BAA8B;IAAC,WAAQ;EAAyC,CAAE,CAErF,CAAC;AAEP;AAEA,OAAO,IAAMiG,qBAAqB,gBAAGnG,KAAK,CAACoG,aAAa,CASrD;EACDpD,OAAO,EAAE3C,IAAI;EAEb+D,MAAM,EAAE/D,IAAI;EACZgE,QAAQ,EAAEhE,IAAI;EACdgG,cAAc,EAAEN,qBAAqB;EAErClC,UAAU,EAAEvD,WAAW;EACvByD,aAAa,EAAEzD;AACjB,CAAC,CAAC;AAEF,OAAO,IAAMgG,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAA;EAAA,OACnCtG,KAAK,CAACuG,UAAU,CAACJ,qBAAqB,CAAC;AAAA"}
|
|
1
|
+
{"version":3,"file":"DropdownFlyout.helpers.js","names":["React","ulid","StyledDropdownFlyoutExpandIcon","StyledDropdownFlyoutLabel","rootId","noop","returnFalse","getFirst","arr","isRootOption","optionId","hasChildren","option","Array","isArray","children","reducer","state","action","type","_objectSpread","highlighted","expanded","concat","_toConsumableArray","collectParentIds","options","id","isOpen","isMouseOver","keyboardNavigated","isFocused","findById","initialValue","arguments","length","undefined","reduce","result","current","transformOption","parentId","acc","updatedOption","origin","useDropdownFlyout","_ref","flyoutOptions","_ref$onClick","onClick","_onClick","_onKeyDown","onKeyDown","_React$useReducer","useReducer","_React$useReducer2","_slicedToArray","_React$useReducer2$","dispatch","setMouseOver","useCallback","setFocused","isExpanded","includes","isHighlighted","parentIds","isCorrectId","some","isFocusVisible","findOptionById","expand","collapse","highlight","traversingHighlight","item","tier","optionIndex","findIndex","nextIndex","prevIndex","parentOption","closeDropdown","closeSelectedDropdown","e","composedPath","node","_dataset","dataset","flyout","openDropdown","key","preventDefault","_e$stopPropagation","stopPropagation","call","_e$stopPropagation2","useEffect","defaultOptionRenderer","createElement","Fragment","label","DropdownFlyoutContext","createContext","optionRenderer","useDropdownFlyoutContext","useContext"],"sources":["../../src/DropdownFlyout/DropdownFlyout.helpers.tsx"],"sourcesContent":["import React from 'react'\nimport { ulid } from 'ulid'\nimport {\n StyledDropdownFlyoutExpandIcon,\n StyledDropdownFlyoutLabel,\n} from './DropdownFlyout.styles'\nimport type {\n Action,\n DropdownFlyoutProps,\n DropdownOption,\n FlyoutOption,\n FlyoutOptionId,\n State,\n} from './DropdownFlyout.types'\nimport { rootId } from './DropdownFlyout.types'\n\nexport function noop() {}\n\nexport function returnFalse() {\n return false\n}\n\nfunction getFirst<T extends any>(arr: T[]) {\n return arr[0]\n}\nfunction isRootOption(optionId: FlyoutOptionId) {\n return optionId === rootId\n}\n\nexport function hasChildren(option: DropdownOption) {\n return Array.isArray(option.children)\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'highlight':\n return {\n ...state,\n highlighted: action.option,\n }\n case 'expand':\n return {\n ...state,\n highlighted: action.option,\n expanded: [\n ...collectParentIds(state.options, action.option.id),\n action.option.id,\n ],\n }\n case 'collapse':\n return {\n ...state,\n highlighted: action.option,\n expanded: collectParentIds(state.options, action.option.id),\n }\n case 'close':\n return {\n ...state,\n expanded: [],\n highlighted: getFirst(state.options),\n isOpen: false,\n }\n case 'open':\n return {\n ...state,\n isOpen: true,\n }\n case 'setMouseOver':\n return {\n ...state,\n isMouseOver: action.isMouseOver,\n keyboardNavigated: action.isMouseOver ? false : state.keyboardNavigated,\n }\n case 'setFocused':\n return {\n ...state,\n isFocused: action.isFocused,\n }\n case 'setKeyboardNavigated':\n return {\n ...state,\n keyboardNavigated: true,\n }\n case 'updateOptions':\n return {\n ...state,\n options: action.options,\n }\n default:\n return state\n }\n}\n\nfunction findById(\n options: FlyoutOption[],\n optionId: FlyoutOption['id'],\n initialValue: FlyoutOption = getFirst(options)\n): FlyoutOption {\n return options.reduce((result, current) => {\n if (current.id === optionId) {\n return current\n }\n\n if (current.children) {\n return findById(current.children, optionId, result)\n }\n\n return result\n }, initialValue)\n}\n\nexport function transformOption(\n options: DropdownOption[],\n parentId: FlyoutOption['parentId']\n): FlyoutOption[] {\n return options.reduce<FlyoutOption[]>((acc, option) => {\n const id = ulid()\n const updatedOption = {\n id,\n parentId,\n origin: option,\n ...(Array.isArray(option.children) && {\n children: transformOption(option.children, id),\n }),\n }\n\n return [...acc, updatedOption]\n }, [])\n}\n\nfunction collectParentIds(\n options: FlyoutOption[],\n optionId: FlyoutOption['id']\n): FlyoutOption['id'][] {\n const option = findById(options, optionId)\n\n if (!isRootOption(option.parentId)) {\n return [...collectParentIds(options, option.parentId), option.parentId]\n }\n return [option.parentId]\n}\n\nexport function useDropdownFlyout({\n flyoutOptions,\n onClick: _onClick = noop,\n onKeyDown: _onKeyDown,\n}: Pick<DropdownFlyoutProps, 'onClick' | 'onKeyDown'> & {\n flyoutOptions: FlyoutOption[]\n}) {\n const [\n {\n options,\n expanded,\n highlighted,\n isOpen,\n isMouseOver,\n isFocused,\n keyboardNavigated,\n },\n dispatch,\n ] = React.useReducer(reducer, {\n options: flyoutOptions,\n expanded: [],\n highlighted: getFirst(flyoutOptions),\n isMouseOver: false,\n isFocused: false,\n isOpen: false,\n keyboardNavigated: false,\n })\n\n const setMouseOver = React.useCallback(\n (isMouseOver: boolean) => dispatch({ type: 'setMouseOver', isMouseOver }),\n []\n )\n\n const setFocused = React.useCallback(\n (isFocused: boolean) => dispatch({ type: 'setFocused', isFocused }),\n []\n )\n\n const isExpanded = (option: FlyoutOption) => expanded.includes(option.id)\n\n const isHighlighted = (option: FlyoutOption): boolean => {\n const parentIds = collectParentIds(options, highlighted.id)\n const isCorrectId =\n option.id === highlighted.id || parentIds.some((id) => id === option.id)\n return (isMouseOver || isFocused) && isCorrectId\n }\n\n const isFocusVisible = (option: FlyoutOption): boolean => {\n const parentIds = collectParentIds(options, highlighted.id)\n const isCorrectId =\n option.id === highlighted.id || parentIds.some((id) => id === option.id)\n return keyboardNavigated && isCorrectId\n }\n\n const findOptionById = React.useCallback(\n (id: FlyoutOptionId) => findById(options, id),\n [options]\n )\n\n const expand = React.useCallback(\n (option: FlyoutOption) =>\n dispatch({\n type: 'expand',\n option,\n }),\n []\n )\n\n const collapse = React.useCallback(\n (option: FlyoutOption) =>\n dispatch({\n type: 'collapse',\n option,\n }),\n []\n )\n\n const highlight = React.useCallback(\n (option: FlyoutOption) =>\n dispatch({\n type: 'highlight',\n option,\n }),\n []\n )\n\n const traversingHighlight = React.useCallback(\n (item: 'next' | 'prev' | 'children' | 'parent') => {\n const tier = isRootOption(highlighted.parentId)\n ? options\n : findOptionById(highlighted.parentId).children || []\n const optionIndex = tier.findIndex((item) => item.id === highlighted.id)\n\n switch (item) {\n case 'next':\n const nextIndex = optionIndex + 1 >= tier.length ? 0 : optionIndex + 1\n\n highlight(tier[nextIndex])\n break\n case 'prev':\n const prevIndex =\n optionIndex - 1 < 0 ? tier.length - 1 : optionIndex - 1\n\n highlight(tier[prevIndex])\n break\n case 'children':\n if (Array.isArray(highlighted.children)) {\n expand(highlighted)\n\n highlight(getFirst(highlighted.children))\n }\n break\n case 'parent':\n if (!isRootOption(highlighted.parentId)) {\n const parentOption = findOptionById(highlighted.parentId)\n collapse(parentOption)\n }\n break\n default:\n return\n }\n },\n [options, findOptionById, collapse, highlighted, expand, highlight]\n )\n\n const closeDropdown = React.useCallback(() => {\n dispatch({ type: 'close' })\n }, [])\n\n const closeSelectedDropdown = React.useCallback(\n (e: Event | React.FocusEvent) => {\n if (\n e &&\n (e.type === 'click' || e.type === 'mouseup') &&\n !(e as MouseEvent)\n .composedPath()\n .some((node) => (node as HTMLElement).dataset?.flyout)\n ) {\n dispatch({ type: 'close' })\n }\n },\n []\n )\n\n const openDropdown = React.useCallback(() => {\n dispatch({ type: 'open' })\n }, [])\n\n const onClick = React.useCallback(\n (option: FlyoutOption) => {\n if (!hasChildren(option.origin)) {\n _onClick(option.origin)\n closeDropdown()\n }\n },\n [_onClick, closeDropdown]\n )\n\n const onKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const { key } = e\n\n switch (key) {\n case 'Enter':\n e.preventDefault()\n if (!isOpen && isFocused) {\n dispatch({ type: 'setKeyboardNavigated' })\n openDropdown()\n } else {\n if (hasChildren(highlighted.origin)) {\n dispatch({ type: 'setKeyboardNavigated' })\n traversingHighlight('children')\n } else {\n onClick(highlighted)\n }\n }\n break\n case 'Escape':\n case 'Esc':\n e.preventDefault()\n if (isRootOption(highlighted.parentId)) {\n if (isOpen) {\n e.stopPropagation?.()\n }\n closeDropdown()\n } else {\n e.stopPropagation?.()\n traversingHighlight('parent')\n }\n break\n case 'ArrowDown':\n case 'Down':\n e.preventDefault()\n dispatch({ type: 'setKeyboardNavigated' })\n traversingHighlight('next')\n break\n case 'ArrowUp':\n case 'Up':\n e.preventDefault()\n dispatch({ type: 'setKeyboardNavigated' })\n traversingHighlight('prev')\n break\n }\n _onKeyDown?.(e)\n },\n [\n closeDropdown,\n openDropdown,\n traversingHighlight,\n highlighted,\n isOpen,\n isFocused,\n onClick,\n _onKeyDown,\n ]\n )\n // There was an issue that was fixed in scope of UISP-215 https://procoretech.atlassian.net/browse/UISP-215\n // UseEffect is necessary for updating state in UseReducer because props don't automatically update state. (In this case: property \"options\")\n React.useEffect(() => {\n dispatch({ type: 'updateOptions', options: flyoutOptions })\n dispatch({ type: 'highlight', option: getFirst(flyoutOptions) })\n }, [flyoutOptions])\n\n return {\n isFocused,\n isFocusVisible,\n isMouseOver,\n isOpen,\n options,\n expanded,\n highlighted,\n expand,\n collapse,\n isHighlighted,\n isExpanded,\n closeDropdown,\n closeSelectedDropdown,\n openDropdown,\n onKeyDown,\n onClick,\n setMouseOver,\n setFocused,\n }\n}\n\nexport function defaultOptionRenderer(option: DropdownOption) {\n return (\n <>\n <StyledDropdownFlyoutLabel>{option.label}</StyledDropdownFlyoutLabel>\n {hasChildren(option) && (\n <StyledDropdownFlyoutExpandIcon data-qa=\"core-dropdown-flyout-option-expand-icon\" />\n )}\n </>\n )\n}\n\nexport const DropdownFlyoutContext = React.createContext<{\n onClick: (option: FlyoutOption) => void\n\n expand: (option: FlyoutOption) => void\n collapse: (option: FlyoutOption) => void\n optionRenderer: (option: DropdownOption) => React.ReactNode\n\n isExpanded: (option: FlyoutOption) => boolean\n isFocusVisible: (option: FlyoutOption) => boolean\n isHighlighted: (option: FlyoutOption) => boolean\n}>({\n onClick: noop,\n\n expand: noop,\n collapse: noop,\n optionRenderer: defaultOptionRenderer,\n\n isExpanded: returnFalse,\n isFocusVisible: returnFalse,\n isHighlighted: returnFalse,\n})\n\nexport const useDropdownFlyoutContext = () =>\n React.useContext(DropdownFlyoutContext)\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _excluded = ["option", "highlighted", "expanded", "optionRenderer"],
|
|
1
|
+
var _excluded = ["option", "focusVisible", "highlighted", "expanded", "optionRenderer"],
|
|
2
2
|
_excluded2 = ["children", "icon"],
|
|
3
3
|
_excluded3 = ["disabled", "icon", "label", "loading", "options", "onClick", "optionRenderer", "children", "placement", "onKeyDown", "onFocus", "onBlur", "onMouseDown", "onMouseEnter", "onMouseLeave", "size", "variant"];
|
|
4
4
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
@@ -24,6 +24,7 @@ import { rootId } from './DropdownFlyout.types';
|
|
|
24
24
|
import { useDropdownFlyoutOverlay } from './useDropdownFlyoutOverlay';
|
|
25
25
|
export var FlyoutCaption = /*#__PURE__*/React.forwardRef(function FlyoutCaption(_ref, ref) {
|
|
26
26
|
var option = _ref.option,
|
|
27
|
+
focusVisible = _ref.focusVisible,
|
|
27
28
|
highlighted = _ref.highlighted,
|
|
28
29
|
expanded = _ref.expanded,
|
|
29
30
|
optionRenderer = _ref.optionRenderer,
|
|
@@ -32,6 +33,7 @@ export var FlyoutCaption = /*#__PURE__*/React.forwardRef(function FlyoutCaption(
|
|
|
32
33
|
return /*#__PURE__*/React.createElement(StyledDropdownFlyoutItem, _extends({}, props, {
|
|
33
34
|
ref: ref,
|
|
34
35
|
"aria-expanded": expanded,
|
|
36
|
+
"data-focus-visible": focusVisible,
|
|
35
37
|
"data-highlighted": highlighted,
|
|
36
38
|
"data-flyout": true
|
|
37
39
|
}), renderedOption);
|
|
@@ -41,6 +43,7 @@ export function FlyoutItem(_ref2) {
|
|
|
41
43
|
var option = _ref2.option;
|
|
42
44
|
var overlayElRef = React.useRef(null);
|
|
43
45
|
var _useDropdownFlyoutCon = useDropdownFlyoutContext(),
|
|
46
|
+
isFocusVisible = _useDropdownFlyoutCon.isFocusVisible,
|
|
44
47
|
isHighlighted = _useDropdownFlyoutCon.isHighlighted,
|
|
45
48
|
isExpanded = _useDropdownFlyoutCon.isExpanded,
|
|
46
49
|
_onClick = _useDropdownFlyoutCon.onClick,
|
|
@@ -68,6 +71,7 @@ export function FlyoutItem(_ref2) {
|
|
|
68
71
|
option: option.origin,
|
|
69
72
|
onClick: onClick,
|
|
70
73
|
optionRenderer: optionRenderer,
|
|
74
|
+
focusVisible: isFocusVisible(option),
|
|
71
75
|
highlighted: isHighlighted(option),
|
|
72
76
|
expanded: hasChildren(option.origin) ? isExpanded(option) : undefined,
|
|
73
77
|
onMouseEnter: onMouseEnter,
|
|
@@ -183,6 +187,7 @@ export var DropdownFlyout = /*#__PURE__*/React.forwardRef(function DropdownFlyou
|
|
|
183
187
|
setMouseOver = _useDropdownFlyout.setMouseOver,
|
|
184
188
|
setFocused = _useDropdownFlyout.setFocused,
|
|
185
189
|
isExpanded = _useDropdownFlyout.isExpanded,
|
|
190
|
+
isFocusVisible = _useDropdownFlyout.isFocusVisible,
|
|
186
191
|
isHighlighted = _useDropdownFlyout.isHighlighted,
|
|
187
192
|
closeDropdown = _useDropdownFlyout.closeDropdown;
|
|
188
193
|
useClickOutside({
|
|
@@ -271,6 +276,7 @@ export var DropdownFlyout = /*#__PURE__*/React.forwardRef(function DropdownFlyou
|
|
|
271
276
|
collapse: collapse,
|
|
272
277
|
onClick: onClick,
|
|
273
278
|
isExpanded: isExpanded,
|
|
279
|
+
isFocusVisible: isFocusVisible,
|
|
274
280
|
isHighlighted: isHighlighted,
|
|
275
281
|
optionRenderer: optionRenderer
|
|
276
282
|
}
|