@transferwise/components 0.0.0-experimental-a0f3d2d → 0.0.0-experimental-693e956
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.
- package/build/index.js +14846 -283
- package/build/index.js.map +1 -1
- package/build/index.mjs +14767 -120
- package/build/index.mjs.map +1 -1
- package/build/main.css +10 -0
- package/build/styles/main.css +10 -0
- package/build/styles/uploadInput/UploadInput.css +10 -0
- package/build/types/uploadInput/types.d.ts +9 -1
- package/build/types/uploadInput/types.d.ts.map +1 -1
- package/build/types/uploadInput/uploadItem/UploadItem.d.ts.map +1 -1
- package/package.json +4 -5
- package/src/main.css +10 -0
- package/src/uploadInput/UploadInput.css +10 -0
- package/src/uploadInput/UploadInput.less +11 -0
- package/src/uploadInput/UploadInput.story.tsx +50 -7
- package/src/uploadInput/types.ts +11 -1
- package/src/uploadInput/uploadItem/UploadItem.tsx +25 -6
- package/build/accordion/Accordion.js +0 -40
- package/build/accordion/Accordion.js.map +0 -1
- package/build/accordion/Accordion.mjs +0 -38
- package/build/accordion/Accordion.mjs.map +0 -1
- package/build/accordion/AccordionItem/AccordionItem.js +0 -70
- package/build/accordion/AccordionItem/AccordionItem.js.map +0 -1
- package/build/accordion/AccordionItem/AccordionItem.mjs +0 -64
- package/build/accordion/AccordionItem/AccordionItem.mjs.map +0 -1
- package/build/actionButton/ActionButton.js +0 -31
- package/build/actionButton/ActionButton.js.map +0 -1
- package/build/actionButton/ActionButton.mjs +0 -25
- package/build/actionButton/ActionButton.mjs.map +0 -1
- package/build/actionOption/ActionOption.js +0 -61
- package/build/actionOption/ActionOption.js.map +0 -1
- package/build/actionOption/ActionOption.mjs +0 -55
- package/build/actionOption/ActionOption.mjs.map +0 -1
- package/build/alert/Alert.js +0 -159
- package/build/alert/Alert.js.map +0 -1
- package/build/alert/Alert.mjs +0 -151
- package/build/alert/Alert.mjs.map +0 -1
- package/build/alert/inlineMarkdown/InlineMarkdown.js +0 -30
- package/build/alert/inlineMarkdown/InlineMarkdown.js.map +0 -1
- package/build/alert/inlineMarkdown/InlineMarkdown.mjs +0 -24
- package/build/alert/inlineMarkdown/InlineMarkdown.mjs.map +0 -1
- package/build/avatar/Avatar.js +0 -54
- package/build/avatar/Avatar.js.map +0 -1
- package/build/avatar/Avatar.mjs +0 -48
- package/build/avatar/Avatar.mjs.map +0 -1
- package/build/avatar/avatarTypes.js +0 -11
- package/build/avatar/avatarTypes.js.map +0 -1
- package/build/avatar/avatarTypes.mjs +0 -11
- package/build/avatar/avatarTypes.mjs.map +0 -1
- package/build/avatar/colors/colors.js +0 -31
- package/build/avatar/colors/colors.js.map +0 -1
- package/build/avatar/colors/colors.mjs +0 -29
- package/build/avatar/colors/colors.mjs.map +0 -1
- package/build/avatarWrapper/AvatarWrapper.js +0 -120
- package/build/avatarWrapper/AvatarWrapper.js.map +0 -1
- package/build/avatarWrapper/AvatarWrapper.mjs +0 -118
- package/build/avatarWrapper/AvatarWrapper.mjs.map +0 -1
- package/build/avatarWrapper/index.js +0 -8
- package/build/avatarWrapper/index.js.map +0 -1
- package/build/avatarWrapper/index.mjs +0 -6
- package/build/avatarWrapper/index.mjs.map +0 -1
- package/build/badge/Badge.js +0 -36
- package/build/badge/Badge.js.map +0 -1
- package/build/badge/Badge.mjs +0 -30
- package/build/badge/Badge.mjs.map +0 -1
- package/build/body/Body.js +0 -31
- package/build/body/Body.js.map +0 -1
- package/build/body/Body.mjs +0 -25
- package/build/body/Body.mjs.map +0 -1
- package/build/button/Button.js +0 -86
- package/build/button/Button.js.map +0 -1
- package/build/button/Button.messages.js +0 -12
- package/build/button/Button.messages.js.map +0 -1
- package/build/button/Button.messages.mjs +0 -10
- package/build/button/Button.messages.mjs.map +0 -1
- package/build/button/Button.mjs +0 -80
- package/build/button/Button.mjs.map +0 -1
- package/build/button/classMap.js +0 -18
- package/build/button/classMap.js.map +0 -1
- package/build/button/classMap.mjs +0 -15
- package/build/button/classMap.mjs.map +0 -1
- package/build/button/legacyUtils/legacyUtils.js +0 -54
- package/build/button/legacyUtils/legacyUtils.js.map +0 -1
- package/build/button/legacyUtils/legacyUtils.mjs +0 -50
- package/build/button/legacyUtils/legacyUtils.mjs.map +0 -1
- package/build/card/Card.js +0 -95
- package/build/card/Card.js.map +0 -1
- package/build/card/Card.mjs +0 -87
- package/build/card/Card.mjs.map +0 -1
- package/build/carousel/Carousel.js +0 -282
- package/build/carousel/Carousel.js.map +0 -1
- package/build/carousel/Carousel.mjs +0 -276
- package/build/carousel/Carousel.mjs.map +0 -1
- package/build/checkbox/Checkbox.js +0 -97
- package/build/checkbox/Checkbox.js.map +0 -1
- package/build/checkbox/Checkbox.mjs +0 -90
- package/build/checkbox/Checkbox.mjs.map +0 -1
- package/build/checkbox/index.js +0 -8
- package/build/checkbox/index.js.map +0 -1
- package/build/checkbox/index.mjs +0 -6
- package/build/checkbox/index.mjs.map +0 -1
- package/build/checkboxButton/CheckboxButton.js +0 -36
- package/build/checkboxButton/CheckboxButton.js.map +0 -1
- package/build/checkboxButton/CheckboxButton.mjs +0 -30
- package/build/checkboxButton/CheckboxButton.mjs.map +0 -1
- package/build/checkboxOption/CheckboxOption.js +0 -27
- package/build/checkboxOption/CheckboxOption.js.map +0 -1
- package/build/checkboxOption/CheckboxOption.mjs +0 -25
- package/build/checkboxOption/CheckboxOption.mjs.map +0 -1
- package/build/chevron/Chevron.js +0 -60
- package/build/chevron/Chevron.js.map +0 -1
- package/build/chevron/Chevron.mjs +0 -54
- package/build/chevron/Chevron.mjs.map +0 -1
- package/build/chips/Chip.js +0 -71
- package/build/chips/Chip.js.map +0 -1
- package/build/chips/Chip.mjs +0 -65
- package/build/chips/Chip.mjs.map +0 -1
- package/build/chips/Chips.js +0 -62
- package/build/chips/Chips.js.map +0 -1
- package/build/chips/Chips.messages.js +0 -12
- package/build/chips/Chips.messages.js.map +0 -1
- package/build/chips/Chips.messages.mjs +0 -10
- package/build/chips/Chips.messages.mjs.map +0 -1
- package/build/chips/Chips.mjs +0 -56
- package/build/chips/Chips.mjs.map +0 -1
- package/build/circularButton/CircularButton.js +0 -46
- package/build/circularButton/CircularButton.js.map +0 -1
- package/build/circularButton/CircularButton.mjs +0 -40
- package/build/circularButton/CircularButton.mjs.map +0 -1
- package/build/common/DOMOperations/DOMOperations.js +0 -24
- package/build/common/DOMOperations/DOMOperations.js.map +0 -1
- package/build/common/DOMOperations/DOMOperations.mjs +0 -21
- package/build/common/DOMOperations/DOMOperations.mjs.map +0 -1
- package/build/common/Option/Option.js +0 -71
- package/build/common/Option/Option.js.map +0 -1
- package/build/common/Option/Option.mjs +0 -65
- package/build/common/Option/Option.mjs.map +0 -1
- package/build/common/RadioButton/RadioButton.js +0 -46
- package/build/common/RadioButton/RadioButton.js.map +0 -1
- package/build/common/RadioButton/RadioButton.mjs +0 -40
- package/build/common/RadioButton/RadioButton.mjs.map +0 -1
- package/build/common/action/Action.js +0 -37
- package/build/common/action/Action.js.map +0 -1
- package/build/common/action/Action.mjs +0 -31
- package/build/common/action/Action.mjs.map +0 -1
- package/build/common/bottomSheet/BottomSheet.js +0 -194
- package/build/common/bottomSheet/BottomSheet.js.map +0 -1
- package/build/common/bottomSheet/BottomSheet.mjs +0 -188
- package/build/common/bottomSheet/BottomSheet.mjs.map +0 -1
- package/build/common/card/Card.js +0 -49
- package/build/common/card/Card.js.map +0 -1
- package/build/common/card/Card.mjs +0 -43
- package/build/common/card/Card.mjs.map +0 -1
- package/build/common/closeButton/CloseButton.js +0 -46
- package/build/common/closeButton/CloseButton.js.map +0 -1
- package/build/common/closeButton/CloseButton.messages.js +0 -12
- package/build/common/closeButton/CloseButton.messages.js.map +0 -1
- package/build/common/closeButton/CloseButton.messages.mjs +0 -10
- package/build/common/closeButton/CloseButton.messages.mjs.map +0 -1
- package/build/common/closeButton/CloseButton.mjs +0 -40
- package/build/common/closeButton/CloseButton.mjs.map +0 -1
- package/build/common/dateUtils/getDayNames/getDayNames.js +0 -18
- package/build/common/dateUtils/getDayNames/getDayNames.js.map +0 -1
- package/build/common/dateUtils/getDayNames/getDayNames.mjs +0 -16
- package/build/common/dateUtils/getDayNames/getDayNames.mjs.map +0 -1
- package/build/common/dateUtils/getFormatForLocale/getFormatForLocale.js +0 -8
- package/build/common/dateUtils/getFormatForLocale/getFormatForLocale.js.map +0 -1
- package/build/common/dateUtils/getFormatForLocale/getFormatForLocale.mjs +0 -5
- package/build/common/dateUtils/getFormatForLocale/getFormatForLocale.mjs.map +0 -1
- package/build/common/dateUtils/getMonthNames/getMonthNames.js +0 -19
- package/build/common/dateUtils/getMonthNames/getMonthNames.js.map +0 -1
- package/build/common/dateUtils/getMonthNames/getMonthNames.mjs +0 -17
- package/build/common/dateUtils/getMonthNames/getMonthNames.mjs.map +0 -1
- package/build/common/dateUtils/isDateValid/isDateValid.js +0 -17
- package/build/common/dateUtils/isDateValid/isDateValid.js.map +0 -1
- package/build/common/dateUtils/isDateValid/isDateValid.mjs +0 -14
- package/build/common/dateUtils/isDateValid/isDateValid.mjs.map +0 -1
- package/build/common/dateUtils/isMonthAndYearFormat/isMonthAndYearFormat.js +0 -8
- package/build/common/dateUtils/isMonthAndYearFormat/isMonthAndYearFormat.js.map +0 -1
- package/build/common/dateUtils/isMonthAndYearFormat/isMonthAndYearFormat.mjs +0 -6
- package/build/common/dateUtils/isMonthAndYearFormat/isMonthAndYearFormat.mjs.map +0 -1
- package/build/common/dateUtils/isWithinRange/isWithinRange.js +0 -8
- package/build/common/dateUtils/isWithinRange/isWithinRange.js.map +0 -1
- package/build/common/dateUtils/isWithinRange/isWithinRange.mjs +0 -6
- package/build/common/dateUtils/isWithinRange/isWithinRange.mjs.map +0 -1
- package/build/common/dateUtils/moveToWithinRange/moveToWithinRange.js +0 -15
- package/build/common/dateUtils/moveToWithinRange/moveToWithinRange.js.map +0 -1
- package/build/common/dateUtils/moveToWithinRange/moveToWithinRange.mjs +0 -13
- package/build/common/dateUtils/moveToWithinRange/moveToWithinRange.mjs.map +0 -1
- package/build/common/deviceDetection/deviceDetection.js +0 -11
- package/build/common/deviceDetection/deviceDetection.js.map +0 -1
- package/build/common/deviceDetection/deviceDetection.mjs +0 -9
- package/build/common/deviceDetection/deviceDetection.mjs.map +0 -1
- package/build/common/direction.js +0 -9
- package/build/common/direction.js.map +0 -1
- package/build/common/direction.mjs +0 -9
- package/build/common/direction.mjs.map +0 -1
- package/build/common/domHelpers/documentIosClick.js +0 -39
- package/build/common/domHelpers/documentIosClick.js.map +0 -1
- package/build/common/domHelpers/documentIosClick.mjs +0 -33
- package/build/common/domHelpers/documentIosClick.mjs.map +0 -1
- package/build/common/fileType.js +0 -10
- package/build/common/fileType.js.map +0 -1
- package/build/common/fileType.mjs +0 -10
- package/build/common/fileType.mjs.map +0 -1
- package/build/common/flowHeader/FlowHeader.js +0 -53
- package/build/common/flowHeader/FlowHeader.js.map +0 -1
- package/build/common/flowHeader/FlowHeader.mjs +0 -28
- package/build/common/flowHeader/FlowHeader.mjs.map +0 -1
- package/build/common/focusBoundary/FocusBoundary.js +0 -28
- package/build/common/focusBoundary/FocusBoundary.js.map +0 -1
- package/build/common/focusBoundary/FocusBoundary.mjs +0 -26
- package/build/common/focusBoundary/FocusBoundary.mjs.map +0 -1
- package/build/common/historyNavigator/historyNavigator.js +0 -39
- package/build/common/historyNavigator/historyNavigator.js.map +0 -1
- package/build/common/historyNavigator/historyNavigator.mjs +0 -37
- package/build/common/historyNavigator/historyNavigator.mjs.map +0 -1
- package/build/common/hooks/useConditionalListener/useConditionalListener.js +0 -25
- package/build/common/hooks/useConditionalListener/useConditionalListener.js.map +0 -1
- package/build/common/hooks/useConditionalListener/useConditionalListener.mjs +0 -23
- package/build/common/hooks/useConditionalListener/useConditionalListener.mjs.map +0 -1
- package/build/common/hooks/useDirection/useDirection.js +0 -15
- package/build/common/hooks/useDirection/useDirection.js.map +0 -1
- package/build/common/hooks/useDirection/useDirection.mjs +0 -13
- package/build/common/hooks/useDirection/useDirection.mjs.map +0 -1
- package/build/common/hooks/useEffectEvent.js +0 -22
- package/build/common/hooks/useEffectEvent.js.map +0 -1
- package/build/common/hooks/useEffectEvent.mjs +0 -20
- package/build/common/hooks/useEffectEvent.mjs.map +0 -1
- package/build/common/hooks/useHasIntersected/useHasIntersected.js +0 -64
- package/build/common/hooks/useHasIntersected/useHasIntersected.js.map +0 -1
- package/build/common/hooks/useHasIntersected/useHasIntersected.mjs +0 -62
- package/build/common/hooks/useHasIntersected/useHasIntersected.mjs.map +0 -1
- package/build/common/hooks/useLayout/useLayout.js +0 -26
- package/build/common/hooks/useLayout/useLayout.js.map +0 -1
- package/build/common/hooks/useLayout/useLayout.mjs +0 -24
- package/build/common/hooks/useLayout/useLayout.mjs.map +0 -1
- package/build/common/hooks/useMedia.js +0 -16
- package/build/common/hooks/useMedia.js.map +0 -1
- package/build/common/hooks/useMedia.mjs +0 -14
- package/build/common/hooks/useMedia.mjs.map +0 -1
- package/build/common/hooks/useResizeObserver.js +0 -25
- package/build/common/hooks/useResizeObserver.js.map +0 -1
- package/build/common/hooks/useResizeObserver.mjs +0 -23
- package/build/common/hooks/useResizeObserver.mjs.map +0 -1
- package/build/common/hooks/useScreenSize.js +0 -10
- package/build/common/hooks/useScreenSize.js.map +0 -1
- package/build/common/hooks/useScreenSize.mjs +0 -8
- package/build/common/hooks/useScreenSize.mjs.map +0 -1
- package/build/common/locale/index.js +0 -85
- package/build/common/locale/index.js.map +0 -1
- package/build/common/locale/index.mjs +0 -76
- package/build/common/locale/index.mjs.map +0 -1
- package/build/common/panel/Panel.js +0 -133
- package/build/common/panel/Panel.js.map +0 -1
- package/build/common/panel/Panel.mjs +0 -127
- package/build/common/panel/Panel.mjs.map +0 -1
- package/build/common/polymorphicWithOverrides/PolymorphicWithOverrides.js +0 -21
- package/build/common/polymorphicWithOverrides/PolymorphicWithOverrides.js.map +0 -1
- package/build/common/polymorphicWithOverrides/PolymorphicWithOverrides.mjs +0 -19
- package/build/common/polymorphicWithOverrides/PolymorphicWithOverrides.mjs.map +0 -1
- package/build/common/preventScroll/PreventScroll.js +0 -11
- package/build/common/preventScroll/PreventScroll.js.map +0 -1
- package/build/common/preventScroll/PreventScroll.mjs +0 -9
- package/build/common/preventScroll/PreventScroll.mjs.map +0 -1
- package/build/common/propsValues/breakpoint.js +0 -12
- package/build/common/propsValues/breakpoint.js.map +0 -1
- package/build/common/propsValues/breakpoint.mjs +0 -12
- package/build/common/propsValues/breakpoint.mjs.map +0 -1
- package/build/common/propsValues/control.js +0 -15
- package/build/common/propsValues/control.js.map +0 -1
- package/build/common/propsValues/control.mjs +0 -15
- package/build/common/propsValues/control.mjs.map +0 -1
- package/build/common/propsValues/dateMode.js +0 -8
- package/build/common/propsValues/dateMode.js.map +0 -1
- package/build/common/propsValues/dateMode.mjs +0 -8
- package/build/common/propsValues/dateMode.mjs.map +0 -1
- package/build/common/propsValues/layouts.js +0 -13
- package/build/common/propsValues/layouts.js.map +0 -1
- package/build/common/propsValues/layouts.mjs +0 -13
- package/build/common/propsValues/layouts.mjs.map +0 -1
- package/build/common/propsValues/markdownNodeType.js +0 -22
- package/build/common/propsValues/markdownNodeType.js.map +0 -1
- package/build/common/propsValues/markdownNodeType.mjs +0 -22
- package/build/common/propsValues/markdownNodeType.mjs.map +0 -1
- package/build/common/propsValues/monthFormat.js +0 -8
- package/build/common/propsValues/monthFormat.js.map +0 -1
- package/build/common/propsValues/monthFormat.mjs +0 -8
- package/build/common/propsValues/monthFormat.mjs.map +0 -1
- package/build/common/propsValues/position.js +0 -15
- package/build/common/propsValues/position.js.map +0 -1
- package/build/common/propsValues/position.mjs +0 -15
- package/build/common/propsValues/position.mjs.map +0 -1
- package/build/common/propsValues/profileType.js +0 -8
- package/build/common/propsValues/profileType.js.map +0 -1
- package/build/common/propsValues/profileType.mjs +0 -8
- package/build/common/propsValues/profileType.mjs.map +0 -1
- package/build/common/propsValues/scroll.js +0 -8
- package/build/common/propsValues/scroll.js.map +0 -1
- package/build/common/propsValues/scroll.mjs +0 -8
- package/build/common/propsValues/scroll.mjs.map +0 -1
- package/build/common/propsValues/sentiment.js +0 -23
- package/build/common/propsValues/sentiment.js.map +0 -1
- package/build/common/propsValues/sentiment.mjs +0 -23
- package/build/common/propsValues/sentiment.mjs.map +0 -1
- package/build/common/propsValues/size.js +0 -11
- package/build/common/propsValues/size.js.map +0 -1
- package/build/common/propsValues/size.mjs +0 -11
- package/build/common/propsValues/size.mjs.map +0 -1
- package/build/common/propsValues/status.js +0 -13
- package/build/common/propsValues/status.js.map +0 -1
- package/build/common/propsValues/status.mjs +0 -13
- package/build/common/propsValues/status.mjs.map +0 -1
- package/build/common/propsValues/type.js +0 -17
- package/build/common/propsValues/type.js.map +0 -1
- package/build/common/propsValues/type.mjs +0 -17
- package/build/common/propsValues/type.mjs.map +0 -1
- package/build/common/propsValues/typography.js +0 -25
- package/build/common/propsValues/typography.js.map +0 -1
- package/build/common/propsValues/typography.mjs +0 -25
- package/build/common/propsValues/typography.mjs.map +0 -1
- package/build/common/propsValues/variant.js +0 -8
- package/build/common/propsValues/variant.js.map +0 -1
- package/build/common/propsValues/variant.mjs +0 -8
- package/build/common/propsValues/variant.mjs.map +0 -1
- package/build/common/propsValues/width.js +0 -8
- package/build/common/propsValues/width.js.map +0 -1
- package/build/common/propsValues/width.mjs +0 -8
- package/build/common/propsValues/width.mjs.map +0 -1
- package/build/common/responsivePanel/ResponsivePanel.js +0 -45
- package/build/common/responsivePanel/ResponsivePanel.js.map +0 -1
- package/build/common/responsivePanel/ResponsivePanel.mjs +0 -43
- package/build/common/responsivePanel/ResponsivePanel.mjs.map +0 -1
- package/build/common/textFormat/formatWithPattern/formatWithPattern.js +0 -27
- package/build/common/textFormat/formatWithPattern/formatWithPattern.js.map +0 -1
- package/build/common/textFormat/formatWithPattern/formatWithPattern.mjs +0 -25
- package/build/common/textFormat/formatWithPattern/formatWithPattern.mjs.map +0 -1
- package/build/common/textFormat/getCountOfSymbolsInSelection/getCountOfSymbolsInSelection.js +0 -8
- package/build/common/textFormat/getCountOfSymbolsInSelection/getCountOfSymbolsInSelection.js.map +0 -1
- package/build/common/textFormat/getCountOfSymbolsInSelection/getCountOfSymbolsInSelection.mjs +0 -6
- package/build/common/textFormat/getCountOfSymbolsInSelection/getCountOfSymbolsInSelection.mjs.map +0 -1
- package/build/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.js +0 -30
- package/build/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.js.map +0 -1
- package/build/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.mjs +0 -28
- package/build/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.mjs.map +0 -1
- package/build/common/textFormat/getDistanceToSymbol/getDistanceToSymbol.js +0 -32
- package/build/common/textFormat/getDistanceToSymbol/getDistanceToSymbol.js.map +0 -1
- package/build/common/textFormat/getDistanceToSymbol/getDistanceToSymbol.mjs +0 -29
- package/build/common/textFormat/getDistanceToSymbol/getDistanceToSymbol.mjs.map +0 -1
- package/build/common/textFormat/getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition.js +0 -18
- package/build/common/textFormat/getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition.js.map +0 -1
- package/build/common/textFormat/getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition.mjs +0 -16
- package/build/common/textFormat/getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition.mjs.map +0 -1
- package/build/common/textFormat/unformatWithPattern/unformatWithPattern.js +0 -14
- package/build/common/textFormat/unformatWithPattern/unformatWithPattern.js.map +0 -1
- package/build/common/textFormat/unformatWithPattern/unformatWithPattern.mjs +0 -12
- package/build/common/textFormat/unformatWithPattern/unformatWithPattern.mjs.map +0 -1
- package/build/common/theme.js +0 -13
- package/build/common/theme.js.map +0 -1
- package/build/common/theme.mjs +0 -13
- package/build/common/theme.mjs.map +0 -1
- package/build/criticalBanner/CriticalCommsBanner.js +0 -77
- package/build/criticalBanner/CriticalCommsBanner.js.map +0 -1
- package/build/criticalBanner/CriticalCommsBanner.mjs +0 -71
- package/build/criticalBanner/CriticalCommsBanner.mjs.map +0 -1
- package/build/dateInput/DateInput.js +0 -339
- package/build/dateInput/DateInput.js.map +0 -1
- package/build/dateInput/DateInput.messages.js +0 -24
- package/build/dateInput/DateInput.messages.js.map +0 -1
- package/build/dateInput/DateInput.messages.mjs +0 -22
- package/build/dateInput/DateInput.messages.mjs.map +0 -1
- package/build/dateInput/DateInput.mjs +0 -333
- package/build/dateInput/DateInput.mjs.map +0 -1
- package/build/dateInput/utils/convertToLocalMidnight/convertToLocalMidnight.js +0 -9
- package/build/dateInput/utils/convertToLocalMidnight/convertToLocalMidnight.js.map +0 -1
- package/build/dateInput/utils/convertToLocalMidnight/convertToLocalMidnight.mjs +0 -7
- package/build/dateInput/utils/convertToLocalMidnight/convertToLocalMidnight.mjs.map +0 -1
- package/build/dateLookup/DateLookup.js +0 -339
- package/build/dateLookup/DateLookup.js.map +0 -1
- package/build/dateLookup/DateLookup.messages.js +0 -33
- package/build/dateLookup/DateLookup.messages.js.map +0 -1
- package/build/dateLookup/DateLookup.messages.mjs +0 -31
- package/build/dateLookup/DateLookup.messages.mjs.map +0 -1
- package/build/dateLookup/DateLookup.mjs +0 -333
- package/build/dateLookup/DateLookup.mjs.map +0 -1
- package/build/dateLookup/dateHeader/DateHeader.js +0 -73
- package/build/dateLookup/dateHeader/DateHeader.js.map +0 -1
- package/build/dateLookup/dateHeader/DateHeader.mjs +0 -67
- package/build/dateLookup/dateHeader/DateHeader.mjs.map +0 -1
- package/build/dateLookup/dateTrigger/DateTrigger.js +0 -70
- package/build/dateLookup/dateTrigger/DateTrigger.js.map +0 -1
- package/build/dateLookup/dateTrigger/DateTrigger.messages.js +0 -12
- package/build/dateLookup/dateTrigger/DateTrigger.messages.js.map +0 -1
- package/build/dateLookup/dateTrigger/DateTrigger.messages.mjs +0 -10
- package/build/dateLookup/dateTrigger/DateTrigger.messages.mjs.map +0 -1
- package/build/dateLookup/dateTrigger/DateTrigger.mjs +0 -68
- package/build/dateLookup/dateTrigger/DateTrigger.mjs.map +0 -1
- package/build/dateLookup/dayCalendar/DayCalendar.js +0 -71
- package/build/dateLookup/dayCalendar/DayCalendar.js.map +0 -1
- package/build/dateLookup/dayCalendar/DayCalendar.mjs +0 -69
- package/build/dateLookup/dayCalendar/DayCalendar.mjs.map +0 -1
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.js +0 -150
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.js.map +0 -1
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.mjs +0 -148
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.mjs.map +0 -1
- package/build/dateLookup/getFocusableTime/getFocusableTime.js +0 -8
- package/build/dateLookup/getFocusableTime/getFocusableTime.js.map +0 -1
- package/build/dateLookup/getFocusableTime/getFocusableTime.mjs +0 -6
- package/build/dateLookup/getFocusableTime/getFocusableTime.mjs.map +0 -1
- package/build/dateLookup/getStartOfDay/getStartOfDay.js +0 -15
- package/build/dateLookup/getStartOfDay/getStartOfDay.js.map +0 -1
- package/build/dateLookup/getStartOfDay/getStartOfDay.mjs +0 -13
- package/build/dateLookup/getStartOfDay/getStartOfDay.mjs.map +0 -1
- package/build/dateLookup/monthCalendar/MonthCalendar.js +0 -64
- package/build/dateLookup/monthCalendar/MonthCalendar.js.map +0 -1
- package/build/dateLookup/monthCalendar/MonthCalendar.mjs +0 -62
- package/build/dateLookup/monthCalendar/MonthCalendar.mjs.map +0 -1
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.js +0 -83
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.js.map +0 -1
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.mjs +0 -81
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.mjs.map +0 -1
- package/build/dateLookup/tableLink/TableLink.js +0 -65
- package/build/dateLookup/tableLink/TableLink.js.map +0 -1
- package/build/dateLookup/tableLink/TableLink.mjs +0 -59
- package/build/dateLookup/tableLink/TableLink.mjs.map +0 -1
- package/build/dateLookup/yearCalendar/YearCalendar.js +0 -57
- package/build/dateLookup/yearCalendar/YearCalendar.js.map +0 -1
- package/build/dateLookup/yearCalendar/YearCalendar.mjs +0 -55
- package/build/dateLookup/yearCalendar/YearCalendar.mjs.map +0 -1
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.js +0 -83
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.js.map +0 -1
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.mjs +0 -81
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.mjs.map +0 -1
- package/build/decision/Decision.js +0 -108
- package/build/decision/Decision.js.map +0 -1
- package/build/decision/Decision.mjs +0 -100
- package/build/decision/Decision.mjs.map +0 -1
- package/build/definitionList/DefinitionList.js +0 -90
- package/build/definitionList/DefinitionList.js.map +0 -1
- package/build/definitionList/DefinitionList.mjs +0 -83
- package/build/definitionList/DefinitionList.mjs.map +0 -1
- package/build/dimmer/Dimmer.js +0 -184
- package/build/dimmer/Dimmer.js.map +0 -1
- package/build/dimmer/Dimmer.mjs +0 -172
- package/build/dimmer/Dimmer.mjs.map +0 -1
- package/build/dimmer/dimmerManager/DimmerManager.js +0 -36
- package/build/dimmer/dimmerManager/DimmerManager.js.map +0 -1
- package/build/dimmer/dimmerManager/DimmerManager.mjs +0 -34
- package/build/dimmer/dimmerManager/DimmerManager.mjs.map +0 -1
- package/build/display/Display.js +0 -26
- package/build/display/Display.js.map +0 -1
- package/build/display/Display.mjs +0 -20
- package/build/display/Display.mjs.map +0 -1
- package/build/drawer/Drawer.js +0 -95
- package/build/drawer/Drawer.js.map +0 -1
- package/build/drawer/Drawer.mjs +0 -88
- package/build/drawer/Drawer.mjs.map +0 -1
- package/build/dropFade/DropFade.js +0 -48
- package/build/dropFade/DropFade.js.map +0 -1
- package/build/dropFade/DropFade.mjs +0 -42
- package/build/dropFade/DropFade.mjs.map +0 -1
- package/build/emphasis/Emphasis.js +0 -24
- package/build/emphasis/Emphasis.js.map +0 -1
- package/build/emphasis/Emphasis.mjs +0 -22
- package/build/emphasis/Emphasis.mjs.map +0 -1
- package/build/emphasis/EmphasisHtmlTransformer.js +0 -39
- package/build/emphasis/EmphasisHtmlTransformer.js.map +0 -1
- package/build/emphasis/EmphasisHtmlTransformer.mjs +0 -37
- package/build/emphasis/EmphasisHtmlTransformer.mjs.map +0 -1
- package/build/field/Field.js +0 -63
- package/build/field/Field.js.map +0 -1
- package/build/field/Field.mjs +0 -57
- package/build/field/Field.mjs.map +0 -1
- package/build/flowNavigation/FlowNavigation.js +0 -80
- package/build/flowNavigation/FlowNavigation.js.map +0 -1
- package/build/flowNavigation/FlowNavigation.messages.js +0 -12
- package/build/flowNavigation/FlowNavigation.messages.js.map +0 -1
- package/build/flowNavigation/FlowNavigation.messages.mjs +0 -10
- package/build/flowNavigation/FlowNavigation.messages.mjs.map +0 -1
- package/build/flowNavigation/FlowNavigation.mjs +0 -74
- package/build/flowNavigation/FlowNavigation.mjs.map +0 -1
- package/build/flowNavigation/animatedLabel/AnimatedLabel.js +0 -34
- package/build/flowNavigation/animatedLabel/AnimatedLabel.js.map +0 -1
- package/build/flowNavigation/animatedLabel/AnimatedLabel.mjs +0 -28
- package/build/flowNavigation/animatedLabel/AnimatedLabel.mjs.map +0 -1
- package/build/flowNavigation/backButton/BackButton.js +0 -44
- package/build/flowNavigation/backButton/BackButton.js.map +0 -1
- package/build/flowNavigation/backButton/BackButton.mjs +0 -37
- package/build/flowNavigation/backButton/BackButton.mjs.map +0 -1
- package/build/flowNavigation/backButton/index.js +0 -8
- package/build/flowNavigation/backButton/index.js.map +0 -1
- package/build/flowNavigation/backButton/index.mjs +0 -6
- package/build/flowNavigation/backButton/index.mjs.map +0 -1
- package/build/header/Header.js +0 -87
- package/build/header/Header.js.map +0 -1
- package/build/header/Header.mjs +0 -78
- package/build/header/Header.mjs.map +0 -1
- package/build/i18n/cs.json.js +0 -61
- package/build/i18n/cs.json.js.map +0 -1
- package/build/i18n/cs.json.mjs +0 -59
- package/build/i18n/cs.json.mjs.map +0 -1
- package/build/i18n/de.json.js +0 -62
- package/build/i18n/de.json.js.map +0 -1
- package/build/i18n/de.json.mjs +0 -60
- package/build/i18n/de.json.mjs.map +0 -1
- package/build/i18n/en.json.js +0 -62
- package/build/i18n/en.json.js.map +0 -1
- package/build/i18n/en.json.mjs +0 -60
- package/build/i18n/en.json.mjs.map +0 -1
- package/build/i18n/es.json.js +0 -62
- package/build/i18n/es.json.js.map +0 -1
- package/build/i18n/es.json.mjs +0 -60
- package/build/i18n/es.json.mjs.map +0 -1
- package/build/i18n/fr.json.js +0 -62
- package/build/i18n/fr.json.js.map +0 -1
- package/build/i18n/fr.json.mjs +0 -60
- package/build/i18n/fr.json.mjs.map +0 -1
- package/build/i18n/hu.json.js +0 -62
- package/build/i18n/hu.json.js.map +0 -1
- package/build/i18n/hu.json.mjs +0 -60
- package/build/i18n/hu.json.mjs.map +0 -1
- package/build/i18n/id.json.js +0 -62
- package/build/i18n/id.json.js.map +0 -1
- package/build/i18n/id.json.mjs +0 -60
- package/build/i18n/id.json.mjs.map +0 -1
- package/build/i18n/index.js +0 -45
- package/build/i18n/index.js.map +0 -1
- package/build/i18n/index.mjs +0 -43
- package/build/i18n/index.mjs.map +0 -1
- package/build/i18n/it.json.js +0 -62
- package/build/i18n/it.json.js.map +0 -1
- package/build/i18n/it.json.mjs +0 -60
- package/build/i18n/it.json.mjs.map +0 -1
- package/build/i18n/ja.json.js +0 -62
- package/build/i18n/ja.json.js.map +0 -1
- package/build/i18n/ja.json.mjs +0 -60
- package/build/i18n/ja.json.mjs.map +0 -1
- package/build/i18n/pl.json.js +0 -62
- package/build/i18n/pl.json.js.map +0 -1
- package/build/i18n/pl.json.mjs +0 -60
- package/build/i18n/pl.json.mjs.map +0 -1
- package/build/i18n/pt.json.js +0 -62
- package/build/i18n/pt.json.js.map +0 -1
- package/build/i18n/pt.json.mjs +0 -60
- package/build/i18n/pt.json.mjs.map +0 -1
- package/build/i18n/ro.json.js +0 -62
- package/build/i18n/ro.json.js.map +0 -1
- package/build/i18n/ro.json.mjs +0 -60
- package/build/i18n/ro.json.mjs.map +0 -1
- package/build/i18n/ru.json.js +0 -62
- package/build/i18n/ru.json.js.map +0 -1
- package/build/i18n/ru.json.mjs +0 -60
- package/build/i18n/ru.json.mjs.map +0 -1
- package/build/i18n/th.json.js +0 -62
- package/build/i18n/th.json.js.map +0 -1
- package/build/i18n/th.json.mjs +0 -60
- package/build/i18n/th.json.mjs.map +0 -1
- package/build/i18n/tr.json.js +0 -62
- package/build/i18n/tr.json.js.map +0 -1
- package/build/i18n/tr.json.mjs +0 -60
- package/build/i18n/tr.json.mjs.map +0 -1
- package/build/i18n/uk.json.js +0 -61
- package/build/i18n/uk.json.js.map +0 -1
- package/build/i18n/uk.json.mjs +0 -59
- package/build/i18n/uk.json.mjs.map +0 -1
- package/build/i18n/zh-CN.json.js +0 -62
- package/build/i18n/zh-CN.json.js.map +0 -1
- package/build/i18n/zh-CN.json.mjs +0 -60
- package/build/i18n/zh-CN.json.mjs.map +0 -1
- package/build/i18n/zh-HK.json.js +0 -62
- package/build/i18n/zh-HK.json.js.map +0 -1
- package/build/i18n/zh-HK.json.mjs +0 -60
- package/build/i18n/zh-HK.json.mjs.map +0 -1
- package/build/image/Image.js +0 -55
- package/build/image/Image.js.map +0 -1
- package/build/image/Image.mjs +0 -46
- package/build/image/Image.mjs.map +0 -1
- package/build/info/Info.js +0 -80
- package/build/info/Info.js.map +0 -1
- package/build/info/Info.messages.js +0 -12
- package/build/info/Info.messages.js.map +0 -1
- package/build/info/Info.messages.mjs +0 -10
- package/build/info/Info.messages.mjs.map +0 -1
- package/build/info/Info.mjs +0 -74
- package/build/info/Info.mjs.map +0 -1
- package/build/info/infoPresentations.js +0 -9
- package/build/info/infoPresentations.js.map +0 -1
- package/build/info/infoPresentations.mjs +0 -9
- package/build/info/infoPresentations.mjs.map +0 -1
- package/build/inlineAlert/InlineAlert.js +0 -29
- package/build/inlineAlert/InlineAlert.js.map +0 -1
- package/build/inlineAlert/InlineAlert.mjs +0 -23
- package/build/inlineAlert/InlineAlert.mjs.map +0 -1
- package/build/inputWithDisplayFormat/InputWithDisplayFormat.js +0 -15
- package/build/inputWithDisplayFormat/InputWithDisplayFormat.js.map +0 -1
- package/build/inputWithDisplayFormat/InputWithDisplayFormat.mjs +0 -13
- package/build/inputWithDisplayFormat/InputWithDisplayFormat.mjs.map +0 -1
- package/build/inputs/Input.js +0 -39
- package/build/inputs/Input.js.map +0 -1
- package/build/inputs/Input.mjs +0 -33
- package/build/inputs/Input.mjs.map +0 -1
- package/build/inputs/InputGroup.js +0 -95
- package/build/inputs/InputGroup.js.map +0 -1
- package/build/inputs/InputGroup.mjs +0 -88
- package/build/inputs/InputGroup.mjs.map +0 -1
- package/build/inputs/SearchInput.js +0 -38
- package/build/inputs/SearchInput.js.map +0 -1
- package/build/inputs/SearchInput.mjs +0 -36
- package/build/inputs/SearchInput.mjs.map +0 -1
- package/build/inputs/SelectInput.js +0 -583
- package/build/inputs/SelectInput.js.map +0 -1
- package/build/inputs/SelectInput.messages.js +0 -12
- package/build/inputs/SelectInput.messages.js.map +0 -1
- package/build/inputs/SelectInput.messages.mjs +0 -10
- package/build/inputs/SelectInput.messages.mjs.map +0 -1
- package/build/inputs/SelectInput.mjs +0 -574
- package/build/inputs/SelectInput.mjs.map +0 -1
- package/build/inputs/TextArea.js +0 -27
- package/build/inputs/TextArea.js.map +0 -1
- package/build/inputs/TextArea.mjs +0 -21
- package/build/inputs/TextArea.mjs.map +0 -1
- package/build/inputs/_BottomSheet.js +0 -123
- package/build/inputs/_BottomSheet.js.map +0 -1
- package/build/inputs/_BottomSheet.mjs +0 -117
- package/build/inputs/_BottomSheet.mjs.map +0 -1
- package/build/inputs/_ButtonInput.js +0 -37
- package/build/inputs/_ButtonInput.js.map +0 -1
- package/build/inputs/_ButtonInput.mjs +0 -31
- package/build/inputs/_ButtonInput.mjs.map +0 -1
- package/build/inputs/_Popover.js +0 -120
- package/build/inputs/_Popover.js.map +0 -1
- package/build/inputs/_Popover.mjs +0 -114
- package/build/inputs/_Popover.mjs.map +0 -1
- package/build/inputs/_common.js +0 -23
- package/build/inputs/_common.js.map +0 -1
- package/build/inputs/_common.mjs +0 -17
- package/build/inputs/_common.mjs.map +0 -1
- package/build/inputs/contexts.js +0 -42
- package/build/inputs/contexts.js.map +0 -1
- package/build/inputs/contexts.mjs +0 -35
- package/build/inputs/contexts.mjs.map +0 -1
- package/build/instructionsList/InstructionsList.js +0 -66
- package/build/instructionsList/InstructionsList.js.map +0 -1
- package/build/instructionsList/InstructionsList.mjs +0 -60
- package/build/instructionsList/InstructionsList.mjs.map +0 -1
- package/build/label/Label.js +0 -25
- package/build/label/Label.js.map +0 -1
- package/build/label/Label.mjs +0 -19
- package/build/label/Label.mjs.map +0 -1
- package/build/link/Link.js +0 -42
- package/build/link/Link.js.map +0 -1
- package/build/link/Link.messages.js +0 -12
- package/build/link/Link.messages.js.map +0 -1
- package/build/link/Link.messages.mjs +0 -10
- package/build/link/Link.messages.mjs.map +0 -1
- package/build/link/Link.mjs +0 -36
- package/build/link/Link.mjs.map +0 -1
- package/build/listItem/ListItem.js +0 -50
- package/build/listItem/ListItem.js.map +0 -1
- package/build/listItem/ListItem.mjs +0 -44
- package/build/listItem/ListItem.mjs.map +0 -1
- package/build/loader/Loader.js +0 -68
- package/build/loader/Loader.js.map +0 -1
- package/build/loader/Loader.mjs +0 -62
- package/build/loader/Loader.mjs.map +0 -1
- package/build/logo/Logo.js +0 -180
- package/build/logo/Logo.js.map +0 -1
- package/build/logo/Logo.mjs +0 -173
- package/build/logo/Logo.mjs.map +0 -1
- package/build/logo/logoTypes.js +0 -10
- package/build/logo/logoTypes.js.map +0 -1
- package/build/logo/logoTypes.mjs +0 -10
- package/build/logo/logoTypes.mjs.map +0 -1
- package/build/markdown/Markdown.js +0 -75
- package/build/markdown/Markdown.js.map +0 -1
- package/build/markdown/Markdown.mjs +0 -69
- package/build/markdown/Markdown.mjs.map +0 -1
- package/build/modal/Modal.js +0 -113
- package/build/modal/Modal.js.map +0 -1
- package/build/modal/Modal.mjs +0 -107
- package/build/modal/Modal.mjs.map +0 -1
- package/build/money/Money.js +0 -20
- package/build/money/Money.js.map +0 -1
- package/build/money/Money.mjs +0 -18
- package/build/money/Money.mjs.map +0 -1
- package/build/moneyInput/MoneyInput.js +0 -369
- package/build/moneyInput/MoneyInput.js.map +0 -1
- package/build/moneyInput/MoneyInput.messages.js +0 -12
- package/build/moneyInput/MoneyInput.messages.js.map +0 -1
- package/build/moneyInput/MoneyInput.messages.mjs +0 -10
- package/build/moneyInput/MoneyInput.messages.mjs.map +0 -1
- package/build/moneyInput/MoneyInput.mjs +0 -363
- package/build/moneyInput/MoneyInput.mjs.map +0 -1
- package/build/moneyInput/currencyFormatting.js +0 -70
- package/build/moneyInput/currencyFormatting.js.map +0 -1
- package/build/moneyInput/currencyFormatting.mjs +0 -64
- package/build/moneyInput/currencyFormatting.mjs.map +0 -1
- package/build/navigationOption/NavigationOption.js +0 -48
- package/build/navigationOption/NavigationOption.js.map +0 -1
- package/build/navigationOption/NavigationOption.mjs +0 -42
- package/build/navigationOption/NavigationOption.mjs.map +0 -1
- package/build/navigationOptionsList/NavigationOptionsList.js +0 -19
- package/build/navigationOptionsList/NavigationOptionsList.js.map +0 -1
- package/build/navigationOptionsList/NavigationOptionsList.mjs +0 -17
- package/build/navigationOptionsList/NavigationOptionsList.mjs.map +0 -1
- package/build/nudge/Nudge.js +0 -121
- package/build/nudge/Nudge.js.map +0 -1
- package/build/nudge/Nudge.mjs +0 -112
- package/build/nudge/Nudge.mjs.map +0 -1
- package/build/overlayHeader/OverlayHeader.js +0 -54
- package/build/overlayHeader/OverlayHeader.js.map +0 -1
- package/build/overlayHeader/OverlayHeader.mjs +0 -47
- package/build/overlayHeader/OverlayHeader.mjs.map +0 -1
- package/build/phoneNumberInput/PhoneNumberInput.js +0 -161
- package/build/phoneNumberInput/PhoneNumberInput.js.map +0 -1
- package/build/phoneNumberInput/PhoneNumberInput.messages.js +0 -12
- package/build/phoneNumberInput/PhoneNumberInput.messages.js.map +0 -1
- package/build/phoneNumberInput/PhoneNumberInput.messages.mjs +0 -10
- package/build/phoneNumberInput/PhoneNumberInput.messages.mjs.map +0 -1
- package/build/phoneNumberInput/PhoneNumberInput.mjs +0 -159
- package/build/phoneNumberInput/PhoneNumberInput.mjs.map +0 -1
- package/build/phoneNumberInput/data/countries.js +0 -1278
- package/build/phoneNumberInput/data/countries.js.map +0 -1
- package/build/phoneNumberInput/data/countries.mjs +0 -1276
- package/build/phoneNumberInput/data/countries.mjs.map +0 -1
- package/build/phoneNumberInput/utils/cleanNumber/cleanNumber.js +0 -7
- package/build/phoneNumberInput/utils/cleanNumber/cleanNumber.js.map +0 -1
- package/build/phoneNumberInput/utils/cleanNumber/cleanNumber.mjs +0 -5
- package/build/phoneNumberInput/utils/cleanNumber/cleanNumber.mjs.map +0 -1
- package/build/phoneNumberInput/utils/excludeCountries/excludeCountries.js +0 -19
- package/build/phoneNumberInput/utils/excludeCountries/excludeCountries.js.map +0 -1
- package/build/phoneNumberInput/utils/excludeCountries/excludeCountries.mjs +0 -17
- package/build/phoneNumberInput/utils/excludeCountries/excludeCountries.mjs.map +0 -1
- package/build/phoneNumberInput/utils/explodeNumberModel/index.js +0 -21
- package/build/phoneNumberInput/utils/explodeNumberModel/index.js.map +0 -1
- package/build/phoneNumberInput/utils/explodeNumberModel/index.mjs +0 -19
- package/build/phoneNumberInput/utils/explodeNumberModel/index.mjs.map +0 -1
- package/build/phoneNumberInput/utils/findCountryByCode/index.js +0 -17
- package/build/phoneNumberInput/utils/findCountryByCode/index.js.map +0 -1
- package/build/phoneNumberInput/utils/findCountryByCode/index.mjs +0 -15
- package/build/phoneNumberInput/utils/findCountryByCode/index.mjs.map +0 -1
- package/build/phoneNumberInput/utils/findCountryByPrefix/index.js +0 -17
- package/build/phoneNumberInput/utils/findCountryByPrefix/index.js.map +0 -1
- package/build/phoneNumberInput/utils/findCountryByPrefix/index.mjs +0 -15
- package/build/phoneNumberInput/utils/findCountryByPrefix/index.mjs.map +0 -1
- package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.js +0 -12
- package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.js.map +0 -1
- package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.mjs +0 -10
- package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.mjs.map +0 -1
- package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.js +0 -11
- package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.js.map +0 -1
- package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.mjs +0 -9
- package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.mjs.map +0 -1
- package/build/phoneNumberInput/utils/longestMatchingPrefix/index.js +0 -6
- package/build/phoneNumberInput/utils/longestMatchingPrefix/index.js.map +0 -1
- package/build/phoneNumberInput/utils/longestMatchingPrefix/index.mjs +0 -4
- package/build/phoneNumberInput/utils/longestMatchingPrefix/index.mjs.map +0 -1
- package/build/phoneNumberInput/utils/setDefaultPrefix/index.js +0 -22
- package/build/phoneNumberInput/utils/setDefaultPrefix/index.js.map +0 -1
- package/build/phoneNumberInput/utils/setDefaultPrefix/index.mjs +0 -20
- package/build/phoneNumberInput/utils/setDefaultPrefix/index.mjs.map +0 -1
- package/build/phoneNumberInput/utils/sortArrayByProperty/sortArrayByProperty.js +0 -8
- package/build/phoneNumberInput/utils/sortArrayByProperty/sortArrayByProperty.js.map +0 -1
- package/build/phoneNumberInput/utils/sortArrayByProperty/sortArrayByProperty.mjs +0 -6
- package/build/phoneNumberInput/utils/sortArrayByProperty/sortArrayByProperty.mjs.map +0 -1
- package/build/popover/Popover.js +0 -79
- package/build/popover/Popover.js.map +0 -1
- package/build/popover/Popover.mjs +0 -73
- package/build/popover/Popover.mjs.map +0 -1
- package/build/processIndicator/ProcessIndicator.js +0 -120
- package/build/processIndicator/ProcessIndicator.js.map +0 -1
- package/build/processIndicator/ProcessIndicator.mjs +0 -114
- package/build/processIndicator/ProcessIndicator.mjs.map +0 -1
- package/build/progress/Progress.js +0 -24
- package/build/progress/Progress.js.map +0 -1
- package/build/progress/Progress.mjs +0 -18
- package/build/progress/Progress.mjs.map +0 -1
- package/build/progressBar/ProgressBar.js +0 -51
- package/build/progressBar/ProgressBar.js.map +0 -1
- package/build/progressBar/ProgressBar.mjs +0 -45
- package/build/progressBar/ProgressBar.mjs.map +0 -1
- package/build/promoCard/PromoCard.js +0 -189
- package/build/promoCard/PromoCard.js.map +0 -1
- package/build/promoCard/PromoCard.mjs +0 -182
- package/build/promoCard/PromoCard.mjs.map +0 -1
- package/build/promoCard/PromoCardContext.js +0 -33
- package/build/promoCard/PromoCardContext.js.map +0 -1
- package/build/promoCard/PromoCardContext.mjs +0 -27
- package/build/promoCard/PromoCardContext.mjs.map +0 -1
- package/build/promoCard/PromoCardGroup.js +0 -80
- package/build/promoCard/PromoCardGroup.js.map +0 -1
- package/build/promoCard/PromoCardGroup.mjs +0 -73
- package/build/promoCard/PromoCardGroup.mjs.map +0 -1
- package/build/promoCard/PromoCardIndicator.js +0 -53
- package/build/promoCard/PromoCardIndicator.js.map +0 -1
- package/build/promoCard/PromoCardIndicator.mjs +0 -47
- package/build/promoCard/PromoCardIndicator.mjs.map +0 -1
- package/build/provider/Provider.js +0 -53
- package/build/provider/Provider.js.map +0 -1
- package/build/provider/Provider.mjs +0 -51
- package/build/provider/Provider.mjs.map +0 -1
- package/build/provider/direction/DirectionProvider.js +0 -20
- package/build/provider/direction/DirectionProvider.js.map +0 -1
- package/build/provider/direction/DirectionProvider.mjs +0 -17
- package/build/provider/direction/DirectionProvider.mjs.map +0 -1
- package/build/provider/language/LanguageProvider.js +0 -20
- package/build/provider/language/LanguageProvider.js.map +0 -1
- package/build/provider/language/LanguageProvider.mjs +0 -17
- package/build/provider/language/LanguageProvider.mjs.map +0 -1
- package/build/radio/Radio.js +0 -63
- package/build/radio/Radio.js.map +0 -1
- package/build/radio/Radio.mjs +0 -57
- package/build/radio/Radio.mjs.map +0 -1
- package/build/radioGroup/RadioGroup.js +0 -40
- package/build/radioGroup/RadioGroup.js.map +0 -1
- package/build/radioGroup/RadioGroup.mjs +0 -38
- package/build/radioGroup/RadioGroup.mjs.map +0 -1
- package/build/radioOption/RadioOption.js +0 -46
- package/build/radioOption/RadioOption.js.map +0 -1
- package/build/radioOption/RadioOption.mjs +0 -44
- package/build/radioOption/RadioOption.mjs.map +0 -1
- package/build/section/Section.js +0 -24
- package/build/section/Section.js.map +0 -1
- package/build/section/Section.mjs +0 -18
- package/build/section/Section.mjs.map +0 -1
- package/build/segmentedControl/SegmentedControl.js +0 -115
- package/build/segmentedControl/SegmentedControl.js.map +0 -1
- package/build/segmentedControl/SegmentedControl.mjs +0 -109
- package/build/segmentedControl/SegmentedControl.mjs.map +0 -1
- package/build/select/Select.js +0 -579
- package/build/select/Select.js.map +0 -1
- package/build/select/Select.messages.js +0 -12
- package/build/select/Select.messages.js.map +0 -1
- package/build/select/Select.messages.mjs +0 -10
- package/build/select/Select.messages.mjs.map +0 -1
- package/build/select/Select.mjs +0 -572
- package/build/select/Select.mjs.map +0 -1
- package/build/select/index.js +0 -8
- package/build/select/index.js.map +0 -1
- package/build/select/index.mjs +0 -6
- package/build/select/index.mjs.map +0 -1
- package/build/select/option/Option.js +0 -58
- package/build/select/option/Option.js.map +0 -1
- package/build/select/option/Option.mjs +0 -52
- package/build/select/option/Option.mjs.map +0 -1
- package/build/select/option/index.js +0 -8
- package/build/select/option/index.js.map +0 -1
- package/build/select/option/index.mjs +0 -6
- package/build/select/option/index.mjs.map +0 -1
- package/build/select/searchBox/SearchBox.js +0 -54
- package/build/select/searchBox/SearchBox.js.map +0 -1
- package/build/select/searchBox/SearchBox.mjs +0 -48
- package/build/select/searchBox/SearchBox.mjs.map +0 -1
- package/build/slidingPanel/SlidingPanel.js +0 -49
- package/build/slidingPanel/SlidingPanel.js.map +0 -1
- package/build/slidingPanel/SlidingPanel.mjs +0 -40
- package/build/slidingPanel/SlidingPanel.mjs.map +0 -1
- package/build/snackbar/Snackbar.js +0 -134
- package/build/snackbar/Snackbar.js.map +0 -1
- package/build/snackbar/Snackbar.mjs +0 -129
- package/build/snackbar/Snackbar.mjs.map +0 -1
- package/build/snackbar/SnackbarContext.js +0 -12
- package/build/snackbar/SnackbarContext.js.map +0 -1
- package/build/snackbar/SnackbarContext.mjs +0 -9
- package/build/snackbar/SnackbarContext.mjs.map +0 -1
- package/build/snackbar/SnackbarProvider.js +0 -48
- package/build/snackbar/SnackbarProvider.js.map +0 -1
- package/build/snackbar/SnackbarProvider.mjs +0 -46
- package/build/snackbar/SnackbarProvider.mjs.map +0 -1
- package/build/snackbar/useSnackbar.js +0 -14
- package/build/snackbar/useSnackbar.js.map +0 -1
- package/build/snackbar/useSnackbar.mjs +0 -12
- package/build/snackbar/useSnackbar.mjs.map +0 -1
- package/build/statusIcon/StatusIcon.js +0 -37
- package/build/statusIcon/StatusIcon.js.map +0 -1
- package/build/statusIcon/StatusIcon.mjs +0 -31
- package/build/statusIcon/StatusIcon.mjs.map +0 -1
- package/build/stepper/Stepper.js +0 -80
- package/build/stepper/Stepper.js.map +0 -1
- package/build/stepper/Stepper.mjs +0 -74
- package/build/stepper/Stepper.mjs.map +0 -1
- package/build/stepper/deviceDetection.js +0 -22
- package/build/stepper/deviceDetection.js.map +0 -1
- package/build/stepper/deviceDetection.mjs +0 -20
- package/build/stepper/deviceDetection.mjs.map +0 -1
- package/build/sticky/Sticky.js +0 -21
- package/build/sticky/Sticky.js.map +0 -1
- package/build/sticky/Sticky.mjs +0 -19
- package/build/sticky/Sticky.mjs.map +0 -1
- package/build/summary/Summary.js +0 -119
- package/build/summary/Summary.js.map +0 -1
- package/build/summary/Summary.messages.js +0 -18
- package/build/summary/Summary.messages.js.map +0 -1
- package/build/summary/Summary.messages.mjs +0 -16
- package/build/summary/Summary.messages.mjs.map +0 -1
- package/build/summary/Summary.mjs +0 -113
- package/build/summary/Summary.mjs.map +0 -1
- package/build/switch/Switch.js +0 -82
- package/build/switch/Switch.js.map +0 -1
- package/build/switch/Switch.mjs +0 -76
- package/build/switch/Switch.mjs.map +0 -1
- package/build/switchOption/SwitchOption.js +0 -59
- package/build/switchOption/SwitchOption.js.map +0 -1
- package/build/switchOption/SwitchOption.mjs +0 -57
- package/build/switchOption/SwitchOption.mjs.map +0 -1
- package/build/tabs/Tab.js +0 -81
- package/build/tabs/Tab.js.map +0 -1
- package/build/tabs/Tab.mjs +0 -74
- package/build/tabs/Tab.mjs.map +0 -1
- package/build/tabs/TabList.js +0 -24
- package/build/tabs/TabList.js.map +0 -1
- package/build/tabs/TabList.mjs +0 -18
- package/build/tabs/TabList.mjs.map +0 -1
- package/build/tabs/TabPanel.js +0 -35
- package/build/tabs/TabPanel.js.map +0 -1
- package/build/tabs/TabPanel.mjs +0 -29
- package/build/tabs/TabPanel.mjs.map +0 -1
- package/build/tabs/Tabs.js +0 -541
- package/build/tabs/Tabs.js.map +0 -1
- package/build/tabs/Tabs.mjs +0 -533
- package/build/tabs/Tabs.mjs.map +0 -1
- package/build/tabs/utils.js +0 -50
- package/build/tabs/utils.js.map +0 -1
- package/build/tabs/utils.mjs +0 -42
- package/build/tabs/utils.mjs.map +0 -1
- package/build/textareaWithDisplayFormat/TextareaWithDisplayFormat.js +0 -15
- package/build/textareaWithDisplayFormat/TextareaWithDisplayFormat.js.map +0 -1
- package/build/textareaWithDisplayFormat/TextareaWithDisplayFormat.mjs +0 -13
- package/build/textareaWithDisplayFormat/TextareaWithDisplayFormat.mjs.map +0 -1
- package/build/tile/Tile.js +0 -86
- package/build/tile/Tile.js.map +0 -1
- package/build/tile/Tile.mjs +0 -76
- package/build/tile/Tile.mjs.map +0 -1
- package/build/title/Title.js +0 -42
- package/build/title/Title.js.map +0 -1
- package/build/title/Title.mjs +0 -36
- package/build/title/Title.mjs.map +0 -1
- package/build/tooltip/Tooltip.js +0 -103
- package/build/tooltip/Tooltip.js.map +0 -1
- package/build/tooltip/Tooltip.mjs +0 -97
- package/build/tooltip/Tooltip.mjs.map +0 -1
- package/build/typeahead/Typeahead.js +0 -468
- package/build/typeahead/Typeahead.js.map +0 -1
- package/build/typeahead/Typeahead.mjs +0 -460
- package/build/typeahead/Typeahead.mjs.map +0 -1
- package/build/typeahead/typeaheadInput/TypeaheadInput.js +0 -120
- package/build/typeahead/typeaheadInput/TypeaheadInput.js.map +0 -1
- package/build/typeahead/typeaheadInput/TypeaheadInput.mjs +0 -114
- package/build/typeahead/typeaheadInput/TypeaheadInput.mjs.map +0 -1
- package/build/typeahead/typeaheadOption/TypeaheadOption.js +0 -49
- package/build/typeahead/typeaheadOption/TypeaheadOption.js.map +0 -1
- package/build/typeahead/typeaheadOption/TypeaheadOption.mjs +0 -43
- package/build/typeahead/typeaheadOption/TypeaheadOption.mjs.map +0 -1
- package/build/typeahead/util/highlight.js +0 -21
- package/build/typeahead/util/highlight.js.map +0 -1
- package/build/typeahead/util/highlight.mjs +0 -19
- package/build/typeahead/util/highlight.mjs.map +0 -1
- package/build/upload/Upload.js +0 -435
- package/build/upload/Upload.js.map +0 -1
- package/build/upload/Upload.messages.js +0 -39
- package/build/upload/Upload.messages.js.map +0 -1
- package/build/upload/Upload.messages.mjs +0 -37
- package/build/upload/Upload.messages.mjs.map +0 -1
- package/build/upload/Upload.mjs +0 -425
- package/build/upload/Upload.mjs.map +0 -1
- package/build/upload/steps/completeStep/completeStep.js +0 -102
- package/build/upload/steps/completeStep/completeStep.js.map +0 -1
- package/build/upload/steps/completeStep/completeStep.mjs +0 -95
- package/build/upload/steps/completeStep/completeStep.mjs.map +0 -1
- package/build/upload/steps/mediaUploadStep/mediaUploadStep.js +0 -97
- package/build/upload/steps/mediaUploadStep/mediaUploadStep.js.map +0 -1
- package/build/upload/steps/mediaUploadStep/mediaUploadStep.mjs +0 -91
- package/build/upload/steps/mediaUploadStep/mediaUploadStep.mjs.map +0 -1
- package/build/upload/steps/processingStep/processingStep.js +0 -79
- package/build/upload/steps/processingStep/processingStep.js.map +0 -1
- package/build/upload/steps/processingStep/processingStep.mjs +0 -72
- package/build/upload/steps/processingStep/processingStep.mjs.map +0 -1
- package/build/upload/steps/uploadImageStep/uploadImageStep.js +0 -106
- package/build/upload/steps/uploadImageStep/uploadImageStep.js.map +0 -1
- package/build/upload/steps/uploadImageStep/uploadImageStep.mjs +0 -100
- package/build/upload/steps/uploadImageStep/uploadImageStep.mjs.map +0 -1
- package/build/upload/uploadSteps.js +0 -9
- package/build/upload/uploadSteps.js.map +0 -1
- package/build/upload/uploadSteps.mjs +0 -9
- package/build/upload/uploadSteps.mjs.map +0 -1
- package/build/upload/utils/asyncFileRead/asyncFileRead.js +0 -15
- package/build/upload/utils/asyncFileRead/asyncFileRead.js.map +0 -1
- package/build/upload/utils/asyncFileRead/asyncFileRead.mjs +0 -13
- package/build/upload/utils/asyncFileRead/asyncFileRead.mjs.map +0 -1
- package/build/upload/utils/getFileType/getFileType.js +0 -21
- package/build/upload/utils/getFileType/getFileType.js.map +0 -1
- package/build/upload/utils/getFileType/getFileType.mjs +0 -19
- package/build/upload/utils/getFileType/getFileType.mjs.map +0 -1
- package/build/upload/utils/getSupportedSpotMimeTypes/getSupportedSpotMimeTypes.js +0 -19
- package/build/upload/utils/getSupportedSpotMimeTypes/getSupportedSpotMimeTypes.js.map +0 -1
- package/build/upload/utils/getSupportedSpotMimeTypes/getSupportedSpotMimeTypes.mjs +0 -17
- package/build/upload/utils/getSupportedSpotMimeTypes/getSupportedSpotMimeTypes.mjs.map +0 -1
- package/build/upload/utils/isSizeValid/isSizeValid.js +0 -6
- package/build/upload/utils/isSizeValid/isSizeValid.js.map +0 -1
- package/build/upload/utils/isSizeValid/isSizeValid.mjs +0 -4
- package/build/upload/utils/isSizeValid/isSizeValid.mjs.map +0 -1
- package/build/upload/utils/isTypeValid/isTypeValid.js +0 -26
- package/build/upload/utils/isTypeValid/isTypeValid.js.map +0 -1
- package/build/upload/utils/isTypeValid/isTypeValid.mjs +0 -24
- package/build/upload/utils/isTypeValid/isTypeValid.mjs.map +0 -1
- package/build/upload/utils/postData/postData.js +0 -20
- package/build/upload/utils/postData/postData.js.map +0 -1
- package/build/upload/utils/postData/postData.mjs +0 -18
- package/build/upload/utils/postData/postData.mjs.map +0 -1
- package/build/upload/utils/requestMedia/requestMedia.js +0 -26
- package/build/upload/utils/requestMedia/requestMedia.js.map +0 -1
- package/build/upload/utils/requestMedia/requestMedia.mjs +0 -24
- package/build/upload/utils/requestMedia/requestMedia.mjs.map +0 -1
- package/build/uploadInput/UploadInput.js +0 -264
- package/build/uploadInput/UploadInput.js.map +0 -1
- package/build/uploadInput/UploadInput.messages.js +0 -30
- package/build/uploadInput/UploadInput.messages.js.map +0 -1
- package/build/uploadInput/UploadInput.messages.mjs +0 -28
- package/build/uploadInput/UploadInput.messages.mjs.map +0 -1
- package/build/uploadInput/UploadInput.mjs +0 -258
- package/build/uploadInput/UploadInput.mjs.map +0 -1
- package/build/uploadInput/uploadButton/UploadButton.js +0 -202
- package/build/uploadInput/uploadButton/UploadButton.js.map +0 -1
- package/build/uploadInput/uploadButton/UploadButton.messages.js +0 -24
- package/build/uploadInput/uploadButton/UploadButton.messages.js.map +0 -1
- package/build/uploadInput/uploadButton/UploadButton.messages.mjs +0 -22
- package/build/uploadInput/uploadButton/UploadButton.messages.mjs.map +0 -1
- package/build/uploadInput/uploadButton/UploadButton.mjs +0 -194
- package/build/uploadInput/uploadButton/UploadButton.mjs.map +0 -1
- package/build/uploadInput/uploadButton/defaults.js +0 -10
- package/build/uploadInput/uploadButton/defaults.js.map +0 -1
- package/build/uploadInput/uploadButton/defaults.mjs +0 -7
- package/build/uploadInput/uploadButton/defaults.mjs.map +0 -1
- package/build/uploadInput/uploadButton/getAllowedFileTypes.js +0 -8
- package/build/uploadInput/uploadButton/getAllowedFileTypes.js.map +0 -1
- package/build/uploadInput/uploadButton/getAllowedFileTypes.mjs +0 -6
- package/build/uploadInput/uploadButton/getAllowedFileTypes.mjs.map +0 -1
- package/build/uploadInput/uploadItem/UploadItem.js +0 -174
- package/build/uploadInput/uploadItem/UploadItem.js.map +0 -1
- package/build/uploadInput/uploadItem/UploadItem.messages.js +0 -27
- package/build/uploadInput/uploadItem/UploadItem.messages.js.map +0 -1
- package/build/uploadInput/uploadItem/UploadItem.messages.mjs +0 -25
- package/build/uploadInput/uploadItem/UploadItem.messages.mjs.map +0 -1
- package/build/uploadInput/uploadItem/UploadItem.mjs +0 -166
- package/build/uploadInput/uploadItem/UploadItem.mjs.map +0 -1
- package/build/uploadInput/uploadItem/UploadItemBody.js +0 -27
- package/build/uploadInput/uploadItem/UploadItemBody.js.map +0 -1
- package/build/uploadInput/uploadItem/UploadItemBody.mjs +0 -25
- package/build/uploadInput/uploadItem/UploadItemBody.mjs.map +0 -1
- package/build/utilities/cssValueWithUnit.js +0 -8
- package/build/utilities/cssValueWithUnit.js.map +0 -1
- package/build/utilities/cssValueWithUnit.mjs +0 -6
- package/build/utilities/cssValueWithUnit.mjs.map +0 -1
- package/build/utilities/logActionRequired.js +0 -17
- package/build/utilities/logActionRequired.js.map +0 -1
- package/build/utilities/logActionRequired.mjs +0 -14
- package/build/utilities/logActionRequired.mjs.map +0 -1
- package/build/withDisplayFormat/WithDisplayFormat.js +0 -304
- package/build/withDisplayFormat/WithDisplayFormat.js.map +0 -1
- package/build/withDisplayFormat/WithDisplayFormat.mjs +0 -282
- package/build/withDisplayFormat/WithDisplayFormat.mjs.map +0 -1
- package/build/withNextPortal/withNextPortal.js +0 -20
- package/build/withNextPortal/withNextPortal.js.map +0 -1
- package/build/withNextPortal/withNextPortal.mjs +0 -18
- package/build/withNextPortal/withNextPortal.mjs.map +0 -1
package/build/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
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.js","../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.js","../src/checkboxButton/CheckboxButton.tsx","../src/checkbox/Checkbox.js","../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.js","../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/inputs/contexts.tsx","../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.js","../src/decision/Decision.tsx","../src/definitionList/DefinitionList.js","../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/logoTypes.ts","../src/logo/Logo.js","../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.js","../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/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.js","../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/uploadSteps.ts","../src/upload/Upload.messages.js","../src/upload/steps/uploadImageStep/uploadImageStep.js","../src/upload/utils/postData/postData.js","../src/upload/utils/asyncFileRead/asyncFileRead.js","../src/upload/utils/isSizeValid/isSizeValid.js","../src/upload/utils/getFileType/getFileType.js","../src/upload/utils/isTypeValid/isTypeValid.js","../src/upload/utils/getSupportedSpotMimeTypes/getSupportedSpotMimeTypes.js","../src/upload/utils/requestMedia/requestMedia.js","../src/upload/steps/mediaUploadStep/mediaUploadStep.js","../src/upload/steps/processingStep/processingStep.js","../src/upload/steps/completeStep/completeStep.js","../src/upload/Upload.js","../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 PropTypes from 'prop-types';\n\nimport { MarkdownNodeType } from '../../common';\nimport Markdown from '../../markdown';\n\nconst allowList = [MarkdownNodeType.STRONG];\n\nconst InlineMarkdown = (props) => {\n return <Markdown {...props} as=\"span\" allowList={allowList} blockList={undefined} />;\n};\n\nInlineMarkdown.propTypes = {\n children: PropTypes.string.isRequired,\n className: PropTypes.string,\n};\n\nInlineMarkdown.defaultProps = {\n className: undefined,\n};\n\nexport default InlineMarkdown;\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\ntype 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 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 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 PropTypes from 'prop-types';\nimport { forwardRef } from 'react';\nimport requiredIf from 'react-required-if';\n\nimport Body from '../body';\nimport Chevron from '../chevron';\nimport { Position, Typography } from '../common';\nimport Option from '../common/Option';\n\nconst Card = forwardRef((props, reference) => {\n const {\n 'aria-label': ariaLabel,\n as: Element,\n isExpanded,\n title,\n details,\n children,\n onClick,\n icon,\n id,\n className,\n ...rest\n } = props;\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={rest['data-testid']}\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)}\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\nconst hasChildren = ({ children }) => children;\n\nCard.propTypes = {\n 'aria-label': PropTypes.string,\n as: PropTypes.string,\n isExpanded: requiredIf(PropTypes.bool, hasChildren),\n title: PropTypes.node.isRequired,\n details: PropTypes.node.isRequired,\n onClick: requiredIf(PropTypes.func, hasChildren),\n icon: PropTypes.node,\n children: PropTypes.node,\n id: PropTypes.string,\n className: PropTypes.string,\n 'data-testid': PropTypes.string,\n};\n\nCard.defaultProps = {\n 'aria-label': undefined,\n as: 'div',\n children: null,\n id: null,\n className: null,\n 'data-testid': null,\n};\n\nexport default Card;\n","import classNames from 'classnames';\nimport { InputHTMLAttributes, forwardRef } from 'react';\n\nexport type CheckboxButtonProps = InputHTMLAttributes<HTMLInputElement>;\n\nconst CheckboxButton = forwardRef<HTMLInputElement, CheckboxButtonProps>(\n ({ checked, className, disabled, onChange, ...rest }, reference) => (\n <span className={classNames('np-checkbox-button', className, disabled && 'disabled')}>\n <input\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 { useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Body from '../body/Body';\nimport CheckboxButton from '../checkboxButton';\nimport { Typography } from '../common';\n\nconst Checkbox = ({\n id,\n checked,\n required,\n disabled,\n readOnly,\n label,\n className,\n secondary,\n onChange,\n onFocus,\n onBlur,\n}) => {\n const { isModern } = useTheme();\n\n const classList = classNames(\n 'np-checkbox',\n {\n checkbox: true,\n 'checkbox-lg': secondary,\n disabled: isModern && 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 && (\n <Body as=\"span\" className={classNames({ secondary: !isModern })}>\n {secondary}\n </Body>\n )}\n </Body>\n </label>\n </div>\n );\n};\n\nCheckbox.propTypes = {\n id: PropTypes.string,\n checked: PropTypes.bool,\n required: PropTypes.bool,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n label: PropTypes.node.isRequired,\n secondary: PropTypes.string,\n onFocus: PropTypes.func,\n onChange: PropTypes.func.isRequired,\n onBlur: PropTypes.func,\n className: PropTypes.string,\n};\n\nCheckbox.defaultProps = {\n id: null,\n checked: false,\n required: false,\n disabled: false,\n readOnly: false,\n secondary: null,\n onFocus: null,\n onBlur: null,\n className: undefined,\n};\n\nexport default Checkbox;\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}\n\nconst SlidingPanel = forwardRef(\n (\n {\n position = 'left',\n open,\n showSlidingPanelBorder,\n slidingPanelPositionFixed,\n className,\n children,\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 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 PropTypes from 'prop-types';\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\nconst Drawer = ({ children, className, footerContent, headerTitle, onClose, open, position }) => {\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\nDrawer.propTypes = {\n /** The content to appear in the drawer body. */\n children: PropTypes.node,\n className: PropTypes.string,\n /** The content to appear in the drawer footer. */\n footerContent: PropTypes.node,\n /** The content to appear in the drawer header. */\n headerTitle: PropTypes.node,\n /** The status of Drawer either open or not. */\n open: PropTypes.bool,\n /** The placement of Drawer on the screen either left or right. On mobile it will default to bottom. */\n position: PropTypes.oneOf(['left', 'right', 'bottom']),\n /** The action to perform on close click. */\n onClose: PropTypes.func,\n};\n\nDrawer.defaultProps = {\n children: null,\n className: undefined,\n footerContent: null,\n headerTitle: null,\n onClose: null,\n open: false,\n position: Position.RIGHT,\n};\n\nexport default Drawer;\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 { 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 { 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 { Input, SelectInput, SelectInputOptionContent, SelectInputProps } from '..';\nimport { DateMode, MonthFormat, Size, SizeLarge, SizeMedium, SizeSmall } 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 [month, setMonth] = useState(() => getInitialDate('month'));\n const [year, setYear] = useState(() => getInitialDate('year'));\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 <span className=\"sr-only\">{monthLabel}</span>\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 handleInternalValue = (newDay = day, newMonth = month, newYear = year) => {\n if (newDay == null || newMonth == null || newYear == null) {\n broadcastNewValue(null);\n return;\n }\n\n const dateValue = new Date(newYear, newMonth, newDay);\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 { checkedDay } = checkDate(Number.parseInt(event.target.value, 10), month, year);\n setDay(checkedDay);\n handleInternalValue(checkedDay, 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 const { checkedDay } = checkDate(day, selectedMonth, year);\n setMonth(selectedMonth);\n if (day && checkedDay !== day) {\n setDay(checkedDay);\n }\n handleInternalValue(checkedDay, selectedMonth, year);\n };\n\n const handleYearChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = event.target.value;\n const slicedYear = newValue.length > 4 ? newValue.slice(0, 4) : newValue;\n\n if (slicedYear.toString().length === 4) {\n // Correct day based on year and month.\n const { checkedDay } = checkDate(day, month, Number.parseInt(newValue, 10));\n\n if (day && checkedDay !== day) {\n setDay(checkedDay);\n }\n\n setYear(Number.parseInt(slicedYear, 10));\n handleInternalValue(checkedDay, month, Number.parseInt(slicedYear, 10));\n } else {\n setYear(Number.parseInt(slicedYear, 10));\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 checkDate = (\n newDay: number | null = null,\n newMonth: number | null = 0,\n newYear: number | null = null,\n ) => {\n let checkedDay = newDay;\n const maxDay = new Date(newYear || 2000, newMonth != null ? newMonth + 1 : 1, 0).getDate();\n\n if (!newDay) {\n checkedDay = null;\n }\n\n if (newDay && newDay < 0) {\n checkedDay = 1;\n }\n\n if ((newDay && newMonth) || (newDay && newDay > 31)) {\n checkedDay = newDay > maxDay ? maxDay : newDay;\n }\n\n return { checkedDay, checkedMonth: newMonth, checkedYear: newYear };\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 <span className=\"sr-only\">{dayLabel}</span>\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={day || ''}\n placeholder={placeholders?.day}\n disabled={disabled}\n min={1}\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 <span className=\"sr-only\">{yearLabel}</span>\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={year || ''}\n disabled={disabled}\n min={1}\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';\nimport PropTypes from 'prop-types';\n\nimport Body from '../body';\nimport { Size, Typography } from '../common';\nimport Title from '../title';\n\nexport const Tile = ({\n className,\n description,\n disabled,\n href,\n target,\n media,\n onClick,\n size,\n title,\n}) => {\n const isSmall = size === Size.SMALL;\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 ? null : onClick}\n onKeyDown={\n disabled\n ? null\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\nTile.propTypes = {\n /** Classes to apply to the Tile container */\n className: PropTypes.string,\n description: PropTypes.node,\n disabled: PropTypes.bool,\n href: PropTypes.string,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n /** Accepts only Avatar and images */\n media: PropTypes.node.isRequired,\n /** Function called onClick or onKeyDown */\n onClick: PropTypes.func,\n /** The size applied to Tile */\n size: PropTypes.oneOf(['sm', 'md']),\n title: PropTypes.node.isRequired,\n};\n\nTile.defaultProps = {\n className: '',\n description: null,\n disabled: false,\n size: Size.MEDIUM,\n target: undefined,\n};\n\nexport default Tile;\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?: React.MouseEventHandler<HTMLElement>;\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';\nimport PropTypes from 'prop-types';\n\nimport ActionButton from '../actionButton';\nimport { Layout } from '../common';\n\nconst isLayoutHorizontal = (layout) =>\n [\n Layout.HORIZONTAL_LEFT_ALIGNED,\n Layout.HORIZONTAL_RIGHT_ALIGNED,\n Layout.HORIZONTAL_JUSTIFIED,\n ].includes(layout);\n\nconst getAlignmentClasses = (layout, action) => {\n let 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 DefinitionList = ({ definitions, layout, muted }) => (\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': 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\nDefinitionList.propTypes = {\n definitions: PropTypes.arrayOf(\n PropTypes.shape({\n action: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n }),\n title: PropTypes.node.isRequired,\n value: PropTypes.node.isRequired,\n key: PropTypes.string.isRequired,\n }),\n ),\n layout: PropTypes.oneOf([\n 'VERTICAL_TWO_COLUMN',\n 'VERTICAL_ONE_COLUMN',\n 'HORIZONTAL_JUSTIFIED',\n 'HORIZONTAL_LEFT_ALIGNED',\n 'HORIZONTAL_RIGHT_ALIGNED',\n ]),\n muted: PropTypes.bool,\n};\n\nDefinitionList.defaultProps = {\n definitions: [],\n layout: Layout.VERTICAL_TWO_COLUMN,\n muted: false,\n};\n\nexport default DefinitionList;\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 = '<';\nconst ESCAPED_CLOSING_CHEVRON = '>';\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, '&').replace(/</g, '<').replace(/>/g, '>');\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 { AlertCircle as AlertCircleIcon } from '@transferwise/icons';\nimport classNames from 'classnames';\nimport { ReactNode } from 'react';\n\nimport { Sentiment } from '../common';\n\nexport interface InlineAlertProps {\n id?: string;\n type?: `${Sentiment}`;\n className?: string;\n children: ReactNode;\n}\n\nexport default function InlineAlert({\n id,\n type = 'neutral',\n className,\n children,\n}: InlineAlertProps) {\n const danger = type === 'negative' || type === 'error';\n return (\n <div\n role=\"alert\"\n id={id}\n className={classNames('alert alert-detach', `alert-${danger ? 'danger' : type}`, className)}\n >\n {danger && <AlertCircleIcon />}\n <div>{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 label: React.ReactNode;\n hint?: React.ReactNode;\n error?: React.ReactNode;\n className?: string;\n children?: React.ReactNode;\n};\n\nexport const Field = ({ id, label, hint, error, className, children }: FieldProps) => {\n const hasError = Boolean(error);\n const hasHint = Boolean(hint) && !hasError;\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={hasError || hasHint ? descriptionId : undefined}>\n <InputInvalidProvider value={hasError}>\n <div\n className={classNames(\n 'form-group d-block',\n {\n 'has-error': hasError,\n 'has-info': hasHint,\n },\n className,\n )}\n >\n <Label id={labelId} htmlFor={inputId}>\n {label}\n {children}\n </Label>\n {hasHint && (\n <InlineAlert type={Sentiment.NEUTRAL} id={descriptionId}>\n {hint}\n </InlineAlert>\n )}\n {hasError && (\n <InlineAlert type={Sentiment.NEGATIVE} id={descriptionId}>\n {error}\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","// TODO: consider to move this enum into component file once we migrate it on TypeScript or replace with some common enum\nexport enum LogoType {\n WISE = 'WISE',\n WISE_BUSINESS = 'WISE_BUSINESS',\n WISE_PLATFORM = 'WISE_PLATFORM',\n}\n","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { LogoType } from './logoTypes';\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\nconst Logo = ({ className, inverse, type }) => {\n const LogoSm =\n svgPaths[\n `WISE_FLAG${type === LogoType.WISE_PLATFORM ? '_PLATFORM' : ''}${inverse ? '_INVERSE' : ''}`\n ];\n const LogoMd = svgPaths[`${type}${inverse ? '_INVERSE' : ''}`];\n\n return (\n <span\n aria-label={\n type === LogoType.WISE\n ? 'Wise'\n : 'Wise Business' | (type === LogoType.WISE_PLATFORM)\n ? 'Wise Platform'\n : 'Wise Business'\n }\n role=\"img\"\n className={classNames(className, 'np-logo')}\n >\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\nLogo.propTypes = {\n /** Extra classes applied to Logo */\n className: PropTypes.string,\n /** If true, will use dark colours for dark on light theme */\n inverse: PropTypes.bool,\n /** What type of logo to display */\n type: PropTypes.oneOf(['WISE', 'WISE_BUSINESS', 'WISE_PLATFORM']),\n};\n\nLogo.defaultProps = {\n className: undefined,\n inverse: false,\n type: LogoType.WISE,\n};\n\nexport default Logo;\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';\nimport PropTypes from 'prop-types';\n\nimport Avatar, { AvatarType } from '../../avatar';\n\nconst BackButton = ({ className, onClick, 'aria-label': ariaLabel }) => (\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\nBackButton.propTypes = {\n 'aria-label': PropTypes.string.isRequired,\n className: PropTypes.string,\n label: PropTypes.element,\n onClick: PropTypes.func,\n};\n\nBackButton.defaultProps = {\n className: undefined,\n label: undefined,\n};\n\nexport default BackButton;\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 Props {\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}: Props) => {\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';\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 [paddingStart, setPaddingStart] = useState(inputPaddingInitialState(addonStart));\n const [paddingEnd, setPaddingEnd] = useState(inputPaddingInitialState(addonEnd));\n\n return (\n <InputPaddingStartContext.Provider\n value={useMemo(() => [paddingStart, setPaddingStart], [paddingStart])}\n >\n <InputPaddingEndContext.Provider\n value={useMemo(() => [paddingEnd, setPaddingEnd], [paddingEnd])}\n >\n <fieldset disabled={disabled} className={classNames(className, 'np-input-group')}>\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 );\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 { 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 { useState } from 'react';\n\nimport { CloseButton } from '../common/closeButton';\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 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 enter=\"np-bottom-sheet-v2-backdrop-container--enter\"\n enterFrom=\"np-bottom-sheet-v2-backdrop-container--enter-from\"\n leave=\"np-bottom-sheet-v2-backdrop-container--leave\"\n leaveTo=\"np-bottom-sheet-v2-backdrop-container--leave-to\"\n >\n <div className=\"np-bottom-sheet-v2-backdrop\" />\n </Transition.Child>\n\n <div className=\"np-bottom-sheet-v2\">\n <Transition.Child\n className=\"np-bottom-sheet-v2-content\"\n enter=\"np-bottom-sheet-v2-content--enter\"\n enterFrom=\"np-bottom-sheet-v2-content--enter-from\"\n leave=\"np-bottom-sheet-v2-content--leave\"\n leaveTo=\"np-bottom-sheet-v2-content--leave-to\"\n >\n <FocusScope>\n <FloatingFocusManager context={context} initialFocus={initialFocusRef}>\n <div\n key={floatingKey} // Force inner state invalidation on open\n ref={refs.setFloating}\n className=\"np-bottom-sheet-v2-content-inner-container\"\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 {\n 'np-bottom-sheet-v2-content-inner--padding-md': padding === 'md',\n },\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 </div>\n </FloatingFocusManager>\n </FocusScope>\n </Transition.Child>\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 } 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 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 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 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';\nimport PropTypes from 'prop-types';\n\nimport { Size } from '../common';\nimport { CloseButton } from '../common/closeButton';\nimport FlowHeader from '../common/flowHeader';\nimport Logo from '../logo';\n\nconst OverlayHeader = ({ avatar, onClose, logo }) => {\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\nOverlayHeader.defaultProps = {\n avatar: null,\n logo: <Logo />,\n onClose: null,\n};\n\nOverlayHeader.propTypes = {\n /** An Avatar */\n avatar: PropTypes.element,\n logo: PropTypes.node,\n /** Function called when the close is clicked */\n onClose: PropTypes.func,\n};\n\nexport default OverlayHeader;\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, ThemeDark, 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 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, theme, timestamp } = this.props;\n\n if (!previousProps.text) {\n this.setState({ visible: true, action, text, theme }, () => {\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, theme });\n this.setLeaveTimeout();\n }, CSS_TRANSITION_DURATION);\n });\n } else {\n this.setState({ visible: true, action, text, theme });\n this.setLeaveTimeout();\n }\n }\n }\n\n render() {\n const { action, text, theme = Theme.LIGHT, 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\n ref={this.bodyRef}\n as=\"span\"\n className={`snackbar__text snackbar__text--${theme}`}\n aria-live=\"polite\"\n >\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';\n\nexport interface StickyProps {\n open?: boolean;\n position?: `${Position.TOP | Position.BOTTOM}`;\n children?: React.ReactNode;\n}\n\nexport default function Sticky({ open = true, position = 'bottom', children }: StickyProps) {\n return (\n <SlidingPanel open={open} position={position} slidingPanelPositionFixed showSlidingPanelBorder>\n {children}\n </SlidingPanel>\n );\n}\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","// TODO: consider to move this enum into component file once we migrate it on TypeScript or replace with some common enum\nexport enum UploadStep {\n UPLOAD_IMAGE_STEP = 'uploadImageStep',\n MEDIA_UPLOAD_STEP = 'mediaUploadStep',\n}\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 PropTypes from 'prop-types';\nimport { createRef, PureComponent } from 'react';\n\nclass UploadImageStep extends PureComponent {\n constructor() {\n super();\n this.uploadInputRef = createRef();\n }\n\n onManualUpload = () => {\n const { fileDropped } = this.props;\n if (this.uploadInputRef && this.uploadInputRef.current) {\n const file = this.uploadInputRef.current.files[0];\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\">{`${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 === '*' ? null : 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\nUploadImageStep.propTypes = {\n fileDropped: PropTypes.func.isRequired,\n isComplete: PropTypes.bool.isRequired,\n usAccept: PropTypes.string.isRequired,\n usButtonText: PropTypes.string.isRequired,\n usDisabled: PropTypes.bool.isRequired,\n usHelpImage: PropTypes.node.isRequired,\n usLabel: PropTypes.string.isRequired,\n usPlaceholder: PropTypes.string.isRequired,\n};\n\nexport default UploadImageStep;\n","export const postData = (httpOptions, data = {}, fetcher = fetch) =>\n fetcher(`${httpOptions.url}`, {\n method: 'POST',\n body: data,\n ...httpOptions,\n })\n .then((response) => {\n if (!response.ok) {\n const error = new Error(response.statusText);\n error.status = response.status;\n error.response = response;\n throw error;\n }\n return response;\n })\n .catch((error) => {\n throw error;\n });\n","export const asyncFileRead = (file) =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.addEventListener('load', (event) => {\n resolve(event.target.result);\n });\n reader.addEventListener('error', (event) => {\n reject(event);\n });\n });\n","export const isSizeValid = (file, maxSize) => Number.isInteger(maxSize) && file.size <= maxSize;\n","export const getFileType = (file, file64) => {\n if (!file && !file64) {\n return '';\n }\n\n if (file && file.type && file.type !== '') {\n return file.type ?? '';\n }\n\n if (file64) {\n const regex = /^data:([a-z]+\\/[a-z]+);/;\n const typeFromEncoded = file64.match(regex);\n\n if (typeFromEncoded && typeFromEncoded[1]) {\n return typeFromEncoded[1] ?? '';\n }\n }\n return '';\n};\n","import { getFileType } from '../getFileType';\n\nexport const isTypeValid = (file, rule, file64) => {\n if (!file || !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 splittedRule = type.split('/');\n const typeAllowed = splittedRule[0];\n const extensionAllowed = splittedRule[1];\n\n if (extensionAllowed !== '*') {\n return false;\n }\n\n return fileType.includes(typeAllowed);\n });\n};\n","// Spot Platform's Media API only support these MIME types\nconst SUPPORTED_MIME_TYPES = ['image/jpeg', 'video/*', 'application/pdf'];\n\nexport const getSupportedSpotMimeTypes = (mimeTypes) => {\n if (mimeTypes === '*') {\n return SUPPORTED_MIME_TYPES;\n }\n\n const mimeTypesArray = mimeTypes.split(',');\n const mimeMapping = {\n 'image/*': 'image/jpeg',\n 'application/*': 'application/pdf',\n };\n\n const mapSupportedMimeTypes = mimeTypesArray.map((type) => mimeMapping[type] || type);\n\n return mapSupportedMimeTypes.filter((type) => SUPPORTED_MIME_TYPES.includes(type));\n};\n","export const requestMedia = (mediaRequest) =>\n new Promise((resolve, reject) => {\n if (typeof window === 'undefined' || typeof window.microapps === 'undefined') {\n reject(`microapps must be available in window to use Spot Platform's Media API`);\n }\n\n window.microapps\n .requestMedia(mediaRequest)\n .then((response) => {\n const fileByteArray = base64ToByteArray(response.bytes);\n const blob = new Blob([fileByteArray], { type: response.mimeType });\n resolve(blob);\n })\n .catch((error) => reject(error));\n });\n\nconst base64ToByteArray = (base64String) => {\n const byteCharacters = atob(base64String);\n const byteCharactersLength = byteCharacters.length;\n const byteArray = new Array(byteCharactersLength);\n\n for (let i = 0; i < byteCharactersLength; i += 1) {\n byteArray[i] = byteCharacters.charCodeAt(i);\n }\n return new Uint8Array(byteArray);\n};\n","import { Upload as UploadIcon } from '@transferwise/icons';\nimport PropTypes from 'prop-types';\n\nimport Body from '../../../body';\nimport Button from '../../../button/Button';\nimport { Typography } from '../../../common';\nimport Title from '../../../title';\nimport { getSupportedSpotMimeTypes, requestMedia } from '../../utils';\n\nconst MediaUploadStep = ({\n isComplete,\n usAccept,\n usButtonText,\n usDisabled,\n usHelpImage,\n usLabel,\n usPlaceholder,\n fileDropped,\n}) => {\n const getMediaFile = () => {\n const allowedMimeTypes = getSupportedSpotMimeTypes(usAccept);\n\n if (allowedMimeTypes.length === 0) {\n throw new Error('provided mimeTypes not supported');\n }\n\n const mediaRequest = { allowedMimeTypes };\n requestMedia(mediaRequest).then((file) => fileDropped(file));\n };\n\n const getImage = () => {\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 return (\n <div>\n <div className=\"droppable-default-card\" aria-hidden={isComplete}>\n <div className=\"droppable-card-content\">\n <div className=\"m-b-3\">{getImage()}</div>\n {usLabel && (\n <Title type={Typography.TITLE_BODY} className=\"m-b-1\">\n {usLabel}\n </Title>\n )}\n {usPlaceholder && (\n <Body as=\"p\" type={Typography.BODY_LARGE} className=\"m-b-3\">{`${usPlaceholder}`}</Body>\n )}\n <Button disabled={usDisabled} onClick={getMediaFile}>\n {usButtonText || <UploadIcon size={24} className=\"m-r-0\" />}\n </Button>\n </div>\n </div>\n </div>\n );\n};\n\nMediaUploadStep.propTypes = {\n fileDropped: PropTypes.func.isRequired,\n isComplete: PropTypes.bool.isRequired,\n usAccept: PropTypes.string.isRequired,\n usButtonText: PropTypes.string.isRequired,\n usDisabled: PropTypes.bool.isRequired,\n usHelpImage: PropTypes.node.isRequired,\n usLabel: PropTypes.string.isRequired,\n usPlaceholder: PropTypes.string.isRequired,\n};\n\nexport default MediaUploadStep;\n","import { useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../../button';\nimport { Status, Size, Typography } from '../../../common';\nimport ProcessIndicator from '../../../processIndicator';\nimport Title from '../../../title';\n\nconst ProcessingStep = (props) => {\n const {\n isComplete,\n isError,\n isSuccess,\n onAnimationCompleted,\n onClear,\n psButtonText,\n psProcessingText,\n psButtonDisabled,\n } = props;\n\n const { isModern } = useTheme();\n\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 size={Size.Small}\n status={processStatus}\n onAnimationCompleted={(status) => onAnimationCompleted(status)}\n />\n <Title\n className={classNames({\n 'm-t-3': !isModern,\n 'm-b-3': !isModern,\n 'm-t-2': isModern,\n 'm-b-2': isModern,\n })}\n type={Typography.TITLE_BODY}\n aria-live=\"polite\"\n >\n {psProcessingText}\n </Title>\n {psButtonText && (\n <Button disabled={psButtonDisabled} onClick={(event) => onClear(event)}>\n {psButtonText}\n </Button>\n )}\n </div>\n </div>\n );\n};\n\nProcessingStep.propTypes = {\n isComplete: PropTypes.bool.isRequired,\n isError: PropTypes.bool.isRequired,\n isSuccess: PropTypes.bool.isRequired,\n onAnimationCompleted: PropTypes.func.isRequired,\n onClear: PropTypes.func.isRequired,\n psButtonText: PropTypes.string.isRequired,\n psProcessingText: PropTypes.string.isRequired,\n psButtonDisabled: PropTypes.bool.isRequired,\n};\n\nexport default ProcessingStep;\n","import { AlertCircle as AlertCircleIcon, Document as DocumentIcon } from '@transferwise/icons';\nimport { useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { Priority, Typography } from '../../..';\nimport Body from '../../../body';\nimport Button from '../../../button';\nimport { Sentiment, Size } from '../../../common';\nimport StatusIcon from '../../../statusIcon';\nimport Title from '../../../title';\n\nconst CompleteStep = (props) => {\n const { isModern } = useTheme();\n const {\n csButtonText,\n csFailureText,\n csSuccessText,\n fileName,\n isComplete,\n isError,\n isImage,\n onClear,\n uploadedImage,\n } = props;\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 {isModern ? (\n <StatusIcon size={Size.LARGE} sentiment={Sentiment.NEGATIVE} />\n ) : (\n <AlertCircleIcon size={24} className=\"text-negative\" />\n )}\n {csFailureText && (\n <p className={classNames('m-t-2', { 'm-b-0': isModern })}>{csFailureText}</p>\n )}\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\n priority={isModern ? Priority.PRIMARY : Priority.SECONDARY}\n className={classNames({\n 'm-t-1': isModern && !isError,\n 'm-t-2': isModern && isError,\n 'm-t-3': !isModern,\n })}\n onClick={(event) => onClear(event)}\n >\n {csButtonText}\n </Button>\n )}\n </div>\n </div>\n );\n};\n\nCompleteStep.propTypes = {\n csButtonText: PropTypes.string.isRequired,\n csSuccessText: PropTypes.string.isRequired,\n csFailureText: PropTypes.string.isRequired,\n fileName: PropTypes.string.isRequired,\n isComplete: PropTypes.bool.isRequired,\n isError: PropTypes.bool.isRequired,\n isImage: PropTypes.bool.isRequired,\n onClear: PropTypes.func.isRequired,\n uploadedImage: PropTypes.string,\n};\nCompleteStep.defaultProps = {\n uploadedImage: null,\n};\n\nexport default CompleteStep;\n","import { Plus as PlusIcon } from '@transferwise/icons';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { Component } from 'react';\nimport { injectIntl } from 'react-intl';\n\nimport { Status, Typography } from '../common';\nimport Title from '../title';\n\nimport messages from './Upload.messages';\nimport { UploadImageStep, MediaUploadStep, ProcessingStep, CompleteStep } from './steps';\nimport { UploadStep } from './uploadSteps';\nimport { postData, asyncFileRead, isSizeValid, isTypeValid, getFileType } from './utils';\n\nconst PROCESS_STATE = ['error', 'success'];\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;\nconst MAX_SIZE_DEFAULT = 5000000;\nconst UPLOAD_STEP_COMPONENTS = {\n [UploadStep.UPLOAD_IMAGE_STEP]: UploadImageStep,\n [UploadStep.MEDIA_UPLOAD_STEP]: MediaUploadStep,\n};\n\nclass Upload extends Component {\n constructor(props) {\n super(props);\n this.dragCounter = 0;\n this.timeouts = null;\n\n this.state = {\n fileName: '',\n isComplete: false,\n isError: false,\n isImage: false,\n isProcessing: false,\n isSuccess: false,\n response: null,\n uploadedImage: null,\n };\n }\n\n getErrorMessage(status) {\n switch (status) {\n case 413:\n return (\n this.props.csTooLargeMessage ||\n this.props.intl.formatMessage(messages.csTooLargeMessage, {\n maxSize: this.props.maxSize / 1000000,\n })\n );\n case 415:\n return (\n this.props.csWrongTypeMessage ||\n this.props.intl.formatMessage(messages.csWrongTypeMessage)\n );\n default:\n return this.props.csFailureText || this.props.intl.formatMessage(messages.csFailureText);\n }\n }\n\n onDragLeave(event) {\n event.preventDefault();\n this.dragCounter -= 1;\n if (this.dragCounter === 0) {\n this.setState({ isDroppable: false });\n }\n }\n\n onDragEnter(event) {\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 onDrop(event) {\n const { isProcessing } = this.state;\n event.preventDefault();\n if (!isProcessing) {\n this.reset();\n }\n\n if (event.dataTransfer && event.dataTransfer.files && event.dataTransfer.files[0]) {\n this.fileDropped(event.dataTransfer.files[0]);\n }\n }\n\n onAnimationCompleted = async (status) => {\n const { response, isProcessing, fileName } = this.state;\n // Success.\n const { animationDelay } = this.props;\n if (isProcessing && status === Status.SUCCEEDED) {\n const { onSuccess } = this.props;\n this.timeouts = setTimeout(() => {\n this.setState(\n {\n isProcessing: false,\n isComplete: true,\n },\n () => (onSuccess ? onSuccess(response, fileName) : {}),\n );\n }, animationDelay);\n }\n // Failure.\n if (isProcessing && status === Status.FAILED) {\n const { onFailure } = this.props;\n this.timeouts = setTimeout(() => {\n this.setState(\n {\n isProcessing: false,\n isComplete: true,\n },\n () => (onFailure ? onFailure(response) : {}),\n );\n }, animationDelay);\n }\n };\n\n asyncPost = (file) => {\n const { httpOptions, fetcher } = this.props;\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(this.prepareHttpOptions(httpOptions), formData, fetcher);\n };\n\n asyncResponse = (response, type) => {\n // Gives time to the animation callback to fire.\n this.timeouts = setTimeout(() => {\n this.setState({\n response,\n isError: type === PROCESS_STATE[0],\n isSuccess: type === PROCESS_STATE[1],\n });\n }, ANIMATION_FIX);\n };\n\n prepareHttpOptions = (httpOptions) => {\n if (!httpOptions.url) {\n throw new Error('You must supply a URL to post image data asynchronously');\n }\n return httpOptions;\n };\n\n handleOnClear = (event) => {\n event.preventDefault();\n const { onCancel } = this.props;\n if (onCancel) {\n onCancel();\n }\n\n this.reset();\n };\n\n reset = () => {\n this.dragCounter = 0;\n clearTimeout(this.timeouts);\n this.setState({\n isComplete: false,\n isError: false,\n isProcessing: false,\n isSuccess: false,\n });\n };\n\n showDataImage = (dataUrl) => {\n const { isImage } = this.state;\n if (isImage) {\n this.setState({\n uploadedImage: dataUrl,\n });\n }\n };\n\n fileDropped = async (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 if (onStart) {\n onStart(file);\n }\n\n let file64 = null;\n\n try {\n file64 = await asyncFileRead(file);\n } catch (error) {\n this.asyncResponse(error, PROCESS_STATE[0]);\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 const response = {\n status: 415,\n statusText: 'Unsupported Media Type',\n };\n this.asyncResponse(response, PROCESS_STATE[0]);\n return false;\n }\n\n if (!isSizeValid(file, maxSize)) {\n const response = {\n status: 413,\n statusText: 'Request Entity Too Large',\n };\n this.asyncResponse(response, PROCESS_STATE[0]);\n return false;\n }\n\n if (httpOptions) {\n // Post the file to provided endpoint\n return await this.asyncPost(file)\n .then((response) => this.asyncResponse(response, 'success'))\n .then(() => {\n this.showDataImage(file64);\n return true;\n })\n .catch((error) => {\n this.asyncResponse(error, PROCESS_STATE[0]);\n return false;\n });\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 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 uploadStep,\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 const UploadStepComponent = UPLOAD_STEP_COMPONENTS[uploadStep] || UploadImageStep;\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={(event) => this.onDrop(event)}\n onDragOver={(event) => event.preventDefault()}\n >\n {!isProcessing && !isComplete && (\n <UploadStepComponent\n fileDropped={(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: this.props.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={(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(response?.status)}\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\nUpload.propTypes = {\n animationDelay: PropTypes.number,\n csButtonText: PropTypes.string,\n csFailureText: PropTypes.string,\n csSuccessText: PropTypes.string,\n csTooLargeMessage: PropTypes.string,\n csWrongTypeMessage: PropTypes.string,\n httpOptions: PropTypes.shape({\n url: PropTypes.string.isRequired,\n method: PropTypes.oneOf(['POST', 'PUT', 'PATCH']),\n fileInputName: PropTypes.string,\n data: PropTypes.object,\n headers: PropTypes.object,\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: PropTypes.func,\n maxSize: PropTypes.number,\n onCancel: PropTypes.func,\n onFailure: PropTypes.func,\n onStart: PropTypes.func,\n onSuccess: PropTypes.func,\n psButtonText: PropTypes.string,\n psButtonDisabled: PropTypes.bool,\n psProcessingText: PropTypes.string,\n size: PropTypes.oneOf(['sm', 'md', 'lg']),\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: PropTypes.string,\n usButtonText: PropTypes.string,\n usDisabled: PropTypes.bool,\n usDropMessage: PropTypes.string,\n usHelpImage: PropTypes.node,\n usLabel: PropTypes.string,\n usPlaceholder: PropTypes.string,\n uploadStep: PropTypes.oneOf(['uploadImageStep', 'mediaUploadStep']),\n};\n\nUpload.defaultProps = {\n animationDelay: 700,\n csButtonText: undefined,\n csFailureText: undefined,\n csSuccessText: undefined,\n csTooLargeMessage: undefined,\n csWrongTypeMessage: undefined,\n httpOptions: null,\n maxSize: MAX_SIZE_DEFAULT,\n onCancel: null,\n onFailure: null,\n onStart: null,\n onSuccess: null,\n psButtonText: undefined,\n psButtonDisabled: false,\n psProcessingText: undefined,\n size: 'md',\n usAccept: 'image/*',\n usButtonText: undefined,\n usDisabled: false,\n usDropMessage: undefined,\n usHelpImage: '',\n usLabel: '',\n usPlaceholder: undefined,\n uploadStep: UploadStep.UPLOAD_IMAGE_STEP,\n};\n\n// this export is necessary for react-to-typescript-definitions\n// to be able to properly generate TS types, this is due to us wrapping this component in `injectIntl` before exporting\nexport { Upload };\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 { useTheme } from '@wise/components-theming';\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';\nimport { useDirection } from '../../common/hooks';\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 /**\n * Are there any uploaded items on a multiple-file upload? Used for calculating border radiuses\n */\n multipleFileInputWithFilesAdded: boolean;\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 multipleFileInputWithFilesAdded,\n}: UploadButtonProps) => {\n const { isModern } = useTheme();\n const { isRTL } = useDirection();\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 <>\n <Body\n className={classNames({\n 'text-primary': !disabled,\n small: !isModern,\n 'font-weight-normal': !isModern,\n })}\n >\n {getDescription()}\n {maxFiles && (\n <>\n <br />\n {`Maximum ${maxFiles} files.`}\n </>\n )}\n </Body>\n </>\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\n htmlFor={id}\n className={classNames('btn', 'np-upload-accent', 'np-upload-button', {\n disabled,\n 'np-upload-input--square-top': multipleFileInputWithFilesAdded,\n })}\n >\n <div className=\"media\">\n <div className=\"np-upload-icon 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 { 'np-upload-input--square-top': multipleFileInputWithFilesAdded },\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' : ''}\n onClick={onDownload}\n >\n {children}\n </a>\n );\n};\n","import { AlertCircle, CrossCircleFill } from '@transferwise/icons';\nimport { useTheme } from '@wise/components-theming';\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 const { isModern } = useTheme();\n\n const isSucceeded = [Status.SUCCEEDED, undefined].includes(status) && !!url;\n\n const getIcon = () => {\n if (error || errors?.length || status === Status.FAILED) {\n return isModern ? (\n <StatusIcon size={Size.SMALL} sentiment={Sentiment.NEGATIVE} />\n ) : (\n <AlertCircle size={24} className=\"text-negative\" />\n );\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 = isModern ? (\n <StatusIcon size={Size.SMALL} sentiment={Sentiment.POSITIVE} />\n ) : (\n <ProcessIndicator size={Size.EXTRA_SMALL} status={Status.SUCCEEDED} />\n );\n }\n\n if (isModern) {\n return processIndicator;\n }\n\n return <span style={{ transform: 'scale(0.8335)' }}>{processIndicator}</span>; // Scale down ProcessIndicator to be 20px*20px to match `icons`\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 <CrossCircleFill size={16} />\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport default UploadItem;\n","import { useTheme } from '@wise/components-theming';\nimport 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 { isModern } = useTheme();\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 = Array.isArray(fileTypes) ? fileTypes.join(',') : fileTypes;\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: isModern && 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 multipleFileInputWithFilesAdded={multiple && uploadedFiles.length > 0}\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","propTypes","PropTypes","string","isRequired","defaultProps","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","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","container","cWidth","cScrollOffset","elemLeft","offsetLeft","elemRight","isExpanded","details","isOpen","hasChildren","requiredIf","bool","func","CheckboxButton","Checkbox","required","readOnly","secondary","onBlur","isModern","useTheme","checkbox","innerDisabled","CheckboxOption","Chip","onRemove","onKeyPress","ariaChecked","closeButton","isActionable","defaultRole","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","oneOf","RIGHT","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","FieldLabelIdContext","FieldLabelIdContextProvider","InputIdContext","InputIdContextProvider","InputDescribedByContext","InputDescribedByProvider","InputInvalidContext","InputInvalidProvider","useInputAttributes","nonLabelable","labelId","withInputAttributes","args","ComponentWithInputAttributes","inputAttributes","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","year","setYear","lastBroadcastedValue","setLastBroadcastedValue","monthNames","getDateAsString","MONTH_YEAR","getSelectElement","SelectInput","placeholder","from","_","renderValue","SelectInputOptionContent","handleMonthChange","handleInternalValue","newDay","newMonth","newYear","broadcastNewValue","dateValue","handleDayChange","checkedDay","checkDate","parseInt","selectedMonth","handleYearChange","newValue","slicedYear","maxDay","checkedMonth","checkedYear","monthYearOnly","monthWidth","getDay","Input","inputMode","pattern","autoComplete","getYear","monthBeforeDay","yearFirst","shouldPropagateOnFocus","shouldPropagateOnBlur","relatedTarget","targetParent","closest","relatedParent","blurElementParent","focusElement","activeElement","focusElementParent","POPOVER_OFFSET","fallbackPlacements","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","DefinitionList","definitions","muted","VERTICAL_ONE_COLUMN","VERTICAL_TWO_COLUMN","definition","arrayOf","shape","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","InlineAlert","danger","AlertCircleIcon","Label","htmlFor","Field","hint","hasError","hasHint","fallbackInputId","inputId","descriptionId","NEUTRAL","FlowHeader","bottomContent","HORIZONTAL","leftContent","rightContent","isVertical","VERTICAL","LogoType","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","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","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","maxLength","renderProps","onPaste","onCut","InputWithDisplayFormat","SearchInput","Search","PolymorphicWithOverrides","__overrides","restOverrides","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","leave","leaveTo","FloatingFocusManager","initialFocus","setFloating","ButtonInput","floatingPadding","floatingStyles","middleware","crossAxis","shift","floatingSize","apply","elements","rects","availableHeight","floating","setProperty","whileElementsMounted","autoUpdate","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","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","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","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","dropdownRight","any","oneOfType","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","Fragment","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","ERROR","displayAlert","hasWarning","WARNING","hasInfo","CrossIcon","UploadStep","csButtonText","csFailureText","csSuccessText","csTooLargeMessage","csWrongTypeMessage","psButtonText","psProcessingText","usButtonText","usDropMessage","usPlaceholder","UploadImageStep","uploadInputRef","onManualUpload","fileDropped","file","files","getImage","usHelpImage","usLabel","UploadIcon","isComplete","usAccept","usDisabled","accept","postData","httpOptions","data","fetcher","fetch","method","then","response","ok","statusText","catch","asyncFileRead","Promise","resolve","reject","FileReader","readAsDataURL","result","isSizeValid","maxSize","isInteger","getFileType","file64","typeFromEncoded","isTypeValid","rule","allowedTypes","fileType","splittedRule","typeAllowed","extensionAllowed","SUPPORTED_MIME_TYPES","getSupportedSpotMimeTypes","mimeTypes","mimeTypesArray","mimeMapping","mapSupportedMimeTypes","requestMedia","mediaRequest","microapps","fileByteArray","base64ToByteArray","bytes","blob","Blob","mimeType","base64String","byteCharacters","atob","byteCharactersLength","byteArray","Uint8Array","MediaUploadStep","getMediaFile","allowedMimeTypes","ProcessingStep","isError","isSuccess","psButtonDisabled","processStatus","PROCESSING","Small","CompleteStep","fileName","isImage","uploadedImage","DocumentIcon","PROCESS_STATE","ANIMATION_FIX","MAX_SIZE_DEFAULT","UPLOAD_STEP_COMPONENTS","UPLOAD_IMAGE_STEP","MEDIA_UPLOAD_STEP","Upload","dragCounter","timeouts","isProcessing","getErrorMessage","onDragLeave","isDroppable","onDragEnter","onDrop","dataTransfer","animationDelay","onSuccess","onFailure","asyncPost","fileInputName","formData","FormData","append","prepareHttpOptions","asyncResponse","handleOnClear","onCancel","showDataImage","dataUrl","onStart","uploadStep","UploadStepComponent","droppable","onDragOver","PlusIcon","headers","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","multipleFileInputWithFilesAdded","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","AlertCircle","processIndicator","getMultipleErrors","onDownloadFile","uploadItem","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","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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"}
|