@transferwise/components 46.78.0 → 46.79.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/build/accordion/AccordionItem/AccordionItem.js +22 -3
  2. package/build/accordion/AccordionItem/AccordionItem.js.map +1 -1
  3. package/build/accordion/AccordionItem/AccordionItem.mjs +22 -3
  4. package/build/accordion/AccordionItem/AccordionItem.mjs.map +1 -1
  5. package/build/actionButton/ActionButton.js +22 -1
  6. package/build/actionButton/ActionButton.js.map +1 -1
  7. package/build/actionButton/ActionButton.mjs +22 -1
  8. package/build/actionButton/ActionButton.mjs.map +1 -1
  9. package/build/actionOption/ActionOption.js +24 -2
  10. package/build/actionOption/ActionOption.js.map +1 -1
  11. package/build/actionOption/ActionOption.mjs +24 -2
  12. package/build/actionOption/ActionOption.mjs.map +1 -1
  13. package/build/alert/Alert.js +22 -6
  14. package/build/alert/Alert.js.map +1 -1
  15. package/build/alert/Alert.mjs +22 -6
  16. package/build/alert/Alert.mjs.map +1 -1
  17. package/build/alert/inlineMarkdown/InlineMarkdown.js +25 -2
  18. package/build/alert/inlineMarkdown/InlineMarkdown.js.map +1 -1
  19. package/build/alert/inlineMarkdown/InlineMarkdown.mjs +25 -2
  20. package/build/alert/inlineMarkdown/InlineMarkdown.mjs.map +1 -1
  21. package/build/avatar/Avatar.js +23 -2
  22. package/build/avatar/Avatar.js.map +1 -1
  23. package/build/avatar/Avatar.mjs +23 -2
  24. package/build/avatar/Avatar.mjs.map +1 -1
  25. package/build/avatarWrapper/AvatarWrapper.js +23 -3
  26. package/build/avatarWrapper/AvatarWrapper.js.map +1 -1
  27. package/build/avatarWrapper/AvatarWrapper.mjs +23 -3
  28. package/build/avatarWrapper/AvatarWrapper.mjs.map +1 -1
  29. package/build/badge/Badge.js +23 -2
  30. package/build/badge/Badge.js.map +1 -1
  31. package/build/badge/Badge.mjs +23 -2
  32. package/build/badge/Badge.mjs.map +1 -1
  33. package/build/button/Button.js +22 -6
  34. package/build/button/Button.js.map +1 -1
  35. package/build/button/Button.messages.js.map +1 -1
  36. package/build/button/Button.messages.mjs.map +1 -1
  37. package/build/button/Button.mjs +22 -6
  38. package/build/button/Button.mjs.map +1 -1
  39. package/build/button/classMap.js +24 -0
  40. package/build/button/classMap.js.map +1 -1
  41. package/build/button/classMap.mjs +24 -0
  42. package/build/button/classMap.mjs.map +1 -1
  43. package/build/button/legacyUtils/legacyUtils.js +30 -7
  44. package/build/button/legacyUtils/legacyUtils.js.map +1 -1
  45. package/build/button/legacyUtils/legacyUtils.mjs +30 -7
  46. package/build/button/legacyUtils/legacyUtils.mjs.map +1 -1
  47. package/build/card/Card.js +23 -3
  48. package/build/card/Card.js.map +1 -1
  49. package/build/card/Card.mjs +23 -3
  50. package/build/card/Card.mjs.map +1 -1
  51. package/build/checkbox/Checkbox.js +23 -1
  52. package/build/checkbox/Checkbox.js.map +1 -1
  53. package/build/checkbox/Checkbox.mjs +23 -1
  54. package/build/checkbox/Checkbox.mjs.map +1 -1
  55. package/build/checkboxOption/CheckboxOption.js +1 -1
  56. package/build/checkboxOption/CheckboxOption.mjs +1 -1
  57. package/build/chevron/Chevron.js +21 -1
  58. package/build/chevron/Chevron.js.map +1 -1
  59. package/build/chevron/Chevron.mjs +21 -1
  60. package/build/chevron/Chevron.mjs.map +1 -1
  61. package/build/chips/Chip.js +19 -1
  62. package/build/chips/Chip.js.map +1 -1
  63. package/build/chips/Chip.mjs +19 -1
  64. package/build/chips/Chip.mjs.map +1 -1
  65. package/build/circularButton/CircularButton.js +23 -4
  66. package/build/circularButton/CircularButton.js.map +1 -1
  67. package/build/circularButton/CircularButton.mjs +23 -4
  68. package/build/circularButton/CircularButton.mjs.map +1 -1
  69. package/build/common/bottomSheet/BottomSheet.js +3 -2
  70. package/build/common/bottomSheet/BottomSheet.js.map +1 -1
  71. package/build/common/bottomSheet/BottomSheet.mjs +3 -2
  72. package/build/common/bottomSheet/BottomSheet.mjs.map +1 -1
  73. package/build/common/hooks/useHasIntersected/useHasIntersected.js +10 -10
  74. package/build/common/hooks/useHasIntersected/useHasIntersected.js.map +1 -1
  75. package/build/common/hooks/useHasIntersected/useHasIntersected.mjs +10 -10
  76. package/build/common/hooks/useHasIntersected/useHasIntersected.mjs.map +1 -1
  77. package/build/common/locale/index.js +24 -0
  78. package/build/common/locale/index.js.map +1 -1
  79. package/build/common/locale/index.mjs +24 -0
  80. package/build/common/locale/index.mjs.map +1 -1
  81. package/build/common/panel/Panel.js +23 -2
  82. package/build/common/panel/Panel.js.map +1 -1
  83. package/build/common/panel/Panel.mjs +23 -2
  84. package/build/common/panel/Panel.mjs.map +1 -1
  85. package/build/common/responsivePanel/ResponsivePanel.js +27 -3
  86. package/build/common/responsivePanel/ResponsivePanel.js.map +1 -1
  87. package/build/common/responsivePanel/ResponsivePanel.mjs +27 -3
  88. package/build/common/responsivePanel/ResponsivePanel.mjs.map +1 -1
  89. package/build/criticalBanner/CriticalCommsBanner.js +22 -3
  90. package/build/criticalBanner/CriticalCommsBanner.js.map +1 -1
  91. package/build/criticalBanner/CriticalCommsBanner.mjs +22 -3
  92. package/build/criticalBanner/CriticalCommsBanner.mjs.map +1 -1
  93. package/build/dateInput/DateInput.js +22 -5
  94. package/build/dateInput/DateInput.js.map +1 -1
  95. package/build/dateInput/DateInput.mjs +22 -5
  96. package/build/dateInput/DateInput.mjs.map +1 -1
  97. package/build/dateLookup/DateLookup.js +24 -6
  98. package/build/dateLookup/DateLookup.js.map +1 -1
  99. package/build/dateLookup/DateLookup.mjs +24 -6
  100. package/build/dateLookup/DateLookup.mjs.map +1 -1
  101. package/build/dateLookup/dateHeader/DateHeader.js +26 -5
  102. package/build/dateLookup/dateHeader/DateHeader.js.map +1 -1
  103. package/build/dateLookup/dateHeader/DateHeader.mjs +26 -5
  104. package/build/dateLookup/dateHeader/DateHeader.mjs.map +1 -1
  105. package/build/dateLookup/dateTrigger/DateTrigger.js +19 -3
  106. package/build/dateLookup/dateTrigger/DateTrigger.js.map +1 -1
  107. package/build/dateLookup/dateTrigger/DateTrigger.mjs +19 -3
  108. package/build/dateLookup/dateTrigger/DateTrigger.mjs.map +1 -1
  109. package/build/decision/Decision.js +24 -3
  110. package/build/decision/Decision.js.map +1 -1
  111. package/build/decision/Decision.mjs +24 -3
  112. package/build/decision/Decision.mjs.map +1 -1
  113. package/build/definitionList/DefinitionList.js +23 -1
  114. package/build/definitionList/DefinitionList.js.map +1 -1
  115. package/build/definitionList/DefinitionList.mjs +23 -1
  116. package/build/definitionList/DefinitionList.mjs.map +1 -1
  117. package/build/dimmer/Dimmer.js +24 -2
  118. package/build/dimmer/Dimmer.js.map +1 -1
  119. package/build/dimmer/Dimmer.mjs +24 -2
  120. package/build/dimmer/Dimmer.mjs.map +1 -1
  121. package/build/display/Display.js +23 -1
  122. package/build/display/Display.js.map +1 -1
  123. package/build/display/Display.mjs +23 -1
  124. package/build/display/Display.mjs.map +1 -1
  125. package/build/drawer/Drawer.js +23 -4
  126. package/build/drawer/Drawer.js.map +1 -1
  127. package/build/drawer/Drawer.mjs +23 -4
  128. package/build/drawer/Drawer.mjs.map +1 -1
  129. package/build/field/Field.js +23 -2
  130. package/build/field/Field.js.map +1 -1
  131. package/build/field/Field.mjs +23 -2
  132. package/build/field/Field.mjs.map +1 -1
  133. package/build/flowNavigation/FlowNavigation.js +19 -2
  134. package/build/flowNavigation/FlowNavigation.js.map +1 -1
  135. package/build/flowNavigation/FlowNavigation.mjs +19 -2
  136. package/build/flowNavigation/FlowNavigation.mjs.map +1 -1
  137. package/build/header/Header.js +24 -2
  138. package/build/header/Header.js.map +1 -1
  139. package/build/header/Header.mjs +24 -2
  140. package/build/header/Header.mjs.map +1 -1
  141. package/build/image/Image.js +4 -1
  142. package/build/image/Image.js.map +1 -1
  143. package/build/image/Image.mjs +4 -1
  144. package/build/image/Image.mjs.map +1 -1
  145. package/build/index.js +69 -62
  146. package/build/index.js.map +1 -1
  147. package/build/index.mjs +27 -20
  148. package/build/index.mjs.map +1 -1
  149. package/build/info/Info.js +21 -3
  150. package/build/info/Info.js.map +1 -1
  151. package/build/info/Info.mjs +21 -3
  152. package/build/info/Info.mjs.map +1 -1
  153. package/build/inlineAlert/InlineAlert.js +24 -3
  154. package/build/inlineAlert/InlineAlert.js.map +1 -1
  155. package/build/inlineAlert/InlineAlert.mjs +24 -3
  156. package/build/inlineAlert/InlineAlert.mjs.map +1 -1
  157. package/build/inputs/SearchInput.js +23 -2
  158. package/build/inputs/SearchInput.js.map +1 -1
  159. package/build/inputs/SearchInput.mjs +23 -2
  160. package/build/inputs/SearchInput.mjs.map +1 -1
  161. package/build/instructionsList/InstructionsList.js +22 -1
  162. package/build/instructionsList/InstructionsList.js.map +1 -1
  163. package/build/instructionsList/InstructionsList.mjs +22 -1
  164. package/build/instructionsList/InstructionsList.mjs.map +1 -1
  165. package/build/loader/Loader.js +22 -1
  166. package/build/loader/Loader.js.map +1 -1
  167. package/build/loader/Loader.mjs +22 -1
  168. package/build/loader/Loader.mjs.map +1 -1
  169. package/build/markdown/Markdown.js +24 -1
  170. package/build/markdown/Markdown.js.map +1 -1
  171. package/build/markdown/Markdown.mjs +24 -1
  172. package/build/markdown/Markdown.mjs.map +1 -1
  173. package/build/modal/Modal.js +22 -5
  174. package/build/modal/Modal.js.map +1 -1
  175. package/build/modal/Modal.mjs +22 -5
  176. package/build/modal/Modal.mjs.map +1 -1
  177. package/build/moneyInput/MoneyInput.js +22 -3
  178. package/build/moneyInput/MoneyInput.js.map +1 -1
  179. package/build/moneyInput/MoneyInput.mjs +22 -3
  180. package/build/moneyInput/MoneyInput.mjs.map +1 -1
  181. package/build/navigationOption/NavigationOption.js +23 -2
  182. package/build/navigationOption/NavigationOption.js.map +1 -1
  183. package/build/navigationOption/NavigationOption.mjs +23 -2
  184. package/build/navigationOption/NavigationOption.mjs.map +1 -1
  185. package/build/nudge/Nudge.js +19 -1
  186. package/build/nudge/Nudge.js.map +1 -1
  187. package/build/nudge/Nudge.mjs +19 -1
  188. package/build/nudge/Nudge.mjs.map +1 -1
  189. package/build/overlayHeader/OverlayHeader.js +19 -1
  190. package/build/overlayHeader/OverlayHeader.js.map +1 -1
  191. package/build/overlayHeader/OverlayHeader.mjs +19 -1
  192. package/build/overlayHeader/OverlayHeader.mjs.map +1 -1
  193. package/build/phoneNumberInput/PhoneNumberInput.js +23 -2
  194. package/build/phoneNumberInput/PhoneNumberInput.js.map +1 -1
  195. package/build/phoneNumberInput/PhoneNumberInput.mjs +23 -2
  196. package/build/phoneNumberInput/PhoneNumberInput.mjs.map +1 -1
  197. package/build/popover/Popover.js +24 -4
  198. package/build/popover/Popover.js.map +1 -1
  199. package/build/popover/Popover.mjs +24 -4
  200. package/build/popover/Popover.mjs.map +1 -1
  201. package/build/processIndicator/ProcessIndicator.js +22 -1
  202. package/build/processIndicator/ProcessIndicator.js.map +1 -1
  203. package/build/processIndicator/ProcessIndicator.mjs +22 -1
  204. package/build/processIndicator/ProcessIndicator.mjs.map +1 -1
  205. package/build/progressBar/ProgressBar.js +24 -2
  206. package/build/progressBar/ProgressBar.js.map +1 -1
  207. package/build/progressBar/ProgressBar.mjs +24 -2
  208. package/build/progressBar/ProgressBar.mjs.map +1 -1
  209. package/build/promoCard/PromoCard.js +22 -2
  210. package/build/promoCard/PromoCard.js.map +1 -1
  211. package/build/promoCard/PromoCard.mjs +22 -2
  212. package/build/promoCard/PromoCard.mjs.map +1 -1
  213. package/build/promoCard/PromoCardIndicator.js +22 -1
  214. package/build/promoCard/PromoCardIndicator.js.map +1 -1
  215. package/build/promoCard/PromoCardIndicator.mjs +22 -1
  216. package/build/promoCard/PromoCardIndicator.mjs.map +1 -1
  217. package/build/provider/Provider.js +25 -2
  218. package/build/provider/Provider.js.map +1 -1
  219. package/build/provider/Provider.mjs +25 -2
  220. package/build/provider/Provider.mjs.map +1 -1
  221. package/build/radio/Radio.js +24 -2
  222. package/build/radio/Radio.js.map +1 -1
  223. package/build/radio/Radio.mjs +24 -2
  224. package/build/radio/Radio.mjs.map +1 -1
  225. package/build/segmentedControl/SegmentedControl.js +22 -1
  226. package/build/segmentedControl/SegmentedControl.js.map +1 -1
  227. package/build/segmentedControl/SegmentedControl.mjs +22 -1
  228. package/build/segmentedControl/SegmentedControl.mjs.map +1 -1
  229. package/build/select/Select.js +26 -4
  230. package/build/select/Select.js.map +1 -1
  231. package/build/select/Select.mjs +26 -4
  232. package/build/select/Select.mjs.map +1 -1
  233. package/build/select/option/Option.js +22 -1
  234. package/build/select/option/Option.js.map +1 -1
  235. package/build/select/option/Option.mjs +22 -1
  236. package/build/select/option/Option.mjs.map +1 -1
  237. package/build/selectOption/SelectOption.js +24 -6
  238. package/build/selectOption/SelectOption.js.map +1 -1
  239. package/build/selectOption/SelectOption.mjs +24 -6
  240. package/build/selectOption/SelectOption.mjs.map +1 -1
  241. package/build/statusIcon/StatusIcon.js +22 -4
  242. package/build/statusIcon/StatusIcon.js.map +1 -1
  243. package/build/statusIcon/StatusIcon.mjs +22 -4
  244. package/build/statusIcon/StatusIcon.mjs.map +1 -1
  245. package/build/stepper/Stepper.js +25 -3
  246. package/build/stepper/Stepper.js.map +1 -1
  247. package/build/stepper/Stepper.mjs +25 -3
  248. package/build/stepper/Stepper.mjs.map +1 -1
  249. package/build/stepper/deviceDetection.js +2 -3
  250. package/build/stepper/deviceDetection.js.map +1 -1
  251. package/build/stepper/deviceDetection.mjs +2 -3
  252. package/build/stepper/deviceDetection.mjs.map +1 -1
  253. package/build/sticky/Sticky.js +25 -2
  254. package/build/sticky/Sticky.js.map +1 -1
  255. package/build/sticky/Sticky.mjs +25 -2
  256. package/build/sticky/Sticky.mjs.map +1 -1
  257. package/build/summary/Summary.js +21 -5
  258. package/build/summary/Summary.js.map +1 -1
  259. package/build/summary/Summary.mjs +21 -5
  260. package/build/summary/Summary.mjs.map +1 -1
  261. package/build/tabs/Tabs.js +23 -3
  262. package/build/tabs/Tabs.js.map +1 -1
  263. package/build/tabs/Tabs.mjs +23 -3
  264. package/build/tabs/Tabs.mjs.map +1 -1
  265. package/build/tile/Tile.js +24 -2
  266. package/build/tile/Tile.js.map +1 -1
  267. package/build/tile/Tile.mjs +24 -2
  268. package/build/tile/Tile.mjs.map +1 -1
  269. package/build/title/Title.js +23 -1
  270. package/build/title/Title.js.map +1 -1
  271. package/build/title/Title.mjs +23 -1
  272. package/build/title/Title.mjs.map +1 -1
  273. package/build/tooltip/Tooltip.js +22 -1
  274. package/build/tooltip/Tooltip.js.map +1 -1
  275. package/build/tooltip/Tooltip.mjs +22 -1
  276. package/build/tooltip/Tooltip.mjs.map +1 -1
  277. package/build/typeahead/Typeahead.js +22 -4
  278. package/build/typeahead/Typeahead.js.map +1 -1
  279. package/build/typeahead/Typeahead.mjs +22 -4
  280. package/build/typeahead/Typeahead.mjs.map +1 -1
  281. package/build/types/button/Button.d.ts.map +1 -1
  282. package/build/types/button/Button.messages.d.ts +7 -7
  283. package/build/types/button/Button.messages.d.ts.map +1 -1
  284. package/build/types/button/classMap.d.ts +10 -10
  285. package/build/types/button/classMap.d.ts.map +1 -1
  286. package/build/types/button/legacyUtils/index.d.ts +1 -1
  287. package/build/types/button/legacyUtils/index.d.ts.map +1 -1
  288. package/build/types/button/legacyUtils/legacyUtils.d.ts +20 -6
  289. package/build/types/button/legacyUtils/legacyUtils.d.ts.map +1 -1
  290. package/build/types/checkboxButton/index.d.ts +1 -1
  291. package/build/types/checkboxButton/index.d.ts.map +1 -1
  292. package/build/types/common/fakeEvents.d.ts +23 -0
  293. package/build/types/common/fakeEvents.d.ts.map +1 -0
  294. package/build/types/common/hooks/index.d.ts +4 -4
  295. package/build/types/common/hooks/index.d.ts.map +1 -1
  296. package/build/types/common/hooks/useConditionalListener/index.d.ts +1 -1
  297. package/build/types/common/hooks/useConditionalListener/index.d.ts.map +1 -1
  298. package/build/types/common/hooks/useDirection/index.d.ts +1 -1
  299. package/build/types/common/hooks/useDirection/index.d.ts.map +1 -1
  300. package/build/types/common/hooks/useHasIntersected/index.d.ts +1 -1
  301. package/build/types/common/hooks/useHasIntersected/index.d.ts.map +1 -1
  302. package/build/types/common/hooks/useHasIntersected/useHasIntersected.d.ts +15 -4
  303. package/build/types/common/hooks/useHasIntersected/useHasIntersected.d.ts.map +1 -1
  304. package/build/types/common/index.d.ts +28 -28
  305. package/build/types/common/index.d.ts.map +1 -1
  306. package/build/types/common/responsivePanel/index.d.ts +1 -1
  307. package/build/types/common/responsivePanel/index.d.ts.map +1 -1
  308. package/build/types/index.d.ts +1 -0
  309. package/build/types/index.d.ts.map +1 -1
  310. package/build/types/navigationOption/NavigationOption.d.ts +1 -0
  311. package/build/types/navigationOption/NavigationOption.d.ts.map +1 -1
  312. package/build/types/stepper/deviceDetection.d.ts +1 -1
  313. package/build/types/stepper/deviceDetection.d.ts.map +1 -1
  314. package/build/types/test-utils/style-mock.d.ts +1 -0
  315. package/build/types/test-utils/style-mock.d.ts.map +1 -0
  316. package/build/types/utilities/deprecatedProperty/deprecatedProperty.d.ts +8 -6
  317. package/build/types/utilities/deprecatedProperty/deprecatedProperty.d.ts.map +1 -1
  318. package/build/types/utilities/deprecatedProperty/index.d.ts +1 -1
  319. package/build/types/utilities/deprecatedProperty/index.d.ts.map +1 -1
  320. package/build/types/utilities/index.d.ts +2 -2
  321. package/build/types/utilities/index.d.ts.map +1 -1
  322. package/build/types/utilities/logActionRequired.d.ts +2 -2
  323. package/build/types/utilities/logActionRequired.d.ts.map +1 -1
  324. package/build/upload/Upload.js +21 -2
  325. package/build/upload/Upload.js.map +1 -1
  326. package/build/upload/Upload.mjs +21 -2
  327. package/build/upload/Upload.mjs.map +1 -1
  328. package/build/upload/steps/processingStep/processingStep.js +25 -3
  329. package/build/upload/steps/processingStep/processingStep.js.map +1 -1
  330. package/build/upload/steps/processingStep/processingStep.mjs +25 -3
  331. package/build/upload/steps/processingStep/processingStep.mjs.map +1 -1
  332. package/build/upload/steps/uploadImageStep/uploadImageStep.js +23 -3
  333. package/build/upload/steps/uploadImageStep/uploadImageStep.js.map +1 -1
  334. package/build/upload/steps/uploadImageStep/uploadImageStep.mjs +23 -3
  335. package/build/upload/steps/uploadImageStep/uploadImageStep.mjs.map +1 -1
  336. package/build/uploadInput/UploadInput.js +22 -3
  337. package/build/uploadInput/UploadInput.js.map +1 -1
  338. package/build/uploadInput/UploadInput.mjs +22 -3
  339. package/build/uploadInput/UploadInput.mjs.map +1 -1
  340. package/build/uploadInput/uploadButton/UploadButton.js +21 -2
  341. package/build/uploadInput/uploadButton/UploadButton.js.map +1 -1
  342. package/build/uploadInput/uploadButton/UploadButton.mjs +21 -2
  343. package/build/uploadInput/uploadButton/UploadButton.mjs.map +1 -1
  344. package/build/uploadInput/uploadButton/defaults.js +24 -0
  345. package/build/uploadInput/uploadButton/defaults.js.map +1 -1
  346. package/build/uploadInput/uploadButton/defaults.mjs +24 -0
  347. package/build/uploadInput/uploadButton/defaults.mjs.map +1 -1
  348. package/build/uploadInput/uploadItem/UploadItem.js +21 -4
  349. package/build/uploadInput/uploadItem/UploadItem.js.map +1 -1
  350. package/build/uploadInput/uploadItem/UploadItem.mjs +21 -4
  351. package/build/uploadInput/uploadItem/UploadItem.mjs.map +1 -1
  352. package/build/utilities/logActionRequired.js.map +1 -1
  353. package/build/utilities/logActionRequired.mjs.map +1 -1
  354. package/build/withDisplayFormat/WithDisplayFormat.js +25 -1
  355. package/build/withDisplayFormat/WithDisplayFormat.js.map +1 -1
  356. package/build/withDisplayFormat/WithDisplayFormat.mjs +25 -1
  357. package/build/withDisplayFormat/WithDisplayFormat.mjs.map +1 -1
  358. package/package.json +2 -2
  359. package/src/button/Button.tsx +0 -3
  360. package/src/button/legacyUtils/legacyUtils.ts +74 -0
  361. package/src/common/{fakeEvents.js → fakeEvents.ts} +1 -1
  362. package/src/common/hooks/useHasIntersected/{useHasIntersected.js → useHasIntersected.ts} +20 -11
  363. package/src/flowNavigation/{FlowNavigation.story.js → FlowNavigation.story.tsx} +34 -16
  364. package/src/index.ts +1 -0
  365. package/src/inputWithDisplayFormat/InputWithDisplayFormat.story.tsx +78 -0
  366. package/src/navigationOption/{NavigationOption.story.js → NavigationOption.story.tsx} +23 -5
  367. package/src/navigationOption/NavigationOption.tsx +1 -1
  368. package/src/select/{Select.story.js → Select.story.tsx} +97 -47
  369. package/src/stepper/{deviceDetection.js → deviceDetection.ts} +2 -6
  370. package/src/utilities/deprecatedProperty/{deprecatedProperty.spec.js → deprecatedProperty.spec.ts} +7 -13
  371. package/src/utilities/deprecatedProperty/{deprecatedProperty.js → deprecatedProperty.ts} +23 -4
  372. package/src/utilities/{logActionRequired.js → logActionRequired.ts} +2 -2
  373. package/src/button/legacyUtils/legacyUtils.js +0 -54
  374. package/src/common/requirements.js +0 -440
  375. package/src/inputWithDisplayFormat/InputWithDisplayFormat.story.js +0 -85
  376. /package/src/button/{Button.messages.js → Button.messages.ts} +0 -0
  377. /package/src/button/{classMap.js → classMap.ts} +0 -0
  378. /package/src/button/legacyUtils/{index.js → index.ts} +0 -0
  379. /package/src/checkboxButton/{index.js → index.ts} +0 -0
  380. /package/src/common/hooks/{index.js → index.ts} +0 -0
  381. /package/src/common/hooks/useConditionalListener/{index.js → index.ts} +0 -0
  382. /package/src/common/hooks/useDirection/{index.js → index.ts} +0 -0
  383. /package/src/common/hooks/useHasIntersected/{index.js → index.ts} +0 -0
  384. /package/src/common/{index.js → index.ts} +0 -0
  385. /package/src/common/responsivePanel/{index.js → index.ts} +0 -0
  386. /package/src/test-utils/{style-mock.js → style-mock.ts} +0 -0
  387. /package/src/utilities/deprecatedProperty/{index.js → index.ts} +0 -0
  388. /package/src/utilities/{index.js → index.ts} +0 -0
