@carbon/ibm-products 1.0.0-rc.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (479) hide show
  1. package/README.md +19 -18
  2. package/css/index-full-carbon.css +33427 -0
  3. package/css/index-full-carbon.css.map +1 -0
  4. package/css/index-full-carbon.min.css +9 -0
  5. package/css/index-without-carbon-released-only.css +7831 -0
  6. package/css/index-without-carbon-released-only.css.map +1 -0
  7. package/css/index-without-carbon-released-only.min.css +9 -0
  8. package/css/index-without-carbon.css +9841 -0
  9. package/css/index-without-carbon.css.map +1 -0
  10. package/css/index-without-carbon.min.css +9 -0
  11. package/css/index.css +22317 -0
  12. package/css/index.css.map +1 -0
  13. package/css/index.min.css +9 -0
  14. package/es/components/APIKeyModal/APIKeyDownloader.js +103 -0
  15. package/es/components/APIKeyModal/APIKeyModal.js +593 -0
  16. package/es/components/APIKeyModal/index.js +7 -0
  17. package/es/components/AboutModal/AboutModal.js +202 -0
  18. package/es/components/AboutModal/index.js +7 -0
  19. package/es/components/ActionBar/ActionBar.js +274 -0
  20. package/es/components/ActionBar/ActionBarItem.js +99 -0
  21. package/es/components/ActionBar/ActionBarOverflowItems.js +70 -0
  22. package/es/components/ActionBar/index.js +8 -0
  23. package/es/components/ActionSet/ActionSet.js +195 -0
  24. package/es/components/ActionSet/actions.js +48 -0
  25. package/es/components/ActionSet/index.js +7 -0
  26. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +349 -0
  27. package/es/components/BreadcrumbWithOverflow/index.js +8 -0
  28. package/es/components/ButtonMenu/ButtonMenu.js +108 -0
  29. package/es/components/ButtonMenu/ButtonMenuItem.js +30 -0
  30. package/es/components/ButtonMenu/index.js +8 -0
  31. package/es/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +231 -0
  32. package/es/components/ButtonSetWithOverflow/index.js +7 -0
  33. package/es/components/Card/Card.js +242 -0
  34. package/es/components/Card/CardFooter.js +72 -0
  35. package/es/components/Card/CardHeader.js +53 -0
  36. package/es/components/Card/index.js +9 -0
  37. package/es/components/Cascade/Cascade.js +88 -0
  38. package/es/components/Cascade/index.js +1 -0
  39. package/es/components/ComboButton/ComboButton.js +110 -0
  40. package/es/components/ComboButton/ComboButtonItem/index.js +39 -0
  41. package/es/components/ComboButton/index.js +8 -0
  42. package/es/components/CreateFullPage/CreateFullPage.js +454 -0
  43. package/es/components/CreateFullPage/CreateFullPageSection.js +53 -0
  44. package/es/components/CreateFullPage/CreateFullPageStep.js +112 -0
  45. package/es/components/CreateFullPage/constants.js +8 -0
  46. package/es/components/CreateFullPage/index.js +9 -0
  47. package/es/components/CreateInfluencer/CreateInfluencer.js +273 -0
  48. package/es/components/CreateInfluencer/index.js +7 -0
  49. package/es/components/CreateModal/CreateModal.js +152 -0
  50. package/es/components/CreateModal/index.js +8 -0
  51. package/es/components/CreateSidePanel/CreateSidePanel.js +175 -0
  52. package/es/components/CreateSidePanel/index.js +7 -0
  53. package/es/components/CreateTearsheet/CreateTearsheet.js +371 -0
  54. package/es/components/CreateTearsheet/CreateTearsheetDivider.js +33 -0
  55. package/es/components/CreateTearsheet/CreateTearsheetSection.js +83 -0
  56. package/es/components/CreateTearsheet/CreateTearsheetStep.js +129 -0
  57. package/es/components/CreateTearsheet/constants.js +8 -0
  58. package/es/components/CreateTearsheet/index.js +10 -0
  59. package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +244 -0
  60. package/es/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +295 -0
  61. package/es/components/CreateTearsheet/preview-components/MultiStepWithSectionsTearsheet.js +327 -0
  62. package/es/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +174 -0
  63. package/es/components/CreateTearsheetNarrow/index.js +7 -0
  64. package/es/components/EditSidePanel/EditSidePanel.js +209 -0
  65. package/es/components/EditSidePanel/index.js +7 -0
  66. package/es/components/EmptyStates/EmptyState.js +118 -0
  67. package/es/components/EmptyStates/EmptyStateContent.js +85 -0
  68. package/es/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +113 -0
  69. package/es/components/EmptyStates/ErrorEmptyState/index.js +7 -0
  70. package/es/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +113 -0
  71. package/es/components/EmptyStates/NoDataEmptyState/index.js +7 -0
  72. package/es/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +113 -0
  73. package/es/components/EmptyStates/NoTagsEmptyState/index.js +7 -0
  74. package/es/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +113 -0
  75. package/es/components/EmptyStates/NotFoundEmptyState/index.js +7 -0
  76. package/es/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +113 -0
  77. package/es/components/EmptyStates/NotificationsEmptyState/index.js +7 -0
  78. package/es/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +113 -0
  79. package/es/components/EmptyStates/UnauthorizedEmptyState/index.js +7 -0
  80. package/es/components/EmptyStates/assets/ErrorIllustration.js +217 -0
  81. package/es/components/EmptyStates/assets/NoDataIllustration.js +180 -0
  82. package/es/components/EmptyStates/assets/NoTagsIllustration.js +488 -0
  83. package/es/components/EmptyStates/assets/NotFoundIllustration.js +365 -0
  84. package/es/components/EmptyStates/assets/NotificationsIllustration.js +336 -0
  85. package/es/components/EmptyStates/assets/UnauthorizedIllustration.js +309 -0
  86. package/es/components/EmptyStates/index.js +13 -0
  87. package/es/components/ExampleComponent/ExampleComponent.js +160 -0
  88. package/es/components/ExampleComponent/index.js +7 -0
  89. package/es/components/ExportModal/ExportModal.js +276 -0
  90. package/es/components/ExportModal/index.js +7 -0
  91. package/es/components/ExpressiveCard/ExpressiveCard.js +138 -0
  92. package/es/components/ExpressiveCard/index.js +7 -0
  93. package/es/components/HTTPErrors/HTTPError403/HTTPError403.js +87 -0
  94. package/es/components/HTTPErrors/HTTPError403/index.js +7 -0
  95. package/es/components/HTTPErrors/HTTPError404/HTTPError404.js +87 -0
  96. package/es/components/HTTPErrors/HTTPError404/index.js +7 -0
  97. package/es/components/HTTPErrors/HTTPErrorContent.js +84 -0
  98. package/es/components/HTTPErrors/HTTPErrorOther/HTTPErrorOther.js +87 -0
  99. package/es/components/HTTPErrors/HTTPErrorOther/index.js +7 -0
  100. package/es/components/HTTPErrors/assets/HTTPErrorSvg403.js +1238 -0
  101. package/es/components/HTTPErrors/assets/HTTPErrorSvg404.js +1037 -0
  102. package/es/components/HTTPErrors/assets/HTTPErrorSvgOther.js +1088 -0
  103. package/es/components/HTTPErrors/index.js +9 -0
  104. package/es/components/ImportModal/ImportModal.js +421 -0
  105. package/es/components/ImportModal/index.js +7 -0
  106. package/es/components/LoadingBar/LoadingBar.js +160 -0
  107. package/es/components/LoadingBar/index.js +7 -0
  108. package/es/components/ModifiedTabs/ModifiedTabLabelNew.js +34 -0
  109. package/es/components/ModifiedTabs/ModifiedTabLabelWithClose.js +54 -0
  110. package/es/components/ModifiedTabs/ModifiedTabs.js +113 -0
  111. package/es/components/ModifiedTabs/index.js +1 -0
  112. package/es/components/NotificationsPanel/NotificationsPanel.js +547 -0
  113. package/es/components/NotificationsPanel/NotificationsPanel_data.js +134 -0
  114. package/es/components/NotificationsPanel/index.js +7 -0
  115. package/es/components/NotificationsPanel/preview-components/UnreadNotificationBell.js +49 -0
  116. package/es/components/NotificationsPanel/utils.js +56 -0
  117. package/es/components/OptionsTile/OptionsTile.js +306 -0
  118. package/es/components/OptionsTile/index.js +7 -0
  119. package/es/components/PageHeader/PageHeader.js +779 -0
  120. package/es/components/PageHeader/PageHeaderDemo.data.js +614 -0
  121. package/es/components/PageHeader/PageHeaderTitle.js +49 -0
  122. package/es/components/PageHeader/PageHeaderUtils.js +187 -0
  123. package/es/components/PageHeader/index.js +7 -0
  124. package/es/components/ProductiveCard/ProductiveCard.js +118 -0
  125. package/es/components/ProductiveCard/index.js +7 -0
  126. package/es/components/RemoveModal/RemoveModal.js +189 -0
  127. package/es/components/RemoveModal/index.js +7 -0
  128. package/es/components/Saving/Saving.js +156 -0
  129. package/es/components/Saving/index.js +7 -0
  130. package/es/components/SidePanel/SidePanel.js +643 -0
  131. package/es/components/SidePanel/constants.js +13 -0
  132. package/es/components/SidePanel/index.js +7 -0
  133. package/es/components/StatusIcon/StatusIcon.js +132 -0
  134. package/es/components/StatusIcon/index.js +7 -0
  135. package/es/components/TagSet/TagSet.js +326 -0
  136. package/es/components/TagSet/TagSetModal.js +118 -0
  137. package/es/components/TagSet/TagSetOverflow.js +121 -0
  138. package/es/components/TagSet/index.js +7 -0
  139. package/es/components/Tearsheet/Tearsheet.js +180 -0
  140. package/es/components/Tearsheet/TearsheetNarrow.js +148 -0
  141. package/es/components/Tearsheet/TearsheetShell.js +390 -0
  142. package/es/components/Tearsheet/index.js +8 -0
  143. package/es/components/Toolbar/Toolbar.js +54 -0
  144. package/es/components/Toolbar/ToolbarButton.js +55 -0
  145. package/es/components/Toolbar/ToolbarGroup.js +37 -0
  146. package/es/components/Toolbar/index.js +9 -0
  147. package/es/components/UserProfileImage/UserProfileImage.js +136 -0
  148. package/es/components/UserProfileImage/index.js +8 -0
  149. package/es/components/WebTerminal/WebTerminal.js +168 -0
  150. package/es/components/WebTerminal/index.js +1 -0
  151. package/es/components/WebTerminal/preview-components/Navigation.js +31 -0
  152. package/es/components/WebTerminal/preview-components/documentationLinks.js +25 -0
  153. package/es/components/WebTerminal/preview-components/index.js +5 -0
  154. package/es/components/_Canary/Canary.js +48 -0
  155. package/es/components/_Canary/index.js +7 -0
  156. package/es/components/index.js +37 -0
  157. package/es/generated/feature-flags/feature-flags.js +15 -0
  158. package/es/global/js/hooks/index.js +14 -0
  159. package/es/global/js/hooks/useClickOutside.js +21 -0
  160. package/es/global/js/hooks/useCreateComponentFocus.js +37 -0
  161. package/es/global/js/hooks/useCreateComponentStepChange.js +250 -0
  162. package/es/global/js/hooks/usePreviousValue.js +19 -0
  163. package/es/global/js/hooks/useResetCreateComponent.js +40 -0
  164. package/es/global/js/hooks/useValidCreateStepCount.js +23 -0
  165. package/es/global/js/hooks/useWindowResize.js +67 -0
  166. package/es/global/js/hooks/useWindowScroll.js +80 -0
  167. package/es/global/js/package-settings.js +161 -0
  168. package/es/global/js/utils/ClickListener.js +70 -0
  169. package/es/global/js/utils/Wrap.js +85 -0
  170. package/es/global/js/utils/devtools.js +20 -0
  171. package/es/global/js/utils/getFocusableElements.js +14 -0
  172. package/es/global/js/utils/hasValidType.js +94 -0
  173. package/es/global/js/utils/keyboardNavigation.js +34 -0
  174. package/es/global/js/utils/pconsole.js +36 -0
  175. package/es/global/js/utils/props-helper.js +272 -0
  176. package/es/global/js/utils/scrollableAncestor.js +40 -0
  177. package/es/global/js/utils/story-helper.js +75 -0
  178. package/es/global/js/utils/test-helper.js +296 -0
  179. package/es/global/js/utils/unwrap-if-fragment.js +71 -0
  180. package/es/global/js/utils/uuidv4.js +12 -0
  181. package/es/global/js/utils/uuidv4.spec.js +23 -0
  182. package/es/global/js/utils/wait.js +8 -0
  183. package/es/global/js/utils/wrapFocus.js +74 -0
  184. package/es/index.js +8 -0
  185. package/es/settings.js +73 -0
  186. package/lib/components/APIKeyModal/APIKeyDownloader.js +127 -0
  187. package/lib/components/APIKeyModal/APIKeyModal.js +619 -0
  188. package/lib/components/APIKeyModal/index.js +13 -0
  189. package/lib/components/AboutModal/AboutModal.js +222 -0
  190. package/lib/components/AboutModal/index.js +13 -0
  191. package/lib/components/ActionBar/ActionBar.js +294 -0
  192. package/lib/components/ActionBar/ActionBarItem.js +107 -0
  193. package/lib/components/ActionBar/ActionBarOverflowItems.js +94 -0
  194. package/lib/components/ActionBar/index.js +21 -0
  195. package/lib/components/ActionSet/ActionSet.js +205 -0
  196. package/lib/components/ActionSet/actions.js +60 -0
  197. package/lib/components/ActionSet/index.js +13 -0
  198. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +366 -0
  199. package/lib/components/BreadcrumbWithOverflow/index.js +13 -0
  200. package/lib/components/ButtonMenu/ButtonMenu.js +115 -0
  201. package/lib/components/ButtonMenu/ButtonMenuItem.js +44 -0
  202. package/lib/components/ButtonMenu/index.js +21 -0
  203. package/lib/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +255 -0
  204. package/lib/components/ButtonSetWithOverflow/index.js +13 -0
  205. package/lib/components/Card/Card.js +260 -0
  206. package/lib/components/Card/CardFooter.js +90 -0
  207. package/lib/components/Card/CardHeader.js +70 -0
  208. package/lib/components/Card/index.js +29 -0
  209. package/lib/components/Cascade/Cascade.js +109 -0
  210. package/lib/components/Cascade/index.js +13 -0
  211. package/lib/components/ComboButton/ComboButton.js +129 -0
  212. package/lib/components/ComboButton/ComboButtonItem/index.js +49 -0
  213. package/lib/components/ComboButton/index.js +21 -0
  214. package/lib/components/CreateFullPage/CreateFullPage.js +478 -0
  215. package/lib/components/CreateFullPage/CreateFullPageSection.js +74 -0
  216. package/lib/components/CreateFullPage/CreateFullPageStep.js +134 -0
  217. package/lib/components/CreateFullPage/constants.js +16 -0
  218. package/lib/components/CreateFullPage/index.js +29 -0
  219. package/lib/components/CreateInfluencer/CreateInfluencer.js +304 -0
  220. package/lib/components/CreateInfluencer/index.js +13 -0
  221. package/lib/components/CreateModal/CreateModal.js +161 -0
  222. package/lib/components/CreateModal/index.js +13 -0
  223. package/lib/components/CreateSidePanel/CreateSidePanel.js +187 -0
  224. package/lib/components/CreateSidePanel/index.js +13 -0
  225. package/lib/components/CreateTearsheet/CreateTearsheet.js +397 -0
  226. package/lib/components/CreateTearsheet/CreateTearsheetDivider.js +48 -0
  227. package/lib/components/CreateTearsheet/CreateTearsheetSection.js +105 -0
  228. package/lib/components/CreateTearsheet/CreateTearsheetStep.js +151 -0
  229. package/lib/components/CreateTearsheet/constants.js +17 -0
  230. package/lib/components/CreateTearsheet/index.js +37 -0
  231. package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +268 -0
  232. package/lib/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +320 -0
  233. package/lib/components/CreateTearsheet/preview-components/MultiStepWithSectionsTearsheet.js +354 -0
  234. package/lib/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +184 -0
  235. package/lib/components/CreateTearsheetNarrow/index.js +13 -0
  236. package/lib/components/EditSidePanel/EditSidePanel.js +220 -0
  237. package/lib/components/EditSidePanel/index.js +13 -0
  238. package/lib/components/EmptyStates/EmptyState.js +134 -0
  239. package/lib/components/EmptyStates/EmptyStateContent.js +94 -0
  240. package/lib/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +128 -0
  241. package/lib/components/EmptyStates/ErrorEmptyState/index.js +13 -0
  242. package/lib/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +128 -0
  243. package/lib/components/EmptyStates/NoDataEmptyState/index.js +13 -0
  244. package/lib/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +128 -0
  245. package/lib/components/EmptyStates/NoTagsEmptyState/index.js +13 -0
  246. package/lib/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +128 -0
  247. package/lib/components/EmptyStates/NotFoundEmptyState/index.js +13 -0
  248. package/lib/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +128 -0
  249. package/lib/components/EmptyStates/NotificationsEmptyState/index.js +13 -0
  250. package/lib/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +128 -0
  251. package/lib/components/EmptyStates/UnauthorizedEmptyState/index.js +13 -0
  252. package/lib/components/EmptyStates/assets/ErrorIllustration.js +226 -0
  253. package/lib/components/EmptyStates/assets/NoDataIllustration.js +189 -0
  254. package/lib/components/EmptyStates/assets/NoTagsIllustration.js +497 -0
  255. package/lib/components/EmptyStates/assets/NotFoundIllustration.js +374 -0
  256. package/lib/components/EmptyStates/assets/NotificationsIllustration.js +345 -0
  257. package/lib/components/EmptyStates/assets/UnauthorizedIllustration.js +318 -0
  258. package/lib/components/EmptyStates/index.js +61 -0
  259. package/lib/components/ExampleComponent/ExampleComponent.js +169 -0
  260. package/lib/components/ExampleComponent/index.js +13 -0
  261. package/lib/components/ExportModal/ExportModal.js +298 -0
  262. package/lib/components/ExportModal/index.js +13 -0
  263. package/lib/components/ExpressiveCard/ExpressiveCard.js +161 -0
  264. package/lib/components/ExpressiveCard/index.js +13 -0
  265. package/lib/components/HTTPErrors/HTTPError403/HTTPError403.js +98 -0
  266. package/lib/components/HTTPErrors/HTTPError403/index.js +13 -0
  267. package/lib/components/HTTPErrors/HTTPError404/HTTPError404.js +98 -0
  268. package/lib/components/HTTPErrors/HTTPError404/index.js +13 -0
  269. package/lib/components/HTTPErrors/HTTPErrorContent.js +90 -0
  270. package/lib/components/HTTPErrors/HTTPErrorOther/HTTPErrorOther.js +98 -0
  271. package/lib/components/HTTPErrors/HTTPErrorOther/index.js +13 -0
  272. package/lib/components/HTTPErrors/assets/HTTPErrorSvg403.js +1251 -0
  273. package/lib/components/HTTPErrors/assets/HTTPErrorSvg404.js +1050 -0
  274. package/lib/components/HTTPErrors/assets/HTTPErrorSvgOther.js +1101 -0
  275. package/lib/components/HTTPErrors/index.js +29 -0
  276. package/lib/components/ImportModal/ImportModal.js +443 -0
  277. package/lib/components/ImportModal/index.js +13 -0
  278. package/lib/components/LoadingBar/LoadingBar.js +174 -0
  279. package/lib/components/LoadingBar/index.js +13 -0
  280. package/lib/components/ModifiedTabs/ModifiedTabLabelNew.js +48 -0
  281. package/lib/components/ModifiedTabs/ModifiedTabLabelWithClose.js +68 -0
  282. package/lib/components/ModifiedTabs/ModifiedTabs.js +137 -0
  283. package/lib/components/ModifiedTabs/index.js +13 -0
  284. package/lib/components/NotificationsPanel/NotificationsPanel.js +569 -0
  285. package/lib/components/NotificationsPanel/NotificationsPanel_data.js +146 -0
  286. package/lib/components/NotificationsPanel/index.js +13 -0
  287. package/lib/components/NotificationsPanel/preview-components/UnreadNotificationBell.js +58 -0
  288. package/lib/components/NotificationsPanel/utils.js +65 -0
  289. package/lib/components/OptionsTile/OptionsTile.js +327 -0
  290. package/lib/components/OptionsTile/index.js +13 -0
  291. package/lib/components/PageHeader/PageHeader.js +812 -0
  292. package/lib/components/PageHeader/PageHeaderDemo.data.js +623 -0
  293. package/lib/components/PageHeader/PageHeaderTitle.js +63 -0
  294. package/lib/components/PageHeader/PageHeaderUtils.js +205 -0
  295. package/lib/components/PageHeader/index.js +13 -0
  296. package/lib/components/ProductiveCard/ProductiveCard.js +141 -0
  297. package/lib/components/ProductiveCard/index.js +13 -0
  298. package/lib/components/RemoveModal/RemoveModal.js +210 -0
  299. package/lib/components/RemoveModal/index.js +13 -0
  300. package/lib/components/Saving/Saving.js +175 -0
  301. package/lib/components/Saving/index.js +13 -0
  302. package/lib/components/SidePanel/SidePanel.js +668 -0
  303. package/lib/components/SidePanel/constants.js +21 -0
  304. package/lib/components/SidePanel/index.js +13 -0
  305. package/lib/components/StatusIcon/StatusIcon.js +145 -0
  306. package/lib/components/StatusIcon/index.js +13 -0
  307. package/lib/components/TagSet/TagSet.js +352 -0
  308. package/lib/components/TagSet/TagSetModal.js +139 -0
  309. package/lib/components/TagSet/TagSetOverflow.js +147 -0
  310. package/lib/components/TagSet/index.js +13 -0
  311. package/lib/components/Tearsheet/Tearsheet.js +192 -0
  312. package/lib/components/Tearsheet/TearsheetNarrow.js +160 -0
  313. package/lib/components/Tearsheet/TearsheetShell.js +420 -0
  314. package/lib/components/Tearsheet/index.js +21 -0
  315. package/lib/components/Toolbar/Toolbar.js +72 -0
  316. package/lib/components/Toolbar/ToolbarButton.js +72 -0
  317. package/lib/components/Toolbar/ToolbarGroup.js +52 -0
  318. package/lib/components/Toolbar/index.js +29 -0
  319. package/lib/components/UserProfileImage/UserProfileImage.js +146 -0
  320. package/lib/components/UserProfileImage/index.js +13 -0
  321. package/lib/components/WebTerminal/WebTerminal.js +186 -0
  322. package/lib/components/WebTerminal/index.js +13 -0
  323. package/lib/components/WebTerminal/preview-components/Navigation.js +44 -0
  324. package/lib/components/WebTerminal/preview-components/documentationLinks.js +32 -0
  325. package/lib/components/WebTerminal/preview-components/index.js +15 -0
  326. package/lib/components/_Canary/Canary.js +54 -0
  327. package/lib/components/_Canary/index.js +13 -0
  328. package/lib/components/index.js +343 -0
  329. package/lib/generated/feature-flags/feature-flags.js +22 -0
  330. package/lib/global/js/hooks/index.js +75 -0
  331. package/lib/global/js/hooks/useClickOutside.js +31 -0
  332. package/lib/global/js/hooks/useCreateComponentFocus.js +48 -0
  333. package/lib/global/js/hooks/useCreateComponentStepChange.js +263 -0
  334. package/lib/global/js/hooks/usePreviousValue.js +29 -0
  335. package/lib/global/js/hooks/useResetCreateComponent.js +50 -0
  336. package/lib/global/js/hooks/useValidCreateStepCount.js +33 -0
  337. package/lib/global/js/hooks/useWindowResize.js +79 -0
  338. package/lib/global/js/hooks/useWindowScroll.js +91 -0
  339. package/lib/global/js/package-settings.js +166 -0
  340. package/lib/global/js/utils/ClickListener.js +89 -0
  341. package/lib/global/js/utils/Wrap.js +93 -0
  342. package/lib/global/js/utils/devtools.js +31 -0
  343. package/lib/global/js/utils/getFocusableElements.js +25 -0
  344. package/lib/global/js/utils/hasValidType.js +110 -0
  345. package/lib/global/js/utils/keyboardNavigation.js +45 -0
  346. package/lib/global/js/utils/pconsole.js +53 -0
  347. package/lib/global/js/utils/props-helper.js +304 -0
  348. package/lib/global/js/utils/scrollableAncestor.js +48 -0
  349. package/lib/global/js/utils/story-helper.js +100 -0
  350. package/lib/global/js/utils/test-helper.js +342 -0
  351. package/lib/global/js/utils/unwrap-if-fragment.js +82 -0
  352. package/lib/global/js/utils/uuidv4.js +20 -0
  353. package/lib/global/js/utils/uuidv4.spec.js +28 -0
  354. package/lib/global/js/utils/wait.js +16 -0
  355. package/lib/global/js/utils/wrapFocus.js +84 -0
  356. package/lib/index.js +30 -0
  357. package/lib/settings.js +92 -0
  358. package/package.json +9 -8
  359. package/scss/components/APIKeyModal/_api-key-modal.scss +63 -0
  360. package/scss/components/APIKeyModal/_index.scss +10 -0
  361. package/scss/components/APIKeyModal/_storybook-styles.scss +33 -0
  362. package/scss/components/AboutModal/_about-modal.scss +116 -0
  363. package/scss/components/AboutModal/_index.scss +8 -0
  364. package/scss/components/AboutModal/_storybook-styles.scss +15 -0
  365. package/scss/components/ActionBar/_action-bar.scss +67 -0
  366. package/scss/components/ActionBar/_index.scss +8 -0
  367. package/scss/components/ActionSet/_action-set.scss +114 -0
  368. package/scss/components/ActionSet/_index.scss +8 -0
  369. package/scss/components/ActionSet/_storybook-styles.scss +38 -0
  370. package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +86 -0
  371. package/scss/components/BreadcrumbWithOverflow/_index.scss +8 -0
  372. package/scss/components/ButtonMenu/_button-menu.scss +36 -0
  373. package/scss/components/ButtonMenu/_index.scss +8 -0
  374. package/scss/components/ButtonMenu/_storybook-styles.scss +6 -0
  375. package/scss/components/ButtonSetWithOverflow/_button-set-with-overflow.scss +52 -0
  376. package/scss/components/ButtonSetWithOverflow/_index.scss +8 -0
  377. package/scss/components/Card/_card.scss +121 -0
  378. package/scss/components/Card/_index.scss +10 -0
  379. package/scss/components/Card/_storybook-styles.scss +12 -0
  380. package/scss/components/Cascade/_cascade.scss +50 -0
  381. package/scss/components/Cascade/_index.scss +10 -0
  382. package/scss/components/Cascade/_storybook-styles.scss +32 -0
  383. package/scss/components/ComboButton/_combo-button.scss +64 -0
  384. package/scss/components/ComboButton/_index.scss +10 -0
  385. package/scss/components/CreateFullPage/_create-full-page.scss +187 -0
  386. package/scss/components/CreateFullPage/_index.scss +8 -0
  387. package/scss/components/CreateFullPage/_storybook-styles.scss +51 -0
  388. package/scss/components/CreateInfluencer/_create-influencer.scss +89 -0
  389. package/scss/components/CreateInfluencer/_index.scss +8 -0
  390. package/scss/components/CreateModal/_create-modal.scss +81 -0
  391. package/scss/components/CreateModal/_index.scss +8 -0
  392. package/scss/components/CreateModal/_storybook-styles.scss +50 -0
  393. package/scss/components/CreateSidePanel/_create-side-panel.scss +99 -0
  394. package/scss/components/CreateSidePanel/_index.scss +8 -0
  395. package/scss/components/CreateSidePanel/_storybook-styles.scss +27 -0
  396. package/scss/components/CreateTearsheet/_create-tearsheet.scss +136 -0
  397. package/scss/components/CreateTearsheet/_index.scss +8 -0
  398. package/scss/components/CreateTearsheet/_storybook-styles.scss +53 -0
  399. package/scss/components/CreateTearsheetNarrow/_create-tearsheet-narrow.scss +68 -0
  400. package/scss/components/CreateTearsheetNarrow/_index.scss +8 -0
  401. package/scss/components/CreateTearsheetNarrow/_storybook-styles.scss +32 -0
  402. package/scss/components/EditSidePanel/_edit-side-panel.scss +66 -0
  403. package/scss/components/EditSidePanel/_index.scss +8 -0
  404. package/scss/components/EditSidePanel/_storybook-styles.scss +35 -0
  405. package/scss/components/EmptyStates/_empty-state.scss +62 -0
  406. package/scss/components/EmptyStates/_index.scss +8 -0
  407. package/scss/components/EmptyStates/_storybook-styles.scss +6 -0
  408. package/scss/components/ExampleComponent/_example-component.scss +39 -0
  409. package/scss/components/ExampleComponent/_index.scss +8 -0
  410. package/scss/components/ExampleComponent/_storybook-styles.scss +6 -0
  411. package/scss/components/ExportModal/_export-modal.scss +61 -0
  412. package/scss/components/ExportModal/_index.scss +10 -0
  413. package/scss/components/ExportModal/_storybook-styles.scss +6 -0
  414. package/scss/components/ExpressiveCard/_expressive-card.scss +25 -0
  415. package/scss/components/ExpressiveCard/_index.scss +10 -0
  416. package/scss/components/ExpressiveCard/_storybook-styles.scss +25 -0
  417. package/scss/components/HTTPErrors/_http-errors.scss +72 -0
  418. package/scss/components/HTTPErrors/_index.scss +8 -0
  419. package/scss/components/HTTPErrors/_storybook-styles.scss +6 -0
  420. package/scss/components/ImportModal/_import-modal.scss +88 -0
  421. package/scss/components/ImportModal/_index.scss +8 -0
  422. package/scss/components/ImportModal/_storybook-styles.scss +6 -0
  423. package/scss/components/LoadingBar/_index.scss +8 -0
  424. package/scss/components/LoadingBar/_loading-bar.scss +211 -0
  425. package/scss/components/LoadingBar/_storybook-styles.scss +19 -0
  426. package/scss/components/ModifiedTabs/_index.scss +1 -0
  427. package/scss/components/ModifiedTabs/_modified-tabs.scss +72 -0
  428. package/scss/components/ModifiedTabs/_storybook-styles.scss +6 -0
  429. package/scss/components/NotificationsPanel/_index.scss +8 -0
  430. package/scss/components/NotificationsPanel/_notifications-panel.scss +285 -0
  431. package/scss/components/NotificationsPanel/_storybook-styles.scss +6 -0
  432. package/scss/components/OptionsTile/_index.scss +8 -0
  433. package/scss/components/OptionsTile/_options-tile.scss +221 -0
  434. package/scss/components/OptionsTile/_storybook-styles.scss +33 -0
  435. package/scss/components/PageHeader/_index.scss +10 -0
  436. package/scss/components/PageHeader/_page-header.scss +641 -0
  437. package/scss/components/PageHeader/_storybook-styles.scss +76 -0
  438. package/scss/components/ProductiveCard/_index.scss +10 -0
  439. package/scss/components/ProductiveCard/_productive-card.scss +71 -0
  440. package/scss/components/ProductiveCard/_storybook-styles.scss +22 -0
  441. package/scss/components/RemoveModal/_index.scss +10 -0
  442. package/scss/components/RemoveModal/_remove-modal.scss +40 -0
  443. package/scss/components/RemoveModal/_storybook-styles.scss +6 -0
  444. package/scss/components/Saving/_index.scss +10 -0
  445. package/scss/components/Saving/_saving.scss +42 -0
  446. package/scss/components/Saving/_storybook-styles.scss +12 -0
  447. package/scss/components/SidePanel/_index.scss +8 -0
  448. package/scss/components/SidePanel/_side-panel-variables.scss +14 -0
  449. package/scss/components/SidePanel/_side-panel.scss +496 -0
  450. package/scss/components/SidePanel/_storybook-styles.scss +38 -0
  451. package/scss/components/StatusIcon/_index.scss +8 -0
  452. package/scss/components/StatusIcon/_status-icon.scss +139 -0
  453. package/scss/components/StatusIcon/_storybook-styles.scss +6 -0
  454. package/scss/components/TagSet/_index.scss +8 -0
  455. package/scss/components/TagSet/_tag-set.scss +162 -0
  456. package/scss/components/Tearsheet/_index.scss +8 -0
  457. package/scss/components/Tearsheet/_storybook-styles.scss +24 -0
  458. package/scss/components/Tearsheet/_tearsheet.scss +308 -0
  459. package/scss/components/Toolbar/_index.scss +8 -0
  460. package/scss/components/Toolbar/_toolbar.scss +78 -0
  461. package/scss/components/UserProfileImage/_color-map.scss +39 -0
  462. package/scss/components/UserProfileImage/_index.scss +8 -0
  463. package/scss/components/UserProfileImage/_storybook.scss +6 -0
  464. package/scss/components/UserProfileImage/_user-profile-image.scss +137 -0
  465. package/scss/components/WebTerminal/_index.scss +1 -0
  466. package/scss/components/WebTerminal/_storybook-styles.scss +14 -0
  467. package/scss/components/WebTerminal/_web-terminal.scss +70 -0
  468. package/scss/components/_Canary/_canary.scss +9 -0
  469. package/scss/components/_index-released-only.scss +34 -0
  470. package/scss/components/_index.scss +44 -0
  471. package/scss/generated/feature-flags/_feature-flags.scss +19 -0
  472. package/scss/global/styles/_generate-carbon-modules.scss +14 -0
  473. package/scss/global/styles/_imported-carbon-modules.scss +25 -0
  474. package/scss/global/styles/_mixins.scss +22 -0
  475. package/scss/global/styles/_project-settings.scss +22 -0
  476. package/scss/index-full-carbon.scss +11 -0
  477. package/scss/index-without-carbon-released-only.scss +13 -0
  478. package/scss/index-without-carbon.scss +13 -0
  479. package/scss/index.scss +10 -0
