@transferwise/components 46.9.0 → 46.10.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 (49) hide show
  1. package/build/index.esm.js +26 -55
  2. package/build/index.esm.js.map +1 -1
  3. package/build/index.js +26 -55
  4. package/build/index.js.map +1 -1
  5. package/build/types/common/index.d.ts +0 -1
  6. package/build/types/dateLookup/DateLookup.d.ts.map +1 -1
  7. package/build/types/inputs/SelectInput.d.ts +2 -1
  8. package/build/types/inputs/SelectInput.d.ts.map +1 -1
  9. package/build/types/moneyInput/MoneyInput.d.ts.map +1 -1
  10. package/build/types/select/Select.d.ts.map +1 -1
  11. package/build/types/switch/Switch.d.ts.map +1 -1
  12. package/build/types/tabs/Tabs.d.ts.map +1 -1
  13. package/build/types/typeahead/Typeahead.d.ts.map +1 -1
  14. package/package.json +14 -17
  15. package/src/button/Button.story.tsx +3 -3
  16. package/src/common/fakeEvents.js +2 -2
  17. package/src/common/index.js +0 -1
  18. package/src/dateInput/DateInput.story.tsx +4 -3
  19. package/src/dateLookup/DateLookup.js +6 -7
  20. package/src/dateLookup/DateLookup.keyboardEvents.spec.js +24 -25
  21. package/src/dateLookup/DateLookup.story.js +4 -3
  22. package/src/dateLookup/dateTrigger/DateTrigger.spec.js +3 -3
  23. package/src/info/Info.story.tsx +3 -3
  24. package/src/inputWithDisplayFormat/InputWithDisplayFormat.story.js +2 -7
  25. package/src/inputs/SelectInput.spec.tsx +7 -0
  26. package/src/inputs/SelectInput.story.tsx +7 -7
  27. package/src/inputs/SelectInput.tsx +4 -0
  28. package/src/logo/Logo.js +4 -4
  29. package/src/moneyInput/MoneyInput.story.tsx +3 -3
  30. package/src/moneyInput/MoneyInput.tsx +14 -24
  31. package/src/select/Select.js +8 -9
  32. package/src/snackbar/Snackbar.story.tsx +3 -3
  33. package/src/switch/Switch.spec.js +2 -3
  34. package/src/switch/Switch.tsx +1 -2
  35. package/src/switchOption/SwitchOption.spec.js +1 -4
  36. package/src/tabs/Tabs.js +1 -2
  37. package/src/textareaWithDisplayFormat/TextareaWithDisplayFormat.story.tsx +5 -4
  38. package/src/tile/Tile.js +2 -2
  39. package/src/tile/Tile.spec.js +5 -5
  40. package/src/tooltip/Tooltip.story.tsx +3 -3
  41. package/src/typeahead/Typeahead.js +5 -6
  42. package/src/typeahead/Typeahead.spec.js +3 -8
  43. package/src/typeahead/Typeahead.story.js +3 -4
  44. package/build/types/common/key.d.ts +0 -9
  45. package/build/types/common/key.d.ts.map +0 -1
  46. package/build/types/common/keyCodes.d.ts +0 -16
  47. package/build/types/common/keyCodes.d.ts.map +0 -1
  48. package/src/common/key.js +0 -8
  49. package/src/common/keyCodes.js +0 -19
package/build/index.js CHANGED
@@ -367,15 +367,6 @@ exports.FileType = void 0;
367
367
  FileType["CSV"] = ".csv,text/csv";
368
368
  })(exports.FileType || (exports.FileType = {}));
369
369
 
370
- const Key = {
371
- ENTER: 'Enter',
372
- ESCAPE: 'Escape',
373
- SPACE: [' ', 'Spacebar'],
374
- TAB: 'Tab',
375
- PERIOD: '.',
376
- COMMA: ','
377
- };
378
-
379
370
  const DEFAULT_LANG = 'en';
380
371
  const DEFAULT_LOCALE = 'en-GB';
381
372
  /**
@@ -3168,26 +3159,6 @@ DateInput.defaultProps = {
3168
3159
  };
3169
3160
  var DateInput$1 = DateInput;
3170
3161
 
3171
- /**
3172
- * TODO: mention what to use instead or consider to delete this object
3173
- *
3174
- * @deprecated
3175
- */
3176
- var KeyCodes = {
3177
- DOWN: 40,
3178
- UP: 38,
3179
- LEFT: 37,
3180
- RIGHT: 39,
3181
- ENTER: 13,
3182
- ESCAPE: 27,
3183
- TAB: 9,
3184
- SPACE: 32,
3185
- BACKSPACE: 8,
3186
- DELETE: 46,
3187
- COMMA: 188,
3188
- PERIOD: 190
3189
- };
3190
-
3191
3162
  const POPOVER_OFFSET = [0, 16];
