@transferwise/components 46.46.1 → 46.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/build/accordion/AccordionItem/AccordionItem.js.map +1 -1
  2. package/build/accordion/AccordionItem/AccordionItem.mjs.map +1 -1
  3. package/build/alert/Alert.js.map +1 -1
  4. package/build/alert/Alert.mjs.map +1 -1
  5. package/build/avatar/Avatar.js.map +1 -1
  6. package/build/avatar/Avatar.mjs.map +1 -1
  7. package/build/badge/Badge.js.map +1 -1
  8. package/build/badge/Badge.mjs.map +1 -1
  9. package/build/button/legacyUtils/legacyUtils.js.map +1 -1
  10. package/build/button/legacyUtils/legacyUtils.mjs.map +1 -1
  11. package/build/carousel/Carousel.js.map +1 -1
  12. package/build/carousel/Carousel.mjs.map +1 -1
  13. package/build/chips/Chip.js.map +1 -1
  14. package/build/chips/Chip.mjs.map +1 -1
  15. package/build/chips/Chips.js.map +1 -1
  16. package/build/chips/Chips.mjs.map +1 -1
  17. package/build/common/bottomSheet/BottomSheet.js.map +1 -1
  18. package/build/common/bottomSheet/BottomSheet.mjs.map +1 -1
  19. package/build/common/deviceDetection/deviceDetection.js.map +1 -1
  20. package/build/common/deviceDetection/deviceDetection.mjs.map +1 -1
  21. package/build/common/panel/Panel.js.map +1 -1
  22. package/build/common/panel/Panel.mjs.map +1 -1
  23. package/build/common/responsivePanel/ResponsivePanel.js +3 -1
  24. package/build/common/responsivePanel/ResponsivePanel.js.map +1 -1
  25. package/build/common/responsivePanel/ResponsivePanel.mjs +3 -1
  26. package/build/common/responsivePanel/ResponsivePanel.mjs.map +1 -1
  27. package/build/dateInput/DateInput.js.map +1 -1
  28. package/build/dateInput/DateInput.mjs.map +1 -1
  29. package/build/dateLookup/DateLookup.js.map +1 -1
  30. package/build/dateLookup/DateLookup.mjs.map +1 -1
  31. package/build/dateLookup/dateHeader/DateHeader.js.map +1 -1
  32. package/build/dateLookup/dateHeader/DateHeader.mjs.map +1 -1
  33. package/build/dateLookup/dateTrigger/DateTrigger.js.map +1 -1
  34. package/build/dateLookup/dateTrigger/DateTrigger.mjs.map +1 -1
  35. package/build/decision/Decision.js.map +1 -1
  36. package/build/decision/Decision.mjs.map +1 -1
  37. package/build/display/Display.js.map +1 -1
  38. package/build/display/Display.mjs.map +1 -1
  39. package/build/emphasis/EmphasisHtmlTransformer.js.map +1 -1
  40. package/build/emphasis/EmphasisHtmlTransformer.mjs.map +1 -1
  41. package/build/i18n/en.json +2 -0
  42. package/build/i18n/en.json.js +2 -0
  43. package/build/i18n/en.json.js.map +1 -1
  44. package/build/i18n/en.json.mjs +2 -0
  45. package/build/i18n/en.json.mjs.map +1 -1
  46. package/build/index.js +2 -0
  47. package/build/index.js.map +1 -1
  48. package/build/index.mjs +1 -0
  49. package/build/index.mjs.map +1 -1
  50. package/build/inlineAlert/InlineAlert.js.map +1 -1
  51. package/build/inlineAlert/InlineAlert.mjs.map +1 -1
  52. package/build/inputs/InputGroup.js.map +1 -1
  53. package/build/inputs/InputGroup.mjs.map +1 -1
  54. package/build/inputs/contexts.js.map +1 -1
  55. package/build/inputs/contexts.mjs.map +1 -1
  56. package/build/link/Link.js.map +1 -1
  57. package/build/link/Link.mjs.map +1 -1
  58. package/build/loader/Loader.js.map +1 -1
  59. package/build/loader/Loader.mjs.map +1 -1
  60. package/build/logo/Logo.js.map +1 -1
  61. package/build/logo/Logo.mjs.map +1 -1
  62. package/build/main.css +44 -0
  63. package/build/markdown/Markdown.js.map +1 -1
  64. package/build/markdown/Markdown.mjs.map +1 -1
  65. package/build/modal/Modal.js.map +1 -1
  66. package/build/modal/Modal.mjs.map +1 -1
  67. package/build/moneyInput/MoneyInput.js.map +1 -1
  68. package/build/moneyInput/MoneyInput.mjs.map +1 -1
  69. package/build/moneyInput/currencyFormatting.js.map +1 -1
  70. package/build/moneyInput/currencyFormatting.mjs.map +1 -1
  71. package/build/phoneNumberInput/PhoneNumberInput.js.map +1 -1
  72. package/build/phoneNumberInput/PhoneNumberInput.mjs.map +1 -1
  73. package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.js.map +1 -1
  74. package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.mjs.map +1 -1
  75. package/build/popover/Popover.js.map +1 -1
  76. package/build/popover/Popover.mjs.map +1 -1
  77. package/build/processIndicator/ProcessIndicator.js.map +1 -1
  78. package/build/processIndicator/ProcessIndicator.mjs.map +1 -1
  79. package/build/progressBar/ProgressBar.js.map +1 -1
  80. package/build/progressBar/ProgressBar.mjs.map +1 -1
  81. package/build/promoCard/PromoCard.js.map +1 -1
  82. package/build/promoCard/PromoCard.mjs.map +1 -1
  83. package/build/provider/Provider.js.map +1 -1
  84. package/build/provider/Provider.mjs.map +1 -1
  85. package/build/select/Select.js.map +1 -1
  86. package/build/select/Select.mjs.map +1 -1
  87. package/build/select/option/Option.js.map +1 -1
  88. package/build/select/option/Option.mjs.map +1 -1
  89. package/build/select/searchBox/SearchBox.js.map +1 -1
  90. package/build/select/searchBox/SearchBox.mjs.map +1 -1
  91. package/build/selectOption/SelectOption.js +115 -0
  92. package/build/selectOption/SelectOption.js.map +1 -0
  93. package/build/selectOption/SelectOption.messages.js +15 -0
  94. package/build/selectOption/SelectOption.messages.js.map +1 -0
  95. package/build/selectOption/SelectOption.messages.mjs +13 -0
  96. package/build/selectOption/SelectOption.messages.mjs.map +1 -0
  97. package/build/selectOption/SelectOption.mjs +109 -0
  98. package/build/selectOption/SelectOption.mjs.map +1 -0
  99. package/build/slidingPanel/SlidingPanel.js.map +1 -1
  100. package/build/slidingPanel/SlidingPanel.mjs.map +1 -1
  101. package/build/statusIcon/StatusIcon.js.map +1 -1
  102. package/build/statusIcon/StatusIcon.mjs.map +1 -1
  103. package/build/stepper/Stepper.js.map +1 -1
  104. package/build/stepper/Stepper.mjs.map +1 -1
  105. package/build/stepper/deviceDetection.js.map +1 -1
  106. package/build/stepper/deviceDetection.mjs.map +1 -1
  107. package/build/styles/main.css +44 -0
  108. package/build/styles/selectOption/SelectOption.css +44 -0
  109. package/build/tabs/Tabs.js.map +1 -1
  110. package/build/tabs/Tabs.mjs.map +1 -1
  111. package/build/title/Title.js.map +1 -1
  112. package/build/title/Title.mjs.map +1 -1
  113. package/build/tooltip/Tooltip.js.map +1 -1
  114. package/build/tooltip/Tooltip.mjs.map +1 -1
  115. package/build/typeahead/Typeahead.js.map +1 -1
  116. package/build/typeahead/Typeahead.mjs.map +1 -1
  117. package/build/typeahead/typeaheadInput/TypeaheadInput.js.map +1 -1
  118. package/build/typeahead/typeaheadInput/TypeaheadInput.mjs.map +1 -1
  119. package/build/types/common/responsivePanel/ResponsivePanel.d.ts.map +1 -1
  120. package/build/types/index.d.ts +2 -0
  121. package/build/types/index.d.ts.map +1 -1
  122. package/build/types/selectOption/SelectOption.d.ts +21 -0
  123. package/build/types/selectOption/SelectOption.d.ts.map +1 -0
  124. package/build/types/selectOption/SelectOption.messages.d.ts +12 -0
  125. package/build/types/selectOption/SelectOption.messages.d.ts.map +1 -0
  126. package/build/types/selectOption/index.d.ts +3 -0
  127. package/build/types/selectOption/index.d.ts.map +1 -0
  128. package/build/types/uploadInput/UploadInput.d.ts.map +1 -1
  129. package/build/upload/steps/uploadImageStep/uploadImageStep.js.map +1 -1
  130. package/build/upload/steps/uploadImageStep/uploadImageStep.mjs.map +1 -1
  131. package/build/uploadInput/UploadInput.js +6 -0
  132. package/build/uploadInput/UploadInput.js.map +1 -1
  133. package/build/uploadInput/UploadInput.mjs +6 -0
  134. package/build/uploadInput/UploadInput.mjs.map +1 -1
  135. package/build/uploadInput/uploadButton/UploadButton.js.map +1 -1
  136. package/build/uploadInput/uploadButton/UploadButton.mjs.map +1 -1
  137. package/build/utilities/cssValueWithUnit.js.map +1 -1
  138. package/build/utilities/cssValueWithUnit.mjs.map +1 -1
  139. package/package.json +32 -33
  140. package/src/common/responsivePanel/ResponsivePanel.tsx +2 -0
  141. package/src/i18n/en.json +2 -0
  142. package/src/index.ts +2 -0
  143. package/src/main.css +44 -0
  144. package/src/main.less +1 -0
  145. package/src/selectOption/SelectOption.css +44 -0
  146. package/src/selectOption/SelectOption.less +40 -0
  147. package/src/selectOption/SelectOption.messages.ts +12 -0
  148. package/src/selectOption/SelectOption.spec.tsx +83 -0
  149. package/src/selectOption/SelectOption.story.tsx +278 -0
  150. package/src/selectOption/SelectOption.tsx +151 -0
  151. package/src/selectOption/index.ts +2 -0
  152. package/src/ssr.spec.js +1 -0
  153. package/src/test-utils/Parameters.d.ts +1 -1
  154. package/src/uploadInput/UploadInput.spec.tsx +14 -1
  155. package/src/uploadInput/UploadInput.story.tsx +11 -0
  156. package/src/uploadInput/UploadInput.tsx +8 -1
