@transferwise/components 46.23.0 → 46.24.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 (87) hide show
  1. package/build/i18n/es.json +2 -2
  2. package/build/i18n/hu.json +2 -2
  3. package/build/index.esm.js +97 -74
  4. package/build/index.esm.js.map +1 -1
  5. package/build/index.js +98 -76
  6. package/build/index.js.map +1 -1
  7. package/build/types/common/dateUtils/getFormatForLocale/getFormatForLocale.d.ts +3 -0
  8. package/build/types/common/dateUtils/getFormatForLocale/getFormatForLocale.d.ts.map +1 -0
  9. package/build/types/common/dateUtils/index.d.ts +7 -6
  10. package/build/types/common/dateUtils/index.d.ts.map +1 -1
  11. package/build/types/dateInput/DateInput.d.ts.map +1 -1
  12. package/build/types/emphasis/Emphasis.d.ts +1 -1
  13. package/build/types/emphasis/Emphasis.d.ts.map +1 -1
  14. package/build/types/emphasis/EmphasisHtmlTransformer.d.ts +1 -1
  15. package/build/types/emphasis/EmphasisHtmlTransformer.d.ts.map +1 -1
  16. package/build/types/emphasis/index.d.ts +1 -0
  17. package/build/types/emphasis/index.d.ts.map +1 -1
  18. package/build/types/i18n/index.d.ts.map +1 -1
  19. package/build/types/index.d.ts +5 -0
  20. package/build/types/index.d.ts.map +1 -1
  21. package/build/types/inputs/SelectInput.d.ts.map +1 -1
  22. package/build/types/loader/Loader.d.ts +3 -3
  23. package/build/types/loader/Loader.d.ts.map +1 -1
  24. package/build/types/loader/index.d.ts +2 -2
  25. package/build/types/loader/index.d.ts.map +1 -1
  26. package/build/types/money/Money.d.ts +8 -11
  27. package/build/types/money/Money.d.ts.map +1 -1
  28. package/build/types/money/index.d.ts +2 -1
  29. package/build/types/money/index.d.ts.map +1 -1
  30. package/build/types/navigationOptionsList/NavigationOptionsList.d.ts +7 -10
  31. package/build/types/navigationOptionsList/NavigationOptionsList.d.ts.map +1 -1
  32. package/build/types/navigationOptionsList/index.d.ts +2 -1
  33. package/build/types/navigationOptionsList/index.d.ts.map +1 -1
  34. package/build/types/segmentedControl/SegmentedControl.d.ts.map +1 -1
  35. package/build/types/slidingPanel/SlidingPanel.d.ts.map +1 -1
  36. package/package.json +1 -2
  37. package/src/avatar/{Avatar.spec.js → Avatar.spec.tsx} +6 -13
  38. package/src/common/dateUtils/getFormatForLocale/getFormatForLocale.ts +2 -0
  39. package/src/common/dateUtils/index.ts +7 -6
  40. package/src/common/dateUtils/isMonthAndYearFormat/isMonthAndYearFormat.ts +1 -1
  41. package/src/dateInput/DateInput.spec.js +29 -9
  42. package/src/dateInput/DateInput.story.tsx +0 -3
  43. package/src/dateInput/DateInput.tsx +90 -48
  44. package/src/emphasis/{Emphasis.spec.js → Emphasis.spec.tsx} +2 -1
  45. package/src/emphasis/Emphasis.tsx +1 -1
  46. package/src/emphasis/{EmphasisHtmlTransformer.spec.js → EmphasisHtmlTransformer.spec.tsx} +0 -12
  47. package/src/emphasis/EmphasisHtmlTransformer.ts +1 -1
  48. package/src/emphasis/index.ts +1 -0
  49. package/src/i18n/es.json +2 -2
  50. package/src/i18n/hu.json +2 -2
  51. package/src/i18n/index.ts +1 -0
  52. package/src/index.ts +5 -0
  53. package/src/inputWithDisplayFormat/InputWithDisplayFormat.story.js +3 -2
  54. package/src/inputs/SelectInput.tsx +5 -3
  55. package/src/loader/Loader.tsx +3 -3
  56. package/src/loader/index.ts +2 -0
  57. package/src/money/{Money.spec.js → Money.spec.tsx} +1 -1
  58. package/src/money/{Money.js → Money.tsx} +6 -7
  59. package/src/money/index.ts +2 -0
  60. package/src/navigationOptionsList/NavigationOptionsList.tsx +20 -0
  61. package/src/navigationOptionsList/index.ts +2 -0
  62. package/src/radio/Radio.story.tsx +3 -4
  63. package/src/segmentedControl/SegmentedControl.tsx +1 -0
  64. package/src/slidingPanel/SlidingPanel.tsx +4 -4
  65. package/src/switch/Switch.story.tsx +4 -1
  66. package/build/types/common/dateUtils/getDayNames/index.d.ts +0 -2
  67. package/build/types/common/dateUtils/getDayNames/index.d.ts.map +0 -1
  68. package/build/types/common/dateUtils/getMonthNames/index.d.ts +0 -2
  69. package/build/types/common/dateUtils/getMonthNames/index.d.ts.map +0 -1
  70. package/build/types/common/dateUtils/isDateValid/index.d.ts +0 -2
  71. package/build/types/common/dateUtils/isDateValid/index.d.ts.map +0 -1
  72. package/build/types/common/dateUtils/isWithinRange/index.d.ts +0 -2
  73. package/build/types/common/dateUtils/isWithinRange/index.d.ts.map +0 -1
  74. package/build/types/common/dateUtils/moveToWithinRange/index.d.ts +0 -2
  75. package/build/types/common/dateUtils/moveToWithinRange/index.d.ts.map +0 -1
  76. package/src/common/dateUtils/getDayNames/index.ts +0 -1
  77. package/src/common/dateUtils/getMonthNames/index.ts +0 -1
  78. package/src/common/dateUtils/isDateValid/index.ts +0 -1
  79. package/src/common/dateUtils/isWithinRange/index.ts +0 -1
  80. package/src/common/dateUtils/moveToWithinRange/index.ts +0 -1
  81. package/src/loader/index.js +0 -3
  82. package/src/money/index.js +0 -1
  83. package/src/navigationOptionsList/NavigationOptionsList.js +0 -20
  84. package/src/navigationOptionsList/index.js +0 -1
  85. /package/src/loader/{Loader.spec.js → Loader.spec.tsx} +0 -0
  86. /package/src/navigationOptionsList/{NavigationOptionsList.spec.js → NavigationOptionsList.spec.tsx} +0 -0
  87. /package/src/navigationOptionsList/{NavigationOptionsList.story.js → NavigationOptionsList.story.tsx} +0 -0
