@decisiv/ui-components 2.0.0 → 2.0.1-alpha.102

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 (333) hide show
  1. package/lib/atoms/BaseButton/index.d.ts.map +1 -1
  2. package/lib/atoms/BaseButton/index.js +1 -1
  3. package/lib/atoms/BooleanInput/elements.d.ts.map +1 -1
  4. package/lib/atoms/BooleanInput/elements.js +8 -3
  5. package/lib/atoms/BooleanInput/index.d.ts.map +1 -1
  6. package/lib/atoms/BooleanInput/index.js +26 -5
  7. package/lib/atoms/BooleanInput/index.test.js +17 -6
  8. package/lib/atoms/BooleanInput/types.d.ts +4 -0
  9. package/lib/atoms/BooleanInput/types.d.ts.map +1 -1
  10. package/lib/atoms/BooleanInput/types.js +5 -1
  11. package/lib/atoms/Calendar/hooks/useCalendar/index.d.ts.map +1 -1
  12. package/lib/atoms/Calendar/hooks/useCalendar/index.js +2 -1
  13. package/lib/atoms/Calendar/hooks/useCalendar/index.test.js +5 -6
  14. package/lib/atoms/Calendar/index.d.ts.map +1 -1
  15. package/lib/atoms/Calendar/index.js +46 -6
  16. package/lib/atoms/Calendar/index.test.js +68 -38
  17. package/lib/atoms/Calendar/types.d.ts +1 -1
  18. package/lib/atoms/Calendar/types.d.ts.map +1 -1
  19. package/lib/atoms/Calendar/types.js +5 -1
  20. package/lib/atoms/InputField/Containers.d.ts +11 -6
  21. package/lib/atoms/InputField/Containers.d.ts.map +1 -1
  22. package/lib/atoms/InputField/Containers.js +6 -6
  23. package/lib/atoms/InputField/InputLabel.d.ts +1 -0
  24. package/lib/atoms/InputField/InputLabel.d.ts.map +1 -1
  25. package/lib/atoms/InputField/InputLabel.js +2 -1
  26. package/lib/atoms/InputField/index.d.ts +5 -0
  27. package/lib/atoms/InputField/index.d.ts.map +1 -1
  28. package/lib/atoms/InputField/index.js +21 -7
  29. package/lib/atoms/InputField/index.test.js +91 -0
  30. package/lib/atoms/InputField/schema.d.ts.map +1 -1
  31. package/lib/atoms/InputField/schema.js +1 -0
  32. package/lib/atoms/OptionsList/Category.d.ts +1 -1
  33. package/lib/atoms/OptionsList/Category.d.ts.map +1 -1
  34. package/lib/atoms/OptionsList/Category.js +4 -2
  35. package/lib/atoms/OptionsList/Footer.d.ts +8 -0
  36. package/lib/atoms/OptionsList/Footer.d.ts.map +1 -0
  37. package/lib/atoms/OptionsList/Footer.js +72 -0
  38. package/lib/atoms/OptionsList/Option.d.ts.map +1 -1
  39. package/lib/atoms/OptionsList/Option.js +8 -5
  40. package/lib/atoms/OptionsList/index.d.ts.map +1 -1
  41. package/lib/atoms/OptionsList/index.js +43 -16
  42. package/lib/atoms/OptionsList/index.test.js +107 -11
  43. package/lib/atoms/OptionsList/schema.d.ts.map +1 -1
  44. package/lib/atoms/OptionsList/schema.js +4 -0
  45. package/lib/atoms/OptionsList/types.d.ts +14 -0
  46. package/lib/atoms/OptionsList/types.d.ts.map +1 -1
  47. package/lib/atoms/OptionsList/types.js +5 -1
  48. package/lib/atoms/RequiredIcon.d.ts +9 -0
  49. package/lib/atoms/RequiredIcon.d.ts.map +1 -0
  50. package/lib/atoms/{InputField/RequiredIcon.js → RequiredIcon.js} +7 -3
  51. package/lib/components/Accordion/types.js +5 -1
  52. package/lib/components/Accordion/useAccordion/types.js +5 -1
  53. package/lib/components/Alert/Container.d.ts +201 -0
  54. package/lib/components/Alert/Container.d.ts.map +1 -0
  55. package/lib/components/Alert/Container.js +26 -0
  56. package/lib/components/Alert/StyledButton.d.ts +5 -0
  57. package/lib/components/Alert/StyledButton.d.ts.map +1 -0
  58. package/lib/components/Alert/StyledButton.js +23 -0
  59. package/lib/components/Alert/index.d.ts +27 -0
  60. package/lib/components/Alert/index.d.ts.map +1 -0
  61. package/lib/components/Alert/index.js +112 -0
  62. package/lib/components/Alert/index.test.js +79 -0
  63. package/lib/components/Alert/intents.d.ts +13 -0
  64. package/lib/components/Alert/intents.d.ts.map +1 -0
  65. package/lib/components/Alert/intents.js +72 -0
  66. package/lib/components/Alert/schema.d.ts +3 -0
  67. package/lib/components/Alert/schema.d.ts.map +1 -0
  68. package/lib/components/Alert/schema.js +25 -0
  69. package/lib/components/Alert/types.d.ts +36 -0
  70. package/lib/components/Alert/types.d.ts.map +1 -0
  71. package/lib/components/Alert/types.js +32 -0
  72. package/lib/components/Avatar/types.js +5 -1
  73. package/lib/components/Badge/constants.d.ts +2 -0
  74. package/lib/components/Badge/constants.d.ts.map +1 -0
  75. package/lib/components/Badge/constants.js +29 -0
  76. package/lib/components/Badge/index.d.ts.map +1 -1
  77. package/lib/components/Badge/index.js +12 -23
  78. package/lib/components/Badge/index.test.js +51 -8
  79. package/lib/components/Badge/schema.js +1 -1
  80. package/lib/components/Badge/types.d.ts +1 -1
  81. package/lib/components/Badge/types.d.ts.map +1 -1
  82. package/lib/components/Badge/types.js +7 -3
  83. package/lib/components/Breadcrumbs/types.js +5 -1
  84. package/lib/components/Button/schema.d.ts +6 -1
  85. package/lib/components/Button/schema.d.ts.map +1 -1
  86. package/lib/components/Button/schema.js +9 -4
  87. package/lib/components/Button/types.js +5 -1
  88. package/lib/components/Checkbox/index.d.ts.map +1 -1
  89. package/lib/components/Checkbox/index.js +3 -1
  90. package/lib/components/Checkbox/schema.d.ts.map +1 -1
  91. package/lib/components/Checkbox/schema.js +2 -0
  92. package/lib/components/Combobox/Target.d.ts.map +1 -1
  93. package/lib/components/Combobox/Target.js +45 -14
  94. package/lib/components/Combobox/index.d.ts.map +1 -1
  95. package/lib/components/Combobox/index.js +193 -65
  96. package/lib/components/Combobox/index.test.js +358 -135
  97. package/lib/components/Combobox/schema.d.ts.map +1 -1
  98. package/lib/components/Combobox/schema.js +9 -2
  99. package/lib/components/Combobox/types.d.ts +12 -3
  100. package/lib/components/Combobox/types.d.ts.map +1 -1
  101. package/lib/components/Combobox/types.js +5 -1
  102. package/lib/components/DropdownList/index.d.ts +4 -0
  103. package/lib/components/DropdownList/index.d.ts.map +1 -1
  104. package/lib/components/DropdownList/index.js +76 -11
  105. package/lib/components/DropdownList/propTypes.d.ts +4 -0
  106. package/lib/components/DropdownList/propTypes.d.ts.map +1 -0
  107. package/lib/components/DropdownList/propTypes.js +42 -0
  108. package/lib/components/DropdownList/schema.d.ts.map +1 -1
  109. package/lib/components/DropdownList/schema.js +5 -0
  110. package/lib/components/DropdownList/types.d.ts +4 -1
  111. package/lib/components/DropdownList/types.d.ts.map +1 -1
  112. package/lib/components/Filter/IconWrapper/index.d.ts +197 -0
  113. package/lib/components/Filter/IconWrapper/index.d.ts.map +1 -0
  114. package/lib/components/Filter/IconWrapper/index.js +35 -0
  115. package/lib/components/Filter/SimplePrimary/index.d.ts +31 -0
  116. package/lib/components/Filter/SimplePrimary/index.d.ts.map +1 -0
  117. package/lib/components/Filter/SimplePrimary/index.js +58 -0
  118. package/lib/components/Filter/SimplePrimary/index.test.js +34 -0
  119. package/lib/components/Filter/StyledFilter.d.ts +4 -0
  120. package/lib/components/Filter/StyledFilter.d.ts.map +1 -0
  121. package/lib/components/Filter/StyledFilter.js +39 -0
  122. package/lib/components/Filter/StyledLabel/index.d.ts +8 -0
  123. package/lib/components/Filter/StyledLabel/index.d.ts.map +1 -0
  124. package/lib/components/Filter/StyledLabel/index.js +30 -0
  125. package/lib/components/Filter/index.d.ts +27 -0
  126. package/lib/components/Filter/index.d.ts.map +1 -0
  127. package/lib/components/Filter/index.js +95 -0
  128. package/lib/components/Filter/index.test.js +41 -0
  129. package/lib/components/Filter/kind.d.ts +6 -0
  130. package/lib/components/Filter/kind.d.ts.map +1 -0
  131. package/lib/components/Filter/kind.js +45 -0
  132. package/lib/components/Filter/schema.d.ts +9 -0
  133. package/lib/components/Filter/schema.d.ts.map +1 -0
  134. package/lib/components/Filter/schema.js +32 -0
  135. package/lib/components/Filter/types.d.ts +17 -0
  136. package/lib/components/Filter/types.d.ts.map +1 -0
  137. package/lib/components/Filter/types.js +5 -0
  138. package/lib/components/JumpTo/JumpToMenu.d.ts +2 -2
  139. package/lib/components/JumpTo/JumpToMenu.d.ts.map +1 -1
  140. package/lib/components/JumpTo/JumpToMenu.js +3 -3
  141. package/lib/components/JumpTo/types.js +5 -1
  142. package/lib/components/LeftNav/Item/ClickArea.d.ts.map +1 -1
  143. package/lib/components/LeftNav/Item/ClickArea.js +2 -2
  144. package/lib/components/LeftNav/Item/ItemWrapper.d.ts.map +1 -1
  145. package/lib/components/LeftNav/Item/ItemWrapper.js +3 -3
  146. package/lib/components/LeftNav/Item/MenuItemWrapper.d.ts +7 -0
  147. package/lib/components/LeftNav/Item/MenuItemWrapper.d.ts.map +1 -0
  148. package/lib/components/LeftNav/Item/MenuItemWrapper.js +20 -0
  149. package/lib/components/LeftNav/Item/NavCollapsedXItem/index.d.ts.map +1 -1
  150. package/lib/components/LeftNav/Item/NavCollapsedXItem/index.js +7 -5
  151. package/lib/components/LeftNav/Item/NavExpandedItem/index.d.ts.map +1 -1
  152. package/lib/components/LeftNav/Item/NavExpandedItem/index.js +24 -13
  153. package/lib/components/LeftNav/Item/types.d.ts +1 -1
  154. package/lib/components/LeftNav/Item/types.d.ts.map +1 -1
  155. package/lib/components/LeftNav/Item/types.js +5 -1
  156. package/lib/components/LeftNav/index.test.js +13 -3
  157. package/lib/components/LeftNav/schema.d.ts.map +1 -1
  158. package/lib/components/LeftNav/schema.js +2 -0
  159. package/lib/components/LeftNav/types.d.ts +1 -0
  160. package/lib/components/LeftNav/types.d.ts.map +1 -1
  161. package/lib/components/LeftNav/types.js +5 -1
  162. package/lib/components/Link/DisabledLink.d.ts +7 -0
  163. package/lib/components/Link/DisabledLink.d.ts.map +1 -0
  164. package/lib/components/Link/DisabledLink.js +46 -0
  165. package/lib/components/Link/Link.d.ts +4 -0
  166. package/lib/components/Link/Link.d.ts.map +1 -0
  167. package/lib/components/Link/Link.js +67 -0
  168. package/lib/components/Link/index.d.ts +4 -23
  169. package/lib/components/Link/index.d.ts.map +1 -1
  170. package/lib/components/Link/index.js +20 -158
  171. package/lib/components/Link/index.test.js +63 -42
  172. package/lib/components/Link/schema.d.ts.map +1 -1
  173. package/lib/components/Link/schema.js +2 -1
  174. package/lib/components/Link/styles.d.ts +20 -0
  175. package/lib/components/Link/styles.d.ts.map +1 -0
  176. package/lib/components/Link/styles.js +131 -0
  177. package/lib/components/Link/types.d.ts +28 -0
  178. package/lib/components/Link/types.d.ts.map +1 -0
  179. package/lib/components/Link/types.js +5 -0
  180. package/lib/components/Menu/index.d.ts.map +1 -1
  181. package/lib/components/Menu/index.js +3 -1
  182. package/lib/components/Menu/types.d.ts +2 -0
  183. package/lib/components/Menu/types.d.ts.map +1 -1
  184. package/lib/components/Menu/types.js +5 -1
  185. package/lib/components/Modal/components.d.ts +2 -2
  186. package/lib/components/Modal/index.d.ts.map +1 -1
  187. package/lib/components/Modal/index.js +5 -5
  188. package/lib/components/Modal/index.test.js +32 -0
  189. package/lib/components/Modal/schema.d.ts.map +1 -1
  190. package/lib/components/Modal/schema.js +2 -2
  191. package/lib/components/Modal/types.d.ts +2 -2
  192. package/lib/components/Modal/types.d.ts.map +1 -1
  193. package/lib/components/Modal/types.js +5 -1
  194. package/lib/components/Notifications/Notification/components.d.ts +3 -3
  195. package/lib/components/Notifications/Notification/components.d.ts.map +1 -1
  196. package/lib/components/Notifications/Notification/components.js +12 -6
  197. package/lib/components/Notifications/Notification/index.d.ts +3 -6
  198. package/lib/components/Notifications/Notification/index.d.ts.map +1 -1
  199. package/lib/components/Notifications/Notification/index.js +19 -12
  200. package/lib/components/Notifications/Notification/index.test.js +38 -19
  201. package/lib/components/Notifications/NotificationsPanel/index.d.ts +2 -1
  202. package/lib/components/Notifications/NotificationsPanel/index.d.ts.map +1 -1
  203. package/lib/components/Notifications/NotificationsPanel/index.js +44 -21
  204. package/lib/components/Notifications/NotificationsPanel/schema.js +1 -1
  205. package/lib/components/Notifications/Notifier.test.js +79 -10
  206. package/lib/components/Notifications/constants.d.ts +2 -0
  207. package/lib/components/Notifications/constants.d.ts.map +1 -0
  208. package/lib/components/Notifications/constants.js +16 -0
  209. package/lib/components/Notifications/schema.d.ts.map +1 -1
  210. package/lib/components/Notifications/schema.js +2 -1
  211. package/lib/components/Notifications/useNotifications.d.ts +1 -0
  212. package/lib/components/Notifications/useNotifications.d.ts.map +1 -1
  213. package/lib/components/Notifications/useNotifications.js +3 -3
  214. package/lib/components/Notifications/useNotifications.test.js +7 -4
  215. package/lib/components/Pagination/Pagination.d.ts +1 -1
  216. package/lib/components/Pagination/Pagination.d.ts.map +1 -1
  217. package/lib/components/Pagination/Pagination.js +1 -0
  218. package/lib/components/Pagination/Pagination.test.js +9 -0
  219. package/lib/components/Pagination/types.js +5 -1
  220. package/lib/components/Select/Target.js +1 -1
  221. package/lib/components/Select/index.d.ts.map +1 -1
  222. package/lib/components/Select/index.js +37 -1
  223. package/lib/components/Select/index.test.js +82 -23
  224. package/lib/components/Select/schema.d.ts.map +1 -1
  225. package/lib/components/Select/schema.js +7 -0
  226. package/lib/components/Select/types.d.ts +4 -1
  227. package/lib/components/Select/types.d.ts.map +1 -1
  228. package/lib/components/Select/types.js +5 -1
  229. package/lib/components/SelectDate/Target.js +1 -1
  230. package/lib/components/SelectDate/index.d.ts.map +1 -1
  231. package/lib/components/SelectDate/index.js +29 -2
  232. package/lib/components/SelectDate/index.test.js +108 -51
  233. package/lib/components/SelectDate/schema.d.ts.map +1 -1
  234. package/lib/components/SelectDate/schema.js +2 -0
  235. package/lib/components/SelectDate/types.d.ts +2 -0
  236. package/lib/components/SelectDate/types.d.ts.map +1 -1
  237. package/lib/components/SelectDate/types.js +5 -1
  238. package/lib/components/SelectDateRange/index.d.ts.map +1 -1
  239. package/lib/components/SelectDateRange/index.js +29 -2
  240. package/lib/components/SelectDateRange/index.test.js +115 -58
  241. package/lib/components/SelectDateRange/schema.d.ts.map +1 -1
  242. package/lib/components/SelectDateRange/schema.js +2 -0
  243. package/lib/components/SelectDateRange/types.js +5 -1
  244. package/lib/components/SelectMenu/index.d.ts +5 -0
  245. package/lib/components/SelectMenu/index.d.ts.map +1 -1
  246. package/lib/components/SelectMenu/index.js +27 -3
  247. package/lib/components/SelectMenu/schema.d.ts.map +1 -1
  248. package/lib/components/SelectMenu/schema.js +4 -0
  249. package/lib/components/Table/Body.d.ts.map +1 -1
  250. package/lib/components/Table/Body.js +182 -38
  251. package/lib/components/Table/Container.d.ts.map +1 -1
  252. package/lib/components/Table/Container.js +3 -3
  253. package/lib/components/Table/DataRow.d.ts.map +1 -1
  254. package/lib/components/Table/DataRow.js +54 -10
  255. package/lib/components/Table/DraggableWrapper.d.ts +5 -0
  256. package/lib/components/Table/DraggableWrapper.d.ts.map +1 -0
  257. package/lib/components/Table/DraggableWrapper.js +38 -0
  258. package/lib/components/Table/Grip.d.ts +4 -0
  259. package/lib/components/Table/Grip.d.ts.map +1 -0
  260. package/lib/components/Table/Grip.js +30 -0
  261. package/lib/components/Table/Head.d.ts +1 -1
  262. package/lib/components/Table/Head.d.ts.map +1 -1
  263. package/lib/components/Table/Head.js +12 -9
  264. package/lib/components/Table/HeaderCell/index.d.ts.map +1 -1
  265. package/lib/components/Table/HeaderCell/index.js +57 -4
  266. package/lib/components/Table/HeaderCell/types.d.ts +6 -0
  267. package/lib/components/Table/HeaderCell/types.d.ts.map +1 -1
  268. package/lib/components/Table/HeaderCell/types.js +5 -1
  269. package/lib/components/Table/Provider.d.ts +18 -3
  270. package/lib/components/Table/Provider.d.ts.map +1 -1
  271. package/lib/components/Table/Provider.js +50 -4
  272. package/lib/components/Table/index.d.ts.map +1 -1
  273. package/lib/components/Table/index.js +167 -21
  274. package/lib/components/Table/index.test.js +335 -64
  275. package/lib/components/Table/schema.columns.d.ts.map +1 -1
  276. package/lib/components/Table/schema.columns.js +7 -4
  277. package/lib/components/Table/schema.d.ts.map +1 -1
  278. package/lib/components/Table/schema.js +8 -6
  279. package/lib/components/Table/types.d.ts +34 -3
  280. package/lib/components/Table/types.d.ts.map +1 -1
  281. package/lib/components/Table/utils.d.ts +4 -1
  282. package/lib/components/Table/utils.d.ts.map +1 -1
  283. package/lib/components/Table/utils.js +30 -1
  284. package/lib/components/Tabs/types.js +5 -1
  285. package/lib/components/Tag/types.d.ts +1 -1
  286. package/lib/components/Tag/types.d.ts.map +1 -1
  287. package/lib/components/Tag/types.js +5 -1
  288. package/lib/components/TextArea/TextArea.d.ts.map +1 -1
  289. package/lib/components/TextArea/TextArea.js +1 -1
  290. package/lib/components/TextArea/index.js +1 -0
  291. package/lib/components/TextArea/index.test.js +5 -0
  292. package/lib/components/TextField/Input.js +1 -1
  293. package/lib/components/TextField/index.test.js +5 -0
  294. package/lib/components/Toggle/index.d.ts.map +1 -1
  295. package/lib/components/Toggle/index.js +4 -0
  296. package/lib/components/Toggle/index.test.js +39 -10
  297. package/lib/components/Toggle/types.js +5 -1
  298. package/lib/components/TopNav/BrandInfo/index.d.ts +2 -1
  299. package/lib/components/TopNav/BrandInfo/index.d.ts.map +1 -1
  300. package/lib/components/TopNav/BrandInfo/index.js +9 -1
  301. package/lib/components/TopNav/BrandInfo/schema.d.ts.map +1 -1
  302. package/lib/components/TopNav/BrandInfo/schema.js +4 -1
  303. package/lib/components/TopNav/index.test.js +28 -0
  304. package/lib/components/Typography/withColors.d.ts +1 -1
  305. package/lib/components/index.d.ts +2 -0
  306. package/lib/components/index.d.ts.map +1 -1
  307. package/lib/components/index.js +25 -0
  308. package/lib/providers/ConfigProvider/index.d.ts.map +1 -1
  309. package/lib/providers/ConfigProvider/index.js +5 -1
  310. package/lib/providers/ConfigProvider/utils/context.d.ts +1 -1
  311. package/lib/providers/ConfigProvider/utils/context.d.ts.map +1 -1
  312. package/lib/providers/ConfigProvider/utils/normalizer.d.ts.map +1 -1
  313. package/lib/providers/ConfigProvider/utils/normalizer.js +1 -1
  314. package/lib/providers/ConfigProvider/utils/translations.d.ts +4 -0
  315. package/lib/providers/ConfigProvider/utils/translations.d.ts.map +1 -1
  316. package/lib/providers/ConfigProvider/utils/translations.js +4 -0
  317. package/lib/providers/NotificationsProvider/index.d.ts +6 -3
  318. package/lib/providers/NotificationsProvider/index.d.ts.map +1 -1
  319. package/lib/providers/NotificationsProvider/index.js +74 -18
  320. package/lib/providers/NotificationsProvider/types.d.ts +4 -1
  321. package/lib/providers/NotificationsProvider/types.d.ts.map +1 -1
  322. package/lib/utils/joinClassnames.d.ts +3 -0
  323. package/lib/utils/joinClassnames.d.ts.map +1 -0
  324. package/lib/utils/joinClassnames.js +26 -0
  325. package/lib/utils/useFirstMount.d.ts +2 -0
  326. package/lib/utils/useFirstMount.d.ts.map +1 -0
  327. package/lib/utils/useFirstMount.js +19 -0
  328. package/lib/utils/useUpdateEffect.d.ts +4 -0
  329. package/lib/utils/useUpdateEffect.d.ts.map +1 -0
  330. package/lib/utils/useUpdateEffect.js +28 -0
  331. package/package.json +4 -2
  332. package/lib/atoms/InputField/RequiredIcon.d.ts +0 -4
  333. package/lib/atoms/InputField/RequiredIcon.d.ts.map +0 -1
