@boomerang-io/carbon-addons-boomerang-react 4.6.11-beta.23 → 4.6.11-beta.24

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.
Files changed (255) hide show
  1. package/README.md +162 -162
  2. package/dist/cjs/components/AboutPlatform/AboutPlatform.js +50 -50
  3. package/dist/cjs/components/AdvantageSideNav/AdvantageSideNav.js +245 -229
  4. package/dist/cjs/components/AutoSuggest/AutoSuggest.js +101 -101
  5. package/dist/cjs/components/Avatar/Avatar.js +18 -18
  6. package/dist/cjs/components/CheckboxList/CheckboxList.js +34 -34
  7. package/dist/cjs/components/ComboBox/ComboBox.js +103 -103
  8. package/dist/cjs/components/ComboBoxMultiSelect/ComboBoxMultiSelect.js +32 -32
  9. package/dist/cjs/components/ComboBoxMultiSelect/MultiSelect.js +208 -208
  10. package/dist/cjs/components/ComposedModal/ComposedModal.js +80 -80
  11. package/dist/cjs/components/ConfirmModal/ConfirmModal.js +43 -43
  12. package/dist/cjs/components/Creatable/Creatable.js +137 -137
  13. package/dist/cjs/components/DataDrivenInput/DataDrivenInput.js +226 -226
  14. package/dist/cjs/components/DateInput/DateInput.js +35 -35
  15. package/dist/cjs/components/DecisionButtons/DecisionButtons.js +61 -61
  16. package/dist/cjs/components/DelayedRender/DelayedRender.js +17 -17
  17. package/dist/cjs/components/DynamicFormik/DynamicFormik.js +578 -578
  18. package/dist/cjs/components/Error403/Error403.js +13 -13
  19. package/dist/cjs/components/Error403/ForbiddenErrorBackground.js +113 -113
  20. package/dist/cjs/components/Error403/GraphicWrangler/GraphicWrangler.js +62 -62
  21. package/dist/cjs/components/Error404/Error404.js +13 -13
  22. package/dist/cjs/components/Error404/GraphicLoch/GraphicLoch.js +17 -17
  23. package/dist/cjs/components/Error404/NotFoundErrorBackground.js +129 -129
  24. package/dist/cjs/components/ErrorBoundary/ErrorBoundary.js +32 -32
  25. package/dist/cjs/components/ErrorDragon/ErrorDragon.js +13 -13
  26. package/dist/cjs/components/ErrorDragon/assets/ErrorGraphic.js +35 -35
  27. package/dist/cjs/components/ErrorFullPage/ErrorFullPage.js +10 -10
  28. package/dist/cjs/components/ErrorMessage/ErrorMessage.js +22 -22
  29. package/dist/cjs/components/ErrorPage/ErrorPage.js +11 -11
  30. package/dist/cjs/components/ErrorPageCore/ErrorPageCore.js +15 -15
  31. package/dist/cjs/components/ErrorPageCore/GenericErrorBackground.js +124 -124
  32. package/dist/cjs/components/FeatureHeader/FeatureHeader.js +29 -29
  33. package/dist/cjs/components/FeatureNavTab/FeatureNavTab.js +12 -12
  34. package/dist/cjs/components/FeatureNavTabs/FeatureNavTabs.js +12 -12
  35. package/dist/cjs/components/FeatureSideNav/FeatureSideNav.js +12 -12
  36. package/dist/cjs/components/FeatureSideNav/FeatureSideNavFooter.js +8 -8
  37. package/dist/cjs/components/FeatureSideNav/FeatureSideNavHeader.js +8 -8
  38. package/dist/cjs/components/FeatureSideNav/FeatureSideNavLinks.js +14 -14
  39. package/dist/cjs/components/FeatureSideNavLink/FeatureSideNavLink.js +12 -12
  40. package/dist/cjs/components/Feedback/Feedback.js +40 -40
  41. package/dist/cjs/components/FlowModal/FlowModal.js +141 -141
  42. package/dist/cjs/components/FlowModal/FlowModalForm.js +12 -12
  43. package/dist/cjs/components/Header/Header.js +179 -179
  44. package/dist/cjs/components/Header/HeaderAppSwitcher.js +94 -94
  45. package/dist/cjs/components/Header/HeaderMenu.js +7 -7
  46. package/dist/cjs/components/Header/HeaderMenuItem.js +52 -52
  47. package/dist/cjs/components/Header/HeaderTeamSwitcher.js +303 -303
  48. package/dist/cjs/components/Header/UserRequests.js +29 -29
  49. package/dist/cjs/components/ImageModal/ImageModal.js +17 -17
  50. package/dist/cjs/components/Loading/Loading.js +8 -8
  51. package/dist/cjs/components/MemberBar/MemberBar.js +20 -20
  52. package/dist/cjs/components/Modal/Modal.js +20 -20
  53. package/dist/cjs/components/ModalConfirmEdit/ModalConfirmArray.js +14 -14
  54. package/dist/cjs/components/ModalConfirmEdit/ModalConfirmDetails.js +11 -11
  55. package/dist/cjs/components/ModalConfirmEdit/ModalConfirmEdit.js +17 -17
  56. package/dist/cjs/components/ModalForm/ModalForm.js +9 -9
  57. package/dist/cjs/components/Notifications/NotificationsContainer.js +22 -22
  58. package/dist/cjs/components/Notifications/ToastNotification.js +21 -21
  59. package/dist/cjs/components/Notifications/notify.js +17 -17
  60. package/dist/cjs/components/PlatformBanner/PlatformBanner.js +8 -8
  61. package/dist/cjs/components/PlatformNotifications/PlatformNotification.js +17 -17
  62. package/dist/cjs/components/PlatformNotifications/PlatformNotificationsContainer.js +136 -136
  63. package/dist/cjs/components/Portal/Portal.js +14 -14
  64. package/dist/cjs/components/PrivacyRedirect/PrivacyRedirect.js +30 -30
  65. package/dist/cjs/components/PrivacyStatement/PrivacyStatement.js +90 -90
  66. package/dist/cjs/components/ProfileSettings/ProfileSettings.js +124 -124
  67. package/dist/cjs/components/ProtectedRoute/ProtectedRoute.js +13 -13
  68. package/dist/cjs/components/RadioGroup/RadioGroup.js +33 -33
  69. package/dist/cjs/components/RichTextArea/RichTextArea.js +142 -142
  70. package/dist/cjs/components/SignOut/SignOut.js +27 -27
  71. package/dist/cjs/components/SupportCenter/SupportCenter.js +65 -65
  72. package/dist/cjs/components/TextArea/TextArea.js +16 -16
  73. package/dist/cjs/components/TextInput/TextInput.js +13 -13
  74. package/dist/cjs/components/Toggle/Toggle.js +22 -22
  75. package/dist/cjs/components/TooltipHover/TooltipHover.js +39 -39
  76. package/dist/cjs/components/UIShell/UIShell.js +94 -94
  77. package/dist/cjs/config/servicesConfig.js +21 -21
  78. package/dist/cjs/constants/DataDrivenInputTypes.js +74 -74
  79. package/dist/cjs/constants/UserType.js +13 -13
  80. package/dist/cjs/hooks/useHeaderMenu.js +49 -49
  81. package/dist/cjs/hooks/usePortal.js +74 -74
  82. package/dist/cjs/hooks/useWindowSize.js +33 -33
  83. package/dist/cjs/internal/ListBox/ListBox.js +41 -41
  84. package/dist/cjs/internal/ListBox/ListBoxField.js +19 -19
  85. package/dist/cjs/internal/ListBox/ListBoxMenu.js +19 -19
  86. package/dist/cjs/internal/ListBox/ListBoxMenuIcon.js +31 -31
  87. package/dist/cjs/internal/ListBox/ListBoxMenuItem.js +38 -38
  88. package/dist/cjs/internal/ListBox/ListBoxSelection.js +64 -64
  89. package/dist/cjs/internal/ListBox/index.js +10 -10
  90. package/dist/cjs/internal/keyboard/keys.js +16 -16
  91. package/dist/cjs/internal/keyboard/match.js +67 -67
  92. package/dist/cjs/internal/settings.js +5 -5
  93. package/dist/cjs/tools/accessibility.js +13 -13
  94. package/dist/cjs/tools/createPropAdapter.js +44 -44
  95. package/dist/cjs/tools/isUrl.js +39 -39
  96. package/dist/cjs/tools/setupGetInstanceId.js +20 -20
  97. package/dist/cjs/tools/useSetState.js +12 -12
  98. package/dist/cjs/tools/yupAst/astGenerator.js +212 -212
  99. package/dist/cjs/tools/yupAst/customValidators.js +17 -17
  100. package/dist/esm/components/AboutPlatform/AboutPlatform.js +50 -50
  101. package/dist/esm/components/AdvantageSideNav/AdvantageSideNav.js +245 -229
  102. package/dist/esm/components/AutoSuggest/AutoSuggest.js +101 -101
  103. package/dist/esm/components/Avatar/Avatar.js +18 -18
  104. package/dist/esm/components/CheckboxList/CheckboxList.js +34 -34
  105. package/dist/esm/components/ComboBox/ComboBox.js +103 -103
  106. package/dist/esm/components/ComboBoxMultiSelect/ComboBoxMultiSelect.js +32 -32
  107. package/dist/esm/components/ComboBoxMultiSelect/MultiSelect.js +208 -208
  108. package/dist/esm/components/ComposedModal/ComposedModal.js +80 -80
  109. package/dist/esm/components/ConfirmModal/ConfirmModal.js +43 -43
  110. package/dist/esm/components/Creatable/Creatable.js +137 -137
  111. package/dist/esm/components/DataDrivenInput/DataDrivenInput.js +226 -226
  112. package/dist/esm/components/DateInput/DateInput.js +35 -35
  113. package/dist/esm/components/DecisionButtons/DecisionButtons.js +61 -61
  114. package/dist/esm/components/DelayedRender/DelayedRender.js +17 -17
  115. package/dist/esm/components/DynamicFormik/DynamicFormik.js +578 -578
  116. package/dist/esm/components/Error403/Error403.js +13 -13
  117. package/dist/esm/components/Error403/ForbiddenErrorBackground.js +113 -113
  118. package/dist/esm/components/Error403/GraphicWrangler/GraphicWrangler.js +62 -62
  119. package/dist/esm/components/Error404/Error404.js +13 -13
  120. package/dist/esm/components/Error404/GraphicLoch/GraphicLoch.js +17 -17
  121. package/dist/esm/components/Error404/NotFoundErrorBackground.js +129 -129
  122. package/dist/esm/components/ErrorBoundary/ErrorBoundary.js +32 -32
  123. package/dist/esm/components/ErrorDragon/ErrorDragon.js +13 -13
  124. package/dist/esm/components/ErrorDragon/assets/ErrorGraphic.js +35 -35
  125. package/dist/esm/components/ErrorFullPage/ErrorFullPage.js +10 -10
  126. package/dist/esm/components/ErrorMessage/ErrorMessage.js +22 -22
  127. package/dist/esm/components/ErrorPage/ErrorPage.js +11 -11
  128. package/dist/esm/components/ErrorPageCore/ErrorPageCore.js +15 -15
  129. package/dist/esm/components/ErrorPageCore/GenericErrorBackground.js +124 -124
  130. package/dist/esm/components/FeatureHeader/FeatureHeader.js +29 -29
  131. package/dist/esm/components/FeatureNavTab/FeatureNavTab.js +12 -12
  132. package/dist/esm/components/FeatureNavTabs/FeatureNavTabs.js +12 -12
  133. package/dist/esm/components/FeatureSideNav/FeatureSideNav.js +12 -12
  134. package/dist/esm/components/FeatureSideNav/FeatureSideNavFooter.js +8 -8
  135. package/dist/esm/components/FeatureSideNav/FeatureSideNavHeader.js +8 -8
  136. package/dist/esm/components/FeatureSideNav/FeatureSideNavLinks.js +14 -14
  137. package/dist/esm/components/FeatureSideNavLink/FeatureSideNavLink.js +12 -12
  138. package/dist/esm/components/Feedback/Feedback.js +40 -40
  139. package/dist/esm/components/FlowModal/FlowModal.js +141 -141
  140. package/dist/esm/components/FlowModal/FlowModalForm.js +12 -12
  141. package/dist/esm/components/Header/Header.js +179 -179
  142. package/dist/esm/components/Header/HeaderAppSwitcher.js +94 -94
  143. package/dist/esm/components/Header/HeaderMenu.js +7 -7
  144. package/dist/esm/components/Header/HeaderMenuItem.js +52 -52
  145. package/dist/esm/components/Header/HeaderTeamSwitcher.js +303 -303
  146. package/dist/esm/components/Header/UserRequests.js +29 -29
  147. package/dist/esm/components/ImageModal/ImageModal.js +17 -17
  148. package/dist/esm/components/Loading/Loading.js +8 -8
  149. package/dist/esm/components/MemberBar/MemberBar.js +20 -20
  150. package/dist/esm/components/Modal/Modal.js +20 -20
  151. package/dist/esm/components/ModalConfirmEdit/ModalConfirmArray.js +14 -14
  152. package/dist/esm/components/ModalConfirmEdit/ModalConfirmDetails.js +11 -11
  153. package/dist/esm/components/ModalConfirmEdit/ModalConfirmEdit.js +17 -17
  154. package/dist/esm/components/ModalForm/ModalForm.js +9 -9
  155. package/dist/esm/components/Notifications/NotificationsContainer.js +22 -22
  156. package/dist/esm/components/Notifications/ToastNotification.js +21 -21
  157. package/dist/esm/components/Notifications/notify.js +17 -17
  158. package/dist/esm/components/PlatformBanner/PlatformBanner.js +8 -8
  159. package/dist/esm/components/PlatformNotifications/PlatformNotification.js +17 -17
  160. package/dist/esm/components/PlatformNotifications/PlatformNotificationsContainer.js +136 -136
  161. package/dist/esm/components/Portal/Portal.js +14 -14
  162. package/dist/esm/components/PrivacyRedirect/PrivacyRedirect.js +30 -30
  163. package/dist/esm/components/PrivacyStatement/PrivacyStatement.js +90 -90
  164. package/dist/esm/components/ProfileSettings/ProfileSettings.js +124 -124
  165. package/dist/esm/components/ProtectedRoute/ProtectedRoute.js +13 -13
  166. package/dist/esm/components/RadioGroup/RadioGroup.js +33 -33
  167. package/dist/esm/components/RichTextArea/RichTextArea.js +142 -142
  168. package/dist/esm/components/SignOut/SignOut.js +27 -27
  169. package/dist/esm/components/SupportCenter/SupportCenter.js +65 -65
  170. package/dist/esm/components/TextArea/TextArea.js +16 -16
  171. package/dist/esm/components/TextInput/TextInput.js +13 -13
  172. package/dist/esm/components/Toggle/Toggle.js +22 -22
  173. package/dist/esm/components/TooltipHover/TooltipHover.js +39 -39
  174. package/dist/esm/components/UIShell/UIShell.js +94 -94
  175. package/dist/esm/config/servicesConfig.js +21 -21
  176. package/dist/esm/constants/DataDrivenInputTypes.js +74 -74
  177. package/dist/esm/constants/UserType.js +13 -13
  178. package/dist/esm/hooks/useHeaderMenu.js +49 -49
  179. package/dist/esm/hooks/usePortal.js +74 -74
  180. package/dist/esm/hooks/useWindowSize.js +33 -33
  181. package/dist/esm/internal/ListBox/ListBox.js +41 -41
  182. package/dist/esm/internal/ListBox/ListBoxField.js +19 -19
  183. package/dist/esm/internal/ListBox/ListBoxMenu.js +19 -19
  184. package/dist/esm/internal/ListBox/ListBoxMenuIcon.js +31 -31
  185. package/dist/esm/internal/ListBox/ListBoxMenuItem.js +38 -38
  186. package/dist/esm/internal/ListBox/ListBoxSelection.js +64 -64
  187. package/dist/esm/internal/ListBox/index.js +10 -10
  188. package/dist/esm/internal/keyboard/keys.js +16 -16
  189. package/dist/esm/internal/keyboard/match.js +67 -67
  190. package/dist/esm/internal/settings.js +5 -5
  191. package/dist/esm/tools/accessibility.js +13 -13
  192. package/dist/esm/tools/createPropAdapter.js +44 -44
  193. package/dist/esm/tools/isUrl.js +39 -39
  194. package/dist/esm/tools/setupGetInstanceId.js +20 -20
  195. package/dist/esm/tools/useSetState.js +12 -12
  196. package/dist/esm/tools/yupAst/astGenerator.js +212 -212
  197. package/dist/esm/tools/yupAst/customValidators.js +17 -17
  198. package/dist/types/index.d.ts +1335 -1420
  199. package/package.json +167 -167
  200. package/scss/components/AboutPlatform/_aboutPlatform.scss +139 -139
  201. package/scss/components/AdvantageSideNav/_advantageSideNav.scss +261 -261
  202. package/scss/components/AutoSuggest/_autoSuggest.scss +62 -62
  203. package/scss/components/Avatar/_avatar.scss +32 -32
  204. package/scss/components/CheckboxList/_checkboxList.scss +26 -26
  205. package/scss/components/ComboBox/_combobox.scss +23 -23
  206. package/scss/components/ComboBoxMultiSelect/_comboBoxMultiSelect.scss +53 -53
  207. package/scss/components/ConfirmModal/_confirmModal.scss +12 -12
  208. package/scss/components/Creatable/_creatable.scss +48 -48
  209. package/scss/components/DateInput/_dateInput.scss +36 -36
  210. package/scss/components/DecisionButtons/_decisionButtons.scss +132 -132
  211. package/scss/components/DynamicFormik/_dynamicFormik.scss +17 -17
  212. package/scss/components/ErrorBoundary/_errorBoundary.scss +12 -12
  213. package/scss/components/ErrorDragon/_errorDragon.scss +55 -55
  214. package/scss/components/ErrorMessage/_errorMessage.scss +43 -43
  215. package/scss/components/ErrorPage/_errorPage.scss +66 -66
  216. package/scss/components/ErrorPageCore/_errorPageCore.scss +73 -73
  217. package/scss/components/FeatureHeader/_featureHeader.scss +67 -67
  218. package/scss/components/FeatureNavTab/_featureNavTab.scss +27 -27
  219. package/scss/components/FeatureSideNav/_featureSideNav.scss +76 -76
  220. package/scss/components/FeatureSideNavLink/_featureSideNavLink.scss +49 -49
  221. package/scss/components/Feedback/_feedback.scss +46 -46
  222. package/scss/components/Header/_header.scss +179 -179
  223. package/scss/components/Header/_headerAppSwitcher.scss +117 -117
  224. package/scss/components/Header/_headerMenu.scss +30 -30
  225. package/scss/components/Header/_headerMenuItem.scss +65 -65
  226. package/scss/components/Header/_headerTeamSwitcher.scss +195 -195
  227. package/scss/components/Header/_userRequests.scss +36 -36
  228. package/scss/components/ImageModal/_imageModal.scss +51 -51
  229. package/scss/components/MemberBar/_memberBar.scss +99 -99
  230. package/scss/components/Modal/_modal.scss +163 -163
  231. package/scss/components/ModalConfirmEdit/_modalConfirmEdit.scss +113 -113
  232. package/scss/components/Notifications/_notifications.scss +57 -57
  233. package/scss/components/PlatformBanner/_platformBanner.scss +30 -30
  234. package/scss/components/PlatformNotifications/_platformNotifications.scss +230 -230
  235. package/scss/components/PrivacyRedirect/_privacyRedirect.scss +43 -43
  236. package/scss/components/PrivacyStatement/_privacyStatement.scss +137 -137
  237. package/scss/components/ProfileSettings/_profileSettings.scss +117 -117
  238. package/scss/components/ProtectedRoute/_protectedRoute.scss +32 -32
  239. package/scss/components/RadioGroup/_radioGroup.scss +46 -46
  240. package/scss/components/RichTextArea/_richTextArea.scss +82 -82
  241. package/scss/components/SignOut/_signOut.scss +51 -51
  242. package/scss/components/SupportCenter/_supportCenter.scss +16 -16
  243. package/scss/components/TextArea/_textArea.scss +19 -19
  244. package/scss/components/TextInput/_textInput.scss +26 -26
  245. package/scss/components/Toggle/_toggle.scss +80 -80
  246. package/scss/components/TooltipHover/_tooltip.scss +48 -48
  247. package/scss/global/_config.scss +14 -14
  248. package/scss/global/_tippy.scss +49 -49
  249. package/scss/global/index.scss +401 -401
  250. package/scss/global/themes/_boomerang.scss +184 -184
  251. package/scss/global/themes/_default.scss +79 -79
  252. package/scss/global/themes/_shell-tokens.scss +42 -42
  253. package/scss/global/utils/_animations.scss +15 -15
  254. package/scss/global/utils/_mixins.scss +67 -67
  255. 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;