baseui 10.6.0 → 10.7.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 (111) hide show
  1. package/app-nav-bar/user-menu.js +1 -0
  2. package/app-nav-bar/user-menu.js.flow +1 -0
  3. package/card/styled-components.js +0 -1
  4. package/card/styled-components.js.flow +0 -1
  5. package/combobox/combobox.js +5 -1
  6. package/combobox/combobox.js.flow +4 -0
  7. package/combobox/index.d.ts +6 -3
  8. package/data-table/column-datetime.js +2 -0
  9. package/data-table/column-datetime.js.flow +2 -0
  10. package/datepicker/calendar-header.js +29 -15
  11. package/datepicker/calendar-header.js.flow +13 -7
  12. package/datepicker/calendar.js +6 -1
  13. package/datepicker/calendar.js.flow +5 -1
  14. package/datepicker/constants.js +7 -2
  15. package/datepicker/constants.js.flow +5 -0
  16. package/datepicker/datepicker.js +135 -73
  17. package/datepicker/datepicker.js.flow +161 -62
  18. package/datepicker/day.js +1 -0
  19. package/datepicker/day.js.flow +1 -0
  20. package/datepicker/index.d.ts +7 -0
  21. package/datepicker/month.js +4 -0
  22. package/datepicker/month.js.flow +3 -0
  23. package/datepicker/styled-components.js +116 -56
  24. package/datepicker/styled-components.js.flow +101 -36
  25. package/datepicker/types.js.flow +17 -1
  26. package/datepicker/utils/date-helpers.js +1 -1
  27. package/datepicker/utils/date-helpers.js.flow +1 -1
  28. package/datepicker/week.js +1 -0
  29. package/datepicker/week.js.flow +1 -0
  30. package/dnd-list/list.js +1 -2
  31. package/dnd-list/list.js.flow +1 -1
  32. package/dnd-list/styled-components.js +1 -1
  33. package/dnd-list/styled-components.js.flow +1 -0
  34. package/es/app-nav-bar/user-menu.js +1 -0
  35. package/es/card/styled-components.js +0 -1
  36. package/es/combobox/combobox.js +5 -1
  37. package/es/data-table/column-datetime.js +2 -0
  38. package/es/datepicker/calendar-header.js +21 -10
  39. package/es/datepicker/calendar.js +7 -2
  40. package/es/datepicker/constants.js +5 -1
  41. package/es/datepicker/datepicker.js +70 -42
  42. package/es/datepicker/day.js +1 -0
  43. package/es/datepicker/month.js +3 -0
  44. package/es/datepicker/styled-components.js +98 -37
  45. package/es/datepicker/types.js +1 -1
  46. package/es/datepicker/utils/date-helpers.js +1 -1
  47. package/es/datepicker/week.js +1 -0
  48. package/es/dnd-list/list.js +1 -2
  49. package/es/dnd-list/styled-components.js +1 -0
  50. package/es/helper/helper.js +1 -0
  51. package/es/layer/layer.js +8 -0
  52. package/es/menu/maybe-child-menu.js +1 -0
  53. package/es/popover/popover.js +6 -5
  54. package/es/popover/stateful-container.js +4 -2
  55. package/es/select/select-component.js +1 -0
  56. package/es/themes/shared/lighting.js +5 -1
  57. package/es/timepicker/timepicker.js +16 -11
  58. package/es/tooltip/tooltip.js +1 -0
  59. package/esm/app-nav-bar/user-menu.js +1 -0
  60. package/esm/card/styled-components.js +0 -1
  61. package/esm/combobox/combobox.js +5 -1
  62. package/esm/data-table/column-datetime.js +2 -0
  63. package/esm/datepicker/calendar-header.js +30 -16
  64. package/esm/datepicker/calendar.js +7 -2
  65. package/esm/datepicker/constants.js +5 -1
  66. package/esm/datepicker/datepicker.js +136 -74
  67. package/esm/datepicker/day.js +1 -0
  68. package/esm/datepicker/month.js +3 -0
  69. package/esm/datepicker/styled-components.js +112 -55
  70. package/esm/datepicker/types.js +1 -1
  71. package/esm/datepicker/utils/date-helpers.js +1 -1
  72. package/esm/datepicker/week.js +1 -0
  73. package/esm/dnd-list/list.js +1 -2
  74. package/esm/dnd-list/styled-components.js +1 -1
  75. package/esm/helper/helper.js +1 -0
  76. package/esm/layer/layer.js +8 -0
  77. package/esm/menu/maybe-child-menu.js +1 -0
  78. package/esm/popover/popover.js +6 -5
  79. package/esm/popover/stateful-container.js +4 -2
  80. package/esm/select/select-component.js +1 -0
  81. package/esm/themes/shared/lighting.js +5 -1
  82. package/esm/timepicker/timepicker.js +17 -11
  83. package/esm/tooltip/tooltip.js +1 -0
  84. package/helper/helper.js +1 -0
  85. package/helper/helper.js.flow +1 -0
  86. package/layer/layer.js +8 -0
  87. package/layer/layer.js.flow +9 -0
  88. package/map-marker/index.d.ts +6 -5
  89. package/menu/maybe-child-menu.js +1 -0
  90. package/menu/maybe-child-menu.js.flow +1 -0
  91. package/modal/index.d.ts +1 -1
  92. package/modal/types.js.flow +4 -1
  93. package/package.json +3 -2
  94. package/popover/index.d.ts +2 -1
  95. package/popover/popover.js +6 -5
  96. package/popover/popover.js.flow +11 -4
  97. package/popover/stateful-container.js +4 -2
  98. package/popover/stateful-container.js.flow +2 -0
  99. package/popover/types.js.flow +6 -1
  100. package/select/select-component.js +1 -0
  101. package/select/select-component.js.flow +1 -0
  102. package/snackbar/index.d.ts +21 -16
  103. package/themes/shared/lighting.js +5 -1
  104. package/themes/shared/lighting.js.flow +4 -0
  105. package/themes/types.js.flow +4 -0
  106. package/timepicker/index.d.ts +1 -0
  107. package/timepicker/timepicker.js +17 -11
  108. package/timepicker/timepicker.js.flow +31 -12
  109. package/timepicker/types.js.flow +10 -0
  110. package/tooltip/tooltip.js +1 -0
  111. package/tooltip/tooltip.js.flow +6 -1
