@transferwise/components 46.45.0 → 46.46.1

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 (1035) hide show
  1. package/build/accordion/Accordion.js +40 -0
  2. package/build/accordion/Accordion.js.map +1 -0
  3. package/build/accordion/Accordion.mjs +38 -0
  4. package/build/accordion/Accordion.mjs.map +1 -0
  5. package/build/accordion/AccordionItem/AccordionItem.js +70 -0
  6. package/build/accordion/AccordionItem/AccordionItem.js.map +1 -0
  7. package/build/accordion/AccordionItem/AccordionItem.mjs +64 -0
  8. package/build/accordion/AccordionItem/AccordionItem.mjs.map +1 -0
  9. package/build/actionButton/ActionButton.js +31 -0
  10. package/build/actionButton/ActionButton.js.map +1 -0
  11. package/build/actionButton/ActionButton.mjs +25 -0
  12. package/build/actionButton/ActionButton.mjs.map +1 -0
  13. package/build/actionOption/ActionOption.js +61 -0
  14. package/build/actionOption/ActionOption.js.map +1 -0
  15. package/build/actionOption/ActionOption.mjs +55 -0
  16. package/build/actionOption/ActionOption.mjs.map +1 -0
  17. package/build/alert/Alert.js +159 -0
  18. package/build/alert/Alert.js.map +1 -0
  19. package/build/alert/Alert.mjs +151 -0
  20. package/build/alert/Alert.mjs.map +1 -0
  21. package/build/alert/inlineMarkdown/InlineMarkdown.js +18 -0
  22. package/build/alert/inlineMarkdown/InlineMarkdown.js.map +1 -0
  23. package/build/alert/inlineMarkdown/InlineMarkdown.mjs +16 -0
  24. package/build/alert/inlineMarkdown/InlineMarkdown.mjs.map +1 -0
  25. package/build/avatar/Avatar.js +54 -0
  26. package/build/avatar/Avatar.js.map +1 -0
  27. package/build/avatar/Avatar.mjs +48 -0
  28. package/build/avatar/Avatar.mjs.map +1 -0
  29. package/build/avatar/avatarTypes.js +11 -0
  30. package/build/avatar/avatarTypes.js.map +1 -0
  31. package/build/avatar/avatarTypes.mjs +11 -0
  32. package/build/avatar/avatarTypes.mjs.map +1 -0
  33. package/build/avatar/colors/colors.js +31 -0
  34. package/build/avatar/colors/colors.js.map +1 -0
  35. package/build/avatar/colors/colors.mjs +29 -0
  36. package/build/avatar/colors/colors.mjs.map +1 -0
  37. package/build/avatarWrapper/AvatarWrapper.js +120 -0
  38. package/build/avatarWrapper/AvatarWrapper.js.map +1 -0
  39. package/build/avatarWrapper/AvatarWrapper.mjs +118 -0
  40. package/build/avatarWrapper/AvatarWrapper.mjs.map +1 -0
  41. package/build/avatarWrapper/index.js +8 -0
  42. package/build/avatarWrapper/index.js.map +1 -0
  43. package/build/avatarWrapper/index.mjs +6 -0
  44. package/build/avatarWrapper/index.mjs.map +1 -0
  45. package/build/badge/Badge.js +36 -0
  46. package/build/badge/Badge.js.map +1 -0
  47. package/build/badge/Badge.mjs +30 -0
  48. package/build/badge/Badge.mjs.map +1 -0
  49. package/build/body/Body.js +31 -0
  50. package/build/body/Body.js.map +1 -0
  51. package/build/body/Body.mjs +25 -0
  52. package/build/body/Body.mjs.map +1 -0
  53. package/build/button/Button.js +86 -0
  54. package/build/button/Button.js.map +1 -0
  55. package/build/button/Button.messages.js +12 -0
  56. package/build/button/Button.messages.js.map +1 -0
  57. package/build/button/Button.messages.mjs +10 -0
  58. package/build/button/Button.messages.mjs.map +1 -0
  59. package/build/button/Button.mjs +80 -0
  60. package/build/button/Button.mjs.map +1 -0
  61. package/build/button/classMap.js +18 -0
  62. package/build/button/classMap.js.map +1 -0
  63. package/build/button/classMap.mjs +15 -0
  64. package/build/button/classMap.mjs.map +1 -0
  65. package/build/button/legacyUtils/legacyUtils.js +54 -0
  66. package/build/button/legacyUtils/legacyUtils.js.map +1 -0
  67. package/build/button/legacyUtils/legacyUtils.mjs +50 -0
  68. package/build/button/legacyUtils/legacyUtils.mjs.map +1 -0
  69. package/build/card/Card.js +65 -0
  70. package/build/card/Card.js.map +1 -0
  71. package/build/card/Card.mjs +59 -0
  72. package/build/card/Card.mjs.map +1 -0
  73. package/build/carousel/Carousel.js +283 -0
  74. package/build/carousel/Carousel.js.map +1 -0
  75. package/build/carousel/Carousel.mjs +277 -0
  76. package/build/carousel/Carousel.mjs.map +1 -0
  77. package/build/checkbox/Checkbox.js +64 -0
  78. package/build/checkbox/Checkbox.js.map +1 -0
  79. package/build/checkbox/Checkbox.mjs +58 -0
  80. package/build/checkbox/Checkbox.mjs.map +1 -0
  81. package/build/checkboxButton/CheckboxButton.js +40 -0
  82. package/build/checkboxButton/CheckboxButton.js.map +1 -0
  83. package/build/checkboxButton/CheckboxButton.mjs +34 -0
  84. package/build/checkboxButton/CheckboxButton.mjs.map +1 -0
  85. package/build/checkboxOption/CheckboxOption.js +27 -0
  86. package/build/checkboxOption/CheckboxOption.js.map +1 -0
  87. package/build/checkboxOption/CheckboxOption.mjs +25 -0
  88. package/build/checkboxOption/CheckboxOption.mjs.map +1 -0
  89. package/build/chevron/Chevron.js +60 -0
  90. package/build/chevron/Chevron.js.map +1 -0
  91. package/build/chevron/Chevron.mjs +54 -0
  92. package/build/chevron/Chevron.mjs.map +1 -0
  93. package/build/chips/Chip.js +71 -0
  94. package/build/chips/Chip.js.map +1 -0
  95. package/build/chips/Chip.mjs +65 -0
  96. package/build/chips/Chip.mjs.map +1 -0
  97. package/build/chips/Chips.js +62 -0
  98. package/build/chips/Chips.js.map +1 -0
  99. package/build/chips/Chips.messages.js +12 -0
  100. package/build/chips/Chips.messages.js.map +1 -0
  101. package/build/chips/Chips.messages.mjs +10 -0
  102. package/build/chips/Chips.messages.mjs.map +1 -0
  103. package/build/chips/Chips.mjs +56 -0
  104. package/build/chips/Chips.mjs.map +1 -0
  105. package/build/circularButton/CircularButton.js +46 -0
  106. package/build/circularButton/CircularButton.js.map +1 -0
  107. package/build/circularButton/CircularButton.mjs +40 -0
  108. package/build/circularButton/CircularButton.mjs.map +1 -0
  109. package/build/common/DOMOperations/DOMOperations.js +24 -0
  110. package/build/common/DOMOperations/DOMOperations.js.map +1 -0
  111. package/build/common/DOMOperations/DOMOperations.mjs +21 -0
  112. package/build/common/DOMOperations/DOMOperations.mjs.map +1 -0
  113. package/build/common/Option/Option.js +71 -0
  114. package/build/common/Option/Option.js.map +1 -0
  115. package/build/common/Option/Option.mjs +65 -0
  116. package/build/common/Option/Option.mjs.map +1 -0
  117. package/build/common/RadioButton/RadioButton.js +46 -0
  118. package/build/common/RadioButton/RadioButton.js.map +1 -0
  119. package/build/common/RadioButton/RadioButton.mjs +40 -0
  120. package/build/common/RadioButton/RadioButton.mjs.map +1 -0
  121. package/build/common/action/Action.js +37 -0
  122. package/build/common/action/Action.js.map +1 -0
  123. package/build/common/action/Action.mjs +31 -0
  124. package/build/common/action/Action.mjs.map +1 -0
  125. package/build/common/bottomSheet/BottomSheet.js +194 -0
  126. package/build/common/bottomSheet/BottomSheet.js.map +1 -0
  127. package/build/common/bottomSheet/BottomSheet.mjs +188 -0
  128. package/build/common/bottomSheet/BottomSheet.mjs.map +1 -0
  129. package/build/common/card/Card.js +49 -0
  130. package/build/common/card/Card.js.map +1 -0
  131. package/build/common/card/Card.mjs +43 -0
  132. package/build/common/card/Card.mjs.map +1 -0
  133. package/build/common/closeButton/CloseButton.js +46 -0
  134. package/build/common/closeButton/CloseButton.js.map +1 -0
  135. package/build/common/closeButton/CloseButton.messages.js +12 -0
  136. package/build/common/closeButton/CloseButton.messages.js.map +1 -0
  137. package/build/common/closeButton/CloseButton.messages.mjs +10 -0
  138. package/build/common/closeButton/CloseButton.messages.mjs.map +1 -0
  139. package/build/common/closeButton/CloseButton.mjs +40 -0
  140. package/build/common/closeButton/CloseButton.mjs.map +1 -0
  141. package/build/common/dateUtils/getDayNames/getDayNames.js +18 -0
  142. package/build/common/dateUtils/getDayNames/getDayNames.js.map +1 -0
  143. package/build/common/dateUtils/getDayNames/getDayNames.mjs +16 -0
  144. package/build/common/dateUtils/getDayNames/getDayNames.mjs.map +1 -0
  145. package/build/common/dateUtils/getFormatForLocale/getFormatForLocale.js +8 -0
  146. package/build/common/dateUtils/getFormatForLocale/getFormatForLocale.js.map +1 -0
  147. package/build/common/dateUtils/getFormatForLocale/getFormatForLocale.mjs +5 -0
  148. package/build/common/dateUtils/getFormatForLocale/getFormatForLocale.mjs.map +1 -0
  149. package/build/common/dateUtils/getMonthNames/getMonthNames.js +19 -0
  150. package/build/common/dateUtils/getMonthNames/getMonthNames.js.map +1 -0
  151. package/build/common/dateUtils/getMonthNames/getMonthNames.mjs +17 -0
  152. package/build/common/dateUtils/getMonthNames/getMonthNames.mjs.map +1 -0
  153. package/build/common/dateUtils/isDateValid/isDateValid.js +17 -0
  154. package/build/common/dateUtils/isDateValid/isDateValid.js.map +1 -0
  155. package/build/common/dateUtils/isDateValid/isDateValid.mjs +14 -0
  156. package/build/common/dateUtils/isDateValid/isDateValid.mjs.map +1 -0
  157. package/build/common/dateUtils/isMonthAndYearFormat/isMonthAndYearFormat.js +8 -0
  158. package/build/common/dateUtils/isMonthAndYearFormat/isMonthAndYearFormat.js.map +1 -0
  159. package/build/common/dateUtils/isMonthAndYearFormat/isMonthAndYearFormat.mjs +6 -0
  160. package/build/common/dateUtils/isMonthAndYearFormat/isMonthAndYearFormat.mjs.map +1 -0
  161. package/build/common/dateUtils/isWithinRange/isWithinRange.js +8 -0
  162. package/build/common/dateUtils/isWithinRange/isWithinRange.js.map +1 -0
  163. package/build/common/dateUtils/isWithinRange/isWithinRange.mjs +6 -0
  164. package/build/common/dateUtils/isWithinRange/isWithinRange.mjs.map +1 -0
  165. package/build/common/dateUtils/moveToWithinRange/moveToWithinRange.js +15 -0
  166. package/build/common/dateUtils/moveToWithinRange/moveToWithinRange.js.map +1 -0
  167. package/build/common/dateUtils/moveToWithinRange/moveToWithinRange.mjs +13 -0
  168. package/build/common/dateUtils/moveToWithinRange/moveToWithinRange.mjs.map +1 -0
  169. package/build/common/deviceDetection/deviceDetection.js +11 -0
  170. package/build/common/deviceDetection/deviceDetection.js.map +1 -0
  171. package/build/common/deviceDetection/deviceDetection.mjs +9 -0
  172. package/build/common/deviceDetection/deviceDetection.mjs.map +1 -0
  173. package/build/common/direction.js +9 -0
  174. package/build/common/direction.js.map +1 -0
  175. package/build/common/direction.mjs +9 -0
  176. package/build/common/direction.mjs.map +1 -0
  177. package/build/common/domHelpers/documentIosClick.js +39 -0
  178. package/build/common/domHelpers/documentIosClick.js.map +1 -0
  179. package/build/common/domHelpers/documentIosClick.mjs +33 -0
  180. package/build/common/domHelpers/documentIosClick.mjs.map +1 -0
  181. package/build/common/fileType.js +10 -0
  182. package/build/common/fileType.js.map +1 -0
  183. package/build/common/fileType.mjs +10 -0
  184. package/build/common/fileType.mjs.map +1 -0
  185. package/build/common/flowHeader/FlowHeader.js +53 -0
  186. package/build/common/flowHeader/FlowHeader.js.map +1 -0
  187. package/build/common/flowHeader/FlowHeader.mjs +28 -0
  188. package/build/common/flowHeader/FlowHeader.mjs.map +1 -0
  189. package/build/common/focusBoundary/FocusBoundary.js +28 -0
  190. package/build/common/focusBoundary/FocusBoundary.js.map +1 -0
  191. package/build/common/focusBoundary/FocusBoundary.mjs +26 -0
  192. package/build/common/focusBoundary/FocusBoundary.mjs.map +1 -0
  193. package/build/common/historyNavigator/historyNavigator.js +39 -0
  194. package/build/common/historyNavigator/historyNavigator.js.map +1 -0
  195. package/build/common/historyNavigator/historyNavigator.mjs +37 -0
  196. package/build/common/historyNavigator/historyNavigator.mjs.map +1 -0
  197. package/build/common/hooks/useConditionalListener/useConditionalListener.js +25 -0
  198. package/build/common/hooks/useConditionalListener/useConditionalListener.js.map +1 -0
  199. package/build/common/hooks/useConditionalListener/useConditionalListener.mjs +23 -0
  200. package/build/common/hooks/useConditionalListener/useConditionalListener.mjs.map +1 -0
  201. package/build/common/hooks/useDirection/useDirection.js +15 -0
  202. package/build/common/hooks/useDirection/useDirection.js.map +1 -0
  203. package/build/common/hooks/useDirection/useDirection.mjs +13 -0
  204. package/build/common/hooks/useDirection/useDirection.mjs.map +1 -0
  205. package/build/common/hooks/useEffectEvent.js +22 -0
  206. package/build/common/hooks/useEffectEvent.js.map +1 -0
  207. package/build/common/hooks/useEffectEvent.mjs +20 -0
  208. package/build/common/hooks/useEffectEvent.mjs.map +1 -0
  209. package/build/common/hooks/useHasIntersected/useHasIntersected.js +64 -0
  210. package/build/common/hooks/useHasIntersected/useHasIntersected.js.map +1 -0
  211. package/build/common/hooks/useHasIntersected/useHasIntersected.mjs +62 -0
  212. package/build/common/hooks/useHasIntersected/useHasIntersected.mjs.map +1 -0
  213. package/build/common/hooks/useLayout/useLayout.js +26 -0
  214. package/build/common/hooks/useLayout/useLayout.js.map +1 -0
  215. package/build/common/hooks/useLayout/useLayout.mjs +24 -0
  216. package/build/common/hooks/useLayout/useLayout.mjs.map +1 -0
  217. package/build/common/hooks/useMedia.js +16 -0
  218. package/build/common/hooks/useMedia.js.map +1 -0
  219. package/build/common/hooks/useMedia.mjs +14 -0
  220. package/build/common/hooks/useMedia.mjs.map +1 -0
  221. package/build/common/hooks/useResizeObserver.js +25 -0
  222. package/build/common/hooks/useResizeObserver.js.map +1 -0
  223. package/build/common/hooks/useResizeObserver.mjs +23 -0
  224. package/build/common/hooks/useResizeObserver.mjs.map +1 -0
  225. package/build/common/hooks/useScreenSize.js +10 -0
  226. package/build/common/hooks/useScreenSize.js.map +1 -0
  227. package/build/common/hooks/useScreenSize.mjs +8 -0
  228. package/build/common/hooks/useScreenSize.mjs.map +1 -0
  229. package/build/common/hooks/useVirtualKeyboard.js +26 -0
  230. package/build/common/hooks/useVirtualKeyboard.js.map +1 -0
  231. package/build/common/hooks/useVirtualKeyboard.mjs +24 -0
  232. package/build/common/hooks/useVirtualKeyboard.mjs.map +1 -0
  233. package/build/common/locale/index.js +85 -0
  234. package/build/common/locale/index.js.map +1 -0
  235. package/build/common/locale/index.mjs +76 -0
  236. package/build/common/locale/index.mjs.map +1 -0
  237. package/build/common/panel/Panel.js +133 -0
  238. package/build/common/panel/Panel.js.map +1 -0
  239. package/build/common/panel/Panel.mjs +127 -0
  240. package/build/common/panel/Panel.mjs.map +1 -0
  241. package/build/common/polymorphicWithOverrides/PolymorphicWithOverrides.js +21 -0
  242. package/build/common/polymorphicWithOverrides/PolymorphicWithOverrides.js.map +1 -0
  243. package/build/common/polymorphicWithOverrides/PolymorphicWithOverrides.mjs +19 -0
  244. package/build/common/polymorphicWithOverrides/PolymorphicWithOverrides.mjs.map +1 -0
  245. package/build/common/preventScroll/PreventScroll.js +11 -0
  246. package/build/common/preventScroll/PreventScroll.js.map +1 -0
  247. package/build/common/preventScroll/PreventScroll.mjs +9 -0
  248. package/build/common/preventScroll/PreventScroll.mjs.map +1 -0
  249. package/build/common/propsValues/breakpoint.js +12 -0
  250. package/build/common/propsValues/breakpoint.js.map +1 -0
  251. package/build/common/propsValues/breakpoint.mjs +12 -0
  252. package/build/common/propsValues/breakpoint.mjs.map +1 -0
  253. package/build/common/propsValues/control.js +15 -0
  254. package/build/common/propsValues/control.js.map +1 -0
  255. package/build/common/propsValues/control.mjs +15 -0
  256. package/build/common/propsValues/control.mjs.map +1 -0
  257. package/build/common/propsValues/dateMode.js +8 -0
  258. package/build/common/propsValues/dateMode.js.map +1 -0
  259. package/build/common/propsValues/dateMode.mjs +8 -0
  260. package/build/common/propsValues/dateMode.mjs.map +1 -0
  261. package/build/common/propsValues/layouts.js +13 -0
  262. package/build/common/propsValues/layouts.js.map +1 -0
  263. package/build/common/propsValues/layouts.mjs +13 -0
  264. package/build/common/propsValues/layouts.mjs.map +1 -0
  265. package/build/common/propsValues/markdownNodeType.js +22 -0
  266. package/build/common/propsValues/markdownNodeType.js.map +1 -0
  267. package/build/common/propsValues/markdownNodeType.mjs +22 -0
  268. package/build/common/propsValues/markdownNodeType.mjs.map +1 -0
  269. package/build/common/propsValues/monthFormat.js +8 -0
  270. package/build/common/propsValues/monthFormat.js.map +1 -0
  271. package/build/common/propsValues/monthFormat.mjs +8 -0
  272. package/build/common/propsValues/monthFormat.mjs.map +1 -0
  273. package/build/common/propsValues/position.js +15 -0
  274. package/build/common/propsValues/position.js.map +1 -0
  275. package/build/common/propsValues/position.mjs +15 -0
  276. package/build/common/propsValues/position.mjs.map +1 -0
  277. package/build/common/propsValues/profileType.js +8 -0
  278. package/build/common/propsValues/profileType.js.map +1 -0
  279. package/build/common/propsValues/profileType.mjs +8 -0
  280. package/build/common/propsValues/profileType.mjs.map +1 -0
  281. package/build/common/propsValues/scroll.js +8 -0
  282. package/build/common/propsValues/scroll.js.map +1 -0
  283. package/build/common/propsValues/scroll.mjs +8 -0
  284. package/build/common/propsValues/scroll.mjs.map +1 -0
  285. package/build/common/propsValues/sentiment.js +23 -0
  286. package/build/common/propsValues/sentiment.js.map +1 -0
  287. package/build/common/propsValues/sentiment.mjs +23 -0
  288. package/build/common/propsValues/sentiment.mjs.map +1 -0
  289. package/build/common/propsValues/size.js +11 -0
  290. package/build/common/propsValues/size.js.map +1 -0
  291. package/build/common/propsValues/size.mjs +11 -0
  292. package/build/common/propsValues/size.mjs.map +1 -0
  293. package/build/common/propsValues/status.js +13 -0
  294. package/build/common/propsValues/status.js.map +1 -0
  295. package/build/common/propsValues/status.mjs +13 -0
  296. package/build/common/propsValues/status.mjs.map +1 -0
  297. package/build/common/propsValues/type.js +17 -0
  298. package/build/common/propsValues/type.js.map +1 -0
  299. package/build/common/propsValues/type.mjs +17 -0
  300. package/build/common/propsValues/type.mjs.map +1 -0
  301. package/build/common/propsValues/typography.js +25 -0
  302. package/build/common/propsValues/typography.js.map +1 -0
  303. package/build/common/propsValues/typography.mjs +25 -0
  304. package/build/common/propsValues/typography.mjs.map +1 -0
  305. package/build/common/propsValues/variant.js +8 -0
  306. package/build/common/propsValues/variant.js.map +1 -0
  307. package/build/common/propsValues/variant.mjs +8 -0
  308. package/build/common/propsValues/variant.mjs.map +1 -0
  309. package/build/common/propsValues/width.js +8 -0
  310. package/build/common/propsValues/width.js.map +1 -0
  311. package/build/common/propsValues/width.mjs +8 -0
  312. package/build/common/propsValues/width.mjs.map +1 -0
  313. package/build/common/responsivePanel/ResponsivePanel.js +45 -0
  314. package/build/common/responsivePanel/ResponsivePanel.js.map +1 -0
  315. package/build/common/responsivePanel/ResponsivePanel.mjs +43 -0
  316. package/build/common/responsivePanel/ResponsivePanel.mjs.map +1 -0
  317. package/build/common/textFormat/formatWithPattern/formatWithPattern.js +27 -0
  318. package/build/common/textFormat/formatWithPattern/formatWithPattern.js.map +1 -0
  319. package/build/common/textFormat/formatWithPattern/formatWithPattern.mjs +25 -0
  320. package/build/common/textFormat/formatWithPattern/formatWithPattern.mjs.map +1 -0
  321. package/build/common/textFormat/getCountOfSymbolsInSelection/getCountOfSymbolsInSelection.js +8 -0
  322. package/build/common/textFormat/getCountOfSymbolsInSelection/getCountOfSymbolsInSelection.js.map +1 -0
  323. package/build/common/textFormat/getCountOfSymbolsInSelection/getCountOfSymbolsInSelection.mjs +6 -0
  324. package/build/common/textFormat/getCountOfSymbolsInSelection/getCountOfSymbolsInSelection.mjs.map +1 -0
  325. package/build/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.js +30 -0
  326. package/build/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.js.map +1 -0
  327. package/build/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.mjs +28 -0
  328. package/build/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.mjs.map +1 -0
  329. package/build/common/textFormat/getDistanceToSymbol/getDistanceToSymbol.js +32 -0
  330. package/build/common/textFormat/getDistanceToSymbol/getDistanceToSymbol.js.map +1 -0
  331. package/build/common/textFormat/getDistanceToSymbol/getDistanceToSymbol.mjs +29 -0
  332. package/build/common/textFormat/getDistanceToSymbol/getDistanceToSymbol.mjs.map +1 -0
  333. package/build/common/textFormat/getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition.js +18 -0
  334. package/build/common/textFormat/getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition.js.map +1 -0
  335. package/build/common/textFormat/getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition.mjs +16 -0
  336. package/build/common/textFormat/getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition.mjs.map +1 -0
  337. package/build/common/textFormat/unformatWithPattern/unformatWithPattern.js +14 -0
  338. package/build/common/textFormat/unformatWithPattern/unformatWithPattern.js.map +1 -0
  339. package/build/common/textFormat/unformatWithPattern/unformatWithPattern.mjs +12 -0
  340. package/build/common/textFormat/unformatWithPattern/unformatWithPattern.mjs.map +1 -0
  341. package/build/common/theme.js +13 -0
  342. package/build/common/theme.js.map +1 -0
  343. package/build/common/theme.mjs +13 -0
  344. package/build/common/theme.mjs.map +1 -0
  345. package/build/criticalBanner/CriticalCommsBanner.js +77 -0
  346. package/build/criticalBanner/CriticalCommsBanner.js.map +1 -0
  347. package/build/criticalBanner/CriticalCommsBanner.mjs +71 -0
  348. package/build/criticalBanner/CriticalCommsBanner.mjs.map +1 -0
  349. package/build/dateInput/DateInput.js +329 -0
  350. package/build/dateInput/DateInput.js.map +1 -0
  351. package/build/dateInput/DateInput.messages.js +24 -0
  352. package/build/dateInput/DateInput.messages.js.map +1 -0
  353. package/build/dateInput/DateInput.messages.mjs +22 -0
  354. package/build/dateInput/DateInput.messages.mjs.map +1 -0
  355. package/build/dateInput/DateInput.mjs +323 -0
  356. package/build/dateInput/DateInput.mjs.map +1 -0
  357. package/build/dateInput/utils/convertToLocalMidnight/convertToLocalMidnight.js +9 -0
  358. package/build/dateInput/utils/convertToLocalMidnight/convertToLocalMidnight.js.map +1 -0
  359. package/build/dateInput/utils/convertToLocalMidnight/convertToLocalMidnight.mjs +7 -0
  360. package/build/dateInput/utils/convertToLocalMidnight/convertToLocalMidnight.mjs.map +1 -0
  361. package/build/dateLookup/DateLookup.js +339 -0
  362. package/build/dateLookup/DateLookup.js.map +1 -0
  363. package/build/dateLookup/DateLookup.messages.js +33 -0
  364. package/build/dateLookup/DateLookup.messages.js.map +1 -0
  365. package/build/dateLookup/DateLookup.messages.mjs +31 -0
  366. package/build/dateLookup/DateLookup.messages.mjs.map +1 -0
  367. package/build/dateLookup/DateLookup.mjs +333 -0
  368. package/build/dateLookup/DateLookup.mjs.map +1 -0
  369. package/build/dateLookup/dateHeader/DateHeader.js +73 -0
  370. package/build/dateLookup/dateHeader/DateHeader.js.map +1 -0
  371. package/build/dateLookup/dateHeader/DateHeader.mjs +67 -0
  372. package/build/dateLookup/dateHeader/DateHeader.mjs.map +1 -0
  373. package/build/dateLookup/dateTrigger/DateTrigger.js +70 -0
  374. package/build/dateLookup/dateTrigger/DateTrigger.js.map +1 -0
  375. package/build/dateLookup/dateTrigger/DateTrigger.messages.js +12 -0
  376. package/build/dateLookup/dateTrigger/DateTrigger.messages.js.map +1 -0
  377. package/build/dateLookup/dateTrigger/DateTrigger.messages.mjs +10 -0
  378. package/build/dateLookup/dateTrigger/DateTrigger.messages.mjs.map +1 -0
  379. package/build/dateLookup/dateTrigger/DateTrigger.mjs +68 -0
  380. package/build/dateLookup/dateTrigger/DateTrigger.mjs.map +1 -0
  381. package/build/dateLookup/dayCalendar/DayCalendar.js +71 -0
  382. package/build/dateLookup/dayCalendar/DayCalendar.js.map +1 -0
  383. package/build/dateLookup/dayCalendar/DayCalendar.mjs +69 -0
  384. package/build/dateLookup/dayCalendar/DayCalendar.mjs.map +1 -0
  385. package/build/dateLookup/dayCalendar/table/DayCalendarTable.js +150 -0
  386. package/build/dateLookup/dayCalendar/table/DayCalendarTable.js.map +1 -0
  387. package/build/dateLookup/dayCalendar/table/DayCalendarTable.mjs +148 -0
  388. package/build/dateLookup/dayCalendar/table/DayCalendarTable.mjs.map +1 -0
  389. package/build/dateLookup/getFocusableTime/getFocusableTime.js +8 -0
  390. package/build/dateLookup/getFocusableTime/getFocusableTime.js.map +1 -0
  391. package/build/dateLookup/getFocusableTime/getFocusableTime.mjs +6 -0
  392. package/build/dateLookup/getFocusableTime/getFocusableTime.mjs.map +1 -0
  393. package/build/dateLookup/getStartOfDay/getStartOfDay.js +15 -0
  394. package/build/dateLookup/getStartOfDay/getStartOfDay.js.map +1 -0
  395. package/build/dateLookup/getStartOfDay/getStartOfDay.mjs +13 -0
  396. package/build/dateLookup/getStartOfDay/getStartOfDay.mjs.map +1 -0
  397. package/build/dateLookup/monthCalendar/MonthCalendar.js +64 -0
  398. package/build/dateLookup/monthCalendar/MonthCalendar.js.map +1 -0
  399. package/build/dateLookup/monthCalendar/MonthCalendar.mjs +62 -0
  400. package/build/dateLookup/monthCalendar/MonthCalendar.mjs.map +1 -0
  401. package/build/dateLookup/monthCalendar/table/MonthCalendarTable.js +83 -0
  402. package/build/dateLookup/monthCalendar/table/MonthCalendarTable.js.map +1 -0
  403. package/build/dateLookup/monthCalendar/table/MonthCalendarTable.mjs +81 -0
  404. package/build/dateLookup/monthCalendar/table/MonthCalendarTable.mjs.map +1 -0
  405. package/build/dateLookup/tableLink/TableLink.js +65 -0
  406. package/build/dateLookup/tableLink/TableLink.js.map +1 -0
  407. package/build/dateLookup/tableLink/TableLink.mjs +59 -0
  408. package/build/dateLookup/tableLink/TableLink.mjs.map +1 -0
  409. package/build/dateLookup/yearCalendar/YearCalendar.js +57 -0
  410. package/build/dateLookup/yearCalendar/YearCalendar.js.map +1 -0
  411. package/build/dateLookup/yearCalendar/YearCalendar.mjs +55 -0
  412. package/build/dateLookup/yearCalendar/YearCalendar.mjs.map +1 -0
  413. package/build/dateLookup/yearCalendar/table/YearCalendarTable.js +83 -0
  414. package/build/dateLookup/yearCalendar/table/YearCalendarTable.js.map +1 -0
  415. package/build/dateLookup/yearCalendar/table/YearCalendarTable.mjs +81 -0
  416. package/build/dateLookup/yearCalendar/table/YearCalendarTable.mjs.map +1 -0
  417. package/build/decision/Decision.js +108 -0
  418. package/build/decision/Decision.js.map +1 -0
  419. package/build/decision/Decision.mjs +100 -0
  420. package/build/decision/Decision.mjs.map +1 -0
  421. package/build/definitionList/DefinitionList.js +72 -0
  422. package/build/definitionList/DefinitionList.js.map +1 -0
  423. package/build/definitionList/DefinitionList.mjs +66 -0
  424. package/build/definitionList/DefinitionList.mjs.map +1 -0
  425. package/build/dimmer/Dimmer.js +184 -0
  426. package/build/dimmer/Dimmer.js.map +1 -0
  427. package/build/dimmer/Dimmer.mjs +172 -0
  428. package/build/dimmer/Dimmer.mjs.map +1 -0
  429. package/build/dimmer/dimmerManager/DimmerManager.js +36 -0
  430. package/build/dimmer/dimmerManager/DimmerManager.js.map +1 -0
  431. package/build/dimmer/dimmerManager/DimmerManager.mjs +34 -0
  432. package/build/dimmer/dimmerManager/DimmerManager.mjs.map +1 -0
  433. package/build/display/Display.js +26 -0
  434. package/build/display/Display.js.map +1 -0
  435. package/build/display/Display.mjs +20 -0
  436. package/build/display/Display.mjs.map +1 -0
  437. package/build/drawer/Drawer.js +68 -0
  438. package/build/drawer/Drawer.js.map +1 -0
  439. package/build/drawer/Drawer.mjs +62 -0
  440. package/build/drawer/Drawer.mjs.map +1 -0
  441. package/build/dropFade/DropFade.js +48 -0
  442. package/build/dropFade/DropFade.js.map +1 -0
  443. package/build/dropFade/DropFade.mjs +42 -0
  444. package/build/dropFade/DropFade.mjs.map +1 -0
  445. package/build/emphasis/Emphasis.js +24 -0
  446. package/build/emphasis/Emphasis.js.map +1 -0
  447. package/build/emphasis/Emphasis.mjs +22 -0
  448. package/build/emphasis/Emphasis.mjs.map +1 -0
  449. package/build/emphasis/EmphasisHtmlTransformer.js +39 -0
  450. package/build/emphasis/EmphasisHtmlTransformer.js.map +1 -0
  451. package/build/emphasis/EmphasisHtmlTransformer.mjs +37 -0
  452. package/build/emphasis/EmphasisHtmlTransformer.mjs.map +1 -0
  453. package/build/field/Field.js +63 -0
  454. package/build/field/Field.js.map +1 -0
  455. package/build/field/Field.mjs +57 -0
  456. package/build/field/Field.mjs.map +1 -0
  457. package/build/flowNavigation/FlowNavigation.js +80 -0
  458. package/build/flowNavigation/FlowNavigation.js.map +1 -0
  459. package/build/flowNavigation/FlowNavigation.messages.js +12 -0
  460. package/build/flowNavigation/FlowNavigation.messages.js.map +1 -0
  461. package/build/flowNavigation/FlowNavigation.messages.mjs +10 -0
  462. package/build/flowNavigation/FlowNavigation.messages.mjs.map +1 -0
  463. package/build/flowNavigation/FlowNavigation.mjs +74 -0
  464. package/build/flowNavigation/FlowNavigation.mjs.map +1 -0
  465. package/build/flowNavigation/animatedLabel/AnimatedLabel.js +34 -0
  466. package/build/flowNavigation/animatedLabel/AnimatedLabel.js.map +1 -0
  467. package/build/flowNavigation/animatedLabel/AnimatedLabel.mjs +28 -0
  468. package/build/flowNavigation/animatedLabel/AnimatedLabel.mjs.map +1 -0
  469. package/build/flowNavigation/backButton/BackButton.js +34 -0
  470. package/build/flowNavigation/backButton/BackButton.js.map +1 -0
  471. package/build/flowNavigation/backButton/BackButton.mjs +28 -0
  472. package/build/flowNavigation/backButton/BackButton.mjs.map +1 -0
  473. package/build/header/Header.js +87 -0
  474. package/build/header/Header.js.map +1 -0
  475. package/build/header/Header.mjs +78 -0
  476. package/build/header/Header.mjs.map +1 -0
  477. package/build/i18n/cs.json.js +61 -0
  478. package/build/i18n/cs.json.js.map +1 -0
  479. package/build/i18n/cs.json.mjs +59 -0
  480. package/build/i18n/cs.json.mjs.map +1 -0
  481. package/build/i18n/de.json.js +62 -0
  482. package/build/i18n/de.json.js.map +1 -0
  483. package/build/i18n/de.json.mjs +60 -0
  484. package/build/i18n/de.json.mjs.map +1 -0
  485. package/build/i18n/en.json.js +62 -0
  486. package/build/i18n/en.json.js.map +1 -0
  487. package/build/i18n/en.json.mjs +60 -0
  488. package/build/i18n/en.json.mjs.map +1 -0
  489. package/build/i18n/es.json.js +62 -0
  490. package/build/i18n/es.json.js.map +1 -0
  491. package/build/i18n/es.json.mjs +60 -0
  492. package/build/i18n/es.json.mjs.map +1 -0
  493. package/build/i18n/fr.json.js +62 -0
  494. package/build/i18n/fr.json.js.map +1 -0
  495. package/build/i18n/fr.json.mjs +60 -0
  496. package/build/i18n/fr.json.mjs.map +1 -0
  497. package/build/i18n/hu.json.js +62 -0
  498. package/build/i18n/hu.json.js.map +1 -0
  499. package/build/i18n/hu.json.mjs +60 -0
  500. package/build/i18n/hu.json.mjs.map +1 -0
  501. package/build/i18n/id.json.js +62 -0
  502. package/build/i18n/id.json.js.map +1 -0
  503. package/build/i18n/id.json.mjs +60 -0
  504. package/build/i18n/id.json.mjs.map +1 -0
  505. package/build/i18n/index.js +45 -0
  506. package/build/i18n/index.js.map +1 -0
  507. package/build/i18n/index.mjs +43 -0
  508. package/build/i18n/index.mjs.map +1 -0
  509. package/build/i18n/it.json.js +62 -0
  510. package/build/i18n/it.json.js.map +1 -0
  511. package/build/i18n/it.json.mjs +60 -0
  512. package/build/i18n/it.json.mjs.map +1 -0
  513. package/build/i18n/ja.json.js +62 -0
  514. package/build/i18n/ja.json.js.map +1 -0
  515. package/build/i18n/ja.json.mjs +60 -0
  516. package/build/i18n/ja.json.mjs.map +1 -0
  517. package/build/i18n/pl.json.js +62 -0
  518. package/build/i18n/pl.json.js.map +1 -0
  519. package/build/i18n/pl.json.mjs +60 -0
  520. package/build/i18n/pl.json.mjs.map +1 -0
  521. package/build/i18n/pt.json.js +62 -0
  522. package/build/i18n/pt.json.js.map +1 -0
  523. package/build/i18n/pt.json.mjs +60 -0
  524. package/build/i18n/pt.json.mjs.map +1 -0
  525. package/build/i18n/ro.json.js +62 -0
  526. package/build/i18n/ro.json.js.map +1 -0
  527. package/build/i18n/ro.json.mjs +60 -0
  528. package/build/i18n/ro.json.mjs.map +1 -0
  529. package/build/i18n/ru.json.js +62 -0
  530. package/build/i18n/ru.json.js.map +1 -0
  531. package/build/i18n/ru.json.mjs +60 -0
  532. package/build/i18n/ru.json.mjs.map +1 -0
  533. package/build/i18n/th.json.js +62 -0
  534. package/build/i18n/th.json.js.map +1 -0
  535. package/build/i18n/th.json.mjs +60 -0
  536. package/build/i18n/th.json.mjs.map +1 -0
  537. package/build/i18n/tr.json.js +62 -0
  538. package/build/i18n/tr.json.js.map +1 -0
  539. package/build/i18n/tr.json.mjs +60 -0
  540. package/build/i18n/tr.json.mjs.map +1 -0
  541. package/build/i18n/uk.json.js +61 -0
  542. package/build/i18n/uk.json.js.map +1 -0
  543. package/build/i18n/uk.json.mjs +59 -0
  544. package/build/i18n/uk.json.mjs.map +1 -0
  545. package/build/i18n/zh-CN.json.js +62 -0
  546. package/build/i18n/zh-CN.json.js.map +1 -0
  547. package/build/i18n/zh-CN.json.mjs +60 -0
  548. package/build/i18n/zh-CN.json.mjs.map +1 -0
  549. package/build/i18n/zh-HK.json.js +62 -0
  550. package/build/i18n/zh-HK.json.js.map +1 -0
  551. package/build/i18n/zh-HK.json.mjs +60 -0
  552. package/build/i18n/zh-HK.json.mjs.map +1 -0
  553. package/build/image/Image.js +55 -0
  554. package/build/image/Image.js.map +1 -0
  555. package/build/image/Image.mjs +46 -0
  556. package/build/image/Image.mjs.map +1 -0
  557. package/build/index.js +278 -14434
  558. package/build/index.js.map +1 -1
  559. package/build/index.mjs +118 -14359
  560. package/build/index.mjs.map +1 -1
  561. package/build/info/Info.js +80 -0
  562. package/build/info/Info.js.map +1 -0
  563. package/build/info/Info.messages.js +12 -0
  564. package/build/info/Info.messages.js.map +1 -0
  565. package/build/info/Info.messages.mjs +10 -0
  566. package/build/info/Info.messages.mjs.map +1 -0
  567. package/build/info/Info.mjs +74 -0
  568. package/build/info/Info.mjs.map +1 -0
  569. package/build/info/infoPresentations.js +9 -0
  570. package/build/info/infoPresentations.js.map +1 -0
  571. package/build/info/infoPresentations.mjs +9 -0
  572. package/build/info/infoPresentations.mjs.map +1 -0
  573. package/build/inlineAlert/InlineAlert.js +35 -0
  574. package/build/inlineAlert/InlineAlert.js.map +1 -0
  575. package/build/inlineAlert/InlineAlert.mjs +29 -0
  576. package/build/inlineAlert/InlineAlert.mjs.map +1 -0
  577. package/build/inputWithDisplayFormat/InputWithDisplayFormat.js +15 -0
  578. package/build/inputWithDisplayFormat/InputWithDisplayFormat.js.map +1 -0
  579. package/build/inputWithDisplayFormat/InputWithDisplayFormat.mjs +13 -0
  580. package/build/inputWithDisplayFormat/InputWithDisplayFormat.mjs.map +1 -0
  581. package/build/inputs/Input.js +39 -0
  582. package/build/inputs/Input.js.map +1 -0
  583. package/build/inputs/Input.mjs +33 -0
  584. package/build/inputs/Input.mjs.map +1 -0
  585. package/build/inputs/InputGroup.js +112 -0
  586. package/build/inputs/InputGroup.js.map +1 -0
  587. package/build/inputs/InputGroup.mjs +105 -0
  588. package/build/inputs/InputGroup.mjs.map +1 -0
  589. package/build/inputs/SearchInput.js +38 -0
  590. package/build/inputs/SearchInput.js.map +1 -0
  591. package/build/inputs/SearchInput.mjs +36 -0
  592. package/build/inputs/SearchInput.mjs.map +1 -0
  593. package/build/inputs/SelectInput.js +585 -0
  594. package/build/inputs/SelectInput.js.map +1 -0
  595. package/build/inputs/SelectInput.messages.js +12 -0
  596. package/build/inputs/SelectInput.messages.js.map +1 -0
  597. package/build/inputs/SelectInput.messages.mjs +10 -0
  598. package/build/inputs/SelectInput.messages.mjs.map +1 -0
  599. package/build/inputs/SelectInput.mjs +576 -0
  600. package/build/inputs/SelectInput.mjs.map +1 -0
  601. package/build/inputs/TextArea.js +27 -0
  602. package/build/inputs/TextArea.js.map +1 -0
  603. package/build/inputs/TextArea.mjs +21 -0
  604. package/build/inputs/TextArea.mjs.map +1 -0
  605. package/build/inputs/_BottomSheet.js +115 -0
  606. package/build/inputs/_BottomSheet.js.map +1 -0
  607. package/build/inputs/_BottomSheet.mjs +109 -0
  608. package/build/inputs/_BottomSheet.mjs.map +1 -0
  609. package/build/inputs/_ButtonInput.js +37 -0
  610. package/build/inputs/_ButtonInput.js.map +1 -0
  611. package/build/inputs/_ButtonInput.mjs +31 -0
  612. package/build/inputs/_ButtonInput.mjs.map +1 -0
  613. package/build/inputs/_Popover.js +120 -0
  614. package/build/inputs/_Popover.js.map +1 -0
  615. package/build/inputs/_Popover.mjs +114 -0
  616. package/build/inputs/_Popover.mjs.map +1 -0
  617. package/build/inputs/_common.js +23 -0
  618. package/build/inputs/_common.js.map +1 -0
  619. package/build/inputs/_common.mjs +17 -0
  620. package/build/inputs/_common.mjs.map +1 -0
  621. package/build/inputs/contexts.js +42 -0
  622. package/build/inputs/contexts.js.map +1 -0
  623. package/build/inputs/contexts.mjs +35 -0
  624. package/build/inputs/contexts.mjs.map +1 -0
  625. package/build/instructionsList/InstructionsList.js +66 -0
  626. package/build/instructionsList/InstructionsList.js.map +1 -0
  627. package/build/instructionsList/InstructionsList.mjs +60 -0
  628. package/build/instructionsList/InstructionsList.mjs.map +1 -0
  629. package/build/label/Label.js +25 -0
  630. package/build/label/Label.js.map +1 -0
  631. package/build/label/Label.mjs +19 -0
  632. package/build/label/Label.mjs.map +1 -0
  633. package/build/link/Link.js +42 -0
  634. package/build/link/Link.js.map +1 -0
  635. package/build/link/Link.messages.js +12 -0
  636. package/build/link/Link.messages.js.map +1 -0
  637. package/build/link/Link.messages.mjs +10 -0
  638. package/build/link/Link.messages.mjs.map +1 -0
  639. package/build/link/Link.mjs +36 -0
  640. package/build/link/Link.mjs.map +1 -0
  641. package/build/listItem/ListItem.js +50 -0
  642. package/build/listItem/ListItem.js.map +1 -0
  643. package/build/listItem/ListItem.mjs +44 -0
  644. package/build/listItem/ListItem.mjs.map +1 -0
  645. package/build/loader/Loader.js +68 -0
  646. package/build/loader/Loader.js.map +1 -0
  647. package/build/loader/Loader.mjs +62 -0
  648. package/build/loader/Loader.mjs.map +1 -0
  649. package/build/logo/Logo.js +176 -0
  650. package/build/logo/Logo.js.map +1 -0
  651. package/build/logo/Logo.mjs +168 -0
  652. package/build/logo/Logo.mjs.map +1 -0
  653. package/build/markdown/Markdown.js +75 -0
  654. package/build/markdown/Markdown.js.map +1 -0
  655. package/build/markdown/Markdown.mjs +69 -0
  656. package/build/markdown/Markdown.mjs.map +1 -0
  657. package/build/modal/Modal.js +113 -0
  658. package/build/modal/Modal.js.map +1 -0
  659. package/build/modal/Modal.mjs +107 -0
  660. package/build/modal/Modal.mjs.map +1 -0
  661. package/build/money/Money.js +20 -0
  662. package/build/money/Money.js.map +1 -0
  663. package/build/money/Money.mjs +18 -0
  664. package/build/money/Money.mjs.map +1 -0
  665. package/build/moneyInput/MoneyInput.js +369 -0
  666. package/build/moneyInput/MoneyInput.js.map +1 -0
  667. package/build/moneyInput/MoneyInput.messages.js +12 -0
  668. package/build/moneyInput/MoneyInput.messages.js.map +1 -0
  669. package/build/moneyInput/MoneyInput.messages.mjs +10 -0
  670. package/build/moneyInput/MoneyInput.messages.mjs.map +1 -0
  671. package/build/moneyInput/MoneyInput.mjs +363 -0
  672. package/build/moneyInput/MoneyInput.mjs.map +1 -0
  673. package/build/moneyInput/currencyFormatting.js +70 -0
  674. package/build/moneyInput/currencyFormatting.js.map +1 -0
  675. package/build/moneyInput/currencyFormatting.mjs +64 -0
  676. package/build/moneyInput/currencyFormatting.mjs.map +1 -0
  677. package/build/navigationOption/NavigationOption.js +48 -0
  678. package/build/navigationOption/NavigationOption.js.map +1 -0
  679. package/build/navigationOption/NavigationOption.mjs +42 -0
  680. package/build/navigationOption/NavigationOption.mjs.map +1 -0
  681. package/build/navigationOptionsList/NavigationOptionsList.js +19 -0
  682. package/build/navigationOptionsList/NavigationOptionsList.js.map +1 -0
  683. package/build/navigationOptionsList/NavigationOptionsList.mjs +17 -0
  684. package/build/navigationOptionsList/NavigationOptionsList.mjs.map +1 -0
  685. package/build/nudge/Nudge.js +121 -0
  686. package/build/nudge/Nudge.js.map +1 -0
  687. package/build/nudge/Nudge.mjs +112 -0
  688. package/build/nudge/Nudge.mjs.map +1 -0
  689. package/build/overlayHeader/OverlayHeader.js +40 -0
  690. package/build/overlayHeader/OverlayHeader.js.map +1 -0
  691. package/build/overlayHeader/OverlayHeader.mjs +34 -0
  692. package/build/overlayHeader/OverlayHeader.mjs.map +1 -0
  693. package/build/phoneNumberInput/PhoneNumberInput.js +161 -0
  694. package/build/phoneNumberInput/PhoneNumberInput.js.map +1 -0
  695. package/build/phoneNumberInput/PhoneNumberInput.messages.js +12 -0
  696. package/build/phoneNumberInput/PhoneNumberInput.messages.js.map +1 -0
  697. package/build/phoneNumberInput/PhoneNumberInput.messages.mjs +10 -0
  698. package/build/phoneNumberInput/PhoneNumberInput.messages.mjs.map +1 -0
  699. package/build/phoneNumberInput/PhoneNumberInput.mjs +159 -0
  700. package/build/phoneNumberInput/PhoneNumberInput.mjs.map +1 -0
  701. package/build/phoneNumberInput/data/countries.js +1278 -0
  702. package/build/phoneNumberInput/data/countries.js.map +1 -0
  703. package/build/phoneNumberInput/data/countries.mjs +1276 -0
  704. package/build/phoneNumberInput/data/countries.mjs.map +1 -0
  705. package/build/phoneNumberInput/utils/cleanNumber/cleanNumber.js +7 -0
  706. package/build/phoneNumberInput/utils/cleanNumber/cleanNumber.js.map +1 -0
  707. package/build/phoneNumberInput/utils/cleanNumber/cleanNumber.mjs +5 -0
  708. package/build/phoneNumberInput/utils/cleanNumber/cleanNumber.mjs.map +1 -0
  709. package/build/phoneNumberInput/utils/excludeCountries/excludeCountries.js +19 -0
  710. package/build/phoneNumberInput/utils/excludeCountries/excludeCountries.js.map +1 -0
  711. package/build/phoneNumberInput/utils/excludeCountries/excludeCountries.mjs +17 -0
  712. package/build/phoneNumberInput/utils/excludeCountries/excludeCountries.mjs.map +1 -0
  713. package/build/phoneNumberInput/utils/explodeNumberModel/index.js +21 -0
  714. package/build/phoneNumberInput/utils/explodeNumberModel/index.js.map +1 -0
  715. package/build/phoneNumberInput/utils/explodeNumberModel/index.mjs +19 -0
  716. package/build/phoneNumberInput/utils/explodeNumberModel/index.mjs.map +1 -0
  717. package/build/phoneNumberInput/utils/findCountryByCode/index.js +17 -0
  718. package/build/phoneNumberInput/utils/findCountryByCode/index.js.map +1 -0
  719. package/build/phoneNumberInput/utils/findCountryByCode/index.mjs +15 -0
  720. package/build/phoneNumberInput/utils/findCountryByCode/index.mjs.map +1 -0
  721. package/build/phoneNumberInput/utils/findCountryByPrefix/index.js +17 -0
  722. package/build/phoneNumberInput/utils/findCountryByPrefix/index.js.map +1 -0
  723. package/build/phoneNumberInput/utils/findCountryByPrefix/index.mjs +15 -0
  724. package/build/phoneNumberInput/utils/findCountryByPrefix/index.mjs.map +1 -0
  725. package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.js +12 -0
  726. package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.js.map +1 -0
  727. package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.mjs +10 -0
  728. package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.mjs.map +1 -0
  729. package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.js +11 -0
  730. package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.js.map +1 -0
  731. package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.mjs +9 -0
  732. package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.mjs.map +1 -0
  733. package/build/phoneNumberInput/utils/longestMatchingPrefix/index.js +6 -0
  734. package/build/phoneNumberInput/utils/longestMatchingPrefix/index.js.map +1 -0
  735. package/build/phoneNumberInput/utils/longestMatchingPrefix/index.mjs +4 -0
  736. package/build/phoneNumberInput/utils/longestMatchingPrefix/index.mjs.map +1 -0
  737. package/build/phoneNumberInput/utils/setDefaultPrefix/index.js +22 -0
  738. package/build/phoneNumberInput/utils/setDefaultPrefix/index.js.map +1 -0
  739. package/build/phoneNumberInput/utils/setDefaultPrefix/index.mjs +20 -0
  740. package/build/phoneNumberInput/utils/setDefaultPrefix/index.mjs.map +1 -0
  741. package/build/phoneNumberInput/utils/sortArrayByProperty/sortArrayByProperty.js +8 -0
  742. package/build/phoneNumberInput/utils/sortArrayByProperty/sortArrayByProperty.js.map +1 -0
  743. package/build/phoneNumberInput/utils/sortArrayByProperty/sortArrayByProperty.mjs +6 -0
  744. package/build/phoneNumberInput/utils/sortArrayByProperty/sortArrayByProperty.mjs.map +1 -0
  745. package/build/popover/Popover.js +79 -0
  746. package/build/popover/Popover.js.map +1 -0
  747. package/build/popover/Popover.mjs +73 -0
  748. package/build/popover/Popover.mjs.map +1 -0
  749. package/build/processIndicator/ProcessIndicator.js +120 -0
  750. package/build/processIndicator/ProcessIndicator.js.map +1 -0
  751. package/build/processIndicator/ProcessIndicator.mjs +114 -0
  752. package/build/processIndicator/ProcessIndicator.mjs.map +1 -0
  753. package/build/progress/Progress.js +24 -0
  754. package/build/progress/Progress.js.map +1 -0
  755. package/build/progress/Progress.mjs +18 -0
  756. package/build/progress/Progress.mjs.map +1 -0
  757. package/build/progressBar/ProgressBar.js +51 -0
  758. package/build/progressBar/ProgressBar.js.map +1 -0
  759. package/build/progressBar/ProgressBar.mjs +45 -0
  760. package/build/progressBar/ProgressBar.mjs.map +1 -0
  761. package/build/promoCard/PromoCard.js +189 -0
  762. package/build/promoCard/PromoCard.js.map +1 -0
  763. package/build/promoCard/PromoCard.mjs +182 -0
  764. package/build/promoCard/PromoCard.mjs.map +1 -0
  765. package/build/promoCard/PromoCardContext.js +33 -0
  766. package/build/promoCard/PromoCardContext.js.map +1 -0
  767. package/build/promoCard/PromoCardContext.mjs +27 -0
  768. package/build/promoCard/PromoCardContext.mjs.map +1 -0
  769. package/build/promoCard/PromoCardGroup.js +80 -0
  770. package/build/promoCard/PromoCardGroup.js.map +1 -0
  771. package/build/promoCard/PromoCardGroup.mjs +73 -0
  772. package/build/promoCard/PromoCardGroup.mjs.map +1 -0
  773. package/build/promoCard/PromoCardIndicator.js +53 -0
  774. package/build/promoCard/PromoCardIndicator.js.map +1 -0
  775. package/build/promoCard/PromoCardIndicator.mjs +47 -0
  776. package/build/promoCard/PromoCardIndicator.mjs.map +1 -0
  777. package/build/provider/Provider.js +53 -0
  778. package/build/provider/Provider.js.map +1 -0
  779. package/build/provider/Provider.mjs +51 -0
  780. package/build/provider/Provider.mjs.map +1 -0
  781. package/build/provider/direction/DirectionProvider.js +20 -0
  782. package/build/provider/direction/DirectionProvider.js.map +1 -0
  783. package/build/provider/direction/DirectionProvider.mjs +17 -0
  784. package/build/provider/direction/DirectionProvider.mjs.map +1 -0
  785. package/build/provider/language/LanguageProvider.js +20 -0
  786. package/build/provider/language/LanguageProvider.js.map +1 -0
  787. package/build/provider/language/LanguageProvider.mjs +17 -0
  788. package/build/provider/language/LanguageProvider.mjs.map +1 -0
  789. package/build/radio/Radio.js +63 -0
  790. package/build/radio/Radio.js.map +1 -0
  791. package/build/radio/Radio.mjs +57 -0
  792. package/build/radio/Radio.mjs.map +1 -0
  793. package/build/radioGroup/RadioGroup.js +40 -0
  794. package/build/radioGroup/RadioGroup.js.map +1 -0
  795. package/build/radioGroup/RadioGroup.mjs +38 -0
  796. package/build/radioGroup/RadioGroup.mjs.map +1 -0
  797. package/build/radioOption/RadioOption.js +46 -0
  798. package/build/radioOption/RadioOption.js.map +1 -0
  799. package/build/radioOption/RadioOption.mjs +44 -0
  800. package/build/radioOption/RadioOption.mjs.map +1 -0
  801. package/build/section/Section.js +24 -0
  802. package/build/section/Section.js.map +1 -0
  803. package/build/section/Section.mjs +18 -0
  804. package/build/section/Section.mjs.map +1 -0
  805. package/build/segmentedControl/SegmentedControl.js +115 -0
  806. package/build/segmentedControl/SegmentedControl.js.map +1 -0
  807. package/build/segmentedControl/SegmentedControl.mjs +109 -0
  808. package/build/segmentedControl/SegmentedControl.mjs.map +1 -0
  809. package/build/select/Select.js +579 -0
  810. package/build/select/Select.js.map +1 -0
  811. package/build/select/Select.messages.js +12 -0
  812. package/build/select/Select.messages.js.map +1 -0
  813. package/build/select/Select.messages.mjs +10 -0
  814. package/build/select/Select.messages.mjs.map +1 -0
  815. package/build/select/Select.mjs +572 -0
  816. package/build/select/Select.mjs.map +1 -0
  817. package/build/select/index.js +8 -0
  818. package/build/select/index.js.map +1 -0
  819. package/build/select/index.mjs +6 -0
  820. package/build/select/index.mjs.map +1 -0
  821. package/build/select/option/Option.js +58 -0
  822. package/build/select/option/Option.js.map +1 -0
  823. package/build/select/option/Option.mjs +52 -0
  824. package/build/select/option/Option.mjs.map +1 -0
  825. package/build/select/option/index.js +8 -0
  826. package/build/select/option/index.js.map +1 -0
  827. package/build/select/option/index.mjs +6 -0
  828. package/build/select/option/index.mjs.map +1 -0
  829. package/build/select/searchBox/SearchBox.js +54 -0
  830. package/build/select/searchBox/SearchBox.js.map +1 -0
  831. package/build/select/searchBox/SearchBox.mjs +48 -0
  832. package/build/select/searchBox/SearchBox.mjs.map +1 -0
  833. package/build/slidingPanel/SlidingPanel.js +51 -0
  834. package/build/slidingPanel/SlidingPanel.js.map +1 -0
  835. package/build/slidingPanel/SlidingPanel.mjs +42 -0
  836. package/build/slidingPanel/SlidingPanel.mjs.map +1 -0
  837. package/build/snackbar/Snackbar.js +128 -0
  838. package/build/snackbar/Snackbar.js.map +1 -0
  839. package/build/snackbar/Snackbar.mjs +123 -0
  840. package/build/snackbar/Snackbar.mjs.map +1 -0
  841. package/build/snackbar/SnackbarContext.js +12 -0
  842. package/build/snackbar/SnackbarContext.js.map +1 -0
  843. package/build/snackbar/SnackbarContext.mjs +9 -0
  844. package/build/snackbar/SnackbarContext.mjs.map +1 -0
  845. package/build/snackbar/SnackbarProvider.js +48 -0
  846. package/build/snackbar/SnackbarProvider.js.map +1 -0
  847. package/build/snackbar/SnackbarProvider.mjs +46 -0
  848. package/build/snackbar/SnackbarProvider.mjs.map +1 -0
  849. package/build/snackbar/useSnackbar.js +14 -0
  850. package/build/snackbar/useSnackbar.js.map +1 -0
  851. package/build/snackbar/useSnackbar.mjs +12 -0
  852. package/build/snackbar/useSnackbar.mjs.map +1 -0
  853. package/build/statusIcon/StatusIcon.js +37 -0
  854. package/build/statusIcon/StatusIcon.js.map +1 -0
  855. package/build/statusIcon/StatusIcon.mjs +31 -0
  856. package/build/statusIcon/StatusIcon.mjs.map +1 -0
  857. package/build/stepper/Stepper.js +80 -0
  858. package/build/stepper/Stepper.js.map +1 -0
  859. package/build/stepper/Stepper.mjs +74 -0
  860. package/build/stepper/Stepper.mjs.map +1 -0
  861. package/build/stepper/deviceDetection.js +22 -0
  862. package/build/stepper/deviceDetection.js.map +1 -0
  863. package/build/stepper/deviceDetection.mjs +20 -0
  864. package/build/stepper/deviceDetection.mjs.map +1 -0
  865. package/build/sticky/Sticky.js +24 -0
  866. package/build/sticky/Sticky.js.map +1 -0
  867. package/build/sticky/Sticky.mjs +22 -0
  868. package/build/sticky/Sticky.mjs.map +1 -0
  869. package/build/summary/Summary.js +119 -0
  870. package/build/summary/Summary.js.map +1 -0
  871. package/build/summary/Summary.messages.js +18 -0
  872. package/build/summary/Summary.messages.js.map +1 -0
  873. package/build/summary/Summary.messages.mjs +16 -0
  874. package/build/summary/Summary.messages.mjs.map +1 -0
  875. package/build/summary/Summary.mjs +113 -0
  876. package/build/summary/Summary.mjs.map +1 -0
  877. package/build/switch/Switch.js +82 -0
  878. package/build/switch/Switch.js.map +1 -0
  879. package/build/switch/Switch.mjs +76 -0
  880. package/build/switch/Switch.mjs.map +1 -0
  881. package/build/switchOption/SwitchOption.js +59 -0
  882. package/build/switchOption/SwitchOption.js.map +1 -0
  883. package/build/switchOption/SwitchOption.mjs +57 -0
  884. package/build/switchOption/SwitchOption.mjs.map +1 -0
  885. package/build/tabs/Tab.js +81 -0
  886. package/build/tabs/Tab.js.map +1 -0
  887. package/build/tabs/Tab.mjs +74 -0
  888. package/build/tabs/Tab.mjs.map +1 -0
  889. package/build/tabs/TabList.js +24 -0
  890. package/build/tabs/TabList.js.map +1 -0
  891. package/build/tabs/TabList.mjs +18 -0
  892. package/build/tabs/TabList.mjs.map +1 -0
  893. package/build/tabs/TabPanel.js +35 -0
  894. package/build/tabs/TabPanel.js.map +1 -0
  895. package/build/tabs/TabPanel.mjs +29 -0
  896. package/build/tabs/TabPanel.mjs.map +1 -0
  897. package/build/tabs/Tabs.js +541 -0
  898. package/build/tabs/Tabs.js.map +1 -0
  899. package/build/tabs/Tabs.mjs +533 -0
  900. package/build/tabs/Tabs.mjs.map +1 -0
  901. package/build/tabs/utils.js +50 -0
  902. package/build/tabs/utils.js.map +1 -0
  903. package/build/tabs/utils.mjs +42 -0
  904. package/build/tabs/utils.mjs.map +1 -0
  905. package/build/textareaWithDisplayFormat/TextareaWithDisplayFormat.js +15 -0
  906. package/build/textareaWithDisplayFormat/TextareaWithDisplayFormat.js.map +1 -0
  907. package/build/textareaWithDisplayFormat/TextareaWithDisplayFormat.mjs +13 -0
  908. package/build/textareaWithDisplayFormat/TextareaWithDisplayFormat.mjs.map +1 -0
  909. package/build/tile/Tile.js +58 -0
  910. package/build/tile/Tile.js.map +1 -0
  911. package/build/tile/Tile.mjs +52 -0
  912. package/build/tile/Tile.mjs.map +1 -0
  913. package/build/title/Title.js +42 -0
  914. package/build/title/Title.js.map +1 -0
  915. package/build/title/Title.mjs +36 -0
  916. package/build/title/Title.mjs.map +1 -0
  917. package/build/tooltip/Tooltip.js +103 -0
  918. package/build/tooltip/Tooltip.js.map +1 -0
  919. package/build/tooltip/Tooltip.mjs +97 -0
  920. package/build/tooltip/Tooltip.mjs.map +1 -0
  921. package/build/typeahead/Typeahead.js +468 -0
  922. package/build/typeahead/Typeahead.js.map +1 -0
  923. package/build/typeahead/Typeahead.mjs +460 -0
  924. package/build/typeahead/Typeahead.mjs.map +1 -0
  925. package/build/typeahead/typeaheadInput/TypeaheadInput.js +120 -0
  926. package/build/typeahead/typeaheadInput/TypeaheadInput.js.map +1 -0
  927. package/build/typeahead/typeaheadInput/TypeaheadInput.mjs +114 -0
  928. package/build/typeahead/typeaheadInput/TypeaheadInput.mjs.map +1 -0
  929. package/build/typeahead/typeaheadOption/TypeaheadOption.js +49 -0
  930. package/build/typeahead/typeaheadOption/TypeaheadOption.js.map +1 -0
  931. package/build/typeahead/typeaheadOption/TypeaheadOption.mjs +43 -0
  932. package/build/typeahead/typeaheadOption/TypeaheadOption.mjs.map +1 -0
  933. package/build/typeahead/util/highlight.js +21 -0
  934. package/build/typeahead/util/highlight.js.map +1 -0
  935. package/build/typeahead/util/highlight.mjs +19 -0
  936. package/build/typeahead/util/highlight.mjs.map +1 -0
  937. package/build/types/inputs/InputGroup.d.ts.map +1 -1
  938. package/build/upload/Upload.js +366 -0
  939. package/build/upload/Upload.js.map +1 -0
  940. package/build/upload/Upload.messages.js +39 -0
  941. package/build/upload/Upload.messages.js.map +1 -0
  942. package/build/upload/Upload.messages.mjs +37 -0
  943. package/build/upload/Upload.messages.mjs.map +1 -0
  944. package/build/upload/Upload.mjs +356 -0
  945. package/build/upload/Upload.mjs.map +1 -0
  946. package/build/upload/steps/completeStep/completeStep.js +65 -0
  947. package/build/upload/steps/completeStep/completeStep.js.map +1 -0
  948. package/build/upload/steps/completeStep/completeStep.mjs +63 -0
  949. package/build/upload/steps/completeStep/completeStep.mjs.map +1 -0
  950. package/build/upload/steps/processingStep/processingStep.js +50 -0
  951. package/build/upload/steps/processingStep/processingStep.js.map +1 -0
  952. package/build/upload/steps/processingStep/processingStep.mjs +48 -0
  953. package/build/upload/steps/processingStep/processingStep.mjs.map +1 -0
  954. package/build/upload/steps/uploadImageStep/uploadImageStep.js +88 -0
  955. package/build/upload/steps/uploadImageStep/uploadImageStep.js.map +1 -0
  956. package/build/upload/steps/uploadImageStep/uploadImageStep.mjs +86 -0
  957. package/build/upload/steps/uploadImageStep/uploadImageStep.mjs.map +1 -0
  958. package/build/upload/utils/asyncFileRead/asyncFileRead.js +17 -0
  959. package/build/upload/utils/asyncFileRead/asyncFileRead.js.map +1 -0
  960. package/build/upload/utils/asyncFileRead/asyncFileRead.mjs +15 -0
  961. package/build/upload/utils/asyncFileRead/asyncFileRead.mjs.map +1 -0
  962. package/build/upload/utils/getFileType/getFileType.js +18 -0
  963. package/build/upload/utils/getFileType/getFileType.js.map +1 -0
  964. package/build/upload/utils/getFileType/getFileType.mjs +16 -0
  965. package/build/upload/utils/getFileType/getFileType.mjs.map +1 -0
  966. package/build/upload/utils/isSizeValid/isSizeValid.js +8 -0
  967. package/build/upload/utils/isSizeValid/isSizeValid.js.map +1 -0
  968. package/build/upload/utils/isSizeValid/isSizeValid.mjs +6 -0
  969. package/build/upload/utils/isSizeValid/isSizeValid.mjs.map +1 -0
  970. package/build/upload/utils/isTypeValid/isTypeValid.js +21 -0
  971. package/build/upload/utils/isTypeValid/isTypeValid.js.map +1 -0
  972. package/build/upload/utils/isTypeValid/isTypeValid.mjs +19 -0
  973. package/build/upload/utils/isTypeValid/isTypeValid.mjs.map +1 -0
  974. package/build/upload/utils/postData/postData.js +31 -0
  975. package/build/upload/utils/postData/postData.js.map +1 -0
  976. package/build/upload/utils/postData/postData.mjs +28 -0
  977. package/build/upload/utils/postData/postData.mjs.map +1 -0
  978. package/build/uploadInput/UploadInput.js +259 -0
  979. package/build/uploadInput/UploadInput.js.map +1 -0
  980. package/build/uploadInput/UploadInput.messages.js +30 -0
  981. package/build/uploadInput/UploadInput.messages.js.map +1 -0
  982. package/build/uploadInput/UploadInput.messages.mjs +28 -0
  983. package/build/uploadInput/UploadInput.messages.mjs.map +1 -0
  984. package/build/uploadInput/UploadInput.mjs +253 -0
  985. package/build/uploadInput/UploadInput.mjs.map +1 -0
  986. package/build/uploadInput/uploadButton/UploadButton.js +186 -0
  987. package/build/uploadInput/uploadButton/UploadButton.js.map +1 -0
  988. package/build/uploadInput/uploadButton/UploadButton.messages.js +24 -0
  989. package/build/uploadInput/uploadButton/UploadButton.messages.js.map +1 -0
  990. package/build/uploadInput/uploadButton/UploadButton.messages.mjs +22 -0
  991. package/build/uploadInput/uploadButton/UploadButton.messages.mjs.map +1 -0
  992. package/build/uploadInput/uploadButton/UploadButton.mjs +178 -0
  993. package/build/uploadInput/uploadButton/UploadButton.mjs.map +1 -0
  994. package/build/uploadInput/uploadButton/defaults.js +10 -0
  995. package/build/uploadInput/uploadButton/defaults.js.map +1 -0
  996. package/build/uploadInput/uploadButton/defaults.mjs +7 -0
  997. package/build/uploadInput/uploadButton/defaults.mjs.map +1 -0
  998. package/build/uploadInput/uploadButton/getAllowedFileTypes.js +8 -0
  999. package/build/uploadInput/uploadButton/getAllowedFileTypes.js.map +1 -0
  1000. package/build/uploadInput/uploadButton/getAllowedFileTypes.mjs +6 -0
  1001. package/build/uploadInput/uploadButton/getAllowedFileTypes.mjs.map +1 -0
  1002. package/build/uploadInput/uploadItem/UploadItem.js +174 -0
  1003. package/build/uploadInput/uploadItem/UploadItem.js.map +1 -0
  1004. package/build/uploadInput/uploadItem/UploadItem.messages.js +27 -0
  1005. package/build/uploadInput/uploadItem/UploadItem.messages.js.map +1 -0
  1006. package/build/uploadInput/uploadItem/UploadItem.messages.mjs +25 -0
  1007. package/build/uploadInput/uploadItem/UploadItem.messages.mjs.map +1 -0
  1008. package/build/uploadInput/uploadItem/UploadItem.mjs +166 -0
  1009. package/build/uploadInput/uploadItem/UploadItem.mjs.map +1 -0
  1010. package/build/uploadInput/uploadItem/UploadItemBody.js +27 -0
  1011. package/build/uploadInput/uploadItem/UploadItemBody.js.map +1 -0
  1012. package/build/uploadInput/uploadItem/UploadItemBody.mjs +25 -0
  1013. package/build/uploadInput/uploadItem/UploadItemBody.mjs.map +1 -0
  1014. package/build/utilities/cssValueWithUnit.js +8 -0
  1015. package/build/utilities/cssValueWithUnit.js.map +1 -0
  1016. package/build/utilities/cssValueWithUnit.mjs +6 -0
  1017. package/build/utilities/cssValueWithUnit.mjs.map +1 -0
  1018. package/build/utilities/logActionRequired.js +17 -0
  1019. package/build/utilities/logActionRequired.js.map +1 -0
  1020. package/build/utilities/logActionRequired.mjs +14 -0
  1021. package/build/utilities/logActionRequired.mjs.map +1 -0
  1022. package/build/withDisplayFormat/WithDisplayFormat.js +304 -0
  1023. package/build/withDisplayFormat/WithDisplayFormat.js.map +1 -0
  1024. package/build/withDisplayFormat/WithDisplayFormat.mjs +282 -0
  1025. package/build/withDisplayFormat/WithDisplayFormat.mjs.map +1 -0
  1026. package/build/withNextPortal/withNextPortal.js +20 -0
  1027. package/build/withNextPortal/withNextPortal.js.map +1 -0
  1028. package/build/withNextPortal/withNextPortal.mjs +18 -0
  1029. package/build/withNextPortal/withNextPortal.mjs.map +1 -0
  1030. package/package.json +4 -3
  1031. package/src/common/hooks/useVirtualKeyboard.ts +1 -1
  1032. package/src/inputs/InputGroup.spec.tsx +6 -1
  1033. package/src/inputs/InputGroup.tsx +39 -45
  1034. package/src/inputs/SearchInput.spec.tsx +1 -1
  1035. package/src/inputs/SelectInput.spec.tsx +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/common/propsValues/typography.ts","../src/body/Body.tsx","../src/common/historyNavigator/historyNavigator.ts","../src/common/deviceDetection/deviceDetection.ts","../src/common/domHelpers/documentIosClick.ts","../src/common/DOMOperations/DOMOperations.ts","../src/common/theme.ts","../src/common/direction.ts","../src/common/propsValues/control.ts","../src/common/propsValues/breakpoint.ts","../src/common/propsValues/size.ts","../src/common/propsValues/width.ts","../src/common/propsValues/type.ts","../src/common/propsValues/dateMode.ts","../src/common/propsValues/monthFormat.ts","../src/common/propsValues/position.ts","../src/common/propsValues/layouts.ts","../src/common/propsValues/status.ts","../src/common/propsValues/sentiment.ts","../src/common/propsValues/profileType.ts","../src/common/propsValues/variant.ts","../src/common/propsValues/scroll.ts","../src/common/propsValues/markdownNodeType.ts","../src/common/fileType.ts","../src/common/locale/index.ts","../src/chevron/Chevron.tsx","../src/common/Option/Option.tsx","../src/accordion/AccordionItem/AccordionItem.tsx","../src/accordion/Accordion.tsx","../src/actionButton/ActionButton.tsx","../src/actionOption/ActionOption.tsx","../src/common/closeButton/CloseButton.messages.ts","../src/common/closeButton/CloseButton.tsx","../src/statusIcon/StatusIcon.tsx","../src/title/Title.tsx","../src/utilities/logActionRequired.js","../src/markdown/Markdown.tsx","../src/alert/inlineMarkdown/InlineMarkdown.tsx","../src/link/Link.messages.ts","../src/link/Link.tsx","../src/common/action/Action.tsx","../src/alert/Alert.tsx","../src/avatar/avatarTypes.ts","../src/avatar/colors/colors.ts","../src/avatar/Avatar.tsx","../src/badge/Badge.tsx","../src/avatarWrapper/AvatarWrapper.tsx","../src/processIndicator/ProcessIndicator.tsx","../src/button/Button.messages.js","../src/button/classMap.js","../src/button/legacyUtils/legacyUtils.js","../src/button/Button.tsx","../src/common/card/Card.tsx","../src/display/Display.tsx","../src/common/hooks/useConditionalListener/useConditionalListener.ts","../src/provider/direction/DirectionProvider.tsx","../src/common/hooks/useDirection/useDirection.ts","../src/common/hooks/useHasIntersected/useHasIntersected.js","../src/common/hooks/useMedia.ts","../src/common/hooks/useScreenSize.ts","../src/common/hooks/useLayout/useLayout.ts","../src/image/Image.tsx","../src/promoCard/PromoCardContext.tsx","../src/promoCard/PromoCardIndicator.tsx","../src/promoCard/PromoCard.tsx","../src/carousel/Carousel.tsx","../src/card/Card.tsx","../src/inputs/contexts.tsx","../src/checkboxButton/CheckboxButton.tsx","../src/checkbox/Checkbox.tsx","../src/checkboxOption/CheckboxOption.tsx","../src/chips/Chip.tsx","../src/chips/Chips.messages.ts","../src/chips/Chips.tsx","../src/circularButton/CircularButton.tsx","../src/common/focusBoundary/FocusBoundary.tsx","../src/withNextPortal/withNextPortal.tsx","../src/dimmer/dimmerManager/DimmerManager.ts","../src/dimmer/Dimmer.tsx","../src/slidingPanel/SlidingPanel.tsx","../src/drawer/Drawer.tsx","../src/common/bottomSheet/BottomSheet.tsx","../src/criticalBanner/CriticalCommsBanner.tsx","../src/common/dateUtils/getDayNames/getDayNames.ts","../src/common/dateUtils/moveToWithinRange/moveToWithinRange.ts","../src/common/dateUtils/isWithinRange/isWithinRange.ts","../src/common/dateUtils/getMonthNames/getMonthNames.ts","../src/common/dateUtils/isDateValid/isDateValid.ts","../src/common/dateUtils/isMonthAndYearFormat/isMonthAndYearFormat.ts","../src/common/dateUtils/getFormatForLocale/getFormatForLocale.ts","../src/dateInput/DateInput.messages.ts","../src/dateInput/utils/convertToLocalMidnight/convertToLocalMidnight.ts","../src/dateInput/DateInput.tsx","../src/common/panel/Panel.tsx","../src/common/responsivePanel/ResponsivePanel.tsx","../src/dateLookup/dateTrigger/DateTrigger.messages.ts","../src/dateLookup/dateTrigger/DateTrigger.tsx","../src/dateLookup/DateLookup.messages.ts","../src/dateLookup/dateHeader/DateHeader.tsx","../src/dateLookup/getFocusableTime/getFocusableTime.tsx","../src/dateLookup/getStartOfDay/getStartOfDay.tsx","../src/dateLookup/tableLink/TableLink.tsx","../src/dateLookup/dayCalendar/table/DayCalendarTable.tsx","../src/dateLookup/dayCalendar/DayCalendar.tsx","../src/dateLookup/monthCalendar/table/MonthCalendarTable.tsx","../src/dateLookup/monthCalendar/MonthCalendar.tsx","../src/dateLookup/yearCalendar/table/YearCalendarTable.tsx","../src/dateLookup/yearCalendar/YearCalendar.tsx","../src/dateLookup/DateLookup.tsx","../src/navigationOption/NavigationOption.tsx","../src/tile/Tile.tsx","../src/decision/Decision.tsx","../src/definitionList/DefinitionList.tsx","../src/dropFade/DropFade.tsx","../src/emphasis/EmphasisHtmlTransformer.ts","../src/emphasis/Emphasis.tsx","../src/inlineAlert/InlineAlert.tsx","../src/label/Label.tsx","../src/field/Field.tsx","../src/common/flowHeader/FlowHeader.tsx","../src/logo/Logo.tsx","../src/tooltip/Tooltip.tsx","../src/stepper/deviceDetection.js","../src/stepper/Stepper.tsx","../src/flowNavigation/FlowNavigation.messages.ts","../src/flowNavigation/animatedLabel/AnimatedLabel.tsx","../src/flowNavigation/backButton/BackButton.tsx","../src/flowNavigation/FlowNavigation.tsx","../src/header/Header.tsx","../src/info/infoPresentations.ts","../src/modal/Modal.tsx","../src/popover/Popover.tsx","../src/info/Info.messages.ts","../src/info/Info.tsx","../src/inputs/_common.ts","../src/common/hooks/useEffectEvent.ts","../src/common/hooks/useResizeObserver.ts","../src/utilities/cssValueWithUnit.ts","../src/inputs/InputGroup.tsx","../src/inputs/Input.tsx","../src/common/textFormat/getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition.ts","../src/common/textFormat/formatWithPattern/formatWithPattern.ts","../src/common/textFormat/unformatWithPattern/unformatWithPattern.ts","../src/common/textFormat/getCountOfSymbolsInSelection/getCountOfSymbolsInSelection.ts","../src/common/textFormat/getDistanceToSymbol/getDistanceToSymbol.ts","../src/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.ts","../src/withDisplayFormat/WithDisplayFormat.tsx","../src/inputWithDisplayFormat/InputWithDisplayFormat.tsx","../src/inputs/SearchInput.tsx","../src/common/polymorphicWithOverrides/PolymorphicWithOverrides.tsx","../src/common/hooks/useVirtualKeyboard.ts","../src/common/preventScroll/PreventScroll.tsx","../src/inputs/_BottomSheet.tsx","../src/inputs/_ButtonInput.tsx","../src/inputs/_Popover.tsx","../src/inputs/SelectInput.messages.ts","../src/inputs/SelectInput.tsx","../src/inputs/TextArea.tsx","../src/instructionsList/InstructionsList.tsx","../src/listItem/ListItem.tsx","../src/loader/Loader.tsx","../src/money/Money.tsx","../src/moneyInput/MoneyInput.messages.ts","../src/moneyInput/currencyFormatting.ts","../src/moneyInput/MoneyInput.tsx","../src/navigationOptionsList/NavigationOptionsList.tsx","../src/nudge/Nudge.tsx","../src/overlayHeader/OverlayHeader.tsx","../src/phoneNumberInput/PhoneNumberInput.messages.ts","../src/phoneNumberInput/data/countries.ts","../src/phoneNumberInput/utils/longestMatchingPrefix/index.ts","../src/phoneNumberInput/utils/findCountryByCode/index.ts","../src/phoneNumberInput/utils/setDefaultPrefix/index.ts","../src/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.ts","../src/phoneNumberInput/utils/findCountryByPrefix/index.ts","../src/phoneNumberInput/utils/explodeNumberModel/index.ts","../src/phoneNumberInput/utils/cleanNumber/cleanNumber.ts","../src/phoneNumberInput/utils/sortArrayByProperty/sortArrayByProperty.ts","../src/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.ts","../src/phoneNumberInput/utils/excludeCountries/excludeCountries.ts","../src/phoneNumberInput/PhoneNumberInput.tsx","../src/progress/Progress.tsx","../src/progressBar/ProgressBar.tsx","../src/promoCard/PromoCardGroup.tsx","../src/provider/language/LanguageProvider.tsx","../src/provider/Provider.tsx","../src/common/RadioButton/RadioButton.tsx","../src/radio/Radio.tsx","../src/radioGroup/RadioGroup.tsx","../src/radioOption/RadioOption.tsx","../src/section/Section.tsx","../src/segmentedControl/SegmentedControl.tsx","../src/select/Select.messages.ts","../src/select/option/Option.tsx","../src/select/searchBox/SearchBox.tsx","../src/select/Select.js","../src/snackbar/Snackbar.tsx","../src/snackbar/SnackbarContext.ts","../src/snackbar/SnackbarProvider.tsx","../src/sticky/Sticky.tsx","../src/summary/Summary.messages.ts","../src/summary/Summary.tsx","../src/switch/Switch.tsx","../src/switchOption/SwitchOption.tsx","../src/tabs/Tab.js","../src/tabs/TabList.js","../src/tabs/TabPanel.js","../src/tabs/utils.js","../src/tabs/Tabs.js","../src/textareaWithDisplayFormat/TextareaWithDisplayFormat.tsx","../src/typeahead/typeaheadInput/TypeaheadInput.tsx","../src/typeahead/util/highlight.tsx","../src/typeahead/typeaheadOption/TypeaheadOption.tsx","../src/typeahead/Typeahead.tsx","../src/upload/Upload.messages.ts","../src/upload/steps/uploadImageStep/uploadImageStep.tsx","../src/upload/steps/processingStep/processingStep.tsx","../src/upload/steps/completeStep/completeStep.tsx","../src/upload/utils/postData/postData.ts","../src/upload/utils/asyncFileRead/asyncFileRead.ts","../src/upload/utils/isSizeValid/isSizeValid.ts","../src/upload/utils/getFileType/getFileType.ts","../src/upload/utils/isTypeValid/isTypeValid.ts","../src/upload/Upload.tsx","../src/uploadInput/UploadInput.messages.ts","../src/uploadInput/uploadButton/UploadButton.messages.ts","../src/uploadInput/uploadButton/defaults.ts","../src/uploadInput/uploadButton/getAllowedFileTypes.ts","../src/uploadInput/uploadButton/UploadButton.tsx","../src/uploadInput/uploadItem/UploadItem.messages.ts","../src/uploadInput/uploadItem/UploadItemBody.tsx","../src/uploadInput/uploadItem/UploadItem.tsx","../src/uploadInput/UploadInput.tsx","../src/snackbar/useSnackbar.ts","../src/i18n/index.ts"],"sourcesContent":["export enum Typography {\n /**\n * @deprecated use Marketing titles or {@link Typography.DISPLAY_LARGE} instead\n */\n DISPLAY_EXTRA_LARGE = 'display-extra-large',\n DISPLAY_LARGE = 'display-large',\n DISPLAY_MEDIUM = 'display-medium',\n DISPLAY_SMALL = 'display-small',\n DISPLAY_NUMBER = 'display-number',\n\n TITLE_SCREEN = 'title-screen',\n TITLE_SECTION = 'title-section',\n TITLE_SUBSECTION = 'title-subsection',\n TITLE_BODY = 'title-body',\n TITLE_GROUP = 'title-group',\n\n BODY_LARGE = 'body-large',\n BODY_DEFAULT = 'body-default',\n BODY_DEFAULT_BOLD = 'body-default-bold',\n BODY_LARGE_BOLD = 'body-large-bold',\n\n LINK_LARGE = 'link-large',\n LINK_DEFAULT = 'link-default',\n}\n\n/**\n * @deprecated use {@link Typography.DISPLAY_LARGE} instead\n */\nexport type DisplayExtraLarge = 'display-extra-large';\nexport type DisplayLarge = 'display-large';\nexport type DisplayMedium = 'display-medium';\nexport type DisplaySmall = 'display-small';\nexport type DisplayNumber = 'display-number';\n\nexport type DisplayTypes =\n | DisplayExtraLarge\n | DisplayLarge\n | DisplayMedium\n | DisplaySmall\n | DisplayNumber;\n\nexport type TitleScreen = 'title-screen';\nexport type TitleSection = 'title-section';\nexport type TitleSubsection = 'title-subsection';\nexport type TitleBody = 'title-body';\nexport type TitleGroup = 'title-group';\n\nexport type TitleTypes = TitleScreen | TitleSection | TitleSubsection | TitleBody | TitleGroup;\n\nexport type BodyDefault = 'body-default';\nexport type BodyLargeBold = 'body-large-bold';\nexport type BodyDefaultBold = 'body-default-bold';\nexport type BodyLarge = 'body-large';\n\nexport type BodyTypes = BodyLargeBold | BodyDefault | BodyLarge | BodyDefaultBold;\n\nexport type LinkDefault = 'link-default';\nexport type LinkLarge = 'link-large';\n\nexport type LinkTypes = LinkDefault | LinkLarge;\n\nexport type TypographyTypes =\n | TitleScreen\n | TitleSection\n | TitleSubsection\n | TitleBody\n | TitleGroup\n | BodyDefault\n | BodyLargeBold\n | BodyDefaultBold\n | BodyLarge\n | LinkDefault\n | LinkLarge;\n","import classNames from 'classnames';\nimport { forwardRef, HTMLAttributes } from 'react';\n\nimport { Typography, BodyTypes } from '../common/propsValues/typography';\n\nconst DEFAULT_TYPE = Typography.BODY_DEFAULT;\n\nconst bodyTypes = new Set<BodyTypes>([\n Typography.BODY_DEFAULT,\n Typography.BODY_DEFAULT_BOLD,\n Typography.BODY_LARGE,\n Typography.BODY_LARGE_BOLD,\n]);\n\ntype Props = HTMLAttributes<HTMLSpanElement | HTMLParagraphElement> & {\n /**\n * Default value: {@link DEFAULT_TYPE}\n */\n type?: BodyTypes;\n /**\n * Default value: `div`\n */\n as?: 'span' | 'p' | 'div';\n};\n\nconst Body = forwardRef(function Body(\n { as: Element = 'div', type = DEFAULT_TYPE, className, ...props }: Props,\n reference: React.ForwardedRef<\n | {\n [key in typeof Element]: React.ElementRef<key>;\n }[typeof Element]\n | null\n >,\n) {\n const isTypeSupported = bodyTypes.has(type);\n return (\n <Element\n {...props}\n // @ts-expect-error TODO: Remove when component could be rewritten with generics\n // See: https://fettblog.eu/typescript-react-generic-forward-refs/\n ref={reference}\n className={classNames(`np-text-${isTypeSupported ? type : DEFAULT_TYPE}`, className)}\n />\n );\n});\n\nexport default Body;\n","class HistoryNavigator {\n history: (string | number)[];\n currIndex: number;\n historyLimit: number | undefined;\n\n constructor(history?: (string | number)[], historyLimit?: number) {\n this.history = history && history.length > 0 ? history : [''];\n this.currIndex = this.history.length - 1;\n this.historyLimit = historyLimit;\n }\n\n reset = (newHistory?: (string | number)[], historyLimit = 20) => {\n this.history = newHistory && newHistory.length > 0 ? newHistory : [''];\n this.currIndex = this.history.length - 1;\n this.historyLimit = historyLimit;\n };\n\n add = (element: string | number) => {\n if (!this.historyLimit || this.history.length <= this.historyLimit) {\n this.history.push(element);\n // Always keep the current Index to the latest change\n this.currIndex = this.history.length - 1;\n } else {\n // @TODO not needed now but maybe it can be useful to implement a limit.\n this.currIndex = this.history.length - 1;\n }\n };\n\n redo = () => {\n const historyLength = this.history.length;\n this.currIndex = this.currIndex + 1 < historyLength ? this.currIndex + 1 : historyLength - 1;\n return this.history[this.currIndex];\n };\n\n undo = () => {\n this.currIndex = this.currIndex - 1 > 0 ? this.currIndex - 1 : 0;\n return this.history[this.currIndex];\n };\n}\n\nexport default HistoryNavigator;\n","export function isIosDevice() {\n const sampleTouchDevices = ['iphone', 'ipad', 'ipod'];\n const matchString = sampleTouchDevices.map((device: string) => `(${device})`).join('|');\n const regex = new RegExp(matchString, 'gi');\n\n return typeof navigator !== 'undefined' && !!regex.test(navigator.userAgent);\n}\n","import { SyntheticEvent } from 'react';\n\nimport { isIosDevice } from '../deviceDetection';\n\n/*\n This is a hack to make ios devices register `click` on document.\n\tIos document doesn't have `click`. It has `touch` and because of that we can't addEventListener('click') to document.\n\tSo we add `ios-click` class to html root element and in css we add {cursor: pointer} so ios devices know that document is clickable element.\n*/\n\nexport function addClickClassToDocumentOnIos() {\n if (isIosDevice()) {\n document.documentElement.classList.add('ios-click');\n }\n}\n\nexport function removeClickClassFromDocumentOnIos() {\n if (isIosDevice()) {\n document.documentElement.classList.remove('ios-click');\n }\n}\n\nexport function isServerSide(): boolean {\n return typeof window === 'undefined';\n}\n\nexport function isBrowser(): boolean {\n return !isServerSide();\n}\n\nexport function stopPropagation(event: SyntheticEvent) {\n event.stopPropagation();\n event.preventDefault();\n if (event.nativeEvent && event.nativeEvent.stopImmediatePropagation) {\n event.nativeEvent.stopImmediatePropagation();\n }\n}\n","/**\n * Defined in `Dimmer.less`\n */\nconst NO_SCROLL_CLASS = 'no-scroll';\n\n/**\n * Apply {@link NO_SCROLL_CLASS} that disables scroll on page (e.g use in Dimmer to disable scroll behind the component)\n *\n * CSS class needs to be applied for `html` and not `body`, as this doing both will break any position sticky in the document.\n */\nexport const addNoScrollClass = () => {\n document.documentElement.classList.add(NO_SCROLL_CLASS);\n};\n\n/**\n * Clean up after {@link addNoScrollClass} function\n */\nexport const removeNoScrollClass = () => {\n document.documentElement.classList.remove(NO_SCROLL_CLASS);\n};\n","export enum Theme {\n LIGHT = 'light',\n DARK = 'dark',\n NAVY = 'navy',\n PERSONAL = 'personal',\n PERSONAL_FOREST_GREEN = 'personal--forest-green',\n PERSONAL_BRIGHT_GREEN = 'personal--bright-green',\n PERSONAL_DARK = 'personal--dark',\n}\n\nexport type ThemeLight = 'light';\nexport type ThemeDark = 'dark';\nexport type ThemeNavy = 'navy';\nexport type ThemePersonal = 'personal';\nexport type ThemePersonalForestGreen = 'personal--forest-green';\nexport type ThemePersonalBrightGreen = 'personal--bright-green';\nexport type ThemePersonalDark = 'personal--dark';\n\nexport type ThemeType =\n | ThemeLight\n | ThemeDark\n | ThemeNavy\n | ThemePersonal\n | ThemePersonalForestGreen\n | ThemePersonalBrightGreen\n | ThemePersonalDark;\n\nexport const modernThemes = new Set<ThemeType>([\n 'personal',\n 'personal--forest-green',\n 'personal--bright-green',\n 'personal--dark',\n]);\n\nexport const getThemeClassName = (theme: ThemeType) => `np-theme-${theme}`;\n","export enum Direction {\n RTL = 'rtl',\n LTR = 'ltr',\n AUTO = 'auto',\n}\n\nexport type LayoutDirection = 'rtl' | 'ltr' | 'auto';\n","export enum ControlType {\n ACCENT = 'accent',\n POSITIVE = 'positive',\n NEGATIVE = 'negative',\n}\n\nexport type ControlTypeAccent = 'accent';\nexport type ControlTypePositive = 'positive';\nexport type ControlTypeNegative = 'negative';\n\nexport enum Priority {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n TERTIARY = 'tertiary',\n}\n\nexport type PriorityPrimary = 'primary';\nexport type PrioritySecondary = 'secondary';\nexport type PriorityTertiary = 'tertiary';\n","export enum Breakpoint {\n ZOOM_400 = 320,\n EXTRA_SMALL = 480,\n SMALL = 576,\n MEDIUM = 768,\n LARGE = 992,\n EXTRA_LARGE = 1200,\n}\n","export enum Size {\n EXTRA_SMALL = 'xs',\n SMALL = 'sm',\n MEDIUM = 'md',\n LARGE = 'lg',\n EXTRA_LARGE = 'xl',\n}\n\nexport type SizeExtraSmall = 'xs';\nexport type SizeSmall = 'sm';\nexport type SizeMedium = 'md';\nexport type SizeLarge = 'lg';\nexport type SizeExtraLarge = 'xl';\n","export enum Width {\n BLOCK = 'block',\n AUTO = 'auto',\n}\n","/**\n * @deprecated use `ControlType` and `Priority` enums instead\n */\nexport enum Type {\n PRIMARY = 'primary',\n\n /**\n * @deprecated use\n */\n PAY = 'pay',\n SECONDARY = 'secondary',\n DANGER = 'danger',\n LINK = 'link',\n}\n","export enum DateMode {\n DAY_MONTH_YEAR = 'day-month-year',\n MONTH_YEAR = 'month-year',\n}\n","export enum MonthFormat {\n SHORT = 'short',\n LONG = 'long',\n}\n","export enum Position {\n BOTTOM = 'bottom',\n BOTTOM_LEFT = 'bottom-left',\n BOTTOM_RIGHT = 'bottom-right',\n CENTER = 'center',\n LEFT = 'left',\n LEFT_TOP = 'left-top',\n RIGHT = 'right',\n RIGHT_TOP = 'right-top',\n TOP = 'top',\n}\n\nexport type PositionCenter = 'center';\nexport type PositionTop = 'top';\nexport type PositionRight = 'right';\nexport type PositionBottom = 'bottom';\nexport type PositionLeft = 'left';\n","export enum Layout {\n VERTICAL = 'VERTICAL',\n VERTICAL_TWO_COLUMN = 'VERTICAL_TWO_COLUMN',\n VERTICAL_ONE_COLUMN = 'VERTICAL_ONE_COLUMN',\n HORIZONTAL = 'HORIZONTAL',\n HORIZONTAL_JUSTIFIED = 'HORIZONTAL_JUSTIFIED',\n HORIZONTAL_LEFT_ALIGNED = 'HORIZONTAL_LEFT_ALIGNED',\n HORIZONTAL_RIGHT_ALIGNED = 'HORIZONTAL_RIGHT_ALIGNED',\n}\n","export enum Status {\n PROCESSING = 'processing',\n FAILED = 'failed',\n SUCCEEDED = 'succeeded',\n HIDDEN = 'hidden',\n DONE = 'done',\n NOT_DONE = 'notDone',\n PENDING = 'pending',\n}\n\nexport type StatusProcessing = 'processing';\nexport type StatusFailed = 'failed';\nexport type StatusSucceeded = 'succeeded';\nexport type StatusHidden = 'hidden';\nexport type StatusDone = 'done';\nexport type StatusNotDone = 'notDone';\nexport type StatusPending = 'pending';\n","export enum Sentiment {\n NEGATIVE = 'negative',\n NEUTRAL = 'neutral',\n POSITIVE = 'positive',\n WARNING = 'warning',\n PENDING = 'pending',\n\n /**\n * @deprecated\n */\n INFO = 'info',\n /**\n * @deprecated\n */\n ERROR = 'error',\n /**\n * @deprecated\n */\n SUCCESS = 'success',\n}\n","export enum ProfileType {\n BUSINESS = 'BUSINESS',\n PERSONAL = 'PERSONAL',\n}\n\nexport type ProfileTypeBusiness = 'BUSINESS';\nexport type ProfileTypePersonal = 'PERSONAL';\n","export enum Variant {\n DESKTOP = 'desktop',\n MOBILE = 'mobile',\n}\n","export enum Scroll {\n CONTENT = 'content',\n VIEWPORT = 'viewport',\n}\n\nexport type ScrollContent = 'content';\nexport type ScrollViewport = 'viewport';\n","export enum MarkdownNodeType {\n BLOCK_QUOTE = 'block_quote',\n CODE_BLOCK = 'code_block',\n CODE = 'code',\n EMPH = 'emph',\n HEADING = 'heading',\n HTML_BLOCK = 'html_block',\n HTML_INLINE = 'html_inline',\n IMAGE = 'image',\n ITEM = 'item',\n LINEBREAK = 'linebreak',\n LINK = 'link',\n LIST = 'list',\n PARAGRAPH = 'paragraph',\n SOFTBREAK = 'softbreak',\n STRONG = 'strong',\n THEMATIC_BREAK = 'thematic_break',\n}\n","export enum FileType {\n PDF = '.pdf,application/pdf',\n JPG = '.jpg,.jpeg,image/jpeg',\n PNG = '.png,image/png',\n CSV = '.csv,text/csv',\n}\n","import { Direction } from '..';\n\nexport const DEFAULT_LANG = 'en';\nexport const DEFAULT_LOCALE = 'en-GB';\n\n/**\n * Languages written right-to-left.\n */\nexport const RTL_LANGUAGES = ['ar', 'he'];\n\n/**\n * @deprecated The source of truth for supported languages lives in Crab.\n */\nexport const SUPPORTED_LANGUAGES = [\n DEFAULT_LANG,\n 'de',\n 'es',\n 'fr',\n 'hu',\n 'id',\n 'it',\n 'ja',\n 'pl',\n 'pt',\n 'ro',\n 'ru',\n 'th',\n 'tr',\n 'uk',\n 'zh',\n];\n\n/**\n * Verifies and adjusts locale, replacing `_` with `-`.\n *\n * @param locale `es`, `es_ES`, `en-GB`, `en`, `ja`, `ja-JP`, etc.\n * @returns `null` if locale is unrecognized by `Intl.Locale`.\n */\nexport function adjustLocale(locale: string) {\n const localeTrimmed = locale?.trim();\n if (localeTrimmed) {\n try {\n return new Intl.Locale(localeTrimmed.replace('_', '-')).baseName;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n }\n return null;\n}\n\n/**\n * Provides corresponding lang (iso2) for provided locale.\n *\n * @deprecated The use of this function almost always breaks language variants\n * e.g. Simplified and Traditional Chinese.\n * There should be no use case for this function.\n * To select the correct translations from a translations object, pass the\n * locale directly into Crab's getLocalisedMessages.\n * @param locale `es`, `es-ES`, `en-GB`, `en`, `ja`, `ja-JP`, etc.\n * @returns Two-letter ISO 639-1 language code, falling back to `null` if locale is invalid or language is unsupported.\n */\nexport function getLangFromLocale(locale: string) {\n const adjustedLocale = adjustLocale(locale);\n if (adjustedLocale != null) {\n const { language } = new Intl.Locale(adjustedLocale);\n if (SUPPORTED_LANGUAGES.includes(language)) {\n return language;\n }\n }\n return null;\n}\n\n/**\n * Provides corresponding country code (iso2) for locales code with explicit region value.\n *\n * @param locale `es-ES`, `en-GB`, `ja-JP`, etc.\n * @returns `null` if the locale is invalid or the region can‘t be identified.\n */\nexport function getCountryFromLocale(locale: string) {\n const adjustedLocale = adjustLocale(locale);\n return adjustedLocale != null ? new Intl.Locale(adjustedLocale).region ?? null : null;\n}\n\n/**\n * Provides the layout direction for a given locale.\n *\n * @param locale `es`, `es-ES`, `en-GB`, `en`, `ja`, `ja-JP`, etc.\n * @returns The layout direction based on the locale, falling back to `Direction.LTR` if the locale is invalid or unsupported.\n */\nexport function getDirectionFromLocale(locale: string) {\n const adjustedLocale = adjustLocale(locale);\n return adjustedLocale != null && RTL_LANGUAGES.includes(new Intl.Locale(adjustedLocale).language)\n ? Direction.RTL\n : Direction.LTR;\n}\n","import { ChevronUp } from '@transferwise/icons';\nimport { IconSize } from '@transferwise/icons/lib/types';\nimport classNames from 'classnames';\n\nimport {\n Size,\n Position,\n PositionTop,\n PositionBottom,\n PositionRight,\n PositionLeft,\n SizeExtraSmall,\n SizeSmall,\n SizeMedium,\n} from '../common';\n\nconst CONTAINER_SIZE = {\n [Size.EXTRA_SMALL]: 10,\n [Size.SMALL]: 16,\n [Size.MEDIUM]: 24,\n};\n\nexport interface ChevronProps {\n orientation?: PositionTop | PositionBottom | PositionLeft | PositionRight;\n size?: SizeExtraSmall | SizeSmall | SizeMedium;\n disabled?: boolean;\n className?: string;\n}\n\nexport interface ExtraSmallChevronProps {\n className?: string;\n}\n\nconst ExtraSmallChevron = ({ className }: ExtraSmallChevronProps) => {\n return (\n <span\n className={classNames('tw-icon', 'tw-icon-chevron', className)}\n role=\"presentation\"\n aria-hidden\n >\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"currentColor\" focusable=\"false\">\n <path\n fillRule=\"evenodd\"\n d=\"M4.9995 2.0865L0.0635004 6.7645L1.2745 7.9125L4.9995 4.3835L8.7245 7.9135L9.9355 6.7645L4.9995 2.0865Z\"\n />\n </svg>\n </span>\n );\n};\n\nconst Chevron = ({\n orientation = Position.BOTTOM,\n size = Size.SMALL,\n disabled = false,\n className,\n}: ChevronProps) => {\n const classNameValue = classNames(\n 'tw-chevron',\n { 'chevron-color': !disabled },\n orientation,\n className,\n );\n\n if (size === Size.EXTRA_SMALL) {\n return <ExtraSmallChevron className={classNameValue} />;\n }\n\n const sizeValue = CONTAINER_SIZE[size] as IconSize;\n\n return <ChevronUp className={classNameValue} size={sizeValue} />;\n};\n\nexport default Chevron;\n","import classNames from 'classnames';\nimport { MouseEvent, forwardRef, HTMLAttributes, ReactNode, ElementType } from 'react';\n\nimport Body from '../../body';\nimport { LinkProps } from '../commonProps';\n\nexport interface BaseOptionProps extends Omit<HTMLAttributes<HTMLElement>, 'title' | 'content'> {\n 'aria-label'?: string;\n media?: ReactNode;\n name?: string;\n htmlFor?: string;\n title: ReactNode;\n content?: ReactNode;\n onClick?: (event: MouseEvent<HTMLElement>) => void;\n as?: ElementType;\n disabled?: boolean;\n button?: ReactNode;\n decision?: boolean;\n complex?: boolean;\n inverseMediaCircle?: boolean;\n className?: string;\n showMediaAtAllSizes?: boolean;\n showMediaCircle?: boolean;\n isContainerAligned?: boolean;\n}\n\ninterface AnchorOptionProps extends BaseOptionProps, LinkProps {\n as: 'a';\n}\n\nexport type OptionProps = BaseOptionProps | AnchorOptionProps;\n\nexport type ReferenceType = HTMLElement | HTMLAnchorElement;\n\nconst Option = forwardRef<ReferenceType, OptionProps>(\n (\n {\n media = '',\n title,\n content,\n as: component,\n button,\n decision = true,\n disabled = false,\n complex,\n inverseMediaCircle = true,\n className,\n showMediaAtAllSizes,\n showMediaCircle = true,\n isContainerAligned = false,\n ...rest\n },\n reference,\n ) => {\n const Element = component ?? 'label';\n\n return (\n <Element\n {...rest}\n ref={reference}\n className={classNames('np-option', className, {\n 'decision-complex': complex,\n decision,\n disabled,\n 'np-option__sm-media': showMediaAtAllSizes,\n 'np-option__container-aligned': isContainerAligned,\n })}\n disabled={disabled && Element === 'button'}\n >\n <div className=\"media\">\n {media && (\n <div className=\"media-left\">\n {showMediaCircle ? (\n <div\n className={classNames('circle circle-sm text-primary', {\n 'circle-inverse': inverseMediaCircle,\n })}\n >\n {media}\n </div>\n ) : (\n <div className=\"np-option__no-media-circle\">{media}</div>\n )}\n </div>\n )}\n <div className=\"media-body\">\n <h4 className=\"np-text-body-large-bold text-primary np-option__title\">{title}</h4>\n {content && <Body className=\"d-block np-option__body\">{content}</Body>}\n </div>\n <div className=\"media-right\">{button}</div>\n </div>\n </Element>\n );\n },\n);\n\nexport default Option;\n","import { IdIconProps } from '@transferwise/icons';\nimport classNames from 'classnames';\nimport { FC, ReactNode, cloneElement, useId } from 'react';\n\nimport Body from '../../body';\nimport Chevron from '../../chevron';\nimport { Position, Size, Typography } from '../../common';\nimport Option from '../../common/Option';\n\nexport interface AccordionItemProps {\n /** A label for the accordion item, used for accessibility purposes. */\n 'aria-label'?: string;\n /** An ID for the accordion item, used for accessibility purposes. */\n id?: string;\n /** The title of the accordion item. */\n title: ReactNode;\n /** The subtitle of the accordion item. */\n subtitle?: ReactNode;\n /** The content of the accordion item. */\n content: ReactNode;\n /** A callback function that is called when the accordion item is clicked. */\n onClick: () => void;\n /** Whether the accordion item is currently open or closed. */\n open: boolean;\n /** An optional icon to display next to the accordion item title. */\n icon?: ReactNode;\n /** @deprecated ... */\n theme?: 'light' | 'dark';\n}\n\n/**\n * AccordionItem\n *\n * A single item in an accordion component.\n *\n * @component\n * @param {string} [aria-label] - A label for the accordion item, used for accessibility purposes.\n * @param {string} [id] - An ID for the accordion item, used for accessibility purposes.\n * @param {ReactNode} title - The title of the accordion item.\n * @param {ReactNode} subtitle - The subtitle of the accordion item.\n * @param {ReactNode} content - The content of the accordion item.\n * @param {Function} onClick - A callback function that is called when the accordion item is clicked.\n * @param {boolean} open - Whether the accordion item is currently open or closed.\n * @param {ReactNode} [icon] - An optional icon to display next to the accordion item title.\n * @example\n * // Example usage:\n *\n * import AccordionItem from './AccordionItem';\n *\n * function App() {\n * const handleItemClick = () => {\n * console.log('Accordion item was clicked.');\n * };\n *\n * return (\n * <AccordionItem\n * title={<h2>Item Title</h2>}\n * content={<p>Item content goes here.</p>}\n * onClick={handleItemClick}\n * open={true}\n * icon={<Chevron />}\n * />\n * );\n * }\n */\nconst AccordionItem: FC<AccordionItemProps> = ({\n 'aria-label': ariaLabel,\n id,\n title,\n subtitle,\n content,\n onClick,\n open,\n icon,\n theme = 'light',\n}) => {\n const iconElement = icon\n ? cloneElement(icon as React.ReactElement<IdIconProps>, { size: 24 })\n : null;\n const fallbackId = useId();\n const accordionId = id ?? fallbackId;\n\n return (\n <div\n id={accordionId}\n className={classNames(\n 'np-accordion-item',\n iconElement ? 'np-accordion-item--with-icon' : null,\n {\n 'np-accordion-item--open': open,\n },\n )}\n >\n <Option\n aria-label={ariaLabel}\n as=\"button\"\n media={iconElement}\n title={title}\n content={subtitle}\n button={<Chevron orientation={open ? Position.TOP : Position.BOTTOM} size={Size.MEDIUM} />}\n inverseMediaCircle={false}\n aria-expanded={open}\n aria-controls={`${accordionId}-section`}\n id={`${accordionId}-control`}\n onClick={onClick}\n />\n {open && (\n <div id={`${accordionId}-section`} role=\"region\" aria-labelledby={`${accordionId}-control`}>\n <Body\n as=\"span\"\n type={Typography.BODY_LARGE}\n className={classNames('np-accordion-item__content', 'd-block', {\n 'has-icon': icon,\n })}\n >\n {content}\n </Body>\n </div>\n )}\n </div>\n );\n};\n\nexport default AccordionItem;\n","import { useState, FC } from 'react';\n\nimport AccordionItem, { AccordionItemProps } from './AccordionItem';\n\nexport type AccordionItem = Pick<\n AccordionItemProps,\n 'id' | 'title' | 'subtitle' | 'content' | 'icon'\n>;\n\nexport interface AccordionProps {\n /** The index of the item that should be open by default. */\n indexOpen?: number;\n /** An array of items to display in the accordion. */\n items: readonly AccordionItem[];\n /** A callback function that is called when an item is clicked. */\n onClick?: (index: number) => void;\n /** @deprecated */\n theme?: 'light' | 'dark';\n}\n\n/**\n * Accordion\n *\n * A simple accordion component that displays a list of items that can be expanded or collapsed.\n *\n * @component\n * @param {number} indexOpen - index of the item that should be open\n * @param {Array<AccordionItemProps>} items - array of items to display\n * @param {Function} onClick - callback function\n * @example\n * // Example usage:\n *\n * import Accordion from './Accordion';\n *\n * const items = [\n * {\n * id: 'item1',\n * title: 'Item 1',\n * content: 'This is the content for item 1.',\n * },\n * {\n * id: 'item2',\n * title: 'Item 2',\n * content: 'This is the content for item 2.',\n * },\n * {\n * id: 'item3',\n * title: 'Item 3',\n * content: 'This is the content for item 3.',\n * },\n * ];\n *\n * function App() {\n * const handleItemClick = (index) => {\n * console.log(`Item ${index} was clicked.`);\n * };\n *\n * return (\n * <Accordion items={items} onClick={handleItemClick} />\n * );\n * }\n */\nconst Accordion: FC<AccordionProps> = ({ indexOpen = -1, items, onClick, theme = 'light' }) => {\n const [itemsOpen, setItemsOpen] = useState(() =>\n items.map((value, index) => index === indexOpen),\n );\n\n /**\n * Handles a click event on an accordion item.\n *\n * @param index The index of the item that was clicked.\n */\n const handleOnClick = (index: number) => {\n if (onClick) {\n onClick(index);\n }\n const newItems = [...itemsOpen];\n newItems[index] = !itemsOpen[index];\n setItemsOpen(newItems);\n };\n\n return (\n <>\n {items.map((item, index) => (\n <AccordionItem\n key={item.id || index}\n open={itemsOpen[index]}\n title={item.title}\n subtitle={item.subtitle}\n content={item.content}\n icon={item.icon}\n onClick={() => handleOnClick(index)}\n />\n ))}\n </>\n );\n};\n\nexport default Accordion;\n","import classNames from 'classnames';\nimport { ButtonHTMLAttributes, forwardRef } from 'react';\n\nimport { Priority, PriorityPrimary, PrioritySecondary } from '../common';\n\nexport type ActionButtonProps = {\n priority?: PriorityPrimary | PrioritySecondary;\n /**\n * @deprecated use `children` instead\n */\n text?: string;\n} & ButtonHTMLAttributes<HTMLButtonElement>;\n\nconst ActionButton = forwardRef<HTMLButtonElement, ActionButtonProps>(\n (\n {\n disabled = false,\n className = undefined,\n onClick,\n priority = Priority.PRIMARY,\n text,\n children,\n ...rest\n }: ActionButtonProps,\n reference,\n ) => (\n <button\n ref={reference}\n type=\"button\"\n className={classNames(\n 'np-action-btn',\n 'np-text-body-default-bold',\n priority === Priority.SECONDARY ? 'btn-priority-2' : 'btn-priority-1',\n className,\n )}\n disabled={disabled}\n onClick={onClick}\n {...rest}\n >\n {children || text}\n </button>\n ),\n);\n\nexport default ActionButton;\n","import classNames from 'classnames';\n\nimport ActionButton from '../actionButton';\nimport { CommonProps, Priority, PriorityPrimary, PrioritySecondary } from '../common';\nimport Option from '../common/Option';\n\nexport type ActionOptionProps = {\n complex?: boolean;\n content?: React.ReactNode;\n disabled?: boolean;\n media?: React.ReactNode;\n showMediaAtAllSizes?: boolean;\n onClick: () => void;\n title: React.ReactNode;\n action: React.ReactNode;\n priority?: PriorityPrimary | PrioritySecondary;\n showMediaCircle?: boolean;\n isContainerAligned?: boolean;\n} & CommonProps;\n\nconst ActionOption = ({\n action,\n priority = Priority.PRIMARY,\n disabled,\n onClick,\n media,\n title,\n content,\n complex,\n className,\n showMediaAtAllSizes,\n showMediaCircle,\n isContainerAligned,\n}: ActionOptionProps) => {\n const sharedProps = {\n media,\n title,\n content,\n complex,\n disabled,\n showMediaAtAllSizes,\n showMediaCircle,\n className: classNames('tw-action-option', className),\n isContainerAligned,\n };\n\n const getAriaLabel = (): string | undefined => {\n const labels: string[] = [];\n\n if (typeof title === 'string') {\n labels.push(title);\n }\n\n if (typeof action === 'string') {\n labels.push(action);\n }\n\n return labels.join(', ') || undefined;\n };\n\n return (\n <Option\n {...sharedProps}\n button={\n <ActionButton\n priority={priority}\n disabled={disabled}\n aria-label={getAriaLabel()}\n onClick={onClick}\n >\n {action}\n </ActionButton>\n }\n />\n );\n};\n\nexport default ActionOption;\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n ariaLabel: {\n id: 'neptune.CloseButton.ariaLabel',\n defaultMessage: 'Close',\n description: 'Description of close button',\n },\n});\n","import { Cross, CrossCircleFill } from '@transferwise/icons';\nimport classNames from 'classnames';\nimport { forwardRef } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { Size, SizeLarge, SizeMedium, SizeSmall } from '../propsValues/size';\n\nimport messages from './CloseButton.messages';\n\nexport type CloseButtonProps = Pick<\n React.ComponentPropsWithoutRef<'button'>,\n 'aria-label' | 'className' | 'onClick'\n> & {\n size?: SizeSmall | SizeMedium | SizeLarge;\n filled?: boolean;\n isDisabled?: boolean;\n testId?: string;\n};\n\nexport const CloseButton = forwardRef(function CloseButton(\n {\n 'aria-label': ariaLabel,\n size = Size.MEDIUM,\n filled = false,\n className,\n onClick,\n isDisabled,\n testId,\n }: CloseButtonProps,\n reference: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const intl = useIntl();\n ariaLabel ??= intl.formatMessage(messages.ariaLabel);\n const Icon = filled ? CrossCircleFill : Cross;\n\n return (\n <button\n ref={reference}\n type=\"button\"\n className={classNames(\n 'np-close-button',\n 'close btn-link',\n 'text-no-decoration',\n {\n 'np-close-button--large': size === Size.MEDIUM,\n 'np-close-button--x-large': size === Size.LARGE,\n },\n className,\n )}\n aria-label={ariaLabel}\n aria-disabled={isDisabled}\n disabled={isDisabled}\n data-testid={testId}\n onClick={onClick}\n >\n <Icon size={size === Size.SMALL ? 16 : 24} />\n </button>\n );\n});\n","import { Info, Alert, Cross, Check, ClockBorderless } from '@transferwise/icons';\nimport classNames from 'classnames';\n\nimport { SizeSmall, SizeMedium, SizeLarge, Sentiment } from '../common';\n\nexport type StatusIconProps = {\n sentiment: `${Sentiment}`;\n size: SizeSmall | SizeMedium | SizeLarge;\n};\n\nconst iconTypeMap = {\n positive: Check,\n neutral: Info,\n warning: Alert,\n negative: Cross,\n pending: ClockBorderless,\n info: Info,\n error: Cross,\n success: Check,\n} satisfies Record<`${Sentiment}`, React.ElementType>;\n\nconst StatusIcon = ({ sentiment = 'neutral', size = 'md' }: StatusIconProps) => {\n const Icon = iconTypeMap[sentiment];\n const iconColor = sentiment === 'warning' || sentiment === 'pending' ? 'dark' : 'light';\n\n return (\n <span\n data-testid=\"status-icon\"\n className={classNames('status-circle', `status-circle-${size}`, sentiment)}\n >\n <Icon className={classNames('status-icon', iconColor)} />\n </span>\n );\n};\n\nexport default StatusIcon;\n","import classNames from 'classnames';\nimport { LabelHTMLAttributes, LiHTMLAttributes, ReactHTML } from 'react';\n\nimport { TitleTypes, Typography, Heading } from '../common';\n\nconst DEFAULT_TYPE = Typography.TITLE_GROUP;\n\nconst titleTypeMapping = {\n [Typography.TITLE_SCREEN]: 'h1',\n [Typography.TITLE_SECTION]: 'h2',\n [Typography.TITLE_SUBSECTION]: 'h3',\n [Typography.TITLE_BODY]: 'h4',\n [Typography.TITLE_GROUP]: 'h5',\n} as const;\n\ntype Props = LabelHTMLAttributes<HTMLHeadingElement | HTMLSpanElement | HTMLLabelElement> &\n LiHTMLAttributes<HTMLLIElement> & {\n /**\n * Default value will based one `type` prop\n */\n as?: 'span' | 'label' | 'li' | 'legend' | Heading;\n /**\n * Default value: {@link DEFAULT_TYPE}\n */\n type?: TitleTypes;\n };\n\nfunction Title({ as, type = DEFAULT_TYPE, className, ...props }: Props) {\n const mapping = titleTypeMapping[type];\n const isTypeSupported = mapping !== undefined;\n if (isTypeSupported) {\n const HeaderTag = as ?? mapping;\n return <HeaderTag {...props} className={classNames(`np-text-${type}`, className)} />;\n }\n const HeaderTag = as ?? titleTypeMapping[DEFAULT_TYPE];\n return <HeaderTag {...props} className={classNames(`np-text-${DEFAULT_TYPE}`, className)} />;\n}\n\nexport default Title;\n","export function logActionRequired(message) {\n if (typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(message);\n }\n}\n\nexport function logActionRequiredIf(message, conditional) {\n if (conditional) {\n logActionRequired(message);\n }\n}\n","import commonmark, { Node as MarkdownNode } from 'commonmark';\n\nimport { MarkdownNodeType } from '../common';\nimport { logActionRequired } from '../utilities';\n\nconst reader = new commonmark.Parser();\nconst writer = new commonmark.HtmlRenderer({ safe: true });\n\nconst NODE_TYPE_LIST = Object.values(MarkdownNodeType);\n\nexport type MarkdownProps = {\n as?: React.ElementType;\n config?: {\n link?: Pick<React.ComponentPropsWithoutRef<'a'>, 'target'>;\n paragraph?: Pick<React.ComponentPropsWithoutRef<'p'>, 'className'>;\n };\n className?: string;\n children?: string;\n} & (\n | {\n allowList?: readonly `${MarkdownNodeType}`[];\n blockList?: never;\n }\n | {\n allowList?: never;\n blockList?: readonly `${MarkdownNodeType}`[];\n }\n);\n\nexport default function Markdown({\n as: Element = 'div',\n allowList,\n blockList,\n config,\n className,\n children,\n}: MarkdownProps) {\n if (!children) {\n return null;\n }\n\n const linkTarget = config?.link?.target ?? '_self';\n const paragraphClass = config?.paragraph?.className ?? '';\n\n if (allowList != null && blockList != null) {\n logActionRequired(\n 'Markdown supports only one of `allowList` or `blockList` to be used at a time. `blockList` will be ignored.',\n );\n }\n\n const parser = (nodes: string) => {\n const parsed = reader.parse(nodes);\n const toExclude =\n allowList != null ? NODE_TYPE_LIST.filter((type) => !allowList.includes(type)) : blockList;\n return toExclude != null ? stripNodes({ parsed, blockList: toExclude }) : parsed;\n };\n\n const createMarkup = () => {\n const parsed = parser(children);\n return writer\n .render(parsed)\n .replace(/<a href=\"/g, `<a target=\"${linkTarget}\" href=\"`)\n .replace(/<p>/g, `<p class=\"${paragraphClass}\">`);\n };\n\n return <Element className={className} dangerouslySetInnerHTML={{ __html: createMarkup() }} />;\n}\n\nfunction stripNodes({ blockList, parsed }: { blockList: readonly string[]; parsed: MarkdownNode }) {\n if (!parsed) {\n return parsed;\n }\n\n const walker = parsed.walker();\n\n for (let event = walker.next(); event != null; event = walker.next()) {\n const { node } = event;\n if (blockList.includes(node.type) && !event.entering) {\n while (node.firstChild != null) {\n node.insertBefore(node.firstChild);\n }\n node.unlink();\n }\n }\n return parsed;\n}\n","import { MarkdownNodeType } from '../../common';\nimport Markdown from '../../markdown';\n\nconst allowList = [MarkdownNodeType.STRONG];\n\nexport interface InlineMarkdownProps {\n children?: string;\n className?: string;\n}\n\nexport default function InlineMarkdown(props: InlineMarkdownProps) {\n return <Markdown {...props} as=\"span\" allowList={allowList} blockList={undefined} />;\n}\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n opensInNewTab: {\n id: 'neptune.Link.opensInNewTab',\n defaultMessage: '(opens in new tab)',\n },\n});\n","import { NavigateAway as NavigateAwayIcon } from '@transferwise/icons';\nimport classNames from 'classnames';\nimport { AnchorHTMLAttributes } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { LinkLarge, LinkDefault } from '../common';\n\nimport messages from './Link.messages';\n\nexport type Props = AnchorHTMLAttributes<HTMLAnchorElement> & { type?: LinkLarge | LinkDefault };\n\n/**\n * Standard Link component with navigate away icon\n *\n * Documentation: https://transferwise.github.io/neptune-web/components/content/Link\n */\nconst Link = ({\n className,\n children,\n href,\n target,\n type,\n 'aria-label': ariaLabel,\n onClick,\n ...props\n}: Props) => {\n const isBlank = target === '_blank';\n\n const { formatMessage } = useIntl();\n\n return (\n <a\n href={href}\n target={target}\n className={classNames(\n 'np-link',\n type ? `np-text-${type}` : undefined,\n 'd-inline-flex',\n className,\n )}\n aria-label={ariaLabel}\n rel={isBlank ? 'noreferrer' : undefined}\n onClick={onClick}\n {...props}\n >\n {children} {isBlank && <NavigateAwayIcon title={formatMessage(messages.opensInNewTab)} />}\n </a>\n );\n};\n\nexport default Link;\n","import classNames from 'classnames';\nimport Link from '../../link';\nimport { Typography } from '../propsValues/typography';\n\nexport type ActionOptions = {\n 'aria-label'?: string;\n href?: string;\n target?: string;\n text: React.ReactNode;\n onClick?: () => void;\n};\n\ntype Props = {\n action: ActionOptions;\n className?: string;\n};\n\nexport function Action({ action, className }: Props) {\n if ('href' in action) {\n return (\n <Link\n href={action.href}\n className={className}\n aria-label={action['aria-label']}\n target={action.target}\n type={Typography.LINK_LARGE}\n onClick={action.onClick}\n >\n {action.text}\n </Link>\n );\n }\n\n return (\n <button\n type=\"button\"\n aria-label={action['aria-label']}\n className={classNames('btn-unstyled np-text-link-large', className)}\n onClick={action.onClick}\n >\n {action.text}\n </button>\n );\n}\n","import classNames from 'classnames';\nimport { useState, useRef, useEffect } from 'react';\n\nimport Body from '../body/Body';\nimport { Sentiment, Size, Typography, Variant } from '../common';\nimport { CloseButton } from '../common/closeButton';\nimport StatusIcon from '../statusIcon';\nimport Title from '../title/Title';\nimport { logActionRequired } from '../utilities';\n\nimport InlineMarkdown from './inlineMarkdown';\nimport { Action } from '../common/action/Action';\n\nexport type AlertAction = {\n 'aria-label'?: string;\n href?: string;\n target?: string;\n text: React.ReactNode;\n onClick?: () => void;\n};\n\n/** @deprecated Use `\"top\" | \"bottom\"` instead. */\ntype AlertTypeDeprecated = `${Sentiment.SUCCESS | Sentiment.INFO | Sentiment.ERROR}`;\ntype AlertTypeResolved = `${\n | Sentiment.POSITIVE\n | Sentiment.NEUTRAL\n | Sentiment.WARNING\n | Sentiment.NEGATIVE}`;\nexport type AlertType = AlertTypeResolved | AlertTypeDeprecated;\n\nexport enum AlertArrowPosition {\n TOP_LEFT = 'up-left',\n TOP = 'up-center',\n TOP_RIGHT = 'up-right',\n BOTTOM_LEFT = 'down-left',\n BOTTOM = 'down-center',\n BOTTOM_RIGHT = 'down-right',\n}\n\nexport interface AlertProps {\n /** An optional call to action to sit under the main body of the alert. If your label is short, use aria-label to provide more context */\n action?: AlertAction;\n className?: string;\n /** An optional icon. If not provided, we will default the icon to something appropriate for the type */\n icon?: React.ReactNode;\n /** Title for the alert component */\n title?: string;\n /** The main body of the alert. Accepts plain text and bold words specified with **double stars */\n message?: string;\n /** The presence of the onDismiss handler will trigger the visibility of the close button */\n onDismiss?: React.MouseEventHandler<HTMLButtonElement>;\n /** The type dictates which icon and colour will be used */\n type?: AlertType;\n variant?: `${Variant}`;\n /** @deprecated Use `InlineAlert` instead. */\n arrow?: `${AlertArrowPosition}`;\n /** @deprecated Use `message` instead. Be aware `message` only accepts plain text or text with **bold** markdown. */\n children?: React.ReactNode;\n /** @deprecated Use `onDismiss` instead. */\n dismissible?: boolean;\n /** @deprecated Alert component doesn't support `size` anymore, please remove this prop. */\n size?: `${Size}`;\n}\n\nfunction resolveType(type: AlertType): AlertTypeResolved {\n switch (type) {\n case 'success':\n return 'positive';\n case 'info':\n return 'neutral';\n case 'error':\n return 'negative';\n default:\n return type;\n }\n}\n\nexport default function Alert({\n arrow,\n action,\n children,\n className,\n dismissible,\n icon,\n onDismiss,\n message,\n size,\n title,\n type = 'neutral',\n variant = 'desktop',\n}: AlertProps) {\n useEffect(() => {\n if (arrow !== undefined) {\n logActionRequired(\n \"Alert component doesn't support 'arrow' anymore, use 'InlineAlert' instead.\",\n );\n }\n }, [arrow]);\n\n useEffect(() => {\n if (children !== undefined) {\n logActionRequired(\n \"Alert component doesn't support 'children' anymore, use 'message' instead.\",\n );\n }\n }, [children]);\n\n useEffect(() => {\n if (dismissible !== undefined) {\n logActionRequired(\n \"Alert component doesn't support 'dismissible' anymore, use 'onDismiss' instead.\",\n );\n }\n }, [dismissible]);\n\n useEffect(() => {\n if (size !== undefined) {\n logActionRequired(\"Alert component doesn't support 'size' anymore, please remove that prop.\");\n }\n }, [size]);\n\n const resolvedType = resolveType(type);\n useEffect(() => {\n if (resolvedType !== type) {\n logActionRequired(\n `Alert component has deprecated '${type}' value for the 'type' prop. Please use '${resolvedType}' instead.`,\n );\n }\n }, [resolvedType, type]);\n\n const [shouldFire, setShouldFire] = useState(false);\n\n const closeButtonReference = useRef<HTMLButtonElement>(null);\n\n return (\n <div\n className={classNames(\n 'alert d-flex',\n `alert-${resolvedType}`,\n arrow != null && alertArrowClassNames(arrow),\n className,\n )}\n data-testid=\"alert\"\n onTouchStart={() => setShouldFire(true)}\n onTouchEnd={(event) => {\n if (\n shouldFire &&\n action?.href &&\n // Check if current event is triggered from closeButton\n event.target instanceof Node &&\n closeButtonReference.current &&\n !closeButtonReference.current.contains(event.target)\n ) {\n if (action.target === '_blank') {\n window.top?.open(action.href);\n } else {\n window.top?.location.assign(action.href);\n }\n }\n setShouldFire(false);\n }}\n onTouchMove={() => setShouldFire(false)}\n >\n <div\n className={classNames('alert__content', 'd-flex', 'flex-grow-1', variant)}\n data-testid={variant}\n >\n {icon ? (\n <div className=\"alert__icon\">{icon}</div>\n ) : (\n <StatusIcon size={Size.LARGE} sentiment={resolvedType} />\n )}\n <div className=\"alert__message\">\n <div role={Sentiment.NEGATIVE === resolvedType ? 'alert' : 'status'}>\n {title && (\n <Title className=\"m-b-1\" type={Typography.TITLE_BODY}>\n {title}\n </Title>\n )}\n <Body as=\"span\" className=\"d-block\" type={Typography.BODY_LARGE}>\n {children || <InlineMarkdown>{message}</InlineMarkdown>}\n </Body>\n </div>\n {action && <Action action={action} className=\"m-t-1\" />}\n </div>\n </div>\n {onDismiss && (\n <CloseButton ref={closeButtonReference} className=\"m-l-2\" onClick={onDismiss} />\n )}\n </div>\n );\n}\n\nfunction alertArrowClassNames(arrow: `${AlertArrowPosition}`) {\n switch (arrow) {\n case 'down-center':\n return 'arrow arrow-bottom arrow-center';\n case 'down-left':\n return 'arrow arrow-bottom arrow-left';\n case 'down-right':\n return 'arrow arrow-bottom arrow-right';\n case 'up-center':\n return 'arrow arrow-center';\n case 'up-right':\n return 'arrow arrow-right';\n case 'up-left':\n default:\n return 'arrow';\n }\n}\n","// TODO: consider to move this enum into component file once we migrate it on TypeScript or replace with some common enum\nexport enum AvatarType {\n THUMBNAIL = 'thumbnail',\n ICON = 'icon',\n EMOJI = 'emoji',\n INITIALS = 'initials',\n}\n","/*\n * The colors we support generating an Avatar background color from a \"seed\" for.\n * Changing this array will change the assignment between seeds.\n * Do not change this array.\n */\nconst avatarColors = [\n '--color-bright-blue',\n '--color-bright-yellow',\n '--color-bright-pink',\n '--color-bright-orange',\n] as const;\n\n/*\n * Takes in a \"seed\" string and spits out an index for the color we should use.\n * This implementation has been synced across all three clients so that we consistently\n * generate branded avatar colors when rendering a list of Avatars.\n * Do not change this implementation.\n */\nconst hashSeed = (seed: string): number => {\n const base = 31;\n const modulo = avatarColors.length;\n\n let hashValue = 0;\n let basePow = 1;\n\n for (let i = 0; i < seed.length; i += 1) {\n hashValue = (hashValue + seed.charCodeAt(i) * basePow) % modulo;\n basePow = (basePow * base) % modulo;\n }\n\n return hashValue;\n};\n\nexport const getAvatarColorFromSeed = (seed: string): (typeof avatarColors)[number] => {\n return avatarColors[hashSeed(seed)];\n};\n","import classnames from 'classnames';\nimport { useMemo } from 'react';\n\nimport { Theme } from '../common';\n\nimport { getAvatarColorFromSeed } from './colors';\n\ntype NumericAvatarSize = 24 | 40 | 48 | 56 | 72;\n\ntype LegacyAvatarSize = 'sm' | 'md' | 'lg';\n\nexport type AvatarSize = NumericAvatarSize | LegacyAvatarSize;\n\nexport type AvatarTheme = 'light' | 'dark';\n\nexport type AvatarType = 'thumbnail' | 'icon' | 'emoji' | 'initials';\n\nexport interface AvatarProps {\n backgroundColor?: string;\n backgroundColorSeed?: string;\n children?: React.ReactNode;\n className?: string;\n outlined?: boolean;\n size?: AvatarSize;\n theme?: AvatarTheme;\n type?: AvatarType;\n}\n\nconst backwardsCompatibleSize = (size: AvatarSize): NumericAvatarSize => {\n switch (size) {\n case 'sm':\n return 24;\n\n case 'md':\n return 48;\n\n case 'lg':\n return 72;\n\n default:\n return size;\n }\n};\n\nconst Avatar: React.FC<AvatarProps> = ({\n backgroundColor = null,\n backgroundColorSeed = null,\n children = null,\n className,\n outlined = false,\n size: sizeFromProps = 48,\n theme = Theme.LIGHT,\n type = 'thumbnail',\n}) => {\n const backgroundColorFromSeed = useMemo<string | undefined>(\n () =>\n !backgroundColor && backgroundColorSeed\n ? `var(${getAvatarColorFromSeed(backgroundColorSeed)})`\n : undefined,\n [backgroundColor, backgroundColorSeed],\n );\n\n const size = backwardsCompatibleSize(sizeFromProps);\n\n return (\n <div\n className={classnames('tw-avatar', className, `tw-avatar--${size}`, `tw-avatar--${type}`, {\n 'tw-avatar--outlined': outlined,\n 'tw-avatar--branded': Boolean(backgroundColorFromSeed),\n 'np-text-title-body': type === 'initials',\n })}\n >\n <div\n className=\"tw-avatar__content\"\n style={{\n backgroundColor: backgroundColor || backgroundColorFromSeed,\n }}\n >\n {children}\n </div>\n </div>\n );\n};\n\nexport default Avatar;\n","import classNames from 'classnames';\nimport { ReactNode } from 'react';\n\nimport {\n Size,\n Theme,\n SizeSmall,\n SizeMedium,\n SizeLarge,\n ThemeDark,\n ThemeLight,\n CommonProps,\n} from '../common';\n\nexport type BadgeProps = {\n badge: ReactNode;\n children: ReactNode;\n size?: SizeSmall | SizeMedium | SizeLarge;\n border?: ThemeDark | ThemeLight;\n} & CommonProps;\n\nconst Badge = ({\n badge,\n className = undefined,\n size = Size.SMALL,\n border = Theme.LIGHT,\n children,\n}: BadgeProps) => {\n const classes: string = classNames(\n 'tw-badge',\n {\n [`tw-badge-border-${border}`]: border,\n [`tw-badge-${size}`]: size,\n },\n className,\n );\n\n return (\n <div className={classes}>\n <div className=\"tw-badge__children\">{children}</div>\n <div className=\"tw-badge__content\">{badge}</div>\n </div>\n );\n};\n\nexport default Badge;\n","import { Person as ProfileIcon, Briefcase as BriefcaseIcon } from '@transferwise/icons';\nimport { useState, useEffect } from 'react';\n\nimport Avatar, { AvatarProps, AvatarType } from '../avatar';\nimport Badge, { BadgeProps } from '../badge';\nimport { ProfileType, ProfileTypePersonal, ProfileTypeBusiness, Size, Sentiment } from '../common';\nimport StatusIcon from '../statusIcon/StatusIcon';\n\ninterface OptionalBadgeProps extends Omit<BadgeProps, 'badge'> {\n url?: string;\n altText?: string;\n statusIcon?: Sentiment;\n}\n\nconst OptionalBadge = ({ url, altText, statusIcon, children, ...rest }: OptionalBadgeProps) => {\n if (url) {\n return (\n <Badge badge={<img src={url} alt={altText} />} {...rest}>\n {children}\n </Badge>\n );\n }\n if (statusIcon) {\n return (\n <Badge badge={<StatusIcon sentiment={statusIcon} size={Size.SMALL} />} {...rest}>\n {children}\n </Badge>\n );\n }\n return <>{children}</>;\n};\n\nexport type AvatarWrapperProps = {\n url?: string;\n profileType?: ProfileTypeBusiness | ProfileTypePersonal;\n profileId?: string;\n name?: string;\n avatarProps?: AvatarProps;\n badgeProps?: BadgeProps;\n} & (\n | {\n badgeUrl: string;\n badgeAltText: string;\n badgeStatusIcon?: never;\n }\n | {\n badgeUrl?: never;\n badgeAltText?: never;\n badgeStatusIcon: Sentiment;\n }\n | {\n badgeUrl?: never;\n badgeAltText?: never;\n badgeStatusIcon?: never;\n }\n);\n\nconst AvatarWrapper = ({\n url,\n profileType,\n profileId,\n badgeUrl,\n badgeAltText,\n badgeStatusIcon,\n name,\n avatarProps,\n badgeProps,\n}: AvatarWrapperProps) => {\n const [hasImageLoadError, setImageLoadError] = useState(false);\n const isBusinessProfile = profileType === ProfileType.BUSINESS;\n\n // Reset the errored state when url changes\n useEffect(() => setImageLoadError(false), [url]);\n\n const getAvatarProps = () => {\n if (url && !hasImageLoadError) {\n return {\n type: AvatarType.THUMBNAIL,\n children: <img src={url} alt=\"\" onError={() => setImageLoadError(true)} />,\n ...avatarProps,\n };\n }\n if (profileType) {\n return {\n type: AvatarType.ICON,\n children: isBusinessProfile ? <BriefcaseIcon size=\"24\" /> : <ProfileIcon size=\"24\" />,\n ...avatarProps,\n };\n }\n if (name) {\n return {\n type: AvatarType.INITIALS,\n children: <>{getInitials(name)}</>,\n backgroundColorSeed: profileId?.toString(),\n ...avatarProps,\n };\n }\n return {\n type: AvatarType.ICON,\n children: <ProfileIcon size=\"24\" />,\n ...avatarProps,\n };\n };\n\n return (\n <OptionalBadge\n url={badgeUrl}\n altText={badgeAltText}\n statusIcon={badgeStatusIcon}\n {...badgeProps}\n >\n <Avatar size={Size.MEDIUM} {...getAvatarProps()} />\n </OptionalBadge>\n );\n};\n\nfunction getInitials(name: string) {\n const allInitials = name\n .split(' ')\n .map((part) => part[0])\n .join('')\n .toUpperCase();\n\n if (allInitials.length === 1) {\n return allInitials[0];\n }\n\n return allInitials[0] + allInitials.slice(-1);\n}\n\nexport default AvatarWrapper;\n","import classNames from 'classnames';\nimport { Component } from 'react';\n\nimport { Status, Size } from '../common';\n\nconst radius = { xxs: 6, xs: 11, sm: 22, xl: 61 };\n\nconst ANIMATION_DURATION_IN_MS = 1500;\n\nexport type ProcessIndicatorStatus =\n `${Status.PROCESSING | Status.FAILED | Status.SUCCEEDED | Status.HIDDEN}`;\n\nexport interface ProcessIndicatorProps {\n status?: ProcessIndicatorStatus;\n size?: 'xxs' | `${Size.EXTRA_SMALL | Size.SMALL | Size.EXTRA_LARGE}`;\n className?: string;\n 'data-testid'?: string;\n onAnimationCompleted?: (status: ProcessIndicatorStatus) => void;\n}\n\ntype ProcessIndicatorState = Required<Pick<ProcessIndicatorProps, 'status' | 'size'>>;\n\nexport default class ProcessIndicator extends Component<\n ProcessIndicatorProps,\n ProcessIndicatorState\n> {\n declare props: ProcessIndicatorProps &\n Required<Pick<ProcessIndicatorProps, keyof typeof ProcessIndicator.defaultProps>>;\n\n static defaultProps = {\n status: 'processing',\n size: 'sm',\n } satisfies Partial<ProcessIndicatorProps>;\n\n interval = 0;\n timeout = 0;\n\n constructor(props: ProcessIndicator['props']) {\n super(props);\n this.state = {\n status: props.status,\n size: props.size,\n };\n }\n\n /**\n * Create interval for animation duration (1500ms)\n * Update state only at the end of every interval\n * (end of animation loop) if props changed before end of animation\n */\n componentDidMount() {\n this.interval = window.setInterval(() => {\n const { status: targetStatus, size: targetSize, onAnimationCompleted } = this.props;\n const { status: currentStatus, size: currentSize } = this.state;\n\n if (currentStatus !== targetStatus) {\n this.setState({ status: targetStatus }, () => {\n if (onAnimationCompleted) {\n this.timeout = window.setTimeout(() => {\n onAnimationCompleted(targetStatus);\n }, ANIMATION_DURATION_IN_MS);\n }\n });\n }\n\n if (currentSize !== targetSize) {\n this.setState({ size: targetSize });\n }\n }, ANIMATION_DURATION_IN_MS);\n }\n\n /**\n * Only trigger render if comopnent's state got\n * updated from interval callback\n */\n shouldComponentUpdate(nextProps: ProcessIndicator['props'], nextState: ProcessIndicatorState) {\n const isSameStatus = nextProps.status === nextState.status;\n const isSameSize = nextProps.size === nextState.size;\n\n return isSameStatus && isSameSize;\n }\n\n // Clear interval before destroying component\n componentWillUnmount() {\n window.clearInterval(this.interval);\n window.clearTimeout(this.timeout);\n }\n\n render() {\n const { className, 'data-testid': dataTestId } = this.props;\n const { size, status } = this.state;\n const classes = classNames(`process process-${size}`, className, {\n [`process-danger`]: status === Status.FAILED,\n [`process-stopped`]: status === Status.HIDDEN,\n [`process-success`]: status === Status.SUCCEEDED,\n });\n\n return (\n <span className={classes} data-testid={dataTestId}>\n <span className=\"process-icon-container\">\n <span className=\"process-icon-horizontal\" />\n <span className=\"process-icon-vertical\" />\n </span>\n <svg xmlns=\"http://www.w3.org/2000/svg\">\n <circle className=\"process-circle\" cx=\"50%\" cy=\"50%\" r={radius[size]} fillOpacity=\"0.0\" />\n </svg>\n </span>\n );\n }\n}\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n loadingAriaLabel: {\n id: 'neptune.Button.loadingAriaLabel',\n defaultMessage: 'loading',\n description: 'Description of button while loading',\n },\n});\n","import { ControlType, Priority } from '../common';\n\nexport const typeClassMap = {\n [ControlType.ACCENT]: 'btn-accent',\n [ControlType.POSITIVE]: 'btn-positive',\n [ControlType.NEGATIVE]: 'btn-negative',\n};\n\nexport const priorityClassMap = {\n [Priority.PRIMARY]: 'btn-priority-1',\n [Priority.SECONDARY]: 'btn-priority-2',\n [Priority.TERTIARY]: 'btn-priority-3',\n};\n","import { ControlType, Priority, Size, Type } from '../../common';\nimport { logActionRequiredIf } from '../../utilities';\n\nconst deprecatedTypeMap = {\n [Type.PRIMARY]: ControlType.ACCENT,\n [Type.SECONDARY]: ControlType.ACCENT,\n [Type.LINK]: ControlType.ACCENT,\n [Type.PAY]: ControlType.POSITIVE,\n [Type.DANGER]: ControlType.NEGATIVE,\n};\n\nconst oldTypePriorityMap = {\n [Type.DANGER]: Priority.SECONDARY,\n [Type.LINK]: Priority.TERTIARY,\n [Type.SECONDARY]: Priority.SECONDARY,\n};\n\nconst deprecatedTypeMapMessage = {\n [Type.DANGER]: 'Type.NEGATIVE',\n [Type.LINK]: 'ControlType.ACCENT with priority Priority.TERTIARY',\n [Type.PAY]: 'ControlType.POSITIVE',\n [Type.PRIMARY]: 'ControlType.ACCENT',\n [Type.SECONDARY]: 'ControlType.ACCENT with priority Priority.SECONDARY',\n};\n\nconst deprecatedTypes = Object.keys(deprecatedTypeMap);\n\nexport const establishNewType = (originalType) => deprecatedTypeMap[originalType] || originalType;\n\nexport const establishNewPriority = (originalPriority, originalType) => {\n const type = establishNewType(originalType);\n\n // The old SECONDARY and LINK types now map to priorities. If they're still using one of\n // these old types, ignore whatever priority they've passed and use this instead.\n if (oldTypePriorityMap[originalType]) {\n return oldTypePriorityMap[originalType];\n }\n // Only ControlType.ACCENT supports tertiary styles\n if (originalPriority === Priority.TERTIARY && type !== ControlType.ACCENT) {\n return Priority.SECONDARY;\n }\n return originalPriority;\n};\n\nexport const logDeprecationNotices = ({ size, type }) => {\n logActionRequiredIf(\n 'Button has deprecated the `Size.EXTRA_SMALL` value for the `size` prop. Please use Size.SMALL instead.',\n size === Size.EXTRA_SMALL,\n );\n logActionRequiredIf(\n `Button has deprecated the ${type} value for the \\`type\\` prop. Please update to ${deprecatedTypeMapMessage[type]}.`,\n deprecatedTypes.includes(type),\n );\n};\n","import classNames from 'classnames';\nimport { AnchorHTMLAttributes, ButtonHTMLAttributes, ElementType, forwardRef } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport {\n Size,\n ControlType,\n Priority,\n ControlTypeAccent,\n ControlTypeNegative,\n ControlTypePositive,\n PriorityPrimary,\n PrioritySecondary,\n PriorityTertiary,\n SizeExtraSmall,\n SizeSmall,\n SizeMedium,\n SizeLarge,\n} from '../common';\nimport ProcessIndicator from '../processIndicator';\n\nimport messages from './Button.messages';\nimport { typeClassMap, priorityClassMap } from './classMap';\nimport { establishNewPriority, establishNewType, logDeprecationNotices } from './legacyUtils';\n\n/** @deprecated */\ntype DeprecatedTypes = 'primary' | 'pay' | 'secondary' | 'danger' | 'link';\n\n/** @deprecated */\ntype DeprecatedSizes = SizeExtraSmall;\n\ntype CommonProps = {\n block?: boolean;\n disabled?: boolean;\n loading?: boolean;\n type?: ControlTypeAccent | ControlTypeNegative | ControlTypePositive | DeprecatedTypes;\n priority?: PriorityPrimary | PrioritySecondary | PriorityTertiary;\n size?: SizeSmall | SizeMedium | SizeLarge | DeprecatedSizes;\n};\n\ntype ButtonProps = CommonProps &\n Omit<React.ComponentPropsWithRef<'button'>, 'type'> & {\n as?: 'button';\n htmlType?: 'submit' | 'reset' | 'button';\n };\n\ntype AnchorProps = CommonProps &\n React.ComponentPropsWithRef<'a'> & {\n as?: 'a';\n };\n\nexport type Props = ButtonProps | AnchorProps;\n\ntype ButtonReferenceType = HTMLButtonElement | HTMLAnchorElement;\n\nconst Button = forwardRef<ButtonReferenceType, Props>(\n (\n {\n as: component,\n block = false,\n children,\n className,\n disabled,\n loading = false,\n priority = Priority.PRIMARY,\n size = Size.MEDIUM,\n type = ControlType.ACCENT,\n ...rest\n }: Props,\n reference,\n ) => {\n const intl = useIntl();\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n logDeprecationNotices({ size, type });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const newType = establishNewType(type);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const newPriority = establishNewPriority(priority, type);\n\n const classes = classNames(\n `btn btn-${size}`,\n `np-btn np-btn-${size}`,\n {\n 'btn-loading': loading,\n 'btn-block np-btn-block': block,\n },\n {\n disabled: disabled || loading,\n },\n // @ts-expect-error fix when refactor `typeClassMap` to TypeScript\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n typeClassMap[newType],\n // @ts-expect-error fix when refactor `typeClassMap` to TypeScript\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n priorityClassMap[newPriority],\n className,\n );\n\n function processIndicatorSize() {\n return ['sm', 'xs'].includes(size) ? 'xxs' : 'xs';\n }\n\n const Element = (component as ElementType) ?? 'button';\n let props;\n\n if (Element === 'button') {\n const { htmlType = 'button', ...restProps } = rest as ButtonProps;\n props = {\n ...restProps,\n disabled: disabled || loading,\n type: htmlType,\n };\n } else {\n props = { ...rest } as AnchorProps;\n }\n\n return (\n <Element\n ref={reference}\n className={classes}\n {...props}\n aria-live={loading ? 'polite' : 'off'}\n aria-label={loading ? intl.formatMessage(messages.loadingAriaLabel) : rest['aria-label']}\n >\n {children}\n {loading && <ProcessIndicator size={processIndicatorSize()} className=\"btn-loader\" />}\n </Element>\n );\n },\n);\n\nexport default Button;\n","import classNames from 'classnames';\nimport { MouseEvent, type ReactNode, forwardRef, useRef } from 'react';\n\nimport { CloseButton } from '../closeButton';\nimport { stopPropagation } from '../domHelpers';\n\nexport interface CardProps {\n /** Content to display inside Card. */\n children: ReactNode;\n\n /** Optional prop to specify classNames onto the Card */\n className?: string;\n\n /** Optional prop to specify the ID on to Card */\n id?: string;\n\n /** Specify whether the Card is disabled, or not */\n isDisabled?: boolean;\n\n /** Specify whether the Card is sized small or not */\n isSmall?: boolean;\n\n /** Optionally specify Card onDismiss function */\n onDismiss?: () => void;\n\n /** Optional prop to specify the ID used for testing */\n testId?: string;\n}\n\n/**\n * Card component.\n *\n * A card is a container for content that is used to group related information.\n * It can be used to display information in a structured way, and can be\n * customized with various props to suit different use cases.\n *\n * @param {Object} props - The component props.\n * @param {ReactNode} children - The content to display inside the card.\n * @param {string} className - Optional class name(s) to add to the card container.\n * @param {string} id - Optional ID to add to the card container.\n * @param {boolean} isDisabled - Whether the card is disabled or not.\n * @param {boolean} isSmall - Whether the card is small or not.\n * @param {(event_: MouseEvent<HTMLButtonElement>) => void} onDismiss - Optional function to call when the card is dismissed.\n * @param {string} testId - Optional ID to add to the card container for testing purposes.\n * @returns {JSX.Element} - The card component.\n * @example\n * <Card>\n * <p>Hello World!</p>\n * </Card>\n */\nconst Card = forwardRef<HTMLDivElement, CardProps>(\n (\n {\n className,\n children = null,\n id,\n isDisabled = false,\n isSmall = false,\n onDismiss,\n testId,\n ...props\n },\n ref,\n ) => {\n const closeButtonReference = useRef(null);\n\n return (\n <div\n ref={ref}\n className={classNames(\n 'np-Card',\n {\n 'np-Card--small': !!isSmall,\n 'is-disabled': !!isDisabled,\n },\n className,\n )}\n id={id}\n data-testid={testId}\n {...props}\n >\n {onDismiss && (\n <CloseButton\n ref={closeButtonReference}\n className=\"np-Card-closeButton\"\n size={isSmall ? 'sm' : 'md'}\n isDisabled={isDisabled}\n testId=\"close-button\"\n onClick={(e) => {\n stopPropagation(e);\n onDismiss();\n }}\n />\n )}\n {children}\n </div>\n );\n },\n);\n\nCard.displayName = 'Card';\n\nexport default Card;\n","import classNames from 'classnames';\nimport { PropsWithChildren } from 'react';\n\nimport { DisplayTypes, Typography } from '../common';\n\ntype Props = PropsWithChildren<{\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n id?: string;\n type?: DisplayTypes;\n className?: string;\n}>;\n\nfunction Display({\n as: Heading = 'h1',\n type = Typography.DISPLAY_LARGE,\n children,\n className,\n id,\n}: Props) {\n return (\n <Heading id={id} className={classNames(`np-text-${type}`, 'text-primary', className)}>\n {children}\n </Heading>\n );\n}\n\nexport default Display;\n","import { isUndefined } from '@transferwise/neptune-validation';\nimport { useEffect } from 'react';\n\nimport { ParentElement } from '../..';\n\ntype Data = {\n attachListener: boolean;\n callback: EventListenerOrEventListenerObject;\n eventType: string;\n parent: ParentElement | undefined;\n};\n\nexport const useConditionalListener = ({ attachListener, callback, eventType, parent }: Data) => {\n useEffect(() => {\n if (attachListener && !isUndefined(parent)) {\n parent.addEventListener(eventType, callback, true);\n }\n\n return () => {\n if (!isUndefined(parent)) {\n parent.removeEventListener(eventType, callback, true);\n }\n };\n }, [attachListener, callback, eventType, parent]);\n};\n","import { createContext, PropsWithChildren } from 'react';\n\nimport { LayoutDirection, Direction } from '../../common/direction';\n\nexport const DirectionContext = createContext<LayoutDirection>(Direction.LTR);\n\nexport type DirectionProviderProps = PropsWithChildren<{ direction: LayoutDirection }>;\n\nexport const DirectionProvider = ({ direction, children }: DirectionProviderProps) => {\n return <DirectionContext.Provider value={direction}>{children}</DirectionContext.Provider>;\n};\n","import { useContext } from 'react';\n\nimport { DirectionContext } from '../../../provider/direction/DirectionProvider';\nimport { LayoutDirection } from '../../direction';\n\nexport const useDirection = (): { direction: LayoutDirection; isRTL: boolean } => {\n const direction = useContext(DirectionContext);\n return {\n direction,\n isRTL: direction === 'rtl',\n };\n};\n","import { useEffect, useState } from 'react';\n\nconst ObserverParams = {\n threshold: 0.1,\n};\n\n/**\n * useHasIntersected.\n * Use this custom hook to detect when an element has became visible inside the viewport. This hook checks only if the intersection happend.\n * Once the intersection has happened the hook will not return false even if the element gets out of the viewport.\n *\n * @param elRef.elRef\n * @param {object} [elRef] - node object that contains a react reference to the element that needs to be observed.\n * @param {strimng} [loading = 'eager'] - string that contains the type of loading.\n * @param elRef.loading\n * @usage `const [hasIntersected] = useHasIntersected({imageRef,loading});`\n */\nexport const useHasIntersected = ({ elRef, loading }) => {\n const [hasIntersected, setHasIntersected] = useState(false);\n\n const { current } = elRef || {};\n\n const isValidReference = () => {\n return elRef && current;\n };\n\n const handleOnIntersect = (entries, observer) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n setHasIntersected(true);\n observer.unobserve(current);\n }\n });\n };\n\n useEffect(() => {\n let observer;\n let didCancel = false;\n\n // Check if window is define for SSR and Old browsers fallback\n if (typeof window === 'undefined' || !window.IntersectionObserver || !isValidReference()) {\n setHasIntersected(true);\n } else if (!didCancel) {\n observer = new IntersectionObserver(handleOnIntersect, ObserverParams);\n observer.observe(current);\n }\n return () => {\n didCancel = true;\n if (observer) {\n observer.unobserve(current);\n }\n };\n }, [elRef]);\n\n if (loading === 'eager') {\n return [false];\n }\n\n return [hasIntersected];\n};\n","import { useSyncExternalStore } from 'react';\n\nexport function useMedia(query: string) {\n return useSyncExternalStore(\n (onStoreChange) => {\n const mediaQueryList = window.matchMedia(query);\n mediaQueryList.addEventListener('change', onStoreChange);\n return () => {\n mediaQueryList.removeEventListener('change', onStoreChange);\n };\n },\n () => (typeof window !== 'undefined' ? window.matchMedia(query).matches : undefined),\n () => undefined,\n );\n}\n","import { Breakpoint } from '../propsValues/breakpoint';\n\nimport { useMedia } from './useMedia';\n\nexport function useScreenSize(size: Breakpoint) {\n return useMedia(`(min-width: ${size}px)`);\n}\n","import { Breakpoint } from '../../propsValues/breakpoint';\nimport { useScreenSize } from '../useScreenSize';\n\n/**\n * @deprecated Prefer `useScreenSize` instead.\n */\nexport const useLayout = (): {\n isMobile: boolean | undefined;\n isExtraSmall: boolean | undefined;\n isSmall: boolean | undefined;\n isMedium: boolean | undefined;\n isLarge: boolean | undefined;\n isExtraLarge: boolean | undefined;\n} => {\n const screenXs = useScreenSize(Breakpoint.EXTRA_SMALL);\n const screenSm = useScreenSize(Breakpoint.SMALL);\n const screenMd = useScreenSize(Breakpoint.MEDIUM);\n const screenLg = useScreenSize(Breakpoint.LARGE);\n const screenXl = useScreenSize(Breakpoint.EXTRA_LARGE);\n\n return {\n isMobile: screenSm != null ? !screenSm : undefined,\n isExtraSmall: screenXs,\n isSmall: screenSm,\n isMedium: screenMd,\n isLarge: screenLg,\n isExtraLarge: screenXl,\n };\n};\n","import classnames from 'classnames';\nimport { useRef } from 'react';\n\nimport { useHasIntersected } from '../common/hooks';\n\nexport interface ImageProps {\n alt: string;\n src: string;\n id?: string;\n onLoad?: () => void;\n onError?: () => void;\n className?: string;\n loading?: 'lazy' | 'eager';\n stretch?: boolean;\n role?: string;\n shrink?: boolean;\n}\n\nexport const EmptyTransparentImage =\n 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n\nconst Image = ({\n id,\n src,\n alt,\n onLoad,\n onError,\n className,\n loading,\n stretch = true,\n role,\n shrink = true,\n}: ImageProps) => {\n const elementReference = useRef<HTMLImageElement>(null);\n const [hasIntersected] = useHasIntersected({ elRef: elementReference, loading });\n let imageSource = src;\n let imageOnLoad = onLoad;\n\n if (loading === 'lazy' && !hasIntersected) {\n imageSource = EmptyTransparentImage;\n imageOnLoad = undefined;\n }\n\n return (\n <img\n ref={elementReference}\n id={id}\n alt={alt}\n src={imageSource}\n className={classnames([\n 'tw-image',\n {\n 'tw-image__stretch': stretch,\n 'tw-image__shrink': shrink,\n },\n className,\n ])}\n role={role}\n onLoad={imageOnLoad}\n onError={onError}\n />\n );\n};\n\nexport default Image;\n","import React, { useContext, createContext } from 'react';\n\n/**\n * The type of the PromoCard context object.\n *\n * The context object contains the current state of the PromoCard group, whether\n * the group is disabled or not, and a function to call when the group value\n * changes. This value is used to provide context to child PromoCard components,\n * allowing them to interact with the group and update its state.\n */\ninterface PromoCardContextType {\n /**\n * The current value of the PromoCard group.\n *\n * @default ''\n */\n state: string;\n /**\n * Whether the PromoCard group is disabled or not.\n *\n * @default false\n */\n isDisabled: boolean;\n /**\n * A function to call when the PromoCard group value changes.\n *\n * @param {string} value - The new value of the PromoCard group.\n * @default () => {}\n */\n onChange: (value: string) => void;\n}\n\nconst defaultPromoCardContext: PromoCardContextType = {\n state: '',\n isDisabled: false,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: () => {},\n};\n\n/**\n * The PromoCard context object.\n */\nexport const PromoCardContext = createContext<PromoCardContextType>(defaultPromoCardContext);\n\n/**\n * A custom hook for accessing the PromoCard context object.\n *\n * The `usePromoCardContext` hook is used to access the PromoCard context object\n * from within a child PromoCard component. It throws an error if the context\n * object is not available, which can help with debugging and development.\n *\n * @returns {PromoCardContextType} - The PromoCard context object.\n */\nexport const usePromoCardContext = (): PromoCardContextType => {\n return useContext(PromoCardContext);\n};\n\nexport default PromoCardContext;\n","import { ArrowRight, Check, Download } from '@transferwise/icons';\nimport classNames from 'classnames';\nimport { ReactElement, ReactNode } from 'react';\n\nimport Avatar, { AvatarType } from '../avatar';\nimport Body from '../body';\nimport { Typography } from '../common';\n\nexport type PromoCardIndicatorProps = {\n /** Optional class name(s) to add to the indicator container. */\n className?: string;\n\n /** Optional label to display next to the indicator. */\n label?: string;\n\n /** Optional icon to display in the indicator. */\n icon?: 'check' | 'arrow' | 'download' | ReactElement;\n\n /** Optional prop to specify whether the indicator is sized small or not. */\n isSmall?: boolean;\n\n /** Optional ID to add to the indicator container for testing purposes. */\n testid?: string;\n\n /** Optional children to display inside the indicator. */\n children?: ReactNode;\n};\n\n/**\n * PromoCardIndicator component.\n *\n * A PromoCardIndicator is a small component that can be used to display\n * additional information or actions related to a PromoCard. It can be\n * customized with various props to suit different use cases.\n *\n * @param {string} className - Optional class name(s) to add to the indicator container.\n * @param {string} label - Optional label to display next to the indicator.\n * @param {string | ReactElement} icon - Optional icon to display in the indicator.\n * @param {string} testid - Optional ID to add to the indicator container for testing purposes.\n * @param {ReactNode} children - Optional children to display inside the indicator.\n * @returns {JSX.Element} - The PromoCardIndicator component.\n * @example\n * <PromoCardIndicator label=\"Download\" icon=\"download\" />\n */\nconst PromoCardIndicator: React.FC<PromoCardIndicatorProps> = ({\n className,\n children,\n label,\n icon,\n isSmall = false,\n testid,\n ...rest\n}) => {\n const isIconString = icon && typeof icon === 'string';\n\n const IconComponent =\n isIconString &&\n {\n check: Check,\n arrow: ArrowRight,\n download: Download,\n }[icon];\n\n return (\n <div className={classNames('np-Card-indicator', className)} data-testid={testid} {...rest}>\n {label && (\n <Body as=\"span\" type={Typography.BODY_LARGE_BOLD} className=\"np-Card-indicatorText\">\n {label}\n </Body>\n )}\n {icon && (\n <Avatar\n type={AvatarType.ICON}\n size={isSmall ? 40 : 56}\n backgroundColor=\"var(--Card-indicator-icon-background-color)\"\n className=\"np-Card-indicatorIcon\"\n >\n {IconComponent ? <IconComponent size={24} aria-hidden=\"true\" /> : icon}\n </Avatar>\n )}\n {children}\n </div>\n );\n};\n\nexport default PromoCardIndicator;\n","import { Check } from '@transferwise/icons';\nimport classNames from 'classnames';\nimport React, { forwardRef, FunctionComponent, useEffect, useId, useState } from 'react';\n\nimport Body from '../body';\nimport { Typography } from '../common';\nimport Card, { type CardProps } from '../common/card';\nimport Display from '../display';\nimport Image from '../image/Image';\nimport Title from '../title';\n\nimport { usePromoCardContext } from './PromoCardContext';\nimport PromoCardIndicator, { type PromoCardIndicatorProps } from './PromoCardIndicator';\n\nexport type ReferenceType = React.Ref<HTMLInputElement> | React.Ref<HTMLDivElement>;\nexport type RelatedTypes =\n | ''\n | 'alternate'\n | 'author'\n | 'bookmark'\n | 'external'\n | 'help'\n | 'license'\n | 'next'\n | 'nofollow'\n | 'noreferrer'\n | 'noopener'\n | 'prev'\n | 'search'\n | 'tag';\n\nexport interface PromoCardCommonProps {\n /** Optional prop to specify classNames onto the PromoCard */\n className?: string;\n\n /** Optional prop to specify the ID of the PromoCard */\n id?: string;\n\n /** Required prop to specify the descriptive text of the PromoCard */\n description: string;\n\n /**\n * Optional prop to specify the heading level of the PromoCard\n *\n * @default 'h3'\n */\n headingLevel?: 'h3' | 'h4' | 'h5' | 'h6';\n\n /** Optional prop to specify text for the indicator label of the PromoCard */\n indicatorLabel?: string;\n\n /** Optional prop to specify the icon for the indicator icon of the PromoCard */\n indicatorIcon?: PromoCardIndicatorProps['icon'];\n\n /** Optional prop to specify an image alt text */\n imageAlt?: string;\n\n /** Optional prop to specify an image class */\n imageClass?: string;\n\n /** Optional prop to specify an image source url */\n imageSource?: string;\n\n /** Specify whether the PromoCard is disabled, or not */\n isDisabled?: boolean;\n\n /** Specify an onClick event handler */\n onClick?: () => void;\n\n /** Specify an onKeyDown event handler */\n onKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n\n /** Optional prop to specify the ID used for testing */\n testId?: string;\n\n /** Required prop to specify the title text of the PromoCard */\n title: string;\n\n /** Set to false to use body font style for the title */\n useDisplayFont?: boolean;\n\n ref?: ReferenceType;\n}\n\nexport interface PromoCardLinkProps extends PromoCardCommonProps, Omit<CardProps, 'children'> {\n /**\n * Optional prop to prompts a user to save the linked URL instead of\n * navigating to it\n */\n download?: string;\n\n /** Optionally specify an href for your PromoCard to contain an <a> element */\n href?: string;\n\n /** Optionally specify the language of the linked URL */\n hrefLang?: string;\n\n /** Optional property that can be pass a ref for the anchor. */\n anchorRef?: React.Ref<HTMLAnchorElement>;\n\n /**\n * Optional prop to specify the ID of the anchor element which can be useful when using a ref.\n */\n anchorId?: string;\n\n /**\n * Relationship between the PromoCard href URL and the current page. See\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel).\n */\n rel?: RelatedTypes;\n\n /** Optional prop to to display where the linked URL will show */\n target?: React.HTMLAttributeAnchorTarget;\n\n /** Only applies to role=\"radio\" or \"checkbox\" */\n defaultChecked?: never;\n isChecked?: never;\n tabIndex?: never;\n type?: never;\n ref?: ReferenceType;\n value?: never;\n}\n\nexport interface PromoCardCheckedProps extends PromoCardCommonProps, Omit<CardProps, 'children'> {\n /** Specify the initial checked attribute of the PromoCard */\n defaultChecked?: boolean;\n\n /** Specify whether the PromoCard is checked, or not */\n isChecked?: boolean;\n\n /** Optional prop to specify the tabIndex of the PromoCard */\n tabIndex?: number;\n\n /** Optional property to provide component Ref */\n ref?: ReferenceType;\n\n /** Optional prop to specify the input type of the PromoCard */\n type?: 'checkbox' | 'radio';\n\n /** Specify the value attribute of the PromoCard if Checkbox or Radio */\n value?: string;\n\n /** Only applies to <a />s */\n download?: never;\n href?: never;\n anchorRef?: never;\n anchorId?: never;\n hrefLang?: never;\n rel?: never;\n target?: never;\n}\n\nexport type PromoCardProps = PromoCardLinkProps | PromoCardCheckedProps;\n\nexport type PolymorphicPromoCard = (\n props: PromoCardLinkProps | PromoCardCheckedProps,\n) => React.JSX.Element;\n\n/**\n * PromoCard component.\n *\n * PromoCard is a marketing style component that is used to group marketing\n * product related information (such as choosing Card types). It can be used to\n * display information in a structured way, and can be customized with various\n * props to suit different use cases.\n *\n * @component\n * @param {string} className - Additional class name for the PromoCard.\n * @param {string} description - Description text for the PromoCard.\n * @param {boolean} defaultChecked - Initial checked state for checkboxes and radios.\n * @param {string} download - Download file name for links.\n * @param {string} href - URL for links.\n * @param {string} hrefLang - Language code for linked URL.\n * @param {string} id - ID of the PromoCard.\n * @param {string} imageAlt - Alt text for the image.\n * @param {string} imageSource - Source URL of the image.\n * @param {string} indicatorLabel - Label for the indicator icon.\n * @param {boolean} isChecked - Checked state for checkboxes and radios.\n * @param {boolean} isDisabled - Whether the PromoCard is disabled.\n * @param {Function} onClick - Click event handler for the PromoCard.\n * @param {string} rel - Relationship between the URL and the current page.\n * @param {number} tabIndex - Tab index for keyboard navigation.\n * @param {string} target - Target window for links.\n * @param {string} testId - ID used for testing.\n * @param {string} title - Title text of the PromoCard.\n * @param {('checkbox'|'radio')} type - Type of the PromoCard (checkbox, radio).\n * @param {string} value - Value for checkboxes and radios.\n * @returns {React.JSX.Element} The rendered PromoCard component.\n * @example\n * <PromoCard\n * title=\"Example PromoCard\"\n * description=\"This is an example PromoCard with a link variation.\"\n * href=\"https://example.com\"\n * target=\"_blank\"\n * imageSource=\"https://example.com/image.png\"\n * imageAlt=\"Example Image\"\n * indicatorLabel=\"Learn More\"\n * />\n */\nconst PromoCard: FunctionComponent<PromoCardProps> = forwardRef(\n (\n {\n className,\n description,\n defaultChecked,\n download,\n href,\n hrefLang,\n id,\n headingLevel = 'h3',\n imageAlt,\n imageClass,\n imageSource,\n indicatorLabel,\n indicatorIcon,\n isChecked,\n isDisabled,\n onClick,\n onKeyDown,\n rel,\n tabIndex,\n target,\n testId,\n title,\n type,\n value,\n isSmall,\n useDisplayFont = true,\n anchorRef,\n anchorId,\n ...props\n },\n ref: ReferenceType,\n ) => {\n // Set the `checked` state to the value of `defaultChecked` if it is truthy,\n // or the value of `isChecked` if it is truthy, or `false` if neither\n // is truthy.\n const { state, onChange, isDisabled: contextIsDisabled } = usePromoCardContext();\n const [checked, setChecked] = useState(\n type === 'checkbox' ? defaultChecked ?? isChecked ?? false : false,\n );\n\n const handleClick = () => {\n if (type === 'radio') {\n onChange(value || ''); // Update the context state for radio\n } else if (type === 'checkbox') {\n setChecked(!checked); // Update local state for checkbox\n }\n };\n\n const fallbackId = useId();\n const componentId = id || fallbackId;\n\n // Set the icon to `'arrow'` if `href` is truthy and `type` is falsy, or\n // `'download'` if `download` is truthy. If neither condition is true, set\n // `icon` to `undefined`.\n\n // Create a function to get icon type\n const getIconType = () => {\n if (indicatorIcon) {\n return indicatorIcon;\n }\n\n if (download) {\n return 'download';\n }\n\n if (href && !type) {\n return 'arrow';\n }\n\n return undefined;\n };\n\n const CardTitle = useDisplayFont ? Display : Title;\n\n // Define all class names string based on the values of the `href`, `type`,\n // `checked`, and `className` props.\n const commonClasses = classNames(\n {\n 'np-Card--promoCard': true,\n 'np-Card--checked': !href && type,\n 'np-Card--link': href && !type,\n 'is-checked':\n type === 'radio' ? value === state : type === 'checkbox' ? checked : undefined,\n },\n className,\n );\n\n // Object with common props that will be passed to the `Card` components\n const commonProps = {\n className: commonClasses,\n id: componentId,\n isDisabled: isDisabled || contextIsDisabled,\n onClick,\n onKeyDown,\n ref,\n 'data-testid': testId,\n isSmall,\n };\n\n // Object with Anchor props that will be passed to the `a` element. These\n // won't be refurned if set to `isDisabled`\n const anchorProps =\n href && !isDisabled\n ? {\n download,\n href: href || undefined,\n hrefLang,\n rel,\n target,\n ref: anchorRef,\n id: anchorId,\n }\n : {};\n\n // Object of all Checked props that will be passed to the root `Card` component\n const checkedProps =\n (type === 'checkbox' || type === 'radio') && !href\n ? {\n ...commonProps,\n 'aria-checked':\n type === 'radio' ? value === state : type === 'checkbox' ? checked : undefined,\n 'aria-describedby': `${componentId}-title`,\n 'aria-disabled': isDisabled,\n 'data-value': value ?? undefined,\n role: type === 'checkbox' || type === 'radio' ? type : undefined,\n onClick: handleClick,\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n handleClick();\n }\n },\n ref,\n tabIndex: 0,\n }\n : {};\n\n const getTitle = () => {\n const titleContent =\n href && !type ? (\n <a className=\"np-Card-titleLink\" {...anchorProps}>\n {title}\n </a>\n ) : (\n title\n );\n\n const titleProps = {\n id: `${componentId}-title`,\n as: headingLevel,\n className: 'np-Card-title',\n };\n\n return useDisplayFont ? (\n <Display type={Typography.DISPLAY_SMALL} {...titleProps}>\n {titleContent}\n </Display>\n ) : (\n <Title type={Typography.TITLE_SUBSECTION} {...titleProps}>\n {titleContent}\n </Title>\n );\n };\n\n useEffect(() => {\n setChecked(defaultChecked ?? isChecked ?? false);\n }, [defaultChecked, isChecked]);\n\n return (\n <Card {...commonProps} {...checkedProps} {...props}>\n {(value === state || checked) && (\n <span className=\"np-Card-check\">\n <Check size={24} aria-hidden=\"true\" />\n </span>\n )}\n\n {getTitle()}\n\n <Body className=\"np-Card-description\">{description}</Body>\n\n {imageSource && (\n <div className={classNames('np-Card-image', { imageClass })}>\n <Image src={imageSource} alt={imageAlt || ''} loading=\"lazy\" />\n </div>\n )}\n\n <PromoCardIndicator label={indicatorLabel} icon={getIconType()} isSmall={isSmall} />\n </Card>\n );\n },\n) as PolymorphicPromoCard;\n\nexport default React.memo(PromoCard);\n","import { ChevronLeft, ChevronRight } from '@transferwise/icons';\nimport classNames from 'classnames';\nimport { type CSSProperties, type ReactNode, useEffect, useRef, useState } from 'react';\n\nimport ActionButton from '../actionButton';\nimport Title from '../title';\nimport type { PromoCardLinkProps } from '../promoCard/PromoCard';\nimport PromoCard from '../promoCard/PromoCard';\n\nexport type CarouselCardCommon = {\n id: string;\n href?: string;\n hrefTarget?: HTMLAnchorElement['target'];\n onClick?: () => void;\n className?: string;\n styles?: CSSProperties;\n};\n\nexport type CarouselDefaultCard = CarouselCardCommon & {\n type: 'anchor' | 'button';\n content: ReactNode;\n};\n\nexport type CarouselPromoCard = CarouselCardCommon & {\n type: 'promo';\n} & Omit<PromoCardLinkProps, 'type'>;\n\nexport type CarouselCard = CarouselDefaultCard | CarouselPromoCard;\nexport interface CarouselProps {\n header: string | ReactNode;\n className?: string;\n cards: CarouselCard[];\n onClick?: (cardId: string) => void;\n}\n\ntype CardsReference = {\n type: 'promo' | 'default';\n cardElement: HTMLDivElement | HTMLAnchorElement;\n anchorElement?: HTMLAnchorElement;\n};\n\nconst LEFT_SCROLL_OFFSET = 8;\n\nconst Carousel: React.FC<CarouselProps> = ({ header, className, cards, onClick }) => {\n const [scrollPosition, setScrollPosition] = useState(0);\n const [previousScrollPosition, setPreviousScrollPosition] = useState(0);\n const [scrollIsAtEnd, setScrollIsAtEnd] = useState(false);\n const [visibleCardOnMobileView, setVisibleCardOnMobileView] = useState<string>('');\n const carouselElementRef = useRef<HTMLDivElement>(null);\n const carouselCardsRef = useRef<CardsReference[]>([]);\n\n const isLeftActionButtonEnabled = scrollPosition > LEFT_SCROLL_OFFSET;\n\n const areActionButtonsEnabled = isLeftActionButtonEnabled || !scrollIsAtEnd;\n\n const [focusedCard, setFocusedCard] = useState(cards?.[0]?.id);\n\n const updateScrollButtonsState = () => {\n if (carouselElementRef.current) {\n const { scrollWidth, offsetWidth } = carouselElementRef.current;\n\n const scrollAtEnd = scrollWidth - offsetWidth <= scrollPosition + LEFT_SCROLL_OFFSET;\n setScrollIsAtEnd(scrollAtEnd);\n }\n\n const scrollDirecton = scrollPosition > previousScrollPosition ? 'right' : 'left';\n\n const cardsInFullViewIds: string[] = [];\n carouselCardsRef.current.forEach((card) => {\n if (isVisible(carouselElementRef.current as HTMLElement, card.cardElement as HTMLElement)) {\n // eslint-disable-next-line functional/immutable-data\n cardsInFullViewIds.push(card.cardElement.getAttribute('id') ?? '');\n }\n });\n\n if (cardsInFullViewIds.length >= 1) {\n const visibleCardIndex = scrollDirecton === 'right' ? cardsInFullViewIds.length - 1 : 0;\n const visibleCardId = cardsInFullViewIds[visibleCardIndex];\n setVisibleCardOnMobileView(visibleCardId);\n setFocusedCard(visibleCardId);\n }\n\n setPreviousScrollPosition(scrollPosition);\n };\n\n const scrollCarousel = (direction: 'left' | 'right' = 'right') => {\n if (carouselElementRef.current) {\n const { scrollWidth } = carouselElementRef.current;\n\n const cardWidth = scrollWidth / carouselCardsRef.current.length;\n\n const res = Math.floor(cardWidth - cardWidth * 0.05);\n\n carouselElementRef.current.scrollBy({\n left: direction === 'right' ? res : -res,\n behavior: 'smooth',\n });\n }\n };\n\n const handleOnKeyDown = (\n event: React.KeyboardEvent<HTMLAnchorElement | HTMLDivElement>,\n index: number,\n ) => {\n if (event.key === 'ArrowRight' || event.key === 'ArrowLeft') {\n const nextIndex = event.key === 'ArrowRight' ? index + 1 : index - 1;\n const nextCard = cards[nextIndex];\n if (nextCard) {\n const ref = carouselCardsRef.current[nextIndex];\n if (ref.type === 'promo') {\n ref.anchorElement?.focus();\n } else {\n ref.cardElement?.focus();\n }\n\n scrollCardIntoView(carouselCardsRef.current[nextIndex].cardElement, nextCard);\n event.preventDefault();\n }\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.currentTarget.click();\n }\n };\n\n const scrollCardIntoView = (element: HTMLElement, card: CarouselCard) => {\n element.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'center',\n });\n\n setFocusedCard(card.id);\n };\n\n useEffect(() => {\n updateScrollButtonsState();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [scrollPosition]);\n\n useEffect(() => {\n window.addEventListener('resize', updateScrollButtonsState);\n\n return () => {\n window.removeEventListener('resize', updateScrollButtonsState);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const addElementToCardsRefArray = (index: number, ref: Partial<CardsReference>) => {\n if (ref) {\n // eslint-disable-next-line functional/immutable-data\n carouselCardsRef.current[index] = {\n type: ref.type ?? carouselCardsRef.current?.[index]?.type,\n cardElement: ref.cardElement ?? carouselCardsRef.current?.[index]?.cardElement,\n anchorElement: ref.anchorElement ?? carouselCardsRef.current?.[index]?.anchorElement,\n };\n }\n };\n\n return (\n <div className={classNames('carousel-wrapper', className)}>\n <div className=\"d-flex justify-content-between carousel__header\">\n {typeof header === 'string' ? (\n <Title as=\"span\" type=\"title-body\">\n {header}\n </Title>\n ) : (\n header\n )}\n {areActionButtonsEnabled ? (\n <div className=\"hidden-xs\">\n <ActionButton\n className=\"carousel__scroll-button\"\n tabIndex={-1}\n priority=\"secondary\"\n disabled={!isLeftActionButtonEnabled}\n aria-hidden=\"true\"\n data-testid=\"scroll-carousel-left\"\n onClick={() => scrollCarousel('left')}\n >\n <ChevronLeft />\n </ActionButton>\n <ActionButton\n tabIndex={-1}\n className=\"carousel__scroll-button m-l-1\"\n priority=\"secondary\"\n aria-hidden=\"true\"\n data-testid=\"scroll-carousel-right\"\n disabled={scrollIsAtEnd}\n onClick={() => scrollCarousel()}\n >\n <ChevronRight />\n </ActionButton>\n </div>\n ) : null}\n </div>\n <div\n ref={carouselElementRef}\n tabIndex={-1}\n role=\"list\"\n className=\"carousel\"\n onScroll={(event) => {\n const target = event.target as HTMLElement;\n setScrollPosition(target.scrollLeft);\n }}\n >\n {cards?.map((card, index) => {\n const sharedProps = {\n id: card.id,\n className: classNames('carousel__card', {\n 'carousel__card--focused': card.id === focusedCard,\n }),\n onClick: () => {\n card.onClick?.();\n onClick?.(card.id);\n },\n onFocus: (event: React.FocusEvent<HTMLAnchorElement | HTMLDivElement>) => {\n scrollCardIntoView(event.currentTarget, card);\n },\n };\n\n const cardContent =\n card.type !== 'promo' ? (\n <div\n id={`${card.id}-content`}\n className={classNames('carousel__card-content', {\n [card.className ?? '']: !!card.className,\n })}\n // eslint-disable-next-line react/forbid-dom-props\n style={card.styles}\n >\n {card.content}\n </div>\n ) : null;\n\n if (card.type === 'button') {\n return (\n <div key={card.id} aria-labelledby={`${card.id}-content`} role=\"listitem\">\n <div\n {...sharedProps}\n ref={(el) => {\n if (el) {\n // eslint-disable-next-line functional/immutable-data\n carouselCardsRef.current[index] = {\n type: 'default',\n cardElement: el,\n };\n }\n }}\n role=\"button\"\n tabIndex={0}\n onKeyDown={(event) => handleOnKeyDown(event, index)}\n >\n {cardContent}\n </div>\n </div>\n );\n }\n\n if (card.type === 'promo') {\n return (\n <div key={card.id} id={card.id} role=\"listitem\" aria-labelledby={`${card.id}-anchor`}>\n <PromoCard\n {...{ ...card, type: undefined }}\n {...{ ...sharedProps }}\n ref={(el: HTMLDivElement | null) => {\n if (el) {\n addElementToCardsRefArray(index, {\n type: 'promo',\n cardElement: el,\n });\n }\n }}\n anchorRef={(el: HTMLAnchorElement) => {\n if (el) {\n addElementToCardsRefArray(index, {\n type: 'promo',\n anchorElement: el,\n });\n }\n }}\n anchorId={`${card.id}-anchor`}\n onKeyDown={(event) => handleOnKeyDown(event, index)}\n />\n </div>\n );\n }\n\n return (\n <div key={card.id} aria-labelledby={`${card.id}-content`} role=\"listitem\">\n <a\n {...sharedProps}\n ref={(el) => {\n if (el) {\n // eslint-disable-next-line functional/immutable-data\n carouselCardsRef.current[index] = {\n type: 'default',\n cardElement: el,\n };\n }\n }}\n href={card.href}\n target={card.hrefTarget}\n rel=\"noreferrer\"\n onKeyDown={(event) => handleOnKeyDown(event, index)}\n >\n {cardContent}\n </a>\n </div>\n );\n })}\n </div>\n <div className=\"visible-xs\">\n <div className=\"carousel__indicators\">\n {cards?.map((card, index) => (\n <button\n key={`${card.id}-indicator`}\n data-testid={`${card.id}-indicator`}\n tabIndex={-1}\n aria-hidden\n type=\"button\"\n className={classNames('carousel__indicator', {\n 'carousel__indicator--selected': card.id === visibleCardOnMobileView,\n })}\n onClick={() => {\n scrollCardIntoView(carouselCardsRef.current[index].cardElement, card);\n }}\n />\n ))}\n </div>\n </div>\n </div>\n );\n};\n\nconst isVisible = (container: HTMLElement, el: HTMLElement) => {\n const cWidth = container.offsetWidth;\n const cScrollOffset = container.scrollLeft;\n\n const elemLeft = el.offsetLeft - container.offsetLeft;\n const elemRight = elemLeft + el.offsetWidth;\n\n return elemLeft >= cScrollOffset && elemRight <= cScrollOffset + cWidth;\n};\n\nexport default Carousel;\n","import classNames from 'classnames';\nimport { forwardRef } from 'react';\n\nimport Body from '../body';\nimport Chevron from '../chevron';\nimport { Position, Typography } from '../common';\nimport Option from '../common/Option';\n\nexport interface CardProps {\n 'aria-label'?: string;\n as?: React.ElementType;\n isExpanded?: boolean;\n title: React.ReactNode;\n details: React.ReactNode;\n icon?: React.ReactNode;\n children?: React.ReactNode;\n id?: string;\n className?: string;\n 'data-testid'?: string;\n onClick?: (nextIsExpanded: boolean) => void;\n}\n\nconst Card = forwardRef(function Card(\n {\n 'aria-label': ariaLabel,\n as: Element = 'div',\n isExpanded,\n title,\n details,\n children,\n onClick,\n icon,\n id,\n className,\n 'data-testid': dataTestId,\n }: CardProps,\n reference,\n) {\n const isOpen = !!(isExpanded && children);\n\n return (\n <Element\n ref={reference}\n className={classNames('np-card', className, {\n 'np-card--expanded': isOpen,\n 'np-card--inactive': !children,\n 'np-card--has-icon': !!icon,\n })}\n id={id}\n data-testid={dataTestId}\n >\n <Option\n aria-label={ariaLabel}\n as={children ? 'button' : 'div'}\n className={classNames('np-card__button')}\n media={icon}\n title={title}\n content={details}\n showMediaAtAllSizes\n button={children && <Chevron orientation={isOpen ? Position.TOP : Position.BOTTOM} />}\n onClick={children ? () => onClick?.(!isExpanded) : undefined}\n />\n <div\n className={classNames('np-card__divider', {\n 'np-card__divider--expanded': isOpen,\n })}\n />\n {isOpen && (\n <Body as=\"span\" type={Typography.BODY_LARGE} className=\"np-card__content d-block\">\n {children}\n </Body>\n )}\n </Element>\n );\n});\n\nexport default Card;\n","import { createContext, useContext } from 'react';\n\nconst FieldLabelIdContext = createContext<string | undefined>(undefined);\nexport const FieldLabelIdContextProvider = FieldLabelIdContext.Provider;\n\nconst InputIdContext = createContext<string | undefined>(undefined);\nexport const InputIdContextProvider = InputIdContext.Provider;\n\nconst InputDescribedByContext = createContext<string | undefined>(undefined);\nexport const InputDescribedByProvider = InputDescribedByContext.Provider;\n\nconst InputInvalidContext = createContext<boolean | undefined>(undefined);\nexport const InputInvalidProvider = InputInvalidContext.Provider;\n\ninterface UseInputAttributesArgs {\n /** Set this to `true` if the underlying element is not directly [labelable as per the HTML specification](https://html.spec.whatwg.org/multipage/forms.html#category-label). */\n nonLabelable?: boolean;\n}\n\nexport function useInputAttributes({ nonLabelable }: UseInputAttributesArgs = {}) {\n const labelId = useContext(FieldLabelIdContext);\n return {\n id: useContext(InputIdContext),\n 'aria-labelledby': nonLabelable ? labelId : undefined,\n 'aria-describedby': useContext(InputDescribedByContext),\n 'aria-invalid': useContext(InputInvalidContext),\n } satisfies React.HTMLAttributes<HTMLElement>;\n}\n\nexport interface WithInputAttributesProps {\n inputAttributes: ReturnType<typeof useInputAttributes>;\n}\n\nexport function withInputAttributes<T extends Partial<WithInputAttributesProps>>(\n Component: React.ComponentType<T>,\n args?: UseInputAttributesArgs,\n) {\n function ComponentWithInputAttributes(props: Omit<T, keyof WithInputAttributesProps>) {\n return <Component inputAttributes={useInputAttributes(args)} {...(props as T)} />;\n }\n\n ComponentWithInputAttributes.displayName = `withInputAttributes(${Component.displayName || Component.name || 'Component'})`;\n\n return ComponentWithInputAttributes;\n}\n","import classNames from 'classnames';\nimport { InputHTMLAttributes, forwardRef } from 'react';\n\nimport { useInputAttributes } from '../inputs/contexts';\n\nexport type CheckboxButtonProps = InputHTMLAttributes<HTMLInputElement>;\n\nconst CheckboxButton = forwardRef<HTMLInputElement, CheckboxButtonProps>(function CheckboxButton(\n { checked, className, disabled, onChange, ...rest },\n reference,\n) {\n const inputAttributes = useInputAttributes();\n\n return (\n <span className={classNames('np-checkbox-button', className, disabled && 'disabled')}>\n <input\n {...inputAttributes}\n {...rest}\n ref={reference}\n type=\"checkbox\"\n disabled={disabled}\n checked={checked}\n onChange={onChange}\n />\n <span className=\"tw-checkbox-button\">\n <span className=\"tw-checkbox-check\" />\n </span>\n </span>\n );\n});\n\nexport default CheckboxButton;\n","import classNames from 'classnames';\n\nimport Body from '../body/Body';\nimport CheckboxButton from '../checkboxButton';\nimport { Typography } from '../common';\n\nexport interface CheckboxProps {\n id?: string;\n checked?: boolean;\n required?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n label: React.ReactNode;\n secondary?: string;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onChange: (checked: boolean) => void;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n className?: string;\n}\n\nexport default function Checkbox({\n id,\n checked,\n required,\n disabled,\n readOnly,\n label,\n className,\n secondary,\n onChange,\n onFocus,\n onBlur,\n}: CheckboxProps) {\n const classList = classNames(\n 'np-checkbox',\n {\n checkbox: true,\n 'checkbox-lg': secondary,\n disabled,\n },\n className,\n );\n\n const innerDisabled = disabled || readOnly;\n return (\n <div id={id} className={classList}>\n {/* eslint-disable-next-line jsx-a11y/label-has-for */}\n <label className={classNames({ disabled })}>\n <CheckboxButton\n className=\"p-r-2\"\n checked={checked}\n disabled={innerDisabled}\n required={!innerDisabled && required}\n onFocus={onFocus}\n onChange={() => onChange(!checked)}\n onBlur={onBlur}\n />\n <Body\n as=\"span\"\n className=\"np-checkbox__text\"\n type={secondary ? Typography.BODY_LARGE_BOLD : Typography.BODY_LARGE}\n >\n <span className={required ? 'has-required' : undefined}>{label}</span>\n {secondary && <Body as=\"span\">{secondary}</Body>}\n </Body>\n </label>\n </div>\n );\n}\n","import { forwardRef } from 'react';\n\nimport CheckboxButton from '../checkboxButton';\nimport Option from '../common/Option';\nimport { ReferenceType } from '../common/Option/Option';\nimport { BaseOptionProps } from '../common/Option/Option';\n\nexport type CheckboxOptionProps = Omit<BaseOptionProps, 'onChange'> & {\n /**\n * The checked state of the checkbox.\n */\n checked?: boolean;\n /**\n * Function to call when the checkbox option is clicked\n */\n onChange?: (value: boolean) => void;\n};\n\nconst CheckboxOption = forwardRef<ReferenceType, CheckboxOptionProps>(\n ({ checked, disabled, onChange, ...rest }, reference) => {\n return (\n <Option\n {...rest}\n ref={reference}\n disabled={disabled}\n button={\n <CheckboxButton\n checked={checked}\n disabled={disabled}\n onChange={() => onChange?.(!checked)}\n />\n }\n />\n );\n },\n);\n\nexport default CheckboxOption;\n","import { useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\nimport { useEffect, useRef } from 'react';\n\nimport Body from '../body/Body';\nimport { AriaLabelProperty, CommonProps, Typography } from '../common';\nimport { CloseButton } from '../common/closeButton/CloseButton';\n\nexport type ChipValue = string | number;\n\nexport type Props = {\n value?: ChipValue;\n label: string;\n onRemove?: () => void;\n onClick?: () => void;\n onKeyPress?: () => void;\n closeButton?: AriaLabelProperty;\n 'aria-checked'?: boolean;\n role?: string;\n} & AriaLabelProperty &\n CommonProps;\n\nconst Chip = ({\n label,\n value,\n onRemove,\n onClick,\n onKeyPress,\n className = undefined,\n 'aria-label': ariaLabel,\n 'aria-checked': ariaChecked,\n role,\n closeButton,\n}: Props) => {\n const isActionable = onClick || onKeyPress;\n const defaultRole = isActionable ? 'button' : undefined;\n const tabIndex = isActionable ? 0 : -1;\n\n const { isModern } = useTheme();\n\n const closeButtonReference = useRef<HTMLButtonElement>(null);\n const previousCloseButtonShown = useRef<boolean | undefined>(undefined);\n useEffect(() => {\n if (closeButtonReference.current != null && previousCloseButtonShown.current === false) {\n closeButtonReference.current?.focus();\n }\n previousCloseButtonShown.current = closeButtonReference.current != null;\n }, [onRemove]);\n\n return (\n <div\n key={value}\n role={role ?? defaultRole}\n tabIndex={tabIndex}\n aria-label={ariaLabel}\n aria-checked={ariaChecked}\n className={classNames(\n 'np-chip',\n 'd-flex',\n 'align-items-center',\n 'justify-content-between',\n onRemove ? 'np-chip--removable' : '',\n className,\n )}\n {...(isActionable && { onClick, onKeyPress })}\n >\n {isModern ? (\n <Body aria-hidden={!!onRemove} type={Typography.BODY_DEFAULT_BOLD}>\n {label}\n </Body>\n ) : (\n <span aria-hidden=\"false\" className=\"np-chip-label\">\n {label}\n </span>\n )}\n {onRemove ? (\n <CloseButton\n ref={closeButtonReference}\n className={isModern ? `btn-unstyled` : `btn-unstyled m-l-1`}\n aria-label={closeButton?.['aria-label']}\n size=\"sm\"\n filled={isModern}\n onClick={onRemove}\n />\n ) : null}\n </div>\n );\n};\n\nexport default Chip;\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n ariaLabel: {\n id: 'neptune.Chips.ariaLabel',\n defaultMessage: 'Clear {choice}',\n description: 'Clear button for chip',\n },\n});\n","import classNames from 'classnames';\nimport { useIntl } from 'react-intl';\n\nimport { CommonProps, AriaLabelProperty } from '../common';\n\nimport Chip from './Chip';\nimport messages from './Chips.messages';\n\nexport type ChipValue = string | number;\n\nexport type Chip = {\n value: ChipValue;\n label: string;\n};\n\nexport type ChipsProps = CommonProps &\n AriaLabelProperty & {\n /** List of chips with string labels and string/number values */\n chips: readonly Chip[];\n /** Callback which is invoked when a chip is selected or deselected */\n onChange: ({\n isEnabled,\n selectedValue,\n }: {\n isEnabled: boolean;\n selectedValue: ChipValue;\n }) => void;\n /** Used to manage which chips are selected */\n selected: ChipValue | readonly ChipValue[];\n /** Used to activate multi-selection */\n multiple?: boolean;\n };\n\nconst Chips = ({\n chips,\n onChange,\n selected,\n 'aria-label': ariaLabel,\n className,\n multiple,\n}: ChipsProps) => {\n const intl = useIntl();\n\n const isSelected = (value: ChipValue) =>\n Array.isArray(selected) ? selected.includes(value) : selected === value;\n\n const handleOnChange = (selectedValue: ChipValue, isCurrentlyEnabled: boolean) => {\n onChange({ isEnabled: !isCurrentlyEnabled, selectedValue });\n };\n\n return (\n <div\n className={classNames('np-chips d-flex', className)}\n aria-label={ariaLabel}\n role={!multiple ? 'radiogroup' : undefined}\n >\n {chips.map((chip) => {\n const chipSelected = isSelected(chip.value);\n return (\n <Chip\n key={chip.value}\n value={chip.value}\n label={chip.label}\n closeButton={{\n 'aria-label': intl.formatMessage(messages.ariaLabel, { choice: chip.label }),\n }}\n className={classNames('text-xs-nowrap', {\n 'np-chip--selected': chipSelected,\n 'p-r-1': multiple && chipSelected,\n })}\n {...(multiple && chipSelected\n ? {\n onRemove: () => handleOnChange(chip.value, chipSelected),\n 'aria-label': chip.label,\n }\n : {\n onClick: () => handleOnChange(chip.value, chipSelected),\n onKeyPress: () => handleOnChange(chip.value, chipSelected),\n role: !multiple ? 'radio' : undefined,\n 'aria-checked': chipSelected,\n })}\n />\n );\n })}\n </div>\n );\n};\n\nexport default Chips;\n","import classNames from 'classnames';\nimport { cloneElement } from 'react';\n\nimport Body from '../body/Body';\nimport { typeClassMap, priorityClassMap } from '../button/classMap';\nimport { ControlType, Priority } from '../common';\nimport { Typography } from '../common';\n\nexport interface CircularButtonProps {\n className?: string;\n children: string;\n disabled?: boolean;\n icon: React.ReactElement<{ size?: unknown }>;\n onClick?: React.MouseEventHandler<HTMLInputElement>;\n priority?: `${Priority.PRIMARY | Priority.SECONDARY}`;\n type?: `${ControlType.ACCENT | ControlType.POSITIVE | ControlType.NEGATIVE}`;\n}\n\nconst CircularButton = ({\n className,\n children,\n disabled,\n icon,\n priority = Priority.PRIMARY,\n type = ControlType.ACCENT,\n ...rest\n}: CircularButtonProps) => {\n const classes = classNames('btn np-btn', typeClassMap[type], priorityClassMap[priority]);\n\n const iconElement = Number(icon.props.size) !== 24 ? cloneElement(icon, { size: 24 }) : icon;\n\n return (\n <label\n className={classNames('np-circular-btn', priority, type, disabled && 'disabled', className)}\n >\n <input\n type=\"button\"\n aria-label={children}\n className={classes}\n disabled={disabled}\n {...rest}\n />\n {iconElement}\n <Body as=\"span\" className=\"np-circular-btn__label\" type={Typography.BODY_DEFAULT_BOLD}>\n {children}\n </Body>\n </label>\n );\n};\n\nexport default CircularButton;\n","import { FocusScope } from '@react-aria/focus';\nimport { useEffect, useRef } from 'react';\n\ntype FocusBoundaryProps = {\n children: React.ReactNode;\n};\n\nconst FocusBoundary = ({ children }: FocusBoundaryProps) => {\n const wrapperReference = useRef<HTMLDivElement>(null);\n useEffect(() => {\n wrapperReference.current?.focus({ preventScroll: true });\n }, []);\n\n return (\n <FocusScope contain restoreFocus>\n <div ref={wrapperReference} tabIndex={-1}>\n {children}\n </div>\n </FocusScope>\n );\n};\n\nexport default FocusBoundary;\n","import { useState, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\n\nexport default function withNextPortalWrapper<T extends Record<string, any>>(\n Component: React.ComponentType<T>,\n) {\n return function (props: T) {\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n }, [setMounted]);\n return mounted ? createPortal(<Component {...props} />, document.body) : null;\n };\n}\n","/**\n * Dimmer state management inspired by Material UI's ModalManager (https://github.com/mui-org/material-ui)\n */\nexport default class DimmerManager {\n /**\n * Dimmer refs\n */\n private dimmers: Element[];\n\n constructor() {\n this.dimmers = [];\n }\n\n add(dimmer: Element): number {\n let dimmerIndex = this.dimmers.indexOf(dimmer);\n if (dimmerIndex !== -1) {\n return dimmerIndex;\n }\n\n dimmerIndex = this.dimmers.length;\n this.dimmers.push(dimmer);\n return dimmerIndex;\n }\n\n remove(dimmer: Element): number {\n const dimmerIndex = this.dimmers.indexOf(dimmer);\n\n if (dimmerIndex !== -1) {\n this.dimmers.splice(dimmerIndex, 1);\n }\n return dimmerIndex;\n }\n\n isTop(dimmer: Element): boolean {\n return this.dimmers.length > 0 && this.dimmers[this.dimmers.length - 1] === dimmer;\n }\n}\n","import { ThemeProvider, useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\nimport { MouseEvent, ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport { CSSTransition } from 'react-transition-group';\n\nimport {\n addNoScrollClass,\n CommonProps,\n PositionBottom,\n PositionCenter,\n PositionTop,\n removeNoScrollClass,\n} from '../common';\nimport { isIosDevice } from '../common/deviceDetection';\nimport FocusBoundary from '../common/focusBoundary';\nimport withNextPortal from '../withNextPortal/withNextPortal';\n\nimport DimmerManager from './dimmerManager';\n\nexport const EXIT_ANIMATION = 350;\n\nconst dimmerManager = new DimmerManager();\n\nexport type DimmerProps = CommonProps & {\n children?: ReactNode;\n disableClickToClose?: boolean;\n contentPosition?: PositionTop | PositionCenter | PositionBottom;\n fadeContentOnEnter?: boolean;\n fadeContentOnExit?: boolean;\n open?: boolean;\n scrollable?: boolean;\n transparent?: boolean;\n onClose?: (event: KeyboardEvent | MouseEvent) => void;\n};\n\nexport const handleTouchMove = (event: Event) => {\n const isTouchedElementDimmer = (event.target as HTMLDivElement).classList.contains('dimmer');\n\n // disable scroll on iOS devices for Dimmer area\n // this is because of bug in WebKit https://bugs.webkit.org/show_bug.cgi?id=220908\n // note: scrolling still works for children(s) as expected\n if (isIosDevice() && isTouchedElementDimmer) {\n event.stopPropagation();\n event.preventDefault();\n }\n};\n\nconst Dimmer = ({\n children,\n className,\n disableClickToClose = false,\n contentPosition,\n fadeContentOnEnter = false,\n fadeContentOnExit = false,\n open = false,\n scrollable = false,\n transparent = false,\n onClose,\n}: DimmerProps) => {\n const [hasNotExited, setHasNotExited] = useState(false);\n const dimmerReference = useRef<HTMLDivElement>(null);\n\n const closeOnClick = (event: MouseEvent<HTMLDivElement>) => {\n if (event.target === dimmerReference.current) {\n onClose?.(event);\n }\n };\n\n const handleClick = (event: MouseEvent<HTMLDivElement>) => {\n if (disableClickToClose || !onClose) {\n return;\n }\n\n closeOnClick(event);\n };\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key !== 'Escape') {\n return;\n }\n event.stopPropagation();\n\n if (onClose && dimmerReference.current && dimmerManager.isTop(dimmerReference.current)) {\n onClose(event);\n }\n },\n [onClose],\n );\n\n const onEnter = () => {\n setHasNotExited(true);\n\n if (dimmerReference.current) {\n dimmerManager.add(dimmerReference.current);\n }\n };\n const onExited = () => {\n setHasNotExited(false);\n\n if (dimmerReference.current) {\n dimmerManager.remove(dimmerReference.current);\n }\n };\n\n useEffect(() => {\n const localReferenceCopy = dimmerReference.current;\n\n if (open) {\n document.addEventListener('keydown', handleKeyDown);\n localReferenceCopy?.addEventListener('touchmove', handleTouchMove, { passive: true });\n }\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n\n localReferenceCopy?.removeEventListener('touchmove', handleTouchMove);\n };\n }, [handleKeyDown, open]);\n\n return (\n <DimmerWrapper open={open} hasNotExited={hasNotExited}>\n <CSSTransition\n nodeRef={dimmerReference}\n in={open}\n appear\n // Wait for animation to finish before unmount.\n timeout={{ enter: 0, exit: EXIT_ANIMATION }}\n classNames={{\n enter: classNames({ 'dimmer--enter-fade': fadeContentOnEnter }),\n enterDone: classNames('dimmer--enter-done', {\n 'dimmer--enter-fade': fadeContentOnEnter,\n }),\n exit: classNames('dimmer--exit', { 'dimmer--exit-fade': fadeContentOnExit }),\n }}\n unmountOnExit\n onEnter={onEnter}\n onExited={onExited}\n >\n <DimmerContentWrapper scrollBody={!transparent}>\n <FocusBoundary>\n <div\n ref={dimmerReference}\n className={classNames(\n 'dimmer',\n { 'dimmer--scrollable': scrollable, 'dimmer--transparent': transparent },\n className,\n )}\n role=\"presentation\"\n onClick={handleClick}\n >\n <div\n className={classNames(\n 'dimmer-content-positioner',\n contentPosition != null && [\n 'd-flex justify-content-center',\n {\n 'align-items-start': contentPosition === 'top',\n 'align-items-center': contentPosition === 'center',\n 'align-items-end': contentPosition === 'bottom',\n },\n ],\n )}\n >\n {children}\n </div>\n </div>\n </FocusBoundary>\n </DimmerContentWrapper>\n </CSSTransition>\n </DimmerWrapper>\n );\n};\n\nconst DimmerWrapper: React.ComponentType<{\n open: boolean;\n hasNotExited: boolean;\n children: React.ReactNode;\n}> = ({ open, hasNotExited, children }) => {\n const { screenMode, theme } = useTheme();\n\n return open || hasNotExited ? (\n <ThemeProvider\n theme=\"personal\"\n screenMode={theme === 'personal' ? screenMode : 'light'}\n isNotRootProvider\n >\n {children}\n </ThemeProvider>\n ) : (\n <>{children}</>\n );\n};\n\nexport const DimmerContentWrapper = ({\n children,\n scrollBody,\n}: {\n children: React.ReactElement;\n scrollBody: boolean;\n}) => {\n useEffect(() => {\n if (scrollBody) {\n addNoScrollClass();\n }\n\n return () => {\n if (scrollBody) {\n removeNoScrollClass();\n }\n };\n }, [scrollBody]);\n\n return children;\n};\n\n// Export without the Portal for tests only\nexport { Dimmer };\n\nexport default withNextPortal(Dimmer);\n","import classNames from 'classnames';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\n\nimport { Position } from '../common';\n\nexport const EXIT_ANIMATION = 350;\n\nexport interface SlidingPanelProps\n extends Pick<React.ComponentPropsWithRef<'div'>, 'ref' | 'className' | 'children'> {\n position?: `${Position.TOP | Position.RIGHT | Position.BOTTOM | Position.LEFT}`;\n open: boolean;\n showSlidingPanelBorder?: boolean;\n slidingPanelPositionFixed?: boolean;\n testId?: string;\n}\n\nconst SlidingPanel = forwardRef(\n (\n {\n position = 'left',\n open,\n showSlidingPanelBorder,\n slidingPanelPositionFixed,\n className,\n children,\n testId,\n ...rest\n }: Omit<SlidingPanelProps, 'ref'>,\n reference: React.ForwardedRef<HTMLDivElement | null>,\n ) => {\n const localReference = useRef<HTMLDivElement>(null as never);\n useImperativeHandle(reference, () => localReference.current, []);\n\n return (\n <CSSTransition\n {...rest}\n key={`sliding-panel--open-${position}`}\n nodeRef={localReference}\n in={open}\n // Wait for animation to finish before unmount.\n timeout={{ enter: 0, exit: EXIT_ANIMATION }}\n classNames=\"sliding-panel\"\n appear\n unmountOnExit\n >\n <div\n ref={localReference}\n data-testid={testId}\n className={classNames(\n 'sliding-panel',\n `sliding-panel--open-${position}`,\n showSlidingPanelBorder && `sliding-panel--border-${position}`,\n slidingPanelPositionFixed && 'sliding-panel--fixed',\n className,\n )}\n >\n {children}\n </div>\n </CSSTransition>\n );\n },\n);\n\nexport default SlidingPanel;\n","import classNames from 'classnames';\nimport { useId } from 'react';\n\nimport { Position, Typography } from '../common';\nimport { CloseButton } from '../common/closeButton';\nimport { useLayout } from '../common/hooks';\nimport Dimmer from '../dimmer';\nimport SlidingPanel from '../slidingPanel';\nimport Title from '../title';\nimport { logActionRequiredIf } from '../utilities';\n\nexport interface DrawerProps {\n /** The content to appear in the drawer body. */\n children?: React.ReactNode;\n className?: string;\n /** The content to appear in the drawer footer. */\n footerContent?: React.ReactNode;\n /** The content to appear in the drawer header. */\n headerTitle?: React.ReactNode;\n /** The status of Drawer either open or not. */\n open?: boolean;\n /** The placement of Drawer on the screen either left or right. On mobile it will default to bottom. */\n position?: `${Position.LEFT | Position.RIGHT | Position.BOTTOM}`;\n /** The action to perform on close click. */\n onClose?: (event: KeyboardEvent | React.MouseEvent) => void;\n}\n\nexport default function Drawer({\n children,\n className,\n footerContent,\n headerTitle,\n onClose,\n open = false,\n position = 'right',\n}: DrawerProps) {\n logActionRequiredIf(\n 'Drawer now expects `onClose`, and will soon make this prop required. Please update your usage to provide it.',\n !onClose,\n );\n\n const { isMobile } = useLayout();\n const titleId = useId();\n\n return (\n <Dimmer open={open} onClose={onClose}>\n <SlidingPanel open={open} position={isMobile ? Position.BOTTOM : position}>\n <div\n role=\"dialog\"\n aria-modal\n aria-labelledby={headerTitle ? titleId : undefined}\n className={classNames('np-drawer', className)}\n >\n <div\n className={classNames('np-drawer-header', {\n 'np-drawer-header--withborder': headerTitle,\n })}\n >\n {headerTitle && (\n <Title id={titleId} type={Typography.TITLE_BODY}>\n {headerTitle}\n </Title>\n )}\n <CloseButton onClick={onClose} />\n </div>\n {children && <div className={classNames('np-drawer-content')}>{children}</div>}\n {footerContent && <div className={classNames('np-drawer-footer')}>{footerContent}</div>}\n </div>\n </SlidingPanel>\n </Dimmer>\n );\n}\n","import classNames from 'classnames';\nimport { useRef, useState, PropsWithChildren, CSSProperties, SyntheticEvent } from 'react';\n\nimport Dimmer from '../../dimmer';\nimport Drawer from '../../drawer';\nimport SlidingPanel from '../../slidingPanel';\nimport { CloseButton } from '../closeButton';\nimport { CommonProps } from '../commonProps';\nimport { isServerSide } from '../domHelpers';\nimport { useConditionalListener } from '../hooks';\nimport { useMedia } from '../hooks/useMedia';\nimport { Breakpoint } from '../propsValues/breakpoint';\nimport { Position } from '../propsValues/position';\n\nconst INITIAL_Y_POSITION = 0;\n\nconst CONTENT_SCROLL_THRESHOLD = 1;\n\nconst MOVE_OFFSET_THRESHOLD = 50;\n\nexport type BottomSheetProps = PropsWithChildren<\n {\n onClose?: (event: Event | SyntheticEvent) => void;\n open: boolean;\n } & CommonProps\n>;\n\n/**\n * Neptune: https://transferwise.github.io/neptune/components/bottom-sheet/\n *\n * Neptune Web: https://transferwise.github.io/neptune-web/components/overlays/BottomSheet\n *\n */\nconst BottomSheet = (props: BottomSheetProps) => {\n const bottomSheetReference = useRef<HTMLDivElement>(null);\n const topBarReference = useRef<HTMLDivElement>(null);\n const contentReference = useRef<HTMLDivElement>(null);\n\n const [pressed, setPressed] = useState<boolean>(false);\n\n /**\n * Used to track `requestAnimationFrame` requests\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame#return_value\n */\n const animationId = useRef<number>(0);\n\n /**\n * Difference between initial coordinate ({@link initialYCoordinate})\n * and new position (when user moves component), it's get calculated on `onTouchMove` and `onMouseMove` events\n *\n * @see {@link calculateOffsetAfterMove}\n */\n const moveOffset = useRef<number>(0);\n const initialYCoordinate = useRef<number>(0);\n\n // apply shadow to the bottom of top-bar when scroll over content\n useConditionalListener({\n attachListener: props.open && !isServerSide(),\n callback: () => {\n if (topBarReference.current !== null) {\n const { classList } = topBarReference.current;\n if (!isContentScrollPositionAtTop()) {\n classList.add('np-bottom-sheet--top-bar--shadow');\n } else {\n classList.remove('np-bottom-sheet--top-bar--shadow');\n }\n }\n },\n eventType: 'scroll',\n parent: isServerSide() ? undefined : document,\n });\n\n function move(newHeight: number): void {\n if (bottomSheetReference.current !== null) {\n bottomSheetReference.current.style.transform = `translateY(${newHeight}px)`;\n }\n }\n\n function close(event: Event | SyntheticEvent): void {\n setPressed(false);\n moveOffset.current = INITIAL_Y_POSITION;\n if (bottomSheetReference.current !== null) {\n bottomSheetReference.current.style.removeProperty('transform');\n }\n if (props.onClose) {\n props.onClose(event);\n }\n }\n\n const onSwipeStart = (\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>,\n ): void => {\n initialYCoordinate.current = ('touches' in event ? event.touches[0] : event).clientY;\n setPressed(true);\n };\n\n const onSwipeMove = (\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>,\n ): void => {\n if (pressed) {\n const { clientY } = 'touches' in event ? event.touches[0] : event;\n\n const offset = calculateOffsetAfterMove(clientY);\n // check whether move is to the bottom only and content scroll position is at the top\n if (offset > INITIAL_Y_POSITION && isContentScrollPositionAtTop()) {\n moveOffset.current = offset;\n animationId.current = requestAnimationFrame(() => {\n if (animationId.current !== undefined && bottomSheetReference.current !== null) {\n move(offset);\n }\n });\n }\n }\n };\n\n function onSwipeEnd(\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>,\n ): void {\n // stop moving component\n cancelAnimationFrame(animationId.current);\n setPressed(false);\n // check whether move down is strong enough\n // and content scroll position is at the top to close the component\n if (moveOffset.current > MOVE_OFFSET_THRESHOLD && isContentScrollPositionAtTop()) {\n close(event);\n }\n // otherwise move component back to default (initial) position\n else {\n move(INITIAL_Y_POSITION);\n }\n moveOffset.current = INITIAL_Y_POSITION;\n }\n\n function isContentScrollPositionAtTop(): boolean {\n return (\n contentReference?.current?.scrollTop !== undefined &&\n contentReference.current.scrollTop <= CONTENT_SCROLL_THRESHOLD\n );\n }\n\n /**\n * Calculates how hard user moves component,\n * result value used to determine whether to hide component or re-position to default state\n *\n * @param afterMoveYCoordinate\n */\n function calculateOffsetAfterMove(afterMoveYCoordinate: number): number {\n return afterMoveYCoordinate - initialYCoordinate.current;\n }\n\n /**\n * Set `max-height` for content part (in order to keep it scrollable for content overflow cases) of the component\n * and ensures space for safe zone (32px) at the top.\n */\n function setContentMaxHeight(): CSSProperties {\n const safeZoneHeight = '64px';\n const topbarHeight = '32px';\n const windowHight: number = isServerSide() ? 0 : window.innerHeight;\n /**\n * Calculate _real_ height of the screen (taking into account parts of browser interface).\n *\n * See https://css-tricks.com/the-trick-to-viewport-units-on-mobile for more details.\n */\n const screenHeight = `${windowHight * 0.01 * 100}px`;\n return {\n maxHeight: `calc(${screenHeight} - ${safeZoneHeight} - ${topbarHeight})`,\n };\n }\n\n const is400Zoom = useMedia(`(max-width: ${Breakpoint.ZOOM_400}px)`);\n\n return is400Zoom ? (\n <Drawer open={props.open} className={props.className} onClose={close}>\n {props.children}\n </Drawer>\n ) : (\n <Dimmer open={props.open} fadeContentOnEnter fadeContentOnExit onClose={close}>\n <SlidingPanel\n ref={bottomSheetReference}\n open={props.open}\n position={Position.BOTTOM}\n className={classNames('np-bottom-sheet', props.className)}\n >\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */}\n <div\n role=\"dialog\"\n aria-modal\n onTouchStart={onSwipeStart}\n onTouchMove={onSwipeMove}\n onTouchEnd={onSwipeEnd}\n onMouseDown={onSwipeStart}\n onMouseMove={onSwipeMove}\n onMouseUp={onSwipeEnd}\n >\n <div ref={topBarReference} className=\"np-bottom-sheet--top-bar\">\n <div className=\"np-bottom-sheet--handler\" />\n <CloseButton size=\"sm\" className=\"sr-only np-bottom-sheet--close-btn\" onClick={close} />\n </div>\n <div\n ref={contentReference}\n style={setContentMaxHeight()}\n className=\"np-bottom-sheet--content\"\n >\n {props.children}\n </div>\n </div>\n </SlidingPanel>\n </Dimmer>\n );\n};\n\nexport default BottomSheet;\n","import { Alert as DangerIcon, AlertCircleFill } from '@transferwise/icons';\nimport { useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\n\nimport Avatar, { AvatarType } from '../avatar';\nimport Body from '../body';\nimport Button from '../button';\nimport { ControlType, Priority, Size, Typography } from '../common';\nimport Title from '../title';\n\nexport type CriticalCommsBannerProps = {\n title: string;\n subtitle?: string;\n action?: {\n label: string;\n href: string;\n };\n className?: string;\n};\n\nfunction CriticalCommsBanner({ title, subtitle, action, className }: CriticalCommsBannerProps) {\n const { isModern } = useTheme();\n return (\n <div className={classNames('critical-comms', className)}>\n <div className=\"critical-comms-body\">\n <Avatar\n size={Size.MEDIUM}\n type={AvatarType.ICON}\n className={classNames(isModern ? 'm-r-2' : 'm-r-1')}\n backgroundColor={\n isModern ? 'var(--color-sentiment-negative)' : 'var(--color-background-negative)'\n }\n >\n {isModern ? <AlertCircleFill /> : <DangerIcon size={24} />}\n </Avatar>\n <div className=\"critical-comms-content d-flex align-items-center flex-grow-1\">\n <div className={classNames('flex-grow-1', { 'p-x-2': !isModern })}>\n <Title\n type={isModern ? Typography.TITLE_BODY : Typography.TITLE_GROUP}\n className=\"critical-comms--title\"\n >\n {title}\n </Title>\n <Body className=\"critical-comms--subtitle\">{subtitle}</Body>\n </div>\n {action ? (\n <div className=\"critical-comms--cta\">\n <Button\n block={isModern}\n size={Size.SMALL}\n type={ControlType.NEGATIVE}\n priority={isModern ? Priority.SECONDARY : Priority.PRIMARY}\n className=\"cta-btn\"\n onClick={() => {\n if (action) {\n window.location.href = action.href;\n }\n }}\n >\n {action.label}\n </Button>\n </div>\n ) : null}\n </div>\n </div>\n </div>\n );\n}\n\nexport default CriticalCommsBanner;\n","import { formatDate } from '@transferwise/formatting';\n\nexport function getDayNames(\n locale: string,\n format: Intl.DateTimeFormatOptions['weekday'] = 'short',\n) {\n const days: string[] = [];\n const date = new Date(2018, 0, 1); // 2018 started with Monday\n while (days.length < 7) {\n days.push(formatDate(date, locale, { weekday: format }));\n date.setDate(date.getDate() + 1);\n }\n return days;\n}\n","// Makes sure that date is between min and max dates, returns a cloned min or max\nexport function moveToWithinRange(date: Date, min: Date | null, max: Date | null) {\n if (min && date < min) {\n return new Date(min);\n }\n if (max && date > max) {\n return new Date(max);\n }\n return date;\n}\n","export function isWithinRange(date: Date, min: Date | null, max: Date | null) {\n return (!min || date >= min) && (!max || date <= max);\n}\n","import { formatDate } from '@transferwise/formatting';\n\nexport const getMonthNames = (\n locale: string,\n format: Intl.DateTimeFormatOptions['month'] = 'long',\n): string[] => {\n const months: string[] = [];\n const date = new Date(2018, 0, 1);\n const monthFormat = { month: format };\n while (months.length < 12) {\n months.push(formatDate(date, locale, monthFormat));\n date.setMonth(date.getMonth() + 1);\n }\n return months;\n};\n","export const isDateValid = (date: Date | string | null) => {\n if (date === null) {\n return false;\n } else if (date instanceof Date) {\n return validDateObject(date);\n } else {\n return validDateString(date);\n }\n};\n\nexport const validDateString = (dateString: string) => validDateObject(new Date(dateString));\n\nconst validDateObject = (dateObject: Date) => !isNaN(dateObject.getTime());\n","import { validDateString } from '../isDateValid/isDateValid';\n\nexport const isMonthAndYearFormat = (dateString: string) =>\n validDateString(dateString) && dateString.split('-').length < 3;\n","export const MDY = new Set(['en-US']);\nexport const YMD = new Set(['hu', 'hu-HU', 'zh-HK', 'zh-CN', 'ja', 'ja-JP']);\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n monthLabel: {\n id: 'neptune.DateInput.month.label',\n defaultMessage: 'Month',\n },\n dayLabel: {\n id: 'neptune.DateInput.day.label',\n defaultMessage: 'Day',\n },\n yearLabel: {\n id: 'neptune.DateInput.year.label',\n defaultMessage: 'Year',\n },\n dayPlaceholder: {\n id: 'neptune.DateInput.day.placeholder',\n defaultMessage: 'DD',\n description: 'Placeholder for 2-digit day values within an input.',\n },\n yearPlaceholder: {\n id: 'neptune.DateInput.year.placeholder',\n defaultMessage: 'YYYY',\n description: 'Placeholder for 4-digit year values within an input.',\n },\n});\n","export const convertToLocalMidnight = (date: string) => {\n const utcDate = new Date(date.split('T')[0]); // using YYYY-MM-DD creates UTC date\n\n return new Date(utcDate.getUTCFullYear(), utcDate.getUTCMonth(), utcDate.getUTCDate());\n};\n","import classNames from 'classnames';\nimport { useState } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { Body, Input, SelectInput, SelectInputOptionContent, SelectInputProps } from '..';\nimport {\n DateMode,\n MonthFormat,\n Size,\n SizeLarge,\n SizeMedium,\n SizeSmall,\n Typography,\n} from '../common';\nimport { MDY, YMD, getMonthNames, isDateValid, isMonthAndYearFormat } from '../common/dateUtils';\nimport { useInputAttributes } from '../inputs/contexts';\nimport messages from './DateInput.messages';\nimport { convertToLocalMidnight } from './utils';\n\nexport interface DateInputProps {\n /** @deprecated Use `Field` wrapper or the `aria-labelledby` attribute instead. */\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n disabled?: boolean;\n size?: SizeSmall | SizeMedium | SizeLarge;\n value?: Date | string;\n onChange: (value: string | null) => void;\n onFocus?: React.FocusEventHandler<HTMLDivElement>;\n onBlur?: React.FocusEventHandler<HTMLDivElement>;\n dayLabel?: string;\n dayAutoComplete?: string;\n monthLabel?: string;\n yearLabel?: string;\n yearAutoComplete?: string;\n monthFormat?: `${MonthFormat}`;\n mode?: `${DateMode}`;\n placeholders?: {\n day?: string;\n month?: string;\n year?: string;\n };\n id?: string;\n selectProps?: Partial<SelectInputProps<number | null>>;\n}\n\nconst DateInput = ({\n 'aria-labelledby': ariaLabelledByProp,\n 'aria-label': ariaLabel,\n disabled = false,\n size = Size.MEDIUM,\n value,\n dayLabel,\n dayAutoComplete,\n monthLabel,\n yearLabel,\n yearAutoComplete,\n monthFormat = MonthFormat.LONG,\n mode = DateMode.DAY_MONTH_YEAR,\n onChange,\n onFocus,\n onBlur,\n placeholders,\n id: idProp,\n selectProps = {},\n}: DateInputProps) => {\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n const id = idProp ?? inputAttributes.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes['aria-labelledby'];\n\n const { locale, formatMessage } = useIntl();\n\n const getDateObject = (): Date | undefined => {\n if (value && isDateValid(value)) {\n return typeof value === 'string' ? convertToLocalMidnight(value) : value;\n }\n return undefined;\n };\n\n const getInitialDate = (unit: 'year' | 'month' | 'day'): number | null => {\n if (value && isDateValid(value)) {\n const dateObject = getDateObject();\n\n if (typeof value === 'string' && isMonthAndYearFormat(value) && unit === 'day') {\n return null;\n }\n\n if (dateObject !== undefined) {\n switch (unit) {\n case 'year':\n return dateObject.getFullYear();\n case 'month':\n return dateObject.getMonth();\n case 'day':\n return dateObject.getDate();\n default:\n return null;\n }\n }\n }\n return null;\n };\n\n const [day, setDay] = useState(() => getInitialDate('day'));\n const [displayDay, setDisplayDay] = useState(day?.toString());\n const [month, setMonth] = useState(() => getInitialDate('month'));\n const [year, setYear] = useState(() => getInitialDate('year'));\n const [displayYear, setDisplayYear] = useState(year?.toString());\n const [lastBroadcastedValue, setLastBroadcastedValue] = useState<Date | null | undefined>(\n getDateObject,\n );\n const monthNames = getMonthNames(locale, monthFormat);\n\n dayLabel ||= formatMessage(messages.dayLabel);\n monthLabel ||= formatMessage(messages.monthLabel);\n yearLabel ||= formatMessage(messages.yearLabel);\n placeholders = {\n day: placeholders?.day || formatMessage(messages.dayPlaceholder),\n month: placeholders?.month || formatMessage(messages.monthLabel),\n year: placeholders?.year || formatMessage(messages.yearPlaceholder),\n };\n\n const getDateAsString = (date: Date) => {\n if (!isDateValid(date)) {\n return '';\n }\n switch (mode) {\n case DateMode.MONTH_YEAR:\n return [date.getFullYear(), `0${date.getMonth() + 1}`.slice(-2)].join('-');\n case DateMode.DAY_MONTH_YEAR:\n default:\n return [\n date.getFullYear(),\n `0${date.getMonth() + 1}`.slice(-2),\n `0${date.getDate()}`.slice(-2),\n ].join('-');\n }\n };\n\n const getSelectElement = () => {\n return (\n <label className=\"d-flex flex-column\">\n <Body type={Typography.BODY_DEFAULT}>{monthLabel}</Body>\n <SelectInput\n name=\"month\"\n disabled={disabled}\n placeholder={placeholders?.month}\n items={Array.from({ length: 12 }, (_, index) => ({ type: 'option', value: index }))}\n size={size}\n value={month}\n renderValue={(selectedValue) => (\n <SelectInputOptionContent title={monthNames[selectedValue]} />\n )}\n onChange={(selectedValue) => handleMonthChange(selectedValue)}\n {...selectProps}\n />\n </label>\n );\n };\n\n const isDayValid = (newDay: number, newMonth: number, newYear: number) => {\n const maxDay = new Date(newYear, newMonth + 1, 0).getDate();\n return newDay <= maxDay;\n };\n\n const handleInternalValue = (newDay = day, newMonth = month, newYear = year) => {\n if (newDay == null || newDay === 0 || newMonth == null || newYear == null || newYear === 0) {\n broadcastNewValue(null);\n return;\n }\n if (!isDayValid(newDay, newMonth, newYear)) {\n broadcastNewValue(null);\n return;\n }\n\n const dateValue = new Date(newYear, newMonth, newDay);\n if (newYear < 100) {\n dateValue.setFullYear(newYear);\n }\n\n if (!isDateValid(dateValue)) {\n broadcastNewValue(null);\n return;\n }\n\n if (mode === DateMode.MONTH_YEAR) {\n if (newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n } else if (newDay !== day || newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n };\n\n const handleDayChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newDayString = event.target.value.replace(/\\D/g, '');\n const newDayNumber = Number.parseInt(newDayString, 10);\n\n setDay(newDayNumber);\n setDisplayDay(newDayString);\n handleInternalValue(newDayNumber, month, year);\n };\n\n const handleMonthChange = (selectedMonth: number | null) => {\n if (selectedMonth === null) {\n setMonth(null);\n handleInternalValue(day, null, year);\n return;\n }\n setMonth(selectedMonth);\n handleInternalValue(day, selectedMonth, year);\n };\n\n const handleYearChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newYearString = event.target.value.replace(/\\D/g, '');\n const newYearNumber = Number.parseInt(newYearString, 10);\n\n if (newYearString.length >= 4 && newYearString.length <= 6) {\n setYear(newYearNumber);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, newYearNumber);\n } else {\n setYear(null);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, null);\n }\n };\n\n const broadcastNewValue = (newValue: Date | null) => {\n if (newValue !== lastBroadcastedValue) {\n setLastBroadcastedValue(newValue);\n onChange(newValue != null ? getDateAsString(newValue) : null);\n }\n };\n\n const monthYearOnly = mode === DateMode.MONTH_YEAR;\n\n const monthWidth = classNames({\n 'col-sm-8': monthYearOnly,\n 'col-sm-5': !monthYearOnly,\n });\n\n const getMonth = () => {\n return <div className={monthWidth}>{getSelectElement()}</div>;\n };\n\n const getDay = () => {\n return (\n <div className=\"col-sm-3\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{dayLabel}</Body>\n <div className={`input-group input-group-${size}`}>\n <Input\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"day\"\n autoComplete={dayAutoComplete}\n value={displayDay || ''}\n placeholder={placeholders?.day}\n disabled={disabled}\n min={1}\n max={31}\n maxLength={2}\n onChange={(event) => handleDayChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n const getYear = () => {\n return (\n <div className=\"col-sm-4\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{yearLabel}</Body>\n <div className={`input-group input-group-${size}`}>\n <Input\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"year\"\n autoComplete={yearAutoComplete}\n placeholder={placeholders?.year}\n value={displayYear || ''}\n disabled={disabled}\n min={0}\n max={9999}\n maxLength={6}\n onChange={(event) => handleYearChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n const monthBeforeDay = MDY.has(locale);\n const yearFirst = YMD.has(locale);\n\n return (\n <div\n className=\"tw-date\"\n {...inputAttributes}\n id={id}\n aria-labelledby={ariaLabelledBy}\n aria-label={ariaLabel}\n role=\"group\" // Add role attribute to indicate container for interactive elements\n onFocus={(event) =>\n shouldPropagateOnFocus(event) ? onFocus && onFocus(event) : event.stopPropagation()\n }\n onBlur={(event) =>\n shouldPropagateOnBlur(event) ? onBlur && onBlur(event) : event.stopPropagation()\n }\n >\n <div className=\"row\">\n {(() => {\n if (monthYearOnly) {\n return (\n <>\n {!yearFirst && getMonth()}\n {getYear()}\n {yearFirst && getMonth()}\n </>\n );\n }\n if (monthBeforeDay) {\n return (\n <>\n {getMonth()}\n {getDay()}\n {getYear()}\n </>\n );\n }\n if (yearFirst) {\n return (\n <>\n {getYear()}\n {getMonth()}\n {getDay()}\n </>\n );\n }\n return (\n <>\n {getDay()}\n {getMonth()}\n {getYear()}\n </>\n );\n })()}\n </div>\n </div>\n );\n};\n\n// Should only propagate if the relatedTarget is not part of this DateInput component.\nfunction shouldPropagateOnFocus({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const targetParent = target.closest('.tw-date');\n const relatedParent = relatedTarget && relatedTarget.closest('.tw-date');\n return targetParent !== relatedParent;\n}\n\n// Should only propagate if the relatedTarget or the activeElement is not part of this DateInput component.\nfunction shouldPropagateOnBlur({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurElementParent = target.closest('.tw-date');\n // Even though FocusEvent.relatedTarget is supported by IE\n // (https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent/relatedTarget)\n // \"IE11 sets document.activeElement to the next focused element before the blur event is called.\"\n // (https://stackoverflow.com/a/49325196/986241)\n // Therefore if the relatedTarget is null, we try the document.activeElement,\n // which may contain the HTML element that is gaining focus\n const focusElement =\n relatedTarget || (document.activeElement !== target ? document.activeElement : null);\n const focusElementParent = focusElement && focusElement.closest('.tw-date');\n return blurElementParent !== focusElementParent;\n}\n\nexport default DateInput;\n","import classnames from 'classnames';\nimport {\n CSSProperties,\n HTMLAttributes,\n MutableRefObject,\n PropsWithChildren,\n SyntheticEvent,\n forwardRef,\n useEffect,\n useState,\n} from 'react';\nimport { usePopper } from 'react-popper';\n\nimport { Position, PositionBottom, PositionLeft, PositionRight, PositionTop } from '..';\nimport Dimmer from '../../dimmer';\n\nconst POPOVER_OFFSET = [0, 16];\n\n// By default the flip positioning explores only the opposite alternative. So if left is passed and there's no enough space\n// the right one gets chosen. If there's no space on both sides popover goes back to the initially chosen one left.\n// This mapping forces popover to try the four available positions before going back to the initial chosen one.\nconst fallbackPlacements = {\n [Position.TOP]: [Position.BOTTOM, Position.RIGHT, Position.LEFT],\n [Position.BOTTOM]: [Position.TOP, Position.RIGHT, Position.LEFT],\n [Position.LEFT]: [Position.RIGHT, Position.TOP, Position.BOTTOM],\n [Position.RIGHT]: [Position.LEFT, Position.TOP, Position.BOTTOM],\n};\n\nexport type PanelProps = PropsWithChildren<{\n arrow?: boolean;\n flip?: boolean;\n altAxis?: boolean;\n open?: boolean;\n onClose?: (event: Event | SyntheticEvent) => void;\n position?: PositionBottom | PositionLeft | PositionRight | PositionTop;\n anchorRef: MutableRefObject<Element | null>;\n anchorWidth?: boolean;\n}> &\n HTMLAttributes<HTMLDivElement>;\n\nconst Panel = forwardRef<HTMLDivElement, PanelProps>(function Panel(\n {\n arrow = false,\n flip = true,\n altAxis = false,\n children,\n open = false,\n onClose,\n position = Position.BOTTOM,\n anchorRef,\n anchorWidth = false,\n ...rest\n }: PanelProps,\n reference,\n) {\n const [arrowElement, setArrowElement] = useState<HTMLDivElement | null>(null);\n const [popperElement, setPopperElement] = useState<HTMLDivElement | null>(null);\n\n const modifiers = [];\n\n if (altAxis) {\n modifiers.push({\n // https://popper.js.org/docs/v2/modifiers/prevent-overflow\n name: 'preventOverflow',\n options: {\n altAxis: true,\n tether: false,\n },\n });\n }\n\n if (arrow) {\n modifiers.push({\n name: 'arrow',\n options: {\n element: arrowElement,\n options: {\n padding: 8, // 8px from the edges of the popper\n },\n },\n });\n // This lets you displace a popper element from its reference element.\n modifiers.push({ name: 'offset', options: { offset: POPOVER_OFFSET } });\n }\n if (flip && fallbackPlacements[position]) {\n modifiers.push({\n name: 'flip',\n options: {\n fallbackPlacements: fallbackPlacements[position],\n },\n });\n }\n\n const { styles, attributes, forceUpdate } = usePopper(anchorRef.current, popperElement, {\n placement: position,\n modifiers,\n });\n\n // If the trigger is not visible when the position is calculated, it will be incorrect. Because this can happen repeatedly (on resize for example),\n // it is most simple just to always position before opening\n useEffect(() => {\n if (open && forceUpdate) {\n forceUpdate();\n }\n }, [open]);\n\n const contentStyle: CSSProperties = {\n ...(anchorWidth ? { width: anchorRef.current?.clientWidth } : undefined),\n };\n\n return (\n <Dimmer open={open} transparent fadeContentOnEnter fadeContentOnExit onClose={onClose}>\n <div\n {...rest}\n ref={setPopperElement}\n role=\"dialog\"\n // eslint-disable-next-line react/forbid-dom-props\n style={{ ...styles.popper }}\n {...attributes.popper}\n className={classnames('np-panel', { 'np-panel--open': open }, rest.className)}\n >\n <div\n ref={reference}\n /* eslint-disable-next-line react/forbid-dom-props */\n style={contentStyle}\n className={classnames('np-panel__content')}\n >\n {children}\n {/* Arrow has to stay inside content to get the same animations as the \"dialog\" and to get hidden when panel is closed. */}\n {arrow && (\n <div\n ref={setArrowElement}\n className={classnames('np-panel__arrow')}\n // eslint-disable-next-line react/forbid-dom-props\n style={styles.arrow}\n />\n )}\n </div>\n </div>\n </Dimmer>\n );\n});\n\nexport default Panel;\n","import { forwardRef } from 'react';\n\nimport { Position } from '..';\nimport BottomSheet from '../bottomSheet';\nimport { useLayout } from '../hooks';\nimport Panel from '../panel';\nimport { PanelProps } from '../panel/Panel';\n\nconst ResponsivePanel = forwardRef<HTMLDivElement, PanelProps>(function ResponsivePanel(\n {\n anchorRef,\n arrow = false,\n flip = true,\n children,\n className = undefined,\n onClose,\n open = false,\n position = Position.BOTTOM,\n }: PanelProps,\n reference,\n) {\n const { isMobile } = useLayout();\n if (isMobile) {\n return (\n <BottomSheet key=\"bottomSheet\" open={open} className={className} onClose={onClose}>\n {children}\n </BottomSheet>\n );\n }\n return (\n <Panel\n key=\"panel\"\n ref={reference}\n flip={flip}\n arrow={arrow}\n open={open}\n position={position}\n anchorRef={anchorRef}\n className={className}\n onClose={onClose}\n >\n {children}\n </Panel>\n );\n});\n\nexport default ResponsivePanel;\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n ariaLabel: {\n id: 'neptune.ClearButton.ariaLabel',\n defaultMessage: 'Clear',\n description: 'Description of clear button',\n },\n});\n","import { formatDate } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nimport Chevron from '../../chevron';\nimport { Size, Position, SizeSmall, SizeMedium, SizeLarge } from '../../common';\nimport { CloseButton } from '../../common/closeButton/CloseButton';\n\nimport messages from './DateTrigger.messages';\n\ninterface DateTriggerProps {\n selectedDate: Date | null;\n size: SizeSmall | SizeMedium | SizeLarge;\n placeholder: string;\n label: string;\n monthFormat: 'short' | 'long';\n disabled: boolean;\n onClick: () => void;\n onClear?: () => void;\n}\n\nconst DateTrigger: React.FC<DateTriggerProps> = ({\n selectedDate,\n size = Size.MEDIUM,\n placeholder,\n label,\n monthFormat,\n disabled,\n onClick,\n onClear,\n}) => {\n const { locale, formatMessage } = useIntl();\n\n return (\n <>\n <button\n className={`btn btn-${size} btn-input np-date-trigger`}\n disabled={disabled}\n type=\"button\"\n onClick={onClick}\n >\n {label && <span className=\"control-label small m-r-1\">{label}</span>}\n {selectedDate ? (\n <span className=\"font-weight-normal\">\n {formatDate(selectedDate, locale, {\n day: 'numeric',\n month: monthFormat,\n year: 'numeric',\n })}\n </span>\n ) : (\n <span\n className=\"form-control-placeholder visible-xs-inline visible-sm-inline\n visible-md-inline visible-lg-inline visible-xl-inline\"\n >\n {placeholder}\n </span>\n )}\n {!onClear ? <Chevron orientation={Position.BOTTOM} disabled={disabled} /> : null}\n </button>\n {onClear ? (\n <>\n <div className=\"clearfix\" />\n <span className=\"input-group-addon\">\n <CloseButton\n className={`clear-btn clear-btn--${size}`}\n aria-label={`${formatMessage(messages.ariaLabel)} ${label}`}\n size={Size.SMALL}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n event.preventDefault();\n onClear();\n }}\n />\n </span>\n </>\n ) : null}\n </>\n );\n};\n\nexport default DateTrigger;\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n next: {\n id: 'neptune.DateLookup.next',\n defaultMessage: 'next',\n description: 'Description of next button',\n },\n previous: {\n id: 'neptune.DateLookup.previous',\n defaultMessage: 'previous',\n description: 'Description of previous button',\n },\n day: {\n id: 'neptune.DateLookup.day',\n defaultMessage: 'day',\n description: 'Description of next/previous/selected day button',\n },\n month: {\n id: 'neptune.DateLookup.month',\n defaultMessage: 'month',\n description: 'Description of next/previous/selected month button',\n },\n year: {\n id: 'neptune.DateLookup.year',\n defaultMessage: 'year',\n description: 'Description of next/previous/selected year button',\n },\n twentyYears: {\n id: 'neptune.DateLookup.twentyYears',\n defaultMessage: '20 years',\n description: 'Description of next/previous 20 years button',\n },\n selected: {\n id: 'neptune.DateLookup.selected',\n defaultMessage: 'selected',\n description: 'Description of the selected day/month/year',\n },\n goTo20YearView: {\n id: 'neptune.DateLookup.goTo20YearView',\n defaultMessage: 'Go to 20 year view',\n description: 'Description of the button to go to 20 year view',\n },\n});\n","import classNames from 'classnames';\nimport { useIntl } from 'react-intl';\n\nimport Chevron from '../../chevron';\nimport { Position, Size, Typography } from '../../common';\nimport { useLayout } from '../../common/hooks';\nimport Title from '../../title';\nimport messages from '../DateLookup.messages';\n\nconst buttonClasses = 'btn-link p-a-0 text-no-decoration np-text-body-large-bold rounded-sm';\n\ninterface DateHeaderProps {\n label?: string;\n onLabelClick?: () => void;\n onPreviousClick: () => void;\n onNextClick: () => void;\n dateMode: string;\n}\n\nconst DateHeader: React.FC<DateHeaderProps> = ({\n label,\n onLabelClick,\n onPreviousClick,\n onNextClick,\n dateMode,\n}) => {\n const intl = useIntl();\n const { isMobile } = useLayout();\n return (\n <div className={classNames('text-xs-center', !isMobile && ['clearfix', 'p-y-1'])}>\n <div className=\"pull-left-single-direction\">\n <button\n type=\"button\"\n className={`d-inline-flex ${buttonClasses}`}\n aria-label={`${intl.formatMessage(messages.previous)} ${dateMode}`}\n onClick={onPreviousClick}\n >\n <Chevron\n orientation={Position.LEFT}\n className=\"left-single-direction\"\n size={Size.MEDIUM}\n />\n </button>\n </div>\n {label && (\n <Title type={Typography.TITLE_BODY} className=\"tw-date-lookup-header-current-container\">\n <button\n type=\"button\"\n className={`tw-date-lookup-header-current ${buttonClasses}`}\n aria-label={intl.formatMessage(messages.goTo20YearView)}\n onClick={onLabelClick}\n >\n {label}\n </button>\n </Title>\n )}\n <div className=\"pull-right-single-direction\">\n <button\n type=\"button\"\n className={`d-inline-flex ${buttonClasses}`}\n aria-label={`${useIntl().formatMessage(messages.next)} ${dateMode}`}\n onClick={onNextClick}\n >\n <Chevron\n orientation={Position.RIGHT}\n className=\"right-single-direction\"\n size={Size.MEDIUM}\n />\n </button>\n </div>\n </div>\n );\n};\n\nexport default DateHeader;\n","interface FocusableTimeProps {\n isActive: (time: number) => boolean;\n isNow: (time: number) => boolean;\n isDisabled: (time: number) => boolean;\n timeSpan: readonly number[];\n}\n\nexport function getFocusableTime(props: FocusableTimeProps): number | undefined {\n return (\n props.timeSpan.find((time: number) => props.isActive(time)) ||\n props.timeSpan.find((time: number) => props.isNow(time) && !props.isDisabled(time)) ||\n props.timeSpan.find((time: number) => !props.isDisabled(time))\n );\n}\n","// NB! Using with UTC timestamp (YYYY-MM-DD) might lead to unexpected results, for example\n// getStartOfDay(new Date('1995-01-01')) in Los Angeles returns 31 Dec 1994, but in\n// in Singapore it is 1 Jan 1995.\n// You might want to use/implement `getUTCStartOfDay` if you want it to be 1995 in any timezone\nexport function getStartOfDay(date: Date | null) {\n if (!date) {\n return null;\n }\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n}\n","import classNames from 'classnames';\nimport { useEffect, useRef } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport messages from '../DateLookup.messages';\n\ninterface TableLinkProps {\n item: number;\n type: 'day' | 'month' | 'year';\n title?: string;\n longTitle?: string;\n active: boolean;\n disabled: boolean;\n today: boolean;\n autofocus?: boolean;\n onClick: (item: number) => void;\n}\n\nconst TableLink = ({\n item,\n type,\n title,\n longTitle,\n active,\n disabled,\n today,\n autofocus,\n onClick,\n}: TableLinkProps) => {\n const buttonRef = useRef<HTMLButtonElement>(null);\n const intl = useIntl();\n\n useEffect(() => {\n if (autofocus) {\n setTimeout(() => {\n buttonRef.current?.focus();\n }, 0);\n }\n }, [autofocus]);\n\n const onCalendarClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n if (!disabled) {\n onClick(item);\n }\n };\n\n const calculateAriaLabel = () => {\n if (active) {\n return `${longTitle || title || ''}, ${intl.formatMessage(\n messages.selected,\n )} ${intl.formatMessage(messages[type])}`;\n }\n return longTitle || title;\n };\n\n return (\n <>\n <button\n ref={buttonRef}\n type=\"button\"\n className={classNames(\n `tw-date-lookup-${type}-option np-text-body-default-bold`,\n { active: !!active },\n { today: !!today },\n )}\n disabled={disabled}\n tabIndex={autofocus ? 0 : -1}\n aria-label={calculateAriaLabel()}\n aria-pressed={active}\n onClick={onCalendarClick}\n >\n {title || item}\n </button>\n </>\n );\n};\n\nexport default TableLink;\n","import { formatDate } from '@transferwise/formatting';\nimport { PureComponent } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport { getDayNames, isWithinRange } from '../../../common/dateUtils';\nimport { getFocusableTime } from '../../getFocusableTime/getFocusableTime';\nimport { getStartOfDay } from '../../getStartOfDay';\nimport TableLink from '../../tableLink';\n\nconst SHORT_DAY_FORMAT: Intl.DateTimeFormatOptions = { day: 'numeric' };\n\ninterface DayCalendarTableProps extends WrappedComponentProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewMonth: number;\n viewYear: number;\n onSelect: (date: Date) => void;\n}\n\nclass DayCalendarTable extends PureComponent<DayCalendarTableProps> {\n getTableStructure = () => {\n const { viewMonth, viewYear } = this.props;\n let firstDayOfMonth = new Date(viewYear, viewMonth, 1).getDay();\n // JS Sunday is 0, we're setting it last\n if (firstDayOfMonth === 0) {\n firstDayOfMonth = 7;\n }\n const daysInMonth = new Date(viewYear, viewMonth + 1, 0).getDate();\n\n let week: number[] = [];\n const weeks: number[][] = [];\n let i;\n\n // Pad first week\n for (i = 1; i < firstDayOfMonth; i += 1) {\n week.push(-1);\n }\n // Fill in days\n for (i = 1; i <= daysInMonth; i += 1) {\n week.push(i);\n if ((firstDayOfMonth + i - 1) % 7 === 0) {\n weeks.push(week);\n week = [];\n }\n }\n if (week.length > 0) {\n // Pad last week\n for (i = week.length; i < 7; i += 1) {\n week.push(-1);\n }\n weeks.push(week);\n }\n return weeks;\n };\n\n days = getDayNames(this.props.intl.locale, 'short');\n daysShort = getDayNames(this.props.intl.locale, 'narrow');\n daysLong = getDayNames(this.props.intl.locale, 'long');\n\n selectDay = (day: number) => {\n const { viewMonth, viewYear, onSelect } = this.props;\n onSelect(new Date(viewYear, viewMonth, day));\n };\n\n isDisabled = (day: number) => {\n const { min, max, viewMonth, viewYear } = this.props;\n const date = new Date(viewYear, viewMonth, day);\n\n return !isWithinRange(date, min, max);\n };\n\n isActive = (day: number) => {\n const { selectedDate, viewMonth, viewYear } = this.props;\n return !!(selectedDate && +new Date(viewYear, viewMonth, day) === +selectedDate);\n };\n\n isToday = (day: number) => {\n const { viewMonth, viewYear } = this.props;\n return Number(getStartOfDay(new Date())) === Number(new Date(viewYear, viewMonth, day));\n };\n\n getAutofocusDay = (weeks: number[][]) => {\n const days = weeks.flatMap((week) => week);\n return getFocusableTime({\n isActive: this.isActive,\n isNow: this.isToday,\n isDisabled: this.isDisabled,\n timeSpan: days,\n });\n };\n\n render() {\n const { viewMonth, viewYear, intl } = this.props;\n const weeks = this.getTableStructure();\n const autoFocusDay = this.getAutofocusDay(weeks);\n return (\n <table className=\"table table-condensed table-bordered tw-date-lookup-calendar m-b-0\">\n <thead>\n <tr>\n {this.days.map((day, index) => (\n <th\n key={day}\n className={\n index > 4\n ? 'text-xs-center np-text-body-default'\n : 'text-xs-center np-text-body-default-bold'\n }\n >\n <span className=\"hidden-xs\">\n <abbr title={this.daysLong[index]}>{day.slice(0, 3)}</abbr>\n </span>\n <span className=\"visible-xs-inline-block\">\n <abbr title={this.daysLong[index]}>{this.daysShort[index].slice(0, 2)}</abbr>\n </span>\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {/* eslint-disable react/no-array-index-key */}\n {weeks.map((week, weekIndex) => (\n <tr key={weekIndex}>\n {week.map((day, dayIndex) => (\n <td key={dayIndex} className={dayIndex > 4 ? 'weekend' : ''}>\n {day !== -1 && (\n <TableLink\n item={day}\n type=\"day\"\n title={formatDate(\n new Date(viewYear, viewMonth, day),\n intl.locale,\n SHORT_DAY_FORMAT,\n )}\n autofocus={day === autoFocusDay}\n longTitle={formatDate(new Date(viewYear, viewMonth, day), intl.locale)}\n active={this.isActive(day)}\n disabled={this.isDisabled(day)}\n today={this.isToday(day)}\n onClick={this.selectDay}\n />\n )}\n </td>\n ))}\n </tr>\n ))}\n {/* eslint-enable react/no-array-index-key */}\n </tbody>\n </table>\n );\n }\n}\n\nexport default injectIntl(DayCalendarTable);\n","import { formatDate } from '@transferwise/formatting';\nimport { PureComponent } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport { MonthFormat } from '../../common';\nimport messages from '../DateLookup.messages';\nimport DateHeader from '../dateHeader';\n\nimport DayCalendarTable from './table';\n\ninterface DayCalendarProps extends WrappedComponentProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewMonth: number;\n viewYear: number;\n monthFormat: `${MonthFormat}`;\n onSelect: (date: Date) => void;\n onLabelClick: () => void;\n onViewDateUpdate: (date: { month: number; year: number }) => void;\n}\n\nclass DayCalendar extends PureComponent<DayCalendarProps> {\n selectPreviousMonth = () => {\n const { viewMonth, viewYear } = this.props;\n this.props.onViewDateUpdate({\n month: viewMonth <= 0 ? 11 : viewMonth - 1,\n year: viewMonth <= 0 ? viewYear - 1 : viewYear,\n });\n };\n\n selectNextMonth = () => {\n const { viewMonth, viewYear } = this.props;\n this.props.onViewDateUpdate({\n month: viewMonth >= 11 ? 0 : viewMonth + 1,\n year: viewMonth >= 11 ? viewYear + 1 : viewYear,\n });\n };\n\n render() {\n const {\n selectedDate,\n min,\n max,\n viewMonth,\n viewYear,\n intl: { locale, formatMessage },\n monthFormat,\n onLabelClick,\n onSelect,\n } = this.props;\n return (\n <>\n <DateHeader\n label={formatDate(new Date(viewYear, viewMonth), locale, {\n month: monthFormat,\n year: 'numeric',\n })}\n dateMode={formatMessage(messages.month)}\n onLabelClick={onLabelClick}\n onPreviousClick={this.selectPreviousMonth}\n onNextClick={this.selectNextMonth}\n />\n <DayCalendarTable {...{ selectedDate, min, max, viewMonth, viewYear, onSelect }} />\n </>\n );\n }\n}\n\nexport default injectIntl(DayCalendar);\n","import { formatDate } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nimport { getFocusableTime } from '../../getFocusableTime/getFocusableTime';\nimport TableLink from '../../tableLink';\n\ninterface MonthCalendarTableProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder: string;\n onSelect: (date: number) => void;\n}\n\nconst ROWS = 3;\nconst COLS = 4;\nconst MONTH_ONLY_FORMAT: Intl.DateTimeFormatOptions = { month: 'short' };\n\nconst MonthCalendarTable = ({\n selectedDate,\n min,\n max,\n viewYear,\n placeholder,\n onSelect,\n}: MonthCalendarTableProps) => {\n const { locale } = useIntl();\n\n const getLink = (month: number) => {\n return (\n <TableLink\n item={month}\n type=\"month\"\n title={formatDate(new Date(viewYear, month), locale, MONTH_ONLY_FORMAT)}\n active={isActive(month)}\n disabled={isDisabled(month)}\n today={viewYear === new Date().getFullYear() && month === new Date().getMonth()}\n autofocus={autofocusMonth === month}\n onClick={onSelect}\n />\n );\n };\n\n const isActive = (month: number) => {\n return !!(\n selectedDate &&\n month === selectedDate.getMonth() &&\n viewYear === selectedDate.getFullYear()\n );\n };\n\n const isThisMonth = (month: number) => {\n return viewYear === new Date().getFullYear() && month === new Date().getMonth();\n };\n\n const isDisabled = (month: number) => {\n const date = new Date(viewYear, month);\n return !!(\n (min && date < new Date(min.getFullYear(), min.getMonth())) ||\n (max && date > new Date(max.getFullYear(), max.getMonth()))\n );\n };\n\n const autofocusMonth = (() => {\n const months = Array.from({ length: ROWS * COLS }, (_, index) => index);\n return getFocusableTime({ isActive, isNow: isThisMonth, isDisabled, timeSpan: months });\n })();\n\n return (\n <table className=\"table table-condensed table-bordered tw-date-lookup-calendar np-text-body-default-bold m-b-0\">\n <thead className=\"sr-only\">\n <tr>\n <th colSpan={COLS}>{placeholder}</th>\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: ROWS }, (_, rowIndex) => (\n <tr key={rowIndex}>\n {Array.from({ length: COLS }, (_, colIndex) => (\n <td key={colIndex}>{getLink(rowIndex * COLS + colIndex)}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n};\n\nexport default MonthCalendarTable;\n","import { formatDate } from '@transferwise/formatting';\nimport { PureComponent } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport messages from '../DateLookup.messages';\nimport DateHeader from '../dateHeader';\n\nimport MonthCalendarTable from './table';\n\ninterface MonthCalendarProps extends WrappedComponentProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder: string;\n onSelect: () => void;\n onLabelClick: () => void;\n onViewDateUpdate: (date: { year?: number; month?: number }) => void;\n}\n\nclass MonthCalendar extends PureComponent<MonthCalendarProps> {\n onMonthSelect = (month: number) => {\n this.props.onViewDateUpdate({ month });\n this.props.onSelect();\n };\n\n selectPreviousYear = () => {\n this.props.onViewDateUpdate({ year: this.props.viewYear - 1 });\n };\n\n selectNextYear = () => {\n this.props.onViewDateUpdate({ year: this.props.viewYear + 1 });\n };\n\n render() {\n const {\n selectedDate,\n min,\n max,\n viewYear,\n intl: { locale, formatMessage },\n placeholder,\n onLabelClick,\n } = this.props;\n return (\n <>\n <DateHeader\n dateMode={formatMessage(messages.year)}\n label={formatDate(new Date(viewYear, 0), locale, { year: 'numeric' })}\n onLabelClick={onLabelClick}\n onPreviousClick={this.selectPreviousYear}\n onNextClick={this.selectNextYear}\n />\n <MonthCalendarTable\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.onMonthSelect}\n />\n </>\n );\n }\n}\n\nexport default injectIntl(MonthCalendar);\n","import { formatDate } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nimport { getFocusableTime } from '../../getFocusableTime/getFocusableTime';\nimport TableLink from '../../tableLink';\n\ninterface YearCalendarTableProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder: string;\n onSelect: (year: number) => void;\n}\n\nconst ROWS = 5;\nconst COLS = 4;\nconst YEAR_ONLY_FORMAT: Intl.DateTimeFormatOptions = { year: 'numeric' };\n\nconst YearCalendarTable = ({\n selectedDate,\n min,\n max,\n viewYear,\n placeholder,\n onSelect,\n}: YearCalendarTableProps) => {\n const { locale } = useIntl();\n const startYear = viewYear - (viewYear % 20);\n const getLink = (year: number) => {\n return (\n <TableLink\n item={year}\n type=\"year\"\n title={formatDate(new Date(year, 0), locale, YEAR_ONLY_FORMAT)}\n active={isActive(year)}\n disabled={isDisabled(year)}\n today={isThisYear(year)}\n autofocus={autofocusYear === year}\n onClick={onSelect}\n />\n );\n };\n\n const isActive = (year: number) => {\n return !!(selectedDate && year === selectedDate.getFullYear());\n };\n\n const isThisYear = (year: number) => {\n return year === new Date().getFullYear();\n };\n\n const isDisabled = (year: number) => {\n return !!((min && year < min.getFullYear()) || (max && year > max.getFullYear()));\n };\n\n const autofocusYear = (() => {\n const years = Array.from({ length: ROWS * COLS }, (_, index) => startYear + index);\n return getFocusableTime({ isActive, isNow: isThisYear, isDisabled, timeSpan: years });\n })();\n\n return (\n <table className=\"table table-condensed table-bordered tw-date-lookup-calendar m-b-0\">\n <thead className=\"sr-only\">\n <tr>\n <th colSpan={COLS}>{placeholder}</th>\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: ROWS }, (_, rowIndex) => (\n <tr key={rowIndex}>\n {Array.from({ length: COLS }, (_, colIndex) => (\n <td key={colIndex}>{getLink(startYear + rowIndex * COLS + colIndex)}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n};\n\nexport default YearCalendarTable;\n","import { PureComponent } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport messages from '../DateLookup.messages';\nimport DateHeader from '../dateHeader';\n\nimport YearCalendarTable from './table';\n\ninterface YearCalendarProps extends WrappedComponentProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder: string;\n onSelect: () => void;\n onViewDateUpdate: (date: { year: number }) => void;\n}\n\nclass YearCalendar extends PureComponent<YearCalendarProps> {\n onYearSelect = (year: number) => {\n this.props.onViewDateUpdate({ year });\n this.props.onSelect();\n };\n\n selectPreviousYears = () => {\n this.props.onViewDateUpdate({ year: this.props.viewYear - 20 });\n };\n\n selectNextYears = () => {\n this.props.onViewDateUpdate({ year: this.props.viewYear + 20 });\n };\n\n render() {\n const {\n selectedDate,\n min,\n max,\n viewYear,\n placeholder,\n intl: { formatMessage },\n } = this.props;\n return (\n <>\n <DateHeader\n dateMode={formatMessage(messages.twentyYears)}\n onPreviousClick={this.selectPreviousYears}\n onNextClick={this.selectNextYears}\n />\n <YearCalendarTable\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.onYearSelect}\n />\n </>\n );\n }\n}\n\nexport default injectIntl(YearCalendar);\n","import classNames from 'classnames';\nimport { createRef, PureComponent, KeyboardEvent } from 'react';\n\nimport {\n Size,\n MonthFormat,\n Position,\n Breakpoint,\n SizeSmall,\n SizeMedium,\n SizeLarge,\n} from '../common';\nimport { isWithinRange, moveToWithinRange } from '../common/dateUtils';\nimport ResponsivePanel from '../common/responsivePanel';\nimport { WithInputAttributesProps, withInputAttributes } from '../inputs/contexts';\nimport DateTrigger from './dateTrigger';\nimport DayCalendar from './dayCalendar';\nimport { getStartOfDay } from './getStartOfDay';\nimport MonthCalendar from './monthCalendar';\nimport YearCalendar from './yearCalendar';\n\nexport interface DateLookupProps {\n id?: string;\n value: Date | null;\n min?: Date | null;\n max?: Date | null;\n size?: SizeSmall | SizeMedium | SizeLarge;\n placeholder?: string;\n label?: string;\n 'aria-labelledby'?: string;\n monthFormat?: `${MonthFormat}`;\n disabled?: boolean;\n clearable?: boolean;\n onChange: (date: Date | null) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n}\n\ntype DateLookupPropsWithInputAttributes = DateLookupProps & Partial<WithInputAttributesProps>;\n\ninterface DateLookupState {\n selectedDate: Date | null;\n originalDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewMonth: number;\n viewYear: number;\n open: boolean;\n mode: 'day' | 'month' | 'year';\n isMobile: boolean;\n}\n\nclass DateLookup extends PureComponent<DateLookupPropsWithInputAttributes, DateLookupState> {\n declare props: DateLookupPropsWithInputAttributes &\n Required<Pick<DateLookupPropsWithInputAttributes, keyof typeof DateLookup.defaultProps>>;\n\n static defaultProps = {\n value: null,\n min: null,\n max: null,\n size: Size.MEDIUM,\n placeholder: '',\n label: '',\n monthFormat: MonthFormat.LONG,\n disabled: false,\n clearable: false,\n } satisfies Partial<DateLookupPropsWithInputAttributes>;\n\n element = createRef<HTMLDivElement>();\n dropdown = createRef<HTMLDivElement>();\n\n constructor(props: DateLookup['props']) {\n super(props);\n this.state = {\n selectedDate: getStartOfDay(props.value),\n originalDate: null,\n min: getStartOfDay(props.min),\n max: getStartOfDay(props.max),\n viewMonth: (props.value || new Date()).getMonth(),\n viewYear: (props.value || new Date()).getFullYear(),\n open: false,\n mode: 'day',\n isMobile: false,\n };\n }\n\n static getDerivedStateFromProps(props: DateLookup['props'], state: DateLookupState) {\n const propsSelected = getStartOfDay(props.value);\n const propsMin = getStartOfDay(props.min);\n const propsMax = getStartOfDay(props.max);\n const hasSelectedChanged = state.selectedDate?.getTime() !== propsSelected?.getTime();\n const hasMinChanged = state.min?.getTime() !== propsMin?.getTime();\n const hasMaxChanged = state.max?.getTime() !== propsMax?.getTime();\n if (hasSelectedChanged || hasMinChanged || hasMaxChanged) {\n const selectedDate = hasSelectedChanged ? propsSelected : state.selectedDate;\n const min = hasMinChanged ? propsMin : state.min;\n const max = hasMaxChanged ? propsMax : state.max;\n if (selectedDate && !isWithinRange(selectedDate, min, max)) {\n props.onChange(moveToWithinRange(selectedDate, min, max));\n return null;\n }\n const viewDateThatIsWithinRange: Date =\n selectedDate || ((min || max) && moveToWithinRange(new Date(), min, max)) || new Date();\n const viewMonth = viewDateThatIsWithinRange.getMonth();\n const viewYear = viewDateThatIsWithinRange.getFullYear();\n return { selectedDate, min, max, viewMonth, viewYear };\n }\n return null;\n }\n\n componentDidUpdate(previousProps: DateLookupPropsWithInputAttributes) {\n if (this.props.value?.getTime() !== previousProps.value?.getTime() && this.state.open) {\n this.focusOn('.active');\n }\n const mediaQuery = window.matchMedia(`(max-width: ${Breakpoint.SMALL}px)`);\n this.setState({ isMobile: mediaQuery.matches });\n }\n\n componentWillUnmount() {\n // Prevents memory leak by cleaning state.\n this.setState = () => {};\n }\n\n open = () => {\n const { onFocus } = this.props;\n\n this.setState({ open: true, mode: 'day' });\n if (onFocus) {\n onFocus();\n }\n };\n\n discard = () => {\n const { originalDate } = this.state;\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n };\n\n close = () => {\n const { onBlur } = this.props;\n this.setState({ open: false, originalDate: null });\n if (onBlur) {\n onBlur();\n }\n };\n\n handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const { open, originalDate } = this.state;\n switch (event.key) {\n case 'ArrowLeft':\n if (open) {\n this.adjustDate(-1, -1, -1);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'ArrowUp':\n if (open) {\n this.adjustDate(-7, -4, -4);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'ArrowRight':\n if (open) {\n this.adjustDate(1, 1, 1);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'ArrowDown':\n if (open) {\n this.adjustDate(7, 4, 4);\n } else {\n this.open();\n }\n event.preventDefault();\n break;\n case 'Escape':\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n event.preventDefault();\n break;\n default:\n break;\n }\n };\n\n adjustDate = (daysToAdd: number, monthsToAdd: number, yearsToAdd: number) => {\n const { selectedDate, min, max, mode, originalDate } = this.state;\n if (originalDate === null) {\n this.setState({ originalDate: selectedDate });\n }\n let date: Date | null;\n if (selectedDate) {\n date = new Date(\n mode === 'year' ? selectedDate.getFullYear() + yearsToAdd : selectedDate.getFullYear(),\n mode === 'month' ? selectedDate.getMonth() + monthsToAdd : selectedDate.getMonth(),\n mode === 'day' ? selectedDate.getDate() + daysToAdd : selectedDate.getDate(),\n );\n } else {\n date = getStartOfDay(new Date());\n }\n if (date) {\n date = moveToWithinRange(date, min, max);\n }\n if (date?.getTime() !== selectedDate?.getTime()) {\n this.props.onChange(date);\n }\n };\n\n focusOn = (preferredElement: string, fallbackElement?: string) => {\n const element = this.element.current?.querySelector(preferredElement) as HTMLElement | null;\n if (element) {\n element.focus();\n } else if (fallbackElement) {\n this.focusOn(fallbackElement);\n }\n };\n\n switchMode = (mode: 'day' | 'month' | 'year') => {\n this.setState({ mode }, () => {\n this.focusOn('.active', '.today');\n });\n };\n\n switchToDays = () => this.switchMode('day');\n\n switchToMonths = () => this.switchMode('month');\n\n switchToYears = () => this.switchMode('year');\n\n handleSelectedDateUpdate = (selectedDate: Date) => {\n this.setState({ selectedDate }, () => {\n this.props.onChange(selectedDate);\n this.close();\n this.focusOn('.btn');\n });\n };\n\n handleViewDateUpdate = ({ month = this.state.viewMonth, year = this.state.viewYear }) => {\n this.setState({ viewMonth: month, viewYear: year });\n };\n\n getCalendar = () => {\n const { selectedDate, min, max, viewMonth, viewYear, mode, isMobile } = this.state;\n const { placeholder, monthFormat } = this.props;\n return (\n <div className={classNames({ 'p-a-1': !isMobile })}>\n {mode === 'day' && (\n <DayCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewMonth={viewMonth}\n viewYear={viewYear}\n monthFormat={monthFormat}\n onSelect={this.handleSelectedDateUpdate}\n onLabelClick={this.switchToYears}\n onViewDateUpdate={this.handleViewDateUpdate}\n />\n )}\n {mode === 'month' && (\n <MonthCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.switchToDays}\n onLabelClick={this.switchToYears}\n onViewDateUpdate={this.handleViewDateUpdate}\n />\n )}\n {mode === 'year' && (\n <YearCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.switchToMonths}\n onViewDateUpdate={this.handleViewDateUpdate}\n />\n )}\n </div>\n );\n };\n\n handleClear = () => {\n this.props.onChange(null);\n this.focusOn('.np-date-trigger');\n };\n\n render() {\n const { selectedDate, open } = this.state;\n\n const {\n inputAttributes,\n id: idProp,\n 'aria-labelledby': ariaLabelledByProp,\n size,\n placeholder,\n label,\n monthFormat,\n disabled,\n clearable,\n value,\n } = this.props;\n const id = idProp ?? inputAttributes?.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes?.['aria-labelledby'];\n\n return (\n <div\n ref={this.element}\n {...inputAttributes}\n id={id}\n aria-labelledby={ariaLabelledBy}\n className=\"input-group\"\n onKeyDown={this.handleKeyDown}\n >\n <DateTrigger\n selectedDate={selectedDate}\n size={size}\n placeholder={placeholder}\n label={label}\n monthFormat={monthFormat}\n disabled={disabled || false}\n onClick={this.open}\n onClear={!disabled && clearable && value ? this.handleClear : undefined}\n />\n <ResponsivePanel\n anchorRef={this.element}\n open={open}\n className=\"tw-date-lookup-menu\"\n position={Position.BOTTOM}\n onClose={this.discard}\n >\n {this.getCalendar()}\n </ResponsivePanel>\n </div>\n );\n }\n}\n\nexport const DateLookupWithoutInputAttributes = DateLookup;\n\nexport default withInputAttributes(\n DateLookup as React.ComponentType<DateLookupPropsWithInputAttributes>,\n { nonLabelable: true },\n);\n","import classNames from 'classnames';\nimport { forwardRef } from 'react';\n\nimport Chevron from '../chevron';\nimport { Position } from '../common';\nimport Option from '../common/Option';\nimport { OptionProps, ReferenceType } from '../common/Option/Option';\n\ntype NavigationOptionProps = OptionProps;\n\nconst NavigationOption = forwardRef<ReferenceType, NavigationOptionProps>(\n ({ as: component = 'button', disabled = false, onClick, className, ...rest }, reference) => {\n if ('href' in rest && rest.href) {\n component = 'a';\n }\n\n return (\n <Option\n {...rest}\n ref={reference}\n as={component}\n className={classNames('np-navigation-option', className)}\n button={<Chevron orientation={Position.RIGHT} disabled={disabled} className=\"d-block\" />}\n disabled={disabled}\n onClick={(event) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n if (onClick) {\n onClick(event);\n }\n }}\n />\n );\n },\n);\n\nexport default NavigationOption;\n","import classNames from 'classnames';\n\nimport Body from '../body';\nimport { Size, Typography } from '../common';\nimport Title from '../title';\n\nexport interface TileProps {\n /** Classes to apply to the Tile container */\n className?: string;\n description?: React.ReactNode;\n disabled?: boolean;\n href?: string;\n target?: React.HTMLAttributeAnchorTarget;\n /** Accepts only Avatar and images */\n media: React.ReactNode;\n /** Function called onClick or onKeyDown */\n onClick?: (event?: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n /** The size applied to Tile */\n size?: `${Size.SMALL | Size.MEDIUM}`;\n title: React.ReactNode;\n}\n\nexport default function Tile({\n className,\n description,\n disabled,\n href,\n target,\n media,\n onClick,\n size = 'md',\n title,\n}: TileProps) {\n const isSmall = size === 'sm';\n const Element = href ? 'a' : 'button';\n\n return (\n <Element\n className={classNames(\n 'decision',\n 'flex-column',\n 'np-tile',\n 'text-no-decoration',\n 'text-xs-center',\n className,\n {\n 'p-a-3': !isSmall,\n 'p-a-2 np-tile--small': isSmall,\n },\n disabled && 'disabled',\n )}\n href={href}\n target={target}\n onClick={disabled ? undefined : onClick}\n onKeyDown={\n disabled\n ? undefined\n : ({ key }) => {\n if (key === 'Enter' || key === ' ') {\n onClick?.();\n }\n }\n }\n >\n <div className=\"np-tile__media d-flex justify-content-center\">{media}</div>\n <Title type={Typography.TITLE_SUBSECTION} className={classNames(isSmall ? 'm-t-1' : 'm-t-2')}>\n {title}\n </Title>\n {description ? (\n <Body as=\"span\" type={Typography.BODY_DEFAULT} className=\"m-t-1\">\n {description}\n </Body>\n ) : null}\n </Element>\n );\n}\n","import classNames from 'classnames';\n\nimport { Size, Breakpoint, SizeSmall, SizeMedium } from '../common';\nimport { useScreenSize } from '../common/hooks/useScreenSize';\nimport NavigationOption from '../navigationOption';\nimport Tile from '../tile';\n\ninterface DecisionOption {\n description?: React.ReactNode;\n disabled?: boolean;\n href?: string;\n target?: React.HTMLAttributeAnchorTarget;\n media: {\n block: React.ReactNode;\n list: React.ReactNode;\n };\n onClick?: (event?: React.MouseEvent<HTMLElement>) => void;\n title: React.ReactNode;\n}\n\nexport enum DecisionPresentation {\n LIST = 'LIST',\n LIST_BLOCK = 'LIST_BLOCK',\n LIST_BLOCK_GRID = 'LIST_BLOCK_GRID',\n}\n\nexport enum DecisionType {\n NAVIGATION = 'NAVIGATION',\n}\n\nexport interface DecisionProps {\n /** A list of elements to be rendered */\n options: readonly DecisionOption[];\n /** Handles the display mode of the component */\n presentation?: `${DecisionPresentation}`;\n /** Size currently affects only Tile dimension */\n size?: SizeSmall | SizeMedium;\n /** Decide which kind of element type needs to be rendered ex: Navigation Options or in the future Radio or Checkbox Options */\n type?: `${DecisionType}`;\n\n /** Display media in a circle in list presentation */\n showMediaCircleInList?: boolean;\n\n /** Sets navigation options to be aligned with the parent container */\n isContainerAligned?: boolean;\n}\n\nconst Decision = ({\n options,\n presentation = DecisionPresentation.LIST,\n size = Size.MEDIUM,\n type = DecisionType.NAVIGATION,\n showMediaCircleInList = true,\n isContainerAligned = false,\n}: DecisionProps) => {\n const screenXs = useScreenSize(Breakpoint.EXTRA_SMALL);\n const screenSm = useScreenSize(Breakpoint.SMALL);\n\n if (type === DecisionType.NAVIGATION) {\n const renderedOptions = options.map(\n ({ title, description, disabled, href, target, media: { list }, onClick }, key) => (\n <NavigationOption\n // eslint-disable-next-line react/no-array-index-key\n key={`nav-${key}`}\n complex={false}\n content={description}\n disabled={disabled}\n href={href}\n target={target}\n media={list}\n showMediaAtAllSizes\n showMediaCircle={showMediaCircleInList}\n isContainerAligned={isContainerAligned}\n title={title}\n onClick={onClick}\n />\n ),\n );\n\n if (\n presentation === DecisionPresentation.LIST_BLOCK ||\n presentation === DecisionPresentation.LIST_BLOCK_GRID\n ) {\n const isSmall = size === Size.SMALL;\n const breakpoint = isSmall ? screenXs : screenSm;\n\n const isGrid = presentation === DecisionPresentation.LIST_BLOCK_GRID;\n\n return (\n <div\n className={classNames(\n 'np-decision d-flex',\n {\n 'np-decision--small': isSmall,\n 'np-decision--grid': isGrid,\n },\n breakpoint ? isGrid && 'flex-wrap' : 'flex-column',\n )}\n >\n {breakpoint\n ? options.map(\n (\n { description, disabled, href, target, media: { block }, onClick, title },\n key,\n ) => (\n <Tile\n // eslint-disable-next-line react/no-array-index-key\n key={`tile-${key}`}\n className={classNames(`np-decision__tile${isSmall ? '--small' : ''}`, {\n 'np-decision__tile--fixed-width': isGrid,\n })}\n description={description}\n disabled={disabled}\n href={href}\n target={target}\n media={block}\n size={isSmall ? Size.SMALL : Size.MEDIUM}\n title={title}\n onClick={onClick}\n />\n ),\n )\n : renderedOptions}\n </div>\n );\n }\n // LIST\n return <>{renderedOptions}</>;\n }\n return null;\n};\n\nexport default Decision;\n","import classNames from 'classnames';\n\nimport ActionButton from '../actionButton';\nimport { Layout } from '../common';\n\nexport interface DefinitionListDefinition {\n action?: {\n label: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n };\n title: React.ReactNode;\n value: React.ReactNode;\n key: string;\n}\n\ntype DefinitionListLayout =\n `${Layout.VERTICAL_TWO_COLUMN | Layout.VERTICAL_ONE_COLUMN | Layout.HORIZONTAL_JUSTIFIED | Layout.HORIZONTAL_LEFT_ALIGNED | Layout.HORIZONTAL_RIGHT_ALIGNED}`;\n\nexport interface DefinitionListProps {\n definitions?: DefinitionListDefinition[];\n layout?: DefinitionListLayout;\n muted?: boolean;\n}\n\nconst isLayoutHorizontal = (layout: DefinitionListLayout) =>\n layout === Layout.HORIZONTAL_LEFT_ALIGNED ||\n layout === Layout.HORIZONTAL_RIGHT_ALIGNED ||\n layout === Layout.HORIZONTAL_JUSTIFIED;\n\nconst getAlignmentClasses = (\n layout: DefinitionListLayout,\n action: DefinitionListDefinition['action'],\n) => {\n const classes = ['d-flex'];\n\n if (action) {\n if (isLayoutHorizontal(layout)) {\n classes.push('align-items-center');\n } else {\n classes.push('align-items-start');\n }\n }\n\n if (layout === Layout.HORIZONTAL_RIGHT_ALIGNED) {\n classes.push('text-sm-right tw-definition-list--right-aligned-desktop');\n } else {\n classes.push('justify-content-between');\n }\n\n if (layout === Layout.HORIZONTAL_JUSTIFIED) {\n classes.push('text-sm-justify');\n }\n\n return classes;\n};\n\nconst defaultDefinitions = [] satisfies DefinitionListProps['definitions'];\n\nexport default function DefinitionList({\n definitions = defaultDefinitions,\n layout = 'VERTICAL_TWO_COLUMN',\n muted,\n}: DefinitionListProps) {\n return (\n <dl\n className={classNames('tw-definition-list d-flex ', {\n 'text-muted': muted,\n 'flex-column': layout === Layout.VERTICAL_ONE_COLUMN,\n 'tw-definition-list--columns flex-column flex-row--sm':\n layout === Layout.VERTICAL_TWO_COLUMN,\n 'tw-definition-list--horizontal flex-column': isLayoutHorizontal(layout),\n })}\n >\n {definitions\n .filter((definition) => definition)\n .map(({ action, title, value, key }) => (\n <div key={key} className=\"tw-definition-list__item\">\n <dt>{title}</dt>\n <dd className={classNames(...getAlignmentClasses(layout, action))}>\n <div>{value}</div>\n {action ? (\n <div\n className={classNames(\n isLayoutHorizontal(layout) ? 'p-l-2' : 'p-x-2',\n 'tw-definition-list__action',\n )}\n >\n <ActionButton className=\"tw-definition-list__button\" onClick={action.onClick}>\n {action.label}\n </ActionButton>\n </div>\n ) : null}\n </dd>\n </div>\n ))}\n </dl>\n );\n}\n","import React, { useRef, useState, ReactElement } from 'react';\nimport { CSSTransition } from 'react-transition-group';\n\nconst DropFade = ({ children, show }: { children: ReactElement; show: boolean }) => {\n const reference = useRef<HTMLDivElement>(null);\n const [height, setHeight] = useState<number | undefined>(0);\n\n const clonedChild = React.cloneElement(children);\n\n return (\n <CSSTransition\n nodeRef={reference}\n in={show}\n timeout={300}\n classNames=\"np-dropfade\"\n onEntering={() => {\n // Set height so we can animate to the correct height\n setHeight(reference.current?.scrollHeight || 0);\n }}\n // Un-set height, as we don't want to presume it should be that height forever\n onEntered={() => setHeight(undefined)}\n onExit={() => {\n setHeight(reference.current?.scrollHeight || 0);\n }}\n onExiting={() => {\n setHeight(0);\n }}\n >\n {/* eslint-disable-next-line react/forbid-dom-props */}\n <div ref={reference} style={{ height }} className=\"np-dropfade\">\n {clonedChild}\n </div>\n </CSSTransition>\n );\n};\n\nexport default DropFade;\n","const ESCAPED_OPENING_CHEVRON = '&lt;';\nconst ESCAPED_CLOSING_CHEVRON = '&gt;';\n\ntype Tags = {\n transformed: {\n opening: string;\n closing: string;\n };\n escapedRegex: {\n opening: RegExp;\n closing: RegExp;\n };\n};\n\nclass EmphasisHtmlTransformer {\n tags: Array<Tags>;\n\n constructor(whitelistedTags?: Array<string>) {\n this.tags = (whitelistedTags || []).map((tag) => {\n return {\n transformed: {\n opening: `<em class=\"emphasis emphasis--${tag}\">`,\n closing: '</em>',\n },\n escapedRegex: {\n opening: new RegExp(`${ESCAPED_OPENING_CHEVRON}${tag}${ESCAPED_CLOSING_CHEVRON}`, 'g'),\n closing: new RegExp(`${ESCAPED_OPENING_CHEVRON}/${tag}${ESCAPED_CLOSING_CHEVRON}`, 'g'),\n },\n };\n });\n }\n\n // Algorithm:\n // 1) Escape all dangerous characters (<,>,&)\n // 2) Replace all escaped, whitelisted tags with styled spans.\n // 3) Transform new line characters to `<br />`s\n //\n // Note: for simplicity this doesn't support tags with non-standard whitespaces, e.g. <positive></ positive>\n transform(unsafe: string): string | null {\n if (!unsafe) {\n return null;\n }\n\n const safe = unsafe.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n\n return this.tags\n .reduce((accumulator, tag) => {\n return accumulator\n .replace(tag.escapedRegex.opening, tag.transformed.opening)\n .replace(tag.escapedRegex.closing, tag.transformed.closing);\n }, safe)\n .replace(/\\\\n|\\n/g, '<br />');\n }\n}\n\nexport default EmphasisHtmlTransformer;\n","import EmphasisHtmlTransformer from './EmphasisHtmlTransformer';\n\nconst SUPPORTED_TAGS = ['important', 'positive', 'negative', 'warning'];\nconst emphasisHtmlTransformer = new EmphasisHtmlTransformer(SUPPORTED_TAGS);\n\nexport type EmphasisProps = {\n text?: string;\n};\n\nconst Emphasis = ({ text = undefined }: EmphasisProps) => {\n if (!text) {\n return null;\n }\n\n const transformedText = emphasisHtmlTransformer.transform(text);\n // eslint-disable-next-line react/no-danger\n return transformedText ? <span dangerouslySetInnerHTML={{ __html: transformedText }} /> : null;\n};\n\nexport default Emphasis;\n","import classNames from 'classnames';\nimport { ReactNode } from 'react';\n\nimport { Sentiment, Size } from '../common';\nimport StatusIcon from '../statusIcon';\n\nexport interface InlineAlertProps {\n id?: string;\n type?: `${Sentiment}`;\n className?: string;\n children: ReactNode;\n}\n\nconst iconTypes = new Set<NonNullable<InlineAlertProps['type']>>([\n Sentiment.NEGATIVE,\n Sentiment.ERROR,\n Sentiment.POSITIVE,\n Sentiment.SUCCESS,\n Sentiment.WARNING,\n]);\n\nexport default function InlineAlert({\n id,\n type = 'neutral',\n className,\n children,\n}: InlineAlertProps) {\n return (\n <div\n role=\"alert\"\n id={id}\n className={classNames(\n 'alert alert-detach',\n `alert-${type === Sentiment.NEGATIVE || type === Sentiment.ERROR ? 'danger' : type}`,\n className,\n )}\n >\n {iconTypes.has(type) && <StatusIcon sentiment={type} size={Size.SMALL} />}\n <div className=\"np-text-body-default\">{children}</div>\n </div>\n );\n}\n","import classNames from 'classnames';\n\nexport type LabelProps = {\n id?: string;\n htmlFor?: string;\n className?: string;\n children?: React.ReactNode;\n};\n\nexport const Label = ({ id, htmlFor, className, children }: LabelProps) => {\n return (\n <label\n id={id}\n htmlFor={htmlFor}\n className={classNames('control-label d-flex flex-column gap-y-1 m-b-0', className)}\n >\n {children}\n </label>\n );\n};\n","import classNames from 'classnames';\nimport { useId } from 'react';\n\nimport { Sentiment } from '../common';\nimport InlineAlert from '../inlineAlert/InlineAlert';\nimport {\n FieldLabelIdContextProvider,\n InputDescribedByProvider,\n InputIdContextProvider,\n InputInvalidProvider,\n} from '../inputs/contexts';\nimport { Label } from '../label/Label';\n\nexport type FieldProps = {\n /** `null` disables auto-generating the `id` attribute, falling back to nesting-based label association over setting `htmlFor` explicitly. */\n id?: string | null;\n /** Should be specified unless the wrapped control has its own labeling mechanism, e.g. `Checkbox`. */\n label?: React.ReactNode;\n /** @deprecated use `message` and `type={Sentiment.NEUTRAL}` prop instead */\n hint?: React.ReactNode;\n message?: React.ReactNode;\n /** @deprecated use `message` and `type={Sentiment.NEGATIVE}` prop instead */\n error?: React.ReactNode;\n sentiment?: `${Sentiment.NEGATIVE | Sentiment.NEUTRAL | Sentiment.POSITIVE | Sentiment.WARNING}`;\n className?: string;\n children?: React.ReactNode;\n};\n\nexport const Field = ({\n id,\n label,\n message: propMessage,\n sentiment: propType = Sentiment.NEUTRAL,\n className,\n children,\n ...props\n}: FieldProps) => {\n const sentiment = props.error ? Sentiment.NEGATIVE : propType;\n const message = props.error || props.hint || propMessage;\n const hasError = sentiment === Sentiment.NEGATIVE;\n\n const labelId = useId();\n\n const fallbackInputId = useId();\n const inputId = id !== null ? id ?? fallbackInputId : undefined;\n\n const descriptionId = useId();\n\n return (\n <FieldLabelIdContextProvider value={labelId}>\n <InputIdContextProvider value={inputId}>\n <InputDescribedByProvider value={message ? descriptionId : undefined}>\n <InputInvalidProvider value={hasError}>\n <div\n className={classNames(\n 'form-group d-block',\n {\n 'has-success': sentiment === Sentiment.POSITIVE,\n 'has-warning': sentiment === Sentiment.WARNING,\n 'has-error': hasError,\n 'has-info': sentiment === Sentiment.NEUTRAL,\n },\n className,\n )}\n >\n {label != null ? (\n <Label id={labelId} htmlFor={inputId}>\n {label}\n {children}\n </Label>\n ) : (\n children\n )}\n\n {message && (\n <InlineAlert type={sentiment} id={descriptionId}>\n {message}\n </InlineAlert>\n )}\n </div>\n </InputInvalidProvider>\n </InputDescribedByProvider>\n </InputIdContextProvider>\n </FieldLabelIdContextProvider>\n );\n};\n","import classNames from 'classnames';\nimport * as React from 'react';\n\nimport { Layout } from '../propsValues/layouts';\n\nexport interface FlowHeaderProps {\n bottomContent?: React.ReactNode;\n className?: string;\n layout?: Layout.VERTICAL | Layout.HORIZONTAL;\n leftContent?: React.ReactNode;\n rightContent?: React.ReactNode;\n}\n\nconst FlowHeader = React.forwardRef(\n (\n {\n bottomContent,\n className,\n layout = Layout.HORIZONTAL,\n leftContent,\n rightContent,\n }: FlowHeaderProps,\n reference: React.ForwardedRef<HTMLDivElement | null>,\n ) => {\n const isVertical = layout === Layout.VERTICAL;\n\n return (\n <div\n ref={reference}\n className={classNames(\n 'np-flow-header',\n 'd-flex',\n 'flex-wrap',\n 'align-items-center',\n 'justify-content-between',\n 'flex__item--12',\n className,\n )}\n >\n {leftContent}\n {rightContent}\n <div\n className={classNames('align-items-center', 'd-flex', 'justify-content-center', {\n 'flex__item--12': isVertical,\n 'order-1 flex-grow-1': !isVertical,\n })}\n >\n {bottomContent}\n </div>\n </div>\n );\n },\n);\n\nexport default FlowHeader;\n","import classNames from 'classnames';\n\nimport { ReactComponent as LogoFlagInverse } from './svg/flag-inverse.svg';\nimport { ReactComponent as LogoFlagPlatformInverse } from './svg/flag-platform-white.svg';\nimport { ReactComponent as LogoFlagPlatform } from './svg/flag-platform.svg';\nimport { ReactComponent as LogoFlag } from './svg/flag.svg';\nimport { ReactComponent as LogoWiseInverse } from './svg/logo-inverse.svg';\nimport { ReactComponent as LogoWisePlatformInverse } from './svg/logo-platform-white.svg';\nimport { ReactComponent as LogoWisePlatform } from './svg/logo-platform.svg';\nimport { ReactComponent as LogoWise } from './svg/logo.svg';\n\nconst svgPaths = {\n WISE: LogoWise,\n WISE_BUSINESS: LogoWise,\n WISE_INVERSE: LogoWiseInverse,\n WISE_BUSINESS_INVERSE: LogoWiseInverse,\n WISE_PLATFORM: LogoWisePlatform,\n WISE_PLATFORM_INVERSE: LogoWisePlatformInverse,\n WISE_FLAG: LogoFlag,\n WISE_FLAG_INVERSE: LogoFlagInverse,\n WISE_FLAG_PLATFORM: LogoFlagPlatform,\n WISE_FLAG_PLATFORM_INVERSE: LogoFlagPlatformInverse,\n};\n\nexport enum LogoType {\n WISE = 'WISE',\n WISE_BUSINESS = 'WISE_BUSINESS',\n WISE_PLATFORM = 'WISE_PLATFORM',\n}\n\nexport interface LogoProps {\n /** Extra classes applied to Logo */\n className?: string;\n /** If true, will use dark colours for dark on light theme */\n inverse?: boolean;\n /** What type of logo to display */\n type?: `${LogoType}`;\n}\n\nconst labelByType = {\n WISE: 'Wise',\n WISE_BUSINESS: 'Wise Business',\n WISE_PLATFORM: 'Wise Platform',\n} satisfies Record<`${LogoType}`, string>;\n\nexport default function Logo({ className, inverse, type = 'WISE' }: LogoProps) {\n const LogoSm =\n svgPaths[`WISE_FLAG${type === 'WISE_PLATFORM' ? '_PLATFORM' : ''}${inverse ? '_INVERSE' : ''}`];\n const LogoMd = svgPaths[`${type}${inverse ? '_INVERSE' : ''}`];\n\n return (\n <span aria-label={labelByType[type]} role=\"img\" className={classNames(className, 'np-logo')}>\n <LogoSm className=\"np-logo-svg np-logo-svg--size-sm\" />\n <LogoMd className=\"np-logo-svg np-logo-svg--size-md\" />\n </span>\n );\n}\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport classNames from 'classnames';\nimport {\n AriaAttributes,\n PropsWithChildren,\n ReactElement,\n ReactNode,\n cloneElement,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\nimport { usePopper } from 'react-popper';\n\nimport { CommonProps, Position } from '../common';\nimport {\n PositionBottom,\n PositionLeft,\n PositionRight,\n PositionTop,\n} from '../common/propsValues/position';\n\nexport type TooltipProps = PropsWithChildren<{\n position?: PositionTop | PositionRight | PositionBottom | PositionLeft;\n label: ReactNode;\n id?: string;\n}> &\n CommonProps;\n\nconst Tooltip = ({\n position = Position.TOP,\n children = undefined,\n label,\n id,\n className,\n}: TooltipProps) => {\n const [open, setOpen] = useState(false);\n const anchorReference = useRef(null);\n const [arrowElement, setArrowElement] = useState(null);\n const [popperElement, setPopperElement] = useState(null);\n\n const fallbackId = useId();\n const tooltipId = id ?? fallbackId;\n const modifiers = [];\n\n modifiers.push({\n name: 'arrow',\n options: {\n element: arrowElement,\n options: {\n padding: 8, // 8px from the edges of the popper\n },\n },\n });\n // This lets you displace a popper element from its reference element.\n modifiers.push({ name: 'offset', options: { offset: [0, 16] } });\n modifiers.push({\n name: 'flip',\n options: {\n fallbackPlacements: Position.TOP,\n },\n });\n\n const { styles, attributes, forceUpdate } = usePopper(anchorReference.current, popperElement, {\n placement: position,\n modifiers,\n });\n\n // If the trigger is not visible when the position is calculated, it will be incorrect. Because this can happen repeatedly (on resize for example),\n // it is most simple just to always position before opening\n useEffect(() => {\n if (open && forceUpdate) {\n forceUpdate();\n }\n }, [open]);\n\n return (\n <span\n ref={anchorReference}\n className=\"tw-tooltip-container\"\n onMouseOver={() => setOpen(true)}\n onFocus={() => setOpen(true)}\n onMouseOut={() => setOpen(false)}\n onBlur={() => setOpen(false)}\n >\n {children\n ? cloneElement(children as ReactElement<Pick<AriaAttributes, 'aria-describedby'>>, {\n 'aria-describedby': `${tooltipId}-tooltip`,\n })\n : null}\n <div\n // @ts-expect-error\n ref={setPopperElement}\n className={classNames(\n 'np-tooltip',\n 'np-panel',\n open ? `np-panel--open np-tooltip--open` : null,\n className,\n )}\n // eslint-disable-next-line react/forbid-dom-props\n style={{ ...styles.popper }}\n {...attributes.popper}\n aria-hidden={!open}\n role=\"tooltip\"\n id={`${tooltipId}-tooltip`}\n >\n <div className=\"np-panel__content tooltip-inner\">\n {label}\n <div\n // @ts-expect-error\n ref={setArrowElement}\n className={classNames('np-panel__arrow')}\n // eslint-disable-next-line react/forbid-dom-props\n style={styles.arrow}\n />\n </div>\n </div>\n </span>\n );\n};\n\nexport default Tooltip;\n","function supportsTouchEvents() {\n const onTouchStartIsDefined = typeof window !== 'undefined' && window.ontouchstart !== undefined;\n const maxTouchPointsIsDefined = typeof navigator !== 'undefined' && navigator.maxTouchPoints;\n const documentTouchIsDefined =\n typeof window !== 'undefined' &&\n window.DocumentTouch &&\n document instanceof window.DocumentTouch;\n\n return !!(onTouchStartIsDefined || maxTouchPointsIsDefined || documentTouchIsDefined);\n}\n\nfunction userAgentSuggestsTouchDevice() {\n const sampleTouchDevices = [\n 'android',\n 'iemobile',\n 'iphone',\n 'ipad',\n 'ipod',\n 'blackberry',\n 'bada',\n ];\n const matchString = sampleTouchDevices.map((device) => `(${device})`).join('|');\n const regex = new RegExp(matchString, 'gi');\n return typeof navigator !== 'undefined' && !!navigator.userAgent.match(regex);\n}\n// Important: this is not fool-proof! It gives false positives and negatives, and will be outdated.\n// Only use this for small vanity changes where it still works either way.\nexport function isTouchDevice() {\n return supportsTouchEvents() || userAgentSuggestsTouchDevice();\n}\n","import classNames from 'classnames';\nimport * as React from 'react';\n\nimport { Position } from '../common';\nimport { useDirection } from '../common/hooks';\nimport Tooltip from '../tooltip';\n\nimport { isTouchDevice } from './deviceDetection';\n\nfunction clamp(from: number, to: number, value: number) {\n return Math.max(Math.min(to, value), from);\n}\n\nexport interface Step {\n label: React.ReactNode;\n onClick?: () => void;\n hoverLabel?: React.ReactNode;\n}\n\nexport interface StepperProps {\n steps: readonly Step[];\n activeStep?: number;\n className?: string;\n}\n\n/* eslint-disable react/no-array-index-key */\nconst Stepper = ({ steps, activeStep = 0, className }: StepperProps) => {\n const { isRTL } = useDirection();\n\n if (steps.length === 0) {\n return null;\n }\n\n const activeStepIndex = clamp(0, steps.length - 1, activeStep);\n const stepPercentage = 1 / (steps.length - 1);\n const percentageCompleted = activeStepIndex / (steps.length - 1);\n\n const renderStep = (step: Step, index: number) => {\n const active = index === activeStepIndex;\n const clickable = step.onClick && !active;\n\n const labelButton = clickable ? (\n <button\n type=\"button\"\n className=\"btn-unstyled tw-stepper__step-label\"\n onClick={() => clickable && step.onClick?.()}\n >\n <small>{step.label}</small>\n </button>\n ) : (\n <span className=\"tw-stepper__step-label\">{step.label}</span>\n );\n return (\n <li\n key={index}\n className={classNames(\n 'hidden-xs',\n 'tw-stepper__step',\n active ? 'np-text-body-default-bold tw-stepper__step--active' : 'np-text-body-default',\n clickable && 'tw-stepper__step--clickable',\n step.hoverLabel && 'tw-stepper__step--has-tooltip',\n )}\n aria-current={active ? 'step' : false}\n style={\n isRTL\n ? { right: `${index * stepPercentage * 100}%` }\n : { left: `${index * stepPercentage * 100}%` }\n }\n >\n {step.hoverLabel && !isTouchDevice() ? (\n <Tooltip position={Position.BOTTOM} label={step.hoverLabel}>\n {labelButton}\n </Tooltip>\n ) : (\n labelButton\n )}\n </li>\n );\n };\n\n return (\n <div className={classNames('tw-stepper', className)}>\n <div className=\"progress\">\n <div className=\"progress-bar\" style={{ width: `${percentageCompleted * 100}%` }} />\n </div>\n <ul className=\"tw-stepper-steps p-t-1 m-b-0\">{steps.map(renderStep)}</ul>\n </div>\n );\n};\n/* eslint-enable react/no-array-index-key */\n\nexport default Stepper;\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n back: {\n id: 'neptune.FlowNavigation.back',\n defaultMessage: 'back to previous step',\n },\n});\n","import classNames from 'classnames';\nimport React from 'react';\n\nimport Body from '../../body';\nimport { Typography } from '../../common';\n\nexport interface AnimatedLabelProps {\n activeLabel: number;\n className?: string;\n labels: readonly React.ReactNode[];\n}\n\nconst AnimatedLabel = ({ activeLabel, className, labels }: AnimatedLabelProps) => {\n return (\n <Body type={Typography.BODY_LARGE_BOLD} className={classNames('np-animated-label', className)}>\n {labels.map((label, index) => {\n const nextLabel = index - 1;\n return (\n <div\n key={nextLabel}\n className={classNames('text-xs-center', {\n 'np-animated-label--in text-ellipsis': index === activeLabel,\n })}\n >\n {label}\n </div>\n );\n })}\n </Body>\n );\n};\n\nexport default AnimatedLabel;\n","import { ArrowLeft as ArrowLeftIcon } from '@transferwise/icons';\nimport classNames from 'classnames';\n\nimport Avatar, { AvatarType } from '../../avatar';\n\nexport interface BackButtonProps {\n 'aria-label': string;\n className?: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nexport default function BackButton({\n className,\n onClick,\n 'aria-label': ariaLabel,\n}: BackButtonProps) {\n return (\n <Avatar type={AvatarType.ICON} size={40}>\n <button\n type=\"button\"\n aria-label={ariaLabel}\n className={classNames('np-back-button', 'btn-unstyled', className)}\n onClick={onClick}\n >\n <ArrowLeftIcon size={24} />\n </button>\n </Avatar>\n );\n}\n","import classNames from 'classnames';\nimport { useIntl } from 'react-intl';\n\nimport { Breakpoint, Layout } from '../common';\nimport { CloseButton } from '../common/closeButton';\nimport FlowHeader from '../common/flowHeader/FlowHeader';\nimport Logo from '../logo';\nimport Stepper, { type Step } from '../stepper/Stepper';\n\nimport { useScreenSize } from '../common/hooks/useScreenSize';\nimport messages from './FlowNavigation.messages';\nimport AnimatedLabel from './animatedLabel';\nimport BackButton from './backButton';\n\nexport interface FlowNavigationProps {\n activeStep?: number;\n avatar?: React.ReactNode;\n logo?: React.ReactNode;\n done?: boolean;\n /** Called when the close button is clicked. If not provided the close button won't show */\n onClose?: () => void;\n /** Called when the back button is clicked. If not provided the back button won't show. The back button only shows on small screens */\n onGoBack?: () => void;\n /** Steps to be displayed in stepper. If you don't need the stepper, please use OverlayHeader instead */\n steps: readonly Step[];\n}\n\nconst FlowNavigation = ({\n activeStep = 0,\n avatar,\n logo = <Logo />,\n done = false,\n onClose,\n onGoBack,\n steps,\n}: FlowNavigationProps) => {\n const intl = useIntl();\n\n const closeButton = onClose != null && <CloseButton size=\"lg\" onClick={onClose} />;\n\n const screenSm = useScreenSize(Breakpoint.SMALL);\n const screenLg = useScreenSize(Breakpoint.LARGE);\n\n const newAvatar = done ? null : avatar;\n\n const displayGoBack = onGoBack != null && activeStep > 0;\n\n return (\n <div\n className={classNames(\n 'np-flow-navigation d-flex align-items-center justify-content-center p-y-3',\n { 'np-flow-navigation--border-bottom': !done },\n )}\n >\n <FlowHeader\n className={classNames(\n 'np-flow-navigation__content p-x-3',\n screenSm == null\n ? 'np-flow-navigation--hidden'\n : {\n 'np-flow-navigation--xs-max': !screenSm,\n // Size switches on parent container which may or may not have the same size as the window.\n 'np-flow-navigation--sm': screenSm,\n 'np-flow-navigation--lg': screenLg,\n },\n )}\n leftContent={\n <>\n {!screenSm && displayGoBack ? (\n <BackButton aria-label={intl.formatMessage(messages.back)} onClick={onGoBack} />\n ) : (\n <div className=\"np-flow-header__left\">{logo}</div>\n )}\n {!screenSm && !done && (\n <AnimatedLabel\n className=\"m-x-1\"\n labels={steps.map((step) => step.label)}\n activeLabel={activeStep}\n />\n )}\n </>\n }\n rightContent={\n <div className=\"np-flow-header__right d-flex align-items-center justify-content-end order-2--lg\">\n {newAvatar}\n {newAvatar && closeButton && <span className=\"m-x-1\" />}\n {closeButton}\n </div>\n }\n bottomContent={\n !done && (\n <Stepper\n activeStep={activeStep}\n steps={steps}\n className={classNames('np-flow-navigation__stepper')}\n />\n )\n }\n layout={!screenLg ? Layout.VERTICAL : Layout.HORIZONTAL}\n />\n </div>\n );\n};\n\nexport default FlowNavigation;\n","import { useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\n\nimport ActionButton, { ActionButtonProps } from '../actionButton/ActionButton';\nimport Button from '../button';\nimport { AriaLabelProperty, CommonProps, Heading, LinkProps, Typography } from '../common';\nimport Link from '../link';\nimport Title from '../title';\n\ntype ActionProps = AriaLabelProperty & {\n text: string;\n};\n\ntype ButtonActionProps = ActionProps & ActionButtonProps;\n\ntype LinkActionProps = ActionProps & LinkProps;\n\nexport type HeaderProps = CommonProps & {\n /**\n * When the `href` property is provided to the `action`, we will render a `Link` instead of a `ActionButton`.\n */\n action?: ButtonActionProps | LinkActionProps;\n /**\n * Override the heading element rendered for the title, useful to specify the semantics of your header.\n *\n * @default \"h5\"\n */\n as?: Heading | 'legend';\n title: string;\n};\n\nconst HeaderAction = ({ action }: { action: ButtonActionProps | LinkActionProps }) => {\n const { isModern } = useTheme();\n const props = {\n 'aria-label': action['aria-label'],\n };\n\n if ('href' in action) {\n return (\n <Link href={action.href} target={action.target} onClick={action.onClick} {...props}>\n {action.text}\n </Link>\n );\n }\n\n return isModern ? (\n <Button\n className=\"np-header__button\"\n priority=\"tertiary\"\n size=\"sm\"\n onClick={action.onClick}\n {...props}\n >\n {action.text}\n </Button>\n ) : (\n <ActionButton onClick={action.onClick} {...props}>\n {action.text}\n </ActionButton>\n );\n};\n\n/**\n *\n * Neptune Web: https://transferwise.github.io/neptune-web/components/content/Header\n *\n */\nexport const Header = ({ action, as = 'h5', title, className }: HeaderProps) => {\n if (!action) {\n return (\n <Title\n as={as}\n type={Typography.TITLE_GROUP}\n className={classNames('np-header', 'np-header__title', className)}\n >\n {title}\n </Title>\n );\n }\n\n if (as === 'legend') {\n // eslint-disable-next-line no-console\n console.warn(\n 'Legends should be the first child in a fieldset, and this is not possible when including an action',\n );\n }\n\n return (\n <div className={classNames('np-header', className)}>\n <Title as={as} type={Typography.TITLE_GROUP} className=\"np-header__title\">\n {title}\n </Title>\n <HeaderAction action={action} />\n </div>\n );\n};\n\nexport default Header;\n","// TODO: consider to move this enum into component file once we migrate it on TypeScript or replace with some common enum\nexport enum InfoPresentation {\n POPOVER = 'POPOVER',\n MODAL = 'MODAL',\n}\n","import classNames from 'classnames';\nimport { ReactNode, useId, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\n\nimport {\n Size,\n Position,\n PositionTop,\n PositionCenter,\n Scroll,\n CommonProps,\n SizeSmall,\n SizeMedium,\n SizeLarge,\n SizeExtraLarge,\n ScrollContent,\n ScrollViewport,\n Typography,\n} from '../common';\nimport { CloseButton } from '../common/closeButton';\nimport { useLayout } from '../common/hooks';\nimport Dimmer from '../dimmer';\nimport Drawer from '../drawer';\nimport Title from '../title/Title';\n\nconst TRANSITION_DURATION_IN_MILLISECONDS = 150;\n\nexport type ModalProps = CommonProps & {\n title?: ReactNode;\n body: ReactNode;\n footer?: ReactNode;\n size?: SizeSmall | SizeMedium | SizeLarge | SizeExtraLarge;\n onClose: () => void;\n open: boolean;\n scroll?: ScrollContent | ScrollViewport;\n position?: PositionTop | PositionCenter;\n disableDimmerClickToClose?: boolean;\n};\n\nconst Modal = ({\n title = null,\n body,\n footer = null,\n onClose,\n className,\n open,\n size = Size.MEDIUM,\n scroll = Scroll.VIEWPORT,\n position = Position.CENTER,\n disableDimmerClickToClose = false,\n ...otherProps\n}: ModalProps) => {\n const checkSpecialClasses = (classToCheck: string) =>\n className?.split(' ').includes(classToCheck);\n const { isMedium } = useLayout();\n\n // These should be replaced with props in breaking change.\n const isCompact = checkSpecialClasses('compact');\n const noDivider = checkSpecialClasses('no-divider');\n\n const contentReference = useRef<HTMLDivElement>(null);\n const titleId = useId();\n\n return !isMedium ? (\n <Drawer\n open={open}\n headerTitle={title}\n footerContent={footer}\n position={Position.BOTTOM}\n onClose={onClose}\n >\n {body}\n </Drawer>\n ) : (\n <Dimmer\n open={open}\n scrollable={scroll === Scroll.VIEWPORT}\n contentPosition={position}\n disableClickToClose={disableDimmerClickToClose}\n onClose={onClose}\n >\n <CSSTransition\n nodeRef={contentReference}\n appear\n in={open}\n classNames={{ enterDone: 'in' }}\n timeout={TRANSITION_DURATION_IN_MILLISECONDS}\n unmountOnExit\n >\n <div\n ref={contentReference}\n className={classNames(\n 'tw-modal',\n 'd-flex',\n 'fade',\n 'outline-none',\n scroll === Scroll.CONTENT && 'tw-modal--scrollable',\n className,\n )}\n {...otherProps}\n >\n <div\n role=\"dialog\"\n aria-modal\n aria-labelledby={titleId}\n className={classNames('tw-modal-dialog', 'd-flex', {\n [`tw-modal-${size}`]: size,\n })}\n >\n <div\n className={classNames(\n 'tw-modal-content',\n 'd-flex',\n 'flex-column',\n 'justify-content-between',\n {\n 'tw-modal-compact': isCompact,\n 'tw-modal-no-title': !title,\n },\n )}\n >\n <div\n className={classNames(\n 'tw-modal-header',\n 'd-flex',\n 'align-items-center',\n 'justify-content-between',\n 'flex-wrap',\n {\n 'modal--withoutborder': !title || noDivider,\n },\n )}\n >\n <Title id={titleId} type={Typography.TITLE_BODY} className=\"tw-modal-title\">\n {title}\n </Title>\n <CloseButton onClick={onClose} />\n </div>\n <div\n className={classNames('tw-modal-body', {\n 'tw-modal-body--scrollable': scroll === Scroll.CONTENT,\n })}\n >\n {body}\n </div>\n {footer && (\n <div\n className={classNames(\n 'tw-modal-footer',\n 'd-flex',\n 'align-items-center',\n 'flex-wrap',\n {\n 'modal--withoutborder': noDivider,\n },\n )}\n >\n {footer}\n </div>\n )}\n </div>\n </div>\n </div>\n </CSSTransition>\n </Dimmer>\n );\n};\n\nexport default Modal;\n","import { useTheme } from '@wise/components-theming';\nimport classnames from 'classnames';\nimport { useRef, useState, cloneElement, useEffect, isValidElement } from 'react';\n\nimport { Position, Typography } from '../common';\nimport ResponsivePanel from '../common/responsivePanel';\nimport Title from '../title';\nimport { logActionRequired } from '../utilities';\n\n/** @deprecated Use `\"top\" | \"bottom\"` instead. */\ntype PopoverPreferredPlacementDeprecated =\n | `${Position.LEFT_TOP}`\n | `${Position.RIGHT_TOP}`\n | `${Position.BOTTOM_RIGHT}`\n | `${Position.BOTTOM_LEFT}`;\n\nexport type PopoverPreferredPlacement =\n | `${Position.TOP}`\n | `${Position.RIGHT}`\n | `${Position.BOTTOM}`\n | `${Position.LEFT}`\n | PopoverPreferredPlacementDeprecated;\n\nexport interface PopoverProps {\n children?: React.ReactNode;\n className?: string;\n content: React.ReactNode;\n preferredPlacement?: PopoverPreferredPlacement;\n onClose?: () => void;\n title?: React.ReactNode;\n}\n\nfunction resolvePlacement(preferredPlacement: PopoverPreferredPlacement) {\n switch (preferredPlacement) {\n case 'left-top':\n case 'right-top':\n return 'top';\n case 'bottom-left':\n case 'bottom-right':\n return 'bottom';\n default:\n return preferredPlacement;\n }\n}\n\nexport default function Popover({\n children,\n className,\n content,\n preferredPlacement = Position.RIGHT,\n title,\n onClose,\n}: PopoverProps) {\n const resolvedPlacement = resolvePlacement(preferredPlacement);\n useEffect(() => {\n if (resolvedPlacement !== preferredPlacement) {\n logActionRequired(\n `Popover has deprecated ${preferredPlacement} value for the 'preferredPlacement' prop. Please use ${resolvedPlacement} instead.`,\n );\n }\n }, [preferredPlacement, resolvedPlacement]);\n\n const anchorReference = useRef(null);\n const [open, setOpen] = useState(false);\n\n const handleOnClose = () => {\n setOpen(false);\n onClose?.();\n };\n\n return (\n <span className={classnames('np-popover', className)}>\n <span ref={anchorReference} className=\"d-inline-block\">\n {isValidElement<{ onClick?: () => void }>(children)\n ? cloneElement(children, {\n onClick: () => {\n children.props.onClick?.();\n setOpen((prevOpen) => !prevOpen);\n },\n })\n : children}\n </span>\n <ResponsivePanel\n open={open}\n anchorRef={anchorReference}\n position={resolvedPlacement}\n arrow\n className=\"np-popover__container\"\n onClose={handleOnClose}\n >\n <div className=\"np-popover__content np-text-default-body\">\n {title && (\n <Title type={Typography.TITLE_BODY} className=\"m-b-1\">\n {title}\n </Title>\n )}\n {content}\n </div>\n </ResponsivePanel>\n </span>\n );\n}\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n ariaLabel: {\n id: 'neptune.Info.ariaLabel',\n defaultMessage: 'More information',\n },\n});\n","import { QuestionMarkCircle as HelpCircleIcon } from '@transferwise/icons';\nimport classNames from 'classnames';\nimport { useState } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { Size, Position, SizeSmall, SizeLarge } from '../common';\nimport Modal from '../modal';\nimport Popover, { PopoverPreferredPlacement } from '../popover';\n\nimport messages from './Info.messages';\nimport { InfoPresentation } from './infoPresentations';\n\nexport interface InfoProps {\n 'aria-label'?: string;\n /**\n * Extra classes applied to Info\n */\n className?: string;\n /**\n * Content displayed inside a Popover a Modal\n */\n content?: React.ReactNode;\n onClick?: () => void;\n /**\n * Decides whether to display content in a Popover or a Modal\n */\n presentation?: 'MODAL' | 'POPOVER';\n /**\n * Decides the size of help Icon\n */\n size?: SizeSmall | SizeLarge;\n /**\n * Title displayed inside a Popover a Modal\n */\n title?: React.ReactNode;\n /**\n * Prferred placement of the Popover, does not apply to Modal\n */\n preferredPlacement?: PopoverPreferredPlacement;\n}\n\nconst Info = ({\n className = undefined,\n content = undefined,\n onClick = undefined,\n presentation = InfoPresentation.POPOVER,\n size = Size.SMALL,\n title = undefined,\n 'aria-label': ariaLabel,\n preferredPlacement = Position.BOTTOM,\n}: InfoProps) => {\n const intl = useIntl();\n const [open, setOpen] = useState(false);\n ariaLabel ??= intl.formatMessage(messages.ariaLabel);\n const isModal = presentation === InfoPresentation.MODAL;\n const isSmall = size === Size.SMALL;\n\n const buttonProps = {\n 'aria-label': ariaLabel,\n className: 'btn-unstyled',\n children: <HelpCircleIcon size={isSmall ? 16 : 24} />,\n };\n\n return (\n <span\n className={classNames(className, 'np-info', {\n 'np-info__small': isSmall,\n 'np-info__large': !isSmall,\n })}\n >\n {isModal ? (\n <>\n <button\n type=\"button\"\n onClick={() => {\n setOpen(!open);\n if (onClick) {\n onClick();\n }\n }}\n {...buttonProps}\n />\n <Modal body={content} open={open} title={title} onClose={() => setOpen(false)} />\n </>\n ) : (\n <Popover content={content} preferredPlacement={preferredPlacement} title={title}>\n <button\n type=\"button\"\n {...buttonProps}\n onClick={() => {\n if (onClick) {\n onClick();\n }\n }}\n />\n </Popover>\n )}\n </span>\n );\n};\n\nexport default Info;\n","import classNames from 'classnames';\n\nimport { SizeLarge, SizeMedium, SizeSmall } from '../common';\n\nexport type InputPropsBase = {\n size?: 'auto' | SizeSmall | SizeMedium | SizeLarge;\n};\n\nexport function inputClassNameBase({ size = 'auto' }: InputPropsBase = {}) {\n return classNames(\n 'form-control', // TODO: Deprecate\n 'np-form-control',\n {\n 'np-form-control--size-auto': size === 'auto',\n 'np-form-control--size-sm': size === 'sm',\n 'np-form-control--size-md': size === 'md',\n 'np-form-control--size-lg': size === 'lg',\n },\n );\n}\n","import { useCallback, useEffect, useRef } from 'react';\n\n/*\n * Inspired by:\n *\n * - https://react.dev/learn/separating-events-from-effects#declaring-an-effect-event\n * - https://legacy.reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback\n */\n\nexport function useEffectEvent<A extends unknown[], R>(\n callback: (...args: A) => R,\n): typeof callback {\n const ref = useRef<typeof callback>(() => {\n throw new Error('Cannot call an event handler while rendering.');\n });\n\n useEffect(() => {\n ref.current = callback;\n });\n\n return useCallback((...args) => ref.current(...args), []);\n}\n","import { useEffect } from 'react';\n\nimport { useEffectEvent } from './useEffectEvent';\n\nexport function useResizeObserver(\n ref: React.MutableRefObject<Element | null>,\n callback: (entry: ResizeObserverEntry) => void,\n) {\n const handleCallback = useEffectEvent(callback);\n useEffect(() => {\n if (ref.current != null) {\n const resizeObserver = new ResizeObserver(([entry]) => {\n handleCallback(entry);\n });\n resizeObserver.observe(ref.current, { box: 'border-box' });\n return () => {\n resizeObserver.disconnect();\n };\n }\n return () => {};\n }, [handleCallback, ref]);\n}\n","export function cssValueWithUnit(value: number | string) {\n return typeof value === 'number' ? `${value}px` : value;\n}\n","import classNames from 'classnames';\nimport { createContext, useContext, useMemo, useRef, useState } from 'react';\n\nimport { useResizeObserver } from '../common/hooks/useResizeObserver';\nimport { cssValueWithUnit } from '../utilities/cssValueWithUnit';\nimport {\n FieldLabelIdContextProvider,\n InputDescribedByProvider,\n InputIdContextProvider,\n InputInvalidProvider,\n useInputAttributes,\n} from './contexts';\n\ntype InputPaddingContextType = [\n number | string | undefined,\n React.Dispatch<React.SetStateAction<number | string | undefined>>,\n];\n\nconst InputPaddingStartContext = createContext<InputPaddingContextType>([undefined, () => {}]);\n\nconst InputPaddingEndContext = createContext<InputPaddingContextType>([undefined, () => {}]);\n\nexport function useInputPaddings() {\n const [paddingStart] = useContext(InputPaddingStartContext);\n const [paddingEnd] = useContext(InputPaddingEndContext);\n\n return {\n paddingInlineStart: paddingStart,\n paddingInlineEnd: paddingEnd,\n } satisfies React.CSSProperties;\n}\n\ninterface InputGroupAddon {\n content: React.ReactNode;\n initialContentWidth?: number | string;\n interactive?: boolean;\n padding?: 'none' | 'sm' | 'md';\n}\n\nexport interface InputGroupProps {\n addonStart?: InputGroupAddon;\n addonEnd?: InputGroupAddon;\n disabled?: boolean;\n className?: string;\n children?: React.ReactNode;\n}\n\nfunction inputPaddingInitialState({\n initialContentWidth,\n padding = inputAddonDefaultPadding,\n}: Pick<\n InputGroupAddon,\n 'initialContentWidth' | 'padding'\n> = {}): () => InputPaddingContextType[0] {\n return () =>\n initialContentWidth != null\n ? `calc(${cssValueWithUnit(initialContentWidth)} + ${cssValueWithUnit(\n inputAddonContentWidthAddendByPadding[padding],\n )})`\n : undefined;\n}\n\nexport function InputGroup({\n addonStart,\n addonEnd,\n disabled,\n className,\n children,\n}: InputGroupProps) {\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n\n const [paddingStart, setPaddingStart] = useState(inputPaddingInitialState(addonStart));\n const [paddingEnd, setPaddingEnd] = useState(inputPaddingInitialState(addonEnd));\n\n return (\n /* Prevent nested controls from being labeled redundantly */\n <FieldLabelIdContextProvider value={undefined}>\n <InputIdContextProvider value={undefined}>\n <InputDescribedByProvider value={undefined}>\n <InputInvalidProvider value={undefined}>\n <InputPaddingStartContext.Provider\n value={useMemo(() => [paddingStart, setPaddingStart], [paddingStart])}\n >\n <InputPaddingEndContext.Provider\n value={useMemo(() => [paddingEnd, setPaddingEnd], [paddingEnd])}\n >\n <fieldset\n {...inputAttributes}\n disabled={disabled}\n className={classNames(className, 'np-input-group')}\n >\n {addonStart != null ? <InputAddon placement=\"start\" {...addonStart} /> : null}\n {children}\n {addonEnd != null ? <InputAddon placement=\"end\" {...addonEnd} /> : null}\n </fieldset>\n </InputPaddingEndContext.Provider>\n </InputPaddingStartContext.Provider>\n </InputInvalidProvider>\n </InputDescribedByProvider>\n </InputIdContextProvider>\n </FieldLabelIdContextProvider>\n );\n}\n\ninterface InputAddonProps extends Omit<InputGroupAddon, 'initialContentWidth'> {\n placement: 'start' | 'end';\n}\n\nconst inputAddonContentWidthAddendByPadding = {\n none: 0,\n sm: '1rem',\n md: '1.5rem',\n} satisfies {\n [key in NonNullable<InputAddonProps['padding']>]: InputPaddingContextType[0];\n};\n\nconst inputAddonDefaultPadding = 'md' satisfies InputAddonProps['padding'];\n\nfunction InputAddon({\n placement,\n content,\n interactive,\n padding = inputAddonDefaultPadding,\n}: InputAddonProps) {\n const [, setInputPadding] = useContext(\n placement === 'start' ? InputPaddingStartContext : InputPaddingEndContext,\n );\n\n const ref = useRef<HTMLSpanElement>(null);\n useResizeObserver(ref, (entry) => {\n // TODO: Remove fallback once most browsers support `borderBoxSize`\n const inlineSize = entry.borderBoxSize?.[0]?.inlineSize;\n if (inlineSize != null) {\n setInputPadding(inlineSize);\n } else {\n const targetStyle = getComputedStyle(entry.target);\n setInputPadding(\n entry.contentRect.width +\n Number.parseFloat(targetStyle.paddingInlineStart) +\n Number.parseFloat(targetStyle.paddingInlineEnd),\n );\n }\n });\n\n return (\n <span\n ref={ref}\n className={classNames(\n 'np-input-addon',\n {\n 'np-input-addon--placement-start': placement === 'start',\n 'np-input-addon--placement-end': placement === 'end',\n },\n interactive && 'np-input-addon--interactive',\n {\n 'np-input-addon--padding-sm': padding === 'sm',\n 'np-input-addon--padding-md': padding === 'md',\n },\n )}\n >\n {content}\n </span>\n );\n}\n","import classNames from 'classnames';\nimport { forwardRef } from 'react';\n\nimport { SizeLarge, SizeMedium, SizeSmall } from '../common';\nimport { Merge } from '../utils';\nimport { inputClassNameBase } from './_common';\nimport { useInputAttributes } from './contexts';\nimport { useInputPaddings } from './InputGroup';\n\nexport interface InputProps\n extends Merge<\n React.ComponentPropsWithRef<'input'>,\n {\n size?: 'auto' | SizeSmall | SizeMedium | SizeLarge;\n shape?: 'rectangle' | 'pill';\n 'aria-invalid'?: boolean;\n }\n > {}\n\nexport const Input = forwardRef(function Input(\n { size = 'auto', shape = 'rectangle', className, ...restProps }: InputProps,\n reference: React.ForwardedRef<HTMLInputElement | null>,\n) {\n const inputAttributes = useInputAttributes();\n const inputPaddings = useInputPaddings();\n\n return (\n <input\n ref={reference}\n className={classNames(className, inputClassNameBase({ size }), 'np-input', {\n 'np-input--shape-rectangle': shape === 'rectangle',\n 'np-input--shape-pill': shape === 'pill',\n })}\n // eslint-disable-next-line react/forbid-dom-props\n style={inputPaddings}\n {...inputAttributes}\n {...restProps}\n />\n );\n});\n","export type SymbolWithPosition = {\n index: number;\n symbol: string;\n};\n\nconst getSymbolsInPatternWithPosition = (pattern: string): SymbolWithPosition[] => {\n const patternWithSymbolsPosition: SymbolWithPosition[] = [];\n const patternArray = pattern.split('');\n patternArray.forEach((symbol, index) => {\n if (symbol !== '*') {\n patternWithSymbolsPosition.push({ index, symbol });\n }\n });\n\n return patternWithSymbolsPosition;\n};\n\nexport default getSymbolsInPatternWithPosition;\n","import getSymbolsInPatternWithPosition from '../getSymbolsInPatternWithPosition';\nimport type { SymbolWithPosition } from '../getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition';\n\nconst formatWithPattern = (value: string, pattern: string): string => {\n if (!value || value === '') {\n return '';\n }\n\n const valueArray = value.toString().split('');\n\n const patternWithSymbolsPosition = getSymbolsInPatternWithPosition(pattern);\n\n let patternSymbol: SymbolWithPosition[] = [];\n // valueArray.length increments during the cycle cause we are adding new elements.\n for (let index = 0; index < valueArray.length; index += 1) {\n patternSymbol = patternWithSymbolsPosition.filter((pattern) => pattern.index === index);\n // Add pattern's symbol at n position\n if (patternSymbol.length === 1) {\n const last = patternSymbol.pop();\n if (last) {\n valueArray.splice(index, 0, last.symbol);\n }\n }\n }\n\n return valueArray.join('');\n};\n\nexport default formatWithPattern;\n","const unformatWithPattern = (value: string, pattern: string): string => {\n let valueArray = [''];\n if (value && value.length > 0) {\n valueArray = value.toString().split('');\n valueArray = valueArray.filter((element) => !getSymbolsInPattern(pattern).includes(element));\n }\n\n return valueArray.join('');\n};\n\nconst getSymbolsInPattern = (pattern: string): string[] =>\n pattern.split('').filter((symbol) => symbol !== '*');\n\nexport default unformatWithPattern;\n","import getSymbolsInPatternWithPosition from '../getSymbolsInPatternWithPosition';\n\nconst getCountOfSymbolsInSelection = (\n selectionStart: number,\n selectionEnd: number,\n pattern: string,\n) =>\n getSymbolsInPatternWithPosition(pattern).filter(\n (symbol) => symbol.index >= selectionStart && symbol.index < selectionEnd,\n ).length;\n\nexport default getCountOfSymbolsInSelection;\n","import getSymbolsInPatternWithPosition from '../getSymbolsInPatternWithPosition';\nimport { SymbolWithPosition } from '../getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition';\n\nexport const getDistanceToNextSymbol = (selectionStart: number, pattern: string) => {\n const patternArray = getSymbolsInPatternWithPosition(pattern);\n const applicablePattern = patternArray.filter((symbol) => symbol.index >= selectionStart);\n return countConsecutiveSymbols(selectionStart, applicablePattern, 'left');\n};\n\nexport const getDistanceToPreviousSymbol = (selectionStart: number, pattern: string) => {\n const patternArray = getSymbolsInPatternWithPosition(pattern);\n const applicablePattern = patternArray\n .filter((symbol) => symbol.index < selectionStart)\n .reverse();\n return countConsecutiveSymbols(selectionStart, applicablePattern, 'right');\n};\n\nconst countConsecutiveSymbols = (\n selectionStart: number,\n applicablePattern: SymbolWithPosition[],\n direction: 'left' | 'right',\n) => {\n let cursor = selectionStart;\n let groupSize;\n\n for (groupSize = 0; groupSize < applicablePattern.length; groupSize += 1) {\n const condition = direction === 'left' ? cursor : cursor - 1;\n if (applicablePattern[groupSize].index === condition) {\n cursor = direction === 'left' ? cursor + 1 : cursor - 1;\n } else {\n // Exit if not consecutive.\n break;\n }\n }\n return groupSize;\n};\n","import getCountOfSymbolsInSelection from '../getCountOfSymbolsInSelection';\nimport { getDistanceToNextSymbol, getDistanceToPreviousSymbol } from '../getDistanceToSymbol';\n\nconst getCursorPositionAfterActionStroke = (\n action: string,\n selectionStart: number,\n selectionEnd: number,\n pattern: string,\n pastedLength: number,\n): number => {\n let cursorPosition = selectionStart;\n\n switch (action) {\n case 'Backspace':\n // If not multiple delete.\n if (selectionStart === selectionEnd) {\n cursorPosition -= getDistanceToPreviousSymbol(selectionStart, pattern);\n cursorPosition = cursorPosition > 0 ? cursorPosition - 1 : 0;\n }\n break;\n\n case 'Paste':\n cursorPosition +=\n pastedLength +\n getCountOfSymbolsInSelection(selectionStart, selectionStart + pastedLength, pattern) +\n getDistanceToNextSymbol(selectionStart + pastedLength, pattern);\n break;\n\n case 'Cut':\n case 'Delete':\n break;\n\n default:\n cursorPosition += 1 + getDistanceToNextSymbol(selectionStart, pattern);\n break;\n }\n\n return cursorPosition;\n};\n\nexport default getCursorPositionAfterActionStroke;\n","import * as React from 'react';\n\nimport { HistoryNavigator } from '../common';\nimport {\n formatWithPattern,\n getCountOfSymbolsInSelection,\n getCursorPositionAfterKeystroke,\n unformatWithPattern,\n getDistanceToPreviousSymbol,\n getDistanceToNextSymbol,\n} from '../common/textFormat';\nimport { InputProps } from '../inputs/Input';\nimport { TextAreaProps } from '../inputs/TextArea';\n\ntype HTMLTextElement = HTMLInputElement | HTMLTextAreaElement;\ntype TextElementProps = InputProps | TextAreaProps;\n\nexport type EventType =\n | 'KeyDown'\n | 'Paste'\n | 'Cut'\n | 'Undo'\n | 'Redo'\n | 'Backspace'\n | 'Delete'\n | 'Initial';\n\ninterface WithDisplayFormatState {\n value: string;\n historyNavigator: HistoryNavigator;\n prevDisplayPattern: string;\n triggerType: EventType;\n triggerEvent: React.KeyboardEvent<HTMLTextElement> | null;\n pastedLength: number;\n selectionStart: number;\n selectionEnd: number;\n}\n\nexport interface WithDisplayFormatProps<T extends TextElementProps = TextElementProps>\n extends Pick<\n TextElementProps,\n | 'className'\n | 'disabled'\n | 'id'\n | 'maxLength'\n | 'minLength'\n | 'name'\n | 'placeholder'\n | 'readOnly'\n | 'required'\n | 'inputMode'\n > {\n value?: string;\n displayPattern: string;\n /**\n * autocomplete hides our form help so we need to disable it when help text\n * is present. Chrome ignores autocomplete=off, the only way to disable it is\n * to provide an 'invalid' value, for which 'disabled' serves.\n */\n autoComplete?: TextElementProps['autoComplete'] | 'disabled';\n onChange?: (value: string) => void;\n onBlur?: (value: string) => void;\n onFocus?: (value: string) => void;\n render: (renderProps: T) => React.JSX.Element;\n}\n\nclass WithDisplayFormat<T extends TextElementProps> extends React.Component<\n WithDisplayFormatProps<T>,\n WithDisplayFormatState\n> {\n declare props: WithDisplayFormatProps<T> &\n Required<Pick<WithDisplayFormatProps<T>, keyof typeof WithDisplayFormat.defaultProps>>;\n static defaultProps = {\n autoComplete: 'off',\n displayPattern: '',\n value: '',\n };\n\n constructor(props: WithDisplayFormatProps) {\n super(props);\n const unformattedValue = unformatWithPattern(props.value ?? '', props.displayPattern);\n this.state = {\n value: formatWithPattern(unformattedValue, props.displayPattern),\n historyNavigator: new HistoryNavigator(),\n prevDisplayPattern: props.displayPattern,\n triggerType: 'Initial',\n triggerEvent: null,\n selectionStart: 0,\n selectionEnd: 0,\n pastedLength: 0,\n };\n }\n\n static getDerivedStateFromProps(\n { displayPattern }: WithDisplayFormatProps,\n { prevDisplayPattern = displayPattern, value, historyNavigator }: WithDisplayFormatState,\n ) {\n if (prevDisplayPattern !== displayPattern) {\n const unFormattedValue = unformatWithPattern(value, prevDisplayPattern);\n historyNavigator.reset();\n\n return {\n prevDisplayPattern: displayPattern,\n value: formatWithPattern(unFormattedValue, displayPattern),\n triggerType: null,\n triggerEvent: null,\n pastedLength: 0,\n };\n }\n return null;\n }\n\n getUserAction = (unformattedValue: string): EventType | string => {\n const { triggerEvent, triggerType, value } = this.state;\n const { displayPattern } = this.props;\n\n if (triggerEvent) {\n const charCode = String.fromCharCode(triggerEvent.which).toLowerCase();\n\n if (triggerType === 'Paste' || triggerType === 'Cut') {\n return triggerType;\n }\n\n if ((triggerEvent.ctrlKey || triggerEvent.metaKey) && charCode === 'z') {\n return triggerEvent.shiftKey ? 'Redo' : 'Undo';\n }\n // Detect mouse event redo\n if (triggerEvent.ctrlKey && charCode === 'd') {\n return 'Delete';\n }\n\n // Android Fix.\n if (\n typeof triggerEvent.key === 'undefined' &&\n unformattedValue.length <= unformatWithPattern(value, displayPattern).length\n ) {\n return 'Backspace';\n }\n return triggerEvent.key;\n }\n // triggerEvent can be null only in case of \"autofilling\" (via password manager extension or browser build-in one) events\n return 'Paste';\n };\n\n resetEvent = () => {\n this.setState({\n triggerType: 'Initial',\n triggerEvent: null,\n pastedLength: 0,\n });\n };\n\n detectUndoRedo = (event: React.KeyboardEvent<HTMLTextElement>) => {\n const charCode = String.fromCharCode(event.which).toLowerCase();\n if ((event.ctrlKey || event.metaKey) && charCode === 'z') {\n return event.shiftKey ? 'Redo' : 'Undo';\n }\n return null;\n };\n\n handleOnKeyDown: React.KeyboardEventHandler<HTMLTextElement> = (event) => {\n event.persist();\n const { selectionStart, selectionEnd } = event.currentTarget;\n const { historyNavigator } = this.state;\n const { displayPattern } = this.props;\n\n // Unfortunately Undo and Redo don't trigger OnChange event so we need to handle some value logic here.\n let newFormattedValue = '';\n\n if (this.detectUndoRedo(event) === 'Undo') {\n newFormattedValue = formatWithPattern(historyNavigator.undo().toString(), displayPattern);\n this.setState({ value: newFormattedValue, triggerType: 'Undo' });\n } else if (this.detectUndoRedo(event) === 'Redo') {\n newFormattedValue = formatWithPattern(historyNavigator.redo().toString(), displayPattern);\n this.setState({ value: newFormattedValue, triggerType: 'Redo' });\n } else {\n this.setState({\n triggerEvent: event,\n triggerType: 'KeyDown',\n selectionStart: selectionStart ?? 0,\n selectionEnd: selectionEnd ?? 0,\n });\n }\n };\n\n handleOnPaste: React.ClipboardEventHandler<HTMLTextElement> = (event) => {\n const { displayPattern } = this.props;\n const pastedLength = unformatWithPattern(\n event.clipboardData.getData('Text'),\n displayPattern,\n ).length;\n\n this.setState({ triggerType: 'Paste', pastedLength });\n };\n\n handleOnCut: React.ClipboardEventHandler<HTMLTextElement> = () => {\n this.setState({ triggerType: 'Cut' });\n };\n\n isKeyAllowed = (action: EventType | string) => {\n const { displayPattern } = this.props;\n const symbolsInPattern = displayPattern.split('').filter((character) => character !== '*');\n\n return !symbolsInPattern.includes(action);\n };\n\n handleOnChange: React.ChangeEventHandler<HTMLTextElement> = (event) => {\n const { historyNavigator, triggerType } = this.state;\n const { displayPattern, onChange } = this.props;\n const { value } = event.target;\n let unformattedValue = unformatWithPattern(value, displayPattern);\n const action = this.getUserAction(unformattedValue);\n if (!this.isKeyAllowed(action) || triggerType === 'Undo' || triggerType === 'Redo') {\n return;\n }\n\n if (action === 'Backspace' || action === 'Delete') {\n unformattedValue = this.handleDelete(unformattedValue, action);\n }\n\n const newFormattedValue = formatWithPattern(unformattedValue, displayPattern);\n historyNavigator.add(unformattedValue);\n\n this.handleCursorPositioning(action);\n\n this.setState({ value: newFormattedValue }, () => {\n this.resetEvent();\n if (onChange) {\n const broadcastValue = unformatWithPattern(newFormattedValue, displayPattern);\n onChange(broadcastValue);\n }\n });\n };\n\n handleOnBlur: React.FocusEventHandler<HTMLTextElement> = (event) => {\n this.props.onBlur?.(unformatWithPattern(event.target.value, this.props.displayPattern));\n };\n\n handleOnFocus: React.FocusEventHandler<HTMLTextElement> = (event) => {\n const { displayPattern, onFocus } = this.props;\n if (onFocus) {\n this.handleOnChange(event);\n onFocus(unformatWithPattern(event.target.value, displayPattern));\n }\n };\n\n handleDelete = (unformattedValue: string, action: EventType) => {\n const { displayPattern } = this.props;\n const { selectionStart, selectionEnd } = this.state;\n const newStack = [...unformattedValue];\n if (selectionStart === selectionEnd) {\n let startPosition =\n selectionStart - getCountOfSymbolsInSelection(0, selectionStart, displayPattern);\n let toDelete = 0;\n\n let count = getDistanceToNextSymbol(selectionStart, displayPattern);\n if (action === 'Backspace') {\n startPosition -= 1;\n count = getDistanceToPreviousSymbol(selectionStart, displayPattern);\n }\n\n if (startPosition >= 0 && count) {\n toDelete = 1;\n }\n\n newStack.splice(startPosition, toDelete);\n }\n\n return newStack.join('');\n };\n\n handleCursorPositioning = (action: string) => {\n const { displayPattern } = this.props;\n const { triggerEvent, selectionStart, selectionEnd, pastedLength } = this.state;\n const target = triggerEvent?.currentTarget;\n\n const cursorPosition = getCursorPositionAfterKeystroke(\n action,\n selectionStart,\n selectionEnd,\n displayPattern,\n pastedLength,\n );\n\n setTimeout(() => {\n target?.setSelectionRange(cursorPosition, cursorPosition);\n this.setState({ selectionStart: cursorPosition, selectionEnd: cursorPosition });\n }, 0);\n };\n\n render() {\n const {\n inputMode,\n className,\n id,\n name,\n placeholder,\n readOnly,\n required,\n minLength,\n maxLength,\n disabled,\n autoComplete,\n } = this.props;\n const { value } = this.state;\n const renderProps: TextElementProps = {\n inputMode,\n className,\n id,\n name,\n placeholder,\n readOnly,\n required,\n minLength,\n maxLength,\n disabled,\n autoComplete,\n value,\n onFocus: this.handleOnFocus,\n onBlur: this.handleOnBlur,\n onPaste: this.handleOnPaste,\n onKeyDown: this.handleOnKeyDown,\n onChange: this.handleOnChange,\n onCut: this.handleOnCut,\n };\n return this.props.render(renderProps as T);\n }\n}\n\nexport default WithDisplayFormat;\n","import { Input, type InputProps } from '../inputs/Input';\nimport WithDisplayFormat, { type WithDisplayFormatProps } from '../withDisplayFormat';\n\nexport interface InputWithDisplayFormatProps extends Omit<WithDisplayFormatProps, 'render'> {}\n\nconst InputWithDisplayFormat = (props: InputWithDisplayFormatProps) => (\n <WithDisplayFormat<InputProps> {...props} render={(renderProps) => <Input {...renderProps} />} />\n);\n\nexport default InputWithDisplayFormat;\n","import { Search } from '@transferwise/icons';\nimport { forwardRef } from 'react';\n\nimport { Size } from '../common';\nimport { Merge } from '../utils';\n\nimport { Input } from './Input';\nimport { InputGroup } from './InputGroup';\n\nexport interface SearchInputProps\n extends Merge<\n React.ComponentPropsWithRef<'input'>,\n {\n size?: Size.SMALL | Size.MEDIUM;\n shape?: 'rectangle' | 'pill';\n 'aria-invalid'?: boolean;\n }\n > {}\n\nexport const SearchInput = forwardRef(function SearchInput(\n { shape = 'pill', size = Size.MEDIUM, disabled, className, ...restProps }: SearchInputProps,\n ref: React.ForwardedRef<HTMLInputElement | null>,\n) {\n return (\n <InputGroup\n addonStart={{\n content: <Search size={size === Size.SMALL ? 16 : 24} />,\n initialContentWidth: size === Size.SMALL ? 16 : 24,\n }}\n disabled={disabled}\n className={className}\n >\n <Input\n ref={ref}\n role=\"searchbox\"\n inputMode=\"search\"\n shape={shape}\n size={size}\n {...restProps}\n />\n </InputGroup>\n );\n});\n","import { forwardRef } from 'react';\n\nexport interface PolymorphicWithOverridesProps {\n __overrides: {\n as: React.ElementType;\n [key: string]: unknown;\n };\n [key: string]: unknown;\n}\n\n/**\n * For overcoming the limitations of third-party components with an `as` prop.\n */\nexport const PolymorphicWithOverrides = forwardRef(function PolymorphicWithOverrides(\n { __overrides: { as: Element, ...restOverrides }, ...restProps }: PolymorphicWithOverridesProps,\n ref: React.ForwardedRef<Element | null>,\n) {\n return <Element ref={ref} {...restProps} {...restOverrides} />;\n});\n","import { useEffect } from 'react';\n\n/**\n * This progressive enhancement uses an experimental API, it might change, \n * and at the time of authoring is not supported on iOS or mobile Firefox.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/VirtualKeyboard\n */\nexport function useVirtualKeyboard() {\n useEffect(() => {\n /* eslint-disable @typescript-eslint/no-unsafe-member-access, functional/immutable-data */\n if ('virtualKeyboard' in navigator) {\n const virtualKeyboard: any = navigator.virtualKeyboard;\n const initialOverlaysContent: unknown = virtualKeyboard.overlaysContent;\n virtualKeyboard.overlaysContent = true;\n return () => {\n virtualKeyboard.overlaysContent = initialOverlaysContent;\n };\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access, functional/immutable-data */\n }, []);\n}\n","import { usePreventScroll } from '@react-aria/overlays';\n\nexport function PreventScroll() {\n usePreventScroll();\n return null;\n}\n","import {\n FloatingFocusManager,\n FloatingPortal,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { Transition } from '@headlessui/react';\nimport { FocusScope } from '@react-aria/focus';\nimport { ThemeProvider, useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\nimport { Fragment, useState } from 'react';\n\nimport { CloseButton } from '../common/closeButton';\nimport { useVirtualKeyboard } from '../common/hooks/useVirtualKeyboard';\nimport { PreventScroll } from '../common/preventScroll/PreventScroll';\nimport { Size } from '../common/propsValues/size';\n\nexport interface BottomSheetProps {\n open: boolean;\n renderTrigger?: (args: {\n ref: React.RefCallback<Element>;\n getInteractionProps: (customEventHandlers?: React.HTMLProps<Element>) => {\n [key: string]: unknown;\n };\n }) => React.ReactNode;\n title?: string;\n initialFocusRef?: React.MutableRefObject<HTMLElement | null>;\n padding?: 'none' | 'md';\n children?: React.ReactNode;\n onClose?: () => void;\n onCloseEnd?: () => void;\n}\n\nexport function BottomSheet({\n open,\n renderTrigger,\n title,\n initialFocusRef,\n padding = 'md',\n children,\n onClose,\n onCloseEnd,\n}: BottomSheetProps) {\n useVirtualKeyboard();\n\n const { refs, context } = useFloating<Element>({\n open,\n onOpenChange: (value) => {\n if (!value) {\n onClose?.();\n }\n },\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n const { getReferenceProps, getFloatingProps } = useInteractions([dismiss, role]);\n\n const [floatingKey, setFloatingKey] = useState(0);\n\n const { theme, screenMode } = useTheme();\n\n return (\n <>\n {open ? <PreventScroll /> : null}\n {renderTrigger?.({\n ref: refs.setReference,\n getInteractionProps: getReferenceProps,\n })}\n\n <FloatingPortal>\n <ThemeProvider\n theme=\"personal\"\n screenMode={theme === 'personal' ? screenMode : 'light'}\n isNotRootProvider\n >\n <Transition\n show={open}\n className=\"np-bottom-sheet-v2-container\"\n beforeEnter={() => {\n setFloatingKey((prev) => prev + 1);\n }}\n afterLeave={onCloseEnd}\n >\n <Transition.Child\n className=\"np-bottom-sheet-v2-backdrop\"\n enterFrom=\"np-bottom-sheet-v2-backdrop--closed\"\n leaveTo=\"np-bottom-sheet-v2-backdrop--closed\"\n />\n\n <div className=\"np-bottom-sheet-v2\">\n <FocusScope>\n <FloatingFocusManager context={context} initialFocus={initialFocusRef}>\n <Fragment\n key={floatingKey} // Force inner state invalidation on open\n >\n <Transition.Child\n ref={refs.setFloating}\n className=\"np-bottom-sheet-v2-content\"\n enterFrom=\"np-bottom-sheet-v2-content--closed\"\n leaveTo=\"np-bottom-sheet-v2-content--closed\"\n {...getFloatingProps()}\n >\n <div className=\"np-bottom-sheet-v2-header\">\n <CloseButton\n size={Size.SMALL}\n onClick={() => {\n onClose?.();\n }}\n />\n </div>\n <div\n className={classNames(\n 'np-bottom-sheet-v2-content-inner',\n title && 'np-bottom-sheet-v2-content-inner--has-title',\n padding === 'md' && 'np-bottom-sheet-v2-content-inner--padding-md',\n )}\n >\n {title ? (\n <h2 className=\"np-bottom-sheet-v2-title np-text-title-body\">{title}</h2>\n ) : null}\n <div className=\"np-bottom-sheet-v2-body np-text-body-default\">\n {children}\n </div>\n </div>\n </Transition.Child>\n </Fragment>\n </FloatingFocusManager>\n </FocusScope>\n </div>\n </Transition>\n </ThemeProvider>\n </FloatingPortal>\n </>\n );\n}\n","import classNames from 'classnames';\nimport { forwardRef } from 'react';\n\nimport { useInputPaddings } from './InputGroup';\nimport { inputClassNameBase } from './_common';\n\nexport interface ButtonInputProps extends React.ComponentPropsWithRef<'button'> {\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const ButtonInput = forwardRef(function ButtonInput(\n { size = 'md', className, style, ...restProps }: ButtonInputProps,\n ref: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const inputPaddings = useInputPaddings();\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={classNames(className, inputClassNameBase({ size }), 'np-button-input')}\n // eslint-disable-next-line react/forbid-dom-props\n style={{ ...inputPaddings, ...style }}\n {...restProps}\n />\n );\n});\n","import {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n type Placement,\n shift,\n size as floatingSize,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { Transition } from '@headlessui/react';\nimport { FocusScope } from '@react-aria/focus';\nimport { ThemeProvider, useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\nimport { useState } from 'react';\n\nimport { PreventScroll } from '../common/preventScroll/PreventScroll';\n\nexport interface PopoverProps {\n placement?: Placement;\n open: boolean;\n renderTrigger: (args: {\n ref: React.RefCallback<Element>;\n getInteractionProps: (customEventHandlers?: React.HTMLProps<Element>) => {\n [key: string]: unknown;\n };\n }) => React.ReactNode;\n title?: string;\n size?: 'md' | 'lg';\n padding?: 'none' | 'md';\n children?: React.ReactNode;\n onClose?: () => void;\n onCloseEnd?: () => void;\n}\n\nconst floatingPadding = 16;\n\nexport function Popover({\n placement,\n open,\n renderTrigger,\n title,\n size = 'md',\n padding = 'md',\n children,\n onClose,\n onCloseEnd,\n}: PopoverProps) {\n const { refs, floatingStyles, context } = useFloating<Element>({\n placement,\n middleware: [\n offset(8),\n flip({ padding: floatingPadding, crossAxis: false }),\n shift(),\n floatingSize({\n padding: floatingPadding,\n apply: ({ elements, rects, availableHeight }) => {\n elements.floating.style.setProperty('--max-height', `${availableHeight}px`);\n elements.floating.style.setProperty('--width', `${rects.reference.width}px`);\n },\n }),\n ],\n whileElementsMounted: autoUpdate,\n open,\n onOpenChange: (value) => {\n if (!value) {\n onClose?.();\n }\n },\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n const { getReferenceProps, getFloatingProps } = useInteractions([role, dismiss]);\n\n const [floatingKey, setFloatingKey] = useState(0);\n\n const { theme, screenMode } = useTheme();\n\n return (\n <>\n {open ? <PreventScroll /> : null}\n {renderTrigger({\n ref: refs.setReference,\n getInteractionProps: getReferenceProps,\n })}\n\n <FloatingPortal>\n <ThemeProvider\n theme=\"personal\"\n screenMode={theme === 'personal' ? screenMode : 'light'}\n isNotRootProvider\n >\n <Transition\n show={open}\n leave=\"transition-opacity\"\n leaveTo=\"opacity-0\"\n beforeEnter={() => {\n setFloatingKey((prev) => prev + 1);\n }}\n afterLeave={onCloseEnd}\n >\n <FocusScope>\n <FloatingFocusManager context={context}>\n <div\n key={floatingKey} // Force inner state invalidation on open\n ref={refs.setFloating}\n className={classNames('np-popover-v2-container', {\n 'np-popover-v2-container--size-md': size === 'md',\n 'np-popover-v2-container--size-lg': size === 'lg',\n })}\n // eslint-disable-next-line react/forbid-dom-props\n style={floatingStyles}\n {...getFloatingProps()}\n >\n <div\n className={classNames('np-popover-v2', title && 'np-popover-v2--has-title', {\n 'np-popover-v2--padding-md': padding === 'md',\n })}\n >\n {title ? (\n <h2 className=\"np-popover-v2-title np-text-title-body\">{title}</h2>\n ) : null}\n <div className=\"np-popover-v2-content np-text-body-default\">{children}</div>\n </div>\n </div>\n </FloatingFocusManager>\n </FocusScope>\n </Transition>\n </ThemeProvider>\n </FloatingPortal>\n </>\n );\n}\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n noResultsFound: {\n id: 'neptune.SelectInput.noResultsFound',\n defaultMessage: 'No results found',\n description: 'When a user-initiated search produces no results.',\n },\n});\n","import { Listbox as ListboxBase } from '@headlessui/react';\nimport { Check, ChevronDown, Cross, CrossCircle } from '@transferwise/icons';\nimport classNames from 'classnames';\nimport mergeProps from 'merge-props';\nimport {\n createContext,\n forwardRef,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { useEffectEvent } from '../common/hooks/useEffectEvent';\nimport { useScreenSize } from '../common/hooks/useScreenSize';\nimport { PolymorphicWithOverrides } from '../common/polymorphicWithOverrides/PolymorphicWithOverrides';\nimport { Breakpoint } from '../common/propsValues/breakpoint';\nimport dateTriggerMessages from '../dateLookup/dateTrigger/DateTrigger.messages';\nimport { Merge } from '../utils';\n\nimport { BottomSheet } from './_BottomSheet';\nimport { ButtonInput } from './_ButtonInput';\nimport { Popover } from './_Popover';\nimport { useInputAttributes, WithInputAttributesProps } from './contexts';\nimport { InputGroup } from './InputGroup';\nimport { SearchInput } from './SearchInput';\nimport messages from './SelectInput.messages';\n\nfunction searchableString(value: string) {\n return value.trim().replace(/\\s+/gu, ' ').normalize('NFKC').toLowerCase();\n}\n\nfunction inferSearchableStrings(value: unknown) {\n if (typeof value === 'string') {\n return [searchableString(value)];\n }\n\n if (typeof value === 'object' && value != null) {\n return Object.values(value)\n .filter((innerValue): innerValue is string => typeof innerValue === 'string')\n .map((innerValue) => searchableString(innerValue));\n }\n\n return [];\n}\n\nconst SelectInputTriggerButtonPropsContext = createContext<{\n ref?: React.ForwardedRef<HTMLButtonElement | null>;\n id?: string;\n onClick?: (event: React.MouseEvent) => void;\n onKeyDown?: (event: React.KeyboardEvent) => void;\n [key: string]: unknown;\n}>({});\nconst SelectInputOptionContentWithinTriggerContext = createContext(false);\n\nexport interface SelectInputOptionItem<T = string> {\n type: 'option';\n value: T;\n filterMatchers?: readonly string[];\n disabled?: boolean;\n}\n\nexport interface SelectInputGroupItem<T = string> {\n type: 'group';\n label: string;\n options: readonly SelectInputOptionItem<T>[];\n}\n\nexport interface SelectInputSeparatorItem {\n type: 'separator';\n}\n\nexport type SelectInputItem<T = string> =\n | SelectInputOptionItem<T>\n | SelectInputGroupItem<T>\n | SelectInputSeparatorItem;\n\nfunction dedupeSelectInputOptionItem<T>(\n item: SelectInputOptionItem<T>,\n existingValues: Set<T>,\n): SelectInputOptionItem<T | undefined> {\n if (!existingValues.has(item.value)) {\n existingValues.add(item.value);\n return item;\n }\n return { ...item, value: undefined };\n}\n\nfunction dedupeSelectInputItems<T>(\n items: readonly SelectInputItem<T>[],\n): SelectInputItem<T | undefined>[] {\n const existingValues = new Set<T>();\n return items.map((item) => {\n switch (item.type) {\n case 'option': {\n return dedupeSelectInputOptionItem(item, existingValues);\n }\n case 'group': {\n return {\n ...item,\n options: item.options.map((option) =>\n dedupeSelectInputOptionItem(option, existingValues),\n ),\n };\n }\n default:\n }\n return item;\n });\n}\n\nfunction filterSelectInputOptionItem<T>(item: SelectInputOptionItem<T>, needle: string) {\n return inferSearchableStrings(item.filterMatchers ?? item.value).some((haystack) =>\n haystack.includes(needle),\n );\n}\n\nfunction filterSelectInputItems<T>(items: readonly SelectInputItem<T>[], needle: string) {\n return items.filter((item) => {\n switch (item.type) {\n case 'option': {\n return filterSelectInputOptionItem(item, needle);\n }\n case 'group': {\n return item.options.some((option) => filterSelectInputOptionItem(option, needle));\n }\n default:\n }\n return false;\n });\n}\n\nexport interface SelectInputProps<T = string, M extends boolean = false> {\n id?: string;\n name?: string;\n multiple?: M;\n placeholder?: string;\n items: readonly SelectInputItem<NonNullable<T>>[];\n defaultValue?: M extends true ? readonly T[] : T;\n value?: M extends true ? readonly T[] : T;\n compareValues?:\n | (keyof NonNullable<T> & string)\n | ((a: T | undefined, b: T | undefined) => boolean);\n renderValue?: (value: NonNullable<T>, withinTrigger: boolean) => React.ReactNode;\n renderFooter?: (args: {\n resultsEmpty: boolean;\n queryNormalized: string | null | undefined;\n }) => React.ReactNode;\n renderTrigger?: (args: {\n content: React.ReactNode;\n placeholderShown: boolean;\n clear: (() => void) | undefined;\n disabled: boolean;\n size: 'sm' | 'md' | 'lg';\n className: string | undefined;\n }) => React.ReactNode;\n filterable?: boolean;\n filterPlaceholder?: string;\n disabled?: boolean;\n size?: 'sm' | 'md' | 'lg';\n className?: string;\n UNSAFE_triggerButtonProps?: WithInputAttributesProps['inputAttributes'];\n onFilterChange?: (args: { query: string; queryNormalized: string | null }) => void;\n onChange?: (value: M extends true ? T[] : T) => void;\n onClose?: () => void;\n onClear?: () => void;\n}\n\nconst defaultRenderTrigger = (({ content, placeholderShown, clear, disabled, size, className }) => (\n <InputGroup\n addonEnd={{\n content: (\n <span className={classNames('np-select-input-addon-container', disabled && 'disabled')}>\n {clear != null && !placeholderShown ? (\n <>\n <SelectInputClearButton\n onClick={(event) => {\n event.preventDefault();\n clear();\n }}\n />\n <span className=\"np-select-input-addon-separator\" />\n </>\n ) : null}\n\n <span className=\"np-select-input-addon\">\n <ChevronDown size={16} />\n </span>\n </span>\n ),\n initialContentWidth: 24 + 4,\n padding: 'sm',\n }}\n disabled={disabled}\n className={className}\n >\n <SelectInputTriggerButton as={ButtonInput} size={size}>\n <span\n className={classNames(\n 'np-select-input-content',\n placeholderShown && 'np-select-input-placeholder',\n )}\n >\n {content}\n </span>\n </SelectInputTriggerButton>\n </InputGroup>\n)) satisfies SelectInputProps['renderTrigger'];\n\ninterface SelectInputClearButtonProps\n extends Pick<React.ComponentPropsWithoutRef<'button'>, 'className' | 'onClick'> {}\n\nfunction SelectInputClearButton({ className, onClick }: SelectInputClearButtonProps) {\n const intl = useIntl();\n\n return (\n <button\n type=\"button\"\n aria-label={intl.formatMessage(dateTriggerMessages.ariaLabel)}\n className={classNames(className, 'np-select-input-addon np-select-input-addon--interactive')}\n onClick={onClick}\n >\n <Cross size={16} />\n </button>\n );\n}\n\nconst noop = () => {};\n\nexport function SelectInput<T = string, M extends boolean = false>({\n id: idProp,\n name,\n multiple,\n placeholder,\n items,\n defaultValue,\n value: controlledValue,\n compareValues,\n renderValue = String,\n renderFooter,\n renderTrigger = defaultRenderTrigger,\n filterable,\n filterPlaceholder,\n disabled,\n size = 'md',\n className,\n UNSAFE_triggerButtonProps,\n onFilterChange = noop,\n onChange,\n onClose,\n onClear,\n}: SelectInputProps<T, M>) {\n const inputAttributes = useInputAttributes();\n const id = idProp ?? inputAttributes.id;\n\n const [open, setOpen] = useState(false);\n\n const initialized = useRef(false);\n const handleClose = useEffectEvent(onClose ?? (() => {}));\n useEffect(() => {\n if (initialized.current) {\n if (!open) {\n handleClose?.();\n }\n } else {\n initialized.current = true;\n }\n }, [handleClose, open]);\n\n const [filterQuery, _setFilterQuery] = useState('');\n const setFilterQuery = useEffectEvent((query: string) => {\n _setFilterQuery(query);\n onFilterChange({\n query,\n queryNormalized: query ? searchableString(query) : null,\n });\n });\n\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n\n const screenSm = useScreenSize(Breakpoint.SMALL);\n const OptionsOverlay = screenSm ? Popover : BottomSheet;\n\n const searchInputRef = useRef<HTMLInputElement>(null);\n const listboxRef = useRef<HTMLDivElement>(null);\n const controllerRef = filterable ? searchInputRef : listboxRef;\n\n return (\n <ListboxBase\n name={name}\n multiple={multiple}\n defaultValue={defaultValue}\n value={controlledValue}\n // TODO: Remove assertion when upgrading TypeScript to v5\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n by={compareValues as any}\n disabled={disabled}\n onChange={\n ((value) => {\n if (!multiple) {\n setOpen(false);\n }\n onChange?.(value);\n }) satisfies SelectInputProps<T, M>['onChange']\n }\n >\n {({ disabled: uiDisabled, value }) => {\n const placeholderShown =\n multiple && Array.isArray(value) ? value.length === 0 : value == null;\n return (\n <OptionsOverlay\n placement=\"bottom-start\"\n open={open}\n renderTrigger={({ ref, getInteractionProps }) => (\n <SelectInputTriggerButtonPropsContext.Provider\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n value={{\n ref: (node) => {\n ref(node);\n triggerRef.current = node;\n },\n ...inputAttributes,\n ...UNSAFE_triggerButtonProps,\n id,\n ...mergeProps(\n {\n onClick: () => {\n setOpen((prev) => !prev);\n },\n onKeyDown: (event: React.KeyboardEvent) => {\n if (\n event.key === ' ' ||\n event.key === 'Enter' ||\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp'\n ) {\n setOpen((prev) => !prev);\n }\n },\n },\n getInteractionProps(),\n ),\n }}\n >\n {renderTrigger({\n content: !placeholderShown ? (\n <SelectInputOptionContentWithinTriggerContext.Provider value>\n {multiple && Array.isArray(value)\n ? value\n .map((option: NonNullable<T>) => renderValue(option, true))\n .filter((node) => node != null)\n .join(', ')\n : renderValue(value as NonNullable<T>, true)}\n </SelectInputOptionContentWithinTriggerContext.Provider>\n ) : (\n placeholder\n ),\n placeholderShown,\n clear:\n onClear != null\n ? () => {\n onClear();\n triggerRef.current?.focus({ preventScroll: true });\n }\n : undefined,\n disabled: uiDisabled,\n size,\n className,\n })}\n </SelectInputTriggerButtonPropsContext.Provider>\n )}\n initialFocusRef={controllerRef}\n size={filterable ? 'lg' : 'md'}\n padding=\"none\"\n onClose={() => {\n setOpen(false);\n }}\n onCloseEnd={() => {\n if (filterQuery !== '') {\n setFilterQuery('');\n }\n }}\n >\n <SelectInputOptions\n items={items}\n renderValue={renderValue}\n renderFooter={renderFooter}\n filterable={filterable}\n filterPlaceholder={filterPlaceholder}\n searchInputRef={searchInputRef}\n listboxRef={listboxRef}\n filterQuery={filterQuery}\n onFilterChange={setFilterQuery}\n />\n </OptionsOverlay>\n );\n }}\n </ListboxBase>\n );\n}\n\ntype SelectInputTriggerButtonElementType = 'button' | React.ComponentType;\n\nexport type SelectInputTriggerButtonProps<\n T extends SelectInputTriggerButtonElementType = 'button',\n> = Merge<React.ComponentPropsWithoutRef<T>, { as?: T }>;\n\nexport function SelectInputTriggerButton<T extends SelectInputTriggerButtonElementType = 'button'>({\n as = 'button' as T,\n ...restProps\n}: SelectInputTriggerButtonProps<T>) {\n const { ref, onClick, onKeyDown, ...interactionProps } = useContext(\n SelectInputTriggerButtonPropsContext,\n );\n\n return (\n <ListboxBase.Button\n ref={ref}\n as={PolymorphicWithOverrides}\n __overrides={{ as, ...interactionProps }}\n {...mergeProps({ onClick, onKeyDown }, restProps)}\n />\n );\n}\n\ninterface SelectInputOptionsContainerProps extends React.ComponentPropsWithRef<'div'> {\n onAriaActiveDescendantChange: (value: React.AriaAttributes['aria-activedescendant']) => void;\n}\n\nconst SelectInputOptionsContainer = forwardRef(function SelectInputOptionsContainer(\n {\n 'aria-orientation': ariaOrientation,\n 'aria-activedescendant': ariaActiveDescendant,\n role,\n tabIndex,\n onAriaActiveDescendantChange,\n onKeyDown,\n ...restProps\n }: SelectInputOptionsContainerProps,\n ref: React.ForwardedRef<HTMLDivElement | null>,\n) {\n const handleAriaActiveDescendantChange = useEffectEvent(onAriaActiveDescendantChange);\n useEffect(() => {\n handleAriaActiveDescendantChange(ariaActiveDescendant);\n }, [ariaActiveDescendant, handleAriaActiveDescendantChange]);\n\n return (\n <div\n ref={ref}\n role=\"none\"\n onKeyDown={(event) => {\n // Prevent confirmation close without an active item\n if (event.key === 'Enter' && ariaActiveDescendant == null) {\n return;\n }\n\n // Prevent absorbing actions early\n if (event.key === 'Escape' || event.key === 'Tab') {\n onKeyDown?.({\n ...event,\n preventDefault: () => {},\n stopPropagation: () => {},\n });\n return;\n }\n\n onKeyDown?.(event);\n }}\n {...restProps}\n />\n );\n});\n\ninterface SelectInputOptionsProps<T = string>\n extends Pick<\n SelectInputProps<T>,\n 'items' | 'renderValue' | 'renderFooter' | 'filterable' | 'filterPlaceholder'\n > {\n searchInputRef: React.MutableRefObject<HTMLInputElement | null>;\n listboxRef: React.MutableRefObject<HTMLDivElement | null>;\n filterQuery: string;\n onFilterChange: (query: string) => void;\n}\n\nfunction SelectInputOptions<T = string>({\n items,\n renderValue = String,\n renderFooter,\n filterable = false,\n filterPlaceholder,\n searchInputRef,\n listboxRef,\n filterQuery,\n onFilterChange,\n}: SelectInputOptionsProps<T>) {\n const intl = useIntl();\n\n const controllerRef = filterable ? searchInputRef : listboxRef;\n\n const needle = useMemo(() => {\n if (filterable) {\n return filterQuery ? searchableString(filterQuery) : null;\n }\n return undefined;\n }, [filterQuery, filterable]);\n const resultsEmpty = needle != null && filterSelectInputItems(items, needle).length === 0;\n\n const listboxContainerRef = useRef<HTMLDivElement>(null);\n useEffect(() => {\n if (listboxContainerRef.current != null) {\n listboxContainerRef.current.style.setProperty(\n '--initial-height',\n `${listboxContainerRef.current.offsetHeight}px`,\n );\n }\n }, []);\n\n const showStatus = resultsEmpty;\n const statusId = useId();\n const listboxId = useId();\n\n return (\n <ListboxBase.Options\n as={SelectInputOptionsContainer}\n static\n className=\"np-select-input-options-container\"\n onAriaActiveDescendantChange={(value: React.AriaAttributes['aria-activedescendant']) => {\n if (controllerRef.current != null) {\n if (value != null) {\n controllerRef.current.setAttribute('aria-activedescendant', value);\n } else {\n controllerRef.current.removeAttribute('aria-activedescendant');\n if (filterQuery) {\n // Ensure having an active option while filtering\n controllerRef.current.dispatchEvent(\n new KeyboardEvent('keydown', { key: 'Home', bubbles: true }),\n );\n }\n }\n }\n }}\n >\n {filterable ? (\n <div className=\"np-select-input-query-container\">\n <SearchInput\n ref={searchInputRef}\n shape=\"rectangle\"\n placeholder={filterPlaceholder}\n value={filterQuery}\n aria-controls={listboxId}\n aria-describedby={showStatus ? statusId : undefined}\n onKeyDown={(event) => {\n // Prevent interfering with the matcher of Headless UI\n // https://mathiasbynens.be/notes/javascript-unicode#regex\n if (/^.$/u.test(event.key)) {\n event.stopPropagation();\n }\n }}\n onChange={(event) => {\n onFilterChange(event.currentTarget.value);\n }}\n />\n </div>\n ) : null}\n\n <section\n ref={listboxContainerRef}\n tabIndex={-1}\n className={classNames(\n 'np-select-input-listbox-container',\n items.some((item) => item.type === 'group') &&\n 'np-select-input-listbox-container--has-group',\n )}\n >\n {resultsEmpty ? (\n <div id={statusId} className=\"np-select-input-options-status\">\n <CrossCircle size={16} className=\"np-select-input-options-status-icon\" />\n {intl.formatMessage(messages.noResultsFound)}\n </div>\n ) : null}\n\n <div\n ref={listboxRef}\n id={listboxId}\n role=\"listbox\"\n aria-orientation=\"vertical\"\n tabIndex={0}\n className=\"np-select-input-listbox\"\n >\n {(needle != null ? dedupeSelectInputItems(items) : items).map((item, index) => (\n <SelectInputItemView\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n item={item}\n renderValue={renderValue}\n needle={needle}\n />\n ))}\n </div>\n\n {renderFooter != null ? (\n <footer className=\"np-select-input-footer\">\n <div\n role=\"none\"\n onKeyDown={(event) => {\n // Prevent interfering with Headless UI\n if (event.key !== 'Escape') {\n event.stopPropagation();\n }\n }}\n >\n {renderFooter({\n resultsEmpty,\n queryNormalized: needle,\n })}\n </div>\n </footer>\n ) : null}\n </section>\n </ListboxBase.Options>\n );\n}\n\ninterface SelectInputItemViewProps<\n T = string,\n I extends SelectInputItem<T | undefined> = SelectInputItem<T | undefined>,\n> extends Required<Pick<SelectInputProps<T>, 'renderValue'>> {\n item: I;\n needle: string | null | undefined;\n}\n\nfunction SelectInputItemView<T = string>({\n item,\n renderValue,\n needle,\n}: SelectInputItemViewProps<T>) {\n switch (item.type) {\n case 'option': {\n if (item.value != null && (needle == null || filterSelectInputOptionItem(item, needle))) {\n return (\n <SelectInputOption value={item.value} disabled={item.disabled}>\n {renderValue(item.value, false)}\n </SelectInputOption>\n );\n }\n break;\n }\n case 'group': {\n return <SelectInputGroupItemView item={item} renderValue={renderValue} needle={needle} />;\n }\n case 'separator': {\n if (needle == null) {\n return <hr className=\"np-select-input-separator-item\" />;\n }\n break;\n }\n }\n return null;\n}\n\ninterface SelectInputGroupItemViewProps<T = string>\n extends SelectInputItemViewProps<T, SelectInputGroupItem<T | undefined>> {}\n\nfunction SelectInputGroupItemView<T = string>({\n item,\n renderValue,\n needle,\n}: SelectInputGroupItemViewProps<T>) {\n const headerId = useId();\n\n return (\n // An empty container may be rendered when no options match `needle`\n // However, pre-filtering would result in worse performance overall\n <section\n role=\"group\"\n aria-labelledby={headerId}\n className={classNames(needle === null && 'np-select-input-group-item--without-needle')}\n >\n {needle == null ? (\n <header\n id={headerId}\n role=\"none\"\n className=\"np-select-input-group-item-header np-text-title-group\"\n >\n {item.label}\n </header>\n ) : null}\n {item.options.map((option, index) => (\n <SelectInputItemView\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n item={option}\n renderValue={renderValue}\n needle={needle}\n />\n ))}\n </section>\n );\n}\n\ninterface SelectInputOptionProps<T = string> {\n value: T;\n disabled?: boolean;\n children?: React.ReactNode;\n}\n\nfunction SelectInputOption<T = string>({ value, disabled, children }: SelectInputOptionProps<T>) {\n return (\n <ListboxBase.Option\n as=\"div\"\n value={value}\n disabled={disabled}\n className={({ active, disabled: uiDisabled }) =>\n classNames(\n 'np-select-input-option-container np-text-body-large',\n active && 'np-select-input-option-container--active',\n uiDisabled && 'np-select-input-option-container--disabled',\n )\n }\n >\n {({ selected }) => (\n <>\n <div className=\"np-select-input-option\">{children}</div>\n <Check\n size={16}\n className={classNames(\n 'np-select-input-option-check',\n !selected && 'np-select-input-option-check--not-selected',\n )}\n />\n </>\n )}\n </ListboxBase.Option>\n );\n}\n\nexport interface SelectInputOptionContentProps {\n title: string;\n note?: string;\n description?: string;\n icon?: React.ReactNode;\n}\n\nexport function SelectInputOptionContent({\n title,\n note,\n description,\n icon,\n}: SelectInputOptionContentProps) {\n const withinTrigger = useContext(SelectInputOptionContentWithinTriggerContext);\n\n return (\n <div\n className={classNames(\n 'np-select-input-option-content-container',\n (note || description) && 'np-text-body-large',\n )}\n >\n {icon ? (\n <div\n className={classNames(\n 'np-select-input-option-content-icon',\n !withinTrigger && 'np-select-input-option-content-icon--not-within-trigger',\n )}\n >\n {icon}\n </div>\n ) : null}\n\n <div className=\"np-select-input-option-content-text\">\n <div\n className={classNames(\n 'np-select-input-option-content-text-line-1',\n withinTrigger && 'np-select-input-option-content-text-within-trigger',\n )}\n >\n <h4 className=\"np-select-input-option-content-text-primary d-inline\">{title}</h4>\n {note ? (\n <span className=\"np-select-input-option-content-text-secondary np-text-body-default\">\n {note}\n </span>\n ) : null}\n </div>\n\n {description ? (\n <div\n className={classNames(\n 'np-select-input-option-content-text-secondary np-text-body-default',\n withinTrigger && 'np-select-input-option-content-text-within-trigger',\n )}\n >\n {description}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n","import classNames from 'classnames';\nimport { forwardRef } from 'react';\n\nimport { Merge } from '../utils';\nimport { inputClassNameBase } from './_common';\nimport { useInputAttributes } from './contexts';\n\nexport interface TextAreaProps\n extends Merge<\n React.ComponentPropsWithRef<'textarea'>,\n {\n 'aria-invalid'?: boolean;\n }\n > {}\n\nexport const TextArea = forwardRef(function TextArea(\n { className, ...restProps }: TextAreaProps,\n reference: React.ForwardedRef<HTMLTextAreaElement | null>,\n) {\n const inputAttributes = useInputAttributes();\n\n return (\n <textarea\n ref={reference}\n className={classNames(className, inputClassNameBase(), 'np-text-area')}\n {...inputAttributes}\n {...restProps}\n />\n );\n});\n","import { CrossCircleFill as DontIcon, CheckCircleFill as DoIcon } from '@transferwise/icons';\nimport classNames from 'classnames';\nimport { ReactNode } from 'react';\n\nimport Body from '../body/Body';\nimport { Typography, CommonProps } from '../common';\n\ntype InstructionNode = {\n content: ReactNode;\n ['aria-label']: string;\n};\n\nexport type InstructionsListProps = CommonProps &\n (\n | {\n dos?: readonly ReactNode[];\n donts?: readonly ReactNode[];\n sort?: 'dosFirst' | 'dontsFirst';\n }\n | {\n dos?: readonly InstructionNode[];\n donts?: readonly InstructionNode[];\n sort?: 'dosFirst' | 'dontsFirst';\n }\n );\n\nconst InstructionsList = ({ className, dos, donts, sort = 'dosFirst' }: InstructionsListProps) => {\n const dosInstructions =\n dos?.map((doThis, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <Instruction key={index} item={doThis} type=\"do\" />\n )) ?? null;\n\n const dontsInstructions =\n donts?.map((dont, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <Instruction key={index} item={dont} type=\"dont\" />\n )) ?? null;\n\n const orderedInstructions =\n sort === 'dosFirst' ? (\n <>\n {dosInstructions}\n {dontsInstructions}\n </>\n ) : (\n <>\n {dontsInstructions}\n {dosInstructions}\n </>\n );\n\n return <ul className={classNames('tw-instructions', className)}>{orderedInstructions}</ul>;\n};\n\nfunction Instruction({ item, type }: { item: ReactNode | InstructionNode; type: 'do' | 'dont' }) {\n const isInstructionNode =\n typeof item === 'object' && item !== null && 'content' in item && 'aria-label' in item;\n return (\n <li\n className=\"instruction\"\n aria-label={isInstructionNode ? (item['aria-label'] as string) : undefined}\n >\n {type === 'do' ? (\n <DoIcon size={24} className={type} />\n ) : (\n <DontIcon size={24} className={type} />\n )}\n <Body className=\"text-primary\" type={Typography.BODY_LARGE}>\n {isInstructionNode ? item.content : item}\n </Body>\n </li>\n );\n}\n\nexport default InstructionsList;\n","import classNames from 'classnames';\nimport { ElementType, FC, ReactNode } from 'react';\n\nimport Body from '../body/Body';\n\ntype ListItemProps = {\n title: ReactNode;\n value: ReactNode;\n media?: ReactNode;\n action?: ReactNode;\n className?: string;\n isContainerAligned?: boolean;\n as?: ElementType;\n};\n\nconst ListItem: FC<ListItemProps> = ({\n media,\n action,\n className,\n title,\n value,\n isContainerAligned,\n as = 'li',\n ...rest\n}) => {\n const Element = as;\n\n return (\n <Element\n className={classNames('np-list-item d-flex align-items-center p-y-2', className, {\n 'p-x-2': !isContainerAligned,\n })}\n {...rest}\n >\n {media}\n\n <div className={classNames('d-flex flex-column', { 'p-l-2': !!media, 'p-r-2': !!action })}>\n <Body type=\"body-default\" className=\"text-secondary m-b-0\">\n {title}\n </Body>\n {value && (\n <Body type=\"body-large\" className=\"text-primary m-b-0\">\n {value}\n </Body>\n )}\n </div>\n\n {action ? <div className=\"np-list-item__action m-l-auto\">{action}</div> : null}\n </Element>\n );\n};\n\nexport default ListItem;\n","import { useTheme } from '@wise/components-theming';\nimport classnames from 'classnames';\nimport { useEffect, useState } from 'react';\n\nimport { Size, SizeExtraSmall, SizeSmall, SizeMedium, SizeLarge, SizeExtraLarge } from '../common';\n\n// TODO: We gracefully depracated xs, lg and xl -- remove these as part of a future breaking change to this component\ntype DeprecatedSize = SizeExtraSmall | SizeLarge | SizeExtraLarge;\n\ntype SizeType = SizeSmall | SizeMedium;\n\nexport type LoaderProps = {\n /**\n * @deprecated use `size` instead\n */\n small?: boolean;\n size?: SizeType | DeprecatedSize;\n displayInstantly?: boolean;\n // TODO: refactor in favor of prop from `CommonProps` type\n classNames?: Record<string, string>;\n 'data-testid'?: string;\n};\n\n/**\n * Loader component\n *\n * Docs link: https://transferwise.github.io/neptune-web/components/progress/Loader\n *\n * @param root0\n * @param root0.small\n * @param root0.size\n * @param root0.classNames\n */\nconst Loader = ({\n small = false,\n size = Size.MEDIUM,\n displayInstantly = false,\n classNames = {},\n ...restProps\n}: LoaderProps) => {\n const { theme } = useTheme();\n const [hasDebounced, setHasDebounced] = useState(displayInstantly);\n\n useEffect(() => {\n let cancelled: boolean;\n let timeout: ReturnType<typeof setTimeout> | undefined;\n\n if (!displayInstantly) {\n timeout = setTimeout(() => {\n if (!cancelled) {\n setHasDebounced(true);\n }\n }, 1000);\n }\n\n return () => {\n cancelled = true;\n\n clearTimeout(timeout);\n };\n }, []);\n\n const style = (className: string): string => classNames[className] || className;\n const legacySize: SizeType | DeprecatedSize = small ? Size.SMALL : size;\n const supportedSize = getSupportedSize(legacySize);\n\n if (theme === 'forest-green') {\n // eslint-disable-next-line no-console\n console.warn(\n 'Loader is forbidden to use with Forest Green theme. Check the https://wise.design/components/screen-loader for more info.',\n );\n return <></>;\n }\n\n return (\n <div\n className={classnames(style('tw-loader'), style(`tw-loader--${supportedSize}`), {\n 'tw-loader--visible': hasDebounced,\n })}\n data-testid={restProps['data-testid']}\n />\n );\n};\n\nconst getSupportedSize = (size: SizeType | DeprecatedSize): SizeType => {\n switch (size) {\n case Size.SMALL:\n case Size.EXTRA_SMALL:\n return Size.SMALL;\n\n case Size.EXTRA_LARGE:\n case Size.LARGE:\n case Size.MEDIUM:\n default:\n return Size.MEDIUM;\n }\n};\n\nexport default Loader;\n","import { formatMoney } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nexport interface MoneyProps {\n amount: number;\n currency: string;\n}\n\nconst Money = ({ amount, currency }: MoneyProps) => {\n const { locale } = useIntl();\n return <>{formatMoney(amount, currency, locale)}</>;\n};\n\nexport default Money;\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n selectPlaceholder: {\n id: 'neptune.MoneyInput.Select.placeholder',\n defaultMessage: 'Select an option...',\n },\n});\n","import { formatAmount } from '@transferwise/formatting';\n\nimport { DEFAULT_LOCALE } from '../common/locale';\n\nexport { formatAmount };\n\n// TODO: do not duplicate this between formatting and components\nconst currencyDecimals: Record<string, number> = {\n BIF: 0,\n BYR: 0,\n CLP: 0,\n DJF: 0,\n GNF: 0,\n JPY: 0,\n KMF: 0,\n KRW: 0,\n MGA: 0,\n PYG: 0,\n RWF: 0,\n VND: 0,\n VUV: 0,\n XAF: 0,\n XOF: 0,\n XPF: 0,\n // technically HUF does have decimals, but due to the exchange rate banks\n // do not accept decimal amounts\n HUF: 0,\n\n BHD: 3,\n JOD: 3,\n KWD: 3,\n OMR: 3,\n TND: 3,\n};\n\nconst DEFAULT_CURRENCY_DECIMALS = 2;\n\nfunction isNumberLocaleSupported() {\n const number = 1234;\n const numberString = number.toLocaleString && number.toLocaleString(DEFAULT_LOCALE);\n return numberString === '1,234';\n}\n\nfunction getValidLocale(locale: string) {\n try {\n const noUnderscoreLocale = locale.replace(/_/, '-');\n\n Intl.NumberFormat(noUnderscoreLocale);\n return noUnderscoreLocale;\n } catch {\n return DEFAULT_LOCALE;\n }\n}\n\nfunction getCurrencyDecimals(currency: string) {\n const upperCaseCurrency = currency.toUpperCase();\n return currencyDecimals[upperCaseCurrency] ?? DEFAULT_CURRENCY_DECIMALS;\n}\n\nfunction getDecimalSeparator(locale: string) {\n return isNumberLocaleSupported() ? (1.1).toLocaleString(locale)[1] : '.';\n}\n\nexport function parseAmount(number: string, currency: string, locale = DEFAULT_LOCALE) {\n const validLocale = getValidLocale(locale);\n\n const precision = getCurrencyDecimals(currency);\n const groupSeparator = isNumberLocaleSupported() ? (10000).toLocaleString(validLocale)[2] : ',';\n const decimalSeparator = getDecimalSeparator(validLocale);\n const numberWithStandardDecimalSeparator = (number ? `${number}` : '')\n .replace(new RegExp(`\\\\${groupSeparator}`, 'g'), '')\n .replace(new RegExp(`\\\\${decimalSeparator}`, 'g'), '.')\n .replace(/[^0-9.]/g, '');\n const parsedAmount = parseFloat(\n parseFloat(numberWithStandardDecimalSeparator).toFixed(precision),\n );\n return Math.abs(parsedAmount);\n}\n","import { isEmpty, isNumber, isNull } from '@transferwise/neptune-validation';\nimport { Flag } from '@wise/art';\nimport classNames from 'classnames';\nimport { Component } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport { Typography } from '../common';\nimport { Size, SizeLarge, SizeMedium, SizeSmall } from '../common/propsValues/size';\nimport { withInputAttributes, WithInputAttributesProps } from '../inputs/contexts';\nimport { Input } from '../inputs/Input';\nimport {\n SelectInput,\n SelectInputItem,\n SelectInputOptionContent,\n SelectInputOptionItem,\n SelectInputProps,\n} from '../inputs/SelectInput';\nimport Title from '../title';\n\nimport messages from './MoneyInput.messages';\nimport { formatAmount, parseAmount } from './currencyFormatting';\n\nexport interface CurrencyOptionItem {\n header?: never;\n value: string;\n label: string;\n currency: string;\n note?: string;\n searchable?: string;\n}\n\nexport interface CurrencyHeaderItem {\n header: string;\n}\n\nexport type CurrencyItem = CurrencyOptionItem | CurrencyHeaderItem;\n\nconst isNumberOrNull = (v: unknown): v is number | null => isNumber(v) || isNull(v);\n\nconst formatAmountIfSet = ({\n amount,\n currency,\n locale,\n maxLengthOverride,\n}: {\n amount: number | null | undefined;\n currency: string;\n locale: string;\n maxLengthOverride?: number;\n}) => {\n if (maxLengthOverride) {\n return amount != null ? String(amount) : '';\n }\n return typeof amount === 'number' ? formatAmount(amount, currency, locale) : '';\n};\n\nconst parseNumber = ({\n amount,\n currency,\n locale,\n maxLengthOverride,\n}: {\n amount: string;\n currency: string;\n locale: string;\n maxLengthOverride?: number;\n}) => {\n if (maxLengthOverride && amount.length > maxLengthOverride) {\n return 0;\n }\n return parseAmount(amount, currency, locale);\n};\n\nconst allowedInputKeys = new Set([\n 'Backspace',\n 'Delete',\n ',',\n '.',\n 'ArrowDown',\n 'ArrowUp',\n 'ArrowLeft',\n 'ArrowRight',\n 'Enter',\n 'Escape',\n 'Tab',\n]);\n\nexport interface MoneyInputProps extends WrappedComponentProps {\n id?: string;\n 'aria-labelledby'?: string;\n currencies: readonly CurrencyItem[];\n selectedCurrency: CurrencyOptionItem;\n onCurrencyChange?: (value: CurrencyOptionItem) => void;\n placeholder?: number;\n amount: number | null;\n size?: SizeSmall | SizeMedium | SizeLarge;\n onAmountChange?: (value: number | null) => void;\n addon?: React.ReactNode;\n searchPlaceholder?: string;\n /**\n * Allows the consumer to react to searching, while the search itself is handled internally.\n */\n onSearchChange?: (value: { searchQuery: string; filteredOptions: CurrencyItem[] }) => void;\n customActionLabel?: React.ReactNode;\n onCustomAction?: () => void;\n classNames?: Record<string, string>;\n selectProps?: Partial<SelectInputProps<CurrencyOptionItem>>;\n maxLengthOverride?: number;\n}\n\ntype MoneyInputPropsWithInputAttributes = MoneyInputProps & Partial<WithInputAttributesProps>;\n\ninterface MoneyInputState {\n searchQuery: string;\n formattedAmount: string;\n locale: string;\n}\n\nclass MoneyInput extends Component<MoneyInputPropsWithInputAttributes, MoneyInputState> {\n declare props: MoneyInputPropsWithInputAttributes &\n Required<Pick<MoneyInputPropsWithInputAttributes, keyof typeof MoneyInput.defaultProps>>;\n\n static defaultProps = {\n size: Size.LARGE,\n classNames: {},\n selectProps: {},\n } satisfies Partial<MoneyInputPropsWithInputAttributes>;\n\n amountFocused = false;\n\n constructor(props: MoneyInputProps) {\n super(props);\n this.state = {\n searchQuery: '',\n formattedAmount: formatAmountIfSet({\n amount: props.amount,\n currency: props.selectedCurrency.currency,\n locale: props.intl.locale,\n maxLengthOverride: props.maxLengthOverride,\n }),\n locale: props.intl.locale,\n };\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: MoneyInputProps) {\n this.setState({ locale: nextProps.intl.locale });\n\n if (!this.amountFocused) {\n this.setState({\n formattedAmount: formatAmountIfSet({\n amount: nextProps.amount,\n currency: nextProps.selectedCurrency.currency,\n locale: nextProps.intl.locale,\n maxLengthOverride: nextProps.maxLengthOverride,\n }),\n });\n }\n }\n\n isInputAllowedForKeyEvent = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const { metaKey, key, ctrlKey } = event;\n const isNumberKey = isNumber(Number.parseInt(key, 10));\n\n return isNumberKey || metaKey || ctrlKey || allowedInputKeys.has(key);\n };\n\n handleKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n if (!this.isInputAllowedForKeyEvent(event)) {\n event.preventDefault();\n }\n };\n\n handlePaste: React.ClipboardEventHandler<HTMLInputElement> = (event) => {\n const paste = event.clipboardData.getData('text');\n const { locale } = this.state;\n const parsed = isEmpty(paste)\n ? null\n : parseNumber({\n amount: paste,\n currency: this.props.selectedCurrency.currency,\n locale,\n maxLengthOverride: this.props.maxLengthOverride,\n });\n\n if (isNumberOrNull(parsed)) {\n this.setState({\n formattedAmount: formatAmountIfSet({\n amount: parsed,\n currency: this.props.selectedCurrency.currency,\n locale,\n maxLengthOverride: this.props.maxLengthOverride,\n }),\n });\n this.props.onAmountChange?.(parsed);\n }\n\n event.preventDefault();\n };\n\n onAmountChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const { value } = event.target;\n this.setState({\n formattedAmount: value,\n });\n const parsed = isEmpty(value)\n ? null\n : parseNumber({\n amount: value,\n currency: this.props.selectedCurrency.currency,\n locale: this.state.locale,\n maxLengthOverride: this.props.maxLengthOverride,\n });\n if (isNumberOrNull(parsed)) {\n this.props.onAmountChange?.(parsed);\n }\n };\n\n onAmountBlur = () => {\n this.amountFocused = false;\n this.setAmount();\n };\n\n onAmountFocus = () => {\n this.amountFocused = true;\n };\n\n getSelectOptions() {\n const selectOptions = filterCurrenciesForQuery(this.props.currencies, this.state.searchQuery);\n\n const formattedOptions: SelectInputItem<CurrencyOptionItem>[] = [];\n let currentGroupOptions: SelectInputOptionItem<CurrencyOptionItem>[] | undefined;\n\n selectOptions.forEach((item) => {\n if (item.header != null) {\n currentGroupOptions = [];\n formattedOptions.push({\n type: 'group',\n label: item.header,\n options: currentGroupOptions,\n });\n } else {\n (currentGroupOptions ?? formattedOptions).push({\n type: 'option',\n value: item,\n filterMatchers: [item.value, item.label, item.note ?? '', item.searchable ?? ''],\n });\n }\n });\n\n return formattedOptions;\n }\n\n setAmount() {\n this.setState((previousState) => {\n const parsed = parseNumber({\n amount: previousState.formattedAmount,\n currency: this.props.selectedCurrency.currency,\n locale: previousState.locale,\n maxLengthOverride: this.props.maxLengthOverride,\n });\n if (!isNumberOrNull(parsed)) {\n return {\n formattedAmount: previousState.formattedAmount,\n };\n }\n return {\n formattedAmount: formatAmountIfSet({\n amount: parsed,\n currency: this.props.selectedCurrency.currency,\n locale: previousState.locale,\n maxLengthOverride: this.props.maxLengthOverride,\n }),\n };\n });\n }\n\n handleSelectChange = (value: CurrencyOptionItem) => {\n this.handleSearchChange('');\n this.props.onCurrencyChange?.(value);\n };\n\n handleCustomAction = () => {\n this.handleSearchChange('');\n this.props.onCustomAction?.();\n };\n\n handleSearchChange = (searchQuery: string) => {\n this.setState({ searchQuery });\n this.props.onSearchChange?.({\n searchQuery,\n filteredOptions: filterCurrenciesForQuery(this.props.currencies, searchQuery),\n });\n };\n\n style = (className: string) => this.props.classNames[className] || className;\n\n render() {\n const {\n inputAttributes,\n id: amountInputId,\n 'aria-labelledby': ariaLabelledByProp,\n selectedCurrency,\n onCurrencyChange,\n size,\n addon,\n selectProps,\n maxLengthOverride,\n } = this.props;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes?.['aria-labelledby'];\n\n const selectOptions = this.getSelectOptions();\n\n const hasSingleCurrency = () => {\n if (selectOptions.length !== 0) {\n const firstItem = selectOptions[0];\n\n if (selectOptions.length === 1) {\n if (firstItem.type === 'option') {\n return firstItem.value.currency === selectedCurrency.currency;\n }\n if (firstItem.type === 'group') {\n return (\n firstItem.options.length === 1 &&\n !(this.props.onCustomAction && this.props.customActionLabel)\n );\n }\n }\n } else if (selectedCurrency?.currency) {\n return true;\n }\n\n return false;\n };\n\n const isFixedCurrency = (!this.state.searchQuery && hasSingleCurrency()) || !onCurrencyChange;\n\n const disabled = !this.props.onAmountChange;\n return (\n <div\n role=\"group\"\n {...inputAttributes}\n aria-labelledby={ariaLabelledBy}\n className={classNames(\n this.style('tw-money-input'),\n this.style('input-group'),\n this.style(`input-group-${size}`),\n )}\n >\n <Input\n id={amountInputId}\n value={this.state.formattedAmount}\n inputMode=\"decimal\"\n disabled={disabled}\n maxLength={maxLengthOverride}\n placeholder={formatAmountIfSet({\n amount: this.props.placeholder,\n currency: this.props.selectedCurrency.currency,\n locale: this.state.locale,\n maxLengthOverride: this.props.maxLengthOverride,\n })}\n autoComplete=\"off\"\n onKeyDown={this.handleKeyDown}\n onChange={this.onAmountChange}\n onFocus={this.onAmountFocus}\n onBlur={this.onAmountBlur}\n onPaste={this.handlePaste}\n />\n {addon && (\n <span\n className={classNames(\n this.style('input-group-addon'),\n this.style(`input-${size}`),\n disabled ? this.style('disabled') : '',\n )}\n >\n {addon}\n </span>\n )}\n {isFixedCurrency ? (\n <div\n className={classNames(\n this.style('input-group-addon'),\n this.style(`input-${size}`),\n this.style('tw-money-input__fixed-currency'),\n disabled ? this.style('disabled') : '',\n )}\n >\n {(size === 'lg' || size === 'md') && (\n <span\n className={classNames(this.style('money-input-currency-flag'), this.style('m-r-2'))}\n >\n <Flag code={selectedCurrency.currency.toLowerCase()} intrinsicSize={24} />\n </span>\n )}\n <Title\n as=\"span\"\n type={Typography.TITLE_SUBSECTION}\n className={size === 'lg' ? this.style('m-r-1') : ''}\n >\n {selectedCurrency.currency.toUpperCase()}\n </Title>\n </div>\n ) : (\n <div\n className={classNames(\n this.style('input-group-btn'),\n this.style('amount-currency-select-btn'),\n )}\n >\n <SelectInput\n items={selectOptions}\n value={selectedCurrency}\n compareValues=\"currency\"\n renderValue={(currency, withinTrigger) => {\n return (\n <SelectInputOptionContent\n title={withinTrigger ? currency.currency.toUpperCase() : currency.label}\n note={withinTrigger ? undefined : currency.note}\n icon={<Flag code={currency.currency} intrinsicSize={24} />}\n />\n );\n }}\n renderFooter={\n this.props.onCustomAction\n ? () => (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <div role=\"button\" tabIndex={0} onClick={this.handleCustomAction}>\n {this.props.customActionLabel}\n </div>\n )\n : undefined\n }\n placeholder={this.props.intl.formatMessage(messages.selectPlaceholder)}\n filterable\n filterPlaceholder={this.props.searchPlaceholder}\n disabled={disabled}\n size={size}\n onChange={this.handleSelectChange}\n onFilterChange={({ queryNormalized }) => {\n this.handleSearchChange(queryNormalized ?? '');\n }}\n {...selectProps}\n />\n </div>\n )}\n </div>\n );\n }\n}\n\nfunction filterCurrenciesForQuery(\n currencies: readonly CurrencyItem[],\n query: string,\n): CurrencyItem[] {\n if (!query) {\n return [...currencies];\n }\n\n const options = currencies.filter(\n (option): option is CurrencyOptionItem => option.header == null,\n );\n const filteredOptions = removeDuplicateValueOptions(options).filter((option) =>\n currencyOptionFitsQuery(option, query),\n );\n\n return sortOptionsLabelsToFirst(filteredOptions, query);\n}\n\nfunction removeDuplicateValueOptions(options: readonly CurrencyOptionItem[]) {\n const uniqueValues = new Set<string>();\n return options.filter((option) => {\n if (!uniqueValues.has(option.value)) {\n uniqueValues.add(option.value);\n return true;\n }\n return false;\n });\n}\n\nfunction currencyOptionFitsQuery(option: CurrencyOptionItem, query: string) {\n if (!option.value) {\n return false;\n }\n\n return (\n contains(option.label, query) ||\n contains(option.searchable, query) ||\n contains(option.note, query)\n );\n}\n\nfunction contains(property: string | undefined, query: string) {\n return property?.toLowerCase().includes(query.toLowerCase());\n}\n\nfunction sortOptionsLabelsToFirst(options: readonly CurrencyOptionItem[], query: string) {\n return [...options].sort((first, second) => {\n const firstContains = contains(first.label, query);\n const secondContains = contains(second.label, query);\n\n if (firstContains && secondContains) {\n return 0;\n }\n if (firstContains) {\n return -1;\n }\n if (secondContains) {\n return 1;\n }\n return 0;\n });\n}\n\nexport default injectIntl(withInputAttributes(MoneyInput, { nonLabelable: true }));\n","import * as React from 'react';\nimport { Children } from 'react';\n\nexport interface NavigationOptionListProps {\n children: React.ReactNode;\n}\n\nconst NavigationOptionList = ({ children }: NavigationOptionListProps) => {\n return (\n <ul className=\"np-navigation-options-list\">\n {Children.map(children, (child) => (\n <li key={child?.toString()} className=\"np-navigation-options-list__item\">\n {child}\n </li>\n ))}\n </ul>\n );\n};\n\nexport default NavigationOptionList;\n","import { Illustration, Assets, IllustrationNames } from '@wise/art';\nimport classNames from 'classnames';\nimport { ReactNode, useEffect, useState, MouseEvent } from 'react';\n\nimport Body from '../body';\nimport { Typography } from '../common';\nimport { CloseButton } from '../common/closeButton';\nimport Link from '../link';\nimport { Action, ActionOptions } from '../common/action/Action';\n\n// WARNING: Changing this will cause nudges to reappear wherever persist nudge is used and privacy team will need to be updated too\nexport const STORAGE_NAME = 'dismissedNudges';\n\nconst getLocalStorage = (): string[] => {\n try {\n const storageItem = localStorage.getItem(STORAGE_NAME);\n\n if (storageItem) {\n const storage: unknown = JSON.parse(storageItem);\n\n if (Array.isArray(storage)) {\n return storage.map((item) => String(item));\n }\n }\n // eslint-disable-next-line unicorn/prefer-optional-catch-binding, no-empty\n } catch (error) {}\n\n return [];\n};\n\ntype MediaNameType =\n | `${Assets.GLOBE}`\n | `${Assets.LOCK}`\n | `${Assets.WALLET}`\n | `${Assets.GEAR}`\n | `${Assets.INVITE_LETTER}`\n | `${Assets.PERSONAL_CARD}`\n | `${Assets.BUSINESS_CARD}`\n | `${Assets.HEART}`\n | `${Assets.MULTI_CURRENCY}`\n | `${Assets.SHOPPING_BAG}`;\n\ntype BaseProps = {\n /** @deprecated use `mediaName` property instead */\n media?: ReactNode;\n /** Media name */\n mediaName?: MediaNameType;\n title: ReactNode;\n link?: ReactNode;\n href?: string;\n onClick?: (event?: MouseEvent<HTMLSpanElement>) => void;\n /** Fired when the user clicks on close button */\n onDismiss?: () => void;\n /** An optional call to action to sit under the main body of the nudge. If your label is short, use aria-label to provide more context */\n action?: ActionOptions;\n className?: string;\n};\n\nexport interface OptionalId extends BaseProps {\n id?: string;\n persistDismissal?: false;\n isPreviouslyDismissed?: undefined;\n}\n\nexport interface RequiredPersistProps extends BaseProps {\n /** This ID should be completely unique to the page and feature as it uses a shared array which could conflict with other nudges in Wise */\n id: string;\n /** Use persist dismissal to keep the nudge dismissed using the browser's localStorage */\n persistDismissal: true;\n /**\n * Fired on mount for determining if nudge has been dismissed before\n *\n * @param {boolean} value - set to true if dismissed previously\n */\n isPreviouslyDismissed?: (value: boolean) => void;\n}\n\nexport type Props = OptionalId | RequiredPersistProps;\n\nconst Nudge = ({\n media,\n mediaName,\n title,\n link,\n href,\n onClick,\n onDismiss,\n persistDismissal,\n isPreviouslyDismissed,\n id,\n className,\n action,\n}: Props) => {\n const [isDismissed, setIsDismissed] = useState(false);\n const [isMounted, setIsMounted] = useState(false);\n\n const handleOnDismiss = () => {\n const dismissedNudgesStorage = getLocalStorage();\n\n if (persistDismissal && id) {\n try {\n localStorage.setItem(STORAGE_NAME, JSON.stringify([...dismissedNudgesStorage, id]));\n // eslint-disable-next-line unicorn/prefer-optional-catch-binding, no-empty\n } catch (error) {}\n\n setIsDismissed(true);\n }\n\n if (onDismiss) {\n onDismiss();\n }\n };\n\n useEffect(() => {\n if (persistDismissal && id) {\n const dismissedNudgesStorage = getLocalStorage();\n let isDismissed = false;\n\n if (dismissedNudgesStorage?.find((item) => item === id)) {\n setIsDismissed(true);\n isDismissed = true;\n }\n\n if (isPreviouslyDismissed) {\n isPreviouslyDismissed(isDismissed);\n }\n }\n\n setIsMounted(true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [id, persistDismissal]);\n\n if (persistDismissal && (isDismissed || !isMounted)) {\n return null;\n }\n\n return (\n <div className={classNames('wds-nudge', className)} id={id}>\n {!!mediaName && (\n <div className=\"wds-nudge-media\">\n <Illustration\n name={mediaName as IllustrationNames}\n className={classNames(`wds-nudge-media-${mediaName}`)}\n size=\"small\"\n disablePadding\n alt=\"\"\n />\n </div>\n )}\n <div className=\"wds-nudge-container\">\n <div className=\"wds-nudge-content\">\n <Body type={Typography.BODY_LARGE} className={classNames('wds-nudge-body')}>\n {title}\n </Body>\n {link && (\n <Link\n href={href}\n type={Typography.LINK_LARGE}\n className=\"wds-nudge-link\"\n onClick={onClick}\n >\n {link}\n </Link>\n )}\n {action && <Action action={action} className=\"m-t-1\" />}\n </div>\n {onDismiss || persistDismissal ? (\n <CloseButton className=\"wds-nudge-control\" size=\"sm\" onClick={handleOnDismiss} />\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default Nudge;\n","import classNames from 'classnames';\n\nimport { Size } from '../common';\nimport { CloseButton } from '../common/closeButton';\nimport FlowHeader from '../common/flowHeader';\nimport Logo from '../logo';\n\nexport interface OverlayHeaderProps {\n /** An Avatar */\n avatar?: React.ReactNode;\n logo?: React.ReactNode;\n /** Function called when the close is clicked */\n onClose?: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nconst defaultLogo = <Logo />;\n\nexport default function OverlayHeader({ avatar, onClose, logo = defaultLogo }: OverlayHeaderProps) {\n const closeButton = onClose && <CloseButton size={Size.LARGE} onClick={onClose} />;\n return (\n <div className=\"np-overlay-header d-flex justify-content-center\">\n <FlowHeader\n className=\"np-overlay-header__content p-a-3\"\n leftContent={logo}\n rightContent={\n <div className={classNames('d-flex', 'align-items-center', 'order-2')}>\n {avatar}\n {avatar && closeButton && <span className={classNames('m-x-1')} />}\n {closeButton}\n </div>\n }\n />\n </div>\n );\n}\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n selectInputPlaceholder: {\n id: 'neptune.PhoneNumberInput.SelectInput.placeholder',\n defaultMessage: 'Select an option...',\n },\n});\n","export type Country = {\n name: string;\n iso2: string;\n iso3: string;\n phone: string;\n phoneFormat?: string;\n};\n\nconst countries: Country[] = [\n {\n name: 'Afghanistan',\n iso2: 'AF',\n iso3: 'AFG',\n phone: '+93',\n },\n {\n name: 'Åland Islands',\n iso2: 'AX',\n iso3: 'ALA',\n phone: '+358',\n },\n {\n name: 'Albania',\n iso2: 'AL',\n iso3: 'ALB',\n phone: '+355',\n },\n {\n name: 'Algeria',\n iso2: 'DZ',\n iso3: 'DZA',\n phone: '+213',\n },\n {\n name: 'American Samoa',\n iso2: 'AS',\n iso3: 'ASM',\n phone: '+1684',\n },\n {\n name: 'Andorra',\n iso2: 'AD',\n iso3: 'AND',\n phone: '+376',\n },\n {\n name: 'Angola',\n iso2: 'AO',\n iso3: 'AGO',\n phone: '+244',\n },\n {\n name: 'Anguilla',\n iso2: 'AI',\n iso3: 'AIA',\n phone: '+1264',\n },\n {\n name: 'Antarctica',\n iso2: 'AQ',\n iso3: 'ATA',\n phone: '+672',\n },\n {\n name: 'Antigua',\n iso2: 'AG',\n iso3: 'ATG',\n phone: '+1268',\n },\n {\n name: 'Argentina',\n iso2: 'AR',\n iso3: 'ARG',\n phone: '+54',\n },\n {\n name: 'Armenia',\n iso2: 'AM',\n iso3: 'ARM',\n phone: '+374',\n },\n {\n name: 'Aruba',\n iso2: 'AW',\n iso3: 'ABW',\n phone: '+297',\n },\n {\n name: 'Ascension Island',\n iso2: 'SH',\n iso3: 'SHN',\n phone: '+247',\n },\n {\n name: 'Australia',\n iso2: 'AU',\n iso3: 'AUS',\n phone: '+61',\n },\n {\n name: 'Australian Antarctic Territory',\n iso2: 'AQ',\n iso3: 'ATA',\n phone: '+672',\n },\n {\n name: 'Austria',\n iso2: 'AT',\n iso3: 'AUT',\n phone: '+43',\n },\n {\n name: 'Azerbaijan',\n iso2: 'AZ',\n iso3: 'AZE',\n phone: '+994',\n },\n {\n name: 'Bahamas',\n iso2: 'BS',\n iso3: 'BHS',\n phone: '+1242',\n },\n {\n name: 'Bahrain',\n iso2: 'BH',\n iso3: 'BHR',\n phone: '+973',\n },\n {\n name: 'Bangladesh',\n iso2: 'BD',\n iso3: 'BGD',\n phone: '+880',\n },\n {\n name: 'Barbados',\n iso2: 'BB',\n iso3: 'BRB',\n phone: '+1246',\n },\n {\n name: 'Belarus',\n iso2: 'BY',\n iso3: 'BLR',\n phone: '+375',\n },\n {\n name: 'Belgium',\n iso2: 'BE',\n iso3: 'BEL',\n phone: '+32',\n },\n {\n name: 'Belize',\n iso2: 'BZ',\n iso3: 'BLZ',\n phone: '+501',\n },\n {\n name: 'Benin',\n iso2: 'BJ',\n iso3: 'BEN',\n phone: '+229',\n },\n {\n name: 'Bermuda',\n iso2: 'BM',\n iso3: 'BMU',\n phone: '+1441',\n },\n {\n name: 'Bhutan',\n iso2: 'BT',\n iso3: 'BTN',\n phone: '+975',\n },\n {\n name: 'Bolivia',\n iso2: 'BO',\n iso3: 'BOL',\n phone: '+591',\n },\n {\n name: 'Bonaire, Sint Eustatius and Saba',\n iso2: 'BQ',\n iso3: 'BES',\n phone: '+599',\n },\n {\n name: 'Bosnia and Herzegovina',\n iso2: 'BA',\n iso3: 'BIH',\n phone: '+387',\n },\n {\n name: 'Botswana',\n iso2: 'BW',\n iso3: 'BWA',\n phone: '+267',\n },\n {\n name: 'Brazil',\n iso2: 'BR',\n iso3: 'BRA',\n phone: '+55',\n },\n {\n name: 'British Virgin Islands',\n iso2: 'VG',\n iso3: 'VGB',\n phone: '+1284',\n },\n {\n name: 'Brunei',\n iso2: 'BN',\n iso3: 'BRN',\n phone: '+673',\n },\n {\n name: 'Bulgaria',\n iso2: 'BG',\n iso3: 'BGR',\n phone: '+359',\n },\n {\n name: 'Burkina Faso',\n iso2: 'BF',\n iso3: 'BFA',\n phone: '+226',\n },\n {\n name: 'Burundi',\n iso2: 'BI',\n iso3: 'BDI',\n phone: '+257',\n },\n {\n name: 'Cambodia',\n iso2: 'KH',\n iso3: 'KHM',\n phone: '+855',\n },\n {\n name: 'Cameroon',\n iso2: 'CM',\n iso3: 'CMR',\n phone: '+237',\n },\n {\n name: 'Canada',\n iso2: 'CA',\n iso3: 'CAN',\n phone: '+1',\n },\n {\n name: 'Cape Verde',\n iso2: 'CV',\n iso3: 'CPV',\n phone: '+238',\n },\n {\n name: 'Cayman Islands',\n iso2: 'KY',\n iso3: 'CYM',\n phone: '+1345',\n },\n {\n name: 'Central African Republic',\n iso2: 'CF',\n iso3: 'CAF',\n phone: '+236',\n },\n {\n name: 'Chad',\n iso2: 'TD',\n iso3: 'TCD',\n phone: '+235',\n },\n {\n name: 'Chile',\n iso2: 'CL',\n iso3: 'CHL',\n phone: '+56',\n },\n {\n name: 'China',\n iso2: 'CN',\n iso3: 'CHN',\n phone: '+86',\n },\n {\n name: 'Christmas Island',\n iso2: 'CX',\n iso3: 'CXR',\n phone: '+61',\n },\n {\n name: 'Cocos (Keeling) Islands',\n iso2: 'CC',\n iso3: 'CCK',\n phone: '+61',\n },\n {\n name: 'Colombia',\n iso2: 'CO',\n iso3: 'COL',\n phone: '+57',\n },\n {\n name: 'Comoros',\n iso2: 'KM',\n iso3: 'COM',\n phone: '+269',\n },\n {\n name: 'Congo',\n iso2: 'CG',\n iso3: 'COG',\n phone: '+242',\n },\n {\n name: 'Cook Islands',\n iso2: 'CK',\n iso3: 'COK',\n phone: '+682',\n },\n {\n name: 'Costa Rica',\n iso2: 'CR',\n iso3: 'CRI',\n phone: '+506',\n },\n {\n name: 'Croatia',\n iso2: 'HR',\n iso3: 'HRV',\n phone: '+385',\n },\n {\n name: 'Cuba',\n iso2: 'CU',\n iso3: 'CUB',\n phone: '+53',\n },\n {\n name: 'Curaçao',\n iso2: 'CW',\n iso3: 'CUW',\n phone: '+599',\n },\n {\n name: 'Cyprus',\n iso2: 'CY',\n iso3: 'CYP',\n phone: '+357',\n },\n {\n name: 'Czech Republic',\n iso2: 'CZ',\n iso3: 'CZE',\n phone: '+420',\n },\n {\n name: 'Democratic Republic of the Congo',\n iso2: 'CD',\n iso3: 'COD',\n phone: '+243',\n },\n {\n name: 'Denmark',\n iso2: 'DK',\n iso3: 'DNK',\n phone: '+45',\n },\n {\n name: 'Diego Garcia',\n iso2: 'IO',\n iso3: 'IOT',\n phone: '+246',\n },\n {\n name: 'Djibouti',\n iso2: 'DJ',\n iso3: 'DJI',\n phone: '+253',\n },\n {\n name: 'Dominica',\n iso2: 'DM',\n iso3: 'DMA',\n phone: '+1767',\n },\n {\n name: 'Dominican Republic',\n iso2: 'DO',\n iso3: 'DOM',\n phone: '+1809',\n },\n {\n name: 'Dominican Republic',\n iso2: 'DO',\n iso3: 'DOM',\n phone: '+1829',\n },\n {\n name: 'Dominican Republic',\n iso2: 'DO',\n iso3: 'DOM',\n phone: '+1849',\n },\n {\n name: 'East Timor',\n iso2: 'TL',\n iso3: 'TLS',\n phone: '+670',\n },\n {\n name: 'Ecuador',\n iso2: 'EC',\n iso3: 'ECU',\n phone: '+593',\n },\n {\n name: 'Egypt',\n iso2: 'EG',\n iso3: 'EGY',\n phone: '+20',\n },\n {\n name: 'El Salvador',\n iso2: 'SV',\n iso3: 'SLV',\n phone: '+503',\n },\n {\n name: 'Equatorial Guinea',\n iso2: 'GQ',\n iso3: 'GNQ',\n phone: '+240',\n },\n {\n name: 'Eritrea',\n iso2: 'ER',\n iso3: 'ERI',\n phone: '+291',\n },\n {\n name: 'Estonia',\n iso2: 'EE',\n iso3: 'EST',\n phone: '+372',\n },\n {\n name: 'Ethiopia',\n iso2: 'ET',\n iso3: 'ETH',\n phone: '+251',\n },\n {\n name: 'Falkland Islands',\n iso2: 'FK',\n iso3: 'FLK',\n phone: '+500',\n },\n {\n name: 'Faroe Islands',\n iso2: 'FO',\n iso3: 'FRO',\n phone: '+298',\n },\n {\n name: 'Fiji',\n iso2: 'FJ',\n iso3: 'FJI',\n phone: '+679',\n },\n {\n name: 'Finland',\n iso2: 'FI',\n iso3: 'FIN',\n phone: '+358',\n },\n {\n name: 'France',\n iso2: 'FR',\n iso3: 'FRA',\n phone: '+33',\n },\n {\n name: 'French Guiana',\n iso2: 'GF',\n iso3: 'GUF',\n phone: '+594',\n },\n {\n name: 'French Polynesia',\n iso2: 'PF',\n iso3: 'PYF',\n phone: '+689',\n },\n {\n name: 'French Southern Territories',\n iso2: 'TF',\n iso3: 'ATF',\n phone: '+262',\n },\n {\n name: 'Gabon',\n iso2: 'GA',\n iso3: 'GAB',\n phone: '+241',\n },\n {\n name: 'Gambia',\n iso2: 'GM',\n iso3: 'GMB',\n phone: '+220',\n },\n {\n name: 'Georgia',\n iso2: 'GE',\n iso3: 'GEO',\n phone: '+995',\n },\n {\n name: 'Germany',\n iso2: 'DE',\n iso3: 'DEU',\n phone: '+49',\n },\n {\n name: 'Ghana',\n iso2: 'GH',\n iso3: 'GHA',\n phone: '+233',\n },\n {\n name: 'Gibraltar',\n iso2: 'GI',\n iso3: 'GIB',\n phone: '+350',\n },\n {\n name: 'Greece',\n iso2: 'GR',\n iso3: 'GRC',\n phone: '+30',\n },\n {\n name: 'Greenland',\n iso2: 'GL',\n iso3: 'GRL',\n phone: '+299',\n },\n {\n name: 'Grenada',\n iso2: 'GD',\n iso3: 'GRD',\n phone: '+1473',\n },\n {\n name: 'Guadeloupe',\n iso2: 'GP',\n iso3: 'GLP',\n phone: '+596',\n },\n {\n name: 'Guadeloupe',\n iso2: 'GP',\n iso3: 'GLP',\n phone: '+590',\n },\n {\n name: 'Guam',\n iso2: 'GU',\n iso3: 'GUM',\n phone: '+1671',\n },\n {\n name: 'Guatemala',\n iso2: 'GT',\n iso3: 'GTM',\n phone: '+502',\n },\n {\n name: 'Guernsey',\n iso2: 'GG',\n iso3: 'GGY',\n phone: '+44',\n phoneFormat: '**** *** ***',\n },\n {\n name: 'Guinea',\n iso2: 'GN',\n iso3: 'GIN',\n phone: '+224',\n },\n {\n name: 'Guinea-Bissau',\n iso2: 'GW',\n iso3: 'GNB',\n phone: '+245',\n },\n {\n name: 'Guyana',\n iso2: 'GY',\n iso3: 'GUY',\n phone: '+592',\n },\n {\n name: 'Haiti',\n iso2: 'HT',\n iso3: 'HTI',\n phone: '+509',\n },\n {\n name: 'Holy See',\n iso2: 'VA',\n iso3: 'VAT',\n phone: '+379',\n },\n {\n name: 'Honduras',\n iso2: 'HN',\n iso3: 'HND',\n phone: '+504',\n },\n {\n name: 'Hong Kong',\n iso2: 'HK',\n iso3: 'HKG',\n phone: '+852',\n },\n {\n name: 'Hungary',\n iso2: 'HU',\n iso3: 'HUN',\n phone: '+36',\n },\n {\n name: 'Iceland',\n iso2: 'IS',\n iso3: 'ISL',\n phone: '+354',\n },\n {\n name: 'India',\n iso2: 'IN',\n iso3: 'IND',\n phone: '+91',\n },\n {\n name: 'Indonesia',\n iso2: 'ID',\n iso3: 'IDN',\n phone: '+62',\n },\n {\n name: 'Iran',\n iso2: 'IR',\n iso3: 'IRN',\n phone: '+98',\n },\n {\n name: 'Iraq',\n iso2: 'IQ',\n iso3: 'IRQ',\n phone: '+964',\n },\n {\n name: 'Ireland',\n iso2: 'IE',\n iso3: 'IRL',\n phone: '+353',\n },\n {\n name: 'Isle of Man',\n iso2: 'IM',\n iso3: 'IMN',\n phone: '+44',\n },\n {\n name: 'Israel',\n iso2: 'IL',\n iso3: 'ISR',\n phone: '+972',\n },\n {\n name: 'Italy',\n iso2: 'IT',\n iso3: 'ITA',\n phone: '+39',\n },\n {\n name: 'Ivory Coast',\n iso2: 'CI',\n iso3: 'CIV',\n phone: '+225',\n },\n {\n name: 'Jamaica',\n iso2: 'JM',\n iso3: 'JAM',\n phone: '+1876',\n },\n {\n name: 'Japan',\n iso2: 'JP',\n iso3: 'JPN',\n phone: '+81',\n },\n {\n name: 'Jersey',\n iso2: 'JE',\n iso3: 'JEY',\n phone: '+44',\n },\n {\n name: 'Jordan',\n iso2: 'JO',\n iso3: 'JOR',\n phone: '+962',\n },\n {\n name: 'Kazakhstan',\n iso2: 'KZ',\n iso3: 'KAZ',\n phone: '+7',\n },\n {\n name: 'Kenya',\n iso2: 'KE',\n iso3: 'KEN',\n phone: '+254',\n },\n {\n name: 'Kiribati',\n iso2: 'KI',\n iso3: 'KIR',\n phone: '+686',\n },\n {\n name: 'Kosovo',\n iso2: 'XK',\n iso3: 'RKS',\n phone: '+383',\n },\n {\n name: 'Kuwait',\n iso2: 'KW',\n iso3: 'KWT',\n phone: '+965',\n },\n {\n name: 'Kyrgyzstan',\n iso2: 'KG',\n iso3: 'KGZ',\n phone: '+996',\n },\n {\n name: 'Laos',\n iso2: 'LA',\n iso3: 'LAO',\n phone: '+856',\n },\n {\n name: 'Latvia',\n iso2: 'LV',\n iso3: 'LVA',\n phone: '+371',\n },\n {\n name: 'Lebanon',\n iso2: 'LB',\n iso3: 'LBN',\n phone: '+961',\n },\n {\n name: 'Lesotho',\n iso2: 'LS',\n iso3: 'LSO',\n phone: '+266',\n },\n {\n name: 'Liberia',\n iso2: 'LR',\n iso3: 'LBR',\n phone: '+231',\n },\n {\n name: 'Libya',\n iso2: 'LY',\n iso3: 'LBY',\n phone: '+218',\n },\n {\n name: 'Liechtenstein',\n iso2: 'LI',\n iso3: 'LIE',\n phone: '+423',\n },\n {\n name: 'Lithuania',\n iso2: 'LT',\n iso3: 'LTU',\n phone: '+370',\n },\n {\n name: 'Luxembourg',\n iso2: 'LU',\n iso3: 'LUX',\n phone: '+352',\n },\n {\n name: 'Macau',\n iso2: 'MO',\n iso3: 'MAC',\n phone: '+853',\n },\n {\n name: 'Macedonia',\n iso2: 'MK',\n iso3: 'MKD',\n phone: '+389',\n },\n {\n name: 'Madagascar',\n iso2: 'MG',\n iso3: 'MDG',\n phone: '+261',\n },\n {\n name: 'Malawi',\n iso2: 'MW',\n iso3: 'MWI',\n phone: '+265',\n },\n {\n name: 'Malaysia',\n iso2: 'MY',\n iso3: 'MYS',\n phone: '+60',\n },\n {\n name: 'Maldives',\n iso2: 'MV',\n iso3: 'MDV',\n phone: '+960',\n },\n {\n name: 'Mali',\n iso2: 'ML',\n iso3: 'MLI',\n phone: '+223',\n },\n {\n name: 'Malta',\n iso2: 'MT',\n iso3: 'MLT',\n phone: '+356',\n },\n {\n name: 'Marshall Islands',\n iso2: 'MH',\n iso3: 'MHL',\n phone: '+692',\n },\n {\n name: 'Martinique',\n iso2: 'MQ',\n iso3: 'MTQ',\n phone: '+596',\n },\n {\n name: 'Mauritania',\n iso2: 'MR',\n iso3: 'MRT',\n phone: '+222',\n },\n {\n name: 'Mauritius',\n iso2: 'MU',\n iso3: 'MUS',\n phone: '+230',\n },\n {\n name: 'Mayotte',\n iso2: 'YT',\n iso3: 'MYT',\n phone: '+262',\n },\n {\n name: 'Mexico',\n iso2: 'MX',\n iso3: 'MEX',\n phone: '+52',\n },\n {\n name: 'Micronesia',\n iso2: 'FM',\n iso3: 'FSM',\n phone: '+691',\n },\n {\n name: 'Moldova',\n iso2: 'MD',\n iso3: 'MDA',\n phone: '+373',\n },\n {\n name: 'Monaco',\n iso2: 'MC',\n iso3: 'MCO',\n phone: '+377',\n },\n {\n name: 'Mongolia',\n iso2: 'MN',\n iso3: 'MNG',\n phone: '+976',\n },\n {\n name: 'Montenegro',\n iso2: 'ME',\n iso3: 'MNE',\n phone: '+382',\n },\n {\n name: 'Montserrat',\n iso2: 'MS',\n iso3: 'MSR',\n phone: '+1664',\n },\n {\n name: 'Morocco',\n iso2: 'MA',\n iso3: 'MAR',\n phone: '+212',\n },\n {\n name: 'Mozambique',\n iso2: 'MZ',\n iso3: 'MOZ',\n phone: '+258',\n },\n {\n name: 'Myanmar',\n iso2: 'MM',\n iso3: 'MMR',\n phone: '+95',\n },\n {\n name: 'Namibia',\n iso2: 'NA',\n iso3: 'NAM',\n phone: '+264',\n },\n {\n name: 'Nauru',\n iso2: 'NR',\n iso3: 'NRU',\n phone: '+674',\n },\n {\n name: 'Nepal',\n iso2: 'NP',\n iso3: 'NPL',\n phone: '+977',\n },\n {\n name: 'Netherlands',\n iso2: 'NL',\n iso3: 'NLD',\n phone: '+31',\n },\n {\n name: 'Netherlands Antilles',\n iso2: 'AN',\n iso3: 'ANT',\n phone: '+599',\n },\n {\n name: 'New Caledonia',\n iso2: 'NC',\n iso3: 'NCL',\n phone: '+687',\n },\n {\n name: 'New Zealand',\n iso2: 'NZ',\n iso3: 'NZL',\n phone: '+64',\n },\n {\n name: 'Nicaragua',\n iso2: 'NI',\n iso3: 'NIC',\n phone: '+505',\n },\n {\n name: 'Niger',\n iso2: 'NE',\n iso3: 'NER',\n phone: '+227',\n },\n {\n name: 'Nigeria',\n iso2: 'NG',\n iso3: 'NGA',\n phone: '+234',\n },\n {\n name: 'Niue',\n iso2: 'NU',\n iso3: 'NIU',\n phone: '+683',\n },\n {\n name: 'Norfolk Island',\n iso2: 'NF',\n iso3: 'NFK',\n phone: '+672',\n },\n {\n name: 'North Korea',\n iso2: 'KP',\n iso3: 'PRK',\n phone: '+850',\n },\n {\n name: 'Northern Mariana Islands',\n iso2: 'MP',\n iso3: 'MNP',\n phone: '+1670',\n },\n {\n name: 'Norway',\n iso2: 'NO',\n iso3: 'NOR',\n phone: '+47',\n },\n {\n name: 'Oman',\n iso2: 'OM',\n iso3: 'OMN',\n phone: '+968',\n },\n {\n name: 'Pakistan',\n iso2: 'PK',\n iso3: 'PAK',\n phone: '+92',\n },\n {\n name: 'Palau',\n iso2: 'PW',\n iso3: 'PLW',\n phone: '+680',\n },\n {\n name: 'Palestine',\n iso2: 'PS',\n iso3: 'PSE',\n phone: '+970',\n },\n {\n name: 'Panama',\n iso2: 'PA',\n iso3: 'PAN',\n phone: '+507',\n },\n {\n name: 'Papua New Guinea',\n iso2: 'PG',\n iso3: 'PNG',\n phone: '+675',\n },\n {\n name: 'Paraguay',\n iso2: 'PY',\n iso3: 'PRY',\n phone: '+595',\n },\n {\n name: 'Peru',\n iso2: 'PE',\n iso3: 'PER',\n phone: '+51',\n },\n {\n name: 'Philippines',\n iso2: 'PH',\n iso3: 'PHL',\n phone: '+63',\n },\n {\n name: 'Pitcairn',\n iso2: 'PN',\n iso3: 'PCN',\n phone: '+64',\n },\n {\n name: 'Poland',\n iso2: 'PL',\n iso3: 'POL',\n phone: '+48',\n },\n {\n name: 'Portugal',\n iso2: 'PT',\n iso3: 'PRT',\n phone: '+351',\n },\n {\n name: 'Puerto Rico',\n iso2: 'PR',\n iso3: 'PRI',\n phone: '+1',\n },\n {\n name: 'Qatar',\n iso2: 'QA',\n iso3: 'QAT',\n phone: '+974',\n },\n {\n name: 'Reunion Island',\n iso2: 'RE',\n iso3: 'REU',\n phone: '+262',\n },\n {\n name: 'Romania',\n iso2: 'RO',\n iso3: 'ROU',\n phone: '+40',\n },\n {\n name: 'Russia',\n iso2: 'RU',\n iso3: 'RUS',\n phone: '+7',\n },\n {\n name: 'Rwanda',\n iso2: 'RW',\n iso3: 'RWA',\n phone: '+250',\n },\n {\n name: 'Saint Barthélemy',\n iso2: 'BL',\n iso3: 'BLM',\n phone: '+590',\n },\n {\n name: 'Saint Helena',\n iso2: 'SH',\n iso3: 'SHN',\n phone: '+290',\n },\n {\n name: 'Saint Kitts and Nevis',\n iso2: 'KN',\n iso3: 'KNA',\n phone: '+1869',\n },\n {\n name: 'Saint Lucia',\n iso2: 'LC',\n iso3: 'LCA',\n phone: '+1758',\n },\n {\n name: 'Saint Martin (French part)',\n iso2: 'MF',\n iso3: 'MAF',\n phone: '+590',\n },\n {\n name: 'Saint Pierre and Miquelon',\n iso2: 'PM',\n iso3: 'SPM',\n phone: '+508',\n },\n {\n name: 'Saint Vincent and the Grenadines',\n iso2: 'VC',\n iso3: 'VCT',\n phone: '+1784',\n },\n {\n name: 'San Marino',\n iso2: 'SM',\n iso3: 'SMR',\n phone: '+378',\n },\n {\n name: 'Sao Tome and Principe',\n iso2: 'ST',\n iso3: 'STP',\n phone: '+239',\n },\n {\n name: 'Saudi Arabia',\n iso2: 'SA',\n iso3: 'SAU',\n phone: '+966',\n },\n {\n name: 'Senegal',\n iso2: 'SN',\n iso3: 'SEN',\n phone: '+221',\n },\n {\n name: 'Serbia',\n iso2: 'RS',\n iso3: 'SRB',\n phone: '+381',\n },\n {\n name: 'Seychelles',\n iso2: 'SC',\n iso3: 'SYC',\n phone: '+248',\n },\n {\n name: 'Sierra Leone',\n iso2: 'SL',\n iso3: 'SLE',\n phone: '+232',\n },\n {\n name: 'Singapore',\n iso2: 'SG',\n iso3: 'SGP',\n phone: '+65',\n },\n {\n name: 'Sint Maarten',\n iso2: 'SX',\n iso3: 'SXM',\n phone: '+1721',\n },\n {\n name: 'Slovakia',\n iso2: 'SK',\n iso3: 'SVK',\n phone: '+421',\n },\n {\n name: 'Slovenia',\n iso2: 'SI',\n iso3: 'SVN',\n phone: '+386',\n },\n {\n name: 'Solomon Islands',\n iso2: 'SB',\n iso3: 'SLB',\n phone: '+677',\n },\n {\n name: 'Somalia',\n iso2: 'SO',\n iso3: 'SOM',\n phone: '+252',\n },\n {\n name: 'South Africa',\n iso2: 'ZA',\n iso3: 'ZAF',\n phone: '+27',\n },\n {\n name: 'South Georgia and the South Sandwich Islands',\n iso2: 'GS',\n iso3: 'SGS',\n phone: '+500',\n },\n {\n name: 'South Korea',\n iso2: 'KR',\n iso3: 'KOR',\n phone: '+82',\n },\n {\n name: 'South Sudan',\n iso2: 'SS',\n iso3: 'SSD',\n phone: '+211',\n },\n {\n name: 'Spain',\n iso2: 'ES',\n iso3: 'ESP',\n phone: '+34',\n },\n {\n name: 'Sri Lanka',\n iso2: 'LK',\n iso3: 'LKA',\n phone: '+94',\n },\n {\n name: 'Sudan',\n iso2: 'SD',\n iso3: 'SDN',\n phone: '+249',\n },\n {\n name: 'Suriname',\n iso2: 'SR',\n iso3: 'SUR',\n phone: '+597',\n },\n {\n name: 'Svalbard and Jan Mayen',\n iso2: 'SJ',\n iso3: 'SJM',\n phone: '+47',\n },\n {\n name: 'Swaziland',\n iso2: 'SZ',\n iso3: 'SWZ',\n phone: '+268',\n },\n {\n name: 'Sweden',\n iso2: 'SE',\n iso3: 'SWE',\n phone: '+46',\n },\n {\n name: 'Switzerland',\n iso2: 'CH',\n iso3: 'CHE',\n phone: '+41',\n },\n {\n name: 'Syria',\n iso2: 'SY',\n iso3: 'SYR',\n phone: '+963',\n },\n {\n name: 'Taiwan',\n iso2: 'TW',\n iso3: 'TWN',\n phone: '+886',\n },\n {\n name: 'Tajikistan',\n iso2: 'TJ',\n iso3: 'TJK',\n phone: '+992',\n },\n {\n name: 'Tanzania',\n iso2: 'TZ',\n iso3: 'TZA',\n phone: '+255',\n },\n {\n name: 'Thailand',\n iso2: 'TH',\n iso3: 'THA',\n phone: '+66',\n },\n {\n name: 'Togo',\n iso2: 'TG',\n iso3: 'TGO',\n phone: '+228',\n },\n {\n name: 'Tokelau',\n iso2: 'TK',\n iso3: 'TKL',\n phone: '+690',\n },\n {\n name: 'Tonga',\n iso2: 'TO',\n iso3: 'TON',\n phone: '+676',\n },\n {\n name: 'Trinidad and Tobago',\n iso2: 'TT',\n iso3: 'TTO',\n phone: '+1868',\n },\n {\n name: 'Tunisia',\n iso2: 'TN',\n iso3: 'TUN',\n phone: '+216',\n },\n {\n name: 'Turkey',\n iso2: 'TR',\n iso3: 'TUR',\n phone: '+90',\n },\n {\n name: 'Turkmenistan',\n iso2: 'TM',\n iso3: 'TKM',\n phone: '+993',\n },\n {\n name: 'Turks and Caicos',\n iso2: 'TC',\n iso3: 'TCA',\n phone: '+1649',\n },\n {\n name: 'Tuvalu',\n iso2: 'TV',\n iso3: 'TUV',\n phone: '+688',\n },\n {\n name: 'Uganda',\n iso2: 'UG',\n iso3: 'UGA',\n phone: '+256',\n },\n {\n name: 'Ukraine',\n iso2: 'UA',\n iso3: 'UKR',\n phone: '+380',\n },\n {\n name: 'United Arab Emirates',\n iso2: 'AE',\n iso3: 'ARE',\n phone: '+971',\n },\n {\n name: 'United Kingdom',\n iso2: 'GB',\n iso3: 'GBR',\n phone: '+44',\n phoneFormat: '**** *** ***',\n },\n {\n name: 'United States Minor Outlying Islands',\n iso2: 'UM',\n iso3: 'UMI',\n phone: '+1',\n },\n {\n name: 'United States of America',\n iso2: 'US',\n iso3: 'USA',\n phone: '+1',\n },\n {\n name: 'Uruguay',\n iso2: 'UY',\n iso3: 'URY',\n phone: '+598',\n },\n {\n name: 'Uzbekistan',\n iso2: 'UZ',\n iso3: 'UZB',\n phone: '+998',\n },\n {\n name: 'Vanuatu',\n iso2: 'VU',\n iso3: 'VUT',\n phone: '+678',\n },\n {\n name: 'Venezuela',\n iso2: 'VE',\n iso3: 'VEN',\n phone: '+58',\n },\n {\n name: 'Vietnam',\n iso2: 'VN',\n iso3: 'VNM',\n phone: '+84',\n },\n {\n name: 'Virgin Islands (U.S.)',\n iso2: 'VI',\n iso3: 'VIR',\n phone: '+1340',\n },\n {\n name: 'Wallis and Futuna',\n iso2: 'WF',\n iso3: 'WLF',\n phone: '+681',\n },\n {\n name: 'Western Sahara',\n iso2: 'EH',\n iso3: 'ESH',\n phone: '+212',\n },\n {\n name: 'Western Samoa',\n iso2: 'WS',\n iso3: 'WSM',\n phone: '+685',\n },\n {\n name: 'Yemen',\n iso2: 'YE',\n iso3: 'YEM',\n phone: '+967',\n },\n {\n name: 'Zambia',\n iso2: 'ZM',\n iso3: 'ZMB',\n phone: '+260',\n },\n {\n name: 'Zimbabwe',\n iso2: 'ZW',\n iso3: 'ZWE',\n phone: '+263',\n },\n];\nexport default countries;\n","import { Country } from '../../data/countries';\n\nexport const longestMatchingPrefix = (matchingCodes: readonly Country[]) =>\n matchingCodes.reduce((a, b) => (a.phone.length > b.phone.length ? a : b));\n","import countries from '../../data/countries';\nimport { longestMatchingPrefix } from '../longestMatchingPrefix';\n\nexport const findCountryByCode = (code: string) => {\n if (code.length === 2) {\n const matchingCodes = countries.filter((country) => code.toUpperCase() === country.iso2);\n if (matchingCodes.length > 0) {\n return longestMatchingPrefix(matchingCodes);\n }\n }\n return null;\n};\n","import { getCountryFromLocale } from '../../../common/locale';\nimport { findCountryByCode } from '../findCountryByCode';\n\n/**\n * Default phone code, the UK one `+44`\n */\nconst DEFAULT_PHONE_CODE = '+44';\n\n/**\n * Given a valid locale it returns the correspondent prefix if found or +44 otherwise.\n *\n * @param locale BCP 47 language tag of locale, e.g. `\"es-ES\"`.\n * @param countryCode Two-letter country code (ISO 3166-1 alpha-2).\n */\nexport const setDefaultPrefix = (locale: string, countryCode?: string) => {\n const country =\n (countryCode != null ? findCountryByCode(countryCode) : null) ??\n findCountryByCode(getCountryFromLocale(locale) ?? locale);\n return country?.phone ?? DEFAULT_PHONE_CODE;\n};\n","/**\n *\n * @param phoneNumber\n * @returns True if number that starts with \"+\" and contains a mix of digits and spaces with at least 4 digits.\n */\nexport const isValidPhoneNumber = (phoneNumber: string) =>\n /^\\+[\\d-\\s]+$/.test(phoneNumber) && (phoneNumber.match(/\\d+/g)?.join('').length ?? 0) >= 4;\n","import countries from '../../data/countries';\nimport { longestMatchingPrefix } from '../longestMatchingPrefix';\n\nexport const findCountryByPrefix = (number: string) => {\n if (number.length > 1) {\n const matchingCodes = countries.filter((country) => number.startsWith(country.phone));\n if (matchingCodes.length > 0) {\n return longestMatchingPrefix(matchingCodes);\n }\n }\n return null;\n};\n","import { findCountryByPrefix } from '../findCountryByPrefix';\n\nexport interface PhoneNumber {\n prefix: string | null;\n suffix: string;\n format?: string;\n}\n\n/**\n * @param number Phone number in a format like \"+447573135343\"\n */\nexport const explodeNumberModel = (number: string): PhoneNumber => {\n const country = findCountryByPrefix(number);\n return country\n ? {\n prefix: country.phone,\n suffix: number.slice(country.phone.length),\n format: country.phoneFormat,\n }\n : {\n prefix: null,\n suffix: number.slice(1),\n };\n};\n","const DIGITS_MATCH = /^$|^(\\+)|(\\d+)/g;\n\nexport const cleanNumber = (number: string) => number.match(DIGITS_MATCH)?.join('') ?? '';\n","export function sortArrayByProperty<T extends Record<PropertyKey, string>>(\n arrayToSort: readonly T[],\n property: keyof T,\n) {\n return [...arrayToSort].sort((a, b) => a[property].localeCompare(b[property]));\n}\n","import { Country } from '../../data/countries';\n\nexport const groupCountriesByPrefix = (countries: readonly Country[]) => {\n const countriesByPrefix = new Map<string, Country[]>();\n countries.forEach((country) => {\n countriesByPrefix.set(country.phone, [\n ...(countriesByPrefix.get(country.phone) ?? []),\n country,\n ]);\n });\n return countriesByPrefix;\n};\n","import type { Country } from '../../data/countries';\n\n// Reference fro localeCompare : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare\nconst filterCountriesByIso3 = (countries: readonly Country[], iso3Codes: readonly string[]) => {\n const iso3CodesSet = new Set(iso3Codes);\n return countries.filter((country) => !iso3CodesSet.has(country.iso3));\n};\n\n/**\n * Removes the countries sepecified in the second param\n *\n * @param countries list of country metadata objects\n * @param disabledCountries list of iso3 country codes to remove from the list\n */\nexport const excludeCountries = (\n countries: readonly Country[],\n disabledCountries: readonly string[],\n) => {\n return disabledCountries.length > 0\n ? filterCountriesByIso3(countries, disabledCountries)\n : countries;\n};\n","import { useState, useEffect, useMemo } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { Size, SizeLarge, SizeMedium, SizeSmall } from '../common';\nimport { useInputAttributes } from '../inputs/contexts';\nimport { SelectInput, SelectInputOptionContent, SelectInputProps } from '../inputs/SelectInput';\n\nimport messages from './PhoneNumberInput.messages';\nimport countries from './data/countries';\nimport {\n explodeNumberModel,\n isValidPhoneNumber,\n cleanNumber,\n setDefaultPrefix,\n sortArrayByProperty,\n groupCountriesByPrefix,\n excludeCountries,\n findCountryByPrefix,\n} from './utils';\nimport { PhoneNumber } from './utils/explodeNumberModel';\n\nconst ALLOWED_PHONE_CHARS = /^$|^[\\d-\\s]+$/;\n\nexport interface PhoneNumberInputProps {\n id?: string;\n 'aria-labelledby'?: string;\n required?: boolean;\n disabled?: boolean;\n initialValue?: string;\n onChange: (value: string | null, prefix: string) => void;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: () => void;\n countryCode?: string;\n searchPlaceholder?: string;\n size?: SizeSmall | SizeMedium | SizeLarge;\n placeholder?: string;\n selectProps?: Partial<SelectInputProps<string | null>>;\n /** List of iso3 codes of countries to remove from the list */\n disabledCountries?: readonly string[];\n}\n\nconst defaultSelectProps = {} satisfies PhoneNumberInputProps['selectProps'];\nconst defaultDisabledCountries = [] satisfies PhoneNumberInputProps['disabledCountries'];\n\nconst PhoneNumberInput = ({\n id,\n 'aria-labelledby': ariaLabelledByProp,\n required,\n disabled,\n initialValue,\n onChange,\n onFocus,\n onBlur,\n countryCode,\n searchPlaceholder = 'Prefix',\n size = Size.MEDIUM,\n placeholder,\n selectProps = defaultSelectProps,\n disabledCountries = defaultDisabledCountries,\n}: PhoneNumberInputProps) => {\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes['aria-labelledby'];\n\n const { locale, formatMessage } = useIntl();\n\n const [internalValue, setInternalValue] = useState<PhoneNumber>(() => {\n const cleanValue = initialValue ? cleanNumber(initialValue) : null;\n\n if (!cleanValue || !isValidPhoneNumber(cleanValue)) {\n return {\n prefix: setDefaultPrefix(locale, countryCode),\n suffix: '',\n };\n }\n\n return explodeNumberModel(cleanValue);\n });\n const [broadcastedValue, setBroadcastedValue] = useState<PhoneNumber | null>(null);\n\n const [suffixDirty, setSuffixDirty] = useState(false);\n useEffect(() => {\n if (internalValue.suffix) {\n setSuffixDirty(true);\n }\n }, [internalValue.suffix]);\n\n const countriesByPrefix = useMemo(\n () =>\n groupCountriesByPrefix(\n sortArrayByProperty(excludeCountries(countries, disabledCountries), 'iso3'),\n ),\n [disabledCountries],\n );\n\n const onSuffixChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const suffix = event.target.value;\n if (ALLOWED_PHONE_CHARS.test(suffix)) {\n setInternalValue((prev) => ({ ...prev, suffix }));\n }\n };\n\n const onPaste: React.ClipboardEventHandler<HTMLInputElement> = (event) => {\n if (!event.nativeEvent.clipboardData) {\n return;\n }\n\n const pastedValue = (event.nativeEvent.clipboardData.getData('text/plain') || '').replace(\n /(\\s|-)+/g,\n '',\n );\n const pastedNumber = explodeNumberModel(pastedValue);\n\n if (\n pastedNumber.prefix != null &&\n countriesByPrefix.has(pastedNumber.prefix) &&\n ALLOWED_PHONE_CHARS.test(pastedNumber.suffix)\n ) {\n setInternalValue(pastedNumber);\n }\n };\n\n useEffect(() => {\n if (broadcastedValue === null) {\n setBroadcastedValue(internalValue);\n return;\n }\n\n const internalPhoneNumber = `${internalValue.prefix ?? ''}${internalValue.suffix}`;\n const broadcastedPhoneNumber = `${broadcastedValue.prefix ?? ''}${broadcastedValue.suffix}`;\n\n if (internalPhoneNumber === broadcastedPhoneNumber) {\n return;\n }\n\n const newValue = isValidPhoneNumber(internalPhoneNumber)\n ? cleanNumber(internalPhoneNumber)\n : null;\n\n onChange(\n newValue,\n internalValue.prefix ?? '', // TODO: Allow `null` in public API\n );\n setBroadcastedValue(internalValue);\n }, [onChange, broadcastedValue, internalValue]);\n\n return (\n <div\n role=\"group\"\n {...inputAttributes}\n aria-labelledby={ariaLabelledBy}\n className=\"tw-telephone\"\n >\n <div className=\"tw-telephone__country-select\">\n <SelectInput\n placeholder={formatMessage(messages.selectInputPlaceholder)}\n items={[...countriesByPrefix].map(([prefix, countries]) => ({\n type: 'option',\n value: prefix,\n filterMatchers: [\n prefix,\n ...countries.map((country) => country.name),\n ...countries.map((country) => country.iso3),\n ],\n }))}\n value={internalValue.prefix}\n renderValue={(prefix, withinTrigger) => (\n <SelectInputOptionContent\n title={prefix}\n note={\n withinTrigger\n ? undefined\n : countriesByPrefix\n .get(prefix)\n ?.map((country) => country.iso3)\n .join(', ')\n }\n />\n )}\n filterable\n filterPlaceholder={searchPlaceholder}\n disabled={disabled}\n size={size}\n onChange={(prefix) => {\n const country = prefix != null ? findCountryByPrefix(prefix) : null;\n setInternalValue((prev) => ({ ...prev, prefix, format: country?.phoneFormat }));\n }}\n onClose={() => {\n if (suffixDirty) {\n onBlur?.();\n }\n }}\n {...selectProps}\n />\n </div>\n <div className=\"tw-telephone__number-input\">\n <div className={`input-group input-group-${size}`}>\n <input\n id={id}\n autoComplete=\"tel-national\"\n name=\"phoneNumber\"\n inputMode=\"numeric\"\n value={internalValue.suffix}\n className=\"form-control\"\n disabled={disabled}\n required={required}\n placeholder={placeholder}\n onChange={onSuffixChange}\n onPaste={onPaste}\n onFocus={onFocus}\n onBlur={() => onBlur?.()}\n />\n </div>\n </div>\n </div>\n );\n};\n\nexport default PhoneNumberInput;\n","import classnames from 'classnames';\n\nexport type ProgressProps = {\n className?: string;\n id: string;\n progress: { value: number; max: number };\n};\n\nconst Progress = ({ className, id, progress }: ProgressProps) => {\n return (\n <progress id={id} className={classnames('np-progress d-block', className)} {...progress}>\n {Math.floor((progress.value / progress.max) * 100)}%\n </progress>\n );\n};\n\nexport default Progress;\n","import { useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\n\nimport Body from '../body';\nimport { Typography } from '../common';\nimport Progress from '../progress';\nimport Title from '../title/Title';\n\nexport type ProgressBarProps = {\n className?: string;\n description?: string;\n id: string;\n title: string;\n progress: { value: number; max: number };\n textEnd: string;\n};\n\nconst ProgressBar = ({\n className,\n description,\n id,\n title,\n progress,\n textEnd,\n}: ProgressBarProps) => {\n const { isModern } = useTheme();\n return (\n <div className={classNames('np-progress-bar', className)}>\n <label className=\"np-progress-bar__title m-b-1\" htmlFor={id}>\n <Title\n type={Typography.TITLE_BODY}\n className={isModern ? `m-b-1 text-primary` : `text-primary`}\n >\n {title}\n </Title>\n {description && <Body>{description}</Body>}\n </label>\n <Progress id={id} progress={progress} />\n <Body\n as=\"p\"\n type={Typography.BODY_DEFAULT_BOLD}\n className=\"d-flex justify-content-end text-primary m-b-0\"\n >\n {textEnd}\n </Body>\n </div>\n );\n};\n\nexport default ProgressBar;\n","import classNames from 'classnames';\nimport React, { FunctionComponent, ReactNode, useState, useEffect, useMemo } from 'react';\n\nimport { PromoCardProps } from './PromoCard';\nimport PromoCardContext from './PromoCardContext';\n\nexport type AriaRoleRadioGroup = 'radiogroup';\n\nexport interface PromoCardGroupProps {\n /**\n * Optional class name(s) to add to the group container.\n */\n className?: string;\n /**\n * The PromoCard components to display inside the group.\n */\n children: ReactNode;\n /**\n * The default checked for the group.\n */\n defaultChecked?: string;\n /**\n * Optional ID to add to the group container.\n */\n id?: string;\n /**\n * Whether the group is disabled or not.\n */\n isDisabled?: boolean;\n /**\n * Optional label to display above the group.\n */\n label?: string;\n /**\n * Optional function to call when the group value changes.\n */\n onChange?: (value: string) => void;\n /**\n * Optional ID to add to the group container for testing purposes.\n */\n testId?: string;\n}\n\n/**\n * PromoCardGroup component.\n *\n * A PromoCardGroup is a container for PromoCard components that allows the user to select one or more\n * cards from a group. It can be used to display a set of related options, and can be customized with\n * various props to suit different use cases.\n *\n * @param {ReactNode} children - The PromoCard components to display inside the group.\n * @param {string} className - Optional class name(s) to add to the group container.\n * @param {string} defaultChecked - The default value for the group.\n * @param {string} id - Optional ID to add to the group container.\n * @param {boolean} isDisabled=false - Whether the group is disabled or not.\n * @param {string} label - Optional label to display above the group.\n * @param {Function} onChange - Optional function to call when the group value changes.\n * @param {string} testId - Optional ID to add to the group container for testing purposes.\n * @returns {JSX.Element} - The PromoCardGroup component.\n */\nconst PromoCardGroup: FunctionComponent<PromoCardGroupProps> = ({\n children,\n className,\n defaultChecked = '',\n id,\n isDisabled = false,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange = () => {},\n testId,\n}) => {\n const [state, setState] = useState<string>(defaultChecked);\n const [containerRole, setContainerRole] = useState<string | null>(null);\n\n /**\n * The context value for the PromoCardGroup.\n *\n * The context value is an object that contains the current state of the\n * group, whether the group is disabled or not, and a function to call when\n * the group value changes. This value is used to provide context to child\n * PromoCard components, allowing them to interact with the group and update\n * its state.\n */\n const contextValue = useMemo(() => {\n const handleOnChange = (value: string) => {\n setState(value);\n onChange(value);\n };\n\n return { state, isDisabled, onChange: handleOnChange };\n }, [state, isDisabled, onChange]);\n\n const commonClasses = classNames(\n {\n 'np-CardGroup': true,\n 'is-disabled': isDisabled,\n },\n className,\n );\n\n const commonProps = {\n className: commonClasses,\n id,\n 'data-testid': testId,\n role: containerRole as AriaRoleRadioGroup | undefined, // Add the role attribute here\n };\n\n useEffect(() => {\n setState(defaultChecked);\n\n // Collect an array of types from the children PromoCard components\n const types =\n React.Children.map(children, (child) => {\n if (React.isValidElement<PromoCardProps>(child) && child.props.type) {\n return child.props.type;\n }\n return null;\n })?.filter((type): type is 'radio' | 'checkbox' => type !== null && type !== undefined) ?? [];\n\n // Check if all types are the same\n const allTypesAreTheSame = types.every((type) => type === types[0]);\n\n // If all types are the same and the type is 'radio', set the container role\n setContainerRole(allTypesAreTheSame && types[0] === 'radio' ? 'radiogroup' : null);\n }, [defaultChecked, children]);\n\n return (\n <PromoCardContext.Provider value={contextValue}>\n <div {...commonProps}>{children}</div>\n </PromoCardContext.Provider>\n );\n};\n\nexport default React.memo(PromoCardGroup);\n","import { createContext, PropsWithChildren } from 'react';\n\nimport { DEFAULT_LOCALE } from '../../common/locale';\n\nexport const LanguageContext = createContext<string>(DEFAULT_LOCALE);\n\nexport type LanguageProviderProps = PropsWithChildren<{ locale: string }>;\n\nexport const LanguageProvider = ({ locale, children }: LanguageProviderProps) => {\n return <LanguageContext.Provider value={locale}>{children}</LanguageContext.Provider>;\n};\n","import { IntlProvider, ResolvedIntlConfig } from 'react-intl';\n\nimport { adjustLocale, DEFAULT_LOCALE, getDirectionFromLocale } from '../common';\nimport en from '../i18n/en.json';\n\nimport { DirectionProvider } from './direction';\nimport { LanguageProvider } from './language';\n\nexport interface ProviderProps {\n i18n: Pick<ResolvedIntlConfig, 'locale' | 'messages'> &\n Partial<Pick<ResolvedIntlConfig, 'defaultRichTextElements'>>;\n children?: React.ReactNode;\n}\n\nexport default function Provider({ i18n, children }: ProviderProps) {\n const { locale, messages, defaultRichTextElements } = i18n;\n const adjustedLocale = adjustLocale(locale);\n let intlConfig;\n\n if (adjustedLocale === null) {\n // eslint-disable-next-line no-console\n console.warn(\n `Unsupported locale value was provided: '${locale}', defaulting to '${DEFAULT_LOCALE}'`,\n );\n\n intlConfig = { locale: DEFAULT_LOCALE, messages: { ...en, ...messages } };\n } else {\n intlConfig = { locale: adjustedLocale, messages };\n }\n\n return (\n <DirectionProvider direction={getDirectionFromLocale(locale)}>\n <LanguageProvider locale={locale}>\n <IntlProvider\n defaultLocale={DEFAULT_LOCALE}\n locale={intlConfig.locale}\n messages={intlConfig.messages}\n defaultRichTextElements={defaultRichTextElements}\n >\n {children}\n </IntlProvider>\n </LanguageProvider>\n </DirectionProvider>\n );\n}\n","import classNames from 'classnames';\n\nexport interface RadioButtonProps<T extends string | number = string> {\n id?: string;\n name: string;\n checked?: boolean;\n onChange?: (value: T) => void;\n disabled?: boolean;\n value?: T;\n readOnly?: boolean;\n}\n\nexport default function RadioButton<T extends string | number = ''>({\n id,\n value = '' as T,\n name,\n checked,\n onChange,\n disabled,\n readOnly,\n}: RadioButtonProps<T>) {\n return (\n <>\n <input\n type=\"radio\"\n className=\"sr-only\"\n id={id}\n value={value}\n name={name}\n checked={checked}\n disabled={disabled || readOnly}\n onChange={() => {\n if (!checked) {\n onChange?.(value);\n }\n }}\n />\n <span className={classNames('tw-radio-button', { checked, disabled: disabled || readOnly })}>\n <span className=\"tw-radio-check\" />\n </span>\n </>\n );\n}\n","import { useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\n\nimport Body from '../body/Body';\nimport { Typography } from '../common';\nimport RadioButton from '../common/RadioButton';\nimport { RadioButtonProps } from '../common/RadioButton/RadioButton';\n\nexport interface RadioProps<T extends string | number = string> extends RadioButtonProps<T> {\n avatar?: React.ReactNode;\n label: string;\n secondary?: string;\n className?: string;\n}\n\nexport default function Radio<T extends string | number = ''>({\n label,\n id,\n disabled,\n className,\n avatar,\n secondary,\n ...otherProps\n}: RadioProps<T>) {\n const { isModern } = useTheme();\n return (\n <div\n className={classNames(\n 'radio np-radio',\n {\n 'radio-lg': secondary,\n disabled: isModern && disabled,\n },\n className,\n )}\n >\n <label className={classNames({ disabled })} htmlFor={id}>\n <span className={classNames(isModern ? 'm-r-2' : 'p-r-2', 'np-radio-button')}>\n <RadioButton id={id} disabled={disabled} {...otherProps} />\n </span>\n <Body\n as=\"span\"\n type={secondary ? Typography.BODY_LARGE_BOLD : Typography.BODY_LARGE}\n className=\"np-radio__text\"\n >\n {label}\n {secondary && (\n <Body as=\"span\" className={classNames({ secondary: !isModern })}>\n {secondary}\n </Body>\n )}\n </Body>\n {avatar && <span className=\"np-radio__avatar m-l-auto\">{avatar}</span>}\n </label>\n </div>\n );\n}\n","import { useState } from 'react';\n\nimport Radio from '../radio';\nimport { RadioProps } from '../radio/Radio';\nimport { useInputAttributes } from '../inputs/contexts';\n\nexport type RadioGroupRadio<T extends string | number = string> = Omit<\n RadioProps<T>,\n 'name' | 'checked' | 'onChange' | 'className'\n>;\n\nexport interface RadioGroupProps<T extends string | number = string> {\n name: string;\n radios: readonly RadioGroupRadio<T>[];\n selectedValue?: T; // TODO: `NoInfer<T>` from TypeScript 5.4\n onChange: NonNullable<RadioProps<T>['onChange']>;\n}\n\nexport default function RadioGroup<T extends string | number = never>({\n name,\n radios,\n selectedValue: controlledValue,\n onChange,\n}: RadioGroupProps<T>) {\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n\n const [uncontrolledValue, setUncontrolledValue] = useState(controlledValue);\n\n return radios.length > 0 ? (\n <div role=\"radiogroup\" {...inputAttributes}>\n {radios.map(({ value = '' as T, ...restProps }, index) => (\n <Radio\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n {...restProps}\n name={name}\n value={value}\n checked={value === uncontrolledValue}\n onChange={(nextValue) => {\n setUncontrolledValue(nextValue);\n onChange(nextValue);\n }}\n />\n ))}\n </div>\n ) : null;\n}\n","import Option from '../common/Option';\nimport RadioButton from '../common/RadioButton';\nimport { RadioButtonProps } from '../common/RadioButton/RadioButton';\n\nexport interface RadioOptionProps<T extends string | number = string>\n extends Required<Pick<RadioButtonProps<T>, 'id' | 'name' | 'onChange'>>,\n Omit<RadioButtonProps<T>, 'readOnly' | 'id' | 'name' | 'onChange'> {\n 'aria-label'?: string;\n media?: React.ReactNode;\n title: React.ReactNode;\n content?: React.ReactNode;\n complex?: boolean;\n showMediaCircle?: boolean;\n showMediaAtAllSizes?: boolean;\n isContainerAligned?: boolean;\n}\n\nfunction RadioOption<T extends string | number = ''>({\n 'aria-label': ariaLabel,\n media,\n title,\n content,\n id,\n name,\n checked,\n onChange,\n complex,\n disabled,\n value = '' as T,\n showMediaCircle,\n showMediaAtAllSizes,\n isContainerAligned,\n}: RadioOptionProps<T>) {\n return (\n <Option\n aria-label={ariaLabel}\n media={media}\n title={title}\n content={content}\n name={name}\n complex={complex}\n disabled={disabled}\n showMediaCircle={showMediaCircle}\n showMediaAtAllSizes={showMediaAtAllSizes}\n isContainerAligned={isContainerAligned}\n button={\n <RadioButton\n id={id}\n name={name}\n checked={checked}\n disabled={disabled}\n value={value}\n onChange={onChange}\n />\n }\n />\n );\n}\n\nexport default RadioOption;\n","import classNames from 'classnames';\nimport { PropsWithChildren } from 'react';\n\nimport { CommonProps } from '../common';\n\ntype SectionProps = PropsWithChildren<\n CommonProps & {\n withHorizontalPadding?: boolean;\n }\n>;\n\n/**\n *\n * Neptune Web: https://transferwise.github.io/neptune-web/components/content/Section\n *\n */\nconst Section = ({ children, className, withHorizontalPadding = false }: SectionProps) => {\n return (\n <div\n className={classNames('np-section', className, {\n 'np-section--with-horizontal-padding': withHorizontalPadding,\n })}\n >\n {children}\n </div>\n );\n};\n\nexport default Section;\n","import classNames from 'classnames';\nimport { createRef, useEffect, useRef, useState } from 'react';\n\nimport Body from '../body';\nimport { Typography } from '../common';\n\ntype SegmentBase = { id: string; label: string; value: string };\n\ntype Segment = SegmentBase & { controls?: never };\ntype SegmentWithControls = SegmentBase & { controls: string };\n\nexport type Segments = readonly Segment[] | readonly SegmentWithControls[];\n\ntype SegmentedControlPropsBase = {\n name: string;\n value: string;\n mode: 'input' | 'view';\n onChange: (value: string) => void;\n};\n\ntype SegmentedControlViewProps = {\n mode: 'view';\n segments: readonly SegmentWithControls[];\n};\n\ntype SegmentedControlInputProps = {\n mode: 'input';\n segments: readonly Segment[];\n};\n\nexport type SegmentedControlProps = SegmentedControlPropsBase &\n (SegmentedControlViewProps | SegmentedControlInputProps);\n\nconst SegmentedControl = ({\n name,\n value,\n mode = 'input',\n segments,\n onChange,\n}: SegmentedControlProps) => {\n const [animate, setAnimate] = useState(false);\n\n const segmentsRef = useRef<HTMLDivElement>(null);\n\n if (segments.length > 3) {\n throw new Error(\n 'SegmentedControl only supports up to 3 segments. Please refer to: https://wise.design/components/segmented-control',\n );\n }\n\n const segmentsWithRefs = segments.map((segment) => ({\n ...segment,\n ref: createRef<HTMLLabelElement | HTMLButtonElement>(),\n }));\n\n const updateSegmentPosition = () => {\n const selectedSegmentRef = segmentsWithRefs.find((segment) => segment.value === value)?.ref;\n\n // We grab the active segments style object from the ref\n // and set the css variables to the selected segments width and x position.\n // This is so we can animate the highlight to the selected segment\n if (selectedSegmentRef?.current && segmentsRef.current) {\n const { style } = segmentsRef.current;\n style.setProperty('--segment-highlight-width', `${selectedSegmentRef.current.offsetWidth}px`);\n style.setProperty('--segment-highlight-x', `${selectedSegmentRef.current.offsetLeft}px`);\n }\n };\n\n useEffect(() => {\n setAnimate(true);\n updateSegmentPosition();\n\n const handleWindowSizeChange = () => {\n setAnimate(false);\n updateSegmentPosition();\n };\n\n window.addEventListener('resize', handleWindowSizeChange);\n return () => {\n window.removeEventListener('resize', handleWindowSizeChange);\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [segmentsWithRefs, value]);\n\n return (\n <div\n ref={segmentsRef}\n data-testid=\"segmented-control\"\n className={classNames('segmented-control', {\n 'segmented-control--input': mode === 'input',\n })}\n >\n <div\n className={classNames('segmented-control__segments', {\n 'segmented-control__segments--no-animate': !animate,\n })}\n role={mode !== 'input' ? 'tablist' : undefined}\n >\n {segmentsWithRefs.map((segment) => {\n const onSelect = () => {\n setAnimate(true);\n onChange(segment.value);\n };\n return mode === 'input' ? (\n <label\n ref={segment.ref as React.MutableRefObject<HTMLLabelElement | null>}\n key={segment.id}\n htmlFor={segment.id}\n className={classNames('segmented-control__segment', {\n 'segmented-control__selected-segment': value === segment.value,\n })}\n >\n <input\n type=\"radio\"\n className=\"segmented-control__radio-input\"\n id={segment.id}\n name={name}\n value={segment.value}\n checked={value === segment.value}\n onChange={onSelect}\n />\n <Body\n className=\"segmented-control__text\"\n as=\"span\"\n type={\n value === segment.value ? Typography.BODY_DEFAULT_BOLD : Typography.BODY_DEFAULT\n }\n >\n {segment.label}\n </Body>\n </label>\n ) : (\n <button\n ref={segment.ref as React.MutableRefObject<HTMLButtonElement | null>}\n key={segment.id}\n type=\"button\"\n role=\"tab\"\n id={segment.id}\n aria-controls={segment.controls}\n aria-selected={value === segment.value}\n className={classNames('segmented-control__segment', 'segmented-control__button', {\n 'segmented-control__selected-segment': value === segment.value,\n })}\n onClick={onSelect}\n >\n <Body\n as=\"span\"\n className=\"segmented-control__text\"\n type={\n value === segment.value ? Typography.BODY_DEFAULT_BOLD : Typography.BODY_DEFAULT\n }\n >\n {segment.label}\n </Body>\n </button>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default SegmentedControl;\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n searchPlaceholder: {\n id: 'neptune.Select.searchPlaceholder',\n defaultMessage: 'Search...',\n },\n});\n","import { IdIconProps } from '@transferwise/icons';\nimport { Flag } from '@wise/art';\nimport classNames from 'classnames';\nimport { cloneElement, ReactElement, ReactNode } from 'react';\n\nimport Body from '../../body';\nimport { Typography } from '../../common';\n\nexport type Props<T> = {\n label: ReactNode;\n value: T;\n currency?: string;\n note?: ReactNode;\n secondary?: ReactNode;\n icon?: ReactNode;\n /** @deprecated */\n classNames?: Record<string, string>;\n selected?: boolean;\n};\n\nfunction Option<T>({\n label,\n currency = '',\n note = '',\n secondary = '',\n icon,\n selected = false,\n}: Props<T>) {\n const iconElement = icon\n ? cloneElement(icon as ReactElement<IdIconProps>, {\n size: 24,\n className: 'tw-icon',\n })\n : currency && <Flag code={currency.toLowerCase()} intrinsicSize={24} />;\n\n const titleAndNoteElement = (\n <Body as=\"span\" type={Typography.BODY_LARGE} className={selected ? 'text-ellipsis' : undefined}>\n {label}\n {note && (\n <Body as=\"span\" className=\"m-l-1\">\n {note}\n </Body>\n )}\n </Body>\n );\n\n const secondaryElement = secondary && (\n <Body className={classNames(selected && 'text-ellipsis')}>{secondary}</Body>\n );\n\n return iconElement ? (\n <div className=\"d-flex np-option-content\">\n <div className={`d-flex flex-column${selected ? ' justify-content-center' : ''}`}>\n {iconElement}\n </div>\n <div className=\"d-flex flex-column justify-content-center\">\n {titleAndNoteElement}\n {secondaryElement}\n </div>\n </div>\n ) : (\n <>\n {iconElement}\n {titleAndNoteElement}\n {secondaryElement}\n </>\n );\n}\n\nexport default Option;\n","import { Search as SearchIcon } from '@transferwise/icons';\nimport classnames from 'classnames';\nimport { forwardRef, InputHTMLAttributes } from 'react';\n\nimport { Input } from '../../inputs/Input';\n\ntype Props = {\n id?: string;\n classNames?: Record<string, string>;\n focusedOptionId?: string;\n} & Pick<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onClick' | 'placeholder' | 'value'>;\n\nconst SearchBox = forwardRef<HTMLInputElement, Props>(\n (\n {\n id,\n classNames = {},\n focusedOptionId,\n onChange,\n onClick,\n placeholder = undefined,\n value = '',\n },\n reference,\n ) => {\n const style = (className: string) => classNames[className] || className;\n return (\n <li className={style('border-bottom')}>\n <a className={`${style('np-select-filter-link')} ${style('p-a-0')}`}>\n <div className={style('input-group')}>\n <span className={classnames('input-group-addon', 'input-group-addon--search')}>\n <SearchIcon\n className={classnames(style('tw-icon'), style('tw-icon-search'))}\n size={24}\n />\n </span>\n <Input\n ref={reference}\n id={id}\n role=\"searchbox\"\n inputMode=\"search\"\n className={classnames(style('np-select-filter'))}\n placeholder={placeholder}\n value={value}\n spellCheck=\"false\"\n aria-activedescendant={focusedOptionId}\n onChange={onChange}\n onClick={onClick}\n />\n </div>\n </a>\n </li>\n );\n },\n);\n\nexport default SearchBox;\n","import { useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { useState, useEffect, useRef, useMemo, useId } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Button from '../button';\nimport Chevron from '../chevron';\nimport { Position } from '../common';\nimport BottomSheet from '../common/bottomSheet';\nimport { stopPropagation } from '../common/domHelpers';\nimport { useLayout } from '../common/hooks';\nimport Panel from '../common/panel';\nimport Drawer from '../drawer';\nimport { useInputAttributes } from '../inputs/contexts';\n\nimport messages from './Select.messages';\nimport Option from './option';\nimport SearchBox from './searchBox';\n\nconst DEFAULT_SEARCH_VALUE = '';\nconst DEFAULT_OPTIONS_PAGE_SIZE = 1000;\n\nconst includesString = (string1, string2) => string1.toLowerCase().includes(string2.toLowerCase());\n\nfunction defaultFilterFunction(option, searchValue) {\n if (isPlaceholderOption(option)) {\n return true;\n }\n const { label, note, secondary, currency, searchStrings } = option;\n return (\n (!!label && includesString(label, searchValue)) ||\n (!!note && includesString(note, searchValue)) ||\n (!!secondary && includesString(secondary, searchValue)) ||\n (!!currency && includesString(currency, searchValue)) ||\n (!!searchStrings && searchStrings.some((string) => includesString(string, searchValue)))\n );\n}\n\nfunction isActionableOption(option) {\n return !option.header && !option.separator && !option.disabled;\n}\n\nfunction isHeaderOption(option) {\n return option != null && 'header' in option;\n}\n\nfunction isSeparatorOption(option) {\n return option != null && 'separator' in option;\n}\n\nfunction clamp(from, to, value) {\n return Math.max(Math.min(to, value), from);\n}\n\n/**\n * No option or placeholder option is selected\n */\nconst DEFAULT_SELECTED_OPTION = null;\n\nfunction isPlaceholderOption(option) {\n return option === DEFAULT_SELECTED_OPTION || 'placeholder' in option;\n}\n\nfunction isSearchableOption(option) {\n return !isHeaderOption(option) && !isSeparatorOption(option) && !isPlaceholderOption(option);\n}\n\nconst getUniqueIdForOption = (parentId = '', option) => {\n if (option == null) {\n return undefined;\n }\n\n const uniqueOptionId = option.value || (option.label?.replace(/\\s/g, '') ?? '');\n\n return `option-${parentId}-${uniqueOptionId}`;\n};\n\n/**\n * @deprecated Use `SelectInput` instead (https://neptune.wise.design/blog/2023-11-28-adopting-our-new-selectinput)\n */\nexport default function Select({\n placeholder,\n id,\n required,\n disabled,\n inverse,\n dropdownWidth,\n size,\n block,\n selected,\n search,\n onChange,\n onFocus,\n onBlur,\n options: defaultOptions,\n onSearchChange,\n searchValue: initSearchValue,\n searchPlaceholder,\n // eslint-disable-next-line unicorn/prevent-abbreviations\n classNames: classNamesProp,\n dropdownUp,\n dropdownProps,\n buttonProps,\n}) {\n const inputAttributes = useInputAttributes();\n\n const { formatMessage } = useIntl();\n const { isModern } = useTheme();\n const s = (className) => classNamesProp[className] || className;\n const [open, setOpen] = useState(false);\n const [searchValue, setSearchValue] = useState(DEFAULT_SEARCH_VALUE);\n const [keyboardFocusedOptionIndex, setKeyboardFocusedOptionIndex] = useState(null);\n const keyboardFocusedReference = useRef();\n const previousKeyboardFocusedOptionIndex = useRef();\n const [numberOfOptionsShown, setNumberOfOptionsShown] = useState(DEFAULT_OPTIONS_PAGE_SIZE);\n const searchBoxReference = useRef(null);\n const selectReference = useRef(null);\n const dropdownButtonReference = useRef(null);\n const optionsListReference = useRef(null);\n const isSearchEnabled = !!onSearchChange || !!search;\n const isDropdownAutoWidth = dropdownWidth == null;\n\n const options = useMemo(() => {\n if (!search || !searchValue) {\n return defaultOptions;\n }\n\n return defaultOptions.filter(isSearchableOption).filter((option) => {\n if (typeof search === 'function') {\n return search(option, searchValue);\n }\n return defaultFilterFunction(option, searchValue);\n });\n }, [defaultOptions, search, searchValue]);\n\n const selectableOptions = useMemo(() => options.filter(isActionableOption), [options]);\n const focusedOption = selectableOptions[keyboardFocusedOptionIndex];\n\n const fallbackButtonId = useId();\n const computedId = id || inputAttributes.id || fallbackButtonId;\n const listboxId = `${computedId}-listbox`;\n const searchBoxId = `${computedId}-searchbox`;\n\n const { isMobile } = useLayout();\n\n useEffect(() => {\n let cancelled;\n\n if (keyboardFocusedOptionIndex >= 0) {\n requestAnimationFrame(() => {\n if (!cancelled) {\n if (isSearchEnabled) {\n keyboardFocusedReference.current?.scrollIntoView?.({ block: 'center' });\n } else {\n keyboardFocusedReference.current?.focus();\n }\n }\n });\n\n return () => {\n cancelled = true;\n };\n }\n }, [keyboardFocusedOptionIndex, isSearchEnabled]);\n\n const handleOnClick = () => {\n setOpen(true);\n };\n\n const handleTouchStart = (event) => {\n if (event.currentTarget === event.target && open) {\n handleCloseOptions();\n }\n };\n\n const handleOnFocus = (event) => {\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleOnBlur = (event) => {\n const { nativeEvent } = event;\n if (nativeEvent) {\n const elementReceivingFocus = nativeEvent.relatedTarget;\n const select = event.currentTarget;\n if (select && elementReceivingFocus && select.contains(elementReceivingFocus)) {\n return;\n }\n }\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleSearchChange = (event) => {\n setNumberOfOptionsShown(DEFAULT_OPTIONS_PAGE_SIZE);\n setSearchValue(event.target.value);\n if (onSearchChange) {\n onSearchChange(event.target.value);\n }\n };\n\n const handleKeyDown = (event) => {\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n if (open) {\n moveFocusWithDifference(event.key === 'ArrowUp' ? -1 : 1);\n } else {\n setOpen(true);\n }\n stopPropagation(event);\n break;\n case ' ':\n if (event.target !== searchBoxReference.current) {\n if (open) {\n selectKeyboardFocusedOption();\n } else {\n setOpen(true);\n }\n stopPropagation(event);\n }\n break;\n case 'Enter':\n if (open) {\n selectKeyboardFocusedOption();\n } else {\n setOpen(true);\n }\n stopPropagation(event);\n break;\n case 'Escape':\n handleCloseOptions();\n stopPropagation(event);\n break;\n case 'Tab':\n if (open) {\n selectKeyboardFocusedOption();\n }\n break;\n default:\n break;\n }\n };\n\n function selectKeyboardFocusedOption() {\n if (keyboardFocusedOptionIndex != null && selectableOptions.length > 0) {\n selectOption(selectableOptions[keyboardFocusedOptionIndex]);\n }\n }\n\n function moveFocusWithDifference(difference) {\n const selectedOptionIndex = selectableOptions.reduce((optionIndex, current, index) => {\n if (optionIndex != null) {\n return optionIndex;\n }\n if (isOptionSelected(selected, current)) {\n return index;\n }\n return null;\n }, null);\n const previousFocusedIndex = previousKeyboardFocusedOptionIndex.current ?? -1;\n let indexToStartMovingFrom = previousFocusedIndex;\n if (previousFocusedIndex === -1) {\n if (selectedOptionIndex == null) {\n setKeyboardFocusedOptionIndex(0);\n } else {\n indexToStartMovingFrom = selectedOptionIndex;\n }\n }\n\n const unClampedNewIndex = indexToStartMovingFrom + difference;\n const newIndex = clamp(0, selectableOptions.length - 1, unClampedNewIndex);\n\n setKeyboardFocusedOptionIndex(newIndex);\n }\n\n useEffect(() => {\n if (open) {\n if (!isMobile || searchValue) {\n if (isSearchEnabled && searchBoxReference.current) {\n searchBoxReference.current.focus();\n }\n if (\n !isSearchEnabled &&\n optionsListReference.current &&\n (previousKeyboardFocusedOptionIndex.current == null ||\n Number.isNaN(previousKeyboardFocusedOptionIndex.current))\n ) {\n optionsListReference.current.focus();\n }\n }\n\n previousKeyboardFocusedOptionIndex.current = keyboardFocusedOptionIndex;\n } else {\n previousKeyboardFocusedOptionIndex.current = null;\n }\n }, [open, searchValue, isSearchEnabled, isMobile, keyboardFocusedOptionIndex]);\n\n const handleCloseOptions = () => {\n setOpen(false);\n setKeyboardFocusedOptionIndex(null);\n if (dropdownButtonReference.current) {\n dropdownButtonReference.current.focus();\n }\n };\n\n function createSelectHandlerForOption(option) {\n return (event) => {\n stopPropagation(event);\n selectOption(option);\n };\n }\n\n function selectOption(option) {\n onChange(isPlaceholderOption(option) ? DEFAULT_SELECTED_OPTION : option);\n handleCloseOptions();\n }\n\n function renderOptionsList({ className } = {}) {\n const dropdownClass = classNames(\n s('np-dropdown-menu'),\n {\n [s('np-dropdown-menu-desktop')]: !isMobile,\n [s(`np-dropdown-menu-${dropdownWidth}`)]: !isMobile && !isDropdownAutoWidth,\n },\n s(className),\n );\n\n const showPlaceholder = !required && !isSearchEnabled && Boolean(placeholder);\n return (\n <ul\n ref={optionsListReference}\n id={listboxId}\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-activedescendant={getUniqueIdForOption(id, selected)}\n tabIndex=\"-1\"\n className={dropdownClass}\n {...dropdownProps}\n >\n {showPlaceholder && <PlaceHolderOption />}\n {isSearchEnabled && (\n <SearchBox\n ref={searchBoxReference}\n id={searchBoxId}\n classNames={classNamesProp}\n value={initSearchValue || searchValue}\n placeholder={searchPlaceholder || formatMessage(messages.searchPlaceholder)}\n focusedOptionId={getUniqueIdForOption(id, focusedOption)}\n onChange={handleSearchChange}\n onClick={stopPropagation}\n />\n )}\n {options.slice(0, numberOfOptionsShown).map(renderOption)}\n {numberOfOptionsShown < options.length && <ShowMoreOption />}\n </ul>\n );\n }\n\n function ShowMoreOption() {\n function handleOnClick(event) {\n stopPropagation(event);\n setNumberOfOptionsShown(numberOfOptionsShown + DEFAULT_OPTIONS_PAGE_SIZE);\n }\n return (\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n <li\n className={classNames(s('clickable'), s('border-bottom'), s('show-more'))}\n onClick={handleOnClick}\n onKeyPress={handleOnClick}\n >\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a>...</a>\n </li>\n );\n }\n\n function PlaceHolderOption() {\n const placeholderOption = { placeholder };\n return (\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n <li\n className={classNames(s('clickable'), s('border-bottom'))}\n onClick={createSelectHandlerForOption(placeholderOption)}\n onKeyPress={createSelectHandlerForOption(placeholderOption)}\n >\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a>{placeholder}</a>\n </li>\n );\n }\n\n // eslint-disable-next-line react/prop-types\n function SeparatorOption() {\n return <li className={s('np-separator')} aria-hidden />;\n }\n\n // eslint-disable-next-line react/prop-types\n function HeaderOption({ children }) {\n return (\n <li // eslint-disable-line jsx-a11y/no-noninteractive-element-interactions\n className={classNames(s('np-dropdown-header'), s('np-text-title-group'))}\n onClick={stopPropagation}\n onKeyPress={stopPropagation}\n >\n {children}\n </li>\n );\n }\n\n function isOptionSelected(selected, option) {\n return selected?.value === option?.value;\n }\n\n const renderOption = (option, index) => {\n const separatorOption = option;\n if (isSeparatorOption(separatorOption) && separatorOption?.separator) {\n return <SeparatorOption key={index} />;\n }\n const headerOption = option;\n if (isHeaderOption(headerOption) && headerOption.header) {\n return <HeaderOption key={index}>{headerOption.header}</HeaderOption>;\n }\n\n const isActive = isOptionSelected(selected, option);\n const selectOption = option;\n const isFocusedWithKeyboard =\n !selectOption.disabled &&\n keyboardFocusedOptionIndex === getIndexWithoutHeadersForIndexWithHeaders(index);\n\n const className = classNames(\n s('np-dropdown-item'),\n selectOption.disabled ? [s('disabled')] : s('clickable'),\n {\n [s('active')]: isActive,\n [s('np-dropdown-item--focused')]: isFocusedWithKeyboard,\n },\n );\n\n const handleOnClick = selectOption.disabled\n ? stopPropagation\n : createSelectHandlerForOption(selectOption);\n\n return (\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n <li\n ref={isFocusedWithKeyboard ? keyboardFocusedReference : undefined}\n key={index}\n id={getUniqueIdForOption(id, option)}\n aria-selected={isActive}\n aria-disabled={option.disabled}\n role=\"option\"\n tabIndex=\"-1\"\n className={className}\n onClick={handleOnClick}\n onKeyPress={handleOnClick}\n >\n {/* @ts-expect-error options needs DOM refactoring */}\n <a disabled={selectOption.disabled}>\n <Option {...selectOption} classNames={classNamesProp} />\n </a>\n </li>\n );\n };\n\n function getIndexWithoutHeadersForIndexWithHeaders(index) {\n return options.reduce((sum, option, currentIndex) => {\n if (currentIndex < index && isActionableOption(option)) {\n return sum + 1;\n }\n return sum;\n }, 0);\n }\n\n const hasActiveOptions = !!defaultOptions.length;\n if (open && (initSearchValue || searchValue)) {\n if (hasActiveOptions && keyboardFocusedOptionIndex == null) {\n setKeyboardFocusedOptionIndex(0);\n }\n if (!hasActiveOptions && keyboardFocusedOptionIndex != null) {\n setKeyboardFocusedOptionIndex(null);\n }\n }\n\n return (\n <div // eslint-disable-line jsx-a11y/no-static-element-interactions\n ref={selectReference}\n className={classNames(s('np-select'), block ? s('btn-block') : null, s('btn-group'))}\n onKeyDown={handleKeyDown}\n onTouchMove={handleTouchStart}\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n >\n <Button\n ref={dropdownButtonReference}\n {...inputAttributes}\n id={computedId}\n block={block}\n size={size}\n htmlType=\"button\"\n className={classNames(\n s('np-dropdown-toggle'),\n s('np-text-body-large'),\n inverse ? s('np-dropdown-toggle-navy') : null,\n )}\n // reset Button's styles\n type={null}\n priority={null}\n disabled={disabled}\n aria-controls={listboxId}\n aria-expanded={open}\n onClick={handleOnClick}\n {...buttonProps}\n >\n {selected ? (\n <Option {...selected} classNames={classNamesProp} selected />\n ) : (\n <span className={s('form-control-placeholder')}>{placeholder}</span>\n )}\n <Chevron\n // disabled={disabled}\n className={classNames(\n s('tw-icon'),\n s('tw-chevron-up-icon'),\n s('tw-chevron'),\n s('bottom'),\n s('np-select-chevron'),\n )}\n />\n </Button>\n {isMobile ? (\n isSearchEnabled ? (\n <Drawer\n open={open}\n headerTitle={searchPlaceholder || formatMessage(messages.searchPlaceholder)}\n onClose={handleCloseOptions}\n >\n {renderOptionsList()}\n </Drawer>\n ) : (\n <BottomSheet open={open} onClose={handleCloseOptions}>\n {renderOptionsList({ className: isModern ? '' : 'p-a-1' })}\n </BottomSheet>\n )\n ) : (\n <Panel\n open={open}\n flip={false}\n altAxis\n anchorRef={selectReference}\n anchorWidth={isDropdownAutoWidth}\n position={dropdownUp ? Position.TOP : Position.BOTTOM}\n onClose={handleCloseOptions}\n >\n {renderOptionsList({ className: 'p-a-1' })}\n </Panel>\n )}\n </div>\n );\n}\n\nSelect.propTypes = {\n placeholder: PropTypes.string,\n id: PropTypes.string,\n required: PropTypes.bool,\n disabled: PropTypes.bool,\n inverse: PropTypes.bool,\n dropdownRight: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n dropdownWidth: PropTypes.oneOf(['sm', 'md', 'lg']),\n size: PropTypes.oneOf(['sm', 'md', 'lg']),\n block: PropTypes.bool,\n selected: PropTypes.shape({\n value: PropTypes.any.isRequired,\n label: PropTypes.node,\n icon: PropTypes.node,\n currency: PropTypes.string,\n note: PropTypes.node,\n secondary: PropTypes.node,\n }),\n /**\n * Search toggle\n * if `true` default search functionality being enabled (not case sensitive search in option labels & currency props)\n * if `function` you can define your own search function to implement custom search experience. This search function used while filtering the options array. The custom search function takes two parameters. First is the option the second is the keyword.\n */\n search: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n options: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.any,\n label: PropTypes.node,\n header: PropTypes.node,\n icon: PropTypes.node,\n currency: PropTypes.string,\n note: PropTypes.node,\n secondary: PropTypes.node,\n separator: PropTypes.bool,\n disabled: PropTypes.bool,\n searchStrings: PropTypes.arrayOf(PropTypes.string),\n }),\n ).isRequired,\n searchValue: PropTypes.string,\n searchPlaceholder: PropTypes.string,\n classNames: PropTypes.objectOf(PropTypes.string),\n dropdownUp: PropTypes.bool,\n buttonProps: PropTypes.object,\n dropdownProps: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n /**\n * To have full control of your search value and response use `onSearchChange` function combined with `searchValue` and custom filtering on the options array.\n * DO NOT USE TOGETHER WITH `search` PROPERTY\n */\n onSearchChange: PropTypes.func,\n};\n\nSelect.defaultProps = {\n id: undefined,\n placeholder: undefined,\n size: 'md',\n dropdownRight: null,\n dropdownWidth: null,\n inverse: false,\n required: false,\n disabled: false,\n block: true,\n selected: null,\n onFocus: null,\n onBlur: null,\n onSearchChange: undefined,\n search: false,\n searchValue: '',\n searchPlaceholder: undefined,\n classNames: {},\n dropdownUp: false,\n buttonProps: {},\n dropdownProps: {},\n};\n","import { Component, createRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\n\nimport ActionButton from '../actionButton';\nimport Body from '../body';\nimport { Theme, type ThemeDark, type ThemeLight } from '../common';\nimport { DirectionContext } from '../provider/direction';\nimport withNextPortal from '../withNextPortal/withNextPortal';\n\nconst CSS_TRANSITION_DURATION = 400;\n\nexport interface SnackbarProps {\n action?: {\n label: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n };\n text: React.ReactNode;\n /** @deprecated */\n theme?: ThemeLight | ThemeDark;\n timeout: number;\n timestamp: number;\n}\n\ninterface SnackbarState extends Pick<SnackbarProps, 'action' | 'text' | 'theme'> {\n visible: boolean;\n}\n\nexport class Snackbar extends Component<SnackbarProps, SnackbarState> {\n bodyRef = createRef<HTMLSpanElement>();\n timeout = 0;\n transitionTimeout = 0;\n\n constructor(props: SnackbarProps) {\n super(props);\n this.state = {\n visible: false,\n text: '',\n };\n }\n\n componentWillUnmount() {\n window.clearTimeout(this.timeout);\n window.clearTimeout(this.transitionTimeout);\n }\n\n shouldComponentUpdate(nextProps: SnackbarProps, nextState: SnackbarState) {\n if (!nextProps.text) {\n return false;\n }\n if (\n nextProps.timestamp === this.props.timestamp &&\n nextState.visible === this.state.visible &&\n nextState.text === this.state.text\n ) {\n return false;\n }\n\n return true;\n }\n\n setLeaveTimeout = () => {\n const { timeout } = this.props;\n\n this.timeout = window.setTimeout(() => {\n this.setState({ visible: false });\n }, timeout);\n };\n\n componentDidUpdate(previousProps: SnackbarProps) {\n const { action, text, timestamp } = this.props;\n\n if (!previousProps.text) {\n this.setState({ visible: true, action, text }, () => {\n this.setLeaveTimeout();\n });\n } else if (previousProps.timestamp !== timestamp) {\n window.clearTimeout(this.timeout);\n\n if (this.state.visible) {\n this.setState({ visible: false }, () => {\n this.transitionTimeout = window.setTimeout(() => {\n this.setState({ visible: true, action, text });\n this.setLeaveTimeout();\n }, CSS_TRANSITION_DURATION);\n });\n } else {\n this.setState({ visible: true, action, text });\n this.setLeaveTimeout();\n }\n }\n }\n\n render() {\n const { action, text, visible } = this.state;\n const { timeout } = this.props;\n\n return (\n <div className=\"snackbar\">\n <CSSTransition\n nodeRef={this.bodyRef}\n in={visible}\n classNames=\"snackbar__text-container\"\n timeout={{\n appear: 0,\n enter: timeout,\n exit: CSS_TRANSITION_DURATION,\n }}\n unmountOnExit\n >\n <Body ref={this.bodyRef} as=\"span\" className=\"snackbar__text\" aria-live=\"polite\">\n {text}\n {action ? (\n <ActionButton className=\"snackbar__text__action\" onClick={action.onClick}>\n {action.label}\n </ActionButton>\n ) : null}\n </Body>\n </CSSTransition>\n </div>\n );\n }\n}\n\nSnackbar.contextType = DirectionContext;\n\nexport default withNextPortal(Snackbar);\n","import { createContext } from 'react';\n\nimport { SnackbarProps } from './Snackbar';\n\nexport type SnackbarContextType = {\n createSnackbar: (props: Omit<SnackbarProps, 'timeout' | 'timestamp'>) => void;\n};\n\nexport const SnackbarContext = createContext<SnackbarContextType>({ createSnackbar: () => {} });\n\nexport const SnackbarConsumer = SnackbarContext.Consumer;\n","import { useMemo, useState } from 'react';\n\nimport SnackbarPortal, { SnackbarProps } from './Snackbar';\nimport { SnackbarContext } from './SnackbarContext';\n\nexport interface SnackbarProviderProps {\n timeout?: number;\n children?: React.ReactNode;\n}\n\nexport default function SnackbarProvider({ timeout = 4500, children }: SnackbarProviderProps) {\n const [state, setState] = useState<Omit<SnackbarProps, 'timeout'>>({\n text: '',\n timestamp: 0,\n });\n const { action, text, theme, timestamp } = state;\n\n return (\n <SnackbarContext.Provider\n value={useMemo(\n () => ({\n createSnackbar: ({ action, text, theme }) => {\n setState({ action, text, theme, timestamp: Date.now() });\n },\n }),\n [],\n )}\n >\n <SnackbarPortal\n action={action}\n text={text}\n timestamp={timestamp}\n timeout={timeout}\n theme={theme}\n />\n {children}\n </SnackbarContext.Provider>\n );\n}\n","import { Position } from '../common';\nimport SlidingPanel from '../slidingPanel';\nimport { FunctionComponent } from 'react';\n\nexport interface StickyProps {\n /** Optional prop for children components to be rendered inside the Sticky component. */\n children?: React.ReactNode;\n\n /** Optional props that determines if the Sticky component is open or closed. Default value is `true`. */\n open?: boolean;\n\n /** Optional props that specifies the position of the Sticky component on the screen. Can be either `top` or `bottom`. */\n position?: `${Position.TOP}` | `${Position.BOTTOM}`;\n\n /** Optional prop to specify the ID used for testing */\n testId?: string;\n}\n\n/**\n * ### Sticky Component\n *\n * `<Sticky />` is a component that renders a `<SlidingPanel />` with specified props.\n * It uses the `<SlidingPanel />` component to create a panel that can slide in and out of view,\n * based on the `open` prop. It can be positioned at the top or bottom of the container,\n * as specified by the `position` prop.\n *\n * @component\n * @param {ReactNode} children - Children content.\n * @param {boolean} open - Determines if the Sticky component is open or closed.\n * @param {('top'|'bottom')} position - Specifies the position.\n * @param {string} testId - ID used for testing.\n * @returns {JSX.Element} The `SlidingPanel` component with applied props.\n * @example\n * <Button onClick={() => setOpen(!open)}>Open Sticky</Button>\n * <Sticky open={open} position={'bottom'}>\n * <div>\n * <Button onClick={() => setOpen(!open)}>Close Sticky</Button>\n * </div>\n * </Sticky>\n */\nconst Sticky: FunctionComponent<StickyProps> = ({\n children,\n open = true,\n position = Position.BOTTOM,\n testId,\n}: StickyProps) => {\n return (\n <SlidingPanel\n testId={testId}\n open={open}\n position={position}\n slidingPanelPositionFixed\n showSlidingPanelBorder\n >\n {children}\n </SlidingPanel>\n );\n};\n\nexport default Sticky;\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n statusNotDone: {\n id: 'neptune.Summary.statusNotDone',\n defaultMessage: 'Item to do',\n },\n statusPending: {\n id: 'neptune.Summary.statusPending',\n defaultMessage: 'Item pending',\n },\n statusDone: {\n id: 'neptune.Summary.statusDone',\n defaultMessage: 'Item done',\n },\n});\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment */\nimport {\n CheckCircleFill as CheckCircleIcon,\n ClockFill as PendingCircleIcon,\n} from '@transferwise/icons';\nimport classNames from 'classnames';\nimport { ElementType, cloneElement, ReactNode } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Body from '../body';\nimport {\n Status,\n StatusDone,\n StatusNotDone,\n StatusPending,\n Size,\n Typography,\n Sentiment,\n} from '../common';\nimport Info, { InfoProps } from '../info';\nimport StatusIcon from '../statusIcon';\n\nimport messages from './Summary.messages';\nimport { Action, ActionOptions } from '../common/action/Action';\n\nconst BadgeIcons = {\n [Status.DONE]: CheckCircleIcon,\n [Status.PENDING]: PendingCircleIcon,\n};\n\nconst statusLabels = {\n [Status.NOT_DONE]: 'statusNotDone',\n [Status.DONE]: 'statusDone',\n [Status.PENDING]: 'statusPending',\n};\n\nconst statusMapping = {\n [Status.DONE]: Sentiment.POSITIVE,\n [Status.PENDING]: Sentiment.PENDING,\n};\n\nexport interface Props {\n /**\n * Action displayed at the bottom of the Summary\n */\n action?: ActionOptions;\n /**\n * Decides which html element should wrap the Summary\n */\n as?: ElementType;\n /**\n * Extra classes applied to Summary\n */\n className?: string;\n /**\n * @deprecated please use description instead\n */\n content?: ReactNode;\n /**\n * Summary description\n */\n description?: ReactNode;\n /**\n * @deprecated please use info instead\n */\n help?: {\n content: ReactNode;\n title?: ReactNode;\n };\n /**\n * Infos displayed on help Icon click inside Popover or Modal\n */\n info?: Pick<InfoProps, 'aria-label' | 'content' | 'onClick' | 'presentation' | 'title'>;\n /**\n * @deprecated please use icon instead\n */\n illustration?: ReactNode;\n /**\n * Main Summary Icon\n */\n icon?: ReactNode;\n /**\n * Decides the badge applied to Icon\n */\n status?: StatusNotDone | StatusDone | StatusPending;\n /**\n * Summary title\n */\n title: ReactNode;\n}\n\nconst Summary = ({\n action,\n as: Element = 'div',\n className,\n content = null,\n description = content,\n help,\n icon,\n illustration = null,\n info = help,\n status,\n title,\n}: Props) => {\n const intl = useIntl();\n\n let media = illustration;\n if (icon) {\n // @ts-expect-error if icon is present it has props and size prop\n const iconSize = icon?.props?.size as number;\n\n media =\n iconSize !== 24\n ? // @ts-expect-error we need icon to adjust it's size\n cloneElement(icon, { size: 24 })\n : icon;\n }\n // @ts-expect-error Badge can be null, this is handled in code\n const Badge = status && BadgeIcons[status];\n\n return (\n <Element\n className={classNames('np-summary d-flex align-items-start', className)}\n // @ts-expect-error we check whether `status` is not null before index `statusLabels` and `messages`\n aria-label={status && intl.formatMessage(messages[statusLabels[status]])}\n >\n <div className=\"np-summary__icon\">\n {media}\n {Badge && (\n <div>\n {/* @ts-expect-error it's okey to pass `undefined` into `sentiment` prop */}\n <StatusIcon size={Size.SMALL} sentiment={statusMapping[status]} />\n </div>\n )}\n </div>\n <div className=\"np-summary__body m-l-2\">\n <div className=\"np-summary__title d-flex\">\n <Body\n as=\"span\"\n role=\"heading\"\n aria-level={4}\n type={Typography.BODY_LARGE_BOLD}\n className=\"text-primary m-b-1\"\n >\n {title}\n </Body>\n {info && (\n <Info\n aria-label={info['aria-label']}\n className=\"m-l-1 hidden-xs\"\n content={info.content}\n presentation={info.presentation}\n size={Size.LARGE}\n title={info.title}\n onClick={info.onClick}\n />\n )}\n </div>\n\n {description && (\n <Body\n as=\"span\"\n type={Typography.BODY_DEFAULT}\n className=\"d-block np-summary__description\"\n >\n {description}\n </Body>\n )}\n {action && <Action action={action} className=\"np-summary__action\" />}\n </div>\n {info && (\n <Info\n aria-label={info['aria-label']}\n className=\"m-l-2 hidden-sm hidden-md hidden-lg hidden-xl\"\n content={info.content}\n presentation={info.presentation}\n size={Size.LARGE}\n title={info.title}\n onClick={info.onClick}\n />\n )}\n </Element>\n );\n};\n\nexport default Summary;\n","import { CheckCircleFill, CrossCircleFill } from '@transferwise/icons';\nimport { useTheme } from '@wise/components-theming';\nimport classnames from 'classnames';\nimport type { KeyboardEventHandler, MouseEvent } from 'react';\n\nimport type { CommonProps } from '../common';\nimport { useInputAttributes } from '../inputs/contexts';\n\nexport type SwitchProps = CommonProps & {\n /**\n * Used to describe the purpose of the switch. To be used if there is no external label (i.e. aria-labelledby is null)\n * @deprecated Use `Field` wrapper or the `aria-labelledby` attribute instead.\n */\n 'aria-label'?: string;\n /** A reference to a label that describes the purpose of the switch. Ignored if aria-label is provided */\n 'aria-labelledby'?: string;\n /** Whether the switch is checked or not */\n checked?: boolean;\n disabled?: boolean;\n /** ID to apply to the switch container */\n id?: string;\n /** Function called when the switch is toggled */\n onClick: (event?: MouseEvent<HTMLSpanElement>) => void;\n};\n\nconst Switch = (props: SwitchProps) => {\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n\n const { isModern } = useTheme();\n const {\n checked,\n className,\n id = inputAttributes.id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledbyProp,\n onClick,\n disabled,\n } = props;\n\n const handleKeyDown: KeyboardEventHandler = (event) => {\n if (event.key === ' ') {\n event.preventDefault();\n onClick();\n }\n };\n\n const returnIcon = () => {\n if (isModern) {\n return <span className=\"np-switch--thumb\" />;\n }\n\n if (checked) {\n return (\n <span className=\"np-switch--thumb\">\n <CheckCircleFill size={24} />\n </span>\n );\n }\n return (\n <span className=\"np-switch--thumb\">\n <CrossCircleFill size={24} />\n </span>\n );\n };\n\n const ariaLabelledby =\n (ariaLabel ? undefined : ariaLabelledbyProp) ?? inputAttributes['aria-labelledby'];\n\n return (\n <span\n className={classnames(\n 'np-switch',\n\n {\n 'np-switch--unchecked': !checked,\n 'np-switch--checked': checked,\n disabled,\n },\n className,\n )}\n tabIndex={0}\n role=\"switch\"\n aria-checked={checked}\n aria-label={ariaLabel}\n {...inputAttributes}\n aria-labelledby={ariaLabelledby}\n id={id}\n aria-disabled={disabled}\n onClick={!disabled ? onClick : undefined}\n onKeyDown={!disabled ? handleKeyDown : undefined}\n >\n {returnIcon()}\n <input type=\"checkbox\" checked={checked} readOnly />\n </span>\n );\n};\n\nexport default Switch;\n","import { MouseEvent } from 'react';\n\nimport Option from '../common/Option';\nimport Switch from '../switch';\n\nexport type SwitchOptionProps = {\n checked?: boolean;\n complex?: boolean;\n content?: React.ReactNode;\n disabled?: boolean;\n showMediaCircle?: boolean;\n showMediaAtAllSizes?: boolean;\n isContainerAligned?: boolean;\n id?: string;\n media?: React.ReactNode;\n onChange: (newValue: boolean) => void;\n title: React.ReactNode;\n 'aria-label': string;\n};\n\nconst stopPropagation = (event?: MouseEvent<HTMLSpanElement>) => {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n event.nativeEvent?.stopImmediatePropagation?.();\n }\n};\n\nconst SwitchOption = ({\n checked,\n complex,\n content,\n disabled,\n id,\n media,\n onChange,\n title,\n showMediaCircle,\n showMediaAtAllSizes,\n isContainerAligned,\n 'aria-label': ariaLabel,\n}: SwitchOptionProps) => {\n const sharedProps = {\n media,\n title,\n content,\n complex,\n disabled,\n showMediaCircle,\n showMediaAtAllSizes,\n isContainerAligned,\n };\n const toggle = (event?: MouseEvent<HTMLSpanElement>) => {\n stopPropagation(event);\n if (disabled) {\n return;\n }\n\n onChange(!checked);\n };\n\n return (\n <Option\n {...sharedProps}\n button={\n <Switch\n id={id}\n checked={checked}\n disabled={disabled}\n aria-label={ariaLabel}\n onClick={toggle}\n />\n }\n onClick={toggle}\n />\n );\n};\n\nexport default SwitchOption;\n","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { forwardRef, useEffect, useRef } from 'react';\n\nconst Tab = forwardRef(\n (\n { children, id, disabled, panelId, selected, onKeyDown, onClick, style, focusTab },\n reference,\n ) => {\n const firstUpdate = useRef(true);\n\n const checkFocus = () => {\n if (firstUpdate.current) {\n firstUpdate.current = false;\n return;\n }\n\n if (selected && focusTab) {\n focusTab();\n }\n };\n\n useEffect(() => {\n checkFocus();\n }, [selected]);\n\n return (\n <li\n ref={reference}\n className={classNames(\n 'tabs__tab',\n selected ? 'np-text-body-large-bold' : 'np-text-body-large',\n {\n 'tabs__tab--selected': selected,\n clickable: !disabled,\n disabled: disabled,\n },\n )}\n role=\"tab\"\n id={id}\n aria-selected={selected ? 'true' : 'false'}\n aria-disabled={disabled ? 'true' : 'false'}\n aria-controls={disabled ? null : panelId}\n tabIndex=\"0\"\n style={style}\n onKeyDown={disabled ? null : onKeyDown}\n onClick={onClick}\n >\n <span className=\"tabs__tab__content\">{children}</span>\n </li>\n );\n },\n);\n\nTab.defaultProps = {\n disabled: false,\n selected: false,\n onClick: null,\n style: null,\n focusTab: null,\n};\n\nTab.propTypes = {\n children: PropTypes.node.isRequired,\n disabled: PropTypes.bool,\n selected: PropTypes.bool,\n id: PropTypes.string.isRequired,\n panelId: PropTypes.string.isRequired,\n onKeyDown: PropTypes.func.isRequired,\n onClick: PropTypes.func,\n style: PropTypes.shape({ width: PropTypes.string }),\n focusTab: PropTypes.func,\n};\n\nexport default Tab;\n","import PropTypes from 'prop-types';\n\nconst TabList = ({ children }) => {\n return (\n <ul className=\"tabs__tab-list\" role=\"tablist\">\n {children}\n </ul>\n );\n};\n\nTabList.propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]).isRequired,\n};\n\nexport default TabList;\n","import PropTypes from 'prop-types';\n\nconst TabPanel = ({ children, id, tabId, style }) => {\n return (\n <div className=\"tabs__panel\" role=\"tabpanel\" id={id} aria-labelledby={tabId} style={style}>\n {children}\n </div>\n );\n};\n\nTabPanel.propTypes = {\n children: PropTypes.node.isRequired,\n id: PropTypes.string.isRequired,\n tabId: PropTypes.string.isRequired,\n style: PropTypes.shape({\n width: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default TabPanel;\n","const MIN_SWIPE_DISTANCE = 50;\nconst MIN_SWIPE_VELOCITY = 0.1;\n\nconst swipedSignificantDistance = (difference) => Math.abs(difference) > MIN_SWIPE_DISTANCE;\n\nconst swipedWithSignificantVelocity = (velocity) => velocity > MIN_SWIPE_VELOCITY;\n\nexport const getSwipeVelocity = (start, end) => {\n const timePassed = end.time - start.time;\n\n return getSwipeDifference(start, end) / timePassed;\n};\n\nexport const getSwipeDifference = (start, end, axis = 'x') => {\n return Math.abs(start[axis] - end[axis]);\n};\n\nexport const swipedLeftToRight = (start, end) => {\n return end.x > start.x;\n};\n\nexport const swipedRightToLeft = (start, end) => {\n return start.x > end.x;\n};\n\nexport const swipeShouldChangeTab = (start, end) => {\n const difference = getSwipeDifference(start, end);\n const velocity = getSwipeVelocity(start, end);\n\n return swipedSignificantDistance(difference) && swipedWithSignificantVelocity(velocity);\n};\n\nexport function getVelocity(coords) {\n try {\n const relevant = coords.slice(Math.max(coords.length - 5, 1));\n const first = relevant[0];\n const last = relevant[relevant.length - 1];\n\n return Math.abs(first.x - last.x) / (last.time - first.time);\n } catch {\n return 0;\n }\n}\n\n/*\n `elasticDrag` is the translateX value, which slows down as the difference increases\n `1 - Math.E ** (-0.005 * difference)` provides a % value of how far we want to translate (0.005 being the rate)\n `Math.min(150, window.innerWidth / 3)` provides the maximum translate value\n*/\nexport const getElasticDragDifference = (difference) =>\n Math.min(150, window.innerWidth / 3) * (1 - Math.E ** (-0.005 * difference));\n","/* eslint-disable react/forbid-dom-props */\nimport { Spring, SpringValue, animated } from '@react-spring/web';\nimport classNames from 'classnames';\nimport clamp from 'lodash.clamp';\nimport PropTypes from 'prop-types';\nimport { Component, createRef, Fragment } from 'react';\n\nimport { Size, Width, Direction } from '../common';\nimport { DirectionContext } from '../provider/direction';\n\nimport Tab from './Tab';\nimport TabList from './TabList';\nimport TabPanel from './TabPanel';\nimport {\n getElasticDragDifference,\n getSwipeDifference,\n swipedLeftToRight,\n swipedRightToLeft,\n swipeShouldChangeTab,\n getVelocity,\n} from './utils';\n\nconst MIN_INDEX = 0;\n\nconst enabledTabsFilter = (tab) => !tab.disabled;\n\nconst SpacerWidth = { default: 0, xs: 8, sm: 16, md: 24, lg: 32 };\n\nclass Tabs extends Component {\n /** @type {React.RefObject<HTMLDivElement | null>} */\n containerReference = createRef();\n\n constructor(props) {\n super(props);\n this.state = {\n start: null,\n translateX: 0,\n translateFrom: 0,\n translateTo: 0,\n translateLineX: null,\n isAnimating: false,\n isSwiping: false,\n isScrolling: false,\n lastSwipeVelocity: 0,\n fullWidthTabs: props.headerWidth === Width.BLOCK,\n };\n }\n\n container = null;\n\n containerWidth = 0;\n\n tabRefs = [];\n\n get filteredTabsLength() {\n return this.props.tabs.filter(enabledTabsFilter).length;\n }\n\n get MAX_INDEX() {\n return this.props.tabs.length - 1;\n }\n\n componentDidMount() {\n const { selected } = this.props;\n\n this.setTabWidth();\n this.switchTab(clamp(selected, MIN_INDEX, this.MAX_INDEX));\n this.animateToTab(clamp(selected, MIN_INDEX, this.MAX_INDEX), true);\n document.body.addEventListener('touchmove', this.disableScroll, { passive: false });\n document.body.addEventListener('touchforcechange', this.disableScroll, { passive: false });\n window.addEventListener('resize', this.handleResize);\n }\n\n componentDidUpdate(previousProps, previousState) {\n const currentSelected = this.props.selected;\n const previousSelected = previousProps.selected;\n const currentSelectedTab = this.props.tabs[currentSelected];\n const currentSelectedTabIsDisabled = currentSelectedTab && currentSelectedTab.disabled;\n const previousSelectedTab = previousProps.tabs[previousSelected];\n const previousSelectedTabIsDisabled = previousSelectedTab && previousSelectedTab.disabled;\n const currentTabsLength = this.props.tabs.length;\n const previousTabsLength = previousProps.tabs.length;\n const currentDisabledTabsLength = this.props.tabs.filter(enabledTabsFilter).length;\n const previousDisabledTabsLength = previousProps.tabs.filter(enabledTabsFilter).length;\n const currentHeaderWidth = this.props.headerWidth;\n const previousFullHeaderWidth = previousProps.headerWidth;\n const { animatePanelsOnClick } = this.props;\n const instantOnClick = !animatePanelsOnClick && !previousState.isSwiping;\n\n if (\n currentHeaderWidth !== previousFullHeaderWidth ||\n currentTabsLength !== previousTabsLength\n ) {\n this.setTabWidth();\n }\n\n if (\n currentSelected !== previousSelected ||\n currentDisabledTabsLength !== previousDisabledTabsLength ||\n currentSelectedTabIsDisabled !== previousSelectedTabIsDisabled\n ) {\n this.animateToTab(\n clamp(currentSelected, MIN_INDEX, this.MAX_INDEX),\n currentSelected === previousSelected || instantOnClick,\n );\n }\n }\n\n componentWillUnmount() {\n document.body.removeEventListener('touchmove', this.disableScroll);\n document.body.removeEventListener('touchforcechange', this.disableScroll);\n window.removeEventListener('resize', this.handleResize);\n }\n\n handleResize = () => {\n this.setContainerWidth(this.container);\n\n this.setState(({ selectedTabIndex }) => ({\n translateTo: -(this.containerWidth * selectedTabIndex),\n }));\n };\n\n setContainerRefAndWidth = (node) => {\n this.container = node;\n this.setContainerWidth(node);\n };\n\n setContainerWidth = (node) => {\n if (!node) {\n return;\n }\n\n const { width } = node.getBoundingClientRect();\n\n this.containerWidth = width;\n };\n\n isTabDisabled = (index) => {\n const { tabs } = this.props;\n\n return tabs[index] && tabs[index].disabled;\n };\n\n getAllTabsWidth = () => {\n return this.tabRefs\n .map((reference) => {\n return reference ? reference.getBoundingClientRect().width : 0;\n })\n .reduce((a, b) => a + b, 0);\n };\n\n getDistanceToSelectedTab = (selectedTabIndex) => {\n return this.tabRefs\n .filter((_, idx) => idx < selectedTabIndex)\n .map((reference) => (reference ? reference.getBoundingClientRect().width : 0))\n .reduce((a, b) => a + b, 0);\n };\n\n setTabWidth = () => {\n const { fullWidthTabs } = this.state;\n const { headerWidth, selected } = this.props;\n\n const allTabsWidth = this.getAllTabsWidth();\n\n if (!fullWidthTabs && (headerWidth === Width.BLOCK || this.containerWidth < allTabsWidth)) {\n this.setState({ fullWidthTabs: true, translateLineX: `${selected * 100}%` });\n }\n if (fullWidthTabs && headerWidth === Width.AUTO && this.containerWidth >= allTabsWidth) {\n this.setState({\n fullWidthTabs: false,\n translateLineX: `${this.getDistanceToSelectedTab(selected)}px`,\n });\n }\n };\n\n getTabLineWidth = () => {\n const { fullWidthTabs } = this.state;\n const { selected, tabs } = this.props;\n\n if (fullWidthTabs) {\n return `${(1 / tabs.length) * 100}%`;\n }\n\n const reference = this.tabRefs[selected] || this.tabRefs[this.tabRefs.length - 1];\n const width = reference ? reference.getBoundingClientRect().width : 0;\n return `${width}px`;\n };\n\n /*\n * Gets the next tab that should be selected based on the swipe direction\n * and the current selected tab (is called recursively to account for disabled tabs).\n */\n getTabToSelect = (selected, start, end) => {\n let nextSelected = selected;\n\n if (swipedLeftToRight(start, end)) {\n nextSelected -= 1;\n\n if (nextSelected > MIN_INDEX && this.isTabDisabled(nextSelected)) {\n return this.getTabToSelect(nextSelected, start, end);\n }\n } else if (swipedRightToLeft(start, end)) {\n nextSelected += 1;\n\n if (nextSelected < this.MAX_INDEX && this.isTabDisabled(nextSelected)) {\n return this.getTabToSelect(nextSelected, start, end);\n }\n }\n\n nextSelected = clamp(\n nextSelected,\n Math.max(selected - 1, MIN_INDEX),\n Math.min(selected + 1, this.MAX_INDEX),\n );\n\n if (this.isTabDisabled(nextSelected)) {\n return selected;\n }\n\n return nextSelected;\n };\n\n swipedOverHalfOfContainer = (difference) => difference / this.containerWidth >= 0.5;\n\n calculateApplicableDragDifference = ({ currentSelected, nextSelected, start, end }) => {\n const difference = getSwipeDifference(start, end);\n const elasticDrag = getElasticDragDifference(difference);\n\n if (swipedLeftToRight(start, end)) {\n if (currentSelected > MIN_INDEX && currentSelected !== nextSelected) {\n return Math.min(difference, this.containerWidth);\n }\n return elasticDrag;\n }\n if (swipedRightToLeft(start, end)) {\n if (currentSelected < this.MAX_INDEX && currentSelected !== nextSelected) {\n return -Math.min(difference, this.containerWidth);\n }\n return -elasticDrag;\n }\n\n return false;\n };\n\n switchTab = (index) => {\n const { onTabSelect } = this.props;\n onTabSelect(index);\n };\n\n getTabIndexWithoutDisabledTabs(index) {\n return index - this.props.tabs.slice(0, index).filter((tab) => !enabledTabsFilter(tab)).length;\n }\n\n animateToTab = (index, instant) => {\n this.animateLine(index);\n\n this.animatePanel(this.getTabIndexWithoutDisabledTabs(index), instant);\n };\n\n animateLine = (index) => {\n this.setState((previousState) => ({\n translateLineX: previousState.fullWidthTabs\n ? `${index * 100}%`\n : `${this.getDistanceToSelectedTab(index)}px`,\n }));\n };\n\n // Pass `instant` to set the `translateX` to the new panel with no transition\n animatePanel = (index, instant = false) => {\n const { translateTo: currentTranslateTo } = this.state;\n\n const translateFrom = currentTranslateTo;\n const translateTo = -(this.containerWidth * index);\n\n this.setState({\n selectedTabIndex: index,\n isAnimating: !instant && translateFrom !== translateTo,\n translateFrom,\n translateTo,\n });\n };\n\n disableScroll = (event) => {\n const { isSwiping } = this.state;\n\n if (isSwiping) {\n event.preventDefault();\n }\n };\n\n handleTabClick = (index) => () => {\n this.switchTab(index);\n };\n\n onKeyDown = (index) => (event) => {\n if (event && event.key === 'Enter') {\n this.switchTab(index);\n }\n };\n\n handleTouchStart = (event) => {\n const start = {\n x: event.nativeEvent.touches[0].clientX,\n y: event.nativeEvent.touches[0].clientY,\n time: Date.now(),\n };\n this.setState({\n start,\n currentSwipe: [start],\n });\n\n event.persist();\n };\n\n handleTouchMove = (event) => {\n const { start } = this.state;\n const { selected: currentSelectedFromProps } = this.props;\n const selected = this.getTabIndexWithoutDisabledTabs(currentSelectedFromProps);\n const end = {\n x: event.nativeEvent.changedTouches[0].clientX,\n y: event.nativeEvent.changedTouches[0].clientY,\n time: Date.now(),\n };\n const difference = getSwipeDifference(start, end);\n const yAxisDifference = getSwipeDifference(start, end, 'y');\n let { isScrolling, isSwiping } = this.state;\n\n event.persist();\n\n if (!isScrolling && !isSwiping) {\n if (difference > yAxisDifference) {\n isSwiping = true;\n } else {\n isScrolling = true;\n }\n }\n\n this.setState({ isScrolling, isSwiping });\n\n if (isSwiping) {\n const nextSelected = this.getTabToSelect(currentSelectedFromProps, start, end);\n\n this.animateLine(\n this.swipedOverHalfOfContainer(difference) ? nextSelected : currentSelectedFromProps,\n );\n\n const dragDifference = this.calculateApplicableDragDifference({\n currentSelected: currentSelectedFromProps,\n nextSelected,\n start,\n end,\n });\n\n const translateX = dragDifference\n ? -(this.containerWidth * selected) + dragDifference\n : false;\n\n this.setState((state) => ({\n currentSwipe: [...state.currentSwipe, end],\n translateFrom: translateX || state.translateFrom,\n translateTo: translateX || state.translateTo,\n }));\n }\n };\n\n handleTouchEnd = (event) => {\n const { start, isSwiping } = this.state;\n const { selected } = this.props;\n const end = {\n x: event.nativeEvent.changedTouches[0].clientX,\n y: event.nativeEvent.changedTouches[0].clientY,\n time: Date.now(),\n };\n const difference = getSwipeDifference(start, end);\n const velocity = getVelocity([...this.state.currentSwipe, end]);\n\n this.setState({\n currentSwipe: [],\n });\n\n let nextSelected = selected;\n\n event.persist();\n\n if (isSwiping) {\n if (swipeShouldChangeTab(start, end) || this.swipedOverHalfOfContainer(difference)) {\n nextSelected = this.getTabToSelect(nextSelected, start, end);\n }\n\n if (nextSelected !== selected) {\n this.switchTab(nextSelected);\n\n this.setState({\n lastSwipeVelocity: velocity,\n });\n } else {\n this.animateToTab(nextSelected);\n }\n }\n\n this.setState({ isSwiping: false, isScrolling: false });\n };\n\n render() {\n const { tabs, changeTabOnSwipe, name, selected, className, transitionSpacing, headerWidth } =\n this.props;\n const {\n isSwiping,\n translateLineX,\n isAnimating,\n translateFrom,\n translateTo,\n lastSwipeVelocity,\n fullWidthTabs,\n } = this.state;\n\n const spacer = SpacerWidth[transitionSpacing];\n\n const tabsLength = this.filteredTabsLength;\n\n const distanceSwiped = Math.abs(-translateFrom - this.containerWidth * selected);\n\n const remainingContainerToTravel = isSwiping\n ? 1 - distanceSwiped / this.containerWidth\n : 1 - Math.abs(distanceSwiped / this.containerWidth - 1);\n\n const restrictedVelocity =\n (Number.isNaN(remainingContainerToTravel) ? 0 : remainingContainerToTravel) *\n Math.min(10 * Math.E, lastSwipeVelocity * 10 * Math.E);\n\n const hidePanelOverflow = isAnimating || isSwiping;\n\n const sliderWidth = tabsLength * this.containerWidth + spacer * 2;\n\n // Uses `props.panelTransitionSpacing` to add a spacer in-between the `TabPanel` you're transitioning to/from\n const Spacer = ({ id }) =>\n spacer > 0 && (\n <div\n key={id}\n style={{\n width: spacer,\n display: hidePanelOverflow ? 'block' : 'none',\n }}\n />\n );\n\n return (\n <DirectionContext.Consumer>\n {(direction) => {\n const isRTL = direction === Direction.RTL;\n return (\n <div\n ref={this.containerReference}\n className={classNames('tabs', className, {\n 'tabs--auto-width': headerWidth === Width.AUTO,\n })}\n onTouchStart={changeTabOnSwipe ? this.handleTouchStart : undefined}\n onTouchEnd={changeTabOnSwipe ? this.handleTouchEnd : undefined}\n onTouchMove={changeTabOnSwipe ? this.handleTouchMove : undefined}\n >\n <TabList>\n {tabs.map(({ title, disabled }, index) => {\n return (\n <Tab\n key={title}\n ref={(node) => {\n this.tabRefs[index] = node;\n }}\n id={`${name}-tab-${index}`}\n panelId={`${name}-panel-${index}`}\n selected={selected === index}\n disabled={disabled}\n focusTab={() => {\n if (this.containerReference.current?.contains(document.activeElement)) {\n this.tabRefs[index].focus();\n }\n }}\n onClick={disabled ? null : this.handleTabClick(index)}\n onKeyDown={this.onKeyDown(index)}\n {...(fullWidthTabs\n ? { style: { width: `${(1 / tabs.length) * 100}%` } }\n : {})}\n >\n {title}\n </Tab>\n );\n })}\n {translateLineX ? (\n <li\n role=\"none\"\n className=\"tabs__line\"\n style={{\n width: this.getTabLineWidth(),\n transform: isRTL\n ? `translateX(-${translateLineX})`\n : `translateX(${translateLineX})`,\n }}\n />\n ) : null}\n </TabList>\n <div\n ref={this.setContainerRefAndWidth}\n className=\"tabs__panel-container\"\n style={{\n overflow: hidePanelOverflow ? 'hidden' : 'visible',\n }}\n >\n <Spring\n from={{\n transform: `translateX(${translateFrom - spacer}px)`,\n }}\n to={{\n transform: `translateX(${translateTo - spacer}px)`,\n }}\n config={{\n precision: isSwiping ? 1 : 0.01,\n velocity: !isSwiping ? restrictedVelocity : 0,\n clamp: true,\n }}\n onRest={() => {\n if (isAnimating) {\n this.setState({\n isAnimating: false,\n lastSwipeVelocity: 0,\n });\n }\n }}\n >\n {(props) => (\n <animated.div\n className=\"tabs__slider\"\n style={{\n width: hidePanelOverflow ? `${sliderWidth}px` : '100%',\n transform: hidePanelOverflow ? props.transform : 'translateX(0px)',\n }}\n >\n {tabs.map(({ content, disabled }, index) =>\n !disabled ? (\n <Fragment key={`${tabs[index].title}-fragment`}>\n {index === selected && <Spacer id=\"left-spacer\" />}\n <TabPanel\n key={tabs[index].title}\n tabId={`${name}-tab-${index}`}\n id={`${name}-panel-${index}`}\n style={{\n width: hidePanelOverflow ? `${this.containerWidth}px` : '100%',\n display: hidePanelOverflow || index === selected ? 'block' : 'none',\n }}\n >\n {content}\n </TabPanel>\n {index === selected && <Spacer id=\"right-spacer\" />}\n </Fragment>\n ) : null,\n )}\n </animated.div>\n )}\n </Spring>\n </div>\n </div>\n );\n }}\n </DirectionContext.Consumer>\n );\n }\n}\n\nconst SpacerSizes = { ...Size, NONE: 'default' };\n\nTabs.propTypes = {\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string.isRequired,\n content: PropTypes.node.isRequired,\n disabled: PropTypes.bool.isRequired,\n }),\n ).isRequired,\n selected: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n animatePanelsOnClick: PropTypes.bool,\n changeTabOnSwipe: PropTypes.bool,\n className: PropTypes.string,\n transitionSpacing: PropTypes.oneOf(['default', 'xs', 'sm', 'md', 'lg']),\n headerWidth: PropTypes.oneOf(['auto', 'block']),\n id: PropTypes.string,\n onTabSelect: PropTypes.func.isRequired,\n};\n\nTabs.defaultProps = {\n animatePanelsOnClick: false,\n changeTabOnSwipe: true,\n className: '',\n transitionSpacing: SpacerSizes.NONE,\n headerWidth: Width.BLOCK,\n};\n\nexport default Tabs;\n","import { TextArea, type TextAreaProps } from '../inputs/TextArea';\nimport WithDisplayFormat, { type WithDisplayFormatProps } from '../withDisplayFormat';\n\nexport interface TextareaWithDisplayFormatProps extends Omit<WithDisplayFormatProps, 'render'> {}\n\nconst TextareaWithDisplayFormat = (props: TextareaWithDisplayFormatProps) => (\n <WithDisplayFormat<TextAreaProps>\n {...props}\n render={(renderProps) => <TextArea {...renderProps} />}\n />\n);\n\nexport default TextareaWithDisplayFormat;\n","/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport classnames from 'classnames';\nimport { Component, createRef, ReactNode } from 'react';\n\nimport { Input } from '../../inputs/Input';\nimport { TypeaheadOption, TypeaheadProps } from '../Typeahead';\n\nconst DEFAULT_INPUT_MIN_WIDTH = 10;\n\nexport type TypeaheadInputProps<T> = {\n typeaheadId: string;\n value: string;\n selected: readonly TypeaheadOption<T>[];\n dropdownOpen?: boolean;\n autoComplete: string;\n onChange: React.ChangeEventHandler<HTMLInputElement>;\n onKeyDown: React.KeyboardEventHandler<HTMLInputElement>;\n onFocus: () => void;\n onPaste: React.ClipboardEventHandler<HTMLInputElement>;\n renderChip: (chip: TypeaheadOption<T>, index: number) => ReactNode;\n} & Pick<TypeaheadProps<T>, 'id' | 'name' | 'autoFocus' | 'multiple' | 'placeholder' | 'maxHeight'>;\n\ntype TypeaheadInputState = {\n inputWidth: number;\n};\n\nexport default class TypeaheadInput<T> extends Component<\n TypeaheadInputProps<T>,\n TypeaheadInputState\n> {\n inputRef = createRef<HTMLInputElement>();\n sizerRef = createRef<HTMLDivElement>();\n\n constructor(props: TypeaheadInputProps<T>) {\n super(props);\n this.state = {\n inputWidth: DEFAULT_INPUT_MIN_WIDTH,\n };\n }\n\n componentDidMount() {\n const { autoFocus } = this.props;\n if (autoFocus) {\n this.inputRef.current?.focus();\n }\n }\n\n componentDidUpdate(previousProps: TypeaheadInputProps<T>) {\n if (previousProps.value !== this.props.value && this.props.multiple) {\n this.recalculateWidth();\n }\n }\n\n recalculateWidth = () => {\n requestAnimationFrame(() => {\n this.setState({\n inputWidth: Math.max(DEFAULT_INPUT_MIN_WIDTH, this.sizerRef.current?.scrollWidth ?? 0 + 10),\n });\n });\n };\n\n renderInput = () => {\n const {\n typeaheadId,\n autoFocus,\n multiple,\n name,\n dropdownOpen,\n placeholder,\n selected,\n value,\n onChange,\n onKeyDown,\n onFocus,\n onPaste,\n autoComplete,\n } = this.props;\n const { inputWidth } = this.state;\n\n const hasPlaceholder = !multiple || selected.length === 0;\n return (\n <Input\n ref={this.inputRef}\n className={classnames(multiple && 'typeahead__input')}\n name={name}\n id={`input-${typeaheadId}`}\n autoFocus={autoFocus}\n placeholder={hasPlaceholder ? placeholder : ''}\n aria-autocomplete=\"list\"\n aria-expanded={dropdownOpen}\n aria-haspopup=\"listbox\"\n aria-controls={`menu-${typeaheadId}`}\n autoComplete={autoComplete}\n role=\"combobox\"\n value={value}\n style={multiple && selected.length > 0 ? { width: inputWidth } : {}}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onClick={onFocus}\n onFocus={onFocus}\n onPaste={onPaste}\n />\n );\n };\n\n render() {\n const { multiple, selected, value, maxHeight, renderChip } = this.props;\n\n return multiple ? (\n <div\n className=\"form-control typeahead__input-container\"\n style={{ maxHeight }}\n onClick={() => {\n this.inputRef.current?.focus();\n }}\n >\n <div className=\"typeahead__input-wrapper\">\n {selected && selected.map((chip, idx) => renderChip(chip, idx))}\n\n {this.renderInput()}\n <div className=\"typeahead__input-aligner\" />\n </div>\n <div ref={this.sizerRef} className=\"sizer form-control typeahead__input\">\n {value}\n </div>\n </div>\n ) : (\n this.renderInput()\n );\n }\n}\n","export default function highlight(value: string, query: string) {\n if (value && query) {\n const highlightStart = value.toUpperCase().indexOf(query.trim().toUpperCase());\n const highlightEnd = highlightStart + query.trim().length;\n if (highlightStart !== -1) {\n return (\n <>\n {value.slice(0, Math.max(0, highlightStart))}\n <strong>{value.slice(highlightStart, highlightEnd)}</strong>\n {value.slice(Math.max(0, highlightEnd))}\n </>\n );\n }\n }\n return value;\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport classNames from 'classnames';\n\nimport { TypeaheadOption } from '../Typeahead';\nimport highlight from '../util/highlight';\n\nexport type TypeaheadOptionProps<T> = {\n option: TypeaheadOption<T>;\n selected?: boolean;\n onClick?: React.MouseEventHandler;\n query?: string;\n};\n\nconst Option = <T,>(props: TypeaheadOptionProps<T>) => {\n const { option, selected = false, onClick = () => {}, query = '' } = props;\n const { label, note, secondary } = option;\n\n return (\n <li\n role=\"option\"\n aria-selected=\"false\"\n className={classNames('typeahead__option tw-dropdown-item clickable', {\n 'tw-dropdown-item--focused': selected,\n })}\n >\n <a className=\"dropdown-item\" href=\"#\" tabIndex={-1} onClick={onClick}>\n <span>{highlight(label, query)}</span>\n {note && <span className=\"np-text-body-default m-l-1\">{note}</span>}\n {secondary && (\n <span className=\"np-text-body-default text-ellipsis\">{highlight(secondary, query)}</span>\n )}\n </a>\n </li>\n );\n};\n\nexport default Option;\n","/* eslint-disable jsx-a11y/anchor-is-valid */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n\nimport { Cross as CrossIcon } from '@transferwise/icons';\nimport classNames from 'classnames';\nimport { DebouncedFunc } from 'lodash';\nimport clamp from 'lodash.clamp';\nimport debounce from 'lodash.debounce';\nimport { Component, ReactNode } from 'react';\n\nimport Chip from '../chips/Chip';\nimport { Size, Sentiment, SizeMedium, SizeLarge } from '../common';\nimport {\n addClickClassToDocumentOnIos,\n removeClickClassFromDocumentOnIos,\n stopPropagation,\n} from '../common/domHelpers';\nimport InlineAlert from '../inlineAlert';\nimport { InlineAlertProps } from '../inlineAlert/InlineAlert';\nimport { withInputAttributes, WithInputAttributesProps } from '../inputs/contexts';\n\nimport TypeaheadInput from './typeaheadInput/TypeaheadInput';\nimport TypeaheadOption from './typeaheadOption/TypeaheadOption';\n\nconst DEFAULT_MIN_QUERY_LENGTH = 3;\nconst SEARCH_DELAY = 200;\n\nexport type TypeaheadOption<T = string> = {\n label: string;\n note?: string;\n secondary?: string;\n value?: T;\n clearQueryOnSelect?: boolean;\n keepFocusOnSelect?: boolean;\n};\n\nexport interface TypeaheadProps<T> {\n id: string;\n name: string;\n addon?: ReactNode;\n alert?: {\n message: InlineAlertProps['children'];\n type?: InlineAlertProps['type'];\n };\n allowNew?: boolean;\n autoFillOnBlur?: boolean;\n autoFocus?: boolean;\n chipSeparators?: readonly string[];\n clearable?: boolean;\n footer?: ReactNode;\n initialValue?: readonly TypeaheadOption<T>[];\n inputAutoComplete?: string;\n maxHeight?: number;\n minQueryLength?: number;\n placeholder?: string;\n multiple?: boolean;\n options: readonly TypeaheadOption<T>[];\n searchDelay?: number;\n showSuggestions?: boolean;\n showNewEntry?: boolean;\n size?: SizeMedium | SizeLarge;\n\n onBlur?: () => void;\n onChange: (options: TypeaheadOption<T>[]) => void;\n onFocus?: () => void;\n onInputChange?: (query: string) => void;\n onSearch?: (query: string) => void;\n validateChip?: (chip: TypeaheadOption<T>) => boolean;\n}\n\ntype TypeaheadPropsWithInputAttributes<T> = TypeaheadProps<T> & Partial<WithInputAttributesProps>;\n\ntype TypeaheadState<T> = {\n selected: readonly TypeaheadOption<T>[];\n keyboardFocusedOptionIndex: number | null;\n errorState: boolean;\n query: string;\n optionsShown: boolean;\n isFocused: boolean;\n};\n\nclass Typeahead<T> extends Component<TypeaheadPropsWithInputAttributes<T>, TypeaheadState<T>> {\n declare props: TypeaheadPropsWithInputAttributes<T> &\n Required<Pick<TypeaheadPropsWithInputAttributes<T>, keyof typeof Typeahead.defaultProps>>;\n\n static defaultProps = {\n allowNew: false,\n autoFillOnBlur: true,\n autoFocus: false,\n chipSeparators: [],\n clearable: true,\n initialValue: [],\n inputAutoComplete: 'new-password',\n minQueryLength: DEFAULT_MIN_QUERY_LENGTH,\n multiple: false,\n searchDelay: SEARCH_DELAY,\n showSuggestions: true,\n showNewEntry: true,\n size: Size.MEDIUM,\n validateChip: () => true,\n } satisfies Partial<TypeaheadProps<unknown>>;\n\n constructor(props: TypeaheadPropsWithInputAttributes<T>) {\n super(props);\n const { searchDelay, initialValue, multiple } = this.props;\n this.handleSearchDebounced = debounce(this.handleSearch, searchDelay);\n const initialQuery = !multiple && initialValue.length > 0 ? initialValue[0].label : '';\n this.state = {\n selected: initialValue,\n errorState: false,\n query: initialQuery,\n keyboardFocusedOptionIndex: null,\n optionsShown: false,\n isFocused: false,\n };\n }\n\n handleSearchDebounced: DebouncedFunc<Typeahead<T>['handleSearch']>;\n\n UNSAFE_componentWillReceiveProps(nextProps: TypeaheadPropsWithInputAttributes<T>) {\n if (nextProps.multiple !== this.props.multiple) {\n this.setState((previousState) => {\n const { selected } = previousState;\n if (!nextProps.multiple && selected.length > 0) {\n return {\n query: selected[0].label,\n selected: [selected[0]],\n };\n }\n return {\n selected: previousState.selected,\n query: '',\n };\n });\n }\n }\n\n componentWillUnmount() {\n this.handleSearchDebounced.cancel();\n }\n\n handleOnFocus = () => {\n this.showMenu();\n this.props.onFocus?.();\n };\n\n onOptionSelected = (event: React.MouseEvent, item: TypeaheadOption<T>) => {\n event.preventDefault();\n this.selectItem(item);\n };\n\n handleOnChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const { optionsShown, selected } = this.state;\n const { multiple, onInputChange } = this.props;\n\n if (!optionsShown) {\n this.showMenu();\n }\n\n const query = event.target.value;\n\n if (!multiple && selected.length > 0) {\n this.updateSelectedValue([]);\n }\n\n this.setState({ query }, () => {\n this.handleSearchDebounced(query);\n if (onInputChange) {\n onInputChange(query);\n }\n });\n };\n\n handleOnPaste: React.ClipboardEventHandler<HTMLInputElement> = (event) => {\n const { allowNew, multiple, chipSeparators } = this.props;\n const { selected } = this.state;\n\n if (allowNew && multiple && chipSeparators.length > 0) {\n event.preventDefault();\n const value = event.clipboardData.getData('text');\n if (value) {\n const regex = new RegExp(chipSeparators.join('|'));\n const pastedChips = value\n .split(regex)\n .map((label) => ({ label: label.trim() }))\n .filter((chip) => chip.label);\n\n this.updateSelectedValue([...selected, ...pastedChips]);\n }\n }\n };\n\n handleOnKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n const { showSuggestions, allowNew, multiple, chipSeparators, options } = this.props;\n const { keyboardFocusedOptionIndex, query, selected } = this.state;\n const chipsMode = !showSuggestions && allowNew && multiple;\n\n if (chipsMode && ['Enter', 'Tab', ...chipSeparators].includes(event.key) && query.trim()) {\n event.preventDefault();\n this.selectItem({ label: query });\n } else {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.moveFocusedOption(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.moveFocusedOption(-1);\n break;\n case 'Enter':\n event.preventDefault();\n if (keyboardFocusedOptionIndex != null && options[keyboardFocusedOptionIndex]) {\n this.selectItem(options[keyboardFocusedOptionIndex]);\n } else if (allowNew && query.trim()) {\n this.selectItem({ label: query });\n }\n break;\n case 'Backspace':\n if (multiple && !query && selected.length > 0) {\n this.updateSelectedValue(selected.slice(0, -1));\n }\n break;\n default:\n break;\n }\n }\n };\n\n moveFocusedOption(offset: number) {\n this.setState((previousState) => {\n const { keyboardFocusedOptionIndex } = previousState;\n const { options } = this.props;\n let index = 0;\n if (keyboardFocusedOptionIndex !== null) {\n index = clamp(keyboardFocusedOptionIndex + offset, 0, options.length - 1);\n }\n return {\n keyboardFocusedOptionIndex: index,\n };\n });\n }\n\n selectItem = (item: TypeaheadOption<T>) => {\n const { multiple } = this.props;\n let selected = [...this.state.selected];\n let query;\n if (multiple) {\n selected.push(item);\n query = '';\n } else {\n selected = [item];\n query = item.label;\n }\n\n this.updateSelectedValue(selected);\n\n if (!item.keepFocusOnSelect) {\n this.hideMenu();\n }\n\n if (item.clearQueryOnSelect) {\n query = '';\n }\n\n this.setState({\n query,\n });\n };\n\n handleSearch = (query: string) => {\n const { onSearch } = this.props;\n if (onSearch) {\n onSearch(query);\n }\n\n this.setState((previousState) => ({\n keyboardFocusedOptionIndex: previousState.keyboardFocusedOptionIndex === null ? null : 0,\n }));\n };\n\n handleDocumentClick = () => {\n if (this.state.optionsShown) {\n this.hideMenu();\n const { allowNew, onBlur, autoFillOnBlur } = this.props;\n const { query } = this.state;\n this.setState({\n isFocused: false,\n });\n if (allowNew && autoFillOnBlur && query.trim()) {\n this.selectItem({ label: query });\n }\n\n if (onBlur) {\n onBlur();\n }\n }\n };\n\n showMenu = () => {\n this.setState(\n {\n isFocused: true,\n optionsShown: true,\n },\n () => {\n addClickClassToDocumentOnIos();\n document.addEventListener('click', this.handleDocumentClick, false);\n },\n );\n };\n\n hideMenu = () => {\n this.setState(\n {\n optionsShown: false,\n keyboardFocusedOptionIndex: null,\n },\n () => {\n removeClickClassFromDocumentOnIos();\n document.removeEventListener('click', this.handleDocumentClick, false);\n },\n );\n };\n\n updateSelectedValue = (selected: readonly TypeaheadOption<T>[]) => {\n const { onChange, validateChip } = this.props;\n\n const errorState = selected.some((chip) => !validateChip(chip));\n this.setState({ selected, errorState }, () => {\n onChange([...selected]);\n });\n };\n\n clear = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n if (this.state.selected.length > 0) {\n this.updateSelectedValue([]);\n }\n\n this.setState({\n query: '',\n });\n };\n\n removeChip = (option: TypeaheadOption<T>) => {\n const { selected } = this.state;\n\n if (selected.length > 0) {\n this.updateSelectedValue([...selected.filter((selectedOption) => selectedOption !== option)]);\n }\n };\n\n renderChip = (option: TypeaheadOption<T>, idx: number): ReactNode => {\n const valid = this.props.validateChip?.(option);\n\n return (\n <Chip\n key={idx}\n label={option.label}\n className={classNames('m-t-1', {\n 'has-error': !valid,\n 'np-chip--valid': valid,\n })}\n onRemove={() => this.removeChip(option)}\n />\n );\n };\n\n renderMenu = ({\n footer,\n options,\n id,\n keyboardFocusedOptionIndex,\n query,\n allowNew,\n showNewEntry,\n dropdownOpen,\n }: Pick<\n TypeaheadPropsWithInputAttributes<T>,\n 'footer' | 'options' | 'id' | 'allowNew' | 'showNewEntry'\n > &\n Pick<TypeaheadState<T>, 'keyboardFocusedOptionIndex' | 'query'> & {\n dropdownOpen: boolean;\n }) => {\n const optionsToRender = [...options];\n if (\n allowNew &&\n query.trim() &&\n options.every((option) => option.label.trim().toUpperCase() !== query.trim().toUpperCase()) &&\n showNewEntry\n ) {\n optionsToRender.push({\n label: query,\n });\n }\n return (\n <div\n className={classNames('dropdown btn-group btn-block', { open: dropdownOpen })}\n id={`menu-${id}`}\n >\n <ul className=\"dropdown-menu\" role=\"menu\" aria-labelledby=\"dropdownMenu1\">\n {optionsToRender.map((option, idx) => (\n <TypeaheadOption\n key={`${option.label}${idx.toString()}`}\n query={query}\n option={option}\n selected={keyboardFocusedOptionIndex === idx}\n onClick={(event) => {\n this.onOptionSelected(event, option);\n }}\n />\n ))}\n {footer}\n </ul>\n </div>\n );\n };\n\n render() {\n const {\n inputAttributes,\n id: idProp,\n placeholder,\n multiple,\n size,\n addon,\n name,\n clearable,\n allowNew,\n footer,\n showSuggestions,\n showNewEntry,\n options,\n minQueryLength,\n autoFocus,\n maxHeight,\n alert,\n inputAutoComplete,\n } = this.props;\n const id = idProp ?? inputAttributes?.id;\n\n const { errorState, query, selected, optionsShown, keyboardFocusedOptionIndex } = this.state;\n\n const clearButton = clearable && (query || selected.length > 0);\n\n const dropdownOpen = optionsShown && showSuggestions && query.length >= minQueryLength;\n\n const menu = this.renderMenu({\n footer,\n options,\n id,\n keyboardFocusedOptionIndex,\n query,\n allowNew,\n showNewEntry,\n dropdownOpen,\n });\n\n const alertType = alert?.type ?? Sentiment.NEUTRAL;\n const hasError = errorState || (alert && alertType === Sentiment.ERROR);\n const displayAlert = (!errorState && alert) || (alert && alertType === Sentiment.ERROR);\n const hasWarning = displayAlert && alertType === Sentiment.WARNING;\n const hasInfo = displayAlert && alertType === Sentiment.NEUTRAL;\n return (\n <div\n role=\"group\"\n {...inputAttributes}\n id={id}\n className={classNames('typeahead', `typeahead-${size}`, {\n 'typeahead--has-value': selected.length > 0,\n 'typeahead--empty': selected.length === 0,\n 'typeahead--multiple': multiple,\n open: dropdownOpen,\n })}\n onClick={stopPropagation}\n >\n <div\n className={classNames('form-group', {\n 'has-error': hasError,\n 'has-warning': hasWarning,\n 'has-info': hasInfo,\n })}\n >\n <div\n className={classNames(`input-group input-group-${size}`, {\n 'input-group--has-error': hasError,\n })}\n >\n {addon && <span className=\"input-group-addon input-group-addon--search\">{addon}</span>}\n\n <TypeaheadInput\n {...{\n autoFocus,\n multiple,\n dropdownOpen,\n placeholder,\n selected,\n maxHeight,\n }}\n id={id}\n name={name}\n value={query}\n typeaheadId={id}\n renderChip={this.renderChip}\n autoComplete={inputAutoComplete}\n onChange={this.handleOnChange}\n onKeyDown={this.handleOnKeyDown}\n onFocus={this.handleOnFocus}\n onPaste={this.handleOnPaste}\n />\n\n {clearButton && (\n <div className=\"input-group-addon\">\n <button type=\"button\" className=\"btn-unstyled\" onClick={this.clear}>\n <CrossIcon />\n </button>\n </div>\n )}\n </div>\n {displayAlert ? <InlineAlert type={alert.type}>{alert.message}</InlineAlert> : menu}\n </div>\n </div>\n );\n }\n}\n\nexport default withInputAttributes(Typeahead, { nonLabelable: true }) as <T>(\n props: TypeaheadProps<T>,\n) => React.ReactElement;\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n csButtonText: {\n id: 'neptune.Upload.csButtonText',\n defaultMessage: 'Upload another file?',\n },\n csFailureText: {\n id: 'neptune.Upload.csFailureText',\n defaultMessage: 'Upload failed. Please, try again',\n },\n csSuccessText: {\n id: 'neptune.Upload.csSuccessText',\n defaultMessage: 'Upload complete!',\n },\n csTooLargeMessage: {\n id: 'neptune.Upload.csTooLargeMessage',\n defaultMessage: 'Please provide a file smaller than {maxSize}MB',\n },\n csWrongTypeMessage: {\n id: 'neptune.Upload.csWrongTypeMessage',\n defaultMessage: 'File type not supported. Please try again with a different file',\n },\n psButtonText: {\n id: 'neptune.Upload.psButtonText',\n defaultMessage: 'Cancel',\n },\n psProcessingText: {\n id: 'neptune.Upload.psProcessingText',\n defaultMessage: 'Uploading...',\n },\n usButtonText: {\n id: 'neptune.Upload.usButtonText',\n defaultMessage: 'Or select a file',\n },\n usDropMessage: {\n id: 'neptune.Upload.usDropMessage',\n defaultMessage: 'Drop file to start upload',\n },\n usPlaceholder: {\n id: 'neptune.Upload.usPlaceholder',\n defaultMessage: 'Drag and drop a file less than {maxSize}MB',\n },\n});\n","import { Upload as UploadIcon } from '@transferwise/icons';\nimport { createRef, PureComponent } from 'react';\n\nexport interface UploadImageStepProps {\n fileDropped: (file: File) => void;\n isComplete: boolean;\n usAccept: string;\n usButtonText: string;\n usDisabled: boolean;\n usHelpImage: React.ReactNode;\n usLabel: string;\n usPlaceholder: string;\n}\n\nexport default class UploadImageStep extends PureComponent<UploadImageStepProps> {\n uploadInputRef = createRef<HTMLInputElement>();\n\n onManualUpload = () => {\n const { fileDropped } = this.props;\n const file = this.uploadInputRef.current?.files?.[0];\n if (file != null) {\n fileDropped(file);\n }\n };\n\n getImage = () => {\n const { usHelpImage, usLabel } = this.props;\n\n if (!usHelpImage) {\n return (\n <div className=\"circle circle-sm circle-inverse p-t-1\">\n <UploadIcon size={24} />\n </div>\n );\n }\n\n if (typeof usHelpImage === 'string') {\n return <img src={usHelpImage} alt={usLabel} className=\"thumbnail text-xs-center\" />;\n }\n\n return usHelpImage;\n };\n\n render() {\n const { isComplete, usAccept, usButtonText, usDisabled, usLabel, usPlaceholder } = this.props;\n\n return (\n <div>\n <div className=\"droppable-default-card\" aria-hidden={isComplete}>\n <div className=\"droppable-card-content\">\n <div className=\"m-b-3\">{this.getImage()}</div>\n {usLabel && <h4 className=\"np-text-title-body m-b-1\">{usLabel}</h4>}\n {usPlaceholder && <p className=\"np-text-body-large m-b-3\">{String(usPlaceholder)}</p>}\n <label className={`btn btn-primary btn-md ${usDisabled ? 'disabled' : ''}`}>\n {usButtonText ? (\n <span>{usButtonText}</span>\n ) : (\n <UploadIcon size={24} className=\"m-r-0\" />\n )}\n <input\n ref={this.uploadInputRef}\n type=\"file\"\n accept={usAccept === '*' ? undefined : usAccept}\n className=\"tw-droppable-input hidden\"\n disabled={usDisabled}\n name=\"file-upload\"\n onChange={() => this.onManualUpload()}\n />\n </label>\n </div>\n </div>\n </div>\n );\n }\n}\n","import Button from '../../../button';\nimport { Status, Typography } from '../../../common';\nimport ProcessIndicator, { ProcessIndicatorStatus } from '../../../processIndicator';\nimport Title from '../../../title';\n\nexport interface ProcessingStepProps {\n isComplete: boolean;\n isError: boolean;\n isSuccess: boolean;\n onAnimationCompleted: (status: ProcessIndicatorStatus) => void;\n onClear: React.MouseEventHandler<HTMLButtonElement>;\n psButtonText: string;\n psProcessingText: string;\n psButtonDisabled: boolean;\n}\n\nexport default function ProcessingStep({\n isComplete,\n isError,\n isSuccess,\n onAnimationCompleted,\n onClear,\n psButtonText,\n psProcessingText,\n psButtonDisabled,\n}: ProcessingStepProps) {\n let processStatus = Status.PROCESSING;\n if (isError) {\n processStatus = Status.FAILED;\n }\n if (isSuccess) {\n processStatus = Status.SUCCEEDED;\n }\n\n return (\n <div className=\"droppable-processing-card droppable-card\" aria-hidden={isComplete}>\n <div className=\"droppable-card-content\">\n <ProcessIndicator\n status={processStatus}\n onAnimationCompleted={(status) => onAnimationCompleted(status)}\n />\n <Title className=\"m-y-2\" type={Typography.TITLE_BODY} aria-live=\"polite\">\n {psProcessingText}\n </Title>\n {psButtonText && (\n <Button disabled={psButtonDisabled} onClick={onClear}>\n {psButtonText}\n </Button>\n )}\n </div>\n </div>\n );\n}\n","import { Document as DocumentIcon } from '@transferwise/icons';\n\nimport { Typography } from '../../..';\nimport Body from '../../../body';\nimport Button from '../../../button';\nimport { Sentiment, Size } from '../../../common';\nimport StatusIcon from '../../../statusIcon';\nimport Title from '../../../title';\n\nexport interface CompleteStepProps {\n csButtonText: string;\n csSuccessText: string;\n csFailureText: string;\n fileName: string;\n isComplete: boolean;\n isError: boolean;\n isImage: boolean;\n uploadedImage?: string;\n onClear: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nexport default function CompleteStep({\n csButtonText,\n csFailureText,\n csSuccessText,\n fileName,\n isComplete,\n isError,\n isImage,\n onClear,\n uploadedImage,\n}: CompleteStepProps) {\n return (\n <div className=\"droppable-complete-card droppable-card\" aria-hidden={!isComplete}>\n <div className=\"droppable-card-content\">\n <div\n className=\"droppable-card-content d-flex flex-column align-items-center\"\n aria-live=\"polite\"\n >\n {isError ? (\n <>\n <StatusIcon size={Size.LARGE} sentiment={Sentiment.NEGATIVE} />\n {csFailureText && <p className=\"m-t-2 m-b-0\">{csFailureText}</p>}\n </>\n ) : (\n <>\n {isImage && uploadedImage ? (\n <img src={uploadedImage} alt=\"OK\" className=\"thumbnail \" />\n ) : (\n <DocumentIcon />\n )}\n\n {fileName && (\n <Body as=\"p\" className=\"m-b-0\">\n {fileName}\n </Body>\n )}\n {csSuccessText && (\n <Title className=\"caption m-t-1\" type={Typography.TITLE_BODY}>\n {csSuccessText}\n </Title>\n )}\n </>\n )}\n </div>\n {csButtonText && (\n <Button className={isError ? 'm-t-2' : 'm-t-1'} onClick={onClear}>\n {csButtonText}\n </Button>\n )}\n </div>\n </div>\n );\n}\n","export class ResponseError extends Error {\n response: Response;\n status: number;\n\n constructor(response: Response, message?: string) {\n super(message);\n this.name = 'ResponseError';\n this.response = response;\n this.status = response.status;\n }\n}\n\nexport interface PostDataHTTPOptions extends Omit<RequestInit, 'body'> {\n url: string;\n method?: 'POST' | 'PUT' | 'PATCH';\n}\n\nexport type PostDataFetcher = (input: string, init: RequestInit) => Promise<Response>;\n\nexport async function postData(\n { url, method = 'POST', ...httpOptions }: PostDataHTTPOptions,\n data: RequestInit['body'],\n fetcher: PostDataFetcher = fetch,\n) {\n const response = await fetcher(url, {\n method,\n body: data,\n ...httpOptions,\n });\n\n if (!response.ok) {\n throw new ResponseError(response, response.statusText);\n }\n\n return response;\n}\n","export async function asyncFileRead(file: Blob) {\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.addEventListener('load', () => {\n resolve(reader.result as string);\n });\n reader.addEventListener('error', () => {\n reject(reader.error ?? new Error('Cannot read file'));\n });\n reader.readAsDataURL(file);\n });\n}\n","export function isSizeValid(file: Blob, maxSize: number) {\n return Number.isInteger(maxSize) && file.size <= maxSize;\n}\n","export function getFileType(file: Blob, file64?: string) {\n if (file.type) {\n return file.type;\n }\n\n if (file64) {\n const regex = /^data:([a-z]+\\/[a-z]+);/;\n const typeFromEncoded = regex.exec(file64);\n\n if (typeFromEncoded?.[1]) {\n return typeFromEncoded[1];\n }\n }\n\n return '';\n}\n","import { getFileType } from '../getFileType';\n\nexport function isTypeValid(file: Blob, rule: string, file64?: string) {\n if (!rule) {\n return false;\n }\n\n const allowedTypes = rule.replace(/\\s/g, '').split(',');\n const fileType = getFileType(file, file64);\n\n if (rule === '*' || allowedTypes.includes(fileType)) {\n return true;\n }\n\n return allowedTypes.some((type) => {\n const [typeAllowed, extensionAllowed] = type.split('/');\n return extensionAllowed === '*' && fileType.includes(typeAllowed);\n });\n}\n","import { Plus as PlusIcon } from '@transferwise/icons';\nimport classNames from 'classnames';\nimport { Component } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport { Size, Typography } from '../common';\nimport Title from '../title';\n\nimport messages from './Upload.messages';\nimport { UploadImageStep, ProcessingStep, CompleteStep } from './steps';\nimport { postData, asyncFileRead, isSizeValid, isTypeValid, getFileType } from './utils';\nimport { PostDataFetcher, PostDataHTTPOptions, ResponseError } from './utils/postData/postData';\nimport { ProcessIndicatorStatus } from '../processIndicator';\n\n/*\n * This delay is required for the isError/isSuccess to be fired after isProcessing so the processIndicator, will be\n * rendered first and then updated with the right status.\n */\nconst ANIMATION_FIX = 10;\nexport const MAX_SIZE_DEFAULT = 5000000;\n\nexport enum UploadStep {\n UPLOAD_IMAGE_STEP = 'uploadImageStep',\n}\n\nexport interface UploadProps extends WrappedComponentProps {\n animationDelay?: number;\n csButtonText?: string;\n csFailureText?: string;\n csSuccessText?: string;\n csTooLargeMessage?: string;\n csWrongTypeMessage?: string;\n httpOptions?: PostDataHTTPOptions & {\n fileInputName?: string;\n data?: Record<string, string | Blob>;\n };\n /**\n * You can provide a fetcher function with the same interface as the global fetch function, which is used by default.\n * function fetcher(input: RequestInfo, init?: RequestInit): Promise<Response>\n */\n fetcher?: PostDataFetcher;\n maxSize?: number;\n psButtonText?: string;\n psButtonDisabled?: boolean;\n psProcessingText?: string;\n size?: `${Size.SMALL | Size.MEDIUM | Size.LARGE}`;\n /**\n * You can provide multiple rules separated by comma, e.g.: \"application/pdf,image/*\".\n * Using \"*\" will allow every file type to be uploaded.\n */\n usAccept?: string;\n usButtonText?: string;\n usDisabled?: boolean;\n usDropMessage?: string;\n usHelpImage?: React.ReactNode;\n usLabel?: string;\n usPlaceholder?: string;\n /** @deprecated Only a single variant exists, please remove this prop. */\n uploadStep?: `${UploadStep}`;\n onCancel?: () => void;\n onFailure?: (error: unknown) => void;\n onStart?: (file: File) => void;\n onSuccess?: (response: string | Response, fileName: string) => void;\n}\n\ninterface UploadState {\n fileName: string;\n isDroppable: boolean;\n isComplete: boolean;\n isError: boolean;\n isImage: boolean;\n isProcessing: boolean;\n isSuccess: boolean;\n response: unknown;\n uploadedImage: string | undefined;\n}\n\nexport class Upload extends Component<UploadProps, UploadState> {\n declare props: UploadProps & Required<Pick<UploadProps, keyof typeof Upload.defaultProps>>;\n\n static defaultProps = {\n animationDelay: 700,\n maxSize: MAX_SIZE_DEFAULT,\n psButtonDisabled: false,\n size: 'md',\n usAccept: 'image/*',\n usDisabled: false,\n usLabel: '',\n } satisfies Partial<UploadProps>;\n\n dragCounter = 0;\n timeouts = 0;\n\n constructor(props: UploadProps) {\n super(props);\n\n this.state = {\n fileName: '',\n isDroppable: false,\n isComplete: false,\n isError: false,\n isImage: false,\n isProcessing: false,\n isSuccess: false,\n response: undefined,\n uploadedImage: undefined,\n };\n }\n\n getErrorMessage(status?: number) {\n const { csFailureText, csTooLargeMessage, csWrongTypeMessage, maxSize, intl } = this.props;\n switch (status) {\n case 413:\n return (\n csTooLargeMessage ||\n intl.formatMessage(messages.csTooLargeMessage, {\n maxSize: maxSize / 1000000,\n })\n );\n case 415:\n return csWrongTypeMessage || intl.formatMessage(messages.csWrongTypeMessage);\n default:\n return csFailureText || intl.formatMessage(messages.csFailureText);\n }\n }\n\n onDragLeave(event: React.DragEvent<HTMLDivElement>) {\n event.preventDefault();\n this.dragCounter -= 1;\n if (this.dragCounter === 0) {\n this.setState({ isDroppable: false });\n }\n }\n\n onDragEnter(event: React.DragEvent<HTMLDivElement>) {\n event.preventDefault();\n this.dragCounter += 1;\n const { usDisabled } = this.props;\n const { isProcessing } = this.state;\n if (this.dragCounter === 1 && !usDisabled && !isProcessing) {\n this.setState({ isDroppable: true });\n }\n }\n\n async onDrop(event: React.DragEvent<HTMLDivElement>) {\n const { isProcessing } = this.state;\n event.preventDefault();\n if (!isProcessing) {\n this.reset();\n }\n\n if (event.dataTransfer?.files?.[0]) {\n await this.fileDropped(event.dataTransfer.files[0]);\n }\n }\n\n onAnimationCompleted = async (status: ProcessIndicatorStatus) => {\n const { response, isProcessing, fileName } = this.state;\n const { animationDelay } = this.props;\n\n if (isProcessing && status === 'succeeded') {\n const { onSuccess } = this.props;\n this.timeouts = window.setTimeout(() => {\n this.setState(\n {\n isProcessing: false,\n isComplete: true,\n },\n onSuccess ? () => onSuccess(response as string | Response, fileName) : undefined,\n );\n }, animationDelay);\n }\n\n if (isProcessing && status === 'failed') {\n const { onFailure } = this.props;\n this.timeouts = window.setTimeout(() => {\n this.setState(\n {\n isProcessing: false,\n isComplete: true,\n },\n onFailure ? () => onFailure(response) : undefined,\n );\n }, animationDelay);\n }\n };\n\n asyncPost = async (file: File) => {\n const { httpOptions, fetcher } = this.props;\n if (httpOptions == null) {\n throw new Error('Cannot find HTTP options');\n }\n\n const { fileInputName = file.name, data = {} } = httpOptions;\n\n const formData = new FormData();\n formData.append(fileInputName, file);\n Object.keys(data).forEach((key) => formData.append(key, data[key]));\n return postData(httpOptions, formData, fetcher);\n };\n\n asyncResponse = (response: unknown, type: 'success' | 'error') => {\n // Gives time to the animation callback to fire.\n this.timeouts = window.setTimeout(() => {\n this.setState({\n response,\n isError: type === 'error',\n isSuccess: type === 'success',\n });\n }, ANIMATION_FIX);\n };\n\n handleOnClear: React.MouseEventHandler<HTMLButtonElement> = (event) => {\n event.preventDefault();\n const { onCancel } = this.props;\n onCancel?.();\n\n this.reset();\n };\n\n reset = () => {\n this.dragCounter = 0;\n window.clearTimeout(this.timeouts);\n this.setState({\n isComplete: false,\n isError: false,\n isProcessing: false,\n isSuccess: false,\n });\n };\n\n showDataImage = (dataUrl: string) => {\n const { isImage } = this.state;\n if (isImage) {\n this.setState({\n uploadedImage: dataUrl,\n });\n }\n };\n\n fileDropped = async (file: File) => {\n const { httpOptions, maxSize, onStart, usDisabled, usAccept } = this.props;\n const { isProcessing } = this.state;\n\n if (usDisabled || isProcessing) {\n return false;\n }\n\n if (!file) {\n throw new Error('Could not retrieve file');\n }\n\n this.setState({\n fileName: file.name,\n isDroppable: false,\n isProcessing: true,\n });\n\n onStart?.(file);\n\n let file64 = null;\n\n try {\n file64 = await asyncFileRead(file);\n } catch (error) {\n this.asyncResponse(error, 'error');\n }\n\n if (!file64) {\n return false;\n }\n\n this.setState({\n isImage: getFileType(file, file64).includes('image'),\n });\n\n if (!isTypeValid(file, usAccept, file64)) {\n this.asyncResponse(\n new ResponseError(\n new Response(null, {\n status: 415,\n statusText: 'Unsupported Media Type',\n }),\n ),\n 'error',\n );\n return false;\n }\n\n if (!isSizeValid(file, maxSize)) {\n this.asyncResponse(\n new ResponseError(\n new Response(null, {\n status: 413,\n statusText: 'Request Entity Too Large',\n }),\n ),\n 'error',\n );\n return false;\n }\n\n if (httpOptions) {\n // Post the file to provided endpoint\n let response;\n try {\n response = await this.asyncPost(file);\n } catch (error) {\n this.asyncResponse(error, 'error');\n return false;\n }\n this.asyncResponse(response, 'success');\n this.showDataImage(file64);\n return true;\n }\n // Post on form submit. And return the encoded image.\n this.showDataImage(file64);\n this.asyncResponse(file64, 'success');\n return true;\n };\n\n render() {\n const {\n maxSize,\n usDropMessage,\n usAccept,\n usButtonText,\n usDisabled,\n usHelpImage,\n usLabel,\n usPlaceholder,\n psButtonText,\n psProcessingText,\n psButtonDisabled,\n csButtonText,\n csSuccessText,\n size,\n intl,\n } = this.props;\n\n const {\n response,\n fileName,\n isComplete,\n isDroppable,\n isError,\n isImage,\n isProcessing,\n isSuccess,\n uploadedImage,\n } = this.state;\n\n return (\n <div\n className={classNames('droppable-area', {\n droppable: true,\n 'tw-droppable-sm droppable-sm': size === 'sm',\n 'tw-droppable-md droppable-md': size === 'md' || !size,\n 'tw-droppable-lg droppable-lg': size === 'lg',\n 'droppable-dropping': isDroppable,\n 'droppable-processing': isProcessing,\n 'droppable-complete': isComplete,\n 'droppable-negative': isError,\n })}\n onDragEnter={(event) => this.onDragEnter(event)}\n onDragLeave={(event) => this.onDragLeave(event)}\n onDrop={async (event) => this.onDrop(event)}\n onDragOver={(event) => event.preventDefault()}\n >\n {!isProcessing && !isComplete && (\n <UploadImageStep\n fileDropped={async (file) => this.fileDropped(file)}\n isComplete={isComplete}\n usAccept={usAccept}\n usButtonText={usButtonText || intl.formatMessage(messages.usButtonText)}\n usDisabled={usDisabled}\n usHelpImage={usHelpImage}\n usLabel={usLabel}\n usPlaceholder={\n usPlaceholder ||\n intl.formatMessage(messages.usPlaceholder, { maxSize: maxSize / 1000000 })\n }\n />\n )}\n\n {isProcessing && (\n <ProcessingStep\n isComplete={isComplete}\n isError={isError}\n isSuccess={isSuccess}\n psButtonText={psButtonText || intl.formatMessage(messages.psButtonText)}\n psProcessingText={psProcessingText || intl.formatMessage(messages.psProcessingText)}\n psButtonDisabled={psButtonDisabled}\n onAnimationCompleted={async (status) => this.onAnimationCompleted(status)}\n onClear={(event) => this.handleOnClear(event)}\n />\n )}\n {/* Starts render the step when isSuccess or isError are true so markup is there when css transition kicks in\n css transition to work properly */}\n {(isSuccess || isError || isComplete) && (\n <CompleteStep\n fileName={fileName}\n isComplete={isComplete}\n isError={isError}\n isImage={isImage}\n csButtonText={csButtonText || intl.formatMessage(messages.csButtonText)}\n csFailureText={this.getErrorMessage(\n response != null &&\n typeof response === 'object' &&\n 'status' in response &&\n typeof response.status === 'number'\n ? response.status\n : undefined,\n )}\n csSuccessText={csSuccessText || intl.formatMessage(messages.csSuccessText)}\n uploadedImage={uploadedImage}\n onClear={(event) => this.handleOnClear(event)}\n />\n )}\n {!isProcessing && (\n <div className=\"droppable-dropping-card droppable-card\" aria-live=\"polite\">\n <div className=\"droppable-card-content\">\n <div className=\"circle circle-sm text-primary\">\n <PlusIcon size=\"16\" />\n </div>\n <Title type={Typography.TITLE_BODY} className=\"m-t-3\">\n {usDropMessage || intl.formatMessage(messages.usDropMessage)}\n </Title>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default injectIntl(Upload);\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n fileIsTooLarge: {\n id: 'neptune.UploadInput.fileIsTooLarge',\n defaultMessage: 'File is too large',\n description: 'Error message when the selected file size exceeds the limit',\n },\n fileTypeNotSupported: {\n id: 'neptune.UploadInput.fileTypeNotSupported',\n defaultMessage: 'File type not supported',\n description: 'Error message when the selected file is not one of the supported types',\n },\n deleteModalTitle: {\n id: 'neptune.UploadInput.deleteModalTitle',\n defaultMessage: 'Sure you want to remove this file?',\n description: 'Title to display on delete confirmation modal',\n },\n deleteModalBody: {\n id: 'neptune.UploadInput.deleteModalBody',\n defaultMessage: 'Removing this file will delete it from our system.',\n description: 'Body copy to display on delete confirmation modal',\n },\n deleteModalCancelButtonText: {\n id: 'neptune.UploadInput.deleteModalCancelButtonText',\n defaultMessage: 'Cancel',\n description: 'Cancel button text to display on delete confirmation modal',\n },\n deleteModalConfirmButtonText: {\n id: 'neptune.UploadInput.deleteModalConfirmButtonText',\n defaultMessage: 'Remove',\n description: 'Confirm button text to display on delete confirmation modal',\n },\n maximumFilesAlreadyUploaded: {\n id: 'neptune.UploadInput.maximumFilesAlreadyUploaded',\n defaultMessage:\n 'Sorry, this upload failed because we can only accept {maxFilesAllowed} files at once.',\n description:\n 'When number of files to be uploaded is restricted, this message is displayed below the files that are extra',\n },\n});\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n uploadFile: {\n id: 'neptune.UploadButton.uploadFile',\n defaultMessage: 'Upload file',\n description: 'Main CTA copy in the upload button when only a single file is allowed',\n },\n\n uploadFiles: {\n id: 'neptune.UploadButton.uploadFiles',\n defaultMessage: 'Upload files',\n description: 'Main CTA copy in the upload button when multiple files are allowed',\n },\n\n instructions: {\n id: 'neptune.UploadButton.instructions',\n defaultMessage: '{fileTypes}, less than {size}MB',\n description: 'Description about filetypes and size limit for uploading files',\n },\n\n allFileTypes: {\n id: 'neptune.UploadButton.allFileTypes',\n defaultMessage: 'All file types',\n description: 'Copy to show when all filetypes are allowed to be uploaded',\n },\n\n dropFile: {\n id: 'neptune.UploadButton.dropFiles',\n defaultMessage: 'Drop file to start upload',\n description: 'Copy to show when dragging files over the upload component',\n },\n});\n","import { FileType } from '../../common';\n\nexport const DEFAULT_SIZE_LIMIT = 5000;\n\nexport const imageFileTypes = [FileType.PDF, FileType.JPG, FileType.PNG];\n","import { FileType } from '../../common';\n\nconst getAllowedFileTypes = (fileTypes: readonly FileType[] | readonly string[]): string[] =>\n fileTypes.map((fileTypeDefinition: string) =>\n fileTypeDefinition\n .split(',')\n .filter((extension) => !extension.includes('/')) // Filter out mime types\n .map((extension) => extension.replace('.', '').toUpperCase()) // Remove dot and convert extensions to uppercase to be displayed in the instructions\n .join(', '),\n );\n\nexport default getAllowedFileTypes;\n","import { PlusCircle as PlusIcon, Upload as UploadIcon } from '@transferwise/icons';\nimport classNames from 'classnames';\nimport { ChangeEvent, DragEvent, useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Body from '../../body';\nimport { FileType, Typography } from '../../common';\n\nimport MESSAGES from './UploadButton.messages';\nimport { DEFAULT_SIZE_LIMIT, imageFileTypes } from './defaults';\nimport getAllowedFileTypes from './getAllowedFileTypes';\n\ntype AllowedFileTypes = string | readonly string[] | readonly FileType[];\nexport type UploadButtonProps = {\n /**\n * Disable the upload button if your app is not yet ready to accept uploads\n */\n disabled?: boolean;\n\n /**\n * Allow multiple file uploads\n */\n multiple?: boolean;\n\n /**\n * List of allowed filetypes, eg. '*' | '.zip,application/zip' | ['.jpg,.jpeg,image/jpeg', '.png,image/png'] (default: image files + PDF)\n */\n fileTypes?: AllowedFileTypes;\n\n /**\n * Size limit in KBs 1000 KB = 1 MB (default: 5000 KB)\n */\n sizeLimit?: number;\n\n /**\n * Description for the upload button\n */\n description?: string | undefined;\n\n /**\n * Maximum number of files allowed, if provided, shows error below file item\n */\n maxFiles?: number;\n\n /**\n * Called when some files were successfully selected\n *\n * @param files\n */\n onChange: (files: FileList) => void;\n\n /**\n * Id for the upload input\n */\n id?: string;\n\n /**\n * Title for the upload button\n */\n uploadButtonTitle?: string;\n};\n\nexport enum TEST_IDS {\n uploadInput = 'uploadInput',\n mediaBody = 'mediaBody',\n}\n\nconst onDragOver = (event: DragEvent): void => {\n event.preventDefault();\n};\n\nconst DEFAULT_FILE_INPUT_ID = 'np-upload-button';\nconst UploadButton = ({\n disabled,\n multiple,\n description,\n fileTypes = imageFileTypes,\n sizeLimit = DEFAULT_SIZE_LIMIT,\n maxFiles,\n onChange,\n id = DEFAULT_FILE_INPUT_ID,\n uploadButtonTitle,\n}: UploadButtonProps) => {\n const { formatMessage } = useIntl();\n const inputReference = useRef<HTMLInputElement>(null);\n\n const [isDropping, setIsDropping] = useState(false);\n\n const dragCounter = useRef(0);\n\n const reset = (): void => {\n dragCounter.current = 0;\n setIsDropping(false);\n };\n\n const onDragLeave = (event: DragEvent): void => {\n event.preventDefault();\n dragCounter.current -= 1;\n if (dragCounter.current === 0) {\n setIsDropping(false);\n }\n };\n\n const onDragEnter = (event: DragEvent): void => {\n event.preventDefault();\n dragCounter.current += 1;\n if (dragCounter.current === 1) {\n setIsDropping(true);\n }\n };\n\n const onDrop = (event: DragEvent): void => {\n event.preventDefault();\n reset();\n if (event.dataTransfer && event.dataTransfer.files && event.dataTransfer.files[0]) {\n onChange(event.dataTransfer.files);\n }\n };\n\n const filesSelected = (event: ChangeEvent<HTMLInputElement>): void => {\n const { files } = event.target;\n\n if (files) {\n onChange(files);\n\n if (inputReference.current) {\n inputReference.current.value = '';\n }\n }\n };\n\n const getFileTypesDescription = (): string => {\n if (fileTypes === '*') {\n return fileTypes;\n }\n\n return getAllowedFileTypes(Array.isArray(fileTypes) ? fileTypes : [fileTypes]).join(', ');\n };\n\n function getDescription() {\n if (description) {\n return description;\n }\n\n const fileTypesDescription = getFileTypesDescription();\n\n const derivedFileDescription =\n fileTypesDescription === '*' ? formatMessage(MESSAGES.allFileTypes) : fileTypesDescription;\n\n return formatMessage(MESSAGES.instructions, {\n fileTypes: derivedFileDescription,\n size: Math.round(sizeLimit / 1000),\n });\n }\n\n function getAcceptedTypes(): Pick<React.ComponentPropsWithoutRef<'input'>, 'accept'> {\n const areAllFilesAllowed = getFileTypesDescription() === '*';\n\n if (areAllFilesAllowed) {\n return {}; // file input by default allows all files\n }\n\n if (Array.isArray(fileTypes)) {\n return { accept: fileTypes.join(',') };\n }\n\n return { accept: fileTypes as string };\n }\n\n function renderDescription() {\n return (\n <Body className={classNames({ 'text-primary': !disabled })}>\n {getDescription()}\n {maxFiles && (\n <>\n <br />\n {`Maximum ${maxFiles} files.`}\n </>\n )}\n </Body>\n );\n }\n\n function renderButtonTitle() {\n if (uploadButtonTitle) {\n return uploadButtonTitle;\n }\n return formatMessage(multiple ? MESSAGES.uploadFiles : MESSAGES.uploadFile);\n }\n\n return (\n <div\n className={classNames('np-upload-button-container', 'droppable', {\n 'droppable-dropping': isDropping,\n })}\n {...(!disabled && { onDragEnter, onDragLeave, onDrop, onDragOver })}\n >\n <input\n ref={inputReference}\n id={id}\n type=\"file\"\n {...getAcceptedTypes()}\n {...(multiple && { multiple: true })}\n className=\"tw-droppable-input\"\n disabled={disabled}\n name=\"file-upload\"\n data-testid={TEST_IDS.uploadInput}\n onChange={filesSelected}\n />\n {/* eslint-disable-next-line jsx-a11y/label-has-associated-control */}\n <label htmlFor={id} className={classNames('btn', 'np-upload-button')}>\n <div className=\"media\">\n <div className=\"np-upload-icon media-middle media-left\">\n <UploadIcon size={24} className=\"text-link\" />\n </div>\n <div className=\"media-body text-xs-left\" data-testid={TEST_IDS.mediaBody}>\n <Body type={Typography.BODY_LARGE_BOLD} className=\"d-block\">\n {renderButtonTitle()}\n </Body>\n {renderDescription()}\n </div>\n </div>\n </label>\n\n {/* Drop area overlay */}\n {isDropping && (\n <div\n className={classNames(\n 'droppable-card',\n 'droppable-dropping-card',\n 'droppable-card-content',\n )}\n >\n <PlusIcon className=\"m-x-1\" size={24} />\n <div>{formatMessage(MESSAGES.dropFile)}</div>\n </div>\n )}\n </div>\n );\n};\n\nexport default UploadButton;\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n uploadingFailed: {\n id: 'neptune.UploadItem.uploadingFailed',\n defaultMessage: 'Uploading failed',\n description: 'Default error message when upload has failed',\n },\n\n uploaded: {\n id: 'neptune.UploadItem.uploaded',\n defaultMessage: 'Uploaded',\n description: 'Success copy when upload was successful',\n },\n\n uploading: {\n id: 'neptune.UploadItem.uploading',\n defaultMessage: 'Uploading...',\n description: 'Copy that is displayed during uploading a file',\n },\n\n deleting: {\n id: 'neptune.UploadItem.deleting',\n defaultMessage: 'Deleting...',\n description: 'Copy that is displayed during deleting a file',\n },\n\n uploadedFile: {\n id: 'neptune.UploadItem.uploadedFile',\n defaultMessage: 'Uploaded file',\n description: 'Default copy when filename is missing',\n },\n\n removeFile: {\n id: 'neptune.UploadItem.removeFile',\n defaultMessage: 'Remove file {filename}',\n description: 'Screenreader text for the delete file button',\n },\n});\n","import { PropsWithChildren, MouseEvent } from 'react';\n\ntype UploadItemLinkProps = PropsWithChildren<{\n url?: string;\n onDownload?: (event: MouseEvent) => void;\n singleFileUpload: boolean;\n}>;\n\nexport const UploadItemBody = ({\n children,\n url,\n onDownload,\n singleFileUpload,\n}: UploadItemLinkProps) => {\n if (!url) {\n return <div>{children}</div>;\n }\n\n return (\n <a\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={singleFileUpload ? 'np-upload-item--single-file' : 'np-upload-item--link'}\n onClick={onDownload}\n >\n {children}\n </a>\n );\n};\n","import { Bin } from '@transferwise/icons';\nimport classNames from 'classnames';\nimport { useIntl } from 'react-intl';\n\nimport Body from '../../body';\nimport { Size, Status, Typography, Sentiment } from '../../common';\nimport ProcessIndicator from '../../processIndicator/ProcessIndicator';\nimport StatusIcon from '../../statusIcon/StatusIcon';\nimport { UploadedFile, UploadError } from '../types';\n\nimport MESSAGES from './UploadItem.messages';\nimport { UploadItemBody } from './UploadItemBody';\n\nexport type UploadItemProps = JSX.IntrinsicAttributes & {\n file: UploadedFile;\n /**\n * Is this Item part of a multiple- or single-file UploadInput\n */\n singleFileUpload: boolean;\n canDelete: boolean;\n onDelete: () => void;\n\n /**\n * Callback to be called when the file link is clicked.\n * When provided, you need to manually trigger actions to load/download the file.\n *\n * @param file\n */\n onDownload?: (file: UploadedFile) => void;\n};\n\nexport enum TEST_IDS {\n uploadItem = 'uploadItem',\n mediaBody = 'mediaBody',\n}\n\nconst UploadItem = ({\n file,\n canDelete,\n onDelete,\n onDownload,\n singleFileUpload,\n}: UploadItemProps) => {\n const { formatMessage } = useIntl();\n const { status, filename, error, errors, url } = file;\n\n const isSucceeded = [Status.SUCCEEDED, undefined].includes(status) && !!url;\n\n const getIcon = () => {\n if (error || errors?.length || status === Status.FAILED) {\n return <StatusIcon size={Size.SMALL} sentiment={Sentiment.NEGATIVE} />;\n }\n\n let processIndicator: React.ReactNode;\n\n switch (status) {\n case Status.PROCESSING:\n case Status.PENDING:\n processIndicator = <ProcessIndicator size={Size.EXTRA_SMALL} status={Status.PROCESSING} />;\n break;\n case Status.SUCCEEDED:\n case Status.DONE:\n default:\n processIndicator = <StatusIcon size={Size.SMALL} sentiment={Sentiment.POSITIVE} />;\n }\n\n return processIndicator;\n };\n\n const getErrorMessage = (error?: UploadError) =>\n typeof error === 'object' ? error.message : error || formatMessage(MESSAGES.uploadingFailed);\n\n const getMultipleErrors = (errors?: UploadError[]) => {\n if (!errors?.length) {\n return null;\n }\n\n if (errors?.length === 1) {\n return getErrorMessage(errors[0]);\n }\n\n return (\n <ul className=\"np-upload-input-errors m-b-0\">\n {errors.map((error, index) => {\n // eslint-disable-next-line react/no-array-index-key\n return <li key={index}>{getErrorMessage(error)}</li>;\n })}\n </ul>\n );\n };\n\n const getDescription = () => {\n if (error || errors?.length || status === Status.FAILED) {\n return (\n <Body type={Typography.BODY_DEFAULT_BOLD} className=\"text-negative\">\n {errors?.length ? getMultipleErrors(errors) : getErrorMessage(error)}\n </Body>\n );\n }\n\n switch (status) {\n case Status.PENDING:\n return <Body type={Typography.BODY_DEFAULT_BOLD}>{formatMessage(MESSAGES.uploading)}</Body>;\n case Status.PROCESSING:\n return <Body>{formatMessage(MESSAGES.deleting)}</Body>;\n case Status.SUCCEEDED:\n case Status.DONE:\n default:\n return (\n <Body type={Typography.BODY_DEFAULT_BOLD} className=\"text-positive\">\n {formatMessage(MESSAGES.uploaded)}\n </Body>\n );\n }\n };\n\n const getTitle = () => {\n return filename || formatMessage(MESSAGES.uploadedFile);\n };\n\n const onDownloadFile = (event: React.MouseEvent): void => {\n if (onDownload) {\n event.preventDefault();\n onDownload(file);\n }\n };\n\n return (\n <div\n className={classNames('np-upload-item', { 'np-upload-item__link': isSucceeded })}\n data-testid={TEST_IDS.uploadItem}\n >\n <div className=\"np-upload-item__body\">\n <UploadItemBody\n url={isSucceeded ? url : undefined}\n singleFileUpload={singleFileUpload}\n onDownload={onDownloadFile}\n >\n <div className=\"np-upload-button\" aria-live=\"polite\">\n <div className=\"media\">\n <div className=\"np-upload-icon media-left\">{getIcon()}</div>\n <div className=\"media-body text-xs-left\" data-testid={TEST_IDS.mediaBody}>\n <Body className=\"text-word-break d-block text-primary\">{getTitle()}</Body>\n {getDescription()}\n </div>\n </div>\n </div>\n </UploadItemBody>\n {canDelete && (\n <button\n aria-label={formatMessage(MESSAGES.removeFile, { filename })}\n className={classNames('btn', 'np-upload-item__remove-button', 'media-left', {\n 'np-upload-item--single-file': singleFileUpload,\n })}\n type=\"button\"\n onClick={() => onDelete()}\n >\n <Bin size={16} />\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport default UploadItem;\n","import classNames from 'classnames';\nimport { useEffect, useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Button from '../button';\nimport { CommonProps, ControlType, Priority, Status } from '../common';\nimport Modal from '../modal';\nimport { isSizeValid } from '../upload/utils/isSizeValid';\nimport { isTypeValid } from '../upload/utils/isTypeValid';\n\nimport MESSAGES from './UploadInput.messages';\nimport { UploadedFile, UploadError, UploadResponse } from './types';\nimport UploadButton, { UploadButtonProps } from './uploadButton/UploadButton';\nimport { DEFAULT_SIZE_LIMIT, imageFileTypes } from './uploadButton/defaults';\nimport UploadItem, { UploadItemProps } from './uploadItem/UploadItem';\n\nexport type UploadInputProps = {\n /**\n * List of already existing, failed or in progress files\n */\n files?: readonly UploadedFile[];\n\n /**\n * The key of the file in the returned FormData object (default: file)\n */\n fileInputName?: string;\n\n /**\n * Callback that handles form submission\n *\n * @param formData\n */\n onUploadFile: (formData: FormData) => Promise<UploadResponse>;\n\n /**\n * Provide a callback if the file can be removed/deleted from the server\n * Your app is responsible for reloading the uploaded files list and updating the component to ensure that the file has in fact been deleted successfully\n *\n * @param id\n */\n onDeleteFile?: (id: string | number) => Promise<any>;\n\n /**\n * Provide a callback to trigger on validation error\n *\n * @param file\n */\n onValidationError?: (file: UploadedFile) => void;\n\n /**\n * Provide a callback to trigger on change whenever the files are updated\n *\n * @param files\n */\n onFilesChange?: (files: UploadedFile[]) => void;\n\n /**\n * Confirmation modal displayed on delete\n */\n deleteConfirm?: {\n /**\n * The title of the confirmation modal on delete\n */\n title?: string;\n\n /**\n * The body of the confirmation modal on delete\n */\n body?: React.ReactNode;\n\n /**\n * The confirm button text of the confirmation modal on delete\n */\n confirmText?: string;\n\n /**\n * The cancel button text of the confirmation modal on delete\n */\n cancelText?: string;\n };\n\n /**\n * Maximum number of files allowed, if provided, shows error below file item\n */\n maxFiles?: number;\n\n /**\n * Error message to show when the maximum number of files are uploaded already\n */\n maxFilesErrorMessage?: string;\n\n /**\n * Error message to show when files over a allowed size limit are uploaded\n */\n sizeLimitErrorMessage?: string;\n} & Pick<\n UploadButtonProps,\n 'disabled' | 'multiple' | 'fileTypes' | 'sizeLimit' | 'description' | 'id' | 'uploadButtonTitle'\n> &\n Pick<UploadItemProps, 'onDownload'> &\n CommonProps;\n\nfunction generateFileId(file: File) {\n const { name, size } = file;\n const uploadTimeStamp = new Date().getTime();\n return `${name}_${size}_${uploadTimeStamp}`;\n}\n\nconst UploadInput = ({\n files = [],\n fileInputName = 'file',\n className,\n deleteConfirm,\n disabled,\n multiple = false,\n fileTypes = imageFileTypes,\n sizeLimit = DEFAULT_SIZE_LIMIT,\n description,\n onUploadFile,\n onDeleteFile,\n onValidationError,\n onFilesChange,\n onDownload,\n maxFiles,\n maxFilesErrorMessage,\n id,\n sizeLimitErrorMessage,\n uploadButtonTitle,\n}: UploadInputProps) => {\n const [markedFileForDelete, setMarkedFileForDelete] = useState<UploadedFile | null>(null);\n const [mounted, setMounted] = useState(false);\n const { formatMessage } = useIntl();\n\n const PROGRESS_STATUSES = new Set([Status.PENDING, Status.PROCESSING]);\n\n const [uploadedFiles, setUploadedFiles] = useState<readonly UploadedFile[]>(\n multiple || files.length === 0 ? files : [files[0]],\n );\n\n const uploadedFilesListReference = useRef(multiple || files.length === 0 ? files : [files[0]]);\n\n function addFileToList(recentUploadedFile: UploadedFile) {\n function addToList(listToAddTo: readonly UploadedFile[]) {\n return [...listToAddTo, recentUploadedFile];\n }\n\n setUploadedFiles(addToList);\n uploadedFilesListReference.current = addToList(uploadedFilesListReference.current);\n }\n\n const removeFileFromList = (file: UploadedFile) => {\n function filterOutFrom(listToFilterFrom: readonly UploadedFile[]) {\n return listToFilterFrom.filter(\n (fileInList) => file !== fileInList && file.id !== fileInList.id,\n );\n }\n\n setUploadedFiles(filterOutFrom);\n uploadedFilesListReference.current = filterOutFrom(uploadedFilesListReference.current);\n };\n\n const modifyFileInList = (file: UploadedFile, updates: Partial<UploadedFile>) => {\n const updateListItem = (listToUpdate: readonly UploadedFile[]) =>\n listToUpdate.map((fileInList) => {\n return fileInList === file || fileInList.id === file.id\n ? { ...file, ...updates }\n : fileInList;\n });\n\n setUploadedFiles(updateListItem);\n uploadedFilesListReference.current = updateListItem(uploadedFilesListReference.current);\n };\n\n const removeFile = (file: UploadedFile) => {\n const { id, status } = file;\n\n if (status === Status.FAILED) {\n // If removing a failed upload, we're just updating the view\n removeFileFromList(file);\n } else if (onDeleteFile && id) {\n // Set status to PROCESSING\n modifyFileInList(file, { status: Status.PROCESSING, error: undefined });\n\n // Notify host app about deletion\n onDeleteFile(id)\n .then(() => removeFileFromList(file))\n .catch((error) => {\n modifyFileInList(file, { error: error as UploadError });\n });\n }\n };\n\n function handleFileUploadFailure(file: File, failureMessage: string) {\n const { name } = file;\n const id = generateFileId(file);\n const failedUpload = {\n id,\n filename: name,\n status: Status.FAILED,\n error: failureMessage,\n };\n\n addFileToList(failedUpload);\n\n if (onValidationError) {\n onValidationError(failedUpload);\n }\n }\n\n function getNumberOfFilesUploaded() {\n const uploadInitiatedStatus = new Set([Status.SUCCEEDED, Status.PENDING]);\n const validFiles = uploadedFilesListReference.current.filter(\n (file) => file.status && uploadInitiatedStatus.has(file.status),\n );\n return validFiles.length;\n }\n\n function areMaximumFilesUploadedAlready() {\n if (!maxFiles) {\n return false;\n }\n\n const numberOfValidFiles = getNumberOfFilesUploaded();\n return numberOfValidFiles >= maxFiles;\n }\n\n // One or more files selected, create entries for them\n const addFiles = (selectedFiles: FileList) => {\n for (let i = 0; i < selectedFiles.length; i += 1) {\n const file = selectedFiles.item(i);\n\n // Returning a FormData[] array instead of FileList so we can filter out incorrect files\n const formData = new FormData();\n\n if (file) {\n const { name } = file;\n const id = generateFileId(file);\n\n const allowedFileTypes = typeof fileTypes === 'string' ? fileTypes : fileTypes.join(',');\n\n // Check if file type is valid\n if (!isTypeValid(file, allowedFileTypes)) {\n handleFileUploadFailure(file, formatMessage(MESSAGES.fileTypeNotSupported));\n continue;\n }\n\n // Check if the filesize is valid\n // Convert to rough bytes\n if (!isSizeValid(file, sizeLimit * 1000)) {\n const failureMessage = sizeLimitErrorMessage || formatMessage(MESSAGES.fileIsTooLarge);\n handleFileUploadFailure(file, failureMessage);\n continue;\n }\n\n if (areMaximumFilesUploadedAlready()) {\n const failureMessage =\n maxFilesErrorMessage ||\n formatMessage(MESSAGES.maximumFilesAlreadyUploaded, { maxFilesAllowed: maxFiles });\n handleFileUploadFailure(file, failureMessage);\n continue;\n }\n\n formData.append(fileInputName, file);\n const pendingFile = {\n id,\n filename: name,\n status: Status.PENDING,\n };\n\n addFileToList(pendingFile);\n\n // Start uploading the file\n onUploadFile(formData)\n .then(({ id, url, error }: UploadResponse) => {\n // Replace the temporary id with the final one received from the API, and also set any errors\n modifyFileInList(pendingFile, { id, url, error, status: Status.SUCCEEDED });\n })\n .catch((error) => {\n modifyFileInList(pendingFile, { error: error as UploadError, status: Status.FAILED });\n });\n\n if (!multiple) {\n // Only upload a single file\n break;\n }\n }\n }\n };\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n useEffect(() => {\n if (onFilesChange && mounted) {\n onFilesChange([...uploadedFiles]);\n }\n }, [onFilesChange, uploadedFiles]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <>\n <div className={classNames('np-upload-input', className, { disabled })}>\n {uploadedFiles.map((file) => (\n <UploadItem\n key={file.id}\n file={file}\n singleFileUpload={!multiple}\n canDelete={\n (!!onDeleteFile || file.status === Status.FAILED) &&\n (!file.status || !PROGRESS_STATUSES.has(file.status))\n }\n onDelete={\n file.status === Status.FAILED\n ? () => removeFile(file)\n : () => setMarkedFileForDelete(file)\n }\n onDownload={onDownload}\n />\n ))}\n {(multiple || (!multiple && !uploadedFiles.length)) && (\n <UploadButton\n id={id}\n uploadButtonTitle={uploadButtonTitle}\n disabled={areMaximumFilesUploadedAlready() || disabled}\n multiple={multiple}\n fileTypes={fileTypes}\n sizeLimit={sizeLimit}\n description={description}\n maxFiles={maxFiles}\n onChange={addFiles}\n />\n )}\n </div>\n <Modal\n title={\n deleteConfirm?.title !== undefined\n ? deleteConfirm.title\n : formatMessage(MESSAGES.deleteModalTitle)\n }\n body={\n deleteConfirm?.body !== undefined\n ? deleteConfirm.body\n : formatMessage(MESSAGES.deleteModalBody)\n }\n open={!!markedFileForDelete}\n footer={\n <>\n <Button\n block\n onClick={() => {\n setMarkedFileForDelete(null);\n }}\n >\n {deleteConfirm?.cancelText || formatMessage(MESSAGES.deleteModalCancelButtonText)}\n </Button>\n <Button\n block\n priority={Priority.SECONDARY}\n type={ControlType.NEGATIVE}\n onClick={() => {\n if (markedFileForDelete) {\n removeFile(markedFileForDelete);\n }\n setMarkedFileForDelete(null);\n }}\n >\n {deleteConfirm?.confirmText || formatMessage(MESSAGES.deleteModalConfirmButtonText)}\n </Button>\n </>\n }\n onClose={() => {\n setMarkedFileForDelete(null);\n }}\n />\n </>\n );\n};\n\nexport default UploadInput;\n","import { useContext } from 'react';\n\nimport { SnackbarContext } from './SnackbarContext';\n\nfunction useSnackbar() {\n const { createSnackbar } = useContext(SnackbarContext);\n\n return createSnackbar;\n}\n\nexport default useSnackbar;\n","import cs from './cs.json';\nimport de from './de.json';\nimport en from './en.json';\nimport es from './es.json';\nimport fr from './fr.json';\nimport hu from './hu.json';\nimport id from './id.json';\nimport it from './it.json';\nimport ja from './ja.json';\nimport pl from './pl.json';\nimport pt from './pt.json';\nimport ro from './ro.json';\nimport ru from './ru.json';\nimport th from './th.json';\nimport tr from './tr.json';\nimport uk from './uk.json';\nimport zhCN from './zh-CN.json';\nimport zhHK from './zh-HK.json';\n\nconst translations: Record<string, Record<string, string>> = {\n cs,\n de,\n en,\n 'en-US': en,\n es,\n fr,\n hu,\n id,\n it,\n ja,\n pl,\n pt,\n ro,\n ru,\n th,\n tr,\n uk,\n 'zh-CN': zhCN,\n 'zh-HK': zhHK,\n};\n\nexport default translations;\n"],"names":["Typography","DEFAULT_TYPE","BODY_DEFAULT","bodyTypes","Set","BODY_DEFAULT_BOLD","BODY_LARGE","BODY_LARGE_BOLD","Body","forwardRef","as","Element","type","className","props","reference","isTypeSupported","has","_jsx","ref","classNames","HistoryNavigator","history","currIndex","historyLimit","constructor","length","reset","newHistory","add","element","push","redo","historyLength","undo","isIosDevice","sampleTouchDevices","matchString","map","device","join","regex","RegExp","navigator","test","userAgent","addClickClassToDocumentOnIos","document","documentElement","classList","removeClickClassFromDocumentOnIos","remove","isServerSide","window","isBrowser","stopPropagation","event","preventDefault","nativeEvent","stopImmediatePropagation","NO_SCROLL_CLASS","addNoScrollClass","removeNoScrollClass","Theme","Direction","ControlType","Priority","Breakpoint","Size","Width","Type","DateMode","MonthFormat","Position","Layout","Status","Sentiment","ProfileType","Variant","Scroll","MarkdownNodeType","FileType","DEFAULT_LANG","DEFAULT_LOCALE","RTL_LANGUAGES","SUPPORTED_LANGUAGES","adjustLocale","locale","localeTrimmed","trim","Intl","Locale","replace","baseName","error","console","getLangFromLocale","adjustedLocale","language","includes","getCountryFromLocale","region","getDirectionFromLocale","RTL","LTR","CONTAINER_SIZE","EXTRA_SMALL","SMALL","MEDIUM","ExtraSmallChevron","role","children","width","height","viewBox","fill","focusable","fillRule","d","Chevron","orientation","BOTTOM","size","disabled","classNameValue","sizeValue","ChevronUp","Option","media","title","content","component","button","decision","complex","inverseMediaCircle","showMediaAtAllSizes","showMediaCircle","isContainerAligned","rest","_jsxs","AccordionItem","ariaLabel","id","subtitle","onClick","open","icon","theme","iconElement","cloneElement","fallbackId","useId","accordionId","TOP","Accordion","indexOpen","items","itemsOpen","setItemsOpen","useState","value","index","handleOnClick","newItems","_Fragment","item","ActionButton","undefined","priority","PRIMARY","text","SECONDARY","ActionOption","action","sharedProps","getAriaLabel","labels","defineMessages","CloseButton","filled","isDisabled","testId","intl","useIntl","formatMessage","messages","Icon","CrossCircleFill","Cross","LARGE","iconTypeMap","positive","Check","neutral","Info","warning","Alert","negative","pending","ClockBorderless","info","success","StatusIcon","sentiment","iconColor","TITLE_GROUP","titleTypeMapping","TITLE_SCREEN","TITLE_SECTION","TITLE_SUBSECTION","TITLE_BODY","Title","mapping","HeaderTag","logActionRequired","message","process","env","NODE_ENV","warn","logActionRequiredIf","conditional","reader","commonmark","Parser","writer","HtmlRenderer","safe","NODE_TYPE_LIST","Object","values","Markdown","allowList","blockList","config","linkTarget","link","target","paragraphClass","paragraph","parser","nodes","parsed","parse","toExclude","filter","stripNodes","createMarkup","render","dangerouslySetInnerHTML","__html","walker","next","node","entering","firstChild","insertBefore","unlink","STRONG","InlineMarkdown","opensInNewTab","Link","href","isBlank","rel","NavigateAwayIcon","Action","LINK_LARGE","AlertArrowPosition","resolveType","arrow","dismissible","onDismiss","variant","useEffect","resolvedType","shouldFire","setShouldFire","closeButtonReference","useRef","alertArrowClassNames","onTouchStart","onTouchEnd","Node","current","contains","top","location","assign","onTouchMove","NEGATIVE","AvatarType","avatarColors","hashSeed","seed","base","modulo","hashValue","basePow","i","charCodeAt","getAvatarColorFromSeed","backwardsCompatibleSize","Avatar","backgroundColor","backgroundColorSeed","outlined","sizeFromProps","LIGHT","backgroundColorFromSeed","useMemo","classnames","Boolean","style","Badge","badge","border","classes","OptionalBadge","url","altText","statusIcon","src","alt","AvatarWrapper","profileType","profileId","badgeUrl","badgeAltText","badgeStatusIcon","name","avatarProps","badgeProps","hasImageLoadError","setImageLoadError","isBusinessProfile","BUSINESS","getAvatarProps","THUMBNAIL","onError","ICON","BriefcaseIcon","ProfileIcon","INITIALS","getInitials","toString","allInitials","split","part","toUpperCase","slice","radius","xxs","xs","sm","xl","ANIMATION_DURATION_IN_MS","ProcessIndicator","Component","defaultProps","status","interval","timeout","state","componentDidMount","setInterval","targetStatus","targetSize","onAnimationCompleted","currentStatus","currentSize","setState","setTimeout","shouldComponentUpdate","nextProps","nextState","isSameStatus","isSameSize","componentWillUnmount","clearInterval","clearTimeout","dataTestId","FAILED","HIDDEN","SUCCEEDED","xmlns","cx","cy","r","fillOpacity","loadingAriaLabel","typeClassMap","ACCENT","POSITIVE","priorityClassMap","TERTIARY","deprecatedTypeMap","LINK","PAY","DANGER","oldTypePriorityMap","deprecatedTypeMapMessage","deprecatedTypes","keys","establishNewType","originalType","establishNewPriority","originalPriority","logDeprecationNotices","Button","block","loading","newType","newPriority","processIndicatorSize","htmlType","restProps","Card","isSmall","e","displayName","Display","Heading","DISPLAY_LARGE","useConditionalListener","attachListener","callback","eventType","parent","isUndefined","addEventListener","removeEventListener","DirectionContext","createContext","DirectionProvider","direction","Provider","useDirection","useContext","isRTL","ObserverParams","threshold","useHasIntersected","elRef","hasIntersected","setHasIntersected","isValidReference","handleOnIntersect","entries","observer","forEach","entry","isIntersecting","unobserve","didCancel","IntersectionObserver","observe","useMedia","query","useSyncExternalStore","onStoreChange","mediaQueryList","matchMedia","matches","useScreenSize","useLayout","screenXs","screenSm","screenMd","screenLg","screenXl","EXTRA_LARGE","isMobile","isExtraSmall","isMedium","isLarge","isExtraLarge","EmptyTransparentImage","Image","onLoad","stretch","shrink","elementReference","imageSource","imageOnLoad","defaultPromoCardContext","onChange","PromoCardContext","usePromoCardContext","PromoCardIndicator","label","testid","isIconString","IconComponent","check","ArrowRight","download","Download","PromoCard","description","defaultChecked","hrefLang","headingLevel","imageAlt","imageClass","indicatorLabel","indicatorIcon","isChecked","onKeyDown","tabIndex","useDisplayFont","anchorRef","anchorId","contextIsDisabled","checked","setChecked","handleClick","componentId","getIconType","commonClasses","commonProps","anchorProps","checkedProps","key","getTitle","titleContent","titleProps","DISPLAY_SMALL","React","memo","LEFT_SCROLL_OFFSET","Carousel","header","cards","scrollPosition","setScrollPosition","previousScrollPosition","setPreviousScrollPosition","scrollIsAtEnd","setScrollIsAtEnd","visibleCardOnMobileView","setVisibleCardOnMobileView","carouselElementRef","carouselCardsRef","isLeftActionButtonEnabled","areActionButtonsEnabled","focusedCard","setFocusedCard","updateScrollButtonsState","scrollWidth","offsetWidth","scrollAtEnd","scrollDirecton","cardsInFullViewIds","card","isVisible","cardElement","getAttribute","visibleCardIndex","visibleCardId","scrollCarousel","cardWidth","res","Math","floor","scrollBy","left","behavior","handleOnKeyDown","nextIndex","nextCard","anchorElement","focus","scrollCardIntoView","currentTarget","click","scrollIntoView","inline","addElementToCardsRefArray","ChevronLeft","ChevronRight","onScroll","scrollLeft","onFocus","cardContent","styles","el","hrefTarget","container","cWidth","cScrollOffset","elemLeft","offsetLeft","elemRight","isExpanded","details","isOpen","FieldLabelIdContext","FieldLabelIdContextProvider","InputIdContext","InputIdContextProvider","InputDescribedByContext","InputDescribedByProvider","InputInvalidContext","InputInvalidProvider","useInputAttributes","nonLabelable","labelId","withInputAttributes","args","ComponentWithInputAttributes","inputAttributes","CheckboxButton","Checkbox","required","readOnly","secondary","onBlur","checkbox","innerDisabled","CheckboxOption","Chip","onRemove","onKeyPress","ariaChecked","closeButton","isActionable","defaultRole","isModern","useTheme","previousCloseButtonShown","Chips","chips","selected","multiple","isSelected","Array","isArray","handleOnChange","selectedValue","isCurrentlyEnabled","isEnabled","chip","chipSelected","choice","CircularButton","Number","FocusBoundary","wrapperReference","preventScroll","FocusScope","contain","restoreFocus","withNextPortalWrapper","mounted","setMounted","createPortal","body","DimmerManager","dimmers","dimmer","dimmerIndex","indexOf","splice","isTop","EXIT_ANIMATION","dimmerManager","handleTouchMove","isTouchedElementDimmer","Dimmer","disableClickToClose","contentPosition","fadeContentOnEnter","fadeContentOnExit","scrollable","transparent","onClose","hasNotExited","setHasNotExited","dimmerReference","closeOnClick","handleKeyDown","useCallback","onEnter","onExited","localReferenceCopy","passive","DimmerWrapper","CSSTransition","nodeRef","in","appear","enter","exit","enterDone","unmountOnExit","DimmerContentWrapper","scrollBody","screenMode","ThemeProvider","isNotRootProvider","withNextPortal","SlidingPanel","position","showSlidingPanelBorder","slidingPanelPositionFixed","localReference","useImperativeHandle","_createElement","Drawer","footerContent","headerTitle","titleId","INITIAL_Y_POSITION","CONTENT_SCROLL_THRESHOLD","MOVE_OFFSET_THRESHOLD","BottomSheet","bottomSheetReference","topBarReference","contentReference","pressed","setPressed","animationId","moveOffset","initialYCoordinate","isContentScrollPositionAtTop","move","newHeight","transform","close","removeProperty","onSwipeStart","touches","clientY","onSwipeMove","offset","calculateOffsetAfterMove","requestAnimationFrame","onSwipeEnd","cancelAnimationFrame","scrollTop","afterMoveYCoordinate","setContentMaxHeight","safeZoneHeight","topbarHeight","windowHight","innerHeight","screenHeight","maxHeight","is400Zoom","ZOOM_400","onMouseDown","onMouseMove","onMouseUp","CriticalCommsBanner","AlertCircleFill","DangerIcon","getDayNames","format","days","date","Date","formatDate","weekday","setDate","getDate","moveToWithinRange","min","max","isWithinRange","getMonthNames","months","monthFormat","month","setMonth","getMonth","isDateValid","validDateObject","validDateString","dateString","dateObject","isNaN","getTime","isMonthAndYearFormat","MDY","YMD","monthLabel","dayLabel","yearLabel","dayPlaceholder","yearPlaceholder","convertToLocalMidnight","utcDate","getUTCFullYear","getUTCMonth","getUTCDate","DateInput","ariaLabelledByProp","dayAutoComplete","yearAutoComplete","LONG","mode","DAY_MONTH_YEAR","placeholders","idProp","selectProps","ariaLabelledBy","getDateObject","getInitialDate","unit","getFullYear","day","setDay","displayDay","setDisplayDay","year","setYear","displayYear","setDisplayYear","lastBroadcastedValue","setLastBroadcastedValue","monthNames","getDateAsString","MONTH_YEAR","getSelectElement","SelectInput","placeholder","from","_","renderValue","SelectInputOptionContent","handleMonthChange","isDayValid","newDay","newMonth","newYear","maxDay","handleInternalValue","broadcastNewValue","dateValue","setFullYear","handleDayChange","newDayString","newDayNumber","parseInt","selectedMonth","handleYearChange","newYearString","newYearNumber","newValue","monthYearOnly","monthWidth","getDay","Input","inputMode","pattern","autoComplete","maxLength","getYear","monthBeforeDay","yearFirst","shouldPropagateOnFocus","shouldPropagateOnBlur","relatedTarget","targetParent","closest","relatedParent","blurElementParent","focusElement","activeElement","focusElementParent","POPOVER_OFFSET","fallbackPlacements","RIGHT","LEFT","Panel","flip","altAxis","anchorWidth","arrowElement","setArrowElement","popperElement","setPopperElement","modifiers","options","tether","padding","attributes","forceUpdate","usePopper","placement","contentStyle","clientWidth","popper","ResponsivePanel","DateTrigger","selectedDate","onClear","previous","twentyYears","goTo20YearView","buttonClasses","DateHeader","onLabelClick","onPreviousClick","onNextClick","dateMode","getFocusableTime","timeSpan","find","time","isActive","isNow","getStartOfDay","TableLink","longTitle","active","today","autofocus","buttonRef","onCalendarClick","calculateAriaLabel","SHORT_DAY_FORMAT","DayCalendarTable","PureComponent","getTableStructure","viewMonth","viewYear","firstDayOfMonth","daysInMonth","week","weeks","daysShort","daysLong","selectDay","onSelect","isToday","getAutofocusDay","flatMap","autoFocusDay","weekIndex","dayIndex","injectIntl","DayCalendar","selectPreviousMonth","onViewDateUpdate","selectNextMonth","ROWS","COLS","MONTH_ONLY_FORMAT","MonthCalendarTable","getLink","autofocusMonth","isThisMonth","colSpan","rowIndex","colIndex","MonthCalendar","onMonthSelect","selectPreviousYear","selectNextYear","YEAR_ONLY_FORMAT","YearCalendarTable","startYear","isThisYear","autofocusYear","years","YearCalendar","onYearSelect","selectPreviousYears","selectNextYears","DateLookup","clearable","createRef","dropdown","originalDate","getDerivedStateFromProps","propsSelected","propsMin","propsMax","hasSelectedChanged","hasMinChanged","hasMaxChanged","viewDateThatIsWithinRange","componentDidUpdate","previousProps","focusOn","mediaQuery","discard","adjustDate","daysToAdd","monthsToAdd","yearsToAdd","preferredElement","fallbackElement","querySelector","switchMode","switchToDays","switchToMonths","switchToYears","handleSelectedDateUpdate","handleViewDateUpdate","getCalendar","handleClear","NavigationOption","Tile","DecisionPresentation","DecisionType","Decision","presentation","LIST","NAVIGATION","showMediaCircleInList","renderedOptions","list","LIST_BLOCK","LIST_BLOCK_GRID","breakpoint","isGrid","isLayoutHorizontal","layout","HORIZONTAL_LEFT_ALIGNED","HORIZONTAL_RIGHT_ALIGNED","HORIZONTAL_JUSTIFIED","getAlignmentClasses","defaultDefinitions","DefinitionList","definitions","muted","VERTICAL_ONE_COLUMN","VERTICAL_TWO_COLUMN","definition","DropFade","show","setHeight","clonedChild","onEntering","scrollHeight","onEntered","onExit","onExiting","ESCAPED_OPENING_CHEVRON","ESCAPED_CLOSING_CHEVRON","EmphasisHtmlTransformer","tags","whitelistedTags","tag","transformed","opening","closing","escapedRegex","unsafe","reduce","accumulator","SUPPORTED_TAGS","emphasisHtmlTransformer","Emphasis","transformedText","iconTypes","ERROR","SUCCESS","WARNING","InlineAlert","Label","htmlFor","Field","propMessage","propType","NEUTRAL","hint","hasError","fallbackInputId","inputId","descriptionId","FlowHeader","bottomContent","HORIZONTAL","leftContent","rightContent","isVertical","VERTICAL","LogoFlagInverse","LogoFlagPlatformInverse","LogoFlagPlatform","LogoFlag","LogoWiseInverse","LogoWisePlatformInverse","LogoWisePlatform","LogoWise","svgPaths","WISE","WISE_BUSINESS","WISE_INVERSE","WISE_BUSINESS_INVERSE","WISE_PLATFORM","WISE_PLATFORM_INVERSE","WISE_FLAG","WISE_FLAG_INVERSE","WISE_FLAG_PLATFORM","WISE_FLAG_PLATFORM_INVERSE","LogoType","labelByType","Logo","inverse","LogoSm","LogoMd","Tooltip","setOpen","anchorReference","tooltipId","onMouseOver","onMouseOut","supportsTouchEvents","onTouchStartIsDefined","ontouchstart","maxTouchPointsIsDefined","maxTouchPoints","documentTouchIsDefined","DocumentTouch","userAgentSuggestsTouchDevice","match","isTouchDevice","clamp","to","Stepper","steps","activeStep","activeStepIndex","stepPercentage","percentageCompleted","renderStep","step","clickable","labelButton","hoverLabel","right","back","AnimatedLabel","activeLabel","nextLabel","BackButton","ArrowLeftIcon","FlowNavigation","avatar","logo","done","onGoBack","newAvatar","displayGoBack","HeaderAction","Header","InfoPresentation","TRANSITION_DURATION_IN_MILLISECONDS","Modal","footer","scroll","VIEWPORT","CENTER","disableDimmerClickToClose","otherProps","checkSpecialClasses","classToCheck","isCompact","noDivider","CONTENT","resolvePlacement","preferredPlacement","Popover","resolvedPlacement","handleOnClose","isValidElement","prevOpen","POPOVER","isModal","MODAL","buttonProps","HelpCircleIcon","inputClassNameBase","useEffectEvent","Error","useResizeObserver","handleCallback","resizeObserver","ResizeObserver","box","disconnect","cssValueWithUnit","InputPaddingStartContext","InputPaddingEndContext","useInputPaddings","paddingStart","paddingEnd","paddingInlineStart","paddingInlineEnd","inputPaddingInitialState","initialContentWidth","inputAddonDefaultPadding","inputAddonContentWidthAddendByPadding","InputGroup","addonStart","addonEnd","setPaddingStart","setPaddingEnd","InputAddon","none","md","interactive","setInputPadding","inlineSize","borderBoxSize","targetStyle","getComputedStyle","contentRect","parseFloat","shape","inputPaddings","getSymbolsInPatternWithPosition","patternWithSymbolsPosition","patternArray","symbol","formatWithPattern","valueArray","patternSymbol","last","pop","unformatWithPattern","getSymbolsInPattern","getCountOfSymbolsInSelection","selectionStart","selectionEnd","getDistanceToNextSymbol","applicablePattern","countConsecutiveSymbols","getDistanceToPreviousSymbol","reverse","cursor","groupSize","condition","getCursorPositionAfterActionStroke","pastedLength","cursorPosition","WithDisplayFormat","displayPattern","unformattedValue","historyNavigator","prevDisplayPattern","triggerType","triggerEvent","unFormattedValue","getUserAction","charCode","String","fromCharCode","which","toLowerCase","ctrlKey","metaKey","shiftKey","resetEvent","detectUndoRedo","persist","newFormattedValue","handleOnPaste","clipboardData","getData","handleOnCut","isKeyAllowed","symbolsInPattern","character","handleDelete","handleCursorPositioning","broadcastValue","handleOnBlur","handleOnFocus","newStack","startPosition","toDelete","count","getCursorPositionAfterKeystroke","setSelectionRange","minLength","renderProps","onPaste","onCut","InputWithDisplayFormat","SearchInput","Search","PolymorphicWithOverrides","__overrides","restOverrides","useVirtualKeyboard","virtualKeyboard","initialOverlaysContent","overlaysContent","PreventScroll","usePreventScroll","renderTrigger","initialFocusRef","onCloseEnd","refs","context","useFloating","onOpenChange","dismiss","useDismiss","useRole","getReferenceProps","getFloatingProps","useInteractions","floatingKey","setFloatingKey","setReference","getInteractionProps","FloatingPortal","Transition","beforeEnter","prev","afterLeave","Child","enterFrom","leaveTo","FloatingFocusManager","initialFocus","Fragment","setFloating","ButtonInput","floatingPadding","floatingStyles","middleware","crossAxis","shift","floatingSize","apply","elements","rects","availableHeight","floating","setProperty","whileElementsMounted","autoUpdate","leave","noResultsFound","searchableString","normalize","inferSearchableStrings","innerValue","SelectInputTriggerButtonPropsContext","SelectInputOptionContentWithinTriggerContext","dedupeSelectInputOptionItem","existingValues","dedupeSelectInputItems","option","filterSelectInputOptionItem","needle","filterMatchers","some","haystack","filterSelectInputItems","defaultRenderTrigger","placeholderShown","clear","SelectInputClearButton","ChevronDown","SelectInputTriggerButton","dateTriggerMessages","noop","defaultValue","controlledValue","compareValues","renderFooter","filterable","filterPlaceholder","UNSAFE_triggerButtonProps","onFilterChange","initialized","handleClose","filterQuery","_setFilterQuery","setFilterQuery","queryNormalized","triggerRef","OptionsOverlay","searchInputRef","listboxRef","controllerRef","ListboxBase","by","uiDisabled","mergeProps","SelectInputOptions","interactionProps","SelectInputOptionsContainer","ariaOrientation","ariaActiveDescendant","onAriaActiveDescendantChange","handleAriaActiveDescendantChange","resultsEmpty","listboxContainerRef","offsetHeight","showStatus","statusId","listboxId","Options","static","setAttribute","removeAttribute","dispatchEvent","KeyboardEvent","bubbles","CrossCircle","SelectInputItemView","SelectInputOption","SelectInputGroupItemView","headerId","note","withinTrigger","TextArea","InstructionsList","dos","donts","sort","dosInstructions","doThis","Instruction","dontsInstructions","dont","orderedInstructions","isInstructionNode","DoIcon","DontIcon","ListItem","Loader","small","displayInstantly","hasDebounced","setHasDebounced","cancelled","legacySize","supportedSize","getSupportedSize","Money","amount","currency","formatMoney","selectPlaceholder","currencyDecimals","BIF","BYR","CLP","DJF","GNF","JPY","KMF","KRW","MGA","PYG","RWF","VND","VUV","XAF","XOF","XPF","HUF","BHD","JOD","KWD","OMR","TND","DEFAULT_CURRENCY_DECIMALS","isNumberLocaleSupported","number","numberString","toLocaleString","getValidLocale","noUnderscoreLocale","NumberFormat","getCurrencyDecimals","upperCaseCurrency","getDecimalSeparator","parseAmount","validLocale","precision","groupSeparator","decimalSeparator","numberWithStandardDecimalSeparator","parsedAmount","toFixed","abs","isNumberOrNull","v","isNumber","isNull","formatAmountIfSet","maxLengthOverride","formatAmount","parseNumber","allowedInputKeys","MoneyInput","amountFocused","searchQuery","formattedAmount","selectedCurrency","UNSAFE_componentWillReceiveProps","isInputAllowedForKeyEvent","isNumberKey","handlePaste","paste","isEmpty","onAmountChange","onAmountBlur","setAmount","onAmountFocus","getSelectOptions","selectOptions","filterCurrenciesForQuery","currencies","formattedOptions","currentGroupOptions","searchable","previousState","handleSelectChange","handleSearchChange","onCurrencyChange","handleCustomAction","onCustomAction","onSearchChange","filteredOptions","amountInputId","addon","hasSingleCurrency","firstItem","customActionLabel","isFixedCurrency","Flag","code","intrinsicSize","searchPlaceholder","removeDuplicateValueOptions","currencyOptionFitsQuery","sortOptionsLabelsToFirst","uniqueValues","property","first","second","firstContains","secondContains","NavigationOptionList","Children","child","STORAGE_NAME","getLocalStorage","storageItem","localStorage","getItem","storage","JSON","Nudge","mediaName","persistDismissal","isPreviouslyDismissed","isDismissed","setIsDismissed","isMounted","setIsMounted","handleOnDismiss","dismissedNudgesStorage","setItem","stringify","Illustration","disablePadding","defaultLogo","OverlayHeader","selectInputPlaceholder","countries","iso2","iso3","phone","phoneFormat","longestMatchingPrefix","matchingCodes","a","b","findCountryByCode","country","DEFAULT_PHONE_CODE","setDefaultPrefix","countryCode","isValidPhoneNumber","phoneNumber","findCountryByPrefix","startsWith","explodeNumberModel","prefix","suffix","DIGITS_MATCH","cleanNumber","sortArrayByProperty","arrayToSort","localeCompare","groupCountriesByPrefix","countriesByPrefix","Map","set","get","filterCountriesByIso3","iso3Codes","iso3CodesSet","excludeCountries","disabledCountries","ALLOWED_PHONE_CHARS","defaultSelectProps","defaultDisabledCountries","PhoneNumberInput","initialValue","internalValue","setInternalValue","cleanValue","broadcastedValue","setBroadcastedValue","suffixDirty","setSuffixDirty","onSuffixChange","pastedValue","pastedNumber","internalPhoneNumber","broadcastedPhoneNumber","Progress","progress","ProgressBar","textEnd","PromoCardGroup","containerRole","setContainerRole","contextValue","types","allTypesAreTheSame","every","LanguageContext","LanguageProvider","i18n","defaultRichTextElements","intlConfig","en","IntlProvider","defaultLocale","RadioButton","Radio","RadioGroup","radios","uncontrolledValue","setUncontrolledValue","nextValue","RadioOption","Section","withHorizontalPadding","SegmentedControl","segments","animate","setAnimate","segmentsRef","segmentsWithRefs","segment","updateSegmentPosition","selectedSegmentRef","handleWindowSizeChange","controls","titleAndNoteElement","secondaryElement","SearchBox","focusedOptionId","SearchIcon","spellCheck","DEFAULT_SEARCH_VALUE","DEFAULT_OPTIONS_PAGE_SIZE","includesString","string1","string2","defaultFilterFunction","searchValue","isPlaceholderOption","searchStrings","string","isActionableOption","separator","isHeaderOption","isSeparatorOption","DEFAULT_SELECTED_OPTION","isSearchableOption","getUniqueIdForOption","parentId","uniqueOptionId","Select","dropdownWidth","search","defaultOptions","initSearchValue","classNamesProp","dropdownUp","dropdownProps","s","setSearchValue","keyboardFocusedOptionIndex","setKeyboardFocusedOptionIndex","keyboardFocusedReference","previousKeyboardFocusedOptionIndex","numberOfOptionsShown","setNumberOfOptionsShown","searchBoxReference","selectReference","dropdownButtonReference","optionsListReference","isSearchEnabled","isDropdownAutoWidth","selectableOptions","focusedOption","fallbackButtonId","computedId","searchBoxId","handleTouchStart","handleCloseOptions","elementReceivingFocus","select","moveFocusWithDifference","selectKeyboardFocusedOption","selectOption","difference","selectedOptionIndex","optionIndex","isOptionSelected","previousFocusedIndex","indexToStartMovingFrom","unClampedNewIndex","newIndex","createSelectHandlerForOption","renderOptionsList","dropdownClass","showPlaceholder","PlaceHolderOption","renderOption","ShowMoreOption","placeholderOption","SeparatorOption","HeaderOption","separatorOption","headerOption","isFocusedWithKeyboard","getIndexWithoutHeadersForIndexWithHeaders","sum","currentIndex","hasActiveOptions","propTypes","PropTypes","bool","dropdownRight","oneOf","any","isRequired","oneOfType","func","arrayOf","objectOf","object","CSS_TRANSITION_DURATION","Snackbar","bodyRef","transitionTimeout","visible","timestamp","setLeaveTimeout","contextType","SnackbarContext","createSnackbar","SnackbarConsumer","Consumer","SnackbarProvider","now","SnackbarPortal","Sticky","statusNotDone","statusPending","statusDone","BadgeIcons","DONE","CheckCircleIcon","PENDING","PendingCircleIcon","statusLabels","NOT_DONE","statusMapping","Summary","help","illustration","iconSize","Switch","ariaLabelledbyProp","returnIcon","CheckCircleFill","ariaLabelledby","SwitchOption","toggle","Tab","panelId","focusTab","firstUpdate","checkFocus","TabList","array","TabPanel","tabId","MIN_SWIPE_DISTANCE","MIN_SWIPE_VELOCITY","swipedSignificantDistance","swipedWithSignificantVelocity","velocity","getSwipeVelocity","start","end","timePassed","getSwipeDifference","axis","swipedLeftToRight","x","swipedRightToLeft","swipeShouldChangeTab","getVelocity","coords","relevant","getElasticDragDifference","innerWidth","E","MIN_INDEX","enabledTabsFilter","tab","SpacerWidth","default","lg","Tabs","containerReference","translateX","translateFrom","translateTo","translateLineX","isAnimating","isSwiping","isScrolling","lastSwipeVelocity","fullWidthTabs","headerWidth","BLOCK","containerWidth","tabRefs","filteredTabsLength","tabs","MAX_INDEX","setTabWidth","switchTab","animateToTab","disableScroll","handleResize","currentSelected","previousSelected","currentSelectedTab","currentSelectedTabIsDisabled","previousSelectedTab","previousSelectedTabIsDisabled","currentTabsLength","previousTabsLength","currentDisabledTabsLength","previousDisabledTabsLength","currentHeaderWidth","previousFullHeaderWidth","animatePanelsOnClick","instantOnClick","setContainerWidth","selectedTabIndex","setContainerRefAndWidth","getBoundingClientRect","isTabDisabled","getAllTabsWidth","getDistanceToSelectedTab","idx","allTabsWidth","AUTO","getTabLineWidth","getTabToSelect","nextSelected","swipedOverHalfOfContainer","calculateApplicableDragDifference","elasticDrag","onTabSelect","getTabIndexWithoutDisabledTabs","instant","animateLine","animatePanel","currentTranslateTo","handleTabClick","clientX","y","currentSwipe","currentSelectedFromProps","changedTouches","yAxisDifference","dragDifference","handleTouchEnd","changeTabOnSwipe","transitionSpacing","spacer","tabsLength","distanceSwiped","remainingContainerToTravel","restrictedVelocity","hidePanelOverflow","sliderWidth","Spacer","display","overflow","Spring","onRest","animated","div","SpacerSizes","NONE","TextareaWithDisplayFormat","DEFAULT_INPUT_MIN_WIDTH","TypeaheadInput","inputRef","sizerRef","inputWidth","autoFocus","recalculateWidth","renderInput","typeaheadId","dropdownOpen","hasPlaceholder","renderChip","highlight","highlightStart","highlightEnd","DEFAULT_MIN_QUERY_LENGTH","SEARCH_DELAY","Typeahead","allowNew","autoFillOnBlur","chipSeparators","inputAutoComplete","minQueryLength","searchDelay","showSuggestions","showNewEntry","validateChip","handleSearchDebounced","debounce","handleSearch","initialQuery","errorState","optionsShown","isFocused","cancel","showMenu","onOptionSelected","selectItem","onInputChange","updateSelectedValue","pastedChips","chipsMode","moveFocusedOption","keepFocusOnSelect","hideMenu","clearQueryOnSelect","onSearch","handleDocumentClick","removeChip","selectedOption","valid","renderMenu","optionsToRender","TypeaheadOption","alert","clearButton","menu","alertType","displayAlert","hasWarning","hasInfo","CrossIcon","csButtonText","csFailureText","csSuccessText","csTooLargeMessage","csWrongTypeMessage","psButtonText","psProcessingText","usButtonText","usDropMessage","usPlaceholder","UploadImageStep","uploadInputRef","onManualUpload","fileDropped","file","files","getImage","usHelpImage","usLabel","UploadIcon","isComplete","usAccept","usDisabled","accept","ProcessingStep","isError","isSuccess","psButtonDisabled","processStatus","PROCESSING","CompleteStep","fileName","isImage","uploadedImage","DocumentIcon","ResponseError","response","postData","method","httpOptions","data","fetcher","fetch","ok","statusText","asyncFileRead","Promise","resolve","reject","FileReader","result","readAsDataURL","isSizeValid","maxSize","isInteger","getFileType","file64","typeFromEncoded","exec","isTypeValid","rule","allowedTypes","fileType","typeAllowed","extensionAllowed","ANIMATION_FIX","MAX_SIZE_DEFAULT","UploadStep","Upload","animationDelay","dragCounter","timeouts","isDroppable","isProcessing","getErrorMessage","onDragLeave","onDragEnter","onDrop","dataTransfer","onSuccess","onFailure","asyncPost","fileInputName","formData","FormData","append","asyncResponse","handleOnClear","onCancel","showDataImage","dataUrl","onStart","Response","droppable","onDragOver","PlusIcon","fileIsTooLarge","fileTypeNotSupported","deleteModalTitle","deleteModalBody","deleteModalCancelButtonText","deleteModalConfirmButtonText","maximumFilesAlreadyUploaded","uploadFile","uploadFiles","instructions","allFileTypes","dropFile","DEFAULT_SIZE_LIMIT","imageFileTypes","PDF","JPG","PNG","getAllowedFileTypes","fileTypes","fileTypeDefinition","extension","TEST_IDS","DEFAULT_FILE_INPUT_ID","UploadButton","sizeLimit","maxFiles","uploadButtonTitle","inputReference","isDropping","setIsDropping","filesSelected","getFileTypesDescription","getDescription","fileTypesDescription","derivedFileDescription","MESSAGES","round","getAcceptedTypes","areAllFilesAllowed","renderDescription","renderButtonTitle","uploadInput","mediaBody","uploadingFailed","uploaded","uploading","deleting","uploadedFile","removeFile","UploadItemBody","onDownload","singleFileUpload","UploadItem","canDelete","onDelete","filename","errors","isSucceeded","getIcon","processIndicator","getMultipleErrors","onDownloadFile","uploadItem","Bin","generateFileId","uploadTimeStamp","UploadInput","deleteConfirm","onUploadFile","onDeleteFile","onValidationError","onFilesChange","maxFilesErrorMessage","sizeLimitErrorMessage","markedFileForDelete","setMarkedFileForDelete","PROGRESS_STATUSES","uploadedFiles","setUploadedFiles","uploadedFilesListReference","addFileToList","recentUploadedFile","addToList","listToAddTo","removeFileFromList","filterOutFrom","listToFilterFrom","fileInList","modifyFileInList","updates","updateListItem","listToUpdate","then","catch","handleFileUploadFailure","failureMessage","failedUpload","getNumberOfFilesUploaded","uploadInitiatedStatus","validFiles","areMaximumFilesUploadedAlready","numberOfValidFiles","addFiles","selectedFiles","allowedFileTypes","maxFilesAllowed","pendingFile","cancelText","confirmText","useSnackbar","translations","cs","de","es","fr","hu","it","ja","pl","pt","ro","ru","th","tr","uk","zhCN","zhHK"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}