@transferwise/components 0.0.0-experimental-e05dfa3 → 0.0.0-experimental-7905c27

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 (50) hide show
  1. package/build/index.esm.js +102 -164
  2. package/build/index.esm.js.map +1 -1
  3. package/build/index.js +104 -166
  4. package/build/index.js.map +1 -1
  5. package/build/main.css +1 -1
  6. package/build/styles/dateLookup/DateLookup.css +1 -1
  7. package/build/styles/header/Header.css +1 -1
  8. package/build/styles/main.css +1 -1
  9. package/build/types/dateInput/DateInput.d.ts +2 -0
  10. package/build/types/dateInput/DateInput.d.ts.map +1 -1
  11. package/build/types/dateLookup/DateLookup.d.ts.map +1 -1
  12. package/build/types/dateLookup/monthCalendar/table/MonthCalendarTable.d.ts +1 -1
  13. package/build/types/dateLookup/monthCalendar/table/MonthCalendarTable.d.ts.map +1 -1
  14. package/build/types/dateLookup/tableLink/TableLink.d.ts +2 -16
  15. package/build/types/dateLookup/tableLink/TableLink.d.ts.map +1 -1
  16. package/build/types/dateLookup/tableLink/index.d.ts +1 -1
  17. package/build/types/dateLookup/tableLink/index.d.ts.map +1 -1
  18. package/build/types/dateLookup/yearCalendar/table/YearCalendarTable.d.ts.map +1 -1
  19. package/build/types/select/Select.d.ts.map +1 -1
  20. package/build/types/test-utils/window-mock.d.ts +1 -0
  21. package/build/types/test-utils/window-mock.d.ts.map +1 -1
  22. package/package.json +1 -1
  23. package/src/dateInput/DateInput.js +13 -7
  24. package/src/dateInput/DateInput.spec.js +12 -136
  25. package/src/dateInput/DateInput.story.tsx +49 -2
  26. package/src/dateLookup/DateLookup.css +1 -1
  27. package/src/dateLookup/DateLookup.js +3 -16
  28. package/src/dateLookup/DateLookup.keyboardEvents.spec.js +0 -12
  29. package/src/dateLookup/DateLookup.less +49 -46
  30. package/src/dateLookup/DateLookup.story.js +7 -8
  31. package/src/dateLookup/dayCalendar/table/DayCalendarTable.js +1 -14
  32. package/src/dateLookup/dayCalendar/table/DayCalendarTable.spec.js +0 -25
  33. package/src/dateLookup/monthCalendar/table/MonthCalendarTable.js +20 -33
  34. package/src/dateLookup/monthCalendar/table/MonthCalendarTable.spec.js +0 -33
  35. package/src/dateLookup/tableLink/TableLink.js +70 -0
  36. package/src/dateLookup/yearCalendar/table/YearCalendarTable.js +11 -33
  37. package/src/dateLookup/yearCalendar/table/YearCalendarTable.spec.js +0 -26
  38. package/src/header/Header.css +1 -1
  39. package/src/header/Header.less +0 -5
  40. package/src/inputs/SelectInput.spec.tsx +3 -27
  41. package/src/main.css +1 -1
  42. package/src/phoneNumberInput/PhoneNumberInput.spec.js +4 -20
  43. package/src/select/Select.js +3 -0
  44. package/src/test-utils/window-mock.ts +11 -0
  45. package/build/types/dateLookup/getFocusableTime/getFocusableTime.d.ts +0 -2
  46. package/build/types/dateLookup/getFocusableTime/getFocusableTime.d.ts.map +0 -1
  47. package/src/dateLookup/getFocusableTime/getFocusable.spec.js +0 -38
  48. package/src/dateLookup/getFocusableTime/getFocusableTime.tsx +0 -28
  49. package/src/dateLookup/tableLink/TableLink.tsx +0 -80
  50. /package/src/dateLookup/tableLink/{index.ts → index.js} +0 -0
package/build/index.js CHANGED
@@ -9,18 +9,18 @@ var PropTypes = require('prop-types');
9
9
  var reactIntl = require('react-intl');
10
10
  var componentsTheming = require('@wise/components-theming');
11
11
  var formatting = require('@transferwise/formatting');
