@boomerang-io/carbon-addons-boomerang-react 4.6.14-beta.9 → 4.6.15-beta.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/README.md +162 -162
- package/dist/cjs/components/AboutPlatform/AboutPlatform.js +50 -50
- package/dist/cjs/components/AdvantageSideNav/AdvantageSideNav.js +221 -221
- package/dist/cjs/components/AutoSuggest/AutoSuggest.js +101 -101
- package/dist/cjs/components/Avatar/Avatar.js +18 -18
- package/dist/cjs/components/CheckboxList/CheckboxList.js +34 -34
- package/dist/cjs/components/ComboBox/ComboBox.js +103 -103
- package/dist/cjs/components/ComboBoxMultiSelect/ComboBoxMultiSelect.js +32 -32
- package/dist/cjs/components/ComboBoxMultiSelect/MultiSelect.js +208 -208
- package/dist/cjs/components/ComposedModal/ComposedModal.js +80 -80
- package/dist/cjs/components/ConfirmModal/ConfirmModal.js +43 -43
- package/dist/cjs/components/Creatable/Creatable.js +137 -137
- package/dist/cjs/components/DataDrivenInput/DataDrivenInput.js +226 -226
- package/dist/cjs/components/DateInput/DateInput.js +35 -35
- package/dist/cjs/components/DecisionButtons/DecisionButtons.js +61 -61
- package/dist/cjs/components/DelayedRender/DelayedRender.js +17 -17
- package/dist/cjs/components/DynamicFormik/DynamicFormik.js +578 -578
- package/dist/cjs/components/Error403/Error403.js +13 -13
- package/dist/cjs/components/Error403/ForbiddenErrorBackground.js +113 -113
- package/dist/cjs/components/Error403/GraphicWrangler/GraphicWrangler.js +62 -62
- package/dist/cjs/components/Error404/Error404.js +13 -13
- package/dist/cjs/components/Error404/GraphicLoch/GraphicLoch.js +17 -17
- package/dist/cjs/components/Error404/NotFoundErrorBackground.js +129 -129
- package/dist/cjs/components/ErrorBoundary/ErrorBoundary.js +32 -32
- package/dist/cjs/components/ErrorDragon/ErrorDragon.js +13 -13
- package/dist/cjs/components/ErrorDragon/assets/ErrorGraphic.js +35 -35
- package/dist/cjs/components/ErrorFullPage/ErrorFullPage.js +10 -10
- package/dist/cjs/components/ErrorMessage/ErrorMessage.js +22 -22
- package/dist/cjs/components/ErrorPage/ErrorPage.js +11 -11
- package/dist/cjs/components/ErrorPageCore/ErrorPageCore.js +15 -15
- package/dist/cjs/components/ErrorPageCore/GenericErrorBackground.js +124 -124
- package/dist/cjs/components/FeatureHeader/FeatureHeader.js +29 -29
- package/dist/cjs/components/FeatureNavTab/FeatureNavTab.js +12 -12
- package/dist/cjs/components/FeatureNavTabs/FeatureNavTabs.js +12 -12
- package/dist/cjs/components/FeatureSideNav/FeatureSideNav.js +12 -12
- package/dist/cjs/components/FeatureSideNav/FeatureSideNavFooter.js +8 -8
- package/dist/cjs/components/FeatureSideNav/FeatureSideNavHeader.js +8 -8
- package/dist/cjs/components/FeatureSideNav/FeatureSideNavLinks.js +14 -14
- package/dist/cjs/components/FeatureSideNavLink/FeatureSideNavLink.js +12 -12
- package/dist/cjs/components/Feedback/Feedback.js +38 -38
- package/dist/cjs/components/FlowModal/FlowModal.js +141 -141
- package/dist/cjs/components/FlowModal/FlowModalForm.js +12 -12
- package/dist/cjs/components/Header/Header.js +187 -187
- package/dist/cjs/components/Header/HeaderAppSwitcher.js +94 -94
- package/dist/cjs/components/Header/HeaderMenu.js +7 -7
- package/dist/cjs/components/Header/HeaderMenuItem.js +51 -51
- package/dist/cjs/components/Header/HeaderTeamSwitcher.js +329 -332
- package/dist/cjs/components/Header/UserRequests.js +29 -29
- package/dist/cjs/components/ImageModal/ImageModal.js +17 -17
- package/dist/cjs/components/Loading/Loading.js +8 -8
- package/dist/cjs/components/MemberBar/MemberBar.js +20 -20
- package/dist/cjs/components/Modal/Modal.js +20 -20
- package/dist/cjs/components/ModalConfirmEdit/ModalConfirmArray.js +14 -14
- package/dist/cjs/components/ModalConfirmEdit/ModalConfirmDetails.js +11 -11
- package/dist/cjs/components/ModalConfirmEdit/ModalConfirmEdit.js +17 -17
- package/dist/cjs/components/ModalForm/ModalForm.js +9 -9
- package/dist/cjs/components/Notifications/NotificationsContainer.js +22 -22
- package/dist/cjs/components/Notifications/ToastNotification.js +21 -21
- package/dist/cjs/components/Notifications/notify.js +17 -17
- package/dist/cjs/components/PlatformBanner/PlatformBanner.js +8 -8
- package/dist/cjs/components/PlatformNotifications/PlatformNotification.js +17 -17
- package/dist/cjs/components/PlatformNotifications/PlatformNotificationsContainer.js +136 -136
- package/dist/cjs/components/Portal/Portal.js +14 -14
- package/dist/cjs/components/PrivacyRedirect/PrivacyRedirect.js +30 -30
- package/dist/cjs/components/PrivacyStatement/PrivacyStatement.js +90 -90
- package/dist/cjs/components/ProfileSettings/ProfileSettings.js +124 -142
- package/dist/cjs/components/ProtectedRoute/ProtectedRoute.js +13 -13
- package/dist/cjs/components/RadioGroup/RadioGroup.js +33 -33
- package/dist/cjs/components/RichTextArea/RichTextArea.js +142 -142
- package/dist/cjs/components/SignOut/SignOut.js +27 -27
- package/dist/cjs/components/SupportCenter/SupportCenter.js +65 -65
- package/dist/cjs/components/TextArea/TextArea.js +16 -16
- package/dist/cjs/components/TextInput/TextInput.js +13 -13
- package/dist/cjs/components/Toggle/Toggle.js +22 -22
- package/dist/cjs/components/TooltipHover/TooltipHover.js +39 -39
- package/dist/cjs/components/UIShell/UIShell.js +95 -95
- package/dist/cjs/config/servicesConfig.js +22 -22
- package/dist/cjs/constants/DataDrivenInputTypes.js +74 -74
- package/dist/cjs/constants/UserType.js +13 -13
- package/dist/cjs/hooks/useHeaderMenu.js +49 -49
- package/dist/cjs/hooks/usePortal.js +74 -74
- package/dist/cjs/hooks/useWindowSize.js +33 -33
- package/dist/cjs/internal/ListBox/ListBox.js +41 -41
- package/dist/cjs/internal/ListBox/ListBoxField.js +19 -19
- package/dist/cjs/internal/ListBox/ListBoxMenu.js +19 -19
- package/dist/cjs/internal/ListBox/ListBoxMenuIcon.js +31 -31
- package/dist/cjs/internal/ListBox/ListBoxMenuItem.js +38 -38
- package/dist/cjs/internal/ListBox/ListBoxSelection.js +64 -64
- package/dist/cjs/internal/ListBox/index.js +10 -10
- package/dist/cjs/internal/keyboard/keys.js +16 -16
- package/dist/cjs/internal/keyboard/match.js +67 -67
- package/dist/cjs/internal/settings.js +5 -5
- package/dist/cjs/tools/accessibility.js +13 -13
- package/dist/cjs/tools/createPropAdapter.js +44 -44
- package/dist/cjs/tools/isUrl.js +39 -39
- package/dist/cjs/tools/setupGetInstanceId.js +20 -20
- package/dist/cjs/tools/useSetState.js +12 -12
- package/dist/cjs/tools/yupAst/astGenerator.js +212 -212
- package/dist/cjs/tools/yupAst/customValidators.js +17 -17
- package/dist/esm/components/AboutPlatform/AboutPlatform.js +50 -50
- package/dist/esm/components/AdvantageSideNav/AdvantageSideNav.js +221 -221
- package/dist/esm/components/AutoSuggest/AutoSuggest.js +101 -101
- package/dist/esm/components/Avatar/Avatar.js +18 -18
- package/dist/esm/components/CheckboxList/CheckboxList.js +34 -34
- package/dist/esm/components/ComboBox/ComboBox.js +103 -103
- package/dist/esm/components/ComboBoxMultiSelect/ComboBoxMultiSelect.js +32 -32
- package/dist/esm/components/ComboBoxMultiSelect/MultiSelect.js +208 -208
- package/dist/esm/components/ComposedModal/ComposedModal.js +80 -80
- package/dist/esm/components/ConfirmModal/ConfirmModal.js +43 -43
- package/dist/esm/components/Creatable/Creatable.js +137 -137
- package/dist/esm/components/DataDrivenInput/DataDrivenInput.js +226 -226
- package/dist/esm/components/DateInput/DateInput.js +35 -35
- package/dist/esm/components/DecisionButtons/DecisionButtons.js +61 -61
- package/dist/esm/components/DelayedRender/DelayedRender.js +17 -17
- package/dist/esm/components/DynamicFormik/DynamicFormik.js +578 -578
- package/dist/esm/components/Error403/Error403.js +13 -13
- package/dist/esm/components/Error403/ForbiddenErrorBackground.js +113 -113
- package/dist/esm/components/Error403/GraphicWrangler/GraphicWrangler.js +62 -62
- package/dist/esm/components/Error404/Error404.js +13 -13
- package/dist/esm/components/Error404/GraphicLoch/GraphicLoch.js +17 -17
- package/dist/esm/components/Error404/NotFoundErrorBackground.js +129 -129
- package/dist/esm/components/ErrorBoundary/ErrorBoundary.js +32 -32
- package/dist/esm/components/ErrorDragon/ErrorDragon.js +13 -13
- package/dist/esm/components/ErrorDragon/assets/ErrorGraphic.js +35 -35
- package/dist/esm/components/ErrorFullPage/ErrorFullPage.js +10 -10
- package/dist/esm/components/ErrorMessage/ErrorMessage.js +22 -22
- package/dist/esm/components/ErrorPage/ErrorPage.js +11 -11
- package/dist/esm/components/ErrorPageCore/ErrorPageCore.js +15 -15
- package/dist/esm/components/ErrorPageCore/GenericErrorBackground.js +124 -124
- package/dist/esm/components/FeatureHeader/FeatureHeader.js +29 -29
- package/dist/esm/components/FeatureNavTab/FeatureNavTab.js +12 -12
- package/dist/esm/components/FeatureNavTabs/FeatureNavTabs.js +12 -12
- package/dist/esm/components/FeatureSideNav/FeatureSideNav.js +12 -12
- package/dist/esm/components/FeatureSideNav/FeatureSideNavFooter.js +8 -8
- package/dist/esm/components/FeatureSideNav/FeatureSideNavHeader.js +8 -8
- package/dist/esm/components/FeatureSideNav/FeatureSideNavLinks.js +14 -14
- package/dist/esm/components/FeatureSideNavLink/FeatureSideNavLink.js +12 -12
- package/dist/esm/components/Feedback/Feedback.js +38 -38
- package/dist/esm/components/FlowModal/FlowModal.js +141 -141
- package/dist/esm/components/FlowModal/FlowModalForm.js +12 -12
- package/dist/esm/components/Header/Header.js +187 -187
- package/dist/esm/components/Header/HeaderAppSwitcher.js +94 -94
- package/dist/esm/components/Header/HeaderMenu.js +7 -7
- package/dist/esm/components/Header/HeaderMenuItem.js +51 -51
- package/dist/esm/components/Header/HeaderTeamSwitcher.js +329 -332
- package/dist/esm/components/Header/UserRequests.js +29 -29
- package/dist/esm/components/ImageModal/ImageModal.js +17 -17
- package/dist/esm/components/Loading/Loading.js +8 -8
- package/dist/esm/components/MemberBar/MemberBar.js +20 -20
- package/dist/esm/components/Modal/Modal.js +20 -20
- package/dist/esm/components/ModalConfirmEdit/ModalConfirmArray.js +14 -14
- package/dist/esm/components/ModalConfirmEdit/ModalConfirmDetails.js +11 -11
- package/dist/esm/components/ModalConfirmEdit/ModalConfirmEdit.js +17 -17
- package/dist/esm/components/ModalForm/ModalForm.js +9 -9
- package/dist/esm/components/Notifications/NotificationsContainer.js +22 -22
- package/dist/esm/components/Notifications/ToastNotification.js +21 -21
- package/dist/esm/components/Notifications/notify.js +17 -17
- package/dist/esm/components/PlatformBanner/PlatformBanner.js +8 -8
- package/dist/esm/components/PlatformNotifications/PlatformNotification.js +17 -17
- package/dist/esm/components/PlatformNotifications/PlatformNotificationsContainer.js +136 -136
- package/dist/esm/components/Portal/Portal.js +14 -14
- package/dist/esm/components/PrivacyRedirect/PrivacyRedirect.js +30 -30
- package/dist/esm/components/PrivacyStatement/PrivacyStatement.js +90 -90
- package/dist/esm/components/ProfileSettings/ProfileSettings.js +124 -142
- package/dist/esm/components/ProtectedRoute/ProtectedRoute.js +13 -13
- package/dist/esm/components/RadioGroup/RadioGroup.js +33 -33
- package/dist/esm/components/RichTextArea/RichTextArea.js +142 -142
- package/dist/esm/components/SignOut/SignOut.js +27 -27
- package/dist/esm/components/SupportCenter/SupportCenter.js +65 -65
- package/dist/esm/components/TextArea/TextArea.js +16 -16
- package/dist/esm/components/TextInput/TextInput.js +13 -13
- package/dist/esm/components/Toggle/Toggle.js +22 -22
- package/dist/esm/components/TooltipHover/TooltipHover.js +39 -39
- package/dist/esm/components/UIShell/UIShell.js +95 -95
- package/dist/esm/config/servicesConfig.js +22 -22
- package/dist/esm/constants/DataDrivenInputTypes.js +74 -74
- package/dist/esm/constants/UserType.js +13 -13
- package/dist/esm/hooks/useHeaderMenu.js +49 -49
- package/dist/esm/hooks/usePortal.js +74 -74
- package/dist/esm/hooks/useWindowSize.js +33 -33
- package/dist/esm/internal/ListBox/ListBox.js +41 -41
- package/dist/esm/internal/ListBox/ListBoxField.js +19 -19
- package/dist/esm/internal/ListBox/ListBoxMenu.js +19 -19
- package/dist/esm/internal/ListBox/ListBoxMenuIcon.js +31 -31
- package/dist/esm/internal/ListBox/ListBoxMenuItem.js +38 -38
- package/dist/esm/internal/ListBox/ListBoxSelection.js +64 -64
- package/dist/esm/internal/ListBox/index.js +10 -10
- package/dist/esm/internal/keyboard/keys.js +16 -16
- package/dist/esm/internal/keyboard/match.js +67 -67
- package/dist/esm/internal/settings.js +5 -5
- package/dist/esm/tools/accessibility.js +13 -13
- package/dist/esm/tools/createPropAdapter.js +44 -44
- package/dist/esm/tools/isUrl.js +39 -39
- package/dist/esm/tools/setupGetInstanceId.js +20 -20
- package/dist/esm/tools/useSetState.js +12 -12
- package/dist/esm/tools/yupAst/astGenerator.js +212 -212
- package/dist/esm/tools/yupAst/customValidators.js +17 -17
- package/dist/types/index.d.ts +1359 -1360
- package/package.json +167 -167
- package/scss/components/AboutPlatform/_aboutPlatform.scss +139 -139
- package/scss/components/AdvantageSideNav/_advantageSideNav.scss +272 -272
- package/scss/components/AutoSuggest/_autoSuggest.scss +62 -62
- package/scss/components/Avatar/_avatar.scss +32 -32
- package/scss/components/CheckboxList/_checkboxList.scss +26 -26
- package/scss/components/ComboBox/_combobox.scss +23 -23
- package/scss/components/ComboBoxMultiSelect/_comboBoxMultiSelect.scss +53 -53
- package/scss/components/ConfirmModal/_confirmModal.scss +12 -12
- package/scss/components/Creatable/_creatable.scss +48 -48
- package/scss/components/DateInput/_dateInput.scss +36 -36
- package/scss/components/DecisionButtons/_decisionButtons.scss +132 -132
- package/scss/components/DynamicFormik/_dynamicFormik.scss +17 -17
- package/scss/components/ErrorBoundary/_errorBoundary.scss +12 -12
- package/scss/components/ErrorDragon/_errorDragon.scss +55 -55
- package/scss/components/ErrorMessage/_errorMessage.scss +43 -43
- package/scss/components/ErrorPage/_errorPage.scss +66 -66
- package/scss/components/ErrorPageCore/_errorPageCore.scss +73 -73
- package/scss/components/FeatureHeader/_featureHeader.scss +67 -67
- package/scss/components/FeatureNavTab/_featureNavTab.scss +27 -27
- package/scss/components/FeatureSideNav/_featureSideNav.scss +76 -76
- package/scss/components/FeatureSideNavLink/_featureSideNavLink.scss +49 -49
- package/scss/components/Feedback/_feedback.scss +50 -50
- package/scss/components/Header/_header.scss +179 -179
- package/scss/components/Header/_headerAppSwitcher.scss +117 -117
- package/scss/components/Header/_headerMenu.scss +30 -30
- package/scss/components/Header/_headerMenuItem.scss +65 -65
- package/scss/components/Header/_headerTeamSwitcher.scss +222 -222
- package/scss/components/Header/_userRequests.scss +36 -36
- package/scss/components/ImageModal/_imageModal.scss +51 -51
- package/scss/components/MemberBar/_memberBar.scss +99 -99
- package/scss/components/Modal/_modal.scss +163 -163
- package/scss/components/ModalConfirmEdit/_modalConfirmEdit.scss +113 -113
- package/scss/components/Notifications/_notifications.scss +57 -57
- package/scss/components/PlatformBanner/_platformBanner.scss +30 -30
- package/scss/components/PlatformNotifications/_platformNotifications.scss +230 -230
- package/scss/components/PrivacyRedirect/_privacyRedirect.scss +43 -43
- package/scss/components/PrivacyStatement/_privacyStatement.scss +137 -137
- package/scss/components/ProfileSettings/_profileSettings.scss +117 -117
- package/scss/components/ProtectedRoute/_protectedRoute.scss +32 -32
- package/scss/components/RadioGroup/_radioGroup.scss +46 -46
- package/scss/components/RichTextArea/_richTextArea.scss +82 -82
- package/scss/components/SignOut/_signOut.scss +51 -51
- package/scss/components/SupportCenter/_supportCenter.scss +16 -16
- package/scss/components/TextArea/_textArea.scss +19 -19
- package/scss/components/TextInput/_textInput.scss +26 -26
- package/scss/components/Toggle/_toggle.scss +80 -80
- package/scss/components/TooltipHover/_tooltip.scss +48 -48
- package/scss/global/_config.scss +14 -14
- package/scss/global/_tippy.scss +49 -49
- package/scss/global/index.scss +401 -401
- package/scss/global/themes/_boomerang.scss +184 -184
- package/scss/global/themes/_default.scss +79 -79
- package/scss/global/themes/_shell-tokens.scss +42 -42
- package/scss/global/utils/_animations.scss +15 -15
- package/scss/global/utils/_mixins.scss +67 -67
- package/scss/global/utils/index.scss +10 -10
|
@@ -8,55 +8,55 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
8
8
|
|
|
9
9
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
10
10
|
|
|
11
|
-
/*
|
|
12
|
-
IBM Confidential
|
|
13
|
-
694970X, 69497O0
|
|
14
|
-
© Copyright IBM Corp. 2022, 2024
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* Supports HeaderMenu components in the Header meeting usability and a11y guidelines
|
|
18
|
-
* Manage state for click/touch, escape and tab events
|
|
19
|
-
*/
|
|
20
|
-
function useHeaderMenu(focusableElementId) {
|
|
21
|
-
const ref = React__default.default.useRef(null);
|
|
22
|
-
const [isOpen, setIsOpen] = React__default.default.useState(false);
|
|
23
|
-
const toggleActive = () => setIsOpen(!isOpen);
|
|
24
|
-
// Close menu if click event originates outside the menu
|
|
25
|
-
const handleMousedownEvent = React__default.default.useCallback((event) => {
|
|
26
|
-
if (!ref.current?.contains(event.target)) {
|
|
27
|
-
setIsOpen(false);
|
|
28
|
-
}
|
|
29
|
-
return;
|
|
30
|
-
}, []);
|
|
31
|
-
// Close menu if ESC keydown event originates in the menu and transfer focus
|
|
32
|
-
const handleKeyDownEvent = React__default.default.useCallback((event) => {
|
|
33
|
-
if (event.key === "Escape") {
|
|
34
|
-
if (ref.current?.contains(event.target)) {
|
|
35
|
-
document.getElementById(focusableElementId)?.focus();
|
|
36
|
-
setIsOpen(false);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return;
|
|
40
|
-
}, [focusableElementId]);
|
|
41
|
-
// Close menu if focus transfer event originates in the node AND
|
|
42
|
-
// transfers focus to a element OUTSIDE the menu
|
|
43
|
-
const handleFocusOutEvent = React__default.default.useCallback((event) => {
|
|
44
|
-
if (event.relatedTarget && !ref.current?.contains(event.relatedTarget)) {
|
|
45
|
-
setIsOpen(false);
|
|
46
|
-
}
|
|
47
|
-
return;
|
|
48
|
-
}, []);
|
|
49
|
-
React__default.default.useEffect(() => {
|
|
50
|
-
document.addEventListener("mousedown", handleMousedownEvent);
|
|
51
|
-
document.addEventListener("keydown", handleKeyDownEvent);
|
|
52
|
-
document.addEventListener("focusout", handleFocusOutEvent);
|
|
53
|
-
return () => {
|
|
54
|
-
document.removeEventListener("mousedown", handleMousedownEvent);
|
|
55
|
-
document.removeEventListener("keydown", handleKeyDownEvent);
|
|
56
|
-
document.removeEventListener("focusout", handleFocusOutEvent);
|
|
57
|
-
};
|
|
58
|
-
}, [handleMousedownEvent, handleKeyDownEvent, handleFocusOutEvent]);
|
|
59
|
-
return { isOpen, setIsOpen, toggleActive, ref };
|
|
11
|
+
/*
|
|
12
|
+
IBM Confidential
|
|
13
|
+
694970X, 69497O0
|
|
14
|
+
© Copyright IBM Corp. 2022, 2024
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Supports HeaderMenu components in the Header meeting usability and a11y guidelines
|
|
18
|
+
* Manage state for click/touch, escape and tab events
|
|
19
|
+
*/
|
|
20
|
+
function useHeaderMenu(focusableElementId) {
|
|
21
|
+
const ref = React__default.default.useRef(null);
|
|
22
|
+
const [isOpen, setIsOpen] = React__default.default.useState(false);
|
|
23
|
+
const toggleActive = () => setIsOpen(!isOpen);
|
|
24
|
+
// Close menu if click event originates outside the menu
|
|
25
|
+
const handleMousedownEvent = React__default.default.useCallback((event) => {
|
|
26
|
+
if (!ref.current?.contains(event.target)) {
|
|
27
|
+
setIsOpen(false);
|
|
28
|
+
}
|
|
29
|
+
return;
|
|
30
|
+
}, []);
|
|
31
|
+
// Close menu if ESC keydown event originates in the menu and transfer focus
|
|
32
|
+
const handleKeyDownEvent = React__default.default.useCallback((event) => {
|
|
33
|
+
if (event.key === "Escape") {
|
|
34
|
+
if (ref.current?.contains(event.target)) {
|
|
35
|
+
document.getElementById(focusableElementId)?.focus();
|
|
36
|
+
setIsOpen(false);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return;
|
|
40
|
+
}, [focusableElementId]);
|
|
41
|
+
// Close menu if focus transfer event originates in the node AND
|
|
42
|
+
// transfers focus to a element OUTSIDE the menu
|
|
43
|
+
const handleFocusOutEvent = React__default.default.useCallback((event) => {
|
|
44
|
+
if (event.relatedTarget && !ref.current?.contains(event.relatedTarget)) {
|
|
45
|
+
setIsOpen(false);
|
|
46
|
+
}
|
|
47
|
+
return;
|
|
48
|
+
}, []);
|
|
49
|
+
React__default.default.useEffect(() => {
|
|
50
|
+
document.addEventListener("mousedown", handleMousedownEvent);
|
|
51
|
+
document.addEventListener("keydown", handleKeyDownEvent);
|
|
52
|
+
document.addEventListener("focusout", handleFocusOutEvent);
|
|
53
|
+
return () => {
|
|
54
|
+
document.removeEventListener("mousedown", handleMousedownEvent);
|
|
55
|
+
document.removeEventListener("keydown", handleKeyDownEvent);
|
|
56
|
+
document.removeEventListener("focusout", handleFocusOutEvent);
|
|
57
|
+
};
|
|
58
|
+
}, [handleMousedownEvent, handleKeyDownEvent, handleFocusOutEvent]);
|
|
59
|
+
return { isOpen, setIsOpen, toggleActive, ref };
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
exports.default = useHeaderMenu;
|
|
@@ -4,80 +4,80 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
|
|
7
|
-
/*
|
|
8
|
-
IBM Confidential
|
|
9
|
-
694970X, 69497O0
|
|
10
|
-
© Copyright IBM Corp. 2022, 2024
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* Creates DOM element to be used as React root.
|
|
14
|
-
*/
|
|
15
|
-
function createRootElement(id) {
|
|
16
|
-
const rootContainer = document.createElement("div");
|
|
17
|
-
rootContainer.setAttribute("id", id);
|
|
18
|
-
return rootContainer;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Appends element as last child of body.
|
|
22
|
-
* @param {HTMLElement} rootElem
|
|
23
|
-
*/
|
|
24
|
-
function addRootElement(rootElem) {
|
|
25
|
-
if (document.body.lastElementChild) {
|
|
26
|
-
document.body.insertBefore(rootElem, document.body.lastElementChild.nextElementSibling);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Hook to create a React Portal.
|
|
31
|
-
* Automatically handles creating and tearing-down the root elements (no SRR
|
|
32
|
-
* makes this trivial), so there is no need to ensure the parent target already
|
|
33
|
-
* exists.
|
|
34
|
-
* @example
|
|
35
|
-
* const target = usePortal(id, [id]);
|
|
36
|
-
* return createPortal(children, target);
|
|
37
|
-
* @param {String} id The id of the target container, e.g 'modal' or 'spotlight'
|
|
38
|
-
* @returns {HTMLElement} The DOM node to use as the Portal target.
|
|
39
|
-
*/
|
|
40
|
-
function usePortal(id) {
|
|
41
|
-
const rootElemRef = React.useRef(null);
|
|
42
|
-
React.useEffect(function setupElement() {
|
|
43
|
-
// Look for existing target dom element to append to
|
|
44
|
-
const existingParent = document.querySelector(`#${id}`);
|
|
45
|
-
// Parent is either a new root or the existing dom element
|
|
46
|
-
const parentElem = existingParent || createRootElement(id);
|
|
47
|
-
// If there is no existing DOM element, add a new one.
|
|
48
|
-
if (!existingParent) {
|
|
49
|
-
addRootElement(parentElem);
|
|
50
|
-
}
|
|
51
|
-
// Add the detached element to the parent
|
|
52
|
-
if (rootElemRef.current) {
|
|
53
|
-
parentElem.appendChild(rootElemRef.current);
|
|
54
|
-
}
|
|
55
|
-
return function removeElement() {
|
|
56
|
-
if (rootElemRef.current) {
|
|
57
|
-
rootElemRef.current.remove();
|
|
58
|
-
if (parentElem.childNodes.length === -1) {
|
|
59
|
-
parentElem.remove();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
}, [id]);
|
|
64
|
-
/**
|
|
65
|
-
* It's important we evaluate this lazily:
|
|
66
|
-
* - We need first render to contain the DOM element, so it shouldn't happen
|
|
67
|
-
* in useEffect. We would normally put this in the constructor().
|
|
68
|
-
* - We can't do 'const rootElemRef = useRef(document.createElement('div))',
|
|
69
|
-
* since this will run every single render (that's a lot).
|
|
70
|
-
* - We want the ref to consistently point to the same DOM element and only
|
|
71
|
-
* ever run once.
|
|
72
|
-
* @link https://reactjs.org/docs/hooks-faq.html#how-to-create-expensive-objects-lazily
|
|
73
|
-
*/
|
|
74
|
-
function getRootElem() {
|
|
75
|
-
if (!rootElemRef.current) {
|
|
76
|
-
rootElemRef.current = document.createElement("div");
|
|
77
|
-
}
|
|
78
|
-
return rootElemRef.current;
|
|
79
|
-
}
|
|
80
|
-
return getRootElem();
|
|
7
|
+
/*
|
|
8
|
+
IBM Confidential
|
|
9
|
+
694970X, 69497O0
|
|
10
|
+
© Copyright IBM Corp. 2022, 2024
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Creates DOM element to be used as React root.
|
|
14
|
+
*/
|
|
15
|
+
function createRootElement(id) {
|
|
16
|
+
const rootContainer = document.createElement("div");
|
|
17
|
+
rootContainer.setAttribute("id", id);
|
|
18
|
+
return rootContainer;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Appends element as last child of body.
|
|
22
|
+
* @param {HTMLElement} rootElem
|
|
23
|
+
*/
|
|
24
|
+
function addRootElement(rootElem) {
|
|
25
|
+
if (document.body.lastElementChild) {
|
|
26
|
+
document.body.insertBefore(rootElem, document.body.lastElementChild.nextElementSibling);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Hook to create a React Portal.
|
|
31
|
+
* Automatically handles creating and tearing-down the root elements (no SRR
|
|
32
|
+
* makes this trivial), so there is no need to ensure the parent target already
|
|
33
|
+
* exists.
|
|
34
|
+
* @example
|
|
35
|
+
* const target = usePortal(id, [id]);
|
|
36
|
+
* return createPortal(children, target);
|
|
37
|
+
* @param {String} id The id of the target container, e.g 'modal' or 'spotlight'
|
|
38
|
+
* @returns {HTMLElement} The DOM node to use as the Portal target.
|
|
39
|
+
*/
|
|
40
|
+
function usePortal(id) {
|
|
41
|
+
const rootElemRef = React.useRef(null);
|
|
42
|
+
React.useEffect(function setupElement() {
|
|
43
|
+
// Look for existing target dom element to append to
|
|
44
|
+
const existingParent = document.querySelector(`#${id}`);
|
|
45
|
+
// Parent is either a new root or the existing dom element
|
|
46
|
+
const parentElem = existingParent || createRootElement(id);
|
|
47
|
+
// If there is no existing DOM element, add a new one.
|
|
48
|
+
if (!existingParent) {
|
|
49
|
+
addRootElement(parentElem);
|
|
50
|
+
}
|
|
51
|
+
// Add the detached element to the parent
|
|
52
|
+
if (rootElemRef.current) {
|
|
53
|
+
parentElem.appendChild(rootElemRef.current);
|
|
54
|
+
}
|
|
55
|
+
return function removeElement() {
|
|
56
|
+
if (rootElemRef.current) {
|
|
57
|
+
rootElemRef.current.remove();
|
|
58
|
+
if (parentElem.childNodes.length === -1) {
|
|
59
|
+
parentElem.remove();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}, [id]);
|
|
64
|
+
/**
|
|
65
|
+
* It's important we evaluate this lazily:
|
|
66
|
+
* - We need first render to contain the DOM element, so it shouldn't happen
|
|
67
|
+
* in useEffect. We would normally put this in the constructor().
|
|
68
|
+
* - We can't do 'const rootElemRef = useRef(document.createElement('div))',
|
|
69
|
+
* since this will run every single render (that's a lot).
|
|
70
|
+
* - We want the ref to consistently point to the same DOM element and only
|
|
71
|
+
* ever run once.
|
|
72
|
+
* @link https://reactjs.org/docs/hooks-faq.html#how-to-create-expensive-objects-lazily
|
|
73
|
+
*/
|
|
74
|
+
function getRootElem() {
|
|
75
|
+
if (!rootElemRef.current) {
|
|
76
|
+
rootElemRef.current = document.createElement("div");
|
|
77
|
+
}
|
|
78
|
+
return rootElemRef.current;
|
|
79
|
+
}
|
|
80
|
+
return getRootElem();
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
exports.default = usePortal;
|
|
@@ -4,39 +4,39 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
|
|
7
|
-
/*
|
|
8
|
-
IBM Confidential
|
|
9
|
-
694970X, 69497O0
|
|
10
|
-
© Copyright IBM Corp. 2022, 2024
|
|
11
|
-
*/
|
|
12
|
-
// https://usehooks.com/useWindowSize/
|
|
13
|
-
/**
|
|
14
|
-
* Gets the dimensions of the window
|
|
15
|
-
*/
|
|
16
|
-
function useWindowSize() {
|
|
17
|
-
// Initialize state with undefined width/height so server and client renders match
|
|
18
|
-
// Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/
|
|
19
|
-
const [windowSize, setWindowSize] = React.useState({
|
|
20
|
-
width: undefined,
|
|
21
|
-
height: undefined,
|
|
22
|
-
});
|
|
23
|
-
React.useEffect(() => {
|
|
24
|
-
// Handler to call on window resize
|
|
25
|
-
function handleResize() {
|
|
26
|
-
// Set window width/height to state
|
|
27
|
-
setWindowSize({
|
|
28
|
-
width: window.innerWidth,
|
|
29
|
-
height: window.innerHeight,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
// Add event listener
|
|
33
|
-
window.addEventListener("resize", handleResize);
|
|
34
|
-
// Call handler right away so state gets updated with initial window size
|
|
35
|
-
handleResize();
|
|
36
|
-
// Remove event listener on cleanup
|
|
37
|
-
return () => window.removeEventListener("resize", handleResize);
|
|
38
|
-
}, []); // Empty array ensures that effect is only run on mount
|
|
39
|
-
return windowSize;
|
|
7
|
+
/*
|
|
8
|
+
IBM Confidential
|
|
9
|
+
694970X, 69497O0
|
|
10
|
+
© Copyright IBM Corp. 2022, 2024
|
|
11
|
+
*/
|
|
12
|
+
// https://usehooks.com/useWindowSize/
|
|
13
|
+
/**
|
|
14
|
+
* Gets the dimensions of the window
|
|
15
|
+
*/
|
|
16
|
+
function useWindowSize() {
|
|
17
|
+
// Initialize state with undefined width/height so server and client renders match
|
|
18
|
+
// Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/
|
|
19
|
+
const [windowSize, setWindowSize] = React.useState({
|
|
20
|
+
width: undefined,
|
|
21
|
+
height: undefined,
|
|
22
|
+
});
|
|
23
|
+
React.useEffect(() => {
|
|
24
|
+
// Handler to call on window resize
|
|
25
|
+
function handleResize() {
|
|
26
|
+
// Set window width/height to state
|
|
27
|
+
setWindowSize({
|
|
28
|
+
width: window.innerWidth,
|
|
29
|
+
height: window.innerHeight,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
// Add event listener
|
|
33
|
+
window.addEventListener("resize", handleResize);
|
|
34
|
+
// Call handler right away so state gets updated with initial window size
|
|
35
|
+
handleResize();
|
|
36
|
+
// Remove event listener on cleanup
|
|
37
|
+
return () => window.removeEventListener("resize", handleResize);
|
|
38
|
+
}, []); // Empty array ensures that effect is only run on mount
|
|
39
|
+
return windowSize;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
exports.default = useWindowSize;
|
|
@@ -11,47 +11,47 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
11
11
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
12
12
|
var cx__default = /*#__PURE__*/_interopDefault(cx);
|
|
13
13
|
|
|
14
|
-
/*
|
|
15
|
-
IBM Confidential
|
|
16
|
-
694970X, 69497O0
|
|
17
|
-
© Copyright IBM Corp. 2022, 2024
|
|
18
|
-
*/
|
|
19
|
-
/**
|
|
20
|
-
* Copyright IBM Corp. 2016, 2018
|
|
21
|
-
*
|
|
22
|
-
* This source code is licensed under the Apache-2.0 license found in the
|
|
23
|
-
* LICENSE file in the root directory of this source tree.
|
|
24
|
-
*/
|
|
25
|
-
const handleOnKeyDown = (event) => {
|
|
26
|
-
if (event.keyCode === 27) {
|
|
27
|
-
event.stopPropagation();
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
const handleClick = (event) => {
|
|
31
|
-
event.preventDefault();
|
|
32
|
-
event.stopPropagation();
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* `ListBox` is a generic container component that handles creating the
|
|
36
|
-
* container class name in response to certain props.
|
|
37
|
-
*/
|
|
38
|
-
const ListBox = React__default.default.forwardRef(function ListBox({ children, className: containerClassName, disabled = false, type = "default", size, invalid, invalidText, warn, warnText, light, isOpen, ...rest }, ref) {
|
|
39
|
-
const showWarning = !invalid && warn;
|
|
40
|
-
const className = cx__default.default({
|
|
41
|
-
[containerClassName]: !!containerClassName,
|
|
42
|
-
[`${settings.prefix}--list-box`]: true,
|
|
43
|
-
[`${settings.prefix}--list-box--${size}`]: size,
|
|
44
|
-
[`${settings.prefix}--list-box--inline`]: type === "inline",
|
|
45
|
-
[`${settings.prefix}--list-box--disabled`]: disabled,
|
|
46
|
-
[`${settings.prefix}--list-box--light`]: light,
|
|
47
|
-
[`${settings.prefix}--list-box--expanded`]: isOpen,
|
|
48
|
-
[`${settings.prefix}--list-box--warning`]: showWarning,
|
|
49
|
-
});
|
|
50
|
-
return (React__default.default.createElement(React__default.default.Fragment, null,
|
|
51
|
-
React__default.default.createElement("div", { ...rest, className: className, ref: ref, onKeyDown: handleOnKeyDown, onClick: handleClick, "data-invalid": invalid || undefined }, children),
|
|
52
|
-
invalid ? React__default.default.createElement("div", { className: `${settings.prefix}--form-requirement` }, invalidText) : null,
|
|
53
|
-
showWarning ? React__default.default.createElement("div", { className: `${settings.prefix}--form-requirement` }, warnText) : null));
|
|
54
|
-
});
|
|
14
|
+
/*
|
|
15
|
+
IBM Confidential
|
|
16
|
+
694970X, 69497O0
|
|
17
|
+
© Copyright IBM Corp. 2022, 2024
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Copyright IBM Corp. 2016, 2018
|
|
21
|
+
*
|
|
22
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
23
|
+
* LICENSE file in the root directory of this source tree.
|
|
24
|
+
*/
|
|
25
|
+
const handleOnKeyDown = (event) => {
|
|
26
|
+
if (event.keyCode === 27) {
|
|
27
|
+
event.stopPropagation();
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const handleClick = (event) => {
|
|
31
|
+
event.preventDefault();
|
|
32
|
+
event.stopPropagation();
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* `ListBox` is a generic container component that handles creating the
|
|
36
|
+
* container class name in response to certain props.
|
|
37
|
+
*/
|
|
38
|
+
const ListBox = React__default.default.forwardRef(function ListBox({ children, className: containerClassName, disabled = false, type = "default", size, invalid, invalidText, warn, warnText, light, isOpen, ...rest }, ref) {
|
|
39
|
+
const showWarning = !invalid && warn;
|
|
40
|
+
const className = cx__default.default({
|
|
41
|
+
[containerClassName]: !!containerClassName,
|
|
42
|
+
[`${settings.prefix}--list-box`]: true,
|
|
43
|
+
[`${settings.prefix}--list-box--${size}`]: size,
|
|
44
|
+
[`${settings.prefix}--list-box--inline`]: type === "inline",
|
|
45
|
+
[`${settings.prefix}--list-box--disabled`]: disabled,
|
|
46
|
+
[`${settings.prefix}--list-box--light`]: light,
|
|
47
|
+
[`${settings.prefix}--list-box--expanded`]: isOpen,
|
|
48
|
+
[`${settings.prefix}--list-box--warning`]: showWarning,
|
|
49
|
+
});
|
|
50
|
+
return (React__default.default.createElement(React__default.default.Fragment, null,
|
|
51
|
+
React__default.default.createElement("div", { ...rest, className: className, ref: ref, onKeyDown: handleOnKeyDown, onClick: handleClick, "data-invalid": invalid || undefined }, children),
|
|
52
|
+
invalid ? React__default.default.createElement("div", { className: `${settings.prefix}--form-requirement` }, invalidText) : null,
|
|
53
|
+
showWarning ? React__default.default.createElement("div", { className: `${settings.prefix}--form-requirement` }, warnText) : null));
|
|
54
|
+
});
|
|
55
55
|
ListBox.displayName = "ListBox";
|
|
56
56
|
|
|
57
57
|
exports.default = ListBox;
|
|
@@ -9,25 +9,25 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
9
9
|
|
|
10
10
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
11
11
|
|
|
12
|
-
/*
|
|
13
|
-
IBM Confidential
|
|
14
|
-
694970X, 69497O0
|
|
15
|
-
© Copyright IBM Corp. 2022, 2024
|
|
16
|
-
*/
|
|
17
|
-
/**
|
|
18
|
-
* Copyright IBM Corp. 2016, 2018
|
|
19
|
-
*
|
|
20
|
-
* This source code is licensed under the Apache-2.0 license found in the
|
|
21
|
-
* LICENSE file in the root directory of this source tree.
|
|
22
|
-
*/
|
|
23
|
-
/**
|
|
24
|
-
* `ListBoxField` is responsible for creating the containing node for valid
|
|
25
|
-
* elements inside of a field. It also provides a11y-related attributes like
|
|
26
|
-
* `role` to make sure a user can focus the given field.
|
|
27
|
-
*/
|
|
28
|
-
function ListBoxField({ children, disabled, tabIndex, ...rest }) {
|
|
29
|
-
const numTabIndex = typeof tabIndex === "string" ? parseInt(tabIndex) : tabIndex;
|
|
30
|
-
return (React__default.default.createElement("div", { className: `${settings.prefix}--list-box__field`, tabIndex: (!disabled && numTabIndex) || -1, ...rest }, children));
|
|
12
|
+
/*
|
|
13
|
+
IBM Confidential
|
|
14
|
+
694970X, 69497O0
|
|
15
|
+
© Copyright IBM Corp. 2022, 2024
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Copyright IBM Corp. 2016, 2018
|
|
19
|
+
*
|
|
20
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
21
|
+
* LICENSE file in the root directory of this source tree.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* `ListBoxField` is responsible for creating the containing node for valid
|
|
25
|
+
* elements inside of a field. It also provides a11y-related attributes like
|
|
26
|
+
* `role` to make sure a user can focus the given field.
|
|
27
|
+
*/
|
|
28
|
+
function ListBoxField({ children, disabled, tabIndex, ...rest }) {
|
|
29
|
+
const numTabIndex = typeof tabIndex === "string" ? parseInt(tabIndex) : tabIndex;
|
|
30
|
+
return (React__default.default.createElement("div", { className: `${settings.prefix}--list-box__field`, tabIndex: (!disabled && numTabIndex) || -1, ...rest }, children));
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
exports.default = ListBoxField;
|
|
@@ -9,25 +9,25 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
9
9
|
|
|
10
10
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
11
11
|
|
|
12
|
-
/*
|
|
13
|
-
IBM Confidential
|
|
14
|
-
694970X, 69497O0
|
|
15
|
-
© Copyright IBM Corp. 2022, 2024
|
|
16
|
-
*/
|
|
17
|
-
/**
|
|
18
|
-
* Copyright IBM Corp. 2016, 2018
|
|
19
|
-
*
|
|
20
|
-
* This source code is licensed under the Apache-2.0 license found in the
|
|
21
|
-
* LICENSE file in the root directory of this source tree.
|
|
22
|
-
*/
|
|
23
|
-
/**
|
|
24
|
-
* `ListBoxMenu` is a simple container node that isolates the `list-box__menu`
|
|
25
|
-
* class into a single component. It is also being used to validate given
|
|
26
|
-
* `children` components.
|
|
27
|
-
*/
|
|
28
|
-
const ListBoxMenu = React__default.default.forwardRef(function ListBoxMenu({ children, id, ...rest }, ref) {
|
|
29
|
-
return (React__default.default.createElement("div", { ref: ref, id: id, className: `${settings.prefix}--list-box__menu`, role: "listbox", ...rest }, children));
|
|
30
|
-
});
|
|
12
|
+
/*
|
|
13
|
+
IBM Confidential
|
|
14
|
+
694970X, 69497O0
|
|
15
|
+
© Copyright IBM Corp. 2022, 2024
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Copyright IBM Corp. 2016, 2018
|
|
19
|
+
*
|
|
20
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
21
|
+
* LICENSE file in the root directory of this source tree.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* `ListBoxMenu` is a simple container node that isolates the `list-box__menu`
|
|
25
|
+
* class into a single component. It is also being used to validate given
|
|
26
|
+
* `children` components.
|
|
27
|
+
*/
|
|
28
|
+
const ListBoxMenu = React__default.default.forwardRef(function ListBoxMenu({ children, id, ...rest }, ref) {
|
|
29
|
+
return (React__default.default.createElement("div", { ref: ref, id: id, className: `${settings.prefix}--list-box__menu`, role: "listbox", ...rest }, children));
|
|
30
|
+
});
|
|
31
31
|
ListBoxMenu.displayName = "ListBoxMenu";
|
|
32
32
|
|
|
33
33
|
exports.default = ListBoxMenu;
|
|
@@ -12,37 +12,37 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
12
12
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
13
13
|
var cx__default = /*#__PURE__*/_interopDefault(cx);
|
|
14
14
|
|
|
15
|
-
/*
|
|
16
|
-
IBM Confidential
|
|
17
|
-
694970X, 69497O0
|
|
18
|
-
© Copyright IBM Corp. 2022, 2024
|
|
19
|
-
*/
|
|
20
|
-
/**
|
|
21
|
-
* Copyright IBM Corp. 2016, 2018
|
|
22
|
-
*
|
|
23
|
-
* This source code is licensed under the Apache-2.0 license found in the
|
|
24
|
-
* LICENSE file in the root directory of this source tree.
|
|
25
|
-
*/
|
|
26
|
-
const translationIds = {
|
|
27
|
-
"close.menu": "close.menu",
|
|
28
|
-
"open.menu": "open.menu",
|
|
29
|
-
};
|
|
30
|
-
const defaultTranslations = {
|
|
31
|
-
[translationIds["close.menu"]]: "Close menu",
|
|
32
|
-
[translationIds["open.menu"]]: "Open menu",
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* `ListBoxMenuIcon` is used to orient the icon up or down depending on the
|
|
36
|
-
* state of the menu for a given `ListBox`
|
|
37
|
-
*/
|
|
38
|
-
const ListBoxMenuIcon = ({ isOpen, translateWithId: t = (id) => defaultTranslations[id] }) => {
|
|
39
|
-
const className = cx__default.default(`${settings.prefix}--list-box__menu-icon`, {
|
|
40
|
-
[`${settings.prefix}--list-box__menu-icon--open`]: isOpen,
|
|
41
|
-
});
|
|
42
|
-
const description = isOpen ? t("close.menu") : t("open.menu");
|
|
43
|
-
return (React__default.default.createElement("div", { className: className },
|
|
44
|
-
React__default.default.createElement(icons.ChevronDown, { name: "chevron--down", "aria-label": description },
|
|
45
|
-
React__default.default.createElement("title", null, description))));
|
|
15
|
+
/*
|
|
16
|
+
IBM Confidential
|
|
17
|
+
694970X, 69497O0
|
|
18
|
+
© Copyright IBM Corp. 2022, 2024
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Copyright IBM Corp. 2016, 2018
|
|
22
|
+
*
|
|
23
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
24
|
+
* LICENSE file in the root directory of this source tree.
|
|
25
|
+
*/
|
|
26
|
+
const translationIds = {
|
|
27
|
+
"close.menu": "close.menu",
|
|
28
|
+
"open.menu": "open.menu",
|
|
29
|
+
};
|
|
30
|
+
const defaultTranslations = {
|
|
31
|
+
[translationIds["close.menu"]]: "Close menu",
|
|
32
|
+
[translationIds["open.menu"]]: "Open menu",
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* `ListBoxMenuIcon` is used to orient the icon up or down depending on the
|
|
36
|
+
* state of the menu for a given `ListBox`
|
|
37
|
+
*/
|
|
38
|
+
const ListBoxMenuIcon = ({ isOpen, translateWithId: t = (id) => defaultTranslations[id] }) => {
|
|
39
|
+
const className = cx__default.default(`${settings.prefix}--list-box__menu-icon`, {
|
|
40
|
+
[`${settings.prefix}--list-box__menu-icon--open`]: isOpen,
|
|
41
|
+
});
|
|
42
|
+
const description = isOpen ? t("close.menu") : t("open.menu");
|
|
43
|
+
return (React__default.default.createElement("div", { className: className },
|
|
44
|
+
React__default.default.createElement(icons.ChevronDown, { name: "chevron--down", "aria-label": description },
|
|
45
|
+
React__default.default.createElement("title", null, description))));
|
|
46
46
|
};
|
|
47
47
|
|
|
48
48
|
exports.default = ListBoxMenuIcon;
|