@transferwise/components 0.0.0-experimental-cb7b730 → 0.0.0-experimental-9463364

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 (168) hide show
  1. package/build/dateLookup/DateLookup.js +3 -2
  2. package/build/dateLookup/DateLookup.js.map +1 -1
  3. package/build/dateLookup/DateLookup.mjs +3 -2
  4. package/build/dateLookup/DateLookup.mjs.map +1 -1
  5. package/build/i18n/en.json +1 -0
  6. package/build/i18n/en.json.js +1 -0
  7. package/build/i18n/en.json.js.map +1 -1
  8. package/build/i18n/en.json.mjs +1 -0
  9. package/build/i18n/en.json.mjs.map +1 -1
  10. package/build/main.css +4 -95
  11. package/build/styles/accordion/Accordion.css +27 -16
  12. package/build/styles/avatar/Avatar.css +95 -50
  13. package/build/styles/dimmer/Dimmer.css +0 -1
  14. package/build/styles/inputs/Input.css +37 -21
  15. package/build/styles/inputs/TextArea.css +35 -20
  16. package/build/styles/loader/Loader.css +4 -90
  17. package/build/styles/main.css +4 -95
  18. package/build/styles/popover/Popover.css +19 -12
  19. package/build/styles/select/Select.css +131 -68
  20. package/build/styles/switch/Switch.css +27 -16
  21. package/build/styles/tile/Tile.css +31 -18
  22. package/build/types/dateLookup/DateLookup.d.ts +2 -2
  23. package/build/types/dateLookup/DateLookup.d.ts.map +1 -1
  24. package/build/types/test-utils/index.d.ts +2 -0
  25. package/build/types/test-utils/index.d.ts.map +1 -1
  26. package/build/types/test-utils/story-config.d.ts +2 -3
  27. package/build/types/test-utils/story-config.d.ts.map +1 -1
  28. package/build/types/upload/Upload.d.ts.map +1 -1
  29. package/build/types/upload/Upload.messages.d.ts +4 -0
  30. package/build/types/upload/Upload.messages.d.ts.map +1 -1
  31. package/build/types/uploadInput/uploadButton/UploadButton.d.ts.map +1 -1
  32. package/build/upload/Upload.js +13 -3
  33. package/build/upload/Upload.js.map +1 -1
  34. package/build/upload/Upload.messages.js +3 -0
  35. package/build/upload/Upload.messages.js.map +1 -1
  36. package/build/upload/Upload.messages.mjs +3 -0
  37. package/build/upload/Upload.messages.mjs.map +1 -1
  38. package/build/upload/Upload.mjs +13 -3
  39. package/build/upload/Upload.mjs.map +1 -1
  40. package/build/uploadInput/uploadButton/UploadButton.js +3 -0
  41. package/build/uploadInput/uploadButton/UploadButton.js.map +1 -1
  42. package/build/uploadInput/uploadButton/UploadButton.mjs +3 -0
  43. package/build/uploadInput/uploadButton/UploadButton.mjs.map +1 -1
  44. package/package.json +8 -16
  45. package/src/accordion/Accordion.css +27 -16
  46. package/src/accordion/Accordion.story.tsx +1 -1
  47. package/src/actionButton/ActionButton.story.tsx +3 -2
  48. package/src/actionOption/ActionOption.story.tsx +2 -2
  49. package/src/alert/Alert.story.tsx +2 -2
  50. package/src/alert/Alert.tests.story.tsx +2 -2
  51. package/src/avatar/Avatar.css +95 -50
  52. package/src/avatar/Avatar.story.tsx +3 -2
  53. package/src/avatarLayout/AvatarLayout.story.tsx +1 -1
  54. package/src/avatarView/AvatarView.story.tsx +1 -1
  55. package/src/avatarWrapper/AvatarWrapper.story.tsx +3 -2
  56. package/src/badge/Badge.story.tsx +49 -28
  57. package/src/button/Button.accessibility.docs.mdx +1 -1
  58. package/src/button/Button.story.tsx +2 -2
  59. package/src/button/Button.tests.story.tsx +2 -2
  60. package/src/button/LegacyButton.story.tsx +3 -2
  61. package/src/card/Card.story.tsx +2 -2
  62. package/src/carousel/Carousel.story.tsx +1 -1
  63. package/src/checkbox/Checkbox.story.tsx +2 -2
  64. package/src/checkboxButton/CheckboxButton.story.tsx +2 -2
  65. package/src/checkboxOption/CheckboxOption.story.tsx +35 -29
  66. package/src/chevron/Chevron.story.tsx +1 -1
  67. package/src/chips/Chips.story.tsx +1 -1
  68. package/src/circularButton/CircularButton.story.tsx +1 -1
  69. package/src/circularButton/CircularButton.tests.story.tsx +1 -1
  70. package/src/common/bottomSheet/BottomSheet.story.tsx +2 -2
  71. package/src/common/card/Card.story.tsx +1 -1
  72. package/src/common/circle/Circle.story.tsx +2 -2
  73. package/src/common/responsivePanel/ResponsivePanel.spec.js +8 -29
  74. package/src/criticalBanner/CriticalCommsBanner.story.tsx +1 -1
  75. package/src/dateInput/DateInput.story.tsx +2 -2
  76. package/src/dateInput/DateInput.tests.story.tsx +2 -2
  77. package/src/dateLookup/DateLookup.story.tsx +43 -71
  78. package/src/dateLookup/DateLookup.tests.story.tsx +3 -3
  79. package/src/dateLookup/DateLookup.tsx +4 -1
  80. package/src/decision/Decision.story.tsx +24 -49
  81. package/src/definitionList/DefinitionList.story.tsx +1 -1
  82. package/src/dimmer/Dimmer.css +0 -1
  83. package/src/dimmer/Dimmer.less +0 -1
  84. package/src/dimmer/Dimmer.story.tsx +2 -2
  85. package/src/divider/Divider.accessibility.docs.mdx +1 -1
  86. package/src/divider/Divider.story.tsx +1 -1
  87. package/src/drawer/Drawer.story.tsx +13 -7
  88. package/src/dropFade/DropFade.story.tsx +1 -1
  89. package/src/emphasis/Emphasis.story.tsx +1 -1
  90. package/src/field/Field.story.tsx +3 -3
  91. package/src/flowNavigation/FlowNavigation.story.tsx +305 -260
  92. package/src/i18n/en.json +1 -0
  93. package/src/iconButton/IconButton.story.tsx +2 -2
  94. package/src/image/Image.story.tsx +27 -54
  95. package/src/info/Info.story.tsx +2 -2
  96. package/src/inlineAlert/InlineAlert.story.tsx +1 -1
  97. package/src/inputWithDisplayFormat/InputWithDisplayFormat.story.tsx +2 -2
  98. package/src/inputs/Input.css +37 -21
  99. package/src/inputs/InputGroup.story.tsx +1 -1
  100. package/src/inputs/SearchInput.story.tsx +1 -1
  101. package/src/inputs/SelectInput.docs.mdx +1 -1
  102. package/src/inputs/SelectInput.story.tsx +2 -2
  103. package/src/inputs/TextArea.css +35 -20
  104. package/src/instructionsList/InstructionsList.story.tsx +2 -2
  105. package/src/legacylistItem/LegacyListItem.story.tsx +1 -1
  106. package/src/loader/Loader.css +4 -90
  107. package/src/loader/Loader.story.tsx +1 -1
  108. package/src/logo/Logo.story.tsx +1 -1
  109. package/src/main.css +4 -95
  110. package/src/markdown/Markdown.story.tsx +1 -1
  111. package/src/modal/Modal.story.tsx +2 -2
  112. package/src/money/Money.story.tsx +1 -1
  113. package/src/moneyInput/MoneyInput.docs.mdx +1 -1
  114. package/src/moneyInput/MoneyInput.story.tsx +2 -2
  115. package/src/navigationOption/NavigationOption.story.tsx +265 -226
  116. package/src/nudge/Nudge.story.tsx +1 -1
  117. package/src/overlayHeader/OverlayHeader.story.tsx +32 -24
  118. package/src/phoneNumberInput/PhoneNumberInput.story.tsx +1 -1
  119. package/src/popover/Popover.css +19 -12
  120. package/src/popover/Popover.story.tsx +2 -2
  121. package/src/primitives/PrimitiveAnchor/stories/PrimitiveAnchor.story.tsx +2 -2
  122. package/src/primitives/PrimitiveAnchor/stories/PrimitiveAnchor.tests.story.tsx +2 -2
  123. package/src/primitives/PrimitiveButton/stories/PrimitiveButton.story.tsx +2 -2
  124. package/src/primitives/PrimitiveButton/stories/PrimitiveButton.tests.story.tsx +2 -2
  125. package/src/processIndicator/ProcessIndicator.story.tsx +1 -1
  126. package/src/progress/Progress.story.tsx +1 -1
  127. package/src/progressBar/ProgressBar.story.tsx +1 -1
  128. package/src/promoCard/PromoCard.story.tsx +1 -1
  129. package/src/promoCard/PromoCardGroup.story.tsx +1 -1
  130. package/src/provider/Provider.story.tsx +1 -1
  131. package/src/provider/theme/ThemeProvider.story.tsx +1 -1
  132. package/src/radio/Radio.story.tsx +59 -42
  133. package/src/radioGroup/RadioGroup.story.tsx +2 -2
  134. package/src/radioOption/RadioOption.story.tsx +73 -38
  135. package/src/segmentedControl/SegmentedControl.story.tsx +1 -1
  136. package/src/select/Select.css +131 -68
  137. package/src/select/Select.story.tsx +385 -397
  138. package/src/slidingPanel/SlidingPanel.story.tsx +30 -13
  139. package/src/snackbar/Snackbar.story.tsx +50 -36
  140. package/src/snackbar/Snackbar.tests.story.tsx +3 -2
  141. package/src/statusIcon/StatusIcon.docs.mdx +1 -1
  142. package/src/statusIcon/StatusIcon.story.tsx +1 -1
  143. package/src/stepper/Stepper.story.tsx +2 -2
  144. package/src/stepper/Stepper.tests.story.tsx +2 -2
  145. package/src/sticky/Sticky.story.tsx +1 -1
  146. package/src/summary/Summary.story.tsx +18 -17
  147. package/src/switch/Switch.css +27 -16
  148. package/src/switch/Switch.story.tsx +2 -2
  149. package/src/switchOption/SwitchOption.story.tsx +1 -1
  150. package/src/table/Table.story.tsx +1 -1
  151. package/src/test-utils/story-config.ts +9 -6
  152. package/src/textareaWithDisplayFormat/TextareaWithDisplayFormat.story.tsx +2 -2
  153. package/src/tile/Tile.css +31 -18
  154. package/src/tile/Tile.story.tsx +43 -43
  155. package/src/tooltip/Tooltip.story.tsx +2 -2
  156. package/src/typeahead/Typeahead.story.tsx +2 -2
  157. package/src/upload/Upload.messages.ts +4 -0
  158. package/src/upload/Upload.spec.tsx +6 -0
  159. package/src/upload/Upload.story.tsx +2 -2
  160. package/src/upload/Upload.tests.story.tsx +2 -2
  161. package/src/upload/Upload.tsx +17 -5
  162. package/src/uploadInput/UploadInput.story.tsx +1 -1
  163. package/src/uploadInput/UploadInput.tests.story.tsx +3 -3
  164. package/src/uploadInput/uploadButton/UploadButton.spec.tsx +6 -0
  165. package/src/uploadInput/uploadButton/UploadButton.tsx +4 -0
  166. package/src/withId/withId.docs.mdx +1 -1
  167. package/src/withId/withId.story.tsx +1 -1
  168. package/src/common/responsivePanel/__snapshots__/ResponsivePanel.spec.js.snap +0 -21