12
- var throttle = require('lodash.throttle');
13
- var reactTransitionGroup = require('react-transition-group');
14
- var reactDom = require('react-dom');
15
- var focus = require('@react-aria/focus');
16
- var mergeRefs = require('react-merge-refs');
17
- var shim = require('use-sync-external-store/shim');
18
- var neptuneValidation = require('@transferwise/neptune-validation');
19
- var reactPopper = require('react-popper');
20
12
  var react$1 = require('@headlessui/react');
21
13
  var mergeProps = require('merge-props');
14
+ var mergeRefs = require('react-merge-refs');
15
+ var shim = require('use-sync-external-store/shim');
22
16
  var react = require('@floating-ui/react');
17
+ var focus = require('@react-aria/focus');
23
18
  var overlays = require('@react-aria/overlays');
19
+ var reactTransitionGroup = require('react-transition-group');
20
+ var reactPopper = require('react-popper');
21
+ var throttle = require('lodash.throttle');
22
+ var reactDom = require('react-dom');
23
+ var neptuneValidation = require('@transferwise/neptune-validation');
24
24
  var art = require('@wise/art');
25
25
  var clamp$2 = require('lodash.clamp');
26
26
  var debounce = require('lodash.debounce');
@@ -53,9 +53,9 @@ function _interopNamespace(e) {
53
53
  var classNames__default = /*#__PURE__*/_interopDefault(classNames);
54
54
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
55
55
  var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
56
- var throttle__default = /*#__PURE__*/_interopDefault(throttle);
57
- var mergeRefs__default = /*#__PURE__*/_interopDefault(mergeRefs);
58
56
  var mergeProps__default = /*#__PURE__*/_interopDefault(mergeProps);
57
+ var mergeRefs__default = /*#__PURE__*/_interopDefault(mergeRefs);
58
+ var throttle__default = /*#__PURE__*/_interopDefault(throttle);
59
59
  var clamp__default = /*#__PURE__*/_interopDefault(clamp$2);
60
60
  var debounce__default = /*#__PURE__*/_interopDefault(debounce);
61
61
  var requiredIf__default = /*#__PURE__*/_interopDefault(requiredIf);
@@ -2934,6 +2934,8 @@ const INITIAL_DEFAULT_STATE = {
2934
2934
  day: null
2935
2935
  };
2936
2936
  const DateInput = ({
2937
+ 'aria-labelledby': ariaLabelledBy,
2938
+ 'aria-label': ariaLabel,
2937
2939
  disabled,
2938
2940
  size,
2939
2941
  value,
@@ -2999,20 +3001,25 @@ const DateInput = ({
2999
3001
  const getSelectElement = () => {
3000
3002
  const months = getMonthNames(locale, monthFormat);
3001
3003
  return /*#__PURE__*/jsxRuntime.jsxs("label", {
3004
+ className: "d-flex flex-column",
3002
3005
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
3003
3006
  className: "sr-only",
3004
3007
  children: monthLabel
3005
- }), /*#__PURE__*/jsxRuntime.jsx(Select, {
3006
- id: id ? `${id}-select` : undefined,
3008
+ }), /*#__PURE__*/jsxRuntime.jsx(SelectInput, {
3007
3009
  name: "month",
3008
3010
  disabled: disabled,
3009
3011
  placeholder: placeholders.month,
3010
- options: getMonthsOptions(),
3012
+ items: getMonthsOptions(),
3011
3013
  size: size,
3012
- selected: month === null ? null : {
3014
+ value: month === null ? null : {
3013
3015
  value: month,
3014
3016
  label: months[month]
3015
3017
  },
3018
+ renderValue: ({
3019
+ label
3020
+ }) => /*#__PURE__*/jsxRuntime.jsx(SelectInputOptionContent, {
3021
+ title: label
3022
+ }),
3016
3023
  onChange: selectedValue => handleMonthChange(selectedValue),
3017
3024
  ...selectProps
3018
3025
  })]
@@ -3023,8 +3030,11 @@ const DateInput = ({
3023
3030
  const months = getMonthNames(locale, monthFormat);
3024
3031
  months.forEach((label, index) => {
3025
3032
  options.push({
3026
- value: index,
3027
- label
3033
+ type: 'option',
3034
+ value: {
3035
+ label,
3036
+ value: index
3037
+ }
3028
3038
  });
3029
3039
  });
3030
3040
  return options;
@@ -3121,6 +3131,8 @@ const DateInput = ({
3121
3131
  return /*#__PURE__*/jsxRuntime.jsx("div", {
3122
3132
  className: "tw-date",
3123
3133
  id: id,
3134
+ "aria-labelledby": ariaLabelledBy,
3135
+ "aria-label": ariaLabel,
3124
3136
  onFocus: event => shouldPropagateOnFocus(event) ? onFocus && onFocus() : event.stopPropagation(),
3125
3137
  onBlur: event => shouldPropagateOnBlur(event) ? onBlur && onBlur() : event.stopPropagation(),
3126
3138
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
@@ -3203,6 +3215,8 @@ function shouldPropagateOnBlur({
3203
3215
  return blurElementParent !== focusElementParent;
3204
3216
  }
3205
3217
  DateInput.propTypes = {
3218
+ 'aria-label': PropTypes__default.default.string,
3219
+ 'aria-labelledby': PropTypes__default.default.string,
3206
3220
  disabled: PropTypes__default.default.bool,
3207
3221
  size: PropTypes__default.default.oneOf(['sm', 'md', 'lg']),
3208
3222
  value: PropTypes__default.default.oneOfType([PropTypes__default.default.string, PropTypes__default.default.instanceOf(Date)]),
@@ -3598,28 +3612,6 @@ DateHeader.defaultProps = {
3598
3612
  };
3599
3613
  var DateHeader$1 = DateHeader;
3600
3614
 
3601
- function getFocusableTime(isSelected, isNow, isDisabled, timeSpan) {
3602
- let selected = null;
3603
- let now = null;
3604
- let disabled = null;
3605
- for (const time of timeSpan) {
3606
- if (isSelected(time)) {
3607
- selected = time;
3608
- break;
3609
- }
3610
- if (isNow(time)) {
3611
- now = time;
3612
- }
3613
- if (!isDisabled(time) && disabled === null) {
3614
- disabled = time;
3615
- }
3616
- if (selected) {
3617
- break;
3618
- }
3619
- }
3620
- return selected || now || disabled;
3621
- }
3622
-
3623
3615
  // NB! Using with UTC timestamp (YYYY-MM-DD) might lead to unexpected results, for example
3624
3616
  // getStartOfDay(new Date('1995-01-01')) in Los Angeles returns 31 Dec 1994, but in
3625
3617
  // in Singapore it is 1 Jan 1995.
@@ -3631,57 +3623,59 @@ function getStartOfDay(date) {
3631
3623
  return new Date(date.getFullYear(), date.getMonth(), date.getDate());
3632
3624
  }
3633
3625
 
3634
- const TableLink = ({
3635
- item,
3636
- type,
3637
- title,
3638
- longTitle,
3639
- active,
3640
- disabled,
3641
- today,
3642
- autofocus,
3643
- onClick,
3644
- intl: {
3645
- formatMessage
3646
- }
3647
- }) => {
3648
- const buttonRef = React.useRef(null);
3649
- React.useEffect(() => {
3650
- if (autofocus) {
3651
- setTimeout(() => {
3652
- buttonRef.current?.focus();
3653
- }, 0);
3654
- }
3655
- }, [autofocus]);
3656
- const onCalendarClick = event => {
3626
+ class TableLink extends React.PureComponent {
3627
+ onClick = event => {
3657
3628
  event.preventDefault();
3658
- if (!disabled) {
3659
- onClick(item);
3629
+ if (!this.props.disabled) {
3630
+ this.props.onClick(this.props.item);
3660
3631
  }
3661
3632
  };
3662
- const calculateAriaLabel = () => {
3633
+ calculateAriaLabel = (longTitle, title, active, type, formatMessage) => {
3663
3634
  if (active) {
3664
- return `${longTitle || title || ''}, ${formatMessage(messages$6.selected)} ${formatMessage(messages$6[type])}`;
3635
+ return `${longTitle || title}, ${formatMessage(messages$6.selected)} ${formatMessage(messages$6[type])}`;
3665
3636
  }
3666
3637
  return longTitle || title;
3667
3638
  };
3668
- return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
3669
- children: /*#__PURE__*/jsxRuntime.jsx("button", {
3670
- ref: buttonRef,
3671
- type: "button",
3672
- className: classNames__default.default(`tw-date-lookup-${type}-option np-text-body-default-bold`, {
3673
- active: !!active
3674
- }, {
3675
- today: !!today
3676
- }),
3677
- disabled: disabled,
3678
- tabIndex: autofocus ? 0 : -1,
3679
- "aria-label": calculateAriaLabel(),
3680
- "aria-pressed": active,
3681
- onClick: onCalendarClick,
3682
- children: title || item
3683
- })
3684
- });
3639
+ render() {
3640
+ const {
3641
+ item,
3642
+ type,
3643
+ title,
3644
+ longTitle,
3645
+ active,
3646
+ disabled,
3647
+ today,
3648
+ intl: {
3649
+ formatMessage
3650
+ }
3651
+ } = this.props;
3652
+ return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
3653
+ children: /*#__PURE__*/jsxRuntime.jsx("button", {
3654
+ type: "button",
3655
+ className: `tw-date-lookup-${type}-option ${active ? 'active' : ''} ${today ? 'today' : ''} np-text-body-default-bold`,
3656
+ disabled: disabled,
3657
+ "aria-label": this.calculateAriaLabel(longTitle, title, active, type, formatMessage),
3658
+ "aria-pressed": active,
3659
+ onClick: this.onClick,
3660
+ children: title || item
3661
+ })
3662
+ });
3663
+ }
3664
+ }
3665
+ TableLink.propTypes = {
3666
+ item: PropTypes__default.default.number.isRequired,
3667
+ // day (1-31), month (0-11) or year (2018 etc)
3668
+ type: PropTypes__default.default.oneOf(['day', 'month', 'year']).isRequired,
3669
+ title: PropTypes__default.default.string,
3670
+ longTitle: PropTypes__default.default.string,
3671
+ active: PropTypes__default.default.bool.isRequired,
3672
+ disabled: PropTypes__default.default.bool.isRequired,
3673
+ today: PropTypes__default.default.bool.isRequired,
3674
+ onClick: PropTypes__default.default.func.isRequired
3675
+ };
3676
+ TableLink.defaultProps = {
3677
+ title: null,
3678
+ longTitle: null
3685
3679
  };
3686
3680
  var TableLink$1 = reactIntl.injectIntl(TableLink);
3687
3681
 
@@ -3754,17 +3748,6 @@ class DayCalendarTable extends React.PureComponent {
3754
3748
  } = this.props;
3755
3749
  return !!(selectedDate && +new Date(viewYear, viewMonth, day) === +selectedDate);
3756
3750
  };
3757
- isToday = day => {
3758
- const {
3759
- viewMonth,
3760
- viewYear
3761
- } = this.props;
3762
- return +getStartOfDay(new Date()) === +new Date(viewYear, viewMonth, day);
3763
- };
3764
- getAutofocusDay = weeks => {
3765
- const days = weeks.flatMap(week => week);
3766
- return getFocusableTime(this.isActive, this.isToday, this.isDisabled, days);
3767
- };
3768
3751
  render() {
3769
3752
  const {
3770
3753
  viewMonth,
@@ -3774,7 +3757,6 @@ class DayCalendarTable extends React.PureComponent {
3774
3757
  }
3775
3758
  } = this.props;
3776
3759
  const weeks = this.getTableStructure();
3777
- let autoFocusDay = this.getAutofocusDay(weeks, viewMonth, viewYear);
3778
3760
  return /*#__PURE__*/jsxRuntime.jsxs("table", {
3779
3761
  className: "table table-condensed table-bordered tw-date-lookup-calendar m-b-0",
3780
3762
  children: [/*#__PURE__*/jsxRuntime.jsx("thead", {
@@ -3804,11 +3786,10 @@ class DayCalendarTable extends React.PureComponent {
3804
3786
  item: day,
3805
3787
  type: "day",
3806
3788
  title: formatting.formatDate(new Date(viewYear, viewMonth, day), locale, SHORT_DAY_FORMAT),
3807
- autofocus: day === autoFocusDay,
3808
3789
  longTitle: formatting.formatDate(new Date(viewYear, viewMonth, day), locale),
3809
3790
  active: this.isActive(day),
3810
3791
  disabled: this.isDisabled(day),
3811
- today: this.isToday(day),
3792
+ today: +getStartOfDay(new Date()) === +new Date(viewYear, viewMonth, day),
3812
3793
  onClick: this.selectDay
3813
3794
  })
3814
3795
  }, dayIndex))
@@ -3909,11 +3890,11 @@ var DayCalendar$1 = reactIntl.injectIntl(DayCalendar);
3909
3890
 
3910
3891
  const ROWS$1 = 3;
3911
3892
  const COLS$1 = 4;
3912
- const MONTH_ONLY_FORMAT = {
3893
+ const MONTH_ONLY_FORMAY = {
3913
3894
  month: 'short'
3914
3895
  };
3915
3896
  const MonthCalendarTable = ({
3916
- selectedDate,
3897
+ selectedDate: selected,
3917
3898
  min,
3918
3899
  max,
3919
3900
  viewYear,
@@ -3923,32 +3904,19 @@ const MonthCalendarTable = ({
3923
3904
  const {
3924
3905
  locale
3925
3906
  } = reactIntl.useIntl();
3926
- const getLink = month => {
3927
- return /*#__PURE__*/jsxRuntime.jsx(TableLink$1, {
3928
- item: month,
3929
- type: "month",
3930
- title: formatting.formatDate(new Date(viewYear, month), locale, MONTH_ONLY_FORMAT),
3931
- active: isSelected(month),
3932
- disabled: isDisabled(month),
3933
- today: viewYear === new Date().getFullYear() && month === new Date().getMonth(),
3934
- autofocus: autofocusMonth === month,
3935
- onClick: onSelect
3936
- });
3937
- };
3938
- const isSelected = month => {
3939
- return selectedDate && month === selectedDate.getMonth() && viewYear === selectedDate.getFullYear();
3940
- };
3941
- const isThisMonth = month => {
3942
- return viewYear === new Date().getFullYear() && month === new Date().getMonth();
3943
- };
3907
+ const getLink = month => /*#__PURE__*/jsxRuntime.jsx(TableLink$1, {
3908
+ item: month,
3909
+ type: "month",
3910
+ title: formatting.formatDate(new Date(viewYear, month), locale, MONTH_ONLY_FORMAY),
3911
+ active: !!(selected && month === selected.getMonth() && viewYear === selected.getFullYear()),
3912
+ disabled: isDisabled(month),
3913
+ today: viewYear === new Date().getFullYear() && month === new Date().getMonth(),
3914
+ onClick: onSelect
3915
+ });
3944
3916
  const isDisabled = month => {
3945
3917
  const date = new Date(viewYear, month);
3946
3918
  return !!(min && date < new Date(min.getFullYear(), min.getMonth()) || max && date > new Date(max.getFullYear(), max.getMonth()));
3947
3919
  };
3948
- const autofocusMonth = (() => {
3949
- const months = [...new Array(ROWS$1 * COLS$1)].map((_, index) => index);
3950
- return getFocusableTime(isSelected, isThisMonth, isDisabled, months);
3951
- })();
3952
3920
  return /*#__PURE__*/jsxRuntime.jsxs("table", {
3953
3921
  className: "table table-condensed table-bordered tw-date-lookup-calendar np-text-body-default-bold m-b-0",
3954
3922
  children: [/*#__PURE__*/jsxRuntime.jsx("thead", {
@@ -4067,31 +4035,15 @@ const YearCalendarTable = ({
4067
4035
  locale
4068
4036
  } = reactIntl.useIntl();
4069
4037
  const startYear = viewYear - viewYear % 20;
4070
- const getLink = year => {
4071
- return /*#__PURE__*/jsxRuntime.jsx(TableLink$1, {
4072
- item: year,
4073
- type: "year",
4074
- title: formatting.formatDate(new Date(year, 0), locale, YEAR_ONLY_FORMAT),
4075
- active: !!(selectedDate && year === selectedDate.getFullYear()),
4076
- disabled: isDisabled(year),
4077
- today: year === new Date().getFullYear(),
4078
- autofocus: autofocusYear === year,
4079
- onClick: onSelect
4080
- });
4081
- };
4082
- const isSelected = year => {
4083
- return selectedDate && year === selectedDate.getFullYear();
4084
- };
4085
- const isThisYear = year => {
4086
- return year === new Date().getFullYear();
4087
- };
4088
- const isDisabled = year => {
4089
- return !!(min && year < min.getFullYear() || max && year > max.getFullYear());
4090
- };
4091
- const autofocusYear = (() => {
4092
- const years = [...new Array(ROWS * COLS)].map((_, index) => startYear + index);
4093
- return getFocusableTime(isSelected, isThisYear, isDisabled, years);
4094
- })();
4038
+ const getLink = year => /*#__PURE__*/jsxRuntime.jsx(TableLink$1, {
4039
+ item: year,
4040
+ type: "year",
4041
+ title: formatting.formatDate(new Date(year, 0), locale, YEAR_ONLY_FORMAT),
4042
+ active: !!(selectedDate && year === selectedDate.getFullYear()),
4043
+ disabled: !!(min && year < min.getFullYear() || max && year > max.getFullYear()),
4044
+ today: year === new Date().getFullYear(),
4045
+ onClick: onSelect
4046
+ });
4095
4047
  return /*#__PURE__*/jsxRuntime.jsxs("table", {
4096
4048
  className: "table table-condensed table-bordered tw-date-lookup-calendar m-b-0",
4097
4049
  children: [/*#__PURE__*/jsxRuntime.jsx("thead", {
@@ -4198,7 +4150,6 @@ class DateLookup extends React.PureComponent {
4198
4150
  super(props);
4199
4151
  this.state = {
4200
4152
  selectedDate: getStartOfDay(props.value),
4201
- originalDate: null,
4202
4153
  min: getStartOfDay(props.min),
4203
4154
  max: getStartOfDay(props.max),
4204
4155
  viewMonth: (props.value || new Date()).getMonth(),
@@ -4261,15 +4212,6 @@ class DateLookup extends React.PureComponent {
4261
4212
  onFocus();
4262
4213
  }
4263
4214
  };
4264
- discard = () => {
4265
- const {
4266
- originalDate
4267
- } = this.state;
4268
- if (originalDate !== null) {
4269
- this.props.onChange(originalDate);
4270
- }
4271
- this.close();
4272
- };
4273
4215
  close = () => {
4274
4216
  const {
4275
4217
  onBlur
@@ -4283,8 +4225,7 @@ class DateLookup extends React.PureComponent {
4283
4225
  };
4284
4226
  handleKeyDown = event => {
4285
4227
  const {
4286
- open,
4287
- originalDate
4228
+ open
4288
4229
  } = this.state;
4289
4230
  switch (event.keyCode) {
4290
4231
  case KeyCodes.LEFT:
@@ -4320,7 +4261,6 @@ class DateLookup extends React.PureComponent {
4320
4261
  event.preventDefault();
4321
4262
  break;
4322
4263
  case KeyCodes.ESCAPE:
4323
- originalDate && this.props.onChange(originalDate);
4324
4264
  this.close();
4325
4265
  event.preventDefault();
4326
4266
  break;
@@ -4331,14 +4271,8 @@ class DateLookup extends React.PureComponent {
4331
4271
  selectedDate,
4332
4272
  min,
4333
4273
  max,
4334
- mode,
4335
- originalDate
4274
+ mode
4336
4275
  } = this.state;
4337
- if (originalDate === null) {
4338
- this.setState({
4339
- originalDate: selectedDate
4340
- });
4341
- }
4342
4276
  let date;
4343
4277
  if (selectedDate) {
4344
4278
  date = new Date(mode === MODE.YEAR ? selectedDate.getFullYear() + yearsToAdd : selectedDate.getFullYear(), mode === MODE.MONTH ? selectedDate.getMonth() + monthsToAdd : selectedDate.getMonth(), mode === MODE.DAY ? selectedDate.getDate() + daysToAdd : selectedDate.getDate());
@@ -4471,7 +4405,7 @@ class DateLookup extends React.PureComponent {
4471
4405
  open: open,
4472
4406
  className: "tw-date-lookup-menu",
4473
4407
  position: exports.Position.BOTTOM,
4474
- onClose: this.discard,
4408
+ onClose: this.close,
4475
4409
  children: this.getCalendar()
4476
4410
  })]
4477
4411
  });
@@ -7946,6 +7880,10 @@ const getUniqueIdForOption = (parentId = '', option) => {
7946
7880
  const uniqueOptionId = option.value || (option.label?.replace(/\s/g, '') ?? '');
7947
7881
  return `option-${parentId}-${uniqueOptionId}`;
7948
7882
  };
7883
+
7884
+ /**
7885
+ * @deprecated Use `SelectInput` instead (https://neptune.wise.design/blog/2023-11-28-adopting-our-new-selectinput)
7886
+ */
7949
7887
  function Select({
7950
7888
  placeholder,
7951
7889
  id,