baseui 10.5.0 → 10.7.2

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 (165) 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/button/styled-components.js +1 -1
  4. package/button/styled-components.js.flow +4 -1
  5. package/card/styled-components.js +0 -1
  6. package/card/styled-components.js.flow +0 -1
  7. package/combobox/combobox.js +5 -1
  8. package/combobox/combobox.js.flow +4 -0
  9. package/combobox/index.d.ts +6 -3
  10. package/data-table/column-datetime.js +2 -0
  11. package/data-table/column-datetime.js.flow +2 -0
  12. package/datepicker/calendar-header.js +255 -109
  13. package/datepicker/calendar-header.js.flow +282 -145
  14. package/datepicker/calendar.js +6 -1
  15. package/datepicker/calendar.js.flow +5 -1
  16. package/datepicker/constants.js +9 -2
  17. package/datepicker/constants.js.flow +7 -0
  18. package/datepicker/datepicker.js +135 -73
  19. package/datepicker/datepicker.js.flow +161 -62
  20. package/datepicker/day.js +2 -0
  21. package/datepicker/day.js.flow +2 -0
  22. package/datepicker/index.d.ts +8 -0
  23. package/datepicker/month.js +4 -0
  24. package/datepicker/month.js.flow +3 -0
  25. package/datepicker/styled-components.js +116 -56
  26. package/datepicker/styled-components.js.flow +101 -36
  27. package/datepicker/types.js.flow +18 -1
  28. package/datepicker/utils/calendar-header-helpers.js +51 -0
  29. package/datepicker/utils/calendar-header-helpers.js.flow +53 -0
  30. package/datepicker/utils/date-helpers.js +1 -1
  31. package/datepicker/utils/date-helpers.js.flow +1 -1
  32. package/datepicker/week.js +1 -0
  33. package/datepicker/week.js.flow +1 -0
  34. package/dnd-list/index.js.flow +2 -1
  35. package/dnd-list/list.js +1 -2
  36. package/dnd-list/list.js.flow +1 -1
  37. package/dnd-list/styled-components.js +1 -1
  38. package/dnd-list/styled-components.js.flow +1 -0
  39. package/drawer/drawer.js +2 -1
  40. package/drawer/drawer.js.flow +1 -1
  41. package/es/app-nav-bar/user-menu.js +1 -0
  42. package/es/button/styled-components.js +1 -1
  43. package/es/card/styled-components.js +0 -1
  44. package/es/combobox/combobox.js +5 -1
  45. package/es/data-table/column-datetime.js +2 -0
  46. package/es/datepicker/calendar-header.js +204 -93
  47. package/es/datepicker/calendar.js +7 -2
  48. package/es/datepicker/constants.js +6 -1
  49. package/es/datepicker/datepicker.js +70 -42
  50. package/es/datepicker/day.js +2 -0
  51. package/es/datepicker/month.js +3 -0
  52. package/es/datepicker/styled-components.js +98 -37
  53. package/es/datepicker/types.js +1 -1
  54. package/es/datepicker/utils/calendar-header-helpers.js +34 -0
  55. package/es/datepicker/utils/date-helpers.js +1 -1
  56. package/es/datepicker/week.js +1 -0
  57. package/es/dnd-list/index.js +2 -1
  58. package/es/dnd-list/list.js +1 -2
  59. package/es/dnd-list/styled-components.js +1 -0
  60. package/es/drawer/drawer.js +2 -1
  61. package/es/helper/helper.js +1 -0
  62. package/es/layer/layer.js +8 -0
  63. package/es/menu/maybe-child-menu.js +1 -0
  64. package/es/popover/popover.js +6 -5
  65. package/es/popover/stateful-container.js +8 -2
  66. package/es/rating/emoticon-rating.js +3 -1
  67. package/es/rating/star-rating.js +3 -1
  68. package/es/select/select-component.js +5 -5
  69. package/es/select/styled-components.js +34 -4
  70. package/es/snackbar/snackbar-context.js +16 -4
  71. package/es/table-semantic/styled-components.js +6 -4
  72. package/es/table-semantic/table-builder.js +3 -0
  73. package/es/themes/dark-theme/color-component-tokens.js +1 -1
  74. package/es/themes/light-theme/color-component-tokens.js +9 -9
  75. package/es/themes/shared/lighting.js +5 -1
  76. package/es/timepicker/timepicker.js +16 -11
  77. package/es/tooltip/styled-components.js +8 -0
  78. package/es/tooltip/tooltip.js +1 -0
  79. package/esm/app-nav-bar/user-menu.js +1 -0
  80. package/esm/button/styled-components.js +1 -1
  81. package/esm/card/styled-components.js +0 -1
  82. package/esm/combobox/combobox.js +5 -1
  83. package/esm/data-table/column-datetime.js +2 -0
  84. package/esm/datepicker/calendar-header.js +255 -110
  85. package/esm/datepicker/calendar.js +7 -2
  86. package/esm/datepicker/constants.js +6 -1
  87. package/esm/datepicker/datepicker.js +136 -74
  88. package/esm/datepicker/day.js +2 -0
  89. package/esm/datepicker/month.js +3 -0
  90. package/esm/datepicker/styled-components.js +112 -55
  91. package/esm/datepicker/types.js +1 -1
  92. package/esm/datepicker/utils/calendar-header-helpers.js +45 -0
  93. package/esm/datepicker/utils/date-helpers.js +1 -1
  94. package/esm/datepicker/week.js +1 -0
  95. package/esm/dnd-list/index.js +2 -1
  96. package/esm/dnd-list/list.js +1 -2
  97. package/esm/dnd-list/styled-components.js +1 -1
  98. package/esm/drawer/drawer.js +2 -1
  99. package/esm/helper/helper.js +1 -0
  100. package/esm/layer/layer.js +8 -0
  101. package/esm/menu/maybe-child-menu.js +1 -0
  102. package/esm/popover/popover.js +6 -5
  103. package/esm/popover/stateful-container.js +8 -2
  104. package/esm/rating/emoticon-rating.js +2 -2
  105. package/esm/rating/star-rating.js +2 -2
  106. package/esm/select/select-component.js +5 -5
  107. package/esm/select/styled-components.js +28 -4
  108. package/esm/snackbar/snackbar-context.js +16 -4
  109. package/esm/table-semantic/styled-components.js +6 -4
  110. package/esm/table-semantic/table-builder.js +3 -0
  111. package/esm/themes/dark-theme/color-component-tokens.js +1 -1
  112. package/esm/themes/light-theme/color-component-tokens.js +9 -9
  113. package/esm/themes/shared/lighting.js +5 -1
  114. package/esm/timepicker/timepicker.js +17 -11
  115. package/esm/tooltip/styled-components.js +8 -0
  116. package/esm/tooltip/tooltip.js +1 -0
  117. package/helper/helper.js +1 -0
  118. package/helper/helper.js.flow +1 -0
  119. package/layer/layer.js +8 -0
  120. package/layer/layer.js.flow +9 -0
  121. package/link/index.d.ts +1 -0
  122. package/map-marker/index.d.ts +6 -5
  123. package/menu/index.d.ts +7 -0
  124. package/menu/maybe-child-menu.js +1 -0
  125. package/menu/maybe-child-menu.js.flow +1 -0
  126. package/menu/types.js.flow +12 -0
  127. package/modal/index.d.ts +1 -1
  128. package/modal/types.js.flow +4 -1
  129. package/package.json +4 -3
  130. package/popover/index.d.ts +2 -1
  131. package/popover/popover.js +6 -5
  132. package/popover/popover.js.flow +11 -4
  133. package/popover/stateful-container.js +8 -2
  134. package/popover/stateful-container.js.flow +5 -0
  135. package/popover/types.js.flow +6 -1
  136. package/rating/emoticon-rating.js +2 -2
  137. package/rating/emoticon-rating.js.flow +4 -1
  138. package/rating/star-rating.js +2 -2
  139. package/rating/star-rating.js.flow +4 -1
  140. package/select/select-component.js +5 -5
  141. package/select/select-component.js.flow +5 -5
  142. package/select/styled-components.js +28 -4
  143. package/select/styled-components.js.flow +30 -2
  144. package/snackbar/index.d.ts +21 -16
  145. package/snackbar/snackbar-context.js +15 -4
  146. package/snackbar/snackbar-context.js.flow +15 -3
  147. package/table-semantic/styled-components.js +6 -4
  148. package/table-semantic/styled-components.js.flow +6 -4
  149. package/table-semantic/table-builder.js +3 -0
  150. package/table-semantic/table-builder.js.flow +3 -0
  151. package/themes/dark-theme/color-component-tokens.js +1 -1
  152. package/themes/dark-theme/color-component-tokens.js.flow +1 -1
  153. package/themes/light-theme/color-component-tokens.js +9 -9
  154. package/themes/light-theme/color-component-tokens.js.flow +9 -9
  155. package/themes/shared/lighting.js +5 -1
  156. package/themes/shared/lighting.js.flow +4 -0
  157. package/themes/types.js.flow +4 -0
  158. package/timepicker/index.d.ts +1 -0
  159. package/timepicker/timepicker.js +17 -11
  160. package/timepicker/timepicker.js.flow +31 -12
  161. package/timepicker/types.js.flow +10 -0
  162. package/tooltip/styled-components.js +8 -0
  163. package/tooltip/styled-components.js.flow +8 -0
  164. package/tooltip/tooltip.js +1 -0
  165. package/tooltip/tooltip.js.flow +6 -1