@@ -355,4 +355,10 @@ describe('Upload Component', () => {
355
355
  expect(container.querySelector('.droppable-processing')).not.toBeInTheDocument();
356
356
  expect(props.onStart).not.toHaveBeenCalled();
357
357
  });
358
+
359
+ test('should handle when maxSize is the MAX_SAFE_INTEGER', async () => {
360
+ render(<Upload {...props} usPlaceholder={undefined} maxSize={Number.MAX_SAFE_INTEGER} />);
361
+ expect(await screen.findByText(/Drag and drop a file/i)).toBeInTheDocument();
362
+ expect(screen.queryByText(/less than/i)).not.toBeInTheDocument();
363
+ });
358
364
  });
@@ -1,5 +1,5 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { fn } from '@storybook/test';
1
+ import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
+ import { fn } from 'storybook/test';
3
3
 
4
4
  import Upload from '.';
5
5
  import { MAX_SIZE_DEFAULT } from './Upload';
@@ -1,5 +1,5 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { fn } from '@storybook/test';
1
+ import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
+ import { fn } from 'storybook/test';
3
3
 
4
4
  import Upload from '.';
5
5
  import { MAX_SIZE_DEFAULT } from './Upload';
@@ -10,7 +10,6 @@ import messages from './Upload.messages';
10
10
  import { UploadImageStep, ProcessingStep, CompleteStep } from './steps';
