@transferwise/components 46.50.1 → 46.52.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 (493) hide show
  1. package/build/accordion/AccordionItem/AccordionItem.js +3 -7
  2. package/build/accordion/AccordionItem/AccordionItem.js.map +1 -1
  3. package/build/accordion/AccordionItem/AccordionItem.mjs +3 -3
  4. package/build/accordion/AccordionItem/AccordionItem.mjs.map +1 -1
  5. package/build/actionButton/ActionButton.js +2 -6
  6. package/build/actionButton/ActionButton.js.map +1 -1
  7. package/build/actionButton/ActionButton.mjs +2 -2
  8. package/build/actionButton/ActionButton.mjs.map +1 -1
  9. package/build/actionOption/ActionOption.js +2 -6
  10. package/build/actionOption/ActionOption.js.map +1 -1
  11. package/build/actionOption/ActionOption.mjs +2 -2
  12. package/build/actionOption/ActionOption.mjs.map +1 -1
  13. package/build/alert/Alert.js +3 -7
  14. package/build/alert/Alert.js.map +1 -1
  15. package/build/alert/Alert.mjs +3 -3
  16. package/build/alert/Alert.mjs.map +1 -1
  17. package/build/avatar/Avatar.js +2 -6
  18. package/build/avatar/Avatar.js.map +1 -1
  19. package/build/avatar/Avatar.mjs +2 -2
  20. package/build/avatar/Avatar.mjs.map +1 -1
  21. package/build/badge/Badge.js +2 -6
  22. package/build/badge/Badge.js.map +1 -1
  23. package/build/badge/Badge.mjs +2 -2
  24. package/build/badge/Badge.mjs.map +1 -1
  25. package/build/body/Body.js +2 -6
  26. package/build/body/Body.js.map +1 -1
  27. package/build/body/Body.mjs +2 -2
  28. package/build/body/Body.mjs.map +1 -1
  29. package/build/button/Button.js +2 -6
  30. package/build/button/Button.js.map +1 -1
  31. package/build/button/Button.mjs +2 -2
  32. package/build/button/Button.mjs.map +1 -1
  33. package/build/card/Card.js +4 -8
  34. package/build/card/Card.js.map +1 -1
  35. package/build/card/Card.mjs +4 -4
  36. package/build/card/Card.mjs.map +1 -1
  37. package/build/carousel/Carousel.js +5 -9
  38. package/build/carousel/Carousel.js.map +1 -1
  39. package/build/carousel/Carousel.mjs +5 -5
  40. package/build/carousel/Carousel.mjs.map +1 -1
  41. package/build/checkbox/Checkbox.js +3 -7
  42. package/build/checkbox/Checkbox.js.map +1 -1
  43. package/build/checkbox/Checkbox.mjs +3 -3
  44. package/build/checkbox/Checkbox.mjs.map +1 -1
  45. package/build/checkboxButton/CheckboxButton.js +2 -6
  46. package/build/checkboxButton/CheckboxButton.js.map +1 -1
  47. package/build/checkboxButton/CheckboxButton.mjs +2 -2
  48. package/build/checkboxButton/CheckboxButton.mjs.map +1 -1
  49. package/build/chevron/Chevron.js +3 -7
  50. package/build/chevron/Chevron.js.map +1 -1
  51. package/build/chevron/Chevron.mjs +3 -3
  52. package/build/chevron/Chevron.mjs.map +1 -1
  53. package/build/chips/Chip.js +2 -6
  54. package/build/chips/Chip.js.map +1 -1
  55. package/build/chips/Chip.mjs +2 -2
  56. package/build/chips/Chip.mjs.map +1 -1
  57. package/build/chips/Chips.js +3 -7
  58. package/build/chips/Chips.js.map +1 -1
  59. package/build/chips/Chips.mjs +3 -3
  60. package/build/chips/Chips.mjs.map +1 -1
  61. package/build/circularButton/CircularButton.js +3 -7
  62. package/build/circularButton/CircularButton.js.map +1 -1
  63. package/build/circularButton/CircularButton.mjs +3 -3
  64. package/build/circularButton/CircularButton.mjs.map +1 -1
  65. package/build/common/Option/Option.js +3 -7
  66. package/build/common/Option/Option.js.map +1 -1
  67. package/build/common/Option/Option.mjs +3 -3
  68. package/build/common/Option/Option.mjs.map +1 -1
  69. package/build/common/RadioButton/RadioButton.js +2 -6
  70. package/build/common/RadioButton/RadioButton.js.map +1 -1
  71. package/build/common/RadioButton/RadioButton.mjs +2 -2
  72. package/build/common/RadioButton/RadioButton.mjs.map +1 -1
  73. package/build/common/action/Action.js +2 -6
  74. package/build/common/action/Action.js.map +1 -1
  75. package/build/common/action/Action.mjs +2 -2
  76. package/build/common/action/Action.mjs.map +1 -1
  77. package/build/common/bottomSheet/BottomSheet.js +2 -6
  78. package/build/common/bottomSheet/BottomSheet.js.map +1 -1
  79. package/build/common/bottomSheet/BottomSheet.mjs +2 -2
  80. package/build/common/bottomSheet/BottomSheet.mjs.map +1 -1
  81. package/build/common/card/Card.js +2 -6
  82. package/build/common/card/Card.js.map +1 -1
  83. package/build/common/card/Card.mjs +2 -2
  84. package/build/common/card/Card.mjs.map +1 -1
  85. package/build/common/closeButton/CloseButton.js +2 -6
  86. package/build/common/closeButton/CloseButton.js.map +1 -1
  87. package/build/common/closeButton/CloseButton.mjs +2 -2
  88. package/build/common/closeButton/CloseButton.mjs.map +1 -1
  89. package/build/common/flowHeader/FlowHeader.js +3 -6
  90. package/build/common/flowHeader/FlowHeader.js.map +1 -1
  91. package/build/common/flowHeader/FlowHeader.mjs +3 -3
  92. package/build/common/flowHeader/FlowHeader.mjs.map +1 -1
  93. package/build/common/panel/Panel.js +4 -8
  94. package/build/common/panel/Panel.js.map +1 -1
  95. package/build/common/panel/Panel.mjs +4 -4
  96. package/build/common/panel/Panel.mjs.map +1 -1
  97. package/build/criticalBanner/CriticalCommsBanner.js +4 -8
  98. package/build/criticalBanner/CriticalCommsBanner.js.map +1 -1
  99. package/build/criticalBanner/CriticalCommsBanner.mjs +4 -4
  100. package/build/criticalBanner/CriticalCommsBanner.mjs.map +1 -1
  101. package/build/dateInput/DateInput.js +2 -6
  102. package/build/dateInput/DateInput.js.map +1 -1
  103. package/build/dateInput/DateInput.mjs +2 -2
  104. package/build/dateInput/DateInput.mjs.map +1 -1
  105. package/build/dateLookup/DateLookup.js +2 -6
  106. package/build/dateLookup/DateLookup.js.map +1 -1
  107. package/build/dateLookup/DateLookup.mjs +2 -2
  108. package/build/dateLookup/DateLookup.mjs.map +1 -1
  109. package/build/dateLookup/dateHeader/DateHeader.js +2 -6
  110. package/build/dateLookup/dateHeader/DateHeader.js.map +1 -1
  111. package/build/dateLookup/dateHeader/DateHeader.mjs +2 -2
  112. package/build/dateLookup/dateHeader/DateHeader.mjs.map +1 -1
  113. package/build/dateLookup/tableLink/TableLink.js +15 -21
  114. package/build/dateLookup/tableLink/TableLink.js.map +1 -1
  115. package/build/dateLookup/tableLink/TableLink.mjs +16 -18
  116. package/build/dateLookup/tableLink/TableLink.mjs.map +1 -1
  117. package/build/decision/Decision.js +3 -7
  118. package/build/decision/Decision.js.map +1 -1
  119. package/build/decision/Decision.mjs +3 -3
  120. package/build/decision/Decision.mjs.map +1 -1
  121. package/build/definitionList/DefinitionList.js +4 -8
  122. package/build/definitionList/DefinitionList.js.map +1 -1
  123. package/build/definitionList/DefinitionList.mjs +4 -4
  124. package/build/definitionList/DefinitionList.mjs.map +1 -1
  125. package/build/dimmer/Dimmer.js +6 -10
  126. package/build/dimmer/Dimmer.js.map +1 -1
  127. package/build/dimmer/Dimmer.mjs +6 -6
  128. package/build/dimmer/Dimmer.mjs.map +1 -1
  129. package/build/display/Display.js +2 -6
  130. package/build/display/Display.js.map +1 -1
  131. package/build/display/Display.mjs +2 -2
  132. package/build/display/Display.mjs.map +1 -1
  133. package/build/drawer/Drawer.js +5 -9
  134. package/build/drawer/Drawer.js.map +1 -1
  135. package/build/drawer/Drawer.mjs +5 -5
  136. package/build/drawer/Drawer.mjs.map +1 -1
  137. package/build/field/Field.js +2 -6
  138. package/build/field/Field.js.map +1 -1
  139. package/build/field/Field.mjs +2 -2
  140. package/build/field/Field.mjs.map +1 -1
  141. package/build/flowNavigation/FlowNavigation.js +4 -8
  142. package/build/flowNavigation/FlowNavigation.js.map +1 -1
  143. package/build/flowNavigation/FlowNavigation.mjs +4 -4
  144. package/build/flowNavigation/FlowNavigation.mjs.map +1 -1
  145. package/build/flowNavigation/animatedLabel/AnimatedLabel.js +3 -7
  146. package/build/flowNavigation/animatedLabel/AnimatedLabel.js.map +1 -1
  147. package/build/flowNavigation/animatedLabel/AnimatedLabel.mjs +3 -3
  148. package/build/flowNavigation/animatedLabel/AnimatedLabel.mjs.map +1 -1
  149. package/build/flowNavigation/backButton/BackButton.js +2 -6
  150. package/build/flowNavigation/backButton/BackButton.js.map +1 -1
  151. package/build/flowNavigation/backButton/BackButton.mjs +2 -2
  152. package/build/flowNavigation/backButton/BackButton.mjs.map +1 -1
  153. package/build/header/Header.js +3 -7
  154. package/build/header/Header.js.map +1 -1
  155. package/build/header/Header.mjs +3 -3
  156. package/build/header/Header.mjs.map +1 -1
  157. package/build/i18n/zh-HK.json +2 -0
  158. package/build/i18n/zh-HK.json.js +2 -0
  159. package/build/i18n/zh-HK.json.js.map +1 -1
  160. package/build/i18n/zh-HK.json.mjs +2 -0
  161. package/build/i18n/zh-HK.json.mjs.map +1 -1
  162. package/build/image/Image.js +2 -6
  163. package/build/image/Image.js.map +1 -1
  164. package/build/image/Image.mjs +2 -2
  165. package/build/image/Image.mjs.map +1 -1
  166. package/build/info/Info.js +2 -6
  167. package/build/info/Info.js.map +1 -1
  168. package/build/info/Info.mjs +2 -2
  169. package/build/info/Info.mjs.map +1 -1
  170. package/build/inlineAlert/InlineAlert.js +2 -6
  171. package/build/inlineAlert/InlineAlert.js.map +1 -1
  172. package/build/inlineAlert/InlineAlert.mjs +2 -2
  173. package/build/inlineAlert/InlineAlert.mjs.map +1 -1
  174. package/build/inputs/Input.js +2 -6
  175. package/build/inputs/Input.js.map +1 -1
  176. package/build/inputs/Input.mjs +2 -2
  177. package/build/inputs/Input.mjs.map +1 -1
  178. package/build/inputs/InputGroup.js +3 -7
  179. package/build/inputs/InputGroup.js.map +1 -1
  180. package/build/inputs/InputGroup.mjs +3 -3
  181. package/build/inputs/InputGroup.mjs.map +1 -1
  182. package/build/inputs/SelectInput.js +118 -48
  183. package/build/inputs/SelectInput.js.map +1 -1
  184. package/build/inputs/SelectInput.mjs +120 -49
  185. package/build/inputs/SelectInput.mjs.map +1 -1
  186. package/build/inputs/TextArea.js +2 -6
  187. package/build/inputs/TextArea.js.map +1 -1
  188. package/build/inputs/TextArea.mjs +2 -2
  189. package/build/inputs/TextArea.mjs.map +1 -1
  190. package/build/inputs/_BottomSheet.js +2 -6
  191. package/build/inputs/_BottomSheet.js.map +1 -1
  192. package/build/inputs/_BottomSheet.mjs +2 -2
  193. package/build/inputs/_BottomSheet.mjs.map +1 -1
  194. package/build/inputs/_ButtonInput.js +2 -6
  195. package/build/inputs/_ButtonInput.js.map +1 -1
  196. package/build/inputs/_ButtonInput.mjs +2 -2
  197. package/build/inputs/_ButtonInput.mjs.map +1 -1
  198. package/build/inputs/_Popover.js +3 -7
  199. package/build/inputs/_Popover.js.map +1 -1
  200. package/build/inputs/_Popover.mjs +3 -3
  201. package/build/inputs/_Popover.mjs.map +1 -1
  202. package/build/inputs/_common.js +2 -6
  203. package/build/inputs/_common.js.map +1 -1
  204. package/build/inputs/_common.mjs +2 -2
  205. package/build/inputs/_common.mjs.map +1 -1
  206. package/build/instructionsList/InstructionsList.js +2 -6
  207. package/build/instructionsList/InstructionsList.js.map +1 -1
  208. package/build/instructionsList/InstructionsList.mjs +2 -2
  209. package/build/instructionsList/InstructionsList.mjs.map +1 -1
  210. package/build/label/Label.js +2 -6
  211. package/build/label/Label.js.map +1 -1
  212. package/build/label/Label.mjs +2 -2
  213. package/build/label/Label.mjs.map +1 -1
  214. package/build/link/Link.js +2 -6
  215. package/build/link/Link.js.map +1 -1
  216. package/build/link/Link.mjs +2 -2
  217. package/build/link/Link.mjs.map +1 -1
  218. package/build/listItem/ListItem.js +3 -7
  219. package/build/listItem/ListItem.js.map +1 -1
  220. package/build/listItem/ListItem.mjs +3 -3
  221. package/build/listItem/ListItem.mjs.map +1 -1
  222. package/build/loader/Loader.js +2 -6
  223. package/build/loader/Loader.js.map +1 -1
  224. package/build/loader/Loader.mjs +4 -4
  225. package/build/loader/Loader.mjs.map +1 -1
  226. package/build/logo/Logo.js +2 -6
  227. package/build/logo/Logo.js.map +1 -1
  228. package/build/logo/Logo.mjs +2 -2
  229. package/build/logo/Logo.mjs.map +1 -1
  230. package/build/main.css +10 -0
  231. package/build/modal/Modal.js +7 -11
  232. package/build/modal/Modal.js.map +1 -1
  233. package/build/modal/Modal.mjs +7 -7
  234. package/build/modal/Modal.mjs.map +1 -1
  235. package/build/moneyInput/MoneyInput.js +17 -39
  236. package/build/moneyInput/MoneyInput.js.map +1 -1
  237. package/build/moneyInput/MoneyInput.mjs +17 -35
  238. package/build/moneyInput/MoneyInput.mjs.map +1 -1
  239. package/build/navigationOption/NavigationOption.js +2 -6
  240. package/build/navigationOption/NavigationOption.js.map +1 -1
  241. package/build/navigationOption/NavigationOption.mjs +2 -2
  242. package/build/navigationOption/NavigationOption.mjs.map +1 -1
  243. package/build/nudge/Nudge.js +4 -8
  244. package/build/nudge/Nudge.js.map +1 -1
  245. package/build/nudge/Nudge.mjs +4 -4
  246. package/build/nudge/Nudge.mjs.map +1 -1
  247. package/build/overlayHeader/OverlayHeader.js +3 -7
  248. package/build/overlayHeader/OverlayHeader.js.map +1 -1
  249. package/build/overlayHeader/OverlayHeader.mjs +3 -3
  250. package/build/overlayHeader/OverlayHeader.mjs.map +1 -1
  251. package/build/popover/Popover.js +2 -6
  252. package/build/popover/Popover.js.map +1 -1
  253. package/build/popover/Popover.mjs +2 -2
  254. package/build/popover/Popover.mjs.map +1 -1
  255. package/build/processIndicator/ProcessIndicator.js +2 -6
  256. package/build/processIndicator/ProcessIndicator.js.map +1 -1
  257. package/build/processIndicator/ProcessIndicator.mjs +2 -2
  258. package/build/processIndicator/ProcessIndicator.mjs.map +1 -1
  259. package/build/progress/Progress.js +2 -6
  260. package/build/progress/Progress.js.map +1 -1
  261. package/build/progress/Progress.mjs +2 -2
  262. package/build/progress/Progress.mjs.map +1 -1
  263. package/build/progressBar/ProgressBar.js +2 -6
  264. package/build/progressBar/ProgressBar.js.map +1 -1
  265. package/build/progressBar/ProgressBar.mjs +2 -2
  266. package/build/progressBar/ProgressBar.mjs.map +1 -1
  267. package/build/promoCard/PromoCard.js +3 -4
  268. package/build/promoCard/PromoCard.js.map +1 -1
  269. package/build/promoCard/PromoCard.mjs +3 -3
  270. package/build/promoCard/PromoCard.mjs.map +1 -1
  271. package/build/promoCard/PromoCardGroup.js +2 -3
  272. package/build/promoCard/PromoCardGroup.js.map +1 -1
  273. package/build/promoCard/PromoCardGroup.mjs +2 -2
  274. package/build/promoCard/PromoCardGroup.mjs.map +1 -1
  275. package/build/promoCard/PromoCardIndicator.js +2 -6
  276. package/build/promoCard/PromoCardIndicator.js.map +1 -1
  277. package/build/promoCard/PromoCardIndicator.mjs +2 -2
  278. package/build/promoCard/PromoCardIndicator.mjs.map +1 -1
  279. package/build/radio/Radio.js +5 -9
  280. package/build/radio/Radio.js.map +1 -1
  281. package/build/radio/Radio.mjs +5 -5
  282. package/build/radio/Radio.mjs.map +1 -1
  283. package/build/section/Section.js +2 -6
  284. package/build/section/Section.js.map +1 -1
  285. package/build/section/Section.mjs +2 -2
  286. package/build/section/Section.mjs.map +1 -1
  287. package/build/segmentedControl/SegmentedControl.js +5 -9
  288. package/build/segmentedControl/SegmentedControl.js.map +1 -1
  289. package/build/segmentedControl/SegmentedControl.mjs +5 -5
  290. package/build/segmentedControl/SegmentedControl.mjs.map +1 -1
  291. package/build/select/Select.js +9 -10
  292. package/build/select/Select.js.map +1 -1
  293. package/build/select/Select.mjs +9 -9
  294. package/build/select/Select.mjs.map +1 -1
  295. package/build/select/option/Option.js +2 -6
  296. package/build/select/option/Option.js.map +1 -1
  297. package/build/select/option/Option.mjs +2 -2
  298. package/build/select/option/Option.mjs.map +1 -1
  299. package/build/select/searchBox/SearchBox.js +4 -8
  300. package/build/select/searchBox/SearchBox.js.map +1 -1
  301. package/build/select/searchBox/SearchBox.mjs +6 -6
  302. package/build/select/searchBox/SearchBox.mjs.map +1 -1
  303. package/build/selectOption/SelectOption.js +4 -8
  304. package/build/selectOption/SelectOption.js.map +1 -1
  305. package/build/selectOption/SelectOption.mjs +4 -4
  306. package/build/selectOption/SelectOption.mjs.map +1 -1
  307. package/build/slidingPanel/SlidingPanel.js +2 -6
  308. package/build/slidingPanel/SlidingPanel.js.map +1 -1
  309. package/build/slidingPanel/SlidingPanel.mjs +2 -2
  310. package/build/slidingPanel/SlidingPanel.mjs.map +1 -1
  311. package/build/statusIcon/StatusIcon.js +3 -7
  312. package/build/statusIcon/StatusIcon.js.map +1 -1
  313. package/build/statusIcon/StatusIcon.mjs +3 -3
  314. package/build/statusIcon/StatusIcon.mjs.map +1 -1
  315. package/build/stepper/Stepper.js +3 -7
  316. package/build/stepper/Stepper.js.map +1 -1
  317. package/build/stepper/Stepper.mjs +3 -3
  318. package/build/stepper/Stepper.mjs.map +1 -1
  319. package/build/styles/inputs/SelectInput.css +10 -0
  320. package/build/styles/main.css +10 -0
  321. package/build/summary/Summary.js +2 -6
  322. package/build/summary/Summary.js.map +1 -1
  323. package/build/summary/Summary.mjs +2 -2
  324. package/build/summary/Summary.mjs.map +1 -1
  325. package/build/switch/Switch.js +2 -6
  326. package/build/switch/Switch.js.map +1 -1
  327. package/build/switch/Switch.mjs +2 -2
  328. package/build/switch/Switch.mjs.map +1 -1
  329. package/build/tabs/Tab.js +6 -7
  330. package/build/tabs/Tab.js.map +1 -1
  331. package/build/tabs/Tab.mjs +6 -6
  332. package/build/tabs/Tab.mjs.map +1 -1
  333. package/build/tabs/Tabs.js +2 -3
  334. package/build/tabs/Tabs.js.map +1 -1
  335. package/build/tabs/Tabs.mjs +2 -2
  336. package/build/tabs/Tabs.mjs.map +1 -1
  337. package/build/tile/Tile.js +3 -7
  338. package/build/tile/Tile.js.map +1 -1
  339. package/build/tile/Tile.mjs +3 -3
  340. package/build/tile/Tile.mjs.map +1 -1
  341. package/build/title/Title.js +3 -7
  342. package/build/title/Title.js.map +1 -1
  343. package/build/title/Title.mjs +3 -3
  344. package/build/title/Title.mjs.map +1 -1
  345. package/build/tooltip/Tooltip.js +3 -7
  346. package/build/tooltip/Tooltip.js.map +1 -1
  347. package/build/tooltip/Tooltip.mjs +3 -3
  348. package/build/tooltip/Tooltip.mjs.map +1 -1
  349. package/build/typeahead/Typeahead.js +6 -7
  350. package/build/typeahead/Typeahead.js.map +1 -1
  351. package/build/typeahead/Typeahead.mjs +6 -6
  352. package/build/typeahead/Typeahead.mjs.map +1 -1
  353. package/build/typeahead/typeaheadInput/TypeaheadInput.js +2 -6
  354. package/build/typeahead/typeaheadInput/TypeaheadInput.js.map +1 -1
  355. package/build/typeahead/typeaheadInput/TypeaheadInput.mjs +2 -2
  356. package/build/typeahead/typeaheadInput/TypeaheadInput.mjs.map +1 -1
  357. package/build/typeahead/typeaheadOption/TypeaheadOption.js +2 -6
  358. package/build/typeahead/typeaheadOption/TypeaheadOption.js.map +1 -1
  359. package/build/typeahead/typeaheadOption/TypeaheadOption.mjs +2 -2
  360. package/build/typeahead/typeaheadOption/TypeaheadOption.mjs.map +1 -1
  361. package/build/types/accordion/AccordionItem/AccordionItem.d.ts.map +1 -1
  362. package/build/types/chevron/Chevron.d.ts.map +1 -1
  363. package/build/types/circularButton/CircularButton.d.ts.map +1 -1
  364. package/build/types/dateLookup/tableLink/TableLink.d.ts.map +1 -1
  365. package/build/types/flowNavigation/FlowNavigation.d.ts.map +1 -1
  366. package/build/types/inputs/SelectInput.d.ts.map +1 -1
  367. package/build/types/link/Link.d.ts.map +1 -1
  368. package/build/types/modal/Modal.d.ts.map +1 -1
  369. package/build/types/moneyInput/MoneyInput.d.ts +0 -1
  370. package/build/types/moneyInput/MoneyInput.d.ts.map +1 -1
  371. package/build/types/select/searchBox/SearchBox.d.ts.map +1 -1
  372. package/build/types/tabs/Tab.d.ts.map +1 -1
  373. package/build/types/uploadInput/uploadButton/UploadButton.d.ts.map +1 -1
  374. package/build/upload/Upload.js +2 -6
  375. package/build/upload/Upload.js.map +1 -1
  376. package/build/upload/Upload.mjs +2 -2
  377. package/build/upload/Upload.mjs.map +1 -1
  378. package/build/uploadInput/UploadInput.js +2 -6
  379. package/build/uploadInput/UploadInput.js.map +1 -1
  380. package/build/uploadInput/UploadInput.mjs +2 -2
  381. package/build/uploadInput/UploadInput.mjs.map +1 -1
  382. package/build/uploadInput/uploadButton/UploadButton.js +5 -9
  383. package/build/uploadInput/uploadButton/UploadButton.js.map +1 -1
  384. package/build/uploadInput/uploadButton/UploadButton.mjs +5 -5
  385. package/build/uploadInput/uploadButton/UploadButton.mjs.map +1 -1
  386. package/build/uploadInput/uploadItem/UploadItem.js +3 -7
  387. package/build/uploadInput/uploadItem/UploadItem.js.map +1 -1
  388. package/build/uploadInput/uploadItem/UploadItem.mjs +3 -3
  389. package/build/uploadInput/uploadItem/UploadItem.mjs.map +1 -1
  390. package/build/uploadInput/uploadItem/UploadItemLink.js +2 -6
  391. package/build/uploadInput/uploadItem/UploadItemLink.js.map +1 -1
  392. package/build/uploadInput/uploadItem/UploadItemLink.mjs +2 -2
  393. package/build/uploadInput/uploadItem/UploadItemLink.mjs.map +1 -1
  394. package/package.json +6 -5
  395. package/src/accordion/AccordionItem/AccordionItem.tsx +5 -9
  396. package/src/actionButton/ActionButton.tsx +2 -2
  397. package/src/actionOption/ActionOption.tsx +2 -2
  398. package/src/alert/Alert.tsx +3 -3
  399. package/src/avatar/Avatar.tsx +2 -2
  400. package/src/badge/Badge.tsx +2 -2
  401. package/src/body/Body.tsx +2 -2
  402. package/src/button/Button.tsx +2 -2
  403. package/src/card/Card.tsx +4 -4
  404. package/src/carousel/Carousel.tsx +5 -5
  405. package/src/checkbox/Checkbox.tsx +3 -3
  406. package/src/checkboxButton/CheckboxButton.tsx +2 -2
  407. package/src/chevron/Chevron.tsx +3 -12
  408. package/src/chips/Chip.tsx +2 -2
  409. package/src/chips/Chips.tsx +3 -3
  410. package/src/circularButton/CircularButton.tsx +4 -7
  411. package/src/common/Option/Option.tsx +3 -3
  412. package/src/common/RadioButton/RadioButton.tsx +2 -2
  413. package/src/common/action/Action.tsx +2 -2
  414. package/src/common/bottomSheet/BottomSheet.tsx +2 -2
  415. package/src/common/card/Card.tsx +2 -2
  416. package/src/common/closeButton/CloseButton.tsx +2 -2
  417. package/src/common/flowHeader/FlowHeader.tsx +3 -3
  418. package/src/common/panel/Panel.tsx +4 -4
  419. package/src/criticalBanner/CriticalCommsBanner.tsx +4 -4
  420. package/src/dateInput/DateInput.tsx +2 -2
  421. package/src/dateLookup/DateLookup.tsx +2 -2
  422. package/src/dateLookup/dateHeader/DateHeader.tsx +2 -2
  423. package/src/dateLookup/tableLink/TableLink.tsx +3 -5
  424. package/src/decision/Decision.tsx +3 -3
  425. package/src/definitionList/DefinitionList.tsx +4 -4
  426. package/src/dimmer/Dimmer.tsx +6 -6
  427. package/src/display/Display.tsx +2 -2
  428. package/src/drawer/Drawer.tsx +5 -5
  429. package/src/field/Field.tsx +3 -3
  430. package/src/flowNavigation/FlowNavigation.tsx +6 -7
  431. package/src/flowNavigation/animatedLabel/AnimatedLabel.tsx +3 -3
  432. package/src/flowNavigation/backButton/BackButton.tsx +2 -2
  433. package/src/header/Header.tsx +3 -3
  434. package/src/i18n/zh-HK.json +2 -0
  435. package/src/image/Image.tsx +2 -2
  436. package/src/info/Info.tsx +2 -2
  437. package/src/inlineAlert/InlineAlert.tsx +2 -2
  438. package/src/inputs/Input.tsx +2 -2
  439. package/src/inputs/InputGroup.tsx +3 -3
  440. package/src/inputs/SelectInput.css +10 -0
  441. package/src/inputs/SelectInput.less +12 -0
  442. package/src/inputs/SelectInput.story.tsx +22 -2
  443. package/src/inputs/SelectInput.tsx +156 -58
  444. package/src/inputs/TextArea.tsx +2 -2
  445. package/src/inputs/_BottomSheet.tsx +2 -2
  446. package/src/inputs/_ButtonInput.tsx +2 -2
  447. package/src/inputs/_Popover.tsx +3 -3
  448. package/src/inputs/_common.ts +2 -2
  449. package/src/instructionsList/InstructionsList.tsx +3 -3
  450. package/src/label/Label.tsx +2 -2
  451. package/src/link/Link.tsx +2 -7
  452. package/src/listItem/ListItem.tsx +3 -3
  453. package/src/loader/Loader.tsx +2 -2
  454. package/src/logo/Logo.tsx +2 -2
  455. package/src/main.css +10 -0
  456. package/src/modal/Modal.tsx +9 -15
  457. package/src/moneyInput/MoneyInput.story.tsx +0 -34
  458. package/src/moneyInput/MoneyInput.tsx +6 -29
  459. package/src/navigationOption/NavigationOption.tsx +2 -2
  460. package/src/nudge/Nudge.tsx +4 -4
  461. package/src/overlayHeader/OverlayHeader.tsx +3 -3
  462. package/src/popover/Popover.tsx +2 -2
  463. package/src/processIndicator/ProcessIndicator.tsx +2 -2
  464. package/src/progress/Progress.tsx +2 -2
  465. package/src/progressBar/ProgressBar.tsx +2 -2
  466. package/src/promoCard/PromoCard.tsx +4 -4
  467. package/src/promoCard/PromoCardGroup.tsx +2 -2
  468. package/src/promoCard/PromoCardIndicator.tsx +2 -2
  469. package/src/radio/Radio.tsx +5 -5
  470. package/src/section/Section.tsx +2 -2
  471. package/src/segmentedControl/SegmentedControl.tsx +5 -5
  472. package/src/select/Select.js +9 -9
  473. package/src/select/option/Option.tsx +2 -2
  474. package/src/select/searchBox/SearchBox.tsx +4 -7
  475. package/src/selectOption/SelectOption.tsx +5 -5
  476. package/src/slidingPanel/SlidingPanel.tsx +2 -2
  477. package/src/statusIcon/StatusIcon.tsx +3 -3
  478. package/src/stepper/Stepper.tsx +3 -3
  479. package/src/summary/Summary.tsx +2 -2
  480. package/src/switch/Switch.tsx +2 -2
  481. package/src/tabs/Tab.js +8 -12
  482. package/src/tabs/Tabs.js +2 -2
  483. package/src/tile/Tile.tsx +3 -3
  484. package/src/title/Title.tsx +3 -3
  485. package/src/tooltip/Tooltip.tsx +3 -3
  486. package/src/typeahead/Typeahead.tsx +6 -6
  487. package/src/typeahead/typeaheadInput/TypeaheadInput.tsx +2 -2
  488. package/src/typeahead/typeaheadOption/TypeaheadOption.tsx +2 -2
  489. package/src/upload/Upload.tsx +2 -2
  490. package/src/uploadInput/UploadInput.tsx +2 -2
  491. package/src/uploadInput/uploadButton/UploadButton.tsx +5 -9
  492. package/src/uploadInput/uploadItem/UploadItem.tsx +3 -3
  493. package/src/uploadInput/uploadItem/UploadItemLink.tsx +2 -2