3192
3163
  // By default the flip positioning explores only the opposite alternative. So if left is passed and there's no enough space
3193
3164
  // the right one gets chosen. If there's no space on both sides popover goes back to the initially chosen one left.
@@ -4209,8 +4180,8 @@ class DateLookup extends React.PureComponent {
4209
4180
  open,
4210
4181
  originalDate
4211
4182
  } = this.state;
4212
- switch (event.keyCode) {
4213
- case KeyCodes.LEFT:
4183
+ switch (event.key) {
4184
+ case 'ArrowLeft':
4214
4185
  if (open) {
4215
4186
  this.adjustDate(-1, -1, -1);
4216
4187
  } else {
@@ -4218,7 +4189,7 @@ class DateLookup extends React.PureComponent {
4218
4189
  }
4219
4190
  event.preventDefault();
4220
4191
  break;
4221
- case KeyCodes.UP:
4192
+ case 'ArrowUp':
4222
4193
  if (open) {
4223
4194
  this.adjustDate(-7, -4, -4);
4224
4195
  } else {
@@ -4226,7 +4197,7 @@ class DateLookup extends React.PureComponent {
4226
4197
  }
4227
4198
  event.preventDefault();
4228
4199
  break;
4229
- case KeyCodes.RIGHT:
4200
+ case 'ArrowRight':
4230
4201
  if (open) {
4231
4202
  this.adjustDate(1, 1, 1);
4232
4203
  } else {
@@ -4234,7 +4205,7 @@ class DateLookup extends React.PureComponent {
4234
4205
  }
4235
4206
  event.preventDefault();
4236
4207
  break;
4237
- case KeyCodes.DOWN:
4208
+ case 'ArrowDown':
4238
4209
  if (open) {
4239
4210
  this.adjustDate(7, 4, 4);
4240
4211
  } else {
@@ -4242,7 +4213,7 @@ class DateLookup extends React.PureComponent {
4242
4213
  }
4243
4214
  event.preventDefault();
4244
4215
  break;
4245
- case KeyCodes.ESCAPE:
4216
+ case 'Escape':
4246
4217
  if (originalDate !== null) {
4247
4218
  this.props.onChange(originalDate);
4248
4219
  }
@@ -4565,7 +4536,7 @@ const Tile = ({
4565
4536
  onKeyDown: disabled ? null : ({
4566
4537
  key
4567
4538
  }) => {
4568
- if (key === Key.ENTER || Key.SPACE.includes(key)) {
4539
+ if (key === 'Enter' || key === ' ') {
4569
4540
  onClick();
4570
4541
  }
4571
4542
  },
@@ -6796,6 +6767,7 @@ function SelectInputClearButton({
6796
6767
  }
6797
6768
  const noop = () => {};
6798
6769
  function SelectInput({
6770
+ id,
6799
6771
  name,
6800
6772
  multiple,
6801
6773
  placeholder,
@@ -6861,6 +6833,7 @@ function SelectInput({
6861
6833
  // eslint-disable-next-line react/jsx-no-constructed-context-values
6862
6834
  value: {
6863
6835
  ref: mergeRefs__default.default([ref, triggerRef]),
6836
+ id,
6864
6837
  ...mergeProps__default.default({
6865
6838
  onClick: () => {
6866
6839
  setOpen(prev => !prev);
@@ -7809,8 +7782,7 @@ const parseNumber = ({
7809
7782
  }
7810
7783
  return Number(amount);
7811
7784
  };
7812
- const inputKeyCodeAllowlist = new Set([KeyCodes.BACKSPACE, KeyCodes.DELETE, KeyCodes.COMMA, KeyCodes.PERIOD, KeyCodes.DOWN, KeyCodes.UP, KeyCodes.LEFT, KeyCodes.RIGHT, KeyCodes.ENTER, KeyCodes.ESCAPE, KeyCodes.TAB]);
7813
- const inputKeyAllowlist = new Set([Key.PERIOD, Key.COMMA]);
7785
+ const allowedInputKeys = new Set(['Backspace', 'Delete', ',', '.', 'ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight', 'Enter', 'Escape', 'Tab']);
7814
7786
  class MoneyInput extends React.Component {
7815
7787
  static defaultProps = {
7816
7788
  size: exports.Size.LARGE,
@@ -7848,13 +7820,12 @@ class MoneyInput extends React.Component {
7848
7820
  }
7849
7821
  isInputAllowedForKeyEvent = event => {
7850
7822
  const {
7851
- keyCode,
7852
7823
  metaKey,
7853
7824
  key,
7854
7825
  ctrlKey
7855
7826
  } = event;
7856
7827
  const isNumberKey = neptuneValidation.isNumber(parseInt(key, 10));
7857
- return isNumberKey || metaKey || ctrlKey || inputKeyCodeAllowlist.has(keyCode) || inputKeyAllowlist.has(key);
7828
+ return isNumberKey || metaKey || ctrlKey || allowedInputKeys.has(key);
7858
7829
  };
7859
7830
  handleKeyDown = event => {
7860
7831
  if (!this.isInputAllowedForKeyEvent(event)) {
@@ -10694,17 +10665,17 @@ function Select({
10694
10665
  }
10695
10666
  };
10696
10667
  const handleKeyDown = event => {
10697
- switch (event.keyCode) {
10698
- case KeyCodes.UP:
10699
- case KeyCodes.DOWN:
10668
+ switch (event.key) {
10669
+ case 'ArrowUp':
10670
+ case 'ArrowDown':
10700
10671
  if (open) {
10701
- moveFocusWithDifference(event.keyCode === KeyCodes.UP ? -1 : 1);
10672
+ moveFocusWithDifference(event.key === 'ArrowUp' ? -1 : 1);
10702
10673
  } else {
10703
10674
  setOpen(true);
10704
10675
  }
10705
10676
  stopPropagation$1(event);
10706
10677
  break;
10707
- case KeyCodes.SPACE:
10678
+ case ' ':
10708
10679
  if (event.target !== searchBoxReference.current) {
10709
10680
  if (open) {
10710
10681
  selectKeyboardFocusedOption();
@@ -10714,7 +10685,7 @@ function Select({
10714
10685
  stopPropagation$1(event);
10715
10686
  }
10716
10687
  break;
10717
- case KeyCodes.ENTER:
10688
+ case 'Enter':
10718
10689
  if (open) {
10719
10690
  selectKeyboardFocusedOption();
10720
10691
  } else {
@@ -10722,11 +10693,11 @@ function Select({
10722
10693
  }
10723
10694
  stopPropagation$1(event);
10724
10695
  break;
10725
- case KeyCodes.ESCAPE:
10696
+ case 'Escape':
10726
10697
  handleCloseOptions();
10727
10698
  stopPropagation$1(event);
10728
10699
  break;
10729
- case KeyCodes.TAB:
10700
+ case 'Tab':
10730
10701
  if (open) {
10731
10702
  selectKeyboardFocusedOption();
10732
10703
  }
@@ -11485,7 +11456,7 @@ const Switch = props => {
11485
11456
  disabled
11486
11457
  } = props;
11487
11458
  const handleKeyDown = event => {
11488
- if (event.code === '32' || event.keyCode === KeyCodes.SPACE) {
11459
+ if (event.key === ' ') {
11489
11460
  event.preventDefault();
11490
11461
  onClick();
11491
11462
  }
@@ -11982,7 +11953,7 @@ class Tabs extends React.Component {
11982
11953
  this.switchTab(index);
11983
11954
  };
11984
11955
  onKeyDown = index => event => {
11985
- if (event && event.keyCode === KeyCodes.ENTER) {
11956
+ if (event && event.key === 'Enter') {
11986
11957
  this.switchTab(index);
11987
11958
  }
11988
11959
  };
@@ -12584,16 +12555,16 @@ class Typeahead extends React.Component {
12584
12555
  label: query
12585
12556
  });
12586
12557
  } else {
12587
- switch (event.keyCode) {
12588
- case KeyCodes.DOWN:
12558
+ switch (event.key) {
12559
+ case 'ArrowDown':
12589
12560
  event.preventDefault();
12590
12561
  this.moveFocusedOption(1);
12591
12562
  break;
12592
- case KeyCodes.UP:
12563
+ case 'ArrowUp':
12593
12564
  event.preventDefault();
12594
12565
  this.moveFocusedOption(-1);
12595
12566
  break;
12596
- case KeyCodes.ENTER:
12567
+ case 'Enter':
12597
12568
  event.preventDefault();
12598
12569
  if (options[keyboardFocusedOptionIndex]) {
12599
12570
  this.selectItem(options[keyboardFocusedOptionIndex]);
@@ -12603,7 +12574,7 @@ class Typeahead extends React.Component {
12603
12574
  });
12604
12575
  }
12605
12576
  break;
12606
- case KeyCodes.BACKSPACE:
12577
+ case 'Backspace':
12607
12578
  if (multiple && !query && selected.length > 0) {
12608
12579
  this.updateSelectedValue(selected.slice(0, -1));
12609
12580
  }