package/build/index.js CHANGED
@@ -11,7 +11,6 @@ var componentsTheming = require('@wise/components-theming');
11
11
  var formatting = require('@transferwise/formatting');
12
12
  var react$1 = require('@headlessui/react');
13
13
  var mergeProps = require('merge-props');
14
- var mergeRefs = require('react-merge-refs');
15
14
  var shim = require('use-sync-external-store/shim');
16
15
  var react = require('@floating-ui/react');
17
16
  var focus = require('@react-aria/focus');
@@ -53,7 +52,6 @@ var classNames__default = /*#__PURE__*/_interopDefault(classNames);
53
52
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
54
53
  var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
55
54
  var mergeProps__default = /*#__PURE__*/_interopDefault(mergeProps);
56
- var mergeRefs__default = /*#__PURE__*/_interopDefault(mergeRefs);
57
55
  var throttle__default = /*#__PURE__*/_interopDefault(throttle);
58
56
  var commonmark__default = /*#__PURE__*/_interopDefault(commonmark);
59
57
  var clamp__default = /*#__PURE__*/_interopDefault(clamp$2);
@@ -1795,6 +1793,7 @@ const SlidingPanel = /*#__PURE__*/React.forwardRef(({
1795
1793
  ...rest
1796
1794
  }, reference) => {
1797
1795
  const localReference = React.useRef(null);
1796
+ React.useImperativeHandle(reference, () => localReference.current, []);
1798
1797
  return /*#__PURE__*/React.createElement(reactTransitionGroup.CSSTransition, {
1799
1798
  ...rest,
1800
1799
  key: `sliding-panel--open-${position}`,
@@ -1810,7 +1809,7 @@ const SlidingPanel = /*#__PURE__*/React.forwardRef(({
1810
1809
  appear: true,
1811
1810
  unmountOnExit: true
1812
1811
  }, /*#__PURE__*/jsxRuntime.jsx("div", {
1813
- ref: mergeRefs__default.default([reference, localReference]),
1812
+ ref: localReference,
1814
1813
  className: classNames__default.default('sliding-panel', `sliding-panel--open-${position}`, showSlidingPanelBorder && `sliding-panel--border-${position}`, slidingPanelPositionFixed && 'sliding-panel--fixed', className),
1815
1814
  children: children
1816
1815
  }));
@@ -2730,6 +2729,9 @@ const validDateObject = dateObject => !isNaN(dateObject.getTime());
2730
2729
 
2731
2730
  const isMonthAndYearFormat = dateString => validDateString(dateString) && dateString.split('-').length < 3;
2732
2731
 
2732
+ const MDY = new Set(['en-US']);
2733
+ const YMD = new Set(['hu', 'hu-HU', 'zh-HK', 'zh-CN', 'ja', 'ja-JP']);
2734
+
2733
2735
  var messages$9 = reactIntl.defineMessages({
2734
2736
  monthLabel: {
2735
2737
  id: "neptune.DateInput.month.label"
@@ -2753,7 +2755,6 @@ const convertToLocalMidnight = date => {
2753
2755
  return new Date(utcDate.getUTCFullYear(), utcDate.getUTCMonth(), utcDate.getUTCDate());
2754
2756
  };
2755
2757
 
2756
- const MonthBeforeDay = new Set(['en-US', 'ja-JP']);
2757
2758
  const DateInput = ({
2758
2759
  'aria-labelledby': ariaLabelledBy,
2759
2760
  'aria-label': ariaLabel,
@@ -2943,7 +2944,64 @@ const DateInput = ({
2943
2944
  'col-sm-8': monthYearOnly,
2944
2945
  'col-sm-5': !monthYearOnly
2945
2946
  });
2946
- const monthBeforeDay = MonthBeforeDay.has(locale);
2947
+ const getMonth = () => {
2948
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
2949
+ className: monthWidth,
2950
+ children: getSelectElement()
2951
+ });
2952
+ };
2953
+ const getDay = () => {
2954
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
2955
+ className: "col-sm-3",
2956
+ children: /*#__PURE__*/jsxRuntime.jsxs("label", {
2957
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
2958
+ className: "sr-only",
2959
+ children: dayLabel
2960
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
2961
+ className: `input-group input-group-${size}`,
2962
+ children: /*#__PURE__*/jsxRuntime.jsx(Input, {
2963
+ type: "text",
2964
+ inputMode: "numeric",
2965
+ pattern: "[0-9]*",
2966
+ name: "day",
2967
+ autoComplete: dayAutoComplete,
2968
+ value: day || '',
2969
+ placeholder: placeholders?.day,
2970
+ disabled: disabled,
2971
+ min: 1,
2972
+ onChange: event => handleDayChange(event)
2973
+ })
2974
+ })]
2975
+ })
2976
+ });
2977
+ };
2978
+ const getYear = () => {
2979
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
2980
+ className: "col-sm-4",
2981
+ children: /*#__PURE__*/jsxRuntime.jsxs("label", {
2982
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
2983
+ className: "sr-only",
2984
+ children: yearLabel
2985
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
2986
+ className: `input-group input-group-${size}`,
2987
+ children: /*#__PURE__*/jsxRuntime.jsx(Input, {
2988
+ type: "text",
2989
+ inputMode: "numeric",
2990
+ pattern: "[0-9]*",
2991
+ name: "year",
2992
+ autoComplete: yearAutoComplete,
2993
+ placeholder: placeholders?.year,
2994
+ value: year || '',
2995
+ disabled: disabled,
2996
+ min: 1,
2997
+ onChange: event => handleYearChange(event)
2998
+ })
2999
+ })]
3000
+ })
3001
+ });
3002
+ };
3003
+ const monthBeforeDay = MDY.has(locale);
3004
+ const yearFirst = YMD.has(locale);
2947
3005
  return /*#__PURE__*/jsxRuntime.jsx("div", {
2948
3006
  className: "tw-date",
2949
3007
  id: id,
@@ -2953,59 +3011,28 @@ const DateInput = ({
2953
3011
  ,
2954
3012
  onFocus: event => shouldPropagateOnFocus(event) ? onFocus && onFocus(event) : event.stopPropagation(),
2955
3013
  onBlur: event => shouldPropagateOnBlur(event) ? onBlur && onBlur(event) : event.stopPropagation(),
2956
- children: /*#__PURE__*/jsxRuntime.jsxs("div", {
3014
+ children: /*#__PURE__*/jsxRuntime.jsx("div", {
2957
3015
  className: "row",
2958
- children: [monthBeforeDay && /*#__PURE__*/jsxRuntime.jsx("div", {
2959
- className: monthWidth,
2960
- children: getSelectElement()
2961
- }), !monthYearOnly && /*#__PURE__*/jsxRuntime.jsx("div", {
2962
- className: "col-sm-3",
2963
- children: /*#__PURE__*/jsxRuntime.jsxs("label", {
2964
- children: [/*#__PURE__*/jsxRuntime.jsx("span", {
2965
- className: "sr-only",
2966
- children: dayLabel
2967
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
2968
- className: `input-group input-group-${size}`,
2969
- children: /*#__PURE__*/jsxRuntime.jsx(Input, {
2970
- type: "text",
2971
- inputMode: "numeric",
2972
- pattern: "[0-9]*",
2973
- name: "day",
2974
- autoComplete: dayAutoComplete,
2975
- value: day || '',
2976
- placeholder: placeholders.day,
2977
- disabled: disabled,
2978
- min: 1,
2979
- onChange: event => handleDayChange(event)
2980
- })
2981
- })]
2982
- })
2983
- }), !monthBeforeDay && /*#__PURE__*/jsxRuntime.jsx("div", {
2984
- className: monthWidth,
2985
- children: getSelectElement()
2986
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
2987
- className: "col-sm-4",
2988
- children: /*#__PURE__*/jsxRuntime.jsxs("label", {
2989
- children: [/*#__PURE__*/jsxRuntime.jsx("span", {
2990
- className: "sr-only",
2991
- children: yearLabel
2992
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
2993
- className: `input-group input-group-${size}`,
2994
- children: /*#__PURE__*/jsxRuntime.jsx(Input, {
2995
- type: "text",
2996
- inputMode: "numeric",
2997
- pattern: "[0-9]*",
2998
- name: "year",
2999
- autoComplete: yearAutoComplete,
3000
- placeholder: placeholders.year,
3001
- value: year || '',
3002
- disabled: disabled,
3003
- min: 1,
3004
- onChange: event => handleYearChange(event)
3005
- })
3006
- })]
3007
- })
3008
- })]
3016
+ children: (() => {
3017
+ if (monthYearOnly) {
3018
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
3019
+ children: [!yearFirst && getMonth(), getYear(), yearFirst && getMonth()]
3020
+ });
3021
+ }
3022
+ if (monthBeforeDay) {
3023
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
3024
+ children: [getMonth(), getDay(), getYear()]
3025
+ });
3026
+ } else if (yearFirst) {
3027
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
3028
+ children: [getYear(), getMonth(), getDay()]
3029
+ });
3030
+ } else {
3031
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
3032
+ children: [getDay(), getMonth(), getYear()]
3033
+ });
3034
+ }
3035
+ })()
3009
3036
  })
