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.
- package/app-nav-bar/user-menu.js +1 -0
- package/app-nav-bar/user-menu.js.flow +1 -0
- package/card/styled-components.js +0 -1
- package/card/styled-components.js.flow +0 -1
- package/combobox/combobox.js +5 -1
- package/combobox/combobox.js.flow +4 -0
- package/combobox/index.d.ts +6 -3
- package/data-table/column-datetime.js +2 -0
- package/data-table/column-datetime.js.flow +2 -0
- package/datepicker/calendar-header.js +29 -15
- package/datepicker/calendar-header.js.flow +13 -7
- package/datepicker/calendar.js +6 -1
- package/datepicker/calendar.js.flow +5 -1
- package/datepicker/constants.js +7 -2
- package/datepicker/constants.js.flow +5 -0
- package/datepicker/datepicker.js +135 -73
- package/datepicker/datepicker.js.flow +161 -62
- package/datepicker/day.js +1 -0
- package/datepicker/day.js.flow +1 -0
- package/datepicker/index.d.ts +7 -0
- package/datepicker/month.js +4 -0
- package/datepicker/month.js.flow +3 -0
- package/datepicker/styled-components.js +116 -56
- package/datepicker/styled-components.js.flow +101 -36
- package/datepicker/types.js.flow +17 -1
- package/datepicker/utils/date-helpers.js +1 -1
- package/datepicker/utils/date-helpers.js.flow +1 -1
- package/datepicker/week.js +1 -0
- package/datepicker/week.js.flow +1 -0
- package/dnd-list/list.js +1 -2
- package/dnd-list/list.js.flow +1 -1
- package/dnd-list/styled-components.js +1 -1
- package/dnd-list/styled-components.js.flow +1 -0
- package/es/app-nav-bar/user-menu.js +1 -0
- package/es/card/styled-components.js +0 -1
- package/es/combobox/combobox.js +5 -1
- package/es/data-table/column-datetime.js +2 -0
- package/es/datepicker/calendar-header.js +21 -10
- package/es/datepicker/calendar.js +7 -2
- package/es/datepicker/constants.js +5 -1
- package/es/datepicker/datepicker.js +70 -42
- package/es/datepicker/day.js +1 -0
- package/es/datepicker/month.js +3 -0
- package/es/datepicker/styled-components.js +98 -37
- package/es/datepicker/types.js +1 -1
- package/es/datepicker/utils/date-helpers.js +1 -1
- package/es/datepicker/week.js +1 -0
- package/es/dnd-list/list.js +1 -2
- package/es/dnd-list/styled-components.js +1 -0
- package/es/helper/helper.js +1 -0
- package/es/layer/layer.js +8 -0
- package/es/menu/maybe-child-menu.js +1 -0
- package/es/popover/popover.js +6 -5
- package/es/popover/stateful-container.js +4 -2
- package/es/select/select-component.js +1 -0
- package/es/themes/shared/lighting.js +5 -1
- package/es/timepicker/timepicker.js +16 -11
- package/es/tooltip/tooltip.js +1 -0
- package/esm/app-nav-bar/user-menu.js +1 -0
- package/esm/card/styled-components.js +0 -1
- package/esm/combobox/combobox.js +5 -1
- package/esm/data-table/column-datetime.js +2 -0
- package/esm/datepicker/calendar-header.js +30 -16
- package/esm/datepicker/calendar.js +7 -2
- package/esm/datepicker/constants.js +5 -1
- package/esm/datepicker/datepicker.js +136 -74
- package/esm/datepicker/day.js +1 -0
- package/esm/datepicker/month.js +3 -0
- package/esm/datepicker/styled-components.js +112 -55
- package/esm/datepicker/types.js +1 -1
- package/esm/datepicker/utils/date-helpers.js +1 -1
- package/esm/datepicker/week.js +1 -0
- package/esm/dnd-list/list.js +1 -2
- package/esm/dnd-list/styled-components.js +1 -1
- package/esm/helper/helper.js +1 -0
- package/esm/layer/layer.js +8 -0
- package/esm/menu/maybe-child-menu.js +1 -0
- package/esm/popover/popover.js +6 -5
- package/esm/popover/stateful-container.js +4 -2
- package/esm/select/select-component.js +1 -0
- package/esm/themes/shared/lighting.js +5 -1
- package/esm/timepicker/timepicker.js +17 -11
- package/esm/tooltip/tooltip.js +1 -0
- package/helper/helper.js +1 -0
- package/helper/helper.js.flow +1 -0
- package/layer/layer.js +8 -0
- package/layer/layer.js.flow +9 -0
- package/map-marker/index.d.ts +6 -5
- package/menu/maybe-child-menu.js +1 -0
- package/menu/maybe-child-menu.js.flow +1 -0
- package/modal/index.d.ts +1 -1
- package/modal/types.js.flow +4 -1
- package/package.json +3 -2
- package/popover/index.d.ts +2 -1
- package/popover/popover.js +6 -5
- package/popover/popover.js.flow +11 -4
- package/popover/stateful-container.js +4 -2
- package/popover/stateful-container.js.flow +2 -0
- package/popover/types.js.flow +6 -1
- package/select/select-component.js +1 -0
- package/select/select-component.js.flow +1 -0
- package/snackbar/index.d.ts +21 -16
- package/themes/shared/lighting.js +5 -1
- package/themes/shared/lighting.js.flow +4 -0
- package/themes/types.js.flow +4 -0
- package/timepicker/index.d.ts +1 -0
- package/timepicker/timepicker.js +17 -11
- package/timepicker/timepicker.js.flow +31 -12
- package/timepicker/types.js.flow +10 -0
- package/tooltip/tooltip.js +1 -0
- 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
|
-
|
|
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.
|
|
60
|
-
paddingBottom: sizing.
|
|
61
|
-
paddingLeft: sizing.
|
|
62
|
-
paddingRight: sizing.
|
|
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.
|
|
92
|
-
paddingBottom: sizing.
|
|
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
|
-
|
|
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:
|
|
160
|
+
color: colors.calendarHeaderForeground,
|
|
122
161
|
cursor: 'pointer',
|
|
123
162
|
display: 'flex',
|
|
124
163
|
outline: 'none',
|
|
125
164
|
':focus': {
|
|
126
|
-
boxShadow:
|
|
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.
|
|
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
|
-
|
|
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:
|
|
424
|
-
height:
|
|
425
|
-
lineHeight
|
|
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.
|
|
430
|
-
paddingRight: sizing.
|
|
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.
|
|
471
|
-
borderTopRightRadius: $hasDateLabel ? sizing.
|
|
472
|
-
borderBottomLeftRadius: $hasDateLabel ? sizing.
|
|
473
|
-
borderBottomRightRadius: $hasDateLabel ? sizing.
|
|
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:
|
|
544
|
-
height:
|
|
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
|
});
|
package/es/datepicker/types.js
CHANGED
|
@@ -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';
|
package/es/datepicker/week.js
CHANGED
|
@@ -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,
|
package/es/dnd-list/list.js
CHANGED
|
@@ -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();
|
package/es/helper/helper.js
CHANGED
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,
|
package/es/popover/popover.js
CHANGED
|
@@ -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 &&
|
|
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.
|
|
455
|
-
autoFocus: this.state.autoFocusAfterPositioning
|
|
456
|
-
|
|
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) {
|
|
@@ -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
|
-
|
|
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 =
|
|
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 =
|
|
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
|
|
167
|
-
|
|
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(
|
|
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,
|
|
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;
|
package/es/tooltip/tooltip.js
CHANGED
|
@@ -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,
|
package/esm/combobox/combobox.js
CHANGED
|
@@ -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,
|
|
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],
|