@@ -148,6 +148,9 @@ export interface DatepickerOverrides<T> {
148
148
  Input?: Override<T>;
149
149
  InputWrapper?: Override<T>;
150
150
  Popover?: Override<T>;
151
+ StartDate?: Override<T>;
152
+ EndDate?: Override<T>;
153
+ InputLabel?: Override<T>;
151
154
  }
152
155
  export type DatepickerProps = CalendarProps & {
153
156
  'aria-label'?: string;
@@ -166,6 +169,10 @@ export type DatepickerProps = CalendarProps & {
166
169
  mask?: string | null;
167
170
  mountNode?: HTMLElement;
168
171
  onClose?: () => any;
172
+ onOpen?: () => any;
173
+ separateRangeInputs?: boolean;
174
+ startDateLabel?: string;
175
+ endDateLabel?: string;
169
176
  };
170
177
  export interface DatepickerState {
171
178
  calendarFocused: boolean;
@@ -242,6 +249,7 @@ export type SharedStylePropsT = {
242
249
  $isHeader: boolean;
243
250
  $isHighlighted: boolean;
244
251
  $isHovered: boolean;
252
+ $month: number;
245
253
  $outsideMonth: boolean;
246
254
  $pseudoHighlighted: boolean;
247
255
  $pseudoSelected: boolean;
@@ -19,6 +19,8 @@ var _dateHelpers = _interopRequireDefault(require("./utils/date-helpers.js"));
19
19
 
20
20
  var _overrides = require("../helpers/overrides.js");
21
21
 
22
+ var _constants = require("./constants.js");
23
+
22
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
25
 
24
26
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
@@ -61,6 +63,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
61
63
 
62
64
  var defaultProps = {
63
65
  dateLabel: null,
66
+ density: _constants.DENSITY.high,
64
67
  excludeDates: null,
65
68
  filterDate: null,
66
69
  highlightDates: null,
@@ -120,6 +123,7 @@ var CalendarMonth = /*#__PURE__*/function (_React$Component) {
120
123
  adapter: _this.props.adapter,
121
124
  date: currentWeekStart,
122
125
  dateLabel: _this.props.dateLabel,
126
+ density: _this.props.density,
123
127
  excludeDates: _this.props.excludeDates,
124
128
  filterDate: _this.props.filterDate,
125
129
  highlightedDate: _this.props.highlightedDate,
@@ -12,9 +12,11 @@ import dateFnsAdapter from './utils/date-fns-adapter.js';
12
12
  import DateHelpers from './utils/date-helpers.js';
13
13
  import {getOverrides} from '../helpers/overrides.js';
14
14
  import type {MonthPropsT} from './types.js';
15
+ import {DENSITY} from './constants.js';
15
16
 
16
17
  const defaultProps = {
17
18
  dateLabel: null,
19
+ density: DENSITY.high,
18
20
  excludeDates: null,
19
21
  filterDate: null,
20
22
  highlightDates: null,
@@ -81,6 +83,7 @@ export default class CalendarMonth<T = Date> extends React.Component<
81
83
  adapter={this.props.adapter}
82
84
  date={currentWeekStart}
83
85
  dateLabel={this.props.dateLabel}
86
+ density={this.props.density}
84
87
  excludeDates={this.props.excludeDates}
85
88
  filterDate={this.props.filterDate}
86
89
  highlightedDate={this.props.highlightedDate}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.StyledWeekdayHeader = exports.StyledDayLabel = exports.StyledDay = exports.StyledWeek = exports.StyledMonth = exports.StyledNextButton = exports.StyledPrevButton = exports.StyledMonthYearSelectIconContainer = exports.StyledMonthYearSelectButton = exports.StyledMonthHeader = exports.StyledCalendarHeader = exports.StyledSelectorContainer = exports.StyledCalendarContainer = exports.StyledMonthContainer = exports.StyledRoot = exports.StyledInputWrapper = void 0;
6
+ exports.StyledWeekdayHeader = exports.StyledDayLabel = exports.StyledDay = exports.StyledWeek = exports.StyledMonth = exports.StyledNextButton = exports.StyledPrevButton = exports.StyledMonthYearSelectIconContainer = exports.StyledMonthYearSelectButton = exports.StyledMonthHeader = exports.StyledCalendarHeader = exports.StyledSelectorContainer = exports.StyledCalendarContainer = exports.StyledMonthContainer = exports.StyledRoot = exports.StyledEndDate = exports.StyledStartDate = exports.StyledInputLabel = exports.StyledInputWrapper = void 0;
7
7
 
8
8
  var _index = require("../styles/index.js");
9
9
 
@@ -22,7 +22,36 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
22
22
  /**
23
23
  * Main component container element
24
24
  */
25
- var StyledInputWrapper = (0, _index.styled)('div', function () {
25
+ var StyledInputWrapper = (0, _index.styled)('div', function (props) {
26
+ var $separateRangeInputs = props.$separateRangeInputs;
27
+ return _objectSpread({
28
+ width: '100%'
29
+ }, $separateRangeInputs ? {
30
+ display: 'flex',
31
+ justifyContent: 'center'
32
+ } : {});
33
+ });
34
+ exports.StyledInputWrapper = StyledInputWrapper;
35
+ StyledInputWrapper.displayName = "StyledInputWrapper";
36
+ var StyledInputLabel = (0, _index.styled)('div', function (_ref) {
37
+ var $theme = _ref.$theme;
38
+ return _objectSpread(_objectSpread({}, $theme.typography.LabelMedium), {}, {
39
+ marginBottom: $theme.sizing.scale300
40
+ });
41
+ });
42
+ exports.StyledInputLabel = StyledInputLabel;
43
+ StyledInputLabel.displayName = "StyledInputLabel";
44
+ var StyledStartDate = (0, _index.styled)('div', function (_ref2) {
45
+ var $theme = _ref2.$theme;
46
+ return {
47
+ width: '100%',
48
+ marginRight: $theme.sizing.scale300
49
+ };
50
+ });
51
+ exports.StyledStartDate = StyledStartDate;
52
+ StyledStartDate.displayName = "StyledStartDate";
53
+ var StyledEndDate = (0, _index.styled)('div', function (_ref3) {
54
+ var $theme = _ref3.$theme;
26
55
  return {
27
56
  width: '100%'
28
57
  };
@@ -31,8 +60,8 @@ var StyledInputWrapper = (0, _index.styled)('div', function () {
31
60
  * Main component container element
32
61
  */
33
62
 
34
- exports.StyledInputWrapper = StyledInputWrapper;
35
- StyledInputWrapper.displayName = "StyledInputWrapper";
63
+ exports.StyledEndDate = StyledEndDate;
64
+ StyledEndDate.displayName = "StyledEndDate";
36
65
  var StyledRoot = (0, _index.styled)('div', function (props) {
37
66
  var _props$$theme = props.$theme,
38
67
  typography = _props$$theme.typography,
@@ -61,18 +90,19 @@ var StyledMonthContainer = (0, _index.styled)('div', function (props) {
61
90
  exports.StyledMonthContainer = StyledMonthContainer;
62
91
  StyledMonthContainer.displayName = "StyledMonthContainer";
63
92
  var StyledCalendarContainer = (0, _index.styled)('div', function (props) {
64
- var sizing = props.$theme.sizing;
93
+ var sizing = props.$theme.sizing,
94
+ $density = props.$density;
65
95
  return {
66
- paddingTop: sizing.scale400,
67
- paddingBottom: sizing.scale500,
68
- paddingLeft: sizing.scale600,
69
- paddingRight: sizing.scale600
96
+ paddingTop: sizing.scale300,
97
+ paddingBottom: $density === _constants.DENSITY.high ? sizing.scale400 : sizing.scale300,
98
+ paddingLeft: sizing.scale500,
99
+ paddingRight: sizing.scale500
70
100
  };
71
101
  });
72
102
  exports.StyledCalendarContainer = StyledCalendarContainer;
73
103
  StyledCalendarContainer.displayName = "StyledCalendarContainer";
74
- var StyledSelectorContainer = (0, _index.styled)('div', function (_ref) {
75
- var $theme = _ref.$theme;
104
+ var StyledSelectorContainer = (0, _index.styled)('div', function (_ref4) {
105
+ var $theme = _ref4.$theme;
76
106
  var textAlign = $theme.direction === 'rtl' ? 'right' : 'left';
77
107
  return {
78
108
  marginBottom: $theme.sizing.scale600,
@@ -85,16 +115,18 @@ exports.StyledSelectorContainer = StyledSelectorContainer;
85
115
  StyledSelectorContainer.displayName = "StyledSelectorContainer";
86
116
  var StyledCalendarHeader = (0, _index.styled)('div', function (props) {
87
117
  var _props$$theme2 = props.$theme,
118
+ typography = _props$$theme2.typography,
88
119
  borders = _props$$theme2.borders,
89
120
  colors = _props$$theme2.colors,
90
- sizing = _props$$theme2.sizing;
91
- return {
121
+ sizing = _props$$theme2.sizing,
122
+ $density = props.$density;
123
+ return _objectSpread(_objectSpread({}, $density === _constants.DENSITY.high ? typography.LabelMedium : typography.LabelLarge), {}, {
92
124
  color: colors.calendarHeaderForeground,
93
125
  display: 'flex',
94
126
  justifyContent: 'space-between',
95
127
  alignItems: 'center',
96
- paddingTop: sizing.scale500,
97
- paddingBottom: sizing.scale500,
128
+ paddingTop: sizing.scale600,
129
+ paddingBottom: sizing.scale300,
98
130
  paddingLeft: sizing.scale600,
99
131
  paddingRight: sizing.scale600,
100
132
  backgroundColor: colors.calendarHeaderBackground,
@@ -103,8 +135,8 @@ var StyledCalendarHeader = (0, _index.styled)('div', function (props) {
103
135
  borderBottomRightRadius: 0,
104
136
  borderBottomLeftRadius: 0,
105
137
  // account for the left/right arrow heights
106
- minHeight: "calc(".concat(sizing.scale800, " + ").concat(sizing.scale0, ")")
107
- };
138
+ minHeight: $density === _constants.DENSITY.high ? "calc(".concat(sizing.scale800, " + ").concat(sizing.scale0, ")") : sizing.scale950
139
+ });
108
140
  });
109
141
  exports.StyledCalendarHeader = StyledCalendarHeader;
110
142
  StyledCalendarHeader.displayName = "StyledCalendarHeader";
@@ -118,19 +150,24 @@ var StyledMonthHeader = (0, _index.styled)('div', function (props) {
118
150
  exports.StyledMonthHeader = StyledMonthHeader;
119
151
  StyledMonthHeader.displayName = "StyledMonthHeader";
120
152
  var StyledMonthYearSelectButton = (0, _index.styled)('button', function (props) {
121
- return _objectSpread(_objectSpread({}, props.$theme.typography.font200), {}, {
153
+ var _props$$theme3 = props.$theme,
154
+ typography = _props$$theme3.typography,
155
+ colors = _props$$theme3.colors,
156
+ $isFocusVisible = props.$isFocusVisible,
157
+ $density = props.$density;
158
+ return _objectSpread(_objectSpread({}, $density === _constants.DENSITY.high ? typography.LabelMedium : typography.LabelLarge), {}, {
122
159
  alignItems: 'center',
123
160
  backgroundColor: 'transparent',
124
161
  borderLeftWidth: 0,
125
162
  borderRightWidth: 0,
126
163
  borderTopWidth: 0,
127
164
  borderBottomWidth: 0,
128
- color: props.$theme.colors.calendarHeaderForeground,
165
+ color: colors.calendarHeaderForeground,
129
166
  cursor: 'pointer',
130
167
  display: 'flex',
131
168
  outline: 'none',
132
169
  ':focus': {
133
- boxShadow: props.$isFocusVisible ? "0 0 0 3px ".concat(props.$theme.colors.accent) : 'none'
170
+ boxShadow: $isFocusVisible ? "0 0 0 3px ".concat(colors.accent) : 'none'
134
171
  }
135
172
  });
136
173
  });
@@ -146,12 +183,13 @@ var StyledMonthYearSelectIconContainer = (0, _index.styled)('span', function (pr
146
183
  exports.StyledMonthYearSelectIconContainer = StyledMonthYearSelectIconContainer;
147
184
  StyledMonthYearSelectIconContainer.displayName = "StyledMonthYearSelectIconContainer";
148
185
 
149
- function getArrowBtnStyle(_ref3) {
150
- var $theme = _ref3.$theme,
151
- $disabled = _ref3.$disabled,
152
- $isFocusVisible = _ref3.$isFocusVisible;
186
+ function getArrowBtnStyle(_ref6) {
187
+ var $theme = _ref6.$theme,
188
+ $disabled = _ref6.$disabled,
189
+ $isFocusVisible = _ref6.$isFocusVisible;
153
190
  return {
154
191
  boxSizing: 'border-box',
192
+ display: 'flex',
155
193
  color: $disabled ? $theme.colors.calendarHeaderForegroundDisabled : $theme.colors.calendarHeaderForeground,
156
194
  cursor: $disabled ? 'default' : 'pointer',
157
195
  backgroundColor: 'transparent',
@@ -163,8 +201,6 @@ function getArrowBtnStyle(_ref3) {
163
201
  paddingBottom: '0',
164
202
  paddingLeft: '0',
165
203
  paddingRight: '0',
166
- marginLeft: '6px',
167
- marginRight: '6px',
168
204
  marginBottom: 0,
169
205
  marginTop: 0,
170
206
  outline: 'none',
@@ -192,23 +228,23 @@ var StyledWeek = (0, _index.styled)('div', function (props) {
192
228
  return {
193
229
  whiteSpace: 'nowrap',
194
230
  display: 'flex',
195
- marginBottom: sizing.scale100
231
+ marginBottom: sizing.scale0
196
232
  };
197
233
  });
198
234
  exports.StyledWeek = StyledWeek;
199
235
  StyledWeek.displayName = "StyledWeek";
200
236
 
201
237
  function generateDayStyles(defaultCode, defaultStyle) {
202
- var _ref4;
238
+ var _ref7;
203
239
 
204
240
  var codeForSM = defaultCode.substr(0, 12) + '1' + defaultCode.substr(12 + 1);
205
241
  var codeForEM = defaultCode.substr(0, 13) + '1' + defaultCode.substr(13 + 1);
206
- return _ref4 = {}, _defineProperty(_ref4, defaultCode, defaultStyle), _defineProperty(_ref4, codeForSM, defaultStyle), _defineProperty(_ref4, codeForEM, defaultStyle), _ref4;
242
+ return _ref7 = {}, _defineProperty(_ref7, defaultCode, defaultStyle), _defineProperty(_ref7, codeForSM, defaultStyle), _defineProperty(_ref7, codeForEM, defaultStyle), _ref7;
207
243
  } // eslint-disable-next-line flowtype/no-weak-types
208
244
 
209
245
 
210
- function getDayStyles(code, _ref5) {
211
- var colors = _ref5.colors;
246
+ function getDayStyles(code, _ref8) {
247
+ var colors = _ref8.colors;
212
248
  var undefinedDayStyle = {
213
249
  ':before': {
214
250
  content: null
@@ -411,24 +447,43 @@ var StyledDay = (0, _index.styled)('div', function (props) {
411
447
  $outsideMonth = props.$outsideMonth,
412
448
  $outsideMonthWithinRange = props.$outsideMonthWithinRange,
413
449
  $hasDateLabel = props.$hasDateLabel,
414
- _props$$theme3 = props.$theme,
415
- colors = _props$$theme3.colors,
416
- sizing = _props$$theme3.sizing;
450
+ $density = props.$density,
451
+ _props$$theme4 = props.$theme,
452
+ colors = _props$$theme4.colors,
453
+ typography = _props$$theme4.typography,
454
+ sizing = _props$$theme4.sizing;
417
455
  var code = (0, _dayState.default)(props);
418
- return _objectSpread(_objectSpread({
456
+ var height;
457
+
458
+ if ($hasDateLabel) {
459
+ if ($density === _constants.DENSITY.high) {
460
+ height = '60px';
461
+ } else {
462
+ height = '70px';
463
+ }
464
+ } else {
465
+ if ($density === _constants.DENSITY.high) {
466
+ height = '40px';
467
+ } else {
468
+ height = '48px';
469
+ }
470
+ }
471
+
472
+ return _objectSpread(_objectSpread(_objectSpread({}, $density === _constants.DENSITY.high ? typography.ParagraphSmall : typography.ParagraphMedium), {}, {
419
473
  boxSizing: 'border-box',
420
474
  position: 'relative',
421
475
  cursor: $disabled || !$peekNextMonth && $outsideMonth ? 'default' : 'pointer',
422
476
  color: colors.calendarForeground,
423
477
  display: 'inline-block',
424
- width: sizing.scale1000,
425
- height: $hasDateLabel ? '60px' : sizing.scale1000,
426
- lineHeight: sizing.scale800,
478
+ width: $density === _constants.DENSITY.high ? '42px' : '50px',
479
+ height: height,
480
+ // setting lineHeight equal to the contents height to vertically center the text
481
+ lineHeight: $density === _constants.DENSITY.high ? sizing.scale700 : sizing.scale900,
427
482
  textAlign: 'center',
428
483
  paddingTop: sizing.scale300,
429
484
  paddingBottom: sizing.scale300,
430
- paddingLeft: sizing.scale200,
431
- paddingRight: sizing.scale200,
485
+ paddingLeft: sizing.scale300,
486
+ paddingRight: sizing.scale300,
432
487
  marginTop: 0,
433
488
  marginBottom: 0,
434
489
  marginLeft: 0,
@@ -449,10 +504,10 @@ var StyledDay = (0, _index.styled)('div', function (props) {
449
504
  display: 'inline-block',
450
505
  boxShadow: $isFocusVisible ? "0 0 0 3px ".concat(colors.accent) : 'none',
451
506
  backgroundColor: $selected ? colors.calendarDayBackgroundSelectedHighlighted : $pseudoSelected && $isHighlighted ? colors.calendarDayBackgroundPseudoSelectedHighlighted : colors.calendarBackground,
452
- height: '100%',
507
+ height: $hasDateLabel ? '100%' : $density === _constants.DENSITY.high ? '42px' : '50px',
453
508
  width: '100%',
454
509
  position: 'absolute',
455
- top: 0,
510
+ top: $hasDateLabel ? 0 : '-1px',
456
511
  left: 0,
457
512
  paddingTop: sizing.scale200,
458
513
  paddingBottom: sizing.scale200,
@@ -468,10 +523,10 @@ var StyledDay = (0, _index.styled)('div', function (props) {
468
523
  borderBottomColor: colors.borderSelected,
469
524
  borderRightColor: colors.borderSelected,
470
525
  borderLeftColor: colors.borderSelected,
471
- borderTopLeftRadius: $hasDateLabel ? sizing.scale700 : '100%',
472
- borderTopRightRadius: $hasDateLabel ? sizing.scale700 : '100%',
473
- borderBottomLeftRadius: $hasDateLabel ? sizing.scale700 : '100%',
474
- borderBottomRightRadius: $hasDateLabel ? sizing.scale700 : '100%'
526
+ borderTopLeftRadius: $hasDateLabel ? sizing.scale800 : '100%',
527
+ borderTopRightRadius: $hasDateLabel ? sizing.scale800 : '100%',
528
+ borderBottomLeftRadius: $hasDateLabel ? sizing.scale800 : '100%',
529
+ borderBottomRightRadius: $hasDateLabel ? sizing.scale800 : '100%'
475
530
  }, getDayStyles(code, props.$theme)[':after'] || {}), $outsideMonthWithinRange ? {
476
531
  content: null
477
532
  } : {})
@@ -514,9 +569,9 @@ var StyledDay = (0, _index.styled)('div', function (props) {
514
569
  exports.StyledDay = StyledDay;
515
570
  StyledDay.displayName = "StyledDay";
516
571
  var StyledDayLabel = (0, _index.styled)('div', function (props) {
517
- var _props$$theme4 = props.$theme,
518
- typography = _props$$theme4.typography,
519
- colors = _props$$theme4.colors,
572
+ var _props$$theme5 = props.$theme,
573
+ typography = _props$$theme5.typography,
574
+ colors = _props$$theme5.colors,
520
575
  $selected = props.$selected;
521
576
  return _objectSpread(_objectSpread({}, typography.ParagraphXSmall), {}, {
522
577
  color: $selected ? colors.contentInverseTertiary : colors.contentTertiary
@@ -525,16 +580,22 @@ var StyledDayLabel = (0, _index.styled)('div', function (props) {
525
580
  exports.StyledDayLabel = StyledDayLabel;
526
581
  StyledDayLabel.displayName = "StyledDayLabel";
527
582
  var StyledWeekdayHeader = (0, _index.styled)('div', function (props) {
528
- var sizing = props.$theme.sizing;
529
- return {
583
+ var _props$$theme6 = props.$theme,
584
+ typography = _props$$theme6.typography,
585
+ colors = _props$$theme6.colors,
586
+ sizing = _props$$theme6.sizing,
587
+ $density = props.$density;
588
+ return _objectSpread(_objectSpread({}, typography.LabelMedium), {}, {
589
+ color: colors.contentTertiary,
530
590
  boxSizing: 'border-box',
531
591
  position: 'relative',
532
592
  cursor: 'default',
533
593
  display: 'inline-block',
534
- width: sizing.scale1000,
535
- height: sizing.scale1000,
536
- lineHeight: sizing.scale800,
594
+ width: $density === _constants.DENSITY.high ? '42px' : '50px',
595
+ height: $density === _constants.DENSITY.high ? '40px' : '48px',
537
596
  textAlign: 'center',
597
+ // setting lineHeight equal to the contents height to vertically center the text
598
+ lineHeight: sizing.scale900,
538
599
  paddingTop: sizing.scale300,
539
600
  paddingBottom: sizing.scale300,
540
601
  paddingLeft: sizing.scale200,
@@ -543,9 +604,8 @@ var StyledWeekdayHeader = (0, _index.styled)('div', function (props) {
543
604
  marginBottom: 0,
544
605
  marginLeft: 0,
545
606
  marginRight: 0,
546
- color: 'inherit',
547
607
  backgroundColor: 'transparent'
548
- };
608
+ });
549
609
  });
550
610
  exports.StyledWeekdayHeader = StyledWeekdayHeader;
551
611
  StyledWeekdayHeader.displayName = "StyledWeekdayHeader";
@@ -8,12 +8,36 @@ LICENSE file in the root directory of this source tree.
8
8
  import {styled} from '../styles/index.js';
9
9
  import getDayStateCode from './utils/day-state.js';
10
10
  import type {SharedStylePropsT, CalendarPropsT} from './types.js';
11
- import {ORIENTATION} from './constants.js';
11
+ import {ORIENTATION, DENSITY} from './constants.js';
12
12
 
13
13
  /**
14
14
  * Main component container element
15
15
  */
16
- export const StyledInputWrapper = styled<SharedStylePropsT>('div', () => ({
16
+ export const StyledInputWrapper = styled<{
17
+ ...SharedStylePropsT,
18
+ $separateRangeInputs: boolean,
19
+ }>('div', props => {
20
+ const {$separateRangeInputs} = props;
21
+
22
+ return {
23
+ width: '100%',
24
+ ...($separateRangeInputs
25
+ ? {display: 'flex', justifyContent: 'center'}
26
+ : {}),
27
+ };
28
+ });
29
+
30
+ export const StyledInputLabel = styled<{}>('div', ({$theme}) => ({
31
+ ...$theme.typography.LabelMedium,
32
+ marginBottom: $theme.sizing.scale300,
33
+ }));
34
+
35
+ export const StyledStartDate = styled<{}>('div', ({$theme}) => ({
36
+ width: '100%',
37
+ marginRight: $theme.sizing.scale300,
38
+ }));
39
+
40
+ export const StyledEndDate = styled<{}>('div', ({$theme}) => ({
17
41
  width: '100%',
18
42
  }));
19
43
 
@@ -52,12 +76,14 @@ export const StyledCalendarContainer = styled<SharedStylePropsT>(
52
76
  props => {
53
77
  const {
54
78
  $theme: {sizing},
79
+ $density,
55
80
  } = props;
56
81
  return {
57
- paddingTop: sizing.scale400,
58
- paddingBottom: sizing.scale500,
59
- paddingLeft: sizing.scale600,
60
- paddingRight: sizing.scale600,
82
+ paddingTop: sizing.scale300,
83
+ paddingBottom:
84
+ $density === DENSITY.high ? sizing.scale400 : sizing.scale300,
85
+ paddingLeft: sizing.scale500,
86
+ paddingRight: sizing.scale500,
61
87
  };
62
88
  },
63
89
  );
@@ -77,15 +103,19 @@ export const StyledSelectorContainer = styled<SharedStylePropsT>(
77
103
 
78
104
  export const StyledCalendarHeader = styled<SharedStylePropsT>('div', props => {
79
105
  const {
80
- $theme: {borders, colors, sizing},
106
+ $theme: {typography, borders, colors, sizing},
107
+ $density,
81
108
  } = props;
82
109
  return {
110
+ ...($density === DENSITY.high
111
+ ? typography.LabelMedium
112
+ : typography.LabelLarge),
83
113
  color: colors.calendarHeaderForeground,
84
114
  display: 'flex',
85
115
  justifyContent: 'space-between',
86
116
  alignItems: 'center',
87
- paddingTop: sizing.scale500,
88
- paddingBottom: sizing.scale500,
117
+ paddingTop: sizing.scale600,
118
+ paddingBottom: sizing.scale300,
89
119
  paddingLeft: sizing.scale600,
90
120
  paddingRight: sizing.scale600,
91
121
  backgroundColor: colors.calendarHeaderBackground,
@@ -94,7 +124,10 @@ export const StyledCalendarHeader = styled<SharedStylePropsT>('div', props => {
94
124
  borderBottomRightRadius: 0,
95
125
  borderBottomLeftRadius: 0,
96
126
  // account for the left/right arrow heights
97
- minHeight: `calc(${sizing.scale800} + ${sizing.scale0})`,
127
+ minHeight:
128
+ $density === DENSITY.high
129
+ ? `calc(${sizing.scale800} + ${sizing.scale0})`
130
+ : sizing.scale950,
98
131
  };
99
132
  });
100
133
 
@@ -106,25 +139,30 @@ export const StyledMonthHeader = styled<SharedStylePropsT>('div', props => {
106
139
  };
107
140
  });
108
141
 
109
- export const StyledMonthYearSelectButton = styled<{$isFocusVisible: boolean}>(
142
+ export const StyledMonthYearSelectButton = styled<SharedStylePropsT>(
110
143
  'button',
111
144
  props => {
145
+ const {
146
+ $theme: {typography, colors},
147
+ $isFocusVisible,
148
+ $density,
149
+ } = props;
112
150
  return {
113
- ...props.$theme.typography.font200,
151
+ ...($density === DENSITY.high
152
+ ? typography.LabelMedium
153
+ : typography.LabelLarge),
114
154
  alignItems: 'center',
115
155
  backgroundColor: 'transparent',
116
156
  borderLeftWidth: 0,
117
157
  borderRightWidth: 0,
118
158
  borderTopWidth: 0,
119
159
  borderBottomWidth: 0,
120
- color: props.$theme.colors.calendarHeaderForeground,
160
+ color: colors.calendarHeaderForeground,
121
161
  cursor: 'pointer',
122
162
  display: 'flex',
123
163
  outline: 'none',
124
164
  ':focus': {
125
- boxShadow: props.$isFocusVisible
126
- ? `0 0 0 3px ${props.$theme.colors.accent}`
127
- : 'none',
165
+ boxShadow: $isFocusVisible ? `0 0 0 3px ${colors.accent}` : 'none',
128
166
  },
129
167
  };
130
168
  },
@@ -143,6 +181,7 @@ export const StyledMonthYearSelectIconContainer = styled<{}>('span', props => {
143
181
  function getArrowBtnStyle({$theme, $disabled, $isFocusVisible}) {
144
182
  return {
145
183
  boxSizing: 'border-box',
184
+ display: 'flex',
146
185
  color: $disabled
147
186
  ? $theme.colors.calendarHeaderForegroundDisabled
148
187
  : $theme.colors.calendarHeaderForeground,
@@ -156,8 +195,6 @@ function getArrowBtnStyle({$theme, $disabled, $isFocusVisible}) {
156
195
  paddingBottom: '0',
157
196
  paddingLeft: '0',
158
197
  paddingRight: '0',
159
- marginLeft: '6px',
160
- marginRight: '6px',
161
198
  marginBottom: 0,
162
199
  marginTop: 0,
163
200
  outline: 'none',
@@ -197,7 +234,7 @@ export const StyledWeek = styled<SharedStylePropsT>('div', props => {
197
234
  return {
198
235
  whiteSpace: 'nowrap',
199
236
  display: 'flex',
200
- marginBottom: sizing.scale100,
237
+ marginBottom: sizing.scale0,
201
238
  };
202
239
  });
203
240
 
@@ -402,24 +439,45 @@ export const StyledDay = styled<SharedStylePropsT>('div', props => {
402
439
  $outsideMonth,
403
440
  $outsideMonthWithinRange,
404
441
  $hasDateLabel,
405
- $theme: {colors, sizing},
442
+ $density,
443
+ $theme: {colors, typography, sizing},
406
444
  } = props;
407
445
  const code = getDayStateCode(props);
446
+
447
+ let height;
448
+ if ($hasDateLabel) {
449
+ if ($density === DENSITY.high) {
450
+ height = '60px';
451
+ } else {
452
+ height = '70px';
453
+ }
454
+ } else {
455
+ if ($density === DENSITY.high) {
456
+ height = '40px';
457
+ } else {
458
+ height = '48px';
459
+ }
460
+ }
461
+
408
462
  return ({
463
+ ...($density === DENSITY.high
464
+ ? typography.ParagraphSmall
465
+ : typography.ParagraphMedium),
409
466
  boxSizing: 'border-box',
410
467
  position: 'relative',
411
468
  cursor:
412
469
  $disabled || (!$peekNextMonth && $outsideMonth) ? 'default' : 'pointer',
413
470
  color: colors.calendarForeground,
414
471
  display: 'inline-block',
415
- width: sizing.scale1000,
416
- height: $hasDateLabel ? '60px' : sizing.scale1000,
417
- lineHeight: sizing.scale800,
472
+ width: $density === DENSITY.high ? '42px' : '50px',
473
+ height: height,
474
+ // setting lineHeight equal to the contents height to vertically center the text
475
+ lineHeight: $density === DENSITY.high ? sizing.scale700 : sizing.scale900,
418
476
  textAlign: 'center',
419
477
  paddingTop: sizing.scale300,
420
478
  paddingBottom: sizing.scale300,
421
- paddingLeft: sizing.scale200,
422
- paddingRight: sizing.scale200,
479
+ paddingLeft: sizing.scale300,
480
+ paddingRight: sizing.scale300,
423
481
  marginTop: 0,
424
482
  marginBottom: 0,
425
483
  marginLeft: 0,
@@ -444,10 +502,14 @@ export const StyledDay = styled<SharedStylePropsT>('div', props => {
444
502
  : $pseudoSelected && $isHighlighted
445
503
  ? colors.calendarDayBackgroundPseudoSelectedHighlighted
446
504
  : colors.calendarBackground,
447
- height: '100%',
505
+ height: $hasDateLabel
506
+ ? '100%'
507
+ : $density === DENSITY.high
508
+ ? '42px'
509
+ : '50px',
448
510
  width: '100%',
449
511
  position: 'absolute',
450
- top: 0,
512
+ top: $hasDateLabel ? 0 : '-1px',
451
513
  left: 0,
452
514
  paddingTop: sizing.scale200,
453
515
  paddingBottom: sizing.scale200,
@@ -463,10 +525,10 @@ export const StyledDay = styled<SharedStylePropsT>('div', props => {
463
525
  borderBottomColor: colors.borderSelected,
464
526
  borderRightColor: colors.borderSelected,
465
527
  borderLeftColor: colors.borderSelected,
466
- borderTopLeftRadius: $hasDateLabel ? sizing.scale700 : '100%',
467
- borderTopRightRadius: $hasDateLabel ? sizing.scale700 : '100%',
468
- borderBottomLeftRadius: $hasDateLabel ? sizing.scale700 : '100%',
469
- borderBottomRightRadius: $hasDateLabel ? sizing.scale700 : '100%',
528
+ borderTopLeftRadius: $hasDateLabel ? sizing.scale800 : '100%',
529
+ borderTopRightRadius: $hasDateLabel ? sizing.scale800 : '100%',
530
+ borderBottomLeftRadius: $hasDateLabel ? sizing.scale800 : '100%',
531
+ borderBottomRightRadius: $hasDateLabel ? sizing.scale800 : '100%',
470
532
  ...(getDayStyles(code, props.$theme)[':after'] || {}),
471
533
  ...($outsideMonthWithinRange ? {content: null} : {}),
472
534
  },
@@ -527,17 +589,21 @@ export const StyledDayLabel = styled<SharedStylePropsT>('div', props => {
527
589
 
528
590
  export const StyledWeekdayHeader = styled<SharedStylePropsT>('div', props => {
529
591
  const {
530
- $theme: {sizing},
592
+ $theme: {typography, colors, sizing},
593
+ $density,
531
594
  } = props;
532
595
  return ({
596
+ ...typography.LabelMedium,
597
+ color: colors.contentTertiary,
533
598
  boxSizing: 'border-box',
534
599
  position: 'relative',
535
600
  cursor: 'default',
536
601
  display: 'inline-block',
537
- width: sizing.scale1000,
538
- height: sizing.scale1000,
539
- lineHeight: sizing.scale800,
602
+ width: $density === DENSITY.high ? '42px' : '50px',
603
+ height: $density === DENSITY.high ? '40px' : '48px',
540
604
  textAlign: 'center',
605
+ // setting lineHeight equal to the contents height to vertically center the text
606
+ lineHeight: sizing.scale900,
541
607
  paddingTop: sizing.scale300,
542
608
  paddingBottom: sizing.scale300,
543
609
  paddingLeft: sizing.scale200,
@@ -546,7 +612,6 @@ export const StyledWeekdayHeader = styled<SharedStylePropsT>('div', props => {
546
612
  marginBottom: 0,
547
613
  marginLeft: 0,
548
614
  marginRight: 0,
549
- color: 'inherit',
550
615
  backgroundColor: 'transparent',
551
616
  }: {});
552
617
  });