@@ -129,7 +129,7 @@ function Modal(_ref) {
129
129
  var handleOverlayClick = (0, _react.useCallback)(function (event) {
130
130
  event.preventDefault();
131
131
  event.stopPropagation();
132
- onClose(event);
132
+ onClose && onClose(event);
133
133
  }, [onClose]); // Any click within the body should stay within the body. This prevents the click event from
134
134
  // bubbling up and firing the onClose handler via the Overlay's onClick.
135
135
 
@@ -157,7 +157,7 @@ function Modal(_ref) {
157
157
  paddingTop: (_ref2 = {}, _defineProperty(_ref2, _breakpointObserver.sizes.LG, 3), _defineProperty(_ref2, _breakpointObserver.sizes.XS, 2), _ref2),
158
158
  paddingX: (_ref3 = {}, _defineProperty(_ref3, _breakpointObserver.sizes.LG, 3), _defineProperty(_ref3, _breakpointObserver.sizes.XS, 2), _ref3),
159
159
  size: breakpoint
160
- }, _react.default.createElement(_components.CloseButtonContainer, null, _react.default.createElement(_Tooltip.default, {
160
+ }, onClose && _react.default.createElement(_components.CloseButtonContainer, null, _react.default.createElement(_Tooltip.default, {
161
161
  placement: "top",
162
162
  target: // eslint-disable-next-line
163
163
  _react.default.createElement(_Button.default, {
@@ -175,7 +175,7 @@ function Modal(_ref) {
175
175
  paddingBottom: (_ref4 = {}, _defineProperty(_ref4, _breakpointObserver.sizes.LG, 3), _defineProperty(_ref4, _breakpointObserver.sizes.XS, 2), _ref4),
176
176
  paddingX: (_ref5 = {}, _defineProperty(_ref5, _breakpointObserver.sizes.LG, 3), _defineProperty(_ref5, _breakpointObserver.sizes.XS, 2), _ref5),
177
177
  size: breakpoint
178
- }, children)), _react.default.createElement(_components.Footer, {
178
+ }, children)), actions && _react.default.createElement(_components.Footer, {
179
179
  hasIcon: !!IconComponent,
180
180
  id: modalFooterId,
181
181
  paddingX: (_ref6 = {}, _defineProperty(_ref6, _breakpointObserver.sizes.LG, 3), _defineProperty(_ref6, _breakpointObserver.sizes.XS, 2), _ref6),
@@ -202,7 +202,7 @@ function Manager(_ref7) {
202
202
 
203
203
  var onKeyDown = (0, _react.useCallback)(function (event) {
204
204
  if (event.key === 'Escape') {
205
- onClose(event);
205
+ onClose && onClose(event);
206
206
  }
207
207
  }, [onClose]); // Allow closing the modal by pressing the Escape key
208
208
 
@@ -229,7 +229,7 @@ function Manager(_ref7) {
229
229
 
230
230
 
231
231
  Manager.propTypes = _objectSpread({}, _schema.default.propTypes, {
232
- actions: _proptypeValidators.actionsValidator.isRequired,
232
+ actions: _proptypeValidators.actionsValidator,
233
233
  icon: _propTypes.default.elementType
234
234
  });
235
235
  Manager.displayName = 'Modal';
@@ -12,6 +12,10 @@ var _ = _interopRequireDefault(require("."));
12
12
 
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
14
 
15
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
16
+
17
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
18
+
15
19
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
16
20
 
17
21
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { keys.push.apply(keys, Object.getOwnPropertySymbols(object)); } if (enumerableOnly) keys = keys.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
@@ -80,6 +84,18 @@ describe('Modal', function () {
80
84
 
81
85
  expect(onClose).toHaveBeenCalled();
82
86
  });
87
+ it('renders a modal without a close button', function () {
88
+ var onClose = defaultProps.onClose,
89
+ rest = _objectWithoutProperties(defaultProps, ["onClose"]);
90
+
91
+ var _render2 = render(_react.default.createElement(_.default, rest)),
92
+ baseElement = _render2.baseElement;
93
+
94
+ var modalHeader = document.getElementById("modal-header-".concat(defaultProps.id));
95
+ var closeButton = (0, _react2.queryByLabelText)(modalHeader, /close/i);
96
+ expect(closeButton).toBeFalsy();
97
+ expect(baseElement).toMatchSnapshot();
98
+ });
83
99
  it('renders the children as the content of the modal', function () {
84
100
  var content = 'Test modal content.';
85
101
  render(_react.default.createElement(_.default, defaultProps, content));
@@ -147,6 +163,22 @@ describe('Modal', function () {
147
163
 
148
164
  expect(onClose).toHaveBeenCalled();
149
165
  });
166
+ it('doest NOT call the onClose when pressing escape and no onClose function is provided', function () {
167
+ var closeFn = defaultProps.onClose,
168
+ rest = _objectWithoutProperties(defaultProps, ["onClose"]);
169
+
170
+ var onClose = jest.fn();
171
+ render(_react.default.createElement(_.default, rest));
172
+
173
+ _react2.fireEvent.keyDown(document.body, {
174
+ key: 'Escape',
175
+ code: 27,
176
+ keyCode: 27,
177
+ charCode: 27
178
+ });
179
+
180
+ expect(onClose).not.toHaveBeenCalled();
181
+ });
150
182
  });
151
183
  describe('with invalid props', function () {
152
184
  beforeEach(function () {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/schema.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,MAAM,KAAqC,CAAC;AAyDlD,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/schema.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,MAAM,KAAqC,CAAC;AAuDlD,eAAe,MAAM,CAAC"}
@@ -17,13 +17,13 @@ schema.propTypes = {
17
17
  actions: _reactDesc.PropTypes.arrayOf(_reactDesc.PropTypes.shape({
18
18
  onClick: _reactDesc.PropTypes.func.isRequired,
19
19
  text: _reactDesc.PropTypes.string.isRequired
20
- })).description('An array of objects containing a subset of props valid for the Button. Specifically excluded are `kind`, `size`, and `variant`.').isRequired,
20
+ })).description('An array of objects containing a subset of props valid for the Button. Specifically excluded are `kind`, `size`, and `variant`.'),
21
21
  closeHint: _reactDesc.PropTypes.string.description('The text to present in the tooltip when hovering over the close button.'),
22
22
  color: _reactDesc.PropTypes.oneOf(_commonUIColors.commonUIColorKeys).description('The icon color; Will override the default color associated with any specified `intent`.').format('string'),
23
23
  icon: _reactDesc.PropTypes.element.description('Which `iconix` icon to display; Will override the default icon associated with any specified `intent`.'),
24
24
  id: _reactDesc.PropTypes.string.description('A unique identifier for the modal.'),
25
25
  intent: _reactDesc.PropTypes.oneOf(['information', 'success', 'warning', 'danger', 'help']).description('Shortcuts to the most common combinations of icon and color.'),
26
- onClose: _reactDesc.PropTypes.func.description('The event handler called to close the modal.').isRequired,
26
+ onClose: _reactDesc.PropTypes.func.description('The event handler called to close the modal. If not provided, the modal will not include a close button and closing by clicking outside or pressing the "Esc" key will be disabled.'),
27
27
  title: _reactDesc.PropTypes.string.description('The text for rendering in the H2 at the top of the modal').isRequired,
28
28
  visible: _reactDesc.PropTypes.bool.description('A boolean value used to control whether the modal is visible or not').defaultValue('false'),
29
29
  zIndex: _reactDesc.PropTypes.number.description('Sets the z-index value for the modal & overlay.')
@@ -5,14 +5,14 @@ import { ButtonProps } from '../Button/types';
5
5
  import { intents } from './constants';
6
6
  declare type ActionProps = Exclude<ButtonProps, 'kind' | 'size' | 'variant'>;
7
7
  export interface ModalProps {
8
- actions: [ActionProps] | [ActionProps, ActionProps];
8
+ actions?: [ActionProps] | [ActionProps, ActionProps];
9
9
  children: React.ReactNode;
10
10
  closeHint?: string;
11
11
  color?: CommonUIColorKeys;
12
12
  icon?: (props: IconProps) => JSX.Element;
13
13
  id?: string;
14
14
  intent?: keyof typeof intents;
15
- onClose: (event: React.MouseEvent<unknown> | KeyboardEvent) => void;
15
+ onClose?: (event: React.MouseEvent<unknown> | KeyboardEvent) => void;
16
16
  title: string;
17
17
  visible?: boolean;
18
18
  zIndex?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,aAAK,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;AAGrE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,CAAC,OAAO,CAAC;IACzC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,OAAO,OAAO,CAAC;IAC9B,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,aAAa,KAAK,IAAI,CAAC;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,aAAK,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;AAGrE,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACrD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,CAAC,OAAO,CAAC;IACzC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,OAAO,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,aAAa,KAAK,IAAI,CAAC;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB"}
@@ -1 +1,5 @@
1
- "use strict";
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -102,9 +102,9 @@ export declare const NotificationCard: import("styled-components").StyledCompone
102
102
  }> & {
103
103
  borderColor: string;
104
104
  }, never>;
105
- export declare const IconColumn: import("styled-components").StyledComponent<"div", any, import("../../Grid/Column/types").default & {
106
- span: string;
107
- }, "span">;
105
+ export declare const IconColumn: import("styled-components").StyledComponent<"div", any, {
106
+ right?: boolean | undefined;
107
+ }, never>;
108
108
  export declare const CloseButton: import("styled-components").StyledComponent<import("react").RefForwardingComponent<HTMLButtonElement, ButtonProps>, any, ButtonProps, never>;
109
109
  export declare const ActionButtonContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
110
110
  //# sourceMappingURL=components.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../src/components/Notifications/Notification/components.ts"],"names":[],"mappings":";AAWA,OAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAa5B,CAAC;AAEF,eAAO,MAAM,UAAU;;UAGtB,CAAC;AAEF,eAAO,MAAM,WAAW,8IAEvB,CAAC;AAEF,eAAO,MAAM,qBAAqB,oEAGjC,CAAC"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../src/components/Notifications/Notification/components.ts"],"names":[],"mappings":";AAWA,OAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAInD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAa5B,CAAC;AAEF,eAAO,MAAM,UAAU;;SAOtB,CAAC;AAEF,eAAO,MAAM,WAAW,8IAEvB,CAAC;AAEF,eAAO,MAAM,qBAAqB,oEAGjC,CAAC"}
@@ -15,7 +15,7 @@ var _color = _interopRequireDefault(require("@decisiv/design-tokens/lib/color"))
15
15
 
16
16
  var _spacing = _interopRequireDefault(require("@decisiv/design-tokens/lib/spacing"));
17
17
 
18
- var _dynamicModifiers = require("../../../utils/dynamicModifiers");
18
+ var _utils = require("../../../utils");
19
19
 
20
20
  var _skyPlane = _interopRequireDefault(require("../../../utils/skyPlane"));
21
21
 
@@ -23,6 +23,8 @@ var _Grid = _interopRequireDefault(require("../../Grid"));
23
23
 
24
24
  var _Button = _interopRequireDefault(require("../../Button"));
25
25
 
26
+ var _constants = require("../constants");
27
+
26
28
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
27
29
 
28
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -30,17 +32,21 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
30
32
  var NotificationCard = (0, _styledComponents.default)(_Grid.default.Container).withConfig({
31
33
  displayName: "components__NotificationCard",
32
34
  componentId: "ds1zkc-0"
33
- })(["background-color:", ";box-shadow:", ";border-radius:2px;width:", ";", ";"], (0, _toColorString.default)(_color.default.base.snowWhite), (0, _skyPlane.default)(2), (0, _rem.default)(_spacing.default.base * 34), (0, _dynamicModifiers.applyDynamicModifiers)('borderColor', function (_ref) {
35
+ })(["background-color:", ";box-shadow:", ";border-radius:2px;width:", ";", ";"], (0, _toColorString.default)(_color.default.base.snowWhite), (0, _skyPlane.default)(2), _constants.NOTIFICATION_CARD_WIDTH, (0, _utils.applyDynamicModifiers)('borderColor', function (_ref) {
34
36
  var borderColor = _ref.borderColor;
35
37
  return (0, _styledComponents.css)(["border-left:2px solid ", ";"], borderColor);
36
38
  }));
37
39
  exports.NotificationCard = NotificationCard;
38
- var IconColumn = (0, _styledComponents.default)(_Grid.default.Column).attrs({
39
- span: '0'
40
- }).withConfig({
40
+
41
+ var IconColumn = _styledComponents.default.div.withConfig({
41
42
  displayName: "components__IconColumn",
42
43
  componentId: "ds1zkc-1"
43
- })(["top:1px;width:", ";"], (0, _rem.default)(_spacing.default.base * 4));
44
+ })(["padding-left:", ";", ""], (0, _rem.default)(_spacing.default.base), function (_ref2) {
45
+ var _ref2$right = _ref2.right,
46
+ right = _ref2$right === void 0 ? false : _ref2$right;
47
+ return right && (0, _styledComponents.css)(["padding-right:", ";"], (0, _rem.default)(_spacing.default.base));
48
+ });
49
+
44
50
  exports.IconColumn = IconColumn;
45
51
  var CloseButton = (0, _styledComponents.default)(_Button.default).withConfig({
46
52
  displayName: "components__CloseButton",
@@ -1,13 +1,10 @@
1
1
  /// <reference types="react" />
2
+ import PropTypes from 'prop-types';
2
3
  import { TNotificationProps } from '../../../providers/NotificationsProvider/types';
3
4
  declare function Notification(props: TNotificationProps): JSX.Element;
4
5
  declare namespace Notification {
5
- var propTypes: any;
6
- var defaultProps: {
7
- actions: undefined;
8
- children: null;
9
- icon: undefined;
10
- };
6
+ var propTypes: PropTypes.ValidationMap<TNotificationProps>;
7
+ var defaultProps: Partial<TNotificationProps>;
11
8
  var displayName: string;
12
9
  }
13
10
  export default Notification;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Notifications/Notification/index.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAwBpF,iBAAS,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAiG5D;kBAjGQ,YAAY;;;;;;;;;AAqHrB,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Notifications/Notification/index.tsx"],"names":[],"mappings":";AAGA,OAAO,SAA4B,MAAM,YAAY,CAAC;AAMtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAwBpF,iBAAS,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAuG5D;kBAvGQ,YAAY;;;;;AA8HrB,eAAe,YAAY,CAAC"}
@@ -72,6 +72,8 @@ function Notification(props) {
72
72
  _props$intent = props.intent,
73
73
  intent = _props$intent === void 0 ? _constants.intentNames.information : _props$intent,
74
74
  onClose = props.onClose,
75
+ onFocus = props.onFocus,
76
+ onHover = props.onHover,
75
77
  title = props.title;
76
78
  var translate = (0, _useTranslations.default)();
77
79
 
@@ -91,13 +93,15 @@ function Notification(props) {
91
93
  id: id,
92
94
  borderColor: accentColor,
93
95
  margin: 0,
94
- padding: 1.5
95
- }, _react.default.createElement(_Grid.default.Row, null, _react.default.createElement(_components.IconColumn, {
96
- paddingRight: 0
97
- }, Icon), _react.default.createElement(_Grid.default.Column, null, _react.default.createElement(_Grid.default.Row, null, _react.default.createElement(_Grid.default.Column, null, _react.default.createElement(_Typography.P, {
96
+ padding: 1.5,
97
+ onFocus: onFocus,
98
+ onMouseOver: onHover
99
+ }, _react.default.createElement(_Grid.default.Row, null, _react.default.createElement(_components.IconColumn, null, Icon), _react.default.createElement(_Grid.default.Column, null, _react.default.createElement(_Grid.default.Row, null, _react.default.createElement(_Grid.default.Column, null, _react.default.createElement(_Typography.P, {
98
100
  shade: 0,
99
101
  weight: "semibold"
100
- }, title)), _react.default.createElement(_components.IconColumn, null, _react.default.createElement(_Tooltip.default, {
102
+ }, title)), onClose && _react.default.createElement(_components.IconColumn, {
103
+ right: true
104
+ }, _react.default.createElement(_Tooltip.default, {
101
105
  target: // eslint-disable-next-line react/jsx-wrap-multilines
102
106
  _react.default.createElement(_components.CloseButton, {
103
107
  "aria-label": translate(closeHint, 'notification.closeHint'),
@@ -120,21 +124,24 @@ function Notification(props) {
120
124
  key: action.text
121
125
  }, _react.default.createElement(_Button.default, _extends({}, (0, _omit.default)(action, ['kind', 'size', 'variant']), actionProps[index])));
122
126
  }))))));
123
- } // @ts-ignore
127
+ }
124
128
 
125
-
126
- Notification.propTypes = _objectSpread({}, _schema.default.propTypes, {
129
+ var propTypes = _objectSpread({}, _schema.default.propTypes, {
127
130
  actions: _proptypeValidators.actionsValidator,
128
- children: _propTypes.default.elementType,
131
+ children: _propTypes.default.node,
129
132
  icon: _propTypes.default.elementType,
130
133
  id: _propTypes.default.string.isRequired,
131
- onClose: _propTypes.default.func.isRequired
134
+ onClose: _propTypes.default.func
132
135
  });
133
- Notification.defaultProps = {
136
+
137
+ var defaultProps = {
134
138
  actions: undefined,
135
139
  children: null,
136
- icon: undefined
140
+ icon: undefined,
141
+ onClose: undefined
137
142
  };
143
+ Notification.propTypes = propTypes;
144
+ Notification.defaultProps = defaultProps;
138
145
  Notification.displayName = 'Notification';
139
146
  var _default = Notification;
140
147
  exports.default = _default;
@@ -6,12 +6,16 @@ var _react2 = require("@testing-library/react");
6
6
 
7
7
  var _constants = require("../../../constants");
8
8
 
9
- var _ConfigProvider = require("../../../providers/ConfigProvider");
9
+ var _providers = require("../../../providers");
10
10
 
11
11
  var _ = _interopRequireDefault(require("."));
12
12
 
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
14
 
15
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
16
+
17
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
18
+
15
19
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
16
20
 
17
21
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { keys.push.apply(keys, Object.getOwnPropertySymbols(object)); } if (enumerableOnly) keys = keys.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
@@ -20,12 +24,14 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
20
24
 
21
25
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
22
26
 
27
+ var wrapper = function wrapper(_ref) {
28
+ var children = _ref.children;
29
+ return _react.default.createElement(_providers.ConfigProvider, null, children);
30
+ };
31
+
23
32
  var render = function render(ui, options) {
24
33
  return (0, _react2.render)(ui, _objectSpread({}, options, {
25
- wrapper: function wrapper(_ref) {
26
- var children = _ref.children;
27
- return _react.default.createElement(_ConfigProvider.ConfigProvider, null, children);
28
- }
34
+ wrapper: wrapper
29
35
  }));
30
36
  };
31
37
 
@@ -60,26 +66,39 @@ describe('Notification', function () {
60
66
 
61
67
  expect(queryByText(defaultProps.title)).toBeTruthy();
62
68
  });
63
- it('renders a close button in the header of the notification', function () {
64
- var onClose = jest.fn();
69
+ describe('when onClose is NOT provided', function () {
70
+ it('does NOT render a close button in the header of the notification', function () {
71
+ var onClose = defaultProps.onClose,
72
+ testProps = _objectWithoutProperties(defaultProps, ["onClose"]);
65
73
 
66
- var _render3 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
67
- onClose: onClose
68
- }))),
69
- queryByLabelText = _render3.queryByLabelText;
74
+ var _render3 = render(_react.default.createElement(_.default, testProps)),
75
+ queryByLabelText = _render3.queryByLabelText;
76
+
77
+ expect(queryByLabelText(/close/i)).not.toBeTruthy();
78
+ });
79
+ });
80
+ describe('when onClose is provided', function () {
81
+ it('renders a close button in the header of the notification', function () {
82
+ var onClose = jest.fn();
83
+
84
+ var _render4 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
85
+ onClose: onClose
86
+ }))),
87
+ queryByLabelText = _render4.queryByLabelText;
70
88
 
71
- var closeButton = queryByLabelText(/close/i);
72
- expect(closeButton).toBeTruthy();
89
+ var closeButton = queryByLabelText(/close/i);
90
+ expect(closeButton).toBeTruthy();
73
91
 
74
- _react2.fireEvent.click(closeButton);
92
+ _react2.fireEvent.click(closeButton);
75
93
 
76
- expect(onClose).toHaveBeenCalled();
94
+ expect(onClose).toHaveBeenCalled();
95
+ });
77
96
  });
78
97
  it('renders the children as the content of the notification', function () {
79
98
  var content = 'Test modal content.';
80
99
 
81
- var _render4 = render(_react.default.createElement(_.default, defaultProps, content)),
82
- queryByText = _render4.queryByText;
100
+ var _render5 = render(_react.default.createElement(_.default, defaultProps, content)),
101
+ queryByText = _render5.queryByText;
83
102
 
84
103
  expect(queryByText(content)).toBeTruthy();
85
104
  });
@@ -94,10 +113,10 @@ describe('Notification', function () {
94
113
  text: 'secondary'
95
114
  }];
96
115
 
97
- var _render5 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
116
+ var _render6 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
98
117
  actions: actions
99
118
  }))),
100
- queryByText = _render5.queryByText;
119
+ queryByText = _render6.queryByText;
101
120
 
102
121
  var primaryActionButton = queryByText(actions[0].text);
103
122
  expect(primaryActionButton).toBeTruthy();
@@ -1,10 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import { TNotifications } from '../../../providers/NotificationsProvider/types';
3
3
  interface TNotificationsContainerProps {
4
+ scroll?: boolean;
4
5
  notifications?: TNotifications;
5
6
  marginTop?: number;
6
7
  zIndex?: number;
7
8
  }
8
- declare function NotificationsPanel({ marginTop, zIndex, }: TNotificationsContainerProps): JSX.Element;
9
+ declare function NotificationsPanel({ marginTop, zIndex, }: TNotificationsContainerProps): JSX.Element | null;
9
10
  export default NotificationsPanel;
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Notifications/NotificationsPanel/index.tsx"],"names":[],"mappings":";AAUA,OAAO,EAEL,cAAc,EACf,MAAM,gDAAgD,CAAC;AAYxD,UAAU,4BAA4B;IACpC,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAwDD,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,MAAM,GACP,EAAE,4BAA4B,GAAG,GAAG,CAAC,OAAO,CAwC5C;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Notifications/NotificationsPanel/index.tsx"],"names":[],"mappings":";AAUA,OAAO,EAEL,cAAc,EACf,MAAM,gDAAgD,CAAC;AAcxD,UAAU,4BAA4B;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4ED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,MAAM,GACP,EAAE,4BAA4B,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CA2CnD;AAED,eAAe,kBAAkB,CAAC"}
@@ -37,6 +37,8 @@ var _Notification = _interopRequireDefault(require("../Notification"));
37
37
 
38
38
  var _useNotifications2 = _interopRequireDefault(require("../useNotifications"));
39
39
 
40
+ var _constants = require("../constants");
41
+
40
42
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
41
43
 
42
44
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -54,14 +56,30 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
54
56
  var NotificationsContainer = _styledComponents.default.div.withConfig({
55
57
  displayName: "NotificationsPanel__NotificationsContainer",
56
58
  componentId: "sc-1u8dp2k-0"
57
- })(["bottom:", ";margin-top:", ";overflow-y:auto;padding-bottom:", ";position:fixed;right:", ";top:0;z-index:", ";overflow-x:hidden;"], (0, _rem.default)(_spacing.default.base * 0.5), function (_ref) {
59
+ })(["max-height:", ";margin-bottom:", ";margin-top:", ";overflow-y:hidden;padding-bottom:", ";position:fixed;right:", ";top:0;min-width:calc(1.25rem + ", ");z-index:", ";overflow-x:hidden;scrollbar-width:thin;", ";", ";"], function (_ref) {
58
60
  var _ref$marginTop = _ref.marginTop,
59
61
  marginTop = _ref$marginTop === void 0 ? 0 : _ref$marginTop;
62
+ return "calc(100vh - ".concat((0, _rem.default)(_spacing.default.base * marginTop), ");");
63
+ }, function (_ref2) {
64
+ var _ref2$marginTop = _ref2.marginTop,
65
+ marginTop = _ref2$marginTop === void 0 ? 0 : _ref2$marginTop;
66
+ return (0, _rem.default)(_spacing.default.base * marginTop);
67
+ }, function (_ref3) {
68
+ var _ref3$marginTop = _ref3.marginTop,
69
+ marginTop = _ref3$marginTop === void 0 ? 0 : _ref3$marginTop;
60
70
  return (0, _rem.default)(_spacing.default.base * marginTop);
61
- }, (0, _rem.default)(_spacing.default.base * 0.5), (0, _rem.default)(_spacing.default.base), function (_ref2) {
62
- var _ref2$zIndex = _ref2.zIndex,
63
- zIndex = _ref2$zIndex === void 0 ? 100 : _ref2$zIndex;
71
+ }, (0, _rem.default)(_spacing.default.base * 0.8), (0, _rem.default)(_spacing.default.base), _constants.NOTIFICATION_CARD_WIDTH, function (_ref4) {
72
+ var _ref4$zIndex = _ref4.zIndex,
73
+ zIndex = _ref4$zIndex === void 0 ? 100 : _ref4$zIndex;
64
74
  return zIndex;
75
+ }, function (_ref5) {
76
+ var scroll = _ref5.scroll,
77
+ _ref5$notifications = _ref5.notifications,
78
+ notifications = _ref5$notifications === void 0 ? [] : _ref5$notifications;
79
+ return scroll && notifications.length > 2 ? "overflow-y: auto;" : "overflow-y: hidden;";
80
+ }, function (_ref6) {
81
+ var notifications = _ref6.notifications;
82
+ return (0, _isEmpty.default)(notifications) && "width : 0";
65
83
  });
66
84
 
67
85
  var FloatingButton = (0, _styledComponents.default)(_Button.default).attrs({
@@ -71,41 +89,46 @@ var FloatingButton = (0, _styledComponents.default)(_Button.default).attrs({
71
89
  componentId: "sc-1u8dp2k-1"
72
90
  })(["box-shadow:", ";&:focus,&:focus:not(:active){border-color:", ";", ";}&:hover,&:hover:not(:active){background-color:", ";color:", ";}"], (0, _skyPlane.default)(2), (0, _toColorString.default)(_color.default.interaction.pacificOcean), (0, _focusRingWithColor.default)((0, _toColorString.default)(_color.default.interaction.pacificOcean40)), (0, _toColorString.default)(_color.default.interaction.pacificOcean), (0, _toColorString.default)(_color.default.interaction.pacificOcean.fg));
73
91
 
92
+ var FloatingButtonColumn = _styledComponents.default.div.withConfig({
93
+ displayName: "NotificationsPanel__FloatingButtonColumn",
94
+ componentId: "sc-1u8dp2k-2"
95
+ })(["display:flex;flex:1;height:24px;justify-content:flex-end;padding-left:", ";padding-right:", ";"], (0, _rem.default)(_spacing.default.base), (0, _rem.default)(_spacing.default.base));
96
+
74
97
  var NotificationContainer = _styledComponents.default.div.withConfig({
75
98
  displayName: "NotificationsPanel__NotificationContainer",
76
- componentId: "sc-1u8dp2k-2"
99
+ componentId: "sc-1u8dp2k-3"
77
100
  })(["height:auto;max-height:0;opacity:0;transition:opacity 1s cubic-bezier(0.33,1,0.68,1),max-height 1s cubic-bezier(0.33,1,0.68,1);", ";"], (0, _styledComponentsModifiers.applyStyleModifiers)(_defineProperty({}, _types.NotificationState.DISPLAYING, function () {
78
101
  return (0, _styledComponents.css)(["max-height:100vh;opacity:1;"]);
79
102
  }), 'renderState'));
80
103
 
81
- function NotificationsPanel(_ref3) {
82
- var marginTop = _ref3.marginTop,
83
- zIndex = _ref3.zIndex;
104
+ function NotificationsPanel(_ref7) {
105
+ var marginTop = _ref7.marginTop,
106
+ zIndex = _ref7.zIndex;
84
107
 
85
108
  var _useNotifications = (0, _useNotifications2.default)(),
86
109
  dismissAll = _useNotifications.dismissAll,
110
+ isDismissingAll = _useNotifications.isDismissingAll,
87
111
  notifications = _useNotifications.notifications;
88
112
 
89
113
  var translate = (0, _useTranslations.default)();
90
- return _react.default.createElement(NotificationsContainer, {
114
+ return (0, _isEmpty.default)(notifications) ? null : _react.default.createElement(NotificationsContainer, {
115
+ scroll: !isDismissingAll,
91
116
  marginTop: marginTop,
92
- zIndex: zIndex
117
+ zIndex: zIndex,
118
+ notifications: notifications
93
119
  }, _react.default.createElement(_Grid.default.Container, null, _react.default.createElement(_Grid.default.Row, {
94
120
  alignment: "end"
95
- }, _react.default.createElement(_Grid.default.Column, {
96
- height: "24px",
97
- span: "0"
98
- }, notifications.length >= 2 && _react.default.createElement(FloatingButton, {
121
+ }, _react.default.createElement(FloatingButtonColumn, null, !isDismissingAll && notifications.length >= 2 && _react.default.createElement(FloatingButton, {
99
122
  onClick: dismissAll,
100
123
  size: "small",
101
124
  text: translate(undefined, 'notifications.dismissAll')
102
- })))), !(0, _isEmpty.default)(notifications) && _react.default.createElement(_Grid.default.Container, null, (notifications || []).map(function (_ref4) {
103
- var _ref5 = _slicedToArray(_ref4, 3),
104
- notificationProps = _ref5[0],
105
- body = _ref5[1],
106
- _ref5$ = _ref5[2],
107
- notificationID = _ref5$.notificationID,
108
- state = _ref5$.state;
125
+ })))), _react.default.createElement(_Grid.default.Container, null, (notifications || []).map(function (_ref8) {
126
+ var _ref9 = _slicedToArray(_ref8, 3),
127
+ notificationProps = _ref9[0],
128
+ body = _ref9[1],
129
+ _ref9$ = _ref9[2],
130
+ notificationID = _ref9$.notificationID,
131
+ state = _ref9$.state;
109
132
 
110
133
  return _react.default.createElement(_Grid.default.Row, {
111
134
  key: notificationID,
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
 
8
8
  var _reactDesc = require("react-desc");
9
9
 
10
- // @ts-ignore no module typings
10
+ // @ts-ignore no module typings for react-desc
11
11
  var schema = (0, _reactDesc.describe)({
12
12
  displayName: 'NotificationsPanel'
13
13
  });