@@ -2,7 +2,7 @@ import { text, boolean, select } from '@storybook/addon-knobs';
2
2
  import { Person as ProfileIcon, Globe as GlobeIcon } from '@transferwise/icons';
3
3
  import { useState } from 'react';
4
4
 
5
- import Select from './Select';
5
+ import Select, { SelectItem, SelectOptionItem } from './Select';
6
6
 
7
7
  export default {
8
8
  component: Select,
@@ -17,8 +17,16 @@ const ImageIcon = () => (
17
17
  />
18
18
  );
19
19
 
20
+ interface SelectItemWithCountries extends SelectItem {
21
+ countries?: string;
22
+ }
23
+
24
+ const isSelectOptionItem = (option: SelectItem | null): option is SelectOptionItem => {
25
+ return option !== null && typeof option.value !== 'undefined';
26
+ };
27
+
20
28
  export const Basic = () => {
21
- const [selected, setSelected] = useState({
29
+ const [selected, setSelected] = useState<SelectOptionItem>({
22
30
  value: 0,
23
31
  label: 'A thing',
24
32
  note: 'with a note',
@@ -26,7 +34,7 @@ export const Basic = () => {
26
34
 
27
35
  const size = select('size', ['sm', 'md', 'lg'], 'md');
28
36
  const dropdownRight = select('dropdownRight', ['xs', 'sm', 'md', 'lg', 'xl'], 'md');
29
- const dropdownWidth = select('dropdownWidth', [null, 'sm', 'md', 'lg'], 'md');
37
+ const dropdownWidth = select('dropdownWidth', [undefined, 'sm', 'md', 'lg'], 'md');
30
38
 
31
39
  const id = text('id', 'basic-button');
32
40
  const placeholder = text('placeholder', 'Placeholder text');
@@ -35,14 +43,12 @@ export const Basic = () => {
35
43
  const required = boolean('required', false);
36
44
  const dropdownUp = boolean('dropdownUp', false);
37
45
  const disabled = boolean('disabled', false);
38
- const search = boolean('search', false);
39
- const hasError = boolean('hasError', false);
46
+ const search = boolean('search', true);
40
47
 
41
48
  return (
42
49
  <Select
43
50
  id={id}
44
51
  size={size}
45
- classNames={hasError ? 'has-error' : ''}
46
52
  placeholder={placeholder}
47
53
  dropdownRight={dropdownRight}
48
54
  dropdownWidth={dropdownWidth}
@@ -108,13 +114,17 @@ export const Basic = () => {
108
114
  'and with lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation secondary text',
109
115
  },
110
116
  ]}
111
- onChange={(v) => setSelected(v)}
117
+ onChange={(option) => {
118
+ if (isSelectOptionItem(option)) {
119
+ setSelected(option);
120
+ }
121
+ }}
112
122
  />
113
123
  );
114
124
  };
115
125
 
116
126
  export const CustomSearchFunction = () => {
117
- const [selected, setSelected] = useState({
127
+ const [selected, setSelected] = useState<SelectOptionItem>({
118
128
  value: 1,
119
129
  label: 'EUR',
120
130
  currency: 'EUR',
@@ -122,7 +132,7 @@ export const CustomSearchFunction = () => {
122
132
 
123
133
  const size = select('size', ['sm', 'md', 'lg'], 'md');
124
134
  const dropdownRight = select('dropdownRight', ['xs', 'sm', 'md', 'lg', 'xl'], 'md');
125
- const dropdownWidth = select('dropdownWidth', [null, 'sm', 'md', 'lg'], 'md');
135
+ const dropdownWidth = select('dropdownWidth', [undefined, 'sm', 'md', 'lg'], 'md');
126
136
 
127
137
  const id = text('id', 'custom-search-button');
128
138
  const placeholder = text('placeholder', 'placeholder');
@@ -144,12 +154,7 @@ export const CustomSearchFunction = () => {
144
154
  block={block}
145
155
  selected={selected}
146
156
  disabled={disabled}
147
- search={
148
- search
149
- ? (option, keyword) =>
150
- option.countries && option.countries.toLowerCase().includes(keyword.toLowerCase())
151
- : false
152
- }
157
+ search={search}
153
158
  required={required}
154
159
  searchPlaceholder="Search placeholder"
155
160
  dropdownUp={dropdownUp}
@@ -159,106 +164,143 @@ export const CustomSearchFunction = () => {
159
164
  value: 1,
160
165
  label: 'EUR',
161
166
  currency: 'EUR',
162
- countries:
163
- 'Seychelles Romania Saudi Arabia Macedonia, Former Yugoslav Republic of Serbia Kazakhstan Saint Lucia Malta Kosovo, Republic of Israel Slovakia Andorra United Kingdom Faroe Islands Ukraine Bulgaria Czech Republic Sao Tome and Principe Qatar Belgium Gibraltar Lebanon Netherlands Lithuania Slovenia France Norway Austria Hungary Spain United Arab Emirates Portugal Kuwait San Marino British Virgin Islands Georgia Timor-Leste Croatia Mauritania Finland Iceland Moldova Montenegro Turkey Switzerland Italy Sweden Costa Rica Estonia Guatemala Ireland Monaco Bosnia and Herzegovina Cyprus Greece Mauritius Bahrain Germany Poland Greenland Albania Tunisia Dominican Republic Luxembourg Azerbaijan Latvia Liechtenstein Denmark',
167
+ searchStrings: [
168
+ 'Austria',
169
+ 'Belgium',
170
+ 'Cyprus',
171
+ 'Estonia',
172
+ 'Finland',
173
+ 'France',
174
+ 'Germany',
175
+ 'Greece',
176
+ 'Ireland',
177
+ 'Italy',
178
+ 'Latvia',
179
+ 'Lithuania',
180
+ 'Luxembourg',
181
+ 'Malta',
182
+ 'Netherlands',
183
+ 'Portugal',
184
+ 'Slovakia',
185
+ 'Slovenia',
186
+ 'Spain',
187
+ 'Andorra',
188
+ 'Monaco',
189
+ 'San Marino',
190
+ 'Vatican City',
191
+ 'Kosovo',
192
+ 'Montenegro',
193
+ ],
164
194
  },
165
195
  {
166
196
  value: 2,
167
197
  label: 'GBP',
168
198
  currency: 'GBP',
169
- countries: 'Isle of Man United Kingdom',
199
+ searchStrings: ['Isle of Man', 'United Kingdom'],
170
200
  },
171
201
  {
172
202
  value: 3,
173
203
  label: 'INR',
174
204
  currency: 'INR',
175
- countries: 'India',
205
+ searchStrings: ['India'],
176
206
  },
177
207
  {
178
208
  value: 4,
179
209
  label: 'USD',
180
210
  currency: 'USD',
181
- countries:
182
- "Saudi Arabia Cape Verde Serbia Haiti Suriname Israel Slovakia Guadeloupe Namibia Uzbekistan Singapore Macao Maldives Ukraine Ethiopia Marshall Islands Netherlands Lithuania Uruguay Ecuador Falkland Islands Guernsey Hungary Argentina Kuwait Japan Cayman Islands South Africa Palau Moldova Montenegro Turkey Nauru Ireland Bermuda Jersey Algeria United States Samoa Uganda Vatican City Honduras Cocos (Keeling) Islands Côte d'Ivoire Macedonia, Former Yugoslav Republic of Kazakhstan Malta Solomon Islands Gabon Andorra Canada Faroe Islands Sao Tome and Principe Barbados Gibraltar French Polynesia Vietnam Bahamas Taiwan United Arab Emirates Mozambique Armenia Kiribati Panama Saint Kitts and Nevis Estonia Micronesia, Federated States of Mongolia China Niger Isle of Man Malaysia Guyana Senegal Germany Kyrgyzstan Greenland Albania Dominican Republic Hong Kong Luxembourg Morocco Norfolk Island Turks and Caicos Islands Rwanda Grenada Venezuela Gambia Seychelles Oman Antigua and Barbuda Papua New Guinea Colombia Sri Lanka Wallis and Futuna Anguilla Tanzania Kenya Bhutan Laos Fiji Australia Qatar Belgium Réunion Nicaragua El Salvador Slovenia New Caledonia Niue South Korea Guinea-Bissau Austria Cook Islands Spain Portugal Tonga Trinidad and Tobago Philippines Croatia Mauritania Finland Angola Saint Helena Switzerland Sierra Leone Costa Rica Mexico French Guiana Guatemala Cambodia Botswana Peru Cyprus Brunei Darussalam Bahrain Jamaica Paraguay Poland Tunisia Myanmar Burkina Faso Denmark Lesotho Zambia New Zealand Liberia Romania Dominica Saint Lucia Saint Pierre and Miquelon Mali United Kingdom Malawi Egypt Bulgaria Czech Republic Nepal Lebanon Guinea France Norway Puerto Rico Tuvalu Tajikistan Martinique San Marino Georgia Timor-Leste British Virgin Islands Montserrat Vanuatu Iceland Italy Saint Vincent and the Grenadines Thailand Sweden Indonesia American Samoa Bosnia and Herzegovina Monaco Benin Ghana Greece Mauritius Bangladesh Christmas Island Azerbaijan Chile Mayotte Liechtenstein Latvia Aruba Åland Islands Bolivia",
211
+ searchStrings: [
212
+ 'United States',
213
+ 'Ecuador',
214
+ 'El Salvador',
215
+ 'Panama',
216
+ 'East Timor',
217
+ 'Zimbabwe',
218
+ 'Micronesia',
219
+ 'Marshall Islands',
220
+ 'Palau',
221
+ 'Turks and Caicos Islands',
222
+ 'British Virgin Islands',
223
+ 'Caribbean Netherlands',
224
+ 'Bermuda',
225
+ 'Bahamas',
226
+ 'Puerto Rico',
227
+ 'Guam',
228
+ 'Northern Mariana Islands',
229
+ 'American Samoa',
230
+ 'U.S. Virgin Islands',
231
+ ],
183
232
  },
184
233
  {
185
234
  value: 5,
186
235
  label: 'DOP',
187
236
  currency: 'dop',
188
- countries: 'Dop',
189
237
  },
190
238
  {
191
239
  value: 6,
192
240
  label: 'UZS',
193
241
  currency: 'uzs',
194
- countries: 'Uzs',
195
242
  },
196
243
  {
197
244
  value: 7,
198
245
  label: 'TTD',
199
246
  currency: 'ttd',
200
- countries: 'Ttd',
201
247
  },
202
248
  { header: 'All currencies' },
203
249
  {
204
250
  currency: 'aed',
205
251
  value: 'AED',
206
252
  label: 'AED',
207
- searchable: 'United Arab Emirates',
253
+ searchStrings: ['United Arab Emirates'],
208
254
  },
209
255
  {
210
256
  currency: 'aud',
211
257
  value: 'AUD',
212
258
  label: 'AUD',
213
259
  note: 'Australian dollar',
214
- searchable: 'Australia',
215
- classNames: {},
260
+ searchStrings: ['Australia'],
216
261
  secondary: '',
217
262
  icon: null,
218
- selected: false,
219
263
  },
220
264
  {
221
265
  currency: 'bgn',
222
266
  value: 'BGN',
223
267
  label: 'BGN',
224
268
  note: 'Bulgarian lev',
225
- searchable: 'Bulgaria',
226
- classNames: {},
269
+ searchStrings: ['Bulgaria'],
227
270
  secondary: '',
228
271
  icon: null,
229
- selected: false,
230
272
  },
231
273
  {
232
274
  currency: 'brl',
233
275
  value: 'BRL',
234
276
  label: 'BRL',
235
277
  note: 'Brazilian real',
236
- searchable: 'Brazil',
237
- classNames: {},
278
+ searchStrings: ['Brazil'],
238
279
  secondary: '',
239
280
  icon: null,
240
- selected: false,
241
281
  },
242
282
  {
243
- currency: null,
283
+ currency: undefined,
244
284
  value: 'USD',
245
285
  label: 'USD',
246
286
  note: 'United States dollar - Outside of the US',
247
- searchable: 'United States',
248
- classNames: {},
287
+ searchStrings: ['United States'],
249
288
  secondary: '',
250
289
  icon: <GlobeIcon />,
251
- selected: false,
252
290
  },
253
291
  ]}
254
- onChange={(v) => setSelected(v)}
292
+ onChange={(option) => {
293
+ if (isSelectOptionItem(option)) {
294
+ setSelected(option);
295
+ }
296
+ }}
255
297
  />
256
298
  );
257
299
  };
258
300
 
259
301
  export const AdvancedSearch = () => {
260
302
  const [searchValue, setSearchValue] = useState('');
261
- const [selected, setSelected] = useState({
303
+ const [selected, setSelected] = useState<SelectOptionItem>({
262
304
  value: 0,
263
305
  label: 'A thing',
264
306
  note: 'with a note',
@@ -266,7 +308,7 @@ export const AdvancedSearch = () => {
266
308
 
267
309
  const size = select('size', ['sm', 'md', 'lg'], 'md');
268
310
  const dropdownRight = select('dropdownRight', ['xs', 'sm', 'md', 'lg', 'xl'], 'md');
269
- const dropdownWidth = select('dropdownWidth', [null, 'sm', 'md', 'lg'], 'md');
311
+ const dropdownWidth = select('dropdownWidth', [undefined, 'sm', 'md', 'lg'], 'md');
270
312
 
271
313
  const id = text('id', 'advanced-search-button');
272
314
  const placeholder = text('placeholder', 'placeholder');
@@ -318,15 +360,19 @@ export const AdvancedSearch = () => {
318
360
  label: 'A thing with searchable alternatives',
319
361
  searchStrings: ['abbreviation', 'acronym', 'nickname'],
320
362
  },
321
- ].filter((option) => option.label && option.label.toLowerCase().includes(searchValue))}
322
- onChange={(v) => setSelected(v)}
363
+ ].filter((option) => option.label?.toLowerCase().includes(searchValue))}
364
+ onChange={(option) => {
365
+ if (isSelectOptionItem(option)) {
366
+ setSelected(option);
367
+ }
368
+ }}
323
369
  onSearchChange={(v) => setSearchValue(v)}
324
370
  />
325
371
  );
326
372
  };
327
373
 
328
374
  export const SearchingLargeLists = () => {
329
- const [selected, setSelected] = useState({
375
+ const [selected, setSelected] = useState<SelectOptionItem>({
330
376
  value: 'option1',
331
377
  label: 'Option 1',
332
378
  secondary: 'Here we have a description describing option 1',
@@ -334,7 +380,7 @@ export const SearchingLargeLists = () => {
334
380
 
335
381
  const size = select('size', ['sm', 'md', 'lg'], 'md');
336
382
  const dropdownRight = select('dropdownRight', ['xs', 'sm', 'md', 'lg', 'xl'], 'md');
337
- const dropdownWidth = select('dropdownWidth', [null, 'sm', 'md', 'lg'], 'md');
383
+ const dropdownWidth = select('dropdownWidth', [undefined, 'sm', 'md', 'lg'], 'md');
338
384
 
339
385
  const id = text('id', 'large-list-button');
340
386
  const placeholder = text('placeholder', 'Placeholder text');
@@ -359,12 +405,16 @@ export const SearchingLargeLists = () => {
359
405
  required={required}
360
406
  searchPlaceholder="Search placeholder"
361
407
  dropdownUp={dropdownUp}
362
- options={new Array(1500).fill().map((x, index) => ({
408
+ options={new Array(1500).fill(null).map((x, index) => ({
363
409
  value: `option${index + 1}`,
364
410
  label: `Option ${index + 1}`,
365
411
  secondary: `Here we have a description describing option ${index + 1}`,
366
412
  }))}
367
- onChange={(v) => setSelected(v)}
413
+ onChange={(option) => {
414
+ if (isSelectOptionItem(option)) {
415
+ setSelected(option);
416
+ }
417
+ }}
368
418
  />
369
419
  );
370
420
  };
@@ -1,12 +1,8 @@
1
1
  function supportsTouchEvents() {
2
2
  const onTouchStartIsDefined = typeof window !== 'undefined' && window.ontouchstart !== undefined;
3
3
  const maxTouchPointsIsDefined = typeof navigator !== 'undefined' && navigator.maxTouchPoints;
4
- const documentTouchIsDefined =
5
- typeof window !== 'undefined' &&
6
- window.DocumentTouch &&
7
- document instanceof window.DocumentTouch;
8
4
 
9
- return !!(onTouchStartIsDefined || maxTouchPointsIsDefined || documentTouchIsDefined);
5
+ return !!(onTouchStartIsDefined || maxTouchPointsIsDefined);
10
6
  }
11
7
 
12
8
  function userAgentSuggestsTouchDevice() {
@@ -21,7 +17,7 @@ function userAgentSuggestsTouchDevice() {
21
17
  ];
22
18
  const matchString = sampleTouchDevices.map((device) => `(${device})`).join('|');
23
19
  const regex = new RegExp(matchString, 'gi');
24
- return typeof navigator !== 'undefined' && !!navigator.userAgent.match(regex);
20
+ return typeof navigator !== 'undefined' && !!regex.test(navigator.userAgent);
25
21
  }
26
22
  // Important: this is not fool-proof! It gives false positives and negatives, and will be outdated.
27
23
  // Only use this for small vanity changes where it still works either way.
@@ -5,6 +5,7 @@ const props = { prop1: 'prop1', prop2: 'prop2' };
5
5
  const validator = jest.fn();
6
6
 
7
7
  describe('deprecated', () => {
8
+ const component = 'Test';
8
9
  const origWarn = console.warn;
9
10
  let mockedWarn;
10
11
 
@@ -22,11 +23,10 @@ describe('deprecated', () => {
22
23
  });
23
24
 
24
25
  describe('if prop has been listed as deprecated', () => {
26
+ const propertyName = 'prop1';
27
+
25
28
  it('calls console.warn with the correct message', () => {
26
- const component = 'Test';
27
29
  const newProperty = 'newProp';
28
- const propertyName = 'prop1';
29
-
30
30
  const expiryDate = new Date('01-01-2000');
31
31
  const expiryDateString = expiryDate.toLocaleString('en-GB', {
32
32
  year: 'numeric',
@@ -42,10 +42,6 @@ describe('deprecated', () => {
42
42
  });
43
43
 
44
44
  it('calls console.warn with correct message if newProp is not provided', () => {
45
- const component = 'Test';
46
-
47
- const propertyName = 'prop1';
48
-
49
45
  const expiryDate = new Date('01-01-2000');
50
46
  const expiryDateString = expiryDate.toLocaleString('en-GB', {
51
47
  year: 'numeric',
@@ -61,8 +57,6 @@ describe('deprecated', () => {
61
57
  });
62
58
 
63
59
  it('calls console.warn with correct message if message is provided', () => {
64
- const component = 'Test';
65
- const propertyName = 'prop1';
66
60
  const message = 'Some custom message.';
67
61
 
68
62
  deprecated(validator, { component, message })(props, propertyName);
@@ -74,15 +68,15 @@ describe('deprecated', () => {
74
68
  });
75
69
 
76
70
  describe('if prop has not been listed as deprecated', () => {
71
+ const propertyName = 'prop3';
72
+
77
73
  it('calls validator with props', () => {
78
- const propertyName = 'prop3';
79
- deprecated(validator, {})(props, propertyName);
74
+ deprecated(validator, { component })(props, propertyName);
80
75
  expect(console.warn).not.toHaveBeenCalled();
81
76
  });
82
77
 
83
78
  it('calls validator with expected args', () => {
84
- const propertyName = 'prop3';
85
- deprecated(validator, {})(props, propertyName);
79
+ deprecated(validator, { component })(props, propertyName);
86
80
  expect(validator).toHaveBeenCalledWith({ prop1: 'prop1', prop2: 'prop2' }, 'prop3');
87
81
  });
88
82
  });
@@ -1,6 +1,22 @@
1
1
  import { logActionRequired } from '../logActionRequired';
2
2
 
3
- const deprecatedMessage = ({ component, propName, message, expiryDate }) => {
3
+ type DeprecatedMessageType = {
4
+ component: string;
5
+ propName: string;
6
+ message: string;
7
+ expiryDate?: Date;
8
+ };
9
+
10
+ type ValidatorType = (props: Record<string, any>, propName: string, ...rest: any[]) => Error | null;
11
+
12
+ type DeprecatedOptionsType = {
13
+ component: string;
14
+ message?: string;
15
+ newProp?: string;
16
+ expiryDate?: Date;
17
+ };
18
+
19
+ const deprecatedMessage = ({ component, propName, message, expiryDate }: DeprecatedMessageType) => {
4
20
  const messages = [`${component} has deprecated the use of ${propName}.`];
5
21
 
6
22
  if (message) {
@@ -21,11 +37,14 @@ const deprecatedMessage = ({ component, propName, message, expiryDate }) => {
21
37
  };
22
38
 
23
39
  const deprecated =
24
- (validator, { component, message = '', newProp: newProperty = null, expiryDate = null }) =>
25
- (props, propertyName, ...rest) => {
40
+ (
41
+ validator: ValidatorType,
42
+ { component, message = '', newProp: newProperty, expiryDate }: DeprecatedOptionsType,
43
+ ) =>
44
+ (props: Record<string, any>, propertyName: string, ...rest: any[]) => {
26
45
  const newPropertyMessage = newProperty ? `Please use ${newProperty} instead.` : message;
27
46
 
28
- if (props[propertyName] != null && typeof props[propertyName] !== 'undefined') {
47
+ if (props[propertyName] !== null && props[propertyName] !== undefined) {
29
48
  logActionRequired(
30
49
  deprecatedMessage({
31
50
  component,
@@ -1,11 +1,11 @@
1
- export function logActionRequired(message) {
1
+ export function logActionRequired(message: string) {
2
2
  if (typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production') {
3
3
  // eslint-disable-next-line no-console
4
4
  console.warn(message);
5
5
  }
6
6
  }
7
7
 
8
- export function logActionRequiredIf(message, conditional) {
8
+ export function logActionRequiredIf(message: string, conditional: boolean) {
9
9
  if (conditional) {
10
10
  logActionRequired(message);
11
11
  }
@@ -1,54 +0,0 @@
1
- import { ControlType, Priority, Size, Type } from '../../common';
2
- import { logActionRequiredIf } from '../../utilities';
3
-
4
- const deprecatedTypeMap = {
5
- [Type.PRIMARY]: ControlType.ACCENT,
6
- [Type.SECONDARY]: ControlType.ACCENT,
7
- [Type.LINK]: ControlType.ACCENT,
8
- [Type.PAY]: ControlType.POSITIVE,
9
- [Type.DANGER]: ControlType.NEGATIVE,
10
- };
11
-
12
- const oldTypePriorityMap = {
13
- [Type.DANGER]: Priority.SECONDARY,
14
- [Type.LINK]: Priority.TERTIARY,
15
- [Type.SECONDARY]: Priority.SECONDARY,
16
- };
17
-
18
- const deprecatedTypeMapMessage = {
19
- [Type.DANGER]: 'Type.NEGATIVE',
20
- [Type.LINK]: 'ControlType.ACCENT with priority Priority.TERTIARY',
21
- [Type.PAY]: 'ControlType.POSITIVE',
22
- [Type.PRIMARY]: 'ControlType.ACCENT',
23
- [Type.SECONDARY]: 'ControlType.ACCENT with priority Priority.SECONDARY',
24
- };
25
-
26
- const deprecatedTypes = Object.keys(deprecatedTypeMap);
27
-
28
- export const establishNewType = (originalType) => deprecatedTypeMap[originalType] || originalType;
29
-
30
- export const establishNewPriority = (originalPriority, originalType) => {
31
- const type = establishNewType(originalType);
32
-
33
- // The old SECONDARY and LINK types now map to priorities. If they're still using one of
34
- // these old types, ignore whatever priority they've passed and use this instead.
35
- if (oldTypePriorityMap[originalType]) {
36
- return oldTypePriorityMap[originalType];
37
- }
38
- // Only ControlType.ACCENT supports tertiary styles
39
- if (originalPriority === Priority.TERTIARY && type !== ControlType.ACCENT) {
40
- return Priority.SECONDARY;
41
- }
42
- return originalPriority;
43
- };
44
-
45
- export const logDeprecationNotices = ({ size, type }) => {
46
- logActionRequiredIf(
47
- 'Button has deprecated the `Size.EXTRA_SMALL` value for the `size` prop. Please use Size.SMALL instead.',
48
- size === Size.EXTRA_SMALL,
49
- );
50
- logActionRequiredIf(
51
- `Button has deprecated the ${type} value for the \`type\` prop. Please update to ${deprecatedTypeMapMessage[type]}.`,
52
- deprecatedTypes.includes(type),
53
- );
54
- };