@@ -0,0 +1,547 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
+ var _excluded = ["className", "data", "daysAgoText", "dismissAllLabel", "dismissSingleNotificationIconDescription", "doNotDisturbDefaultToggled", "doNotDisturbLabel", "emptyStateLabel", "hoursAgoText", "hourAgoText", "minuteAgoText", "minutesAgoText", "monthsAgoText", "monthAgoText", "nowText", "onClickOutside", "onDismissAllNotifications", "onDismissSingleNotification", "onDoNotDisturbChange", "onSettingsClick", "onViewAllClick", "open", "previousLabel", "readLessLabel", "readMoreLabel", "secondsAgoText", "settingsIconDescription", "title", "todayLabel", "viewAllLabel", "yearsAgoText", "yearAgoText", "yesterdayAtText", "yesterdayLabel"];
6
+
7
+ /**
8
+ * Copyright IBM Corp. 2020, 2021
9
+ *
10
+ * This source code is licensed under the Apache-2.0 license found in the
11
+ * LICENSE file in the root directory of this source tree.
12
+ */
13
+ // Import portions of React that are needed.
14
+ import React, { useEffect, useState, useRef } from 'react'; // Other standard imports.
15
+
16
+ import PropTypes from 'prop-types';
17
+ import cx from 'classnames';
18
+ import { getDevtoolsProps } from '../../global/js/utils/devtools';
19
+ import { useClickOutside } from '../../global/js/hooks';
20
+ import { pkg } from '../../settings';
21
+ import { timeAgo } from './utils';
22
+ import { NotificationsEmptyState } from '../EmptyStates/NotificationsEmptyState'; // Carbon and package components we use.
23
+
24
+ import { Button, Link, Toggle } from 'carbon-components-react';
25
+ import { ErrorFilled16, WarningAltFilled16, CheckmarkFilled16, InformationSquareFilled16, ChevronDown16, Close16, Settings16 } from '@carbon/icons-react'; // The block part of our conventional BEM class names (blockClass__E--M).
26
+
27
+ var componentName = 'NotificationsPanel';
28
+ var blockClass = "".concat(pkg.prefix, "--notifications-panel");
29
+ export var NotificationsPanel = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
30
+ var className = _ref.className,
31
+ data = _ref.data,
32
+ daysAgoText = _ref.daysAgoText,
33
+ dismissAllLabel = _ref.dismissAllLabel,
34
+ dismissSingleNotificationIconDescription = _ref.dismissSingleNotificationIconDescription,
35
+ doNotDisturbDefaultToggled = _ref.doNotDisturbDefaultToggled,
36
+ doNotDisturbLabel = _ref.doNotDisturbLabel,
37
+ emptyStateLabel = _ref.emptyStateLabel,
38
+ hoursAgoText = _ref.hoursAgoText,
39
+ hourAgoText = _ref.hourAgoText,
40
+ minuteAgoText = _ref.minuteAgoText,
41
+ minutesAgoText = _ref.minutesAgoText,
42
+ monthsAgoText = _ref.monthsAgoText,
43
+ monthAgoText = _ref.monthAgoText,
44
+ nowText = _ref.nowText,
45
+ onClickOutside = _ref.onClickOutside,
46
+ onDismissAllNotifications = _ref.onDismissAllNotifications,
47
+ onDismissSingleNotification = _ref.onDismissSingleNotification,
48
+ onDoNotDisturbChange = _ref.onDoNotDisturbChange,
49
+ onSettingsClick = _ref.onSettingsClick,
50
+ onViewAllClick = _ref.onViewAllClick,
51
+ open = _ref.open,
52
+ previousLabel = _ref.previousLabel,
53
+ readLessLabel = _ref.readLessLabel,
54
+ readMoreLabel = _ref.readMoreLabel,
55
+ secondsAgoText = _ref.secondsAgoText,
56
+ settingsIconDescription = _ref.settingsIconDescription,
57
+ title = _ref.title,
58
+ todayLabel = _ref.todayLabel,
59
+ viewAllLabel = _ref.viewAllLabel,
60
+ yearsAgoText = _ref.yearsAgoText,
61
+ yearAgoText = _ref.yearAgoText,
62
+ yesterdayAtText = _ref.yesterdayAtText,
63
+ yesterdayLabel = _ref.yesterdayLabel,
64
+ rest = _objectWithoutProperties(_ref, _excluded);
65
+
66
+ var notificationPanelRef = useRef();
67
+
68
+ var _useState = useState(open),
69
+ _useState2 = _slicedToArray(_useState, 2),
70
+ shouldRender = _useState2[0],
71
+ setRender = _useState2[1];
72
+
73
+ var _useState3 = useState([]),
74
+ _useState4 = _slicedToArray(_useState3, 2),
75
+ allNotifications = _useState4[0],
76
+ setAllNotifications = _useState4[1];
77
+
78
+ useEffect(function () {
79
+ // Set the notifications passed to the state within this component
80
+ setAllNotifications(data);
81
+ }, [data]);
82
+ useClickOutside(ref || notificationPanelRef, function () {
83
+ onClickOutside();
84
+ });
85
+ useEffect(function () {
86
+ // initialize the notification panel to open
87
+ if (open) {
88
+ setRender(true);
89
+ }
90
+ }, [open]);
91
+
92
+ var onAnimationEnd = function onAnimationEnd() {
93
+ // initialize the notification panel to close
94
+ !open && setRender(false);
95
+ };
96
+
97
+ var sortChronologically = function sortChronologically(arr) {
98
+ if (!arr || arr && !arr.length) {
99
+ return;
100
+ }
101
+
102
+ return arr.sort(function (a, b) {
103
+ return b.timestamp - a.timestamp;
104
+ });
105
+ }; // Notifications should be grouped by "Today", "Yesterday", and "Previous", the variables
106
+ // below filter the notifications based on those conditions and then render them in those groups
107
+
108
+
109
+ var yesterdayDate = new Date();
110
+ yesterdayDate = new Date(yesterdayDate.setDate(yesterdayDate.getDate() - 1));
111
+ var dayBeforeYesterdayDate = new Date();
112
+ dayBeforeYesterdayDate = new Date(dayBeforeYesterdayDate.setDate(dayBeforeYesterdayDate.getDate() - 2));
113
+ var withinLastDayNotifications = allNotifications && allNotifications.length && allNotifications.filter(function (item) {
114
+ return item.timestamp.getTime() >= yesterdayDate.getTime();
115
+ });
116
+ withinLastDayNotifications = sortChronologically(withinLastDayNotifications);
117
+ var previousDayNotifications = allNotifications && allNotifications.length && allNotifications.filter(function (item) {
118
+ return item.timestamp.getTime() < yesterdayDate.getTime() && item.timestamp.getTime() >= dayBeforeYesterdayDate.getTime();
119
+ });
120
+ previousDayNotifications = sortChronologically(previousDayNotifications);
121
+ var previousNotifications = allNotifications && allNotifications.length && allNotifications.filter(function (item) {
122
+ return item.timestamp.getTime() < dayBeforeYesterdayDate.getTime();
123
+ });
124
+ previousNotifications = sortChronologically(previousNotifications);
125
+
126
+ var renderDescription = function renderDescription(id) {
127
+ var _ref2, _ref3;
128
+
129
+ var notification = allNotifications && allNotifications.length && allNotifications.filter(function (item) {
130
+ return item.id === id;
131
+ })[0];
132
+ var trimLength = 88;
133
+ var description = notification.description;
134
+ var descriptionClassName = cx(["".concat(blockClass, "__notification-description"), (_ref2 = {}, _defineProperty(_ref2, "".concat(blockClass, "__notification-long-description"), notification.showAll), _defineProperty(_ref2, "".concat(blockClass, "__notification-short-description"), !notification.showAll), _ref2)]);
135
+ var showMoreButtonClassName = cx([(_ref3 = {}, _defineProperty(_ref3, "".concat(blockClass, "__notification-read-less-button"), notification.showAll), _defineProperty(_ref3, "".concat(blockClass, "__notification-read-more-button"), !notification.showAll), _ref3)]);
136
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("p", {
137
+ className: descriptionClassName
138
+ }, description), description.length > trimLength && /*#__PURE__*/React.createElement(Button, {
139
+ kind: "ghost",
140
+ size: "small",
141
+ renderIcon: ChevronDown16,
142
+ iconDescription: notification.showAll ? readLessLabel : readMoreLabel,
143
+ onClick: function onClick(event) {
144
+ event.preventDefault();
145
+ event.stopPropagation();
146
+ var newData = allNotifications.map(function (item) {
147
+ if (item.id === notification.id) {
148
+ return Object.assign({}, item, {
149
+ showAll: !item.showAll
150
+ });
151
+ }
152
+
153
+ return item;
154
+ });
155
+ setAllNotifications(newData);
156
+ },
157
+ className: showMoreButtonClassName
158
+ }, notification.showAll ? readLessLabel : readMoreLabel));
159
+ };
160
+
161
+ var renderNotification = function renderNotification(group, notification, index) {
162
+ var notificationClassName = cx(["".concat(blockClass, "__notification"), "".concat(blockClass, "__notification-").concat(group)]);
163
+ var notificationHeaderClassName = cx(["".concat(blockClass, "__notification-title"), _defineProperty({}, "".concat(blockClass, "__notification-title-unread"), notification.unread)]);
164
+ return /*#__PURE__*/React.createElement("div", {
165
+ "aria-label": notification.title,
166
+ key: "".concat(notification.timestamp, "-").concat(notification.title, "-").concat(index),
167
+ className: notificationClassName,
168
+ type: "button",
169
+ role: "button",
170
+ tabIndex: 0,
171
+ onClick: function onClick() {
172
+ return notification.onNotificationClick(notification);
173
+ },
174
+ onKeyDown: function onKeyDown(event) {
175
+ if (event.target.classList.contains("".concat(blockClass, "__dismiss-single-button"))) {
176
+ return;
177
+ }
178
+
179
+ event.which === 13 && notification.onNotificationClick(notification);
180
+ }
181
+ }, notification.type === 'error' && /*#__PURE__*/React.createElement(ErrorFilled16, {
182
+ className: cx(["".concat(blockClass, "__notification-status-icon"), "".concat(blockClass, "__notification-status-icon-error")])
183
+ }), notification.type === 'success' && /*#__PURE__*/React.createElement(CheckmarkFilled16, {
184
+ className: cx(["".concat(blockClass, "__notification-status-icon"), "".concat(blockClass, "__notification-status-icon-success")])
185
+ }), notification.type === 'warning' && /*#__PURE__*/React.createElement(WarningAltFilled16, {
186
+ className: cx(["".concat(blockClass, "__notification-status-icon"), "".concat(blockClass, "__notification-status-icon-warning")])
187
+ }), notification.type === 'informational' && /*#__PURE__*/React.createElement(InformationSquareFilled16, {
188
+ className: cx(["".concat(blockClass, "__notification-status-icon"), "".concat(blockClass, "__notification-status-icon-informational")])
189
+ }), /*#__PURE__*/React.createElement("div", {
190
+ className: "".concat(blockClass, "__notification-content")
191
+ }, /*#__PURE__*/React.createElement("p", {
192
+ className: "".concat(blockClass, "__notification-time-label")
193
+ }, timeAgo({
194
+ previousTime: notification.timestamp,
195
+ secondsAgoText: secondsAgoText,
196
+ minuteAgoText: minuteAgoText,
197
+ minutesAgoText: minutesAgoText,
198
+ hoursAgoText: hoursAgoText,
199
+ hourAgoText: hourAgoText,
200
+ daysAgoText: daysAgoText,
201
+ yesterdayAtText: yesterdayAtText,
202
+ monthsAgoText: monthsAgoText,
203
+ monthAgoText: monthAgoText,
204
+ yearsAgoText: yearsAgoText,
205
+ yearAgoText: yearAgoText,
206
+ nowText: nowText
207
+ })), /*#__PURE__*/React.createElement("h6", {
208
+ className: notificationHeaderClassName
209
+ }, notification.title), notification.description && notification.description.length && renderDescription(notification.id), notification.link && notification.link.text && notification.link.url && /*#__PURE__*/React.createElement(Link, {
210
+ href: notification.link.url,
211
+ className: "".concat(blockClass, "__notifications-link")
212
+ }, notification.link.text)), /*#__PURE__*/React.createElement(Button, {
213
+ kind: "ghost",
214
+ size: "small",
215
+ renderIcon: Close16,
216
+ iconDescription: dismissSingleNotificationIconDescription,
217
+ tooltipPosition: "left",
218
+ className: "".concat(blockClass, "__dismiss-single-button"),
219
+ onClick: function onClick(event) {
220
+ return dismissSingleNotification(event, notification);
221
+ }
222
+ }));
223
+ };
224
+
225
+ var dismissSingleNotification = function dismissSingleNotification(event, notification) {
226
+ event.preventDefault();
227
+ event.stopPropagation();
228
+ onDismissSingleNotification(notification);
229
+ };
230
+
231
+ var mainSectionClassName = cx(["".concat(blockClass, "__main-section"), _defineProperty({}, "".concat(blockClass, "__main-section-empty"), allNotifications && !allNotifications.length)]);
232
+ return shouldRender ? /*#__PURE__*/React.createElement("div", _extends({}, rest, {
233
+ id: blockClass,
234
+ className: cx(blockClass, className, "".concat(blockClass, "__container")),
235
+ style: {
236
+ animation: "".concat(open ? 'fadeIn 250ms' : 'fadeOut 250ms')
237
+ },
238
+ onAnimationEnd: onAnimationEnd,
239
+ ref: ref || notificationPanelRef
240
+ }, getDevtoolsProps(componentName)), /*#__PURE__*/React.createElement("div", {
241
+ className: "".concat(blockClass, "__header-container")
242
+ }, /*#__PURE__*/React.createElement("div", {
243
+ className: "".concat(blockClass, "__header-flex")
244
+ }, /*#__PURE__*/React.createElement("h1", {
245
+ className: "".concat(blockClass, "__header")
246
+ }, title), /*#__PURE__*/React.createElement(Button, {
247
+ size: "small",
248
+ kind: "ghost",
249
+ className: "".concat(blockClass, "__dismiss-button"),
250
+ onClick: function onClick() {
251
+ return onDismissAllNotifications();
252
+ }
253
+ }, dismissAllLabel)), /*#__PURE__*/React.createElement(Toggle, {
254
+ size: "sm",
255
+ className: "".concat(blockClass, "__do-not-disturb-toggle"),
256
+ id: "".concat(blockClass, "__do-not-disturb-toggle-component"),
257
+ labelA: doNotDisturbLabel,
258
+ labelB: doNotDisturbLabel,
259
+ onToggle: function onToggle(event) {
260
+ return onDoNotDisturbChange(event);
261
+ },
262
+ defaultToggled: doNotDisturbDefaultToggled,
263
+ "aria-label": doNotDisturbLabel
264
+ })), /*#__PURE__*/React.createElement("div", {
265
+ className: mainSectionClassName
266
+ }, withinLastDayNotifications && withinLastDayNotifications.length ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h6", {
267
+ className: "".concat(blockClass, "__time-section-label")
268
+ }, todayLabel), withinLastDayNotifications.map(function (notification, index) {
269
+ return renderNotification('today', notification, index);
270
+ })) : null, previousDayNotifications && previousDayNotifications.length ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h6", {
271
+ className: "".concat(blockClass, "__time-section-label")
272
+ }, yesterdayLabel), previousDayNotifications.map(function (notification, index) {
273
+ return renderNotification('yesterday', notification, index);
274
+ })) : null, previousNotifications && previousNotifications.length ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h6", {
275
+ className: "".concat(blockClass, "__time-section-label")
276
+ }, previousLabel), previousNotifications.map(function (notification, index) {
277
+ return renderNotification('previous', notification, index);
278
+ })) : null, !allNotifications.length && /*#__PURE__*/React.createElement(NotificationsEmptyState, {
279
+ illustrationTheme: "dark",
280
+ title: "",
281
+ subtitle: emptyStateLabel
282
+ })), onViewAllClick && onSettingsClick && allNotifications && allNotifications.length ? /*#__PURE__*/React.createElement("div", {
283
+ className: "".concat(blockClass, "__bottom-actions")
284
+ }, /*#__PURE__*/React.createElement(Button, {
285
+ kind: "ghost",
286
+ className: "".concat(blockClass, "__view-all-button"),
287
+ onClick: function onClick() {
288
+ return onViewAllClick();
289
+ }
290
+ }, viewAllLabel(allNotifications.length)), /*#__PURE__*/React.createElement(Button, {
291
+ kind: "ghost",
292
+ size: "small",
293
+ className: "".concat(blockClass, "__settings-button"),
294
+ renderIcon: Settings16,
295
+ iconDescription: settingsIconDescription,
296
+ onClick: function onClick() {
297
+ return onSettingsClick();
298
+ }
299
+ })) : null) : null;
300
+ }); // Return a placeholder if not released and not enabled by feature flag
301
+
302
+ NotificationsPanel = pkg.checkComponentEnabled(NotificationsPanel, componentName); // The display name of the component, used by React. Note that displayName
303
+ // is used in preference to relying on function.name.
304
+
305
+ NotificationsPanel.displayName = componentName; // The types and DocGen commentary for the component props,
306
+ // in alphabetical order (for consistency).
307
+ // See https://www.npmjs.com/package/prop-types#usage.
308
+
309
+ NotificationsPanel.propTypes = {
310
+ /**
311
+ * Provide an optional class to be applied to the containing node.
312
+ */
313
+ className: PropTypes.string,
314
+
315
+ /**
316
+ * Array of data for Notifications component to render
317
+ */
318
+ data: PropTypes.arrayOf(PropTypes.shape({
319
+ id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
320
+ type: PropTypes.oneOf(['error', 'warning', 'success', 'informational']),
321
+ timestamp: PropTypes.instanceOf(Date),
322
+ title: PropTypes.string,
323
+ description: PropTypes.string,
324
+ link: PropTypes.shape({
325
+ url: PropTypes.string,
326
+ text: PropTypes.string
327
+ }),
328
+ unread: PropTypes.bool,
329
+ onNotificationClick: PropTypes.func
330
+ })).isRequired,
331
+
332
+ /**
333
+ * Sets the `days ago` label text
334
+ */
335
+ daysAgoText: PropTypes.func,
336
+
337
+ /**
338
+ * Label for Dismiss all button
339
+ */
340
+ dismissAllLabel: PropTypes.string,
341
+
342
+ /**
343
+ * Label for Dismiss single notification icon button
344
+ */
345
+ dismissSingleNotificationIconDescription: PropTypes.string,
346
+
347
+ /**
348
+ * Determines if the `Do not disturb` toggle is on or off when the component is rendered
349
+ */
350
+ doNotDisturbDefaultToggled: PropTypes.bool,
351
+
352
+ /**
353
+ * Label for Do not disturb toggle
354
+ */
355
+ doNotDisturbLabel: PropTypes.string,
356
+
357
+ /**
358
+ * Sets the empty state label text when there are no notifications
359
+ */
360
+ emptyStateLabel: PropTypes.string,
361
+
362
+ /**
363
+ * Sets the `hour ago` label text
364
+ */
365
+ hourAgoText: PropTypes.func,
366
+
367
+ /**
368
+ * Sets the `hours ago` label text
369
+ */
370
+ hoursAgoText: PropTypes.func,
371
+
372
+ /**
373
+ * Sets the `minute ago` label text
374
+ */
375
+ minuteAgoText: PropTypes.func,
376
+
377
+ /**
378
+ * Sets the `minutes ago` label text
379
+ */
380
+ minutesAgoText: PropTypes.func,
381
+
382
+ /**
383
+ * Sets the `month ago` label text
384
+ */
385
+ monthAgoText: PropTypes.func,
386
+
387
+ /**
388
+ * Sets the `months ago` label text
389
+ */
390
+ monthsAgoText: PropTypes.func,
391
+
392
+ /**
393
+ * Sets the `now` label text
394
+ */
395
+ nowText: PropTypes.string,
396
+
397
+ /**
398
+ * Sets the notifications panel open state
399
+ */
400
+ onClickOutside: PropTypes.func.isRequired,
401
+
402
+ /**
403
+ * Function that will dismiss all notifications
404
+ */
405
+ onDismissAllNotifications: PropTypes.func.isRequired,
406
+
407
+ /**
408
+ * Function that will dismiss a single notification
409
+ */
410
+ onDismissSingleNotification: PropTypes.func.isRequired,
411
+
412
+ /**
413
+ * Function that returns the current selected value of the disable notification toggle
414
+ */
415
+ onDoNotDisturbChange: PropTypes.func,
416
+
417
+ /**
418
+ * Event handler for the View all button
419
+ */
420
+ onSettingsClick: PropTypes.func,
421
+
422
+ /**
423
+ * Event handler for the View all button
424
+ */
425
+ onViewAllClick: PropTypes.func,
426
+
427
+ /**
428
+ * Determines whether the notifications panel should render or not
429
+ */
430
+ open: PropTypes.bool.isRequired,
431
+
432
+ /**
433
+ * Sets the previous label text
434
+ */
435
+ previousLabel: PropTypes.string,
436
+
437
+ /**
438
+ * Sets the `read less` label text
439
+ */
440
+ readLessLabel: PropTypes.string,
441
+
442
+ /**
443
+ * Sets the `read more` label text
444
+ */
445
+ readMoreLabel: PropTypes.string,
446
+
447
+ /**
448
+ * Sets the `seconds ago` label text
449
+ */
450
+ secondsAgoText: PropTypes.func,
451
+
452
+ /**
453
+ * Sets the settings icon description text
454
+ */
455
+ settingsIconDescription: PropTypes.string,
456
+
457
+ /**
458
+ * Sets the title for the Notifications panel
459
+ */
460
+ title: PropTypes.string,
461
+
462
+ /**
463
+ * Sets the today label text
464
+ */
465
+ todayLabel: PropTypes.string,
466
+
467
+ /**
468
+ * Sets the View all button text
469
+ */
470
+ viewAllLabel: PropTypes.func,
471
+
472
+ /**
473
+ * Sets the `year ago` label text
474
+ */
475
+ yearAgoText: PropTypes.func,
476
+
477
+ /**
478
+ * Sets the `years ago` label text
479
+ */
480
+ yearsAgoText: PropTypes.func,
481
+
482
+ /**
483
+ * Sets the `Yesterday at` label text
484
+ */
485
+ yesterdayAtText: PropTypes.func,
486
+
487
+ /**
488
+ * Sets the yesterday label text
489
+ */
490
+ yesterdayLabel: PropTypes.string
491
+ }; // Default values for component props. Default values are not required for
492
+ // props that are required, nor for props where the component can apply
493
+ // 'undefined' values reasonably. Default values should be provided when the
494
+ // component needs to make a choice or assumption when a prop is not supplied.
495
+
496
+ NotificationsPanel.defaultProps = {
497
+ daysAgoText: function daysAgoText(value) {
498
+ return "".concat(value, " days ago");
499
+ },
500
+ dismissAllLabel: 'Dismiss all',
501
+ dismissSingleNotificationIconDescription: 'Dismiss',
502
+ doNotDisturbLabel: 'Do not disturb',
503
+ emptyStateLabel: 'You do not have any notifications',
504
+ hourAgoText: function hourAgoText(value) {
505
+ return "".concat(value, " hour ago");
506
+ },
507
+ hoursAgoText: function hoursAgoText(value) {
508
+ return "".concat(value, " hours ago");
509
+ },
510
+ minuteAgoText: function minuteAgoText(value) {
511
+ return "".concat(value, " minute ago");
512
+ },
513
+ minutesAgoText: function minutesAgoText(value) {
514
+ return "".concat(value, " minutes ago");
515
+ },
516
+ monthAgoText: function monthAgoText(value) {
517
+ return "".concat(value, " month ago");
518
+ },
519
+ monthsAgoText: function monthsAgoText(value) {
520
+ return "".concat(value, " months ago");
521
+ },
522
+ nowText: 'Now',
523
+ onDismissAllNotifications: function onDismissAllNotifications() {},
524
+ onDismissSingleNotification: function onDismissSingleNotification() {},
525
+ previousLabel: 'Previous',
526
+ readLessLabel: 'Read less',
527
+ readMoreLabel: 'Read more',
528
+ secondsAgoText: function secondsAgoText(value) {
529
+ return "".concat(value, " seconds ago");
530
+ },
531
+ settingsIconDescription: 'Settings',
532
+ title: 'Notifications',
533
+ todayLabel: 'Today',
534
+ viewAllLabel: function viewAllLabel(value) {
535
+ return "View all (".concat(value, ")");
536
+ },
537
+ yearsAgoText: function yearsAgoText(value) {
538
+ return "".concat(value, " years ago");
539
+ },
540
+ yearAgoText: function yearAgoText(value) {
541
+ return "".concat(value, " year ago");
542
+ },
543
+ yesterdayLabel: 'Yesterday',
544
+ yesterdayAtText: function yesterdayAtText(value) {
545
+ return "Yesterday at ".concat(value);
546
+ }
547
+ };
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Copyright IBM Corp. 2020, 2021
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { action } from '@storybook/addon-actions';
8
+ import uuidv4 from '../../global/js/utils/uuidv4';
9
+ var currentDate = new Date();
10
+ var yesterdayDate = new Date();
11
+ yesterdayDate.setDate(yesterdayDate.getDate() - 1);
12
+ var dayBeforeYesterday = new Date();
13
+ dayBeforeYesterday.setDate(dayBeforeYesterday.getDate() - 2);
14
+ var msInOneMinute = 60000;
15
+ var data = [{
16
+ id: uuidv4(),
17
+ type: 'error',
18
+ title: 'LogRhythm connection failure',
19
+ description: 'LogRhythm is failing to connect, check timeout.',
20
+ timestamp: currentDate,
21
+ unread: true,
22
+ onNotificationClick: action("Clicked on notification")
23
+ }, {
24
+ id: uuidv4(),
25
+ type: 'error',
26
+ title: 'LogDNA cannot be reached.',
27
+ description: 'Unable to communicate with LogDNA.',
28
+ timestamp: new Date(new Date().getTime() - 30 * 1000),
29
+ // 30 seconds ago
30
+ unread: true,
31
+ onNotificationClick: action("Clicked on notification")
32
+ }, {
33
+ id: uuidv4(),
34
+ type: 'warning',
35
+ title: 'System alert',
36
+ description: 'Email classification was exported successfully.',
37
+ timestamp: new Date(currentDate.getTime() - 11 * msInOneMinute),
38
+ onNotificationClick: action("Clicked on notification")
39
+ }, {
40
+ id: uuidv4(),
41
+ type: 'success',
42
+ title: 'IBM Cloud Pak for Automation Success',
43
+ description: 'Successfully connected cartridge',
44
+ timestamp: new Date(currentDate.getTime() - 120 * msInOneMinute),
45
+ onNotificationClick: action("Clicked on notification")
46
+ }, {
47
+ id: uuidv4(),
48
+ type: 'success',
49
+ title: 'Successfully connected LogDNA',
50
+ description: 'App connection succeeded',
51
+ timestamp: yesterdayDate,
52
+ onNotificationClick: action("Clicked on notification")
53
+ }, {
54
+ id: uuidv4(),
55
+ type: 'warning',
56
+ title: 'Cloud Foundry app memory',
57
+ description: 'Allocated app memory low',
58
+ timestamp: dayBeforeYesterday,
59
+ onNotificationClick: action("Clicked on notification")
60
+ }, {
61
+ id: uuidv4(),
62
+ type: 'informational',
63
+ title: 'Logs are now being monitored',
64
+ link: {
65
+ text: 'View logs',
66
+ url: 'https://www.carbondesignsystem.com'
67
+ },
68
+ timestamp: dayBeforeYesterday,
69
+ onNotificationClick: action("Clicked on notification")
70
+ }, {
71
+ id: uuidv4(),
72
+ type: 'error',
73
+ title: 'Cluster unreachable',
74
+ description: 'Not able to establish connection with provided cluster. Please check your logs and memory allocation to resolve this issue further.',
75
+ timestamp: dayBeforeYesterday,
76
+ onNotificationClick: action("Clicked on notification")
77
+ }, {
78
+ id: uuidv4(),
79
+ type: 'error',
80
+ title: 'Cluster unreachable',
81
+ description: 'Not able to establish connection with provided cluster. Please check your logs and memory allocation to resolve this issue further.',
82
+ timestamp: dayBeforeYesterday,
83
+ onNotificationClick: action("Clicked on notification")
84
+ }, {
85
+ id: uuidv4(),
86
+ type: 'error',
87
+ title: 'Cluster unreachable',
88
+ description: 'Not able to establish connection with provided cluster. Please check your logs and memory allocation to resolve this issue further.',
89
+ timestamp: dayBeforeYesterday,
90
+ onNotificationClick: action("Clicked on notification")
91
+ }, {
92
+ id: uuidv4(),
93
+ type: 'error',
94
+ title: 'Cluster unreachable',
95
+ description: 'Not able to establish connection with provided cluster. Please check your logs and memory allocation to resolve this issue further.',
96
+ timestamp: dayBeforeYesterday,
97
+ onNotificationClick: action("Clicked on notification")
98
+ }, {
99
+ id: uuidv4(),
100
+ type: 'error',
101
+ title: 'Cluster unreachable',
102
+ description: 'Not able to establish connection with provided cluster. Please check your logs and memory allocation to resolve this issue further.',
103
+ timestamp: dayBeforeYesterday,
104
+ onNotificationClick: action("Clicked on notification")
105
+ }, {
106
+ id: uuidv4(),
107
+ type: 'error',
108
+ title: 'Cluster unreachable',
109
+ description: 'Not able to establish connection with provided cluster. Please check your logs and memory allocation to resolve this issue further.',
110
+ timestamp: dayBeforeYesterday,
111
+ onNotificationClick: action("Clicked on notification")
112
+ }, {
113
+ id: uuidv4(),
114
+ type: 'error',
115
+ title: 'Cluster unreachable',
116
+ description: 'Not able to establish connection with provided cluster. Please check your logs and memory allocation to resolve this issue further.',
117
+ timestamp: dayBeforeYesterday,
118
+ onNotificationClick: action("Clicked on notification")
119
+ }, {
120
+ id: uuidv4(),
121
+ type: 'error',
122
+ title: 'Cluster unreachable',
123
+ description: 'Not able to establish connection with provided cluster. Please check your logs and memory allocation to resolve this issue further.',
124
+ timestamp: dayBeforeYesterday,
125
+ onNotificationClick: action("Clicked on notification")
126
+ }, {
127
+ id: uuidv4(),
128
+ type: 'error',
129
+ title: 'Cluster unreachable',
130
+ description: 'Not able to establish connection with provided cluster. Please check your logs and memory allocation to resolve this issue further.',
131
+ timestamp: dayBeforeYesterday,
132
+ onNotificationClick: action("Clicked on notification")
133
+ }];
134
+ export default data;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Copyright IBM Corp. 2020, 2021
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ export { NotificationsPanel } from './NotificationsPanel';