11
11
  import { postData, asyncFileRead, isSizeValid, isTypeValid, getFileType } from './utils';
12
12
  import { PostDataFetcher, PostDataHTTPOptions, ResponseError } from './utils/postData/postData';
13
- import { ProcessIndicatorStatus } from '../processIndicator';
14
13
 
15
14
  export const MAX_SIZE_DEFAULT = 5000000;
16
15
 
@@ -344,6 +343,8 @@ export class Upload extends Component<UploadProps, UploadState> {
344
343
  uploadedImage,
345
344
  } = this.state;
346
345
 
346
+ const placeholder = getPlaceholder(intl, usPlaceholder, maxSize);
347
+
347
348
  return (
348
349
  <div
349
350
  className={clsx('droppable-area', {
@@ -370,10 +371,7 @@ export class Upload extends Component<UploadProps, UploadState> {
370
371
  usDisabled={usDisabled}
371
372
  usHelpImage={usHelpImage}
372
373
  usLabel={usLabel}
373
- usPlaceholder={
374
- usPlaceholder ||
375
- intl.formatMessage(messages.usPlaceholder, { maxSize: roundFileSize(maxSize) })
376
- }
374
+ usPlaceholder={placeholder}
377
375
  />
378
376
  )}
379
377
 
@@ -456,3 +454,17 @@ const roundFileSize = (bytes: number) => {
456
454
  }
457
455
  return megabytes.toFixed(3);
458
456
  };
457
+
458
+ const getPlaceholder = (
459
+ intl: WrappedComponentProps['intl'],
460
+ usPlaceholder: string | undefined,
461
+ maxSize: number,
462
+ ): string => {
463
+ if (usPlaceholder) {
464
+ return usPlaceholder;
465
+ }
466
+ if (maxSize >= Number.MAX_SAFE_INTEGER) {
467
+ return intl.formatMessage(messages.usPlaceholderNoLimit);
468
+ }
469
+ return intl.formatMessage(messages.usPlaceholder, { maxSize: roundFileSize(maxSize) });
470
+ };
@@ -1,4 +1,4 @@
1
- import { StoryFn, Meta } from '@storybook/react';
1
+ import { StoryFn, Meta } from '@storybook/react-webpack5';
2
2
 
3
3
  import { Field } from '../field/Field';
4
4
 
@@ -1,10 +1,10 @@
1
- import { action } from '@storybook/addon-actions';
2
- import { Meta, StoryObj } from '@storybook/react';
1
+ import { action } from 'storybook/actions';
2
+ import { Meta, StoryObj } from '@storybook/react-webpack5';
3
3
 
4
4
  import { Status } from '../common';
5
5
  import UploadInput, { UploadInputProps } from './UploadInput';
6
6
  import { UploadedFile, UploadResponse } from './types';
7
- import { userEvent } from '@storybook/test';
7
+ import { userEvent } from 'storybook/test';
8
8
 
9
9
  const meta: Meta<typeof UploadInput> = {
10
10
  title: 'Forms/UploadInput/Tests',
@@ -96,6 +96,12 @@ describe('UploadButton', () => {
96
96
  expect(screen.getByText('All file types, less than 5MB')).toBeInTheDocument();
97
97
  });
98
98
 
99
+ it('should show no file size limit if sizeLimit is set to Number.MAX_SAFE_INTEGER', () => {
100
+ renderComponent({ ...props, fileTypes: ['*'], sizeLimit: Number.MAX_SAFE_INTEGER });
101
+ expect(screen.getByText('All file types')).toBeInTheDocument();
102
+ expect(screen.queryByText(/less than/i)).not.toBeInTheDocument();
103
+ });
104
+
99
105
  it('should show custom description if provided', () => {
100
106
  const description = 'Test description';
101
107
  renderComponent({ ...props, fileTypes: ['*'], description });
@@ -173,6 +173,10 @@ const UploadButton = forwardRef<HTMLInputElement | null, UploadButtonProps>(
173
173
  const derivedFileDescription =
174
174
  fileTypesDescription === '*' ? formatMessage(MESSAGES.allFileTypes) : fileTypesDescription;
175
175
 
176
+ if (sizeLimit >= Number.MAX_SAFE_INTEGER) {
177
+ return derivedFileDescription;
178
+ }
179
+
176
180
  return formatMessage(MESSAGES.instructions, {
177
181
  fileTypes: derivedFileDescription,
178
182
  size: Math.round(sizeLimit / 1000),
@@ -1,4 +1,4 @@
1
- import { Meta, Canvas, Source } from '@storybook/blocks';
1
+ import { Meta, Canvas, Source } from '@storybook/addon-docs/blocks';
2
2
  import { WithoutId, WithCustomId, WithEmptyId } from './withId.story';
3
3
  import { withIdSource } from './story/source';
4
4
 
@@ -1,4 +1,4 @@
1
- import { Meta, StoryObj } from '@storybook/react';
1
+ import { Meta, StoryObj } from '@storybook/react-webpack5';
2
2
  import { Button, withId, type WithIdProps } from '..';
3
3
 
4
4
  type Story = StoryObj<typeof withId>;
@@ -1,21 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`ResponsivePanel on desktop renders Panel 1`] = `
4
- <div>
5
- <div
6
- class="np-panel np-panel--open"
7
- >
8
- children
9
- </div>
10
- </div>
11
- `;
12
-
13
- exports[`ResponsivePanel on mobile renders bottomSheet 1`] = `
14
- <div>
15
- <div
16
- class="np-bottom-sheet"
17
- >
18
- children
19
- </div>
20
- </div>
21
- `;