package/src/main.css CHANGED
@@ -2655,6 +2655,10 @@ html:not([dir="rtl"]) .np-flow-navigation--sm .np-flow-navigation__stepper {
2655
2655
  height: auto;
2656
2656
  }
2657
2657
  }
2658
+ .np-select-input-listbox-container--virtualized {
2659
+ /* The wrapping element shrinks this as needed */
2660
+ height: 100vh;
2661
+ }
2658
2662
  .np-select-input-listbox-container--has-group {
2659
2663
  scroll-padding-top: 32px;
2660
2664
  scroll-padding-top: var(--size-32);
@@ -2673,6 +2677,12 @@ html:not([dir="rtl"]) .np-flow-navigation--sm .np-flow-navigation__stepper {
2673
2677
  outline: var(--ring-outline-color) solid var(--ring-outline-width);
2674
2678
  outline-offset: var(--ring-outline-offset);
2675
2679
  }
2680
+ .np-select-input-listbox-container--virtualized .np-select-input-listbox {
2681
+ /* Adopted from `VList` in virtua: https://github.com/inokawa/virtua/blob/7f6ed5b37df6b480d4ff350f3960067c5b3519d2/src/react/VList.tsx#L113-L116 */
2682
+ overflow-y: auto;
2683
+ contain: strict;
2684
+ height: 100%;
2685
+ }
2676
2686
  .np-select-input-separator-item {
2677
2687
  margin: 8px;
2678
2688
  margin: var(--size-8);
@@ -1,4 +1,4 @@
1
- import classNames from 'classnames';
1
+ import { clsx } from 'clsx';
2
2
  import { ReactNode, useContext, useId, useRef } from 'react';
3
3
  import { CSSTransition } from 'react-transition-group';
4
4
 
@@ -92,7 +92,7 @@ const Modal = ({
92
92
  >
93
93
  <div
94
94
  ref={contentReference}
95
- className={classNames(
95
+ className={clsx(
96
96
  'tw-modal',
97
97
  'd-flex',
98
98
  'fade',
@@ -107,12 +107,12 @@ const Modal = ({
107
107
  role="dialog"
108
108
  aria-modal
109
109
  aria-labelledby={titleId}
110
- className={classNames('tw-modal-dialog', 'd-flex', {
110
+ className={clsx('tw-modal-dialog', 'd-flex', {
111
111
  [`tw-modal-${size}`]: size,
112
112
  })}
113
113
  >
114
114
  <div
115
- className={classNames(
115
+ className={clsx(
116
116
  'tw-modal-content',
117
117
  'd-flex',
118
118
  'flex-column',
@@ -124,7 +124,7 @@ const Modal = ({
124
124
  )}
125
125
  >
126
126
  <div
127
- className={classNames(
127
+ className={clsx(
128
128
  'tw-modal-header',
129
129
  'd-flex',
130
130
  'align-items-center',
@@ -141,7 +141,7 @@ const Modal = ({
141
141
  <CloseButton onClick={onClose} />
142
142
  </div>
143
143
  <div
144
- className={classNames('tw-modal-body', {
144
+ className={clsx('tw-modal-body', {
145
145
  'tw-modal-body--scrollable': scroll === Scroll.CONTENT,
146
146
  })}
147
147
  >
@@ -149,15 +149,9 @@ const Modal = ({
149
149
  </div>
150
150
  {footer && (
151
151
  <div
152
- className={classNames(
153
- 'tw-modal-footer',
154
- 'd-flex',
155
- 'align-items-center',
156
- 'flex-wrap',
157
- {
158
- 'modal--withoutborder': noDivider,
159
- },
160
- )}
152
+ className={clsx('tw-modal-footer', 'd-flex', 'align-items-center', 'flex-wrap', {
153
+ 'modal--withoutborder': noDivider,
154
+ })}
161
155
  >
162
156
  {footer}
163
157
  </div>
@@ -149,40 +149,6 @@ export const BalanceCurrencies: Story = {
149
149
  },
150
150
  };
151
151
 
152
- export const MaxLengthOverride: Story = {
153
- args: {
154
- ...SingleCurrency.args,
155
- maxLengthOverride: 5,
156
- },
157
- play: async ({ canvasElement }) => {
158
- await userEvent.tab();
159
- await userEvent.keyboard('12.345');
160
-
161
- await expect(within(canvasElement).getByRole('textbox')).toHaveValue('12.34');
162
- },
163
- };
164
-
165
- export const MaxLengthOverrideWithCommaDecimalSeparator: Story = {
166
- ...MaxLengthOverride,
167
- decorators: [
168
- (Story) => {
169
- const locale = 'de';
170
- return (
171
- <Provider i18n={{ locale, messages: translations[locale] }}>
172
- <Story />
173
- </Provider>
174
- );
175
- },
176
- ],
177
- play: async ({ canvasElement }) => {
178
- await userEvent.tab();
179
- await userEvent.keyboard('12,345');
180
- await userEvent.tab();
181
-
182
- await expect(within(canvasElement).getByRole('textbox')).toHaveValue('12.34');
183
- },
184
- };
185
-
186
152
  export const OpenedInput: Story = {
187
153
  ...MultipleCurrencies,
188
154
  play: async ({ canvasElement }) => {
@@ -1,6 +1,6 @@
1
1
  import { isEmpty, isNumber, isNull } from '@transferwise/neptune-validation';
2
2
  import { Flag } from '@wise/art';
3
- import classNames from 'classnames';
3
+ import { clsx } from 'clsx';
4
4
  import { Component } from 'react';
5
5
  import { injectIntl, WrappedComponentProps } from 'react-intl';
6
6
 
@@ -41,16 +41,11 @@ const formatAmountIfSet = ({
41
41
  amount,
42
42
  currency,
43
43
  locale,
44
- maxLengthOverride,
45
44
  }: {
46
45
  amount: number | null | undefined;
47
46
  currency: string;
48
47
  locale: string;
49
- maxLengthOverride?: number;
50
48
  }) => {
51
- if (maxLengthOverride) {
52
- return amount != null ? String(amount) : '';
53
- }
54
49
  return typeof amount === 'number' ? formatAmount(amount, currency, locale) : '';
55
50
  };
56
51
 
@@ -58,16 +53,11 @@ const parseNumber = ({
58
53
  amount,
59
54
  currency,
60
55
  locale,
61
- maxLengthOverride,
62
56
  }: {
63
57
  amount: string;
64
58
  currency: string;
65
59
  locale: string;
66
- maxLengthOverride?: number;
67
60
  }) => {
68
- if (maxLengthOverride && amount.length > maxLengthOverride) {
69
- return 0;
70
- }
71
61
  return parseAmount(amount, currency, locale);
72
62
  };
73
63
 
@@ -105,7 +95,6 @@ export interface MoneyInputProps extends WrappedComponentProps {
105
95
  onCustomAction?: () => void;
106
96
  classNames?: Record<string, string>;
107
97
  selectProps?: Partial<SelectInputProps<CurrencyOptionItem>>;
108
- maxLengthOverride?: number;
109
98
  }
110
99
 
111
100
  type MoneyInputPropsWithInputAttributes = MoneyInputProps & Partial<WithInputAttributesProps>;
@@ -136,7 +125,6 @@ class MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInpu
136
125
  amount: props.amount,
137
126
  currency: props.selectedCurrency.currency,
138
127
  locale: props.intl.locale,
139
- maxLengthOverride: props.maxLengthOverride,
140
128
  }),
141
129
  locale: props.intl.locale,
142
130
  };
@@ -151,7 +139,6 @@ class MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInpu
151
139
  amount: nextProps.amount,
152
140
  currency: nextProps.selectedCurrency.currency,
153
141
  locale: nextProps.intl.locale,
154
- maxLengthOverride: nextProps.maxLengthOverride,
155
142
  }),
156
143
  });
157
144
  }
@@ -179,7 +166,6 @@ class MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInpu
179
166
  amount: paste,
180
167
  currency: this.props.selectedCurrency.currency,
181
168
  locale,
182
- maxLengthOverride: this.props.maxLengthOverride,
183
169
  });
184
170
 
185
171
  if (isNumberOrNull(parsed)) {
@@ -188,7 +174,6 @@ class MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInpu
188
174
  amount: parsed,
189
175
  currency: this.props.selectedCurrency.currency,
190
176
  locale,
191
- maxLengthOverride: this.props.maxLengthOverride,
192
177
  }),
193
178
  });
194
179
  this.props.onAmountChange?.(parsed);
@@ -208,7 +193,6 @@ class MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInpu
208
193
  amount: value,
209
194
  currency: this.props.selectedCurrency.currency,
210
195
  locale: this.state.locale,
211
- maxLengthOverride: this.props.maxLengthOverride,
212
196
  });
213
197
  if (isNumberOrNull(parsed)) {
214
198
  this.props.onAmountChange?.(parsed);
@@ -256,7 +240,6 @@ class MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInpu
256
240
  amount: previousState.formattedAmount,
257
241
  currency: this.props.selectedCurrency.currency,
258
242
  locale: previousState.locale,
259
- maxLengthOverride: this.props.maxLengthOverride,
260
243
  });
261
244
  if (!isNumberOrNull(parsed)) {
262
245
  return {
@@ -268,7 +251,6 @@ class MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInpu
268
251
  amount: parsed,
269
252
  currency: this.props.selectedCurrency.currency,
270
253
  locale: previousState.locale,
271
- maxLengthOverride: this.props.maxLengthOverride,
272
254
  }),
273
255
  };
274
256
  });
@@ -304,7 +286,6 @@ class MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInpu
304
286
  size,
305
287
  addon,
306
288
  selectProps,
307
- maxLengthOverride,
308
289
  } = this.props;
309
290
  const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes?.['aria-labelledby'];
310
291
 
@@ -340,7 +321,7 @@ class MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInpu
340
321
  role="group"
341
322
  {...inputAttributes}
342
323
  aria-labelledby={ariaLabelledBy}
343
- className={classNames(
324
+ className={clsx(
344
325
  this.style('tw-money-input'),
345
326
  this.style('input-group'),
346
327
  this.style(`input-group-${size}`),
@@ -351,12 +332,10 @@ class MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInpu
351
332
  value={this.state.formattedAmount}
352
333
  inputMode="decimal"
353
334
  disabled={disabled}
354
- maxLength={maxLengthOverride}
355
335
  placeholder={formatAmountIfSet({
356
336
  amount: this.props.placeholder,
357
337
  currency: this.props.selectedCurrency.currency,
358
338
  locale: this.state.locale,
359
- maxLengthOverride: this.props.maxLengthOverride,
360
339
  })}
361
340
  autoComplete="off"
362
341
  onKeyDown={this.handleKeyDown}
@@ -367,7 +346,7 @@ class MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInpu
367
346
  />
368
347
  {addon && (
369
348
  <span
370
- className={classNames(
349
+ className={clsx(
371
350
  this.style('input-group-addon'),
372
351
  this.style(`input-${size}`),
373
352
  disabled ? this.style('disabled') : '',
@@ -378,7 +357,7 @@ class MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInpu
378
357
  )}
379
358
  {isFixedCurrency ? (
380
359
  <div
381
- className={classNames(
360
+ className={clsx(
382
361
  this.style('input-group-addon'),
383
362
  this.style(`input-${size}`),
384
363
  this.style('tw-money-input__fixed-currency'),
@@ -386,9 +365,7 @@ class MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInpu
386
365
  )}
387
366
  >
388
367
  {(size === 'lg' || size === 'md') && (
389
- <span
390
- className={classNames(this.style('money-input-currency-flag'), this.style('m-r-2'))}
391
- >
368
+ <span className={clsx(this.style('money-input-currency-flag'), this.style('m-r-2'))}>
392
369
  <Flag code={selectedCurrency.currency.toLowerCase()} intrinsicSize={24} />
393
370
  </span>
394
371
  )}
@@ -402,7 +379,7 @@ class MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInpu
402
379
  </div>
403
380
  ) : (
404
381
  <div
405
- className={classNames(
382
+ className={clsx(
406
383
  this.style('input-group-btn'),
407
384
  this.style('amount-currency-select-btn'),
408
385
  )}
@@ -1,4 +1,4 @@
1
- import classNames from 'classnames';
1
+ import { clsx } from 'clsx';
2
2
  import { forwardRef } from 'react';
3
3
 
4
4
  import Chevron from '../chevron';
@@ -19,7 +19,7 @@ const NavigationOption = forwardRef<ReferenceType, NavigationOptionProps>(
19
19
  {...rest}
20
20
  ref={reference}
21
21
  as={component}
22
- className={classNames('np-navigation-option', className)}
22
+ className={clsx('np-navigation-option', className)}
23
23
  button={<Chevron orientation={Position.RIGHT} disabled={disabled} className="d-block" />}
24
24
  disabled={disabled}
25
25
  onClick={(event) => {
@@ -1,5 +1,5 @@
1
1
  import { Illustration, Assets, IllustrationNames } from '@wise/art';
2
- import classNames from 'classnames';
2
+ import { clsx } from 'clsx';
3
3
  import { ReactNode, useEffect, useState, MouseEvent } from 'react';
4
4
 
5
5
  import Body from '../body';
@@ -135,12 +135,12 @@ const Nudge = ({
135
135
  }
136
136
 
137
137
  return (
138
- <div className={classNames('wds-nudge', className)} id={id}>
138
+ <div className={clsx('wds-nudge', className)} id={id}>
139
139
  {!!mediaName && (
140
140
  <div className="wds-nudge-media">
141
141
  <Illustration
142
142
  name={mediaName as IllustrationNames}
143
- className={classNames(`wds-nudge-media-${mediaName}`)}
143
+ className={clsx(`wds-nudge-media-${mediaName}`)}
144
144
  size="small"
145
145
  disablePadding
146
146
  alt=""
@@ -149,7 +149,7 @@ const Nudge = ({
149
149
  )}
150
150
  <div className="wds-nudge-container">
151
151
  <div className="wds-nudge-content">
152
- <Body type={Typography.BODY_LARGE} className={classNames('wds-nudge-body')}>
152
+ <Body type={Typography.BODY_LARGE} className={clsx('wds-nudge-body')}>
153
153
  {title}
154
154
  </Body>
155
155
  {link && (
@@ -1,4 +1,4 @@
1
- import classNames from 'classnames';
1
+ import { clsx } from 'clsx';
2
2
 
3
3
  import { Size } from '../common';
4
4
  import { CloseButton } from '../common/closeButton';
@@ -23,9 +23,9 @@ export default function OverlayHeader({ avatar, onClose, logo = defaultLogo }: O
23
23
  className="np-overlay-header__content p-a-3"
24
24
  leftContent={logo}
25
25
  rightContent={
26
- <div className={classNames('d-flex', 'align-items-center', 'order-2')}>
26
+ <div className={clsx('d-flex', 'align-items-center', 'order-2')}>
27
27
  {avatar}
28
- {avatar && closeButton && <span className={classNames('m-x-1')} />}
28
+ {avatar && closeButton && <span className={clsx('m-x-1')} />}
29
29
  {closeButton}
30
30
  </div>
31
31
  }
@@ -1,5 +1,5 @@
1
1
  import { useTheme } from '@wise/components-theming';
2
- import classnames from 'classnames';
2
+ import { clsx } from 'clsx';
3
3
  import { useRef, useState, cloneElement, useEffect, isValidElement } from 'react';
4
4
 
5
5
  import { Position, Typography } from '../common';
@@ -69,7 +69,7 @@ export default function Popover({
69
69
  };
70
70
 
71
71
  return (
72
- <span className={classnames('np-popover', className)}>
72
+ <span className={clsx('np-popover', className)}>
73
73
  <span ref={anchorReference} className="d-inline-block">
74
74
  {isValidElement<{ onClick?: () => void }>(children)
75
75
  ? cloneElement(children, {
@@ -1,4 +1,4 @@
1
- import classNames from 'classnames';
1
+ import { clsx } from 'clsx';
2
2
  import { Component } from 'react';
3
3
 
4
4
  import { Status, Size } from '../common';
@@ -89,7 +89,7 @@ export default class ProcessIndicator extends Component<
89
89
  render() {
90
90
  const { className, 'data-testid': dataTestId } = this.props;
91
91
  const { size, status } = this.state;
92
- const classes = classNames(`process process-${size}`, className, {
92
+ const classes = clsx(`process process-${size}`, className, {
93
93
  [`process-danger`]: status === Status.FAILED,
94
94
  [`process-stopped`]: status === Status.HIDDEN,
95
95
  [`process-success`]: status === Status.SUCCEEDED,
@@ -1,4 +1,4 @@
1
- import classnames from 'classnames';
1
+ import { clsx } from 'clsx';
2
2
 
3
3
  export type ProgressProps = {
4
4
  className?: string;
@@ -8,7 +8,7 @@ export type ProgressProps = {
8
8
 
9
9
  const Progress = ({ className, id, progress }: ProgressProps) => {
10
10
  return (
11
- <progress id={id} className={classnames('np-progress d-block', className)} {...progress}>
11
+ <progress id={id} className={clsx('np-progress d-block', className)} {...progress}>
12
12
  {Math.floor((progress.value / progress.max) * 100)}%
13
13
  </progress>
14
14
  );
@@ -1,5 +1,5 @@
1
1
  import { useTheme } from '@wise/components-theming';
2
- import classNames from 'classnames';
2
+ import { clsx } from 'clsx';
3
3
 
4
4
  import Body from '../body';
5
5
  import { Typography } from '../common';
@@ -25,7 +25,7 @@ const ProgressBar = ({
25
25
  }: ProgressBarProps) => {
26
26
  const { isModern } = useTheme();
27
27
  return (
28
- <div className={classNames('np-progress-bar', className)}>
28
+ <div className={clsx('np-progress-bar', className)}>
29
29
  <label className="np-progress-bar__title m-b-1" htmlFor={id}>
30
30
  <Title
31
31
  type={Typography.TITLE_BODY}
@@ -1,5 +1,5 @@
1
1
  import { Check } from '@transferwise/icons';
2
- import classNames from 'classnames';
2
+ import { clsx } from 'clsx';
3
3
  import React, { forwardRef, FunctionComponent, useEffect, useId, useState } from 'react';
4
4
 
5
5
  import Body from '../body';
@@ -237,7 +237,7 @@ const PromoCard: FunctionComponent<PromoCardProps> = forwardRef(
237
237
  // is truthy.
238
238
  const { state, onChange, isDisabled: contextIsDisabled } = usePromoCardContext();
239
239
  const [checked, setChecked] = useState(
240
- type === 'checkbox' ? defaultChecked ?? isChecked ?? false : false,
240
+ type === 'checkbox' ? (defaultChecked ?? isChecked ?? false) : false,
241
241
  );
242
242
 
243
243
  const handleClick = () => {
@@ -276,7 +276,7 @@ const PromoCard: FunctionComponent<PromoCardProps> = forwardRef(
276
276
 
277
277
  // Define all class names string based on the values of the `href`, `type`,
278
278
  // `checked`, and `className` props.
279
- const commonClasses = classNames(
279
+ const commonClasses = clsx(
280
280
  {
281
281
  'np-Card--promoCard': true,
282
282
  'np-Card--checked': !href && type,
@@ -380,7 +380,7 @@ const PromoCard: FunctionComponent<PromoCardProps> = forwardRef(
380
380
  <Body className="np-Card-description">{description}</Body>
381
381
 
382
382
  {imageSource && (
383
- <div className={classNames('np-Card-image', { imageClass })}>
383
+ <div className={clsx('np-Card-image', { imageClass })}>
384
384
  <Image src={imageSource} alt={imageAlt || ''} loading="lazy" />
385
385
  </div>
386
386
  )}
@@ -1,4 +1,4 @@
1
- import classNames from 'classnames';
1
+ import { clsx } from 'clsx';
2
2
  import React, { FunctionComponent, ReactNode, useState, useEffect, useMemo } from 'react';
3
3
 
4
4
  import { PromoCardProps } from './PromoCard';
@@ -89,7 +89,7 @@ const PromoCardGroup: FunctionComponent<PromoCardGroupProps> = ({
89
89
  return { state, isDisabled, onChange: handleOnChange };
90
90
  }, [state, isDisabled, onChange]);
91
91
 
92
- const commonClasses = classNames(
92
+ const commonClasses = clsx(
93
93
  {
94
94
  'np-CardGroup': true,
95
95
  'is-disabled': isDisabled,
@@ -1,5 +1,5 @@
1
1
  import { ArrowRight, Check, Download } from '@transferwise/icons';
2
- import classNames from 'classnames';
2
+ import { clsx } from 'clsx';
3
3
  import { ReactElement, ReactNode } from 'react';
4
4
 
5
5
  import Avatar, { AvatarType } from '../avatar';
@@ -62,7 +62,7 @@ const PromoCardIndicator: React.FC<PromoCardIndicatorProps> = ({
62
62
  }[icon];
63
63
 
64
64
  return (
65
- <div className={classNames('np-Card-indicator', className)} data-testid={testid} {...rest}>
65
+ <div className={clsx('np-Card-indicator', className)} data-testid={testid} {...rest}>
66
66
  {label && (
67
67
  <Body as="span" type={Typography.BODY_LARGE_BOLD} className="np-Card-indicatorText">
68
68
  {label}
@@ -1,5 +1,5 @@
1
1
  import { useTheme } from '@wise/components-theming';
2
- import classNames from 'classnames';
2
+ import { clsx } from 'clsx';
3
3
 
4
4
  import Body from '../body/Body';
5
5
  import { Typography } from '../common';
@@ -25,7 +25,7 @@ export default function Radio<T extends string | number = ''>({
25
25
  const { isModern } = useTheme();
26
26
  return (
27
27
  <div
28
- className={classNames(
28
+ className={clsx(
29
29
  'radio np-radio',
30
30
  {
31
31
  'radio-lg': secondary,
@@ -34,8 +34,8 @@ export default function Radio<T extends string | number = ''>({
34
34
  className,
35
35
  )}
36
36
  >
37
- <label className={classNames({ disabled })} htmlFor={id}>
38
- <span className={classNames(isModern ? 'm-r-2' : 'p-r-2', 'np-radio-button')}>
37
+ <label className={clsx({ disabled })} htmlFor={id}>
38
+ <span className={clsx(isModern ? 'm-r-2' : 'p-r-2', 'np-radio-button')}>
39
39
  <RadioButton id={id} disabled={disabled} {...otherProps} />
40
40
  </span>
41
41
  <Body
@@ -45,7 +45,7 @@ export default function Radio<T extends string | number = ''>({
45
45
  >
46
46
  {label}
47
47
  {secondary && (
48
- <Body as="span" className={classNames({ secondary: !isModern })}>
48
+ <Body as="span" className={clsx({ secondary: !isModern })}>
49
49
  {secondary}
50
50
  </Body>
51
51
  )}
@@ -1,4 +1,4 @@
1
- import classNames from 'classnames';
1
+ import { clsx } from 'clsx';
2
2
  import { PropsWithChildren } from 'react';
3
3
 
4
4
  import { CommonProps } from '../common';
@@ -17,7 +17,7 @@ type SectionProps = PropsWithChildren<
17
17
  const Section = ({ children, className, withHorizontalPadding = false }: SectionProps) => {
18
18
  return (
19
19
  <div
20
- className={classNames('np-section', className, {
20
+ className={clsx('np-section', className, {
21
21
  'np-section--with-horizontal-padding': withHorizontalPadding,
22
22
  })}
23
23
  >
@@ -1,4 +1,4 @@
1
- import classNames from 'classnames';
1
+ import { clsx } from 'clsx';
2
2
  import { createRef, useEffect, useRef, useState } from 'react';
3
3
 
4
4
  import Body from '../body';
@@ -87,12 +87,12 @@ const SegmentedControl = ({
87
87
  <div
88
88
  ref={segmentsRef}
89
89
  data-testid="segmented-control"
90
- className={classNames('segmented-control', {
90
+ className={clsx('segmented-control', {
91
91
  'segmented-control--input': mode === 'input',
92
92
  })}
93
93
  >
94
94
  <div
95
- className={classNames('segmented-control__segments', {
95
+ className={clsx('segmented-control__segments', {
96
96
  'segmented-control__segments--no-animate': !animate,
97
97
  })}
98
98
  role={mode !== 'input' ? 'tablist' : undefined}
@@ -107,7 +107,7 @@ const SegmentedControl = ({
107
107
  ref={segment.ref as React.MutableRefObject<HTMLLabelElement | null>}
108
108
  key={segment.id}
109
109
  htmlFor={segment.id}
110
- className={classNames('segmented-control__segment', {
110
+ className={clsx('segmented-control__segment', {
111
111
  'segmented-control__selected-segment': value === segment.value,
112
112
  })}
113
113
  >
@@ -139,7 +139,7 @@ const SegmentedControl = ({
139
139
  id={segment.id}
140
140
  aria-controls={segment.controls}
141
141
  aria-selected={value === segment.value}
142
- className={classNames('segmented-control__segment', 'segmented-control__button', {
142
+ className={clsx('segmented-control__segment', 'segmented-control__button', {
143
143
  'segmented-control__selected-segment': value === segment.value,
144
144
  })}
145
145
  onClick={onSelect}
@@ -1,5 +1,5 @@
1
1
  import { useTheme } from '@wise/components-theming';
2
- import classNames from 'classnames';
2
+ import { clsx } from 'clsx';
3
3
  import PropTypes from 'prop-types';
4
4
  import { useState, useEffect, useRef, useMemo, useId } from 'react';
5
5
  import { useIntl } from 'react-intl';
@@ -321,7 +321,7 @@ export default function Select({
321
321
  }
322
322
 
323
323
  function renderOptionsList({ className } = {}) {
324
- const dropdownClass = classNames(
324
+ const dropdownClass = clsx(
325
325
  s('np-dropdown-menu'),
326
326
  {
327
327
  [s('np-dropdown-menu-desktop')]: !isMobile,
@@ -369,7 +369,7 @@ export default function Select({
369
369
  return (
370
370
  /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */
371
371
  <li
372
- className={classNames(s('clickable'), s('border-bottom'), s('show-more'))}
372
+ className={clsx(s('clickable'), s('border-bottom'), s('show-more'))}
373
373
  onClick={handleOnClick}
374
374
  onKeyPress={handleOnClick}
375
375
  >
@@ -384,7 +384,7 @@ export default function Select({
384
384
  return (
385
385
  /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */
386
386
  <li
387
- className={classNames(s('clickable'), s('border-bottom'))}
387
+ className={clsx(s('clickable'), s('border-bottom'))}
388
388
  onClick={createSelectHandlerForOption(placeholderOption)}
389
389
  onKeyPress={createSelectHandlerForOption(placeholderOption)}
390
390
  >
@@ -403,7 +403,7 @@ export default function Select({
403
403
  function HeaderOption({ children }) {
404
404
  return (
405
405
  <li // eslint-disable-line jsx-a11y/no-noninteractive-element-interactions
406
- className={classNames(s('np-dropdown-header'), s('np-text-title-group'))}
406
+ className={clsx(s('np-dropdown-header'), s('np-text-title-group'))}
407
407
  onClick={stopPropagation}
408
408
  onKeyPress={stopPropagation}
409
409
  >
@@ -432,7 +432,7 @@ export default function Select({
432
432
  !selectOption.disabled &&
433
433
  keyboardFocusedOptionIndex === getIndexWithoutHeadersForIndexWithHeaders(index);
434
434
 
435
- const className = classNames(
435
+ const className = clsx(
436
436
  s('np-dropdown-item'),
437
437
  selectOption.disabled ? [s('disabled')] : s('clickable'),
438
438
  {
@@ -489,7 +489,7 @@ export default function Select({
489
489
  return (
490
490
  <div // eslint-disable-line jsx-a11y/no-static-element-interactions
491
491
  ref={selectReference}
492
- className={classNames(s('np-select'), block ? s('btn-block') : null, s('btn-group'))}
492
+ className={clsx(s('np-select'), block ? s('btn-block') : null, s('btn-group'))}
493
493
  onKeyDown={handleKeyDown}
494
494
  onTouchMove={handleTouchStart}
495
495
  onFocus={handleOnFocus}
@@ -502,7 +502,7 @@ export default function Select({
502
502
  block={block}
503
503
  size={size}
504
504
  htmlType="button"
505
- className={classNames(
505
+ className={clsx(
506
506
  s('np-dropdown-toggle'),
507
507
  s('np-text-body-large'),
508
508
  inverse ? s('np-dropdown-toggle-navy') : null,
@@ -523,7 +523,7 @@ export default function Select({
523
523
  )}
524
524
  <Chevron
525
525
  // disabled={disabled}
526
- className={classNames(
526
+ className={clsx(
527
527
  s('tw-icon'),
528
528
  s('tw-chevron-up-icon'),
529
529
  s('tw-chevron'),