3010
3037
  });
3011
3038
  };
@@ -6574,7 +6601,10 @@ function SelectInput({
6574
6601
  }) => /*#__PURE__*/jsxRuntime.jsx(SelectInputTriggerButtonPropsContext.Provider, {
6575
6602
  // eslint-disable-next-line react/jsx-no-constructed-context-values
6576
6603
  value: {
6577
- ref: mergeRefs__default.default([ref, triggerRef]),
6604
+ ref: node => {
6605
+ ref(node);
6606
+ triggerRef.current = node;
6607
+ },
6578
6608
  id,
6579
6609
  ...mergeProps__default.default({
6580
6610
  onClick: () => {
@@ -7415,7 +7445,6 @@ const getSupportedSize = size => {
7415
7445
  return exports.Size.MEDIUM;
7416
7446
  }
7417
7447
  };
7418
- var Loader$1 = Loader;
7419
7448
 
7420
7449
  const Money = ({
7421
7450
  amount,
@@ -7428,11 +7457,6 @@ const Money = ({
7428
7457
  children: formatting.formatMoney(amount, currency, locale)
7429
7458
  });
7430
7459
  };
7431
- Money.propTypes = {
7432
- amount: PropTypes__default.default.number.isRequired,
7433
- currency: PropTypes__default.default.string.isRequired
7434
- };
7435
- var Money$1 = Money;
7436
7460
 
7437
7461
  var messages$4 = reactIntl.defineMessages({
7438
7462
  selectPlaceholder: {
@@ -7850,13 +7874,9 @@ const NavigationOptionList = ({
7850
7874
  children: React.Children.map(children, child => /*#__PURE__*/jsxRuntime.jsx("li", {
7851
7875
  className: "np-navigation-options-list__item",
7852
7876
  children: child
7853
- }, child.key))
7877
+ }, child?.toString()))
7854
7878
  });
7855
7879
  };
7856
- NavigationOptionList.propTypes = {
7857
- children: PropTypes__default.default.node.isRequired
7858
- };
7859
- var NavigationOptionList$1 = NavigationOptionList;
7860
7880
 
7861
7881
  const STORAGE_NAME = 'dismissedNudges';
7862
7882
  const getLocalStorage = () => {
@@ -10751,6 +10771,7 @@ const SegmentedControl = ({
10751
10771
  className: classNames__default.default('segmented-control__segments', {
10752
10772
  'segmented-control__segments--no-animate': !animate
10753
10773
  }),
10774
+ role: mode !== 'input' ? 'tablist' : undefined,
10754
10775
  children: segmentsWithRefs.map(segment => mode === 'input' ? /*#__PURE__*/jsxRuntime.jsxs("label", {
10755
10776
  ref: segment.ref,
10756
10777
  htmlFor: segment.id,
@@ -14233,13 +14254,13 @@ var es = {
14233
14254
  "neptune.Upload.csButtonText": "¿Quieres subir otro archivo?",
14234
14255
  "neptune.Upload.csFailureText": "La carga del archivo ha fallado. Por favor, inténtalo de nuevo",
14235
14256
  "neptune.Upload.csSuccessText": "¡Se ha subido el archivo!",
14236
- "neptune.Upload.csTooLargeMessage": "Por favor, sube un archivo de menos de {maxSize}MB",
14257
+ "neptune.Upload.csTooLargeMessage": "Proporciona un archivo menor de {maxSize} MB",
14237
14258
  "neptune.Upload.csWrongTypeMessage": "Tipo de archivo no aceptado. Por favor, inténtalo de nuevo con un archivo diferente",
14238
14259
  "neptune.Upload.psButtonText": "Cancela",
14239
14260
  "neptune.Upload.psProcessingText": "Subiendo...",
14240
14261
  "neptune.Upload.usButtonText": "O selecciona un archivo",
14241
14262
  "neptune.Upload.usDropMessage": "Arrastra un archivo para subirlo",
14242
- "neptune.Upload.usPlaceholder": "Arrastra y suelta un archivo menor de {maxSize}MB",
14263
+ "neptune.Upload.usPlaceholder": "Arrastra y suelta un archivo de menos de {maxSize} MB",
14243
14264
  "neptune.UploadButton.allFileTypes": "Todos los tipos de archivos",
14244
14265
  "neptune.UploadButton.dropFiles": "Arrastra un archivo para subirlo",
14245
14266
  "neptune.UploadButton.instructions": "{fileTypes}, menor que {size}MB",
@@ -14349,13 +14370,13 @@ var hu = {
14349
14370
  "neptune.Upload.csButtonText": "Másik fájl feltöltése?",
14350
14371
  "neptune.Upload.csFailureText": "Feltöltés sikertelen. Kérünk, próbáld újra",
14351
14372
  "neptune.Upload.csSuccessText": "Feltöltés sikeres",
14352
- "neptune.Upload.csTooLargeMessage": "Kérünk, {maxSize} MB-nál kisebb fájlt tölts fel",
14373
+ "neptune.Upload.csTooLargeMessage": "Kérünk, olyan fájlt küldj el, amely kisebb mint {maxSize}MB",
14353
14374
  "neptune.Upload.csWrongTypeMessage": "Nem támogatott fájltípus. Kérünk, próbáld újra másik fájllal",
14354
14375
  "neptune.Upload.psButtonText": "Mégsem",
14355
14376
  "neptune.Upload.psProcessingText": "Feltöltés...",
14356
14377
  "neptune.Upload.usButtonText": "Vagy válaszd ki a fájlt",
14357
14378
  "neptune.Upload.usDropMessage": "Húzd ide a fájlokat a feltöltéshez",
14358
- "neptune.Upload.usPlaceholder": "Húzz ide egy {maxSize} MB-nál kisebb fájlt",
14379
+ "neptune.Upload.usPlaceholder": "Húzz ide egy legfeljebb {maxSize} MB méretű fájlt",
14359
14380
  "neptune.UploadButton.allFileTypes": "Összes fájltípus",
14360
14381
  "neptune.UploadButton.dropFiles": "Húzd a fájlokat ide a feltöltéshez",
14361
14382
  "neptune.UploadButton.instructions": "{fileTypes}, legfeljebb {size}MB",
@@ -15075,6 +15096,7 @@ const translations = {
15075
15096
  cs,
15076
15097
  de,
15077
15098
  en,
15099
+ 'en-US': en,
15078
15100
  es,
15079
15101
  fr,
15080
15102
  hu,
@@ -15137,14 +15159,14 @@ exports.InstructionsList = InstructionsList;
15137
15159
  exports.LanguageProvider = LanguageProvider;
15138
15160
  exports.Link = Link;
15139
15161
  exports.ListItem = ListItem$1;
15140
- exports.Loader = Loader$1;
15162
+ exports.Loader = Loader;
15141
15163
  exports.Logo = Logo$1;
15142
15164
  exports.Markdown = Markdown;
15143
15165
  exports.Modal = Modal;
15144
- exports.Money = Money$1;
15166
+ exports.Money = Money;
15145
15167
  exports.MoneyInput = MoneyInput$1;
15146
15168
  exports.NavigationOption = NavigationOption;
15147
- exports.NavigationOptionsList = NavigationOptionList$1;
15169
+ exports.NavigationOptionsList = NavigationOptionList;
15148
15170
  exports.Nudge = Nudge;
15149
15171
  exports.Option = Option$2;
15150
15172
  exports.OverlayHeader = OverlayHeader$1;