@@ -1,13 +1,14 @@
1
1
  import { within } from '@testing-library/react';
2
2
  import { userEvent } from '@testing-library/user-event';
3
+ import { act } from 'react';
3
4
 
4
5
  import { Status } from '../common';
6
+ import { Field } from '../field/Field';
5
7
  import { mockMatchMedia, render, screen, waitFor, waitForElementToBeRemoved } from '../test-utils';
6
8
 
7
9
  import UploadInput, { UploadInputProps } from './UploadInput';
8
10
  import { TEST_IDS as UPLOAD_BUTTON_TEST_IDS } from './uploadButton/UploadButton';
9
11
  import { TEST_IDS as UPLOAD_ITEM_TEST_IDS } from './uploadItem/UploadItem';
10
- import { act } from 'react';
11
12
 
12
13
  const user = userEvent.setup({ advanceTimers: jest.advanceTimersByTimeAsync });
13
14
 
@@ -310,4 +311,16 @@ describe('UploadInput', () => {
310
311
  });
311
312
  });
312
313
  });
314
+
315
+ it('supports `Field` for error messages', () => {
316
+ render(
317
+ <Field message="Something went wrong" sentiment="negative">
318
+ <UploadInput {...props} />
319
+ </Field>,
320
+ );
321
+
322
+ const container = screen.getAllByRole('group')[0];
323
+ expect(container).toBeInvalid();
324
+ expect(container).toHaveAccessibleDescription('Something went wrong');
325
+ });
313
326
  });