@@ -6,19 +6,47 @@ LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import { styled } from '../styles/index.js';
8
8
  import getDayStateCode from './utils/day-state.js';
9
- import { ORIENTATION } from './constants.js';
9
+ import { ORIENTATION, DENSITY } from './constants.js';
10
10
  /**
11
11
  * Main component container element
12
12
  */
13
13
 
14
- export const StyledInputWrapper = styled('div', () => ({
14
+ export const StyledInputWrapper = styled('div', props => {
15
+ const {
16
+ $separateRangeInputs
17
+ } = props;
18
+ return {
19
+ width: '100%',
20
+ ...($separateRangeInputs ? {
21
+ display: 'flex',
22
+ justifyContent: 'center'
23
+ } : {})
24
+ };
25
+ });
26
+ StyledInputWrapper.displayName = "StyledInputWrapper";
27
+ export const StyledInputLabel = styled('div', ({
28
+ $theme
29
+ }) => ({ ...$theme.typography.LabelMedium,
30
+ marginBottom: $theme.sizing.scale300
31
+ }));
32
+ StyledInputLabel.displayName = "StyledInputLabel";
33
+ export const StyledStartDate = styled('div', ({
34
+ $theme
35
+ }) => ({
36
+ width: '100%',
37
+ marginRight: $theme.sizing.scale300
38
+ }));
39
+ StyledStartDate.displayName = "StyledStartDate";
40
+ export const StyledEndDate = styled('div', ({
41
+ $theme
42
+ }) => ({
15
43
  width: '100%'
16
44
  }));
17
45
  /**
18
46
  * Main component container element
19
47
  */
20
48
 
21
- StyledInputWrapper.displayName = "StyledInputWrapper";
49
+ StyledEndDate.displayName = "StyledEndDate";
22
50
  export const StyledRoot = styled('div', props => {
23
51
  const {
24
52
  $theme: {
@@ -53,13 +81,14 @@ export const StyledCalendarContainer = styled('div', props => {
53
81
  const {
54
82
  $theme: {
55
83
  sizing
56
- }
84
+ },
85
+ $density
57
86
  } = props;
58
87
  return {
59
- paddingTop: sizing.scale400,
60
- paddingBottom: sizing.scale500,
61
- paddingLeft: sizing.scale600,
62
- paddingRight: sizing.scale600
88
+ paddingTop: sizing.scale300,
89
+ paddingBottom: $density === DENSITY.high ? sizing.scale400 : sizing.scale300,
90
+ paddingLeft: sizing.scale500,
91
+ paddingRight: sizing.scale500
63
92
  };
64
93
  });
65
94
  StyledCalendarContainer.displayName = "StyledCalendarContainer";
@@ -78,18 +107,20 @@ StyledSelectorContainer.displayName = "StyledSelectorContainer";
78
107
  export const StyledCalendarHeader = styled('div', props => {
79
108
  const {
80
109
  $theme: {
110
+ typography,
81
111
  borders,
82
112
  colors,
83
113
  sizing
84
- }
114
+ },
115
+ $density
85
116
  } = props;
86
- return {
117
+ return { ...($density === DENSITY.high ? typography.LabelMedium : typography.LabelLarge),
87
118
  color: colors.calendarHeaderForeground,
88
119
  display: 'flex',
89
120
  justifyContent: 'space-between',
90
121
  alignItems: 'center',
91
- paddingTop: sizing.scale500,
92
- paddingBottom: sizing.scale500,
122
+ paddingTop: sizing.scale600,
123
+ paddingBottom: sizing.scale300,
93
124
  paddingLeft: sizing.scale600,
94
125
  paddingRight: sizing.scale600,
95
126
  backgroundColor: colors.calendarHeaderBackground,
@@ -98,7 +129,7 @@ export const StyledCalendarHeader = styled('div', props => {
98
129
  borderBottomRightRadius: 0,
99
130
  borderBottomLeftRadius: 0,
100
131
  // account for the left/right arrow heights
101
- minHeight: `calc(${sizing.scale800} + ${sizing.scale0})`
132
+ minHeight: $density === DENSITY.high ? `calc(${sizing.scale800} + ${sizing.scale0})` : sizing.scale950
102
133
  };
103
134
  });
104
135
  StyledCalendarHeader.displayName = "StyledCalendarHeader";
@@ -111,19 +142,27 @@ export const StyledMonthHeader = styled('div', props => {
111
142
  });
112
143
  StyledMonthHeader.displayName = "StyledMonthHeader";
113
144
  export const StyledMonthYearSelectButton = styled('button', props => {
114
- return { ...props.$theme.typography.font200,
145
+ const {
146
+ $theme: {
147
+ typography,
148
+ colors
149
+ },
150
+ $isFocusVisible,
151
+ $density
152
+ } = props;
153
+ return { ...($density === DENSITY.high ? typography.LabelMedium : typography.LabelLarge),
115
154
  alignItems: 'center',
116
155
  backgroundColor: 'transparent',
117
156
  borderLeftWidth: 0,
118
157
  borderRightWidth: 0,
119
158
  borderTopWidth: 0,
120
159
  borderBottomWidth: 0,
121
- color: props.$theme.colors.calendarHeaderForeground,
160
+ color: colors.calendarHeaderForeground,
122
161
  cursor: 'pointer',
123
162
  display: 'flex',
124
163
  outline: 'none',
125
164
  ':focus': {
126
- boxShadow: props.$isFocusVisible ? `0 0 0 3px ${props.$theme.colors.accent}` : 'none'
165
+ boxShadow: $isFocusVisible ? `0 0 0 3px ${colors.accent}` : 'none'
127
166
  }
128
167
  };
129
168
  });
@@ -145,6 +184,7 @@ function getArrowBtnStyle({
145
184
  }) {
146
185
  return {
147
186
  boxSizing: 'border-box',
187
+ display: 'flex',
148
188
  color: $disabled ? $theme.colors.calendarHeaderForegroundDisabled : $theme.colors.calendarHeaderForeground,
149
189
  cursor: $disabled ? 'default' : 'pointer',
150
190
  backgroundColor: 'transparent',
@@ -156,8 +196,6 @@ function getArrowBtnStyle({
156
196
  paddingBottom: '0',
157
197
  paddingLeft: '0',
158
198
  paddingRight: '0',
159
- marginLeft: '6px',
160
- marginRight: '6px',
161
199
  marginBottom: 0,
162
200
  marginTop: 0,
163
201
  outline: 'none',
@@ -186,7 +224,7 @@ export const StyledWeek = styled('div', props => {
186
224
  return {
187
225
  whiteSpace: 'nowrap',
188
226
  display: 'flex',
189
- marginBottom: sizing.scale100
227
+ marginBottom: sizing.scale0
190
228
  };
191
229
  });
192
230
  StyledWeek.displayName = "StyledWeek";
@@ -408,26 +446,45 @@ export const StyledDay = styled('div', props => {
408
446
  $outsideMonth,
409
447
  $outsideMonthWithinRange,
410
448
  $hasDateLabel,
449
+ $density,
411
450
  $theme: {
412
451
  colors,
452
+ typography,
413
453
  sizing
414
454
  }
415
455
  } = props;
416
456
  const code = getDayStateCode(props);
417
- return {
457
+ let height;
458
+
459
+ if ($hasDateLabel) {
460
+ if ($density === DENSITY.high) {
461
+ height = '60px';
462
+ } else {
463
+ height = '70px';
464
+ }
465
+ } else {
466
+ if ($density === DENSITY.high) {
467
+ height = '40px';
468
+ } else {
469
+ height = '48px';
470
+ }
471
+ }
472
+
473
+ return { ...($density === DENSITY.high ? typography.ParagraphSmall : typography.ParagraphMedium),
418
474
  boxSizing: 'border-box',
419
475
  position: 'relative',
420
476
  cursor: $disabled || !$peekNextMonth && $outsideMonth ? 'default' : 'pointer',
421
477
  color: colors.calendarForeground,
422
478
  display: 'inline-block',
423
- width: sizing.scale1000,
424
- height: $hasDateLabel ? '60px' : sizing.scale1000,
425
- lineHeight: sizing.scale800,
479
+ width: $density === DENSITY.high ? '42px' : '50px',
480
+ height: height,
481
+ // setting lineHeight equal to the contents height to vertically center the text
482
+ lineHeight: $density === DENSITY.high ? sizing.scale700 : sizing.scale900,
426
483
  textAlign: 'center',
427
484
  paddingTop: sizing.scale300,
428
485
  paddingBottom: sizing.scale300,
429
- paddingLeft: sizing.scale200,
430
- paddingRight: sizing.scale200,
486
+ paddingLeft: sizing.scale300,
487
+ paddingRight: sizing.scale300,
431
488
  marginTop: 0,
432
489
  marginBottom: 0,
433
490
  marginLeft: 0,
@@ -448,10 +505,10 @@ export const StyledDay = styled('div', props => {
448
505
  display: 'inline-block',
449
506
  boxShadow: $isFocusVisible ? `0 0 0 3px ${colors.accent}` : 'none',
450
507
  backgroundColor: $selected ? colors.calendarDayBackgroundSelectedHighlighted : $pseudoSelected && $isHighlighted ? colors.calendarDayBackgroundPseudoSelectedHighlighted : colors.calendarBackground,
451
- height: '100%',
508
+ height: $hasDateLabel ? '100%' : $density === DENSITY.high ? '42px' : '50px',
452
509
  width: '100%',
453
510
  position: 'absolute',
454
- top: 0,
511
+ top: $hasDateLabel ? 0 : '-1px',
455
512
  left: 0,
456
513
  paddingTop: sizing.scale200,
457
514
  paddingBottom: sizing.scale200,
@@ -467,10 +524,10 @@ export const StyledDay = styled('div', props => {
467
524
  borderBottomColor: colors.borderSelected,
468
525
  borderRightColor: colors.borderSelected,
469
526
  borderLeftColor: colors.borderSelected,
470
- borderTopLeftRadius: $hasDateLabel ? sizing.scale700 : '100%',
471
- borderTopRightRadius: $hasDateLabel ? sizing.scale700 : '100%',
472
- borderBottomLeftRadius: $hasDateLabel ? sizing.scale700 : '100%',
473
- borderBottomRightRadius: $hasDateLabel ? sizing.scale700 : '100%',
527
+ borderTopLeftRadius: $hasDateLabel ? sizing.scale800 : '100%',
528
+ borderTopRightRadius: $hasDateLabel ? sizing.scale800 : '100%',
529
+ borderBottomLeftRadius: $hasDateLabel ? sizing.scale800 : '100%',
530
+ borderBottomRightRadius: $hasDateLabel ? sizing.scale800 : '100%',
474
531
  ...(getDayStyles(code, props.$theme)[':after'] || {}),
475
532
  ...($outsideMonthWithinRange ? {
476
533
  content: null
@@ -532,18 +589,23 @@ StyledDayLabel.displayName = "StyledDayLabel";
532
589
  export const StyledWeekdayHeader = styled('div', props => {
533
590
  const {
534
591
  $theme: {
592
+ typography,
593
+ colors,
535
594
  sizing
536
- }
595
+ },
596
+ $density
537
597
  } = props;
538
- return {
598
+ return { ...typography.LabelMedium,
599
+ color: colors.contentTertiary,
539
600
  boxSizing: 'border-box',
540
601
  position: 'relative',
541
602
  cursor: 'default',
542
603
  display: 'inline-block',
543
- width: sizing.scale1000,
544
- height: sizing.scale1000,
545
- lineHeight: sizing.scale800,
604
+ width: $density === DENSITY.high ? '42px' : '50px',
605
+ height: $density === DENSITY.high ? '40px' : '48px',
546
606
  textAlign: 'center',
607
+ // setting lineHeight equal to the contents height to vertically center the text
608
+ lineHeight: sizing.scale900,
547
609
  paddingTop: sizing.scale300,
548
610
  paddingBottom: sizing.scale300,
549
611
  paddingLeft: sizing.scale200,
@@ -552,7 +614,6 @@ export const StyledWeekdayHeader = styled('div', props => {
552
614
  marginBottom: 0,
553
615
  marginLeft: 0,
554
616
  marginRight: 0,
555
- color: 'inherit',
556
617
  backgroundColor: 'transparent'
557
618
  };
558
619
  });
@@ -7,4 +7,4 @@ LICENSE file in the root directory of this source tree.
7
7
 
8
8
  /* eslint-disable flowtype/generic-spacing */
9
9
  import * as React from 'react';
10
- import { ORIENTATION, STATE_CHANGE_TYPE } from './constants.js';
10
+ import { ORIENTATION, STATE_CHANGE_TYPE, DENSITY } from './constants.js';
@@ -35,7 +35,7 @@ class DateHelpers {
35
35
  monthNumber: 'M',
36
36
  dayOfMonthNumber: 'd',
37
37
  weekday: 'EEEE',
38
- weekdaymin: 'EEEEE',
38
+ weekdaymin: 'EEEEEE',
39
39
  slashDate: 'yyyy/MM/dd',
40
40
  fullOrdinalWeek: 'EEEE, MMMM do yyyy',
41
41
  quarter: 'QQQ'
@@ -34,6 +34,7 @@ export default class Week extends React.Component {
34
34
  adapter: this.props.adapter,
35
35
  date: day,
36
36
  dateLabel: this.props.dateLabel,
37
+ density: this.props.density,
37
38
  disabled: this.dateHelpers.isDayDisabled(day, this.props),
38
39
  excludeDates: this.props.excludeDates,
39
40
  filterDate: this.props.filterDate,
@@ -127,8 +127,7 @@ class StatelessList extends React.Component {
127
127
  display: 'flex'
128
128
  }
129
129
  }), /*#__PURE__*/React.createElement(DragHandle, _extends({}, sharedProps, dragHandleProps), /*#__PURE__*/React.createElement(Grab, {
130
- size: 24,
131
- color: "#CCC"
130
+ size: 24
132
131
  })), /*#__PURE__*/React.createElement(Label, _extends({}, sharedProps, labelProps), value), removable && /*#__PURE__*/React.createElement(CloseHandle, _extends({}, sharedProps, {
133
132
  onClick: evt => {
134
133
  evt.preventDefault();
@@ -89,6 +89,7 @@ export const DragHandle = styled('div', ({
89
89
  return {
90
90
  [marginDir]: $theme.sizing.scale600,
91
91
  width: $theme.sizing.scale800,
92
+ color: '#CCC',
92
93
  display: 'flex',
93
94
  alignItems: 'center'
94
95
  };
@@ -35,6 +35,7 @@ export function Helper(props) {
35
35
  React.createElement(Popover, _extends({
36
36
  "data-baseweb": "helper"
37
37
  }, restProps, {
38
+ autoFocus: false,
38
39
  placement: placement,
39
40
  overrides: mergedOverrides
40
41
  }))
package/es/layer/layer.js CHANGED
@@ -94,6 +94,14 @@ class LayerComponent extends React.Component {
94
94
  if (host && host !== prevProps.host && prevProps.host === null) {
95
95
  this.addContainer(host);
96
96
  }
97
+
98
+ if (prevProps.isHoverLayer != this.props.isHoverLayer) {
99
+ if (this.props.isHoverLayer) {
100
+ this.context.removeDocClickHandler(this.onDocumentClick);
101
+ } else {
102
+ this.context.addDocClickHandler(this.onDocumentClick);
103
+ }
104
+ }
97
105
  }
98
106
 
99
107
  componentWillUnmount() {
@@ -28,6 +28,7 @@ export default function MaybeChildMenu(props) {
28
28
  return /*#__PURE__*/React.createElement(NestedMenuContext.Consumer, null, ctx => {
29
29
  return /*#__PURE__*/React.createElement(PopoverOverride, _extends({
30
30
  focusLock: false,
31
+ autoFocus: false,
31
32
  isOpen: props.isOpen,
32
33
  renderAll: props.renderAll,
33
34
  content: ChildMenu,
@@ -13,7 +13,7 @@ LICENSE file in the root directory of this source tree.
13
13
 
14
14
  /* eslint-disable cup/no-undef */
15
15
  import * as React from 'react';
16
- import FocusLock from 'react-focus-lock';
16
+ import FocusLock, { MoveFocusInside } from 'react-focus-lock';
17
17
  import { getOverride, getOverrideProps } from '../helpers/overrides.js';
18
18
  import { ACCESSIBILITY_TYPE, PLACEMENT, TRIGGER_TYPE, ANIMATE_OUT_TIME, ANIMATE_IN_TIME, POPOVER_MARGIN } from './constants.js';
19
19
  import { Layer, TetherBehavior } from '../layer/index.js';
@@ -156,7 +156,7 @@ class PopoverInner extends React.Component {
156
156
  componentDidUpdate(prevProps, prevState) {
157
157
  this.init(prevProps, prevState);
158
158
 
159
- if (this.props.autoFocus && this.props.focusLock && !this.state.autoFocusAfterPositioning && this.popperRef.current !== null && this.popperRef.current.getBoundingClientRect().top > 0) {
159
+ if (this.props.autoFocus && !this.state.autoFocusAfterPositioning && this.popperRef.current !== null && this.popperRef.current.getBoundingClientRect().top > 0) {
160
160
  this.setState({
161
161
  autoFocusAfterPositioning: true
162
162
  });
@@ -451,9 +451,10 @@ class PopoverInner extends React.Component {
451
451
  disabled: !this.props.focusLock,
452
452
  noFocusGuards: false // see popover-focus-loop.scenario.js for why hover cannot return focus
453
453
  ,
454
- returnFocus: this.props.returnFocus && !this.isHoverTrigger(),
455
- autoFocus: this.state.autoFocusAfterPositioning
456
- }, this.renderPopover(renderedContent)))));
454
+ returnFocus: !this.isHoverTrigger() && this.props.returnFocus,
455
+ autoFocus: this.state.autoFocusAfterPositioning,
456
+ focusOptions: this.props.focusOptions
457
+ }, !this.props.focusLock && this.state.autoFocusAfterPositioning ? /*#__PURE__*/React.createElement(MoveFocusInside, null, this.renderPopover(renderedContent)) : this.renderPopover(renderedContent)))));
457
458
  } else {
458
459
  rendered.push( /*#__PURE__*/React.createElement(Hidden, {
459
460
  key: "hidden-layer"
@@ -162,7 +162,8 @@ class StatefulContainer extends React.Component {
162
162
  returnFocus,
163
163
  showArrow,
164
164
  triggerType,
165
- popoverMargin
165
+ popoverMargin,
166
+ focusOptions
166
167
  } = this.props;
167
168
  const popoverProps = {
168
169
  accessibilityType,
@@ -186,7 +187,8 @@ class StatefulContainer extends React.Component {
186
187
  returnFocus,
187
188
  showArrow,
188
189
  triggerType,
189
- popoverMargin
190
+ popoverMargin,
191
+ focusOptions
190
192
  };
191
193
 
192
194
  if (dismissOnClickOutside) {
@@ -970,6 +970,7 @@ class Select extends React.Component {
970
970
  if (!ref) return;
971
971
  this.anchor = ref.anchorRef;
972
972
  },
973
+ autoFocus: false,
973
974
  focusLock: false,
974
975
  mountNode: this.props.mountNode,
975
976
  onEsc: () => this.closeMenu(),
@@ -15,6 +15,10 @@ const lighting = {
15
15
  overlay300: 'inset 0 0 0 1000px hsla(0, 0%, 0%, 0.12)',
16
16
  overlay400: 'inset 0 0 0 1000px hsla(0, 0%, 0%, 0.16)',
17
17
  overlay500: 'inset 0 0 0 1000px hsla(0, 0%, 0%, 0.2)',
18
- overlay600: 'inset 0 0 0 1000px hsla(0, 0%, 0%, 0.24)'
18
+ overlay600: 'inset 0 0 0 1000px hsla(0, 0%, 0%, 0.24)',
19
+ shallowAbove: '0px -4px 16px rgba(0, 0, 0, 0.12)',
20
+ shallowBelow: '0px 4px 16px rgba(0, 0, 0, 0.12)',
21
+ deepAbove: '0px -16px 48px rgba(0, 0, 0, 0.22)',
22
+ deepBelow: '0px 16px 48px rgba(0, 0, 0, 0.22)'
19
23
  };
20
24
  export default lighting;
@@ -152,24 +152,28 @@ class TimePicker extends React.Component {
152
152
  _defineProperty(this, "getTimeWindowInSeconds", step => {
153
153
  let {
154
154
  minTime: min,
155
- maxTime: max
155
+ maxTime: max,
156
+ ignoreMinMaxDateComponent
156
157
  } = this.props;
157
- let midnight = this.setTime(this.props.value, 0, 0, 0);
158
+ const dayStart = this.setTime(this.props.value, 0, 0, 0);
159
+ const dayEnd = this.setTime(this.props.value, 24, 0, 0);
158
160
 
159
- if (!min) {
160
- min = midnight;
161
+ if (!min || this.props.adapter.isBefore(min, dayStart) && !ignoreMinMaxDateComponent) {
162
+ min = dayStart;
163
+ } else {
164
+ min = this.setTime(this.props.value, this.props.adapter.getHours(min), this.props.adapter.getMinutes(min), this.props.adapter.getSeconds(min));
161
165
  }
162
166
 
163
- if (!max) {
164
- max = this.setTime(this.props.value, 24, 0, 0);
167
+ if (!max || this.props.adapter.isAfter(max, dayEnd) && !ignoreMinMaxDateComponent) {
168
+ max = dayEnd;
165
169
  } else {
166
- // maxTime (if provided) should be inclusive, so add an extra step here
167
- max = this.props.adapter.setSeconds(this.props.adapter.date(max), this.props.adapter.getSeconds(max) + step);
170
+ max = this.setTime(this.props.value, this.props.adapter.getHours(max), this.props.adapter.getMinutes(max), // maxTime (if provided) should be inclusive, so add an extra second here
171
+ this.props.adapter.getSeconds(max) + 1);
168
172
  }
169
173
 
170
174
  const minDate = this.props.adapter.toJsDate(min);
171
175
  const maxDate = this.props.adapter.toJsDate(max);
172
- const midnightDate = this.props.adapter.toJsDate(midnight);
176
+ const midnightDate = this.props.adapter.toJsDate(dayStart);
173
177
  return {
174
178
  start: (minDate - midnightDate) / 1000,
175
179
  end: (maxDate - midnightDate) / 1000
@@ -248,7 +252,7 @@ class TimePicker extends React.Component {
248
252
  steps: steps,
249
253
  value: this.props.nullable ? undefined : {
250
254
  id: closestStep,
251
- label: this.secondsToLabel(closestStep, undefined)
255
+ label: this.secondsToLabel(closestStep, this.props.format)
252
256
  }
253
257
  });
254
258
 
@@ -337,7 +341,8 @@ _defineProperty(TimePicker, "defaultProps", {
337
341
  format: '12',
338
342
  step: 900,
339
343
  creatable: false,
340
- adapter: dateFnsAdapter
344
+ adapter: dateFnsAdapter,
345
+ ignoreMinMaxDateComponent: false
341
346
  });
342
347
 
343
348
  export default TimePicker;
@@ -24,6 +24,7 @@ class Tooltip extends React.Component {
24
24
  Inner: StyledInner
25
25
  }, this.props.overrides);
26
26
  return /*#__PURE__*/React.createElement(Popover, _extends({
27
+ autoFocus: false,
27
28
  "data-baseweb": "tooltip"
28
29
  }, this.props, {
29
30
  overrides: overrides
@@ -132,6 +132,7 @@ export default function UserMenuComponent(props) {
132
132
  }
133
133
  }, userMenuProps));
134
134
  },
135
+ autoFocus: false,
135
136
  dismissOnEsc: true,
136
137
  dismissOnClickOutside: true,
137
138
  onOpen: function onOpen() {
@@ -90,7 +90,6 @@ export var Title = styled('h1', function (_ref7) {
90
90
  var $theme = _ref7.$theme;
91
91
  return _objectSpread(_objectSpread({}, $theme.typography.HeadingSmall), {}, {
92
92
  color: $theme.colors.contentPrimary,
93
- fontWeight: 500,
94
93
  marginLeft: 0,
95
94
  marginTop: 0,
96
95
  marginRight: 0,
@@ -292,7 +292,11 @@ function Combobox(props) {
292
292
  return /*#__PURE__*/React.createElement(Root // eslint-disable-next-line flowtype/no-weak-types
293
293
  , _extends({
294
294
  ref: rootRef
295
- }, rootProps), /*#__PURE__*/React.createElement(OverriddenPopover, _extends({
295
+ }, rootProps), /*#__PURE__*/React.createElement(OverriddenPopover // React-focus-lock used in Popover used to skip non-tabbable elements (`tabIndex=-1`) elements for focus, we had ListBox with tabIndex to disable focus on
296
+ // the ListBox, but we can just disable autoFocus (as ListBox / ListItem should not be focusable) (and input is also not autoFocused).
297
+ // Select Component does the same thing
298
+ , _extends({
299
+ autoFocus: false,
296
300
  isOpen: isOpen,
297
301
  overrides: popoverOverrides,
298
302
  placement: PLACEMENT.bottomLeft,
@@ -55,6 +55,7 @@ import { COLUMNS, DATETIME_OPERATIONS } from './constants.js';
55
55
  import FilterShell from './filter-shell.js';
56
56
  import { LocaleContext } from '../locale/index.js';
57
57
  var DATE_FORMAT = 'MM-dd-yyyy';
58
+ var MASK = '99-99-9999 - 99-99-9999';
58
59
  var TIME_FORMAT = 'HH:mm ss:SS';
59
60
  var FORMAT_STRING = "".concat(DATE_FORMAT, " ").concat(TIME_FORMAT);
60
61
 
@@ -430,6 +431,7 @@ function DatetimeFilter(props) {
430
431
  }
431
432
  },
432
433
  formatString: DATE_FORMAT,
434
+ mask: MASK,
433
435
  placeholder: "MM-DD-YYYY - MM-DD-YYYY",
434
436
  minDate: datesSorted[0],
435
437
  maxDate: datesSorted[datesSorted.length - 1],