@@ -1,5 +1,7 @@
1
1
  import { StoryFn, Meta } from '@storybook/react';
2
2
 
3
+ import { Field } from '../field/Field';
4
+
3
5
  import UploadInput, { UploadInputProps } from './UploadInput';
4
6
  import { UploadResponse } from './types';
5
7
 
@@ -44,3 +46,12 @@ SingleFile.args = { ...props };
44
46
 
45
47
  export const MultipleFiles: Story = Template.bind({});
46
48
  MultipleFiles.args = { ...props, multiple: true };
49
+
50
+ export const WithinField: Story = Template.bind({});
51
+ WithinField.decorators = [
52
+ (Story) => (
53
+ <Field message="Something went wrong" sentiment="negative">
54
+ <Story />
55
+ </Field>
56
+ ),
57
+ ];
@@ -4,6 +4,7 @@ import { useIntl } from 'react-intl';
4
4
 
5
5
  import Button from '../button';
6
6
  import { CommonProps, ControlType, Priority, Status } from '../common';
7
+ import { useInputAttributes } from '../inputs/contexts';
7
8
  import Modal from '../modal';
8
9
  import { isSizeValid } from '../upload/utils/isSizeValid';
9
10
  import { isTypeValid } from '../upload/utils/isTypeValid';
@@ -127,6 +128,8 @@ const UploadInput = ({
127
128
  sizeLimitErrorMessage,
128
129
  uploadButtonTitle,
129
130
  }: UploadInputProps) => {
131
+ const inputAttributes = useInputAttributes({ nonLabelable: true });
132
+
130
133
  const [markedFileForDelete, setMarkedFileForDelete] = useState<UploadedFile | null>(null);
131
134
  const [mounted, setMounted] = useState(false);
132
135
  const { formatMessage } = useIntl();
@@ -299,7 +302,11 @@ const UploadInput = ({
299
302
 
300
303
  return (
301
304
  <>
302
- <div className={classNames('np-upload-input', className, { disabled })}>
305
+ <div
306
+ role="group"
307
+ className={classNames('np-upload-input', className, { disabled })}
308
+ {...inputAttributes}
309
+ >
303
310
  {uploadedFiles.map((file) => (
304
311
  <UploadItem
305
312
  key={file.id}