baseui 0.0.0-alpha-6b3031e → 0.0.0-alpha-3a96a5e

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 (189) 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 +11 -4
  8. package/combobox/combobox.js.flow +8 -2
  9. package/combobox/index.d.ts +6 -3
  10. package/combobox/types.js.flow +2 -0
  11. package/data-table/column-datetime.js +3 -1
  12. package/data-table/column-datetime.js.flow +3 -1
  13. package/datepicker/calendar-header.js +145 -72
  14. package/datepicker/calendar-header.js.flow +124 -58
  15. package/datepicker/calendar.js +18 -7
  16. package/datepicker/calendar.js.flow +28 -13
  17. package/datepicker/constants.js +7 -2
  18. package/datepicker/constants.js.flow +5 -0
  19. package/datepicker/datepicker.js +149 -76
  20. package/datepicker/datepicker.js.flow +185 -71
  21. package/datepicker/day.js +60 -30
  22. package/datepicker/day.js.flow +105 -51
  23. package/datepicker/index.d.ts +8 -0
  24. package/datepicker/month.js +4 -0
  25. package/datepicker/month.js.flow +3 -0
  26. package/datepicker/stateful-container.js.flow +2 -1
  27. package/datepicker/styled-components.js +117 -57
  28. package/datepicker/styled-components.js.flow +105 -37
  29. package/datepicker/types.js.flow +29 -10
  30. package/datepicker/utils/calendar-header-helpers.js +8 -6
  31. package/datepicker/utils/calendar-header-helpers.js.flow +11 -9
  32. package/datepicker/utils/date-helpers.js +1 -1
  33. package/datepicker/utils/date-helpers.js.flow +1 -1
  34. package/datepicker/utils/types.js.flow +0 -6
  35. package/datepicker/week.js +1 -0
  36. package/datepicker/week.js.flow +1 -0
  37. package/dnd-list/index.js.flow +2 -1
  38. package/dnd-list/list.js +1 -2
  39. package/dnd-list/list.js.flow +1 -1
  40. package/dnd-list/styled-components.js +1 -1
  41. package/dnd-list/styled-components.js.flow +1 -0
  42. package/drawer/drawer.js +2 -1
  43. package/drawer/drawer.js.flow +1 -1
  44. package/es/app-nav-bar/user-menu.js +1 -0
  45. package/es/button/styled-components.js +1 -1
  46. package/es/card/styled-components.js +0 -1
  47. package/es/combobox/combobox.js +11 -4
  48. package/es/data-table/column-datetime.js +3 -1
  49. package/es/datepicker/calendar-header.js +111 -53
  50. package/es/datepicker/calendar.js +19 -8
  51. package/es/datepicker/constants.js +5 -1
  52. package/es/datepicker/datepicker.js +84 -46
  53. package/es/datepicker/day.js +53 -30
  54. package/es/datepicker/month.js +3 -0
  55. package/es/datepicker/styled-components.js +99 -38
  56. package/es/datepicker/types.js +1 -1
  57. package/es/datepicker/utils/calendar-header-helpers.js +4 -5
  58. package/es/datepicker/utils/date-helpers.js +1 -1
  59. package/es/datepicker/week.js +1 -0
  60. package/es/dnd-list/index.js +2 -1
  61. package/es/dnd-list/list.js +1 -2
  62. package/es/dnd-list/styled-components.js +1 -0
  63. package/es/drawer/drawer.js +2 -1
  64. package/es/helper/helper.js +1 -0
  65. package/es/layer/layer.js +8 -0
  66. package/es/menu/maybe-child-menu.js +1 -2
  67. package/es/menu/nested-menus.js +49 -3
  68. package/es/menu/stateful-container.js +13 -12
  69. package/es/popover/popover.js +8 -5
  70. package/es/popover/stateful-container.js +8 -2
  71. package/es/progress-bar/progressbar.js +10 -3
  72. package/es/rating/emoticon-rating.js +3 -1
  73. package/es/rating/star-rating.js +3 -1
  74. package/es/select/select-component.js +7 -15
  75. package/es/select/styled-components.js +34 -4
  76. package/es/snackbar/snackbar-context.js +16 -4
  77. package/es/spinner/styled-components.js +34 -16
  78. package/es/table-semantic/styled-components.js +6 -4
  79. package/es/table-semantic/table-builder.js +3 -0
  80. package/es/themes/dark-theme/color-component-tokens.js +16 -11
  81. package/es/themes/light-theme/color-component-tokens.js +24 -19
  82. package/es/themes/shared/lighting.js +5 -1
  83. package/es/timepicker/timepicker.js +16 -11
  84. package/es/toast/styled-components.js +18 -7
  85. package/es/tooltip/styled-components.js +8 -0
  86. package/es/tooltip/tooltip.js +1 -0
  87. package/esm/app-nav-bar/user-menu.js +1 -0
  88. package/esm/button/styled-components.js +1 -1
  89. package/esm/card/styled-components.js +0 -1
  90. package/esm/combobox/combobox.js +11 -4
  91. package/esm/data-table/column-datetime.js +3 -1
  92. package/esm/datepicker/calendar-header.js +147 -74
  93. package/esm/datepicker/calendar.js +19 -8
  94. package/esm/datepicker/constants.js +5 -1
  95. package/esm/datepicker/datepicker.js +150 -77
  96. package/esm/datepicker/day.js +60 -30
  97. package/esm/datepicker/month.js +3 -0
  98. package/esm/datepicker/styled-components.js +113 -56
  99. package/esm/datepicker/types.js +1 -1
  100. package/esm/datepicker/utils/calendar-header-helpers.js +5 -6
  101. package/esm/datepicker/utils/date-helpers.js +1 -1
  102. package/esm/datepicker/week.js +1 -0
  103. package/esm/dnd-list/index.js +2 -1
  104. package/esm/dnd-list/list.js +1 -2
  105. package/esm/dnd-list/styled-components.js +1 -1
  106. package/esm/drawer/drawer.js +2 -1
  107. package/esm/helper/helper.js +1 -0
  108. package/esm/layer/layer.js +8 -0
  109. package/esm/menu/maybe-child-menu.js +1 -2
  110. package/esm/menu/nested-menus.js +66 -5
  111. package/esm/menu/stateful-container.js +15 -13
  112. package/esm/popover/popover.js +8 -5
  113. package/esm/popover/stateful-container.js +8 -2
  114. package/esm/progress-bar/progressbar.js +16 -3
  115. package/esm/rating/emoticon-rating.js +2 -2
  116. package/esm/rating/star-rating.js +2 -2
  117. package/esm/select/select-component.js +7 -16
  118. package/esm/select/styled-components.js +28 -4
  119. package/esm/snackbar/snackbar-context.js +16 -4
  120. package/esm/spinner/styled-components.js +35 -16
  121. package/esm/table-semantic/styled-components.js +6 -4
  122. package/esm/table-semantic/table-builder.js +3 -0
  123. package/esm/themes/dark-theme/color-component-tokens.js +16 -11
  124. package/esm/themes/light-theme/color-component-tokens.js +24 -19
  125. package/esm/themes/shared/lighting.js +5 -1
  126. package/esm/timepicker/timepicker.js +17 -11
  127. package/esm/toast/styled-components.js +13 -5
  128. package/esm/tooltip/styled-components.js +8 -0
  129. package/esm/tooltip/tooltip.js +1 -0
  130. package/helper/helper.js +1 -0
  131. package/helper/helper.js.flow +1 -0
  132. package/layer/layer.js +8 -0
  133. package/layer/layer.js.flow +9 -0
  134. package/link/index.d.ts +1 -0
  135. package/map-marker/index.d.ts +6 -5
  136. package/menu/index.d.ts +10 -4
  137. package/menu/maybe-child-menu.js +1 -2
  138. package/menu/maybe-child-menu.js.flow +1 -2
  139. package/menu/nested-menus.js +66 -5
  140. package/menu/nested-menus.js.flow +50 -5
  141. package/menu/stateful-container.js +15 -13
  142. package/menu/stateful-container.js.flow +19 -13
  143. package/menu/types.js.flow +9 -1
  144. package/modal/index.d.ts +1 -1
  145. package/modal/types.js.flow +4 -1
  146. package/package.json +4 -3
  147. package/popover/index.d.ts +2 -1
  148. package/popover/popover.js +8 -5
  149. package/popover/popover.js.flow +22 -11
  150. package/popover/stateful-container.js +8 -2
  151. package/popover/stateful-container.js.flow +5 -0
  152. package/popover/types.js.flow +6 -1
  153. package/progress-bar/progressbar.js +16 -3
  154. package/progress-bar/progressbar.js.flow +16 -2
  155. package/rating/emoticon-rating.js +2 -2
  156. package/rating/emoticon-rating.js.flow +4 -1
  157. package/rating/star-rating.js +2 -2
  158. package/rating/star-rating.js.flow +4 -1
  159. package/select/select-component.js +7 -16
  160. package/select/select-component.js.flow +10 -12
  161. package/select/styled-components.js +28 -4
  162. package/select/styled-components.js.flow +30 -2
  163. package/snackbar/index.d.ts +21 -16
  164. package/snackbar/snackbar-context.js +15 -4
  165. package/snackbar/snackbar-context.js.flow +15 -3
  166. package/spinner/styled-components.js +35 -16
  167. package/spinner/styled-components.js.flow +37 -19
  168. package/spinner/types.js.flow +10 -0
  169. package/table-semantic/styled-components.js +6 -4
  170. package/table-semantic/styled-components.js.flow +6 -4
  171. package/table-semantic/table-builder.js +3 -0
  172. package/table-semantic/table-builder.js.flow +3 -0
  173. package/themes/dark-theme/color-component-tokens.js +16 -11
  174. package/themes/dark-theme/color-component-tokens.js.flow +16 -11
  175. package/themes/light-theme/color-component-tokens.js +24 -19
  176. package/themes/light-theme/color-component-tokens.js.flow +24 -19
  177. package/themes/shared/lighting.js +5 -1
  178. package/themes/shared/lighting.js.flow +4 -0
  179. package/themes/types.js.flow +9 -0
  180. package/timepicker/index.d.ts +1 -0
  181. package/timepicker/timepicker.js +17 -11
  182. package/timepicker/timepicker.js.flow +31 -12
  183. package/timepicker/types.js.flow +10 -0
  184. package/toast/styled-components.js +13 -5
  185. package/toast/styled-components.js.flow +17 -7
  186. package/tooltip/styled-components.js +8 -0
  187. package/tooltip/styled-components.js.flow +8 -0
  188. package/tooltip/tooltip.js +1 -0
  189. package/tooltip/tooltip.js.flow +6 -1
@@ -153,6 +153,7 @@ function UserMenuComponent(props) {
153
153
  }
154
154
  }, userMenuProps));
155
155
  },
156
+ autoFocus: false,
156
157
  dismissOnEsc: true,
157
158
  dismissOnClickOutside: true,
158
159
  onOpen: function onOpen() {
@@ -120,6 +120,7 @@ export default function UserMenuComponent(props: {|
120
120
  {...userMenuProps}
121
121
  />
122
122
  )}
123
+ autoFocus={false}
123
124
  dismissOnEsc={true}
124
125
  dismissOnClickOutside={true}
125
126
  onOpen={() => setIsOpen(true)}
@@ -48,7 +48,7 @@ var BaseButton = (0, _index.styled)('button', function (_ref) {
48
48
  cursor: 'pointer',
49
49
  ':disabled': {
50
50
  cursor: 'not-allowed',
51
- backgroundColor: $theme.colors.buttonDisabledFill,
51
+ backgroundColor: $kind === _constants.KIND.minimal || $kind === _constants.KIND.tertiary ? 'transparent' : $theme.colors.buttonDisabledFill,
52
52
  color: $theme.colors.buttonDisabledText
53
53
  },
54
54
  marginLeft: 0,
@@ -46,7 +46,10 @@ export const BaseButton = styled<SharedStylePropsT>(
46
46
  cursor: 'pointer',
47
47
  ':disabled': {
48
48
  cursor: 'not-allowed',
49
- backgroundColor: $theme.colors.buttonDisabledFill,
49
+ backgroundColor:
50
+ $kind === KIND.minimal || $kind === KIND.tertiary
51
+ ? 'transparent'
52
+ : $theme.colors.buttonDisabledFill,
50
53
  color: $theme.colors.buttonDisabledText,
51
54
  },
52
55
  marginLeft: 0,
@@ -98,7 +98,6 @@ var Title = (0, _index.styled)('h1', function (_ref7) {
98
98
  var $theme = _ref7.$theme;
99
99
  return _objectSpread(_objectSpread({}, $theme.typography.HeadingSmall), {}, {
100
100
  color: $theme.colors.contentPrimary,
101
- fontWeight: 500,
102
101
  marginLeft: 0,
103
102
  marginTop: 0,
104
103
  marginRight: 0,
@@ -72,7 +72,6 @@ export const Thumbnail = styled<{}>('img', ({$theme}) => ({
72
72
  export const Title = styled<{}>('h1', ({$theme}) => ({
73
73
  ...$theme.typography.HeadingSmall,
74
74
  color: $theme.colors.contentPrimary,
75
- fontWeight: 500,
76
75
  marginLeft: 0,
77
76
  marginTop: 0,
78
77
  marginRight: 0,
@@ -60,6 +60,7 @@ function Combobox(props) {
60
60
  onChange = props.onChange,
61
61
  onFocus = props.onFocus,
62
62
  onSubmit = props.onSubmit,
63
+ listBoxLabel = props.listBoxLabel,
63
64
  mapOptionToNode = props.mapOptionToNode,
64
65
  mapOptionToString = props.mapOptionToString,
65
66
  id = props.id,
@@ -306,7 +307,11 @@ function Combobox(props) {
306
307
  return /*#__PURE__*/React.createElement(Root // eslint-disable-next-line flowtype/no-weak-types
307
308
  , _extends({
308
309
  ref: rootRef
309
- }, rootProps), /*#__PURE__*/React.createElement(OverriddenPopover, _extends({
310
+ }, 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
311
+ // the ListBox, but we can just disable autoFocus (as ListBox / ListItem should not be focusable) (and input is also not autoFocused).
312
+ // Select Component does the same thing
313
+ , _extends({
314
+ autoFocus: false,
310
315
  isOpen: isOpen,
311
316
  overrides: popoverOverrides,
312
317
  placement: _index2.PLACEMENT.bottomLeft,
@@ -318,6 +323,7 @@ function Combobox(props) {
318
323
  ,
319
324
  ref: listboxRef,
320
325
  role: "listbox",
326
+ "aria-label": listBoxLabel,
321
327
  $width: listboxWidth
322
328
  }, listBoxProps), options.map(function (option, index) {
323
329
  var isSelected = selectionIndex === index;
@@ -356,9 +362,8 @@ function Combobox(props) {
356
362
  role: "combobox"
357
363
  }, inputContainerProps), /*#__PURE__*/React.createElement(OverriddenInput, _extends({
358
364
  inputRef: handleInputRef,
359
- "aria-activedescendant": selectionIndex >= 0 ? activeDescendantId : undefined,
365
+ "aria-activedescendant": isOpen && selectionIndex >= 0 ? activeDescendantId : undefined,
360
366
  "aria-autocomplete": "list",
361
- "aria-controls": listboxId,
362
367
  disabled: disabled,
363
368
  error: error,
364
369
  name: name,
@@ -371,7 +376,9 @@ function Combobox(props) {
371
376
  positive: positive,
372
377
  size: size,
373
378
  value: tempValue ? tempValue : value
374
- }, restInputProps)))));
379
+ }, isOpen ? {
380
+ 'aria-controls': listboxId
381
+ } : {}, restInputProps)))));
375
382
  }
376
383
 
377
384
  var _default = Combobox;
@@ -38,6 +38,7 @@ function Combobox<OptionT>(props: PropsT<OptionT>) {
38
38
  onChange,
39
39
  onFocus,
40
40
  onSubmit,
41
+ listBoxLabel,
41
42
  mapOptionToNode,
42
43
  mapOptionToString,
43
44
  id,
@@ -258,6 +259,10 @@ function Combobox<OptionT>(props: PropsT<OptionT>) {
258
259
  {...rootProps}
259
260
  >
260
261
  <OverriddenPopover
262
+ // 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
263
+ // the ListBox, but we can just disable autoFocus (as ListBox / ListItem should not be focusable) (and input is also not autoFocused).
264
+ // Select Component does the same thing
265
+ autoFocus={false}
261
266
  isOpen={isOpen}
262
267
  overrides={popoverOverrides}
263
268
  placement={PLACEMENT.bottomLeft}
@@ -270,6 +275,7 @@ function Combobox<OptionT>(props: PropsT<OptionT>) {
270
275
  // eslint-disable-next-line flowtype/no-weak-types
271
276
  ref={(listboxRef: any)}
272
277
  role="listbox"
278
+ aria-label={listBoxLabel}
273
279
  $width={listboxWidth}
274
280
  {...listBoxProps}
275
281
  >
@@ -318,10 +324,9 @@ function Combobox<OptionT>(props: PropsT<OptionT>) {
318
324
  <OverriddenInput
319
325
  inputRef={handleInputRef}
320
326
  aria-activedescendant={
321
- selectionIndex >= 0 ? activeDescendantId : undefined
327
+ isOpen && selectionIndex >= 0 ? activeDescendantId : undefined
322
328
  }
323
329
  aria-autocomplete="list"
324
- aria-controls={listboxId}
325
330
  disabled={disabled}
326
331
  error={error}
327
332
  name={name}
@@ -334,6 +339,7 @@ function Combobox<OptionT>(props: PropsT<OptionT>) {
334
339
  positive={positive}
335
340
  size={size}
336
341
  value={tempValue ? tempValue : value}
342
+ {...(isOpen ? {'aria-controls': listboxId} : {})}
337
343
  {...restInputProps}
338
344
  />
339
345
  </InputContainer>
@@ -17,11 +17,14 @@ export interface ComboboxOverrides {
17
17
  ListItem?: Override<any>;
18
18
  }
19
19
 
20
- export type PropsT<OptionT = unknown> = {
20
+ export type PropsT<OptionT = any> = {
21
21
  autocomplete?: boolean;
22
22
  disabled?: boolean;
23
- mapOptionToNode?: ({isSelected: boolean, option: OptionT}) => React.ReactNode;
24
- mapOptionToString: (OptionT) => string;
23
+ mapOptionToNode?: (option: {
24
+ isSelected: boolean;
25
+ option: OptionT;
26
+ }) => React.ReactNode;
27
+ mapOptionToString: (option: OptionT) => string;
25
28
  id?: string;
26
29
  name?: string;
27
30
  inputRef?: React.Ref<HTMLInputElement>;
@@ -18,6 +18,8 @@ export type PropsT<OptionT = mixed> = {|
18
18
  disabled?: boolean,
19
19
  // Proxies value through to Input component.
20
20
  error?: boolean,
21
+ // Label used for the listbox/popup with options
22
+ listBoxLabel?: string,
21
23
  // Used to render a custom node besides the default.
22
24
  mapOptionToNode?: React.AbstractComponent<{|
23
25
  isSelected: boolean,
@@ -86,6 +86,7 @@ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(
86
86
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
87
87
 
88
88
  var DATE_FORMAT = 'MM-dd-yyyy';
89
+ var MASK = '99-99-9999 - 99-99-9999';
89
90
  var TIME_FORMAT = 'HH:mm ss:SS';
90
91
  var FORMAT_STRING = "".concat(DATE_FORMAT, " ").concat(TIME_FORMAT);
91
92
 
@@ -455,12 +456,13 @@ function DatetimeFilter(props) {
455
456
  if (Array.isArray(date)) {
456
457
  if (!date.length) return;
457
458
  var nextDates = date.map(function (d, i) {
458
- return (0, _index13.applyDateToTime)(rangeDates[i], d);
459
+ return d ? (0, _index13.applyDateToTime)(rangeDates[i], d) : null;
459
460
  });
460
461
  setRangeDates(nextDates);
461
462
  }
462
463
  },
463
464
  formatString: DATE_FORMAT,
465
+ mask: MASK,
464
466
  placeholder: "MM-DD-YYYY - MM-DD-YYYY",
465
467
  minDate: datesSorted[0],
466
468
  maxDate: datesSorted[datesSorted.length - 1],
@@ -68,6 +68,7 @@ type FilterParametersT = {|
68
68
  type DatetimeColumnT = ColumnT<Date, FilterParametersT>;
69
69
 
70
70
  const DATE_FORMAT = 'MM-dd-yyyy';
71
+ const MASK = '99-99-9999 - 99-99-9999';
71
72
  const TIME_FORMAT = 'HH:mm ss:SS';
72
73
  const FORMAT_STRING = `${DATE_FORMAT} ${TIME_FORMAT}`;
73
74
 
@@ -409,12 +410,13 @@ function DatetimeFilter(props) {
409
410
  if (Array.isArray(date)) {
410
411
  if (!date.length) return;
411
412
  const nextDates = date.map((d, i) =>
412
- applyDateToTime(rangeDates[i], d),
413
+ d ? applyDateToTime(rangeDates[i], d) : null,
413
414
  );
414
415
  setRangeDates(nextDates);
415
416
  }
416
417
  }}
417
418
  formatString={DATE_FORMAT}
419
+ mask={MASK}
418
420
  placeholder="MM-DD-YYYY - MM-DD-YYYY"
419
421
  minDate={datesSorted[0]}
420
422
  maxDate={datesSorted[datesSorted.length - 1]}
@@ -43,10 +43,6 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
43
43
 
44
44
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
45
 
46
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
47
-
48
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
49
-
50
46
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
51
47
 
52
48
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@@ -61,6 +57,10 @@ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(
61
57
 
62
58
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
63
59
 
60
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
61
+
62
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
63
+
64
64
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
65
65
 
66
66
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@@ -131,6 +131,94 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
131
131
  return _this.props.date || _this.dateHelpers.date();
132
132
  });
133
133
 
134
+ _defineProperty(_assertThisInitialized(_this), "getYearItems", function () {
135
+ var date = _this.getDateProp();
136
+
137
+ var maxDate = _this.props.maxDate;
138
+ var minDate = _this.props.minDate;
139
+ var maxYear = maxDate ? _this.dateHelpers.getYear(maxDate) : MAX_YEAR;
140
+ var minYear = minDate ? _this.dateHelpers.getYear(minDate) : MIN_YEAR;
141
+
142
+ var selectedMonth = _this.dateHelpers.getMonth(date); // TODO: this logic can be optimized to only run when minDate / maxDate change
143
+
144
+
145
+ _this.yearItems = Array.from({
146
+ length: maxYear - minYear + 1
147
+ }, function (_, i) {
148
+ return minYear + i;
149
+ }).map(function (year) {
150
+ return {
151
+ id: year.toString(),
152
+ label: year.toString()
153
+ };
154
+ });
155
+ var monthOfMaxDate = maxDate ? _this.dateHelpers.getMonth(maxDate) : MAX_MONTH;
156
+ var monthOfMinDate = minDate ? _this.dateHelpers.getMonth(minDate) : MIN_MONTH; // Generates array like [0,1,.... monthOfMaxDate]
157
+
158
+ var maxYearMonths = Array.from({
159
+ length: monthOfMaxDate + 1
160
+ }, function (x, i) {
161
+ return i;
162
+ }); // Generates array like [monthOfMinDate, ...., 10, 11]
163
+
164
+ var minYearMonths = Array.from({
165
+ length: 12 - monthOfMinDate
166
+ }, function (x, i) {
167
+ return i + monthOfMinDate;
168
+ });
169
+
170
+ if (selectedMonth > maxYearMonths[maxYearMonths.length - 1]) {
171
+ var lastIdx = _this.yearItems.length - 1;
172
+ _this.yearItems[lastIdx] = _objectSpread(_objectSpread({}, _this.yearItems[lastIdx]), {}, {
173
+ disabled: true
174
+ });
175
+ }
176
+
177
+ if (selectedMonth < minYearMonths[0]) {
178
+ _this.yearItems[0] = _objectSpread(_objectSpread({}, _this.yearItems[0]), {}, {
179
+ disabled: true
180
+ });
181
+ }
182
+ });
183
+
184
+ _defineProperty(_assertThisInitialized(_this), "getMonthItems", function () {
185
+ var date = _this.getDateProp();
186
+
187
+ var year = _this.dateHelpers.getYear(date);
188
+
189
+ var maxDate = _this.props.maxDate;
190
+ var minDate = _this.props.minDate;
191
+ var maxYear = maxDate ? _this.dateHelpers.getYear(maxDate) : MAX_YEAR;
192
+ var minYear = minDate ? _this.dateHelpers.getYear(minDate) : MIN_YEAR;
193
+ var monthOfMaxDate = maxDate ? _this.dateHelpers.getMonth(maxDate) : MAX_MONTH; // Generates array like [0,1,.... monthOfMaxDate]
194
+
195
+ var maxYearMonths = Array.from({
196
+ length: monthOfMaxDate + 1
197
+ }, function (x, i) {
198
+ return i;
199
+ });
200
+ var monthOfMinDate = minDate ? _this.dateHelpers.getMonth(minDate) : MIN_MONTH; // Generates array like [monthOfMinDate, ...., 10, 11]
201
+
202
+ var minYearMonths = Array.from({
203
+ length: 12 - monthOfMinDate
204
+ }, function (x, i) {
205
+ return i + monthOfMinDate;
206
+ });
207
+ var maxMinYearMonthsIntersection = maxYearMonths.filter(function (year) {
208
+ return minYearMonths.includes(year);
209
+ });
210
+ var filterMonthsList = year === maxYear && year === minYear ? maxMinYearMonthsIntersection : year === maxYear ? maxYearMonths : year === minYear ? minYearMonths : null;
211
+
212
+ var formatMonthLabel = function formatMonthLabel(month) {
213
+ return _this.dateHelpers.getMonthInLocale(month, _this.props.locale);
214
+ };
215
+
216
+ _this.monthItems = (0, _calendarHeaderHelpers.getFilteredMonthItems)({
217
+ filterMonthsList: filterMonthsList,
218
+ formatMonthLabel: formatMonthLabel
219
+ });
220
+ });
221
+
134
222
  _defineProperty(_assertThisInitialized(_this), "increaseMonth", function () {
135
223
  if (_this.props.onMonthChange) {
136
224
  // $FlowFixMe
@@ -204,8 +292,10 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
204
292
 
205
293
  var date = _this.getDateProp();
206
294
 
207
- var _this$props$overrides = _this.props.overrides,
208
- overrides = _this$props$overrides === void 0 ? {} : _this$props$overrides;
295
+ var _this$props3 = _this.props,
296
+ _this$props3$override = _this$props3.overrides,
297
+ overrides = _this$props3$override === void 0 ? {} : _this$props3$override,
298
+ density = _this$props3.density;
209
299
 
210
300
  var allPrevDaysDisabled = _this.dateHelpers.monthDisabledBefore(date, _this.props);
211
301
 
@@ -255,7 +345,7 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
255
345
  $disabled: isDisabled,
256
346
  $order: _this.props.order
257
347
  }, prevButtonProps), isHidden ? null : /*#__PURE__*/React.createElement(PrevButtonIcon, _extends({
258
- size: '24px',
348
+ size: density === _constants.DENSITY.high ? 24 : 36,
259
349
  overrides: {
260
350
  Svg: {
261
351
  style: navBtnStyle
@@ -270,8 +360,10 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
270
360
 
271
361
  var date = _this.getDateProp();
272
362
 
273
- var _this$props$overrides2 = _this.props.overrides,
274
- overrides = _this$props$overrides2 === void 0 ? {} : _this$props$overrides2;
363
+ var _this$props4 = _this.props,
364
+ _this$props4$override = _this$props4.overrides,
365
+ overrides = _this$props4$override === void 0 ? {} : _this$props4$override,
366
+ density = _this$props4.density;
275
367
 
276
368
  var allNextDaysDisabled = _this.dateHelpers.monthDisabledAfter(date, _this.props);
277
369
 
@@ -325,7 +417,7 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
325
417
  $isFocusVisible: _this.state.isFocusVisible,
326
418
  $order: _this.props.order
327
419
  }, nextButtonProps), isHidden ? null : /*#__PURE__*/React.createElement(NextButtonIcon, _extends({
328
- size: '24px',
420
+ size: density === _constants.DENSITY.high ? 24 : 36,
329
421
  overrides: {
330
422
  Svg: {
331
423
  style: navBtnStyle
@@ -351,12 +443,11 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
351
443
 
352
444
  var year = _this.dateHelpers.getYear(date);
353
445
 
354
- var _this$props3 = _this.props,
355
- locale = _this$props3.locale,
356
- maxDate = _this$props3.maxDate,
357
- minDate = _this$props3.minDate,
358
- _this$props3$override = _this$props3.overrides,
359
- overrides = _this$props3$override === void 0 ? {} : _this$props3$override;
446
+ var _this$props5 = _this.props,
447
+ locale = _this$props5.locale,
448
+ _this$props5$override = _this$props5.overrides,
449
+ overrides = _this$props5$override === void 0 ? {} : _this$props5$override,
450
+ density = _this$props5.density;
360
451
 
361
452
  var _getOverrides9 = (0, _overrides.getOverrides)(overrides.MonthYearSelectButton, _styledComponents.StyledMonthYearSelectButton),
362
453
  _getOverrides10 = _slicedToArray(_getOverrides9, 2),
@@ -389,62 +480,13 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
389
480
  menuProps && menuProps.overrides); // $FlowFixMe
390
481
 
391
482
  menuProps.overrides = menuOverrides;
392
- var maxYear = maxDate ? _this.dateHelpers.getYear(maxDate) : MAX_YEAR;
393
- var monthOfMaxDate = maxDate ? _this.dateHelpers.getMonth(maxDate) : MAX_MONTH; // Generates array like [0,1,.... monthOfMaxDate]
394
-
395
- var maxYearMonths = Array.from({
396
- length: monthOfMaxDate + 1
397
- }, function (x, i) {
398
- return i;
399
- });
400
- var minYear = minDate ? _this.dateHelpers.getYear(minDate) : MIN_YEAR;
401
- var monthOfMinDate = minDate ? _this.dateHelpers.getMonth(minDate) : MIN_MONTH; // Generates array like [monthOfMinDate, ...., 10, 11]
402
-
403
- var minYearMonths = Array.from({
404
- length: 12 - monthOfMinDate
405
- }, function (x, i) {
406
- return i + monthOfMinDate;
407
- });
408
- var maxMinYearMonthsIntersection = maxYearMonths.filter(function (year) {
409
- return minYearMonths.includes(year);
410
- });
411
- var filterMonthsList = year === maxYear && year === minYear ? maxMinYearMonthsIntersection : year === maxYear ? maxYearMonths : year === minYear ? minYearMonths : null;
412
- _this.monthItems = (0, _calendarHeaderHelpers.getMonthItems)({
413
- filterMonthsList: filterMonthsList,
414
- formatMonthLabel: function formatMonthLabel(month) {
415
- return _this.dateHelpers.getMonthInLocale(month, locale);
416
- }
417
- });
418
- _this.yearItems = Array.from({
419
- length: maxYear - minYear + 1
420
- }, function (_, i) {
421
- return minYear + i;
422
- }).map(function (year) {
423
- return {
424
- id: year.toString(),
425
- label: year.toString()
426
- };
427
- });
428
-
429
- if (month > maxYearMonths[maxYearMonths.length - 1]) {
430
- var lastIdx = _this.yearItems.length - 1;
431
- _this.yearItems[lastIdx] = _objectSpread(_objectSpread({}, _this.yearItems[lastIdx]), {}, {
432
- disabled: true
433
- });
434
- }
435
-
436
- if (month < minYearMonths[0]) {
437
- _this.yearItems[0] = _objectSpread(_objectSpread({}, _this.yearItems[0]), {}, {
438
- disabled: true
439
- });
440
- }
441
483
 
442
484
  var initialMonthIndex = _this.monthItems.findIndex(function (month) {
443
- return month.id === _this.dateHelpers.getMonth(date);
485
+ return month.id === _this.dateHelpers.getMonth(date).toString();
444
486
  });
445
487
 
446
488
  var initialYearIndex = _this.yearItems.findIndex(function (year) {
447
- return year.id === _this.dateHelpers.getYear(date);
489
+ return year.id === _this.dateHelpers.getYear(date).toString();
448
490
  });
449
491
 
450
492
  var monthTitle = "".concat(_this.dateHelpers.getMonthInLocale(_this.dateHelpers.getMonth(date), locale));
@@ -503,6 +545,7 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
503
545
  "aria-live": "polite",
504
546
  type: "button",
505
547
  $isFocusVisible: _this.state.isFocusVisible,
548
+ $density: density,
506
549
  onKeyUp: function onKeyUp(event) {
507
550
  if (_this.canArrowsOpenDropdown(event)) {
508
551
  _this.setState({
@@ -530,7 +573,8 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
530
573
  role: 'presentation'
531
574
  }
532
575
  }
533
- }
576
+ },
577
+ size: density === _constants.DENSITY.high ? 16 : 24
534
578
  })))), /*#__PURE__*/React.createElement(OverriddenPopover, _extends({
535
579
  placement: "bottom",
536
580
  focusLock: true,
@@ -584,6 +628,7 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
584
628
  "aria-live": "polite",
585
629
  type: "button",
586
630
  $isFocusVisible: _this.state.isFocusVisible,
631
+ $density: density,
587
632
  onKeyUp: function onKeyUp(event) {
588
633
  if (_this.canArrowsOpenDropdown(event)) {
589
634
  _this.setState({
@@ -611,7 +656,8 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
611
656
  role: 'presentation'
612
657
  }
613
658
  }
614
- }
659
+ },
660
+ size: density === _constants.DENSITY.high ? 16 : 24
615
661
  })))));
616
662
  });
617
663
 
@@ -622,12 +668,36 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
622
668
  }
623
669
 
624
670
  _createClass(CalendarHeader, [{
671
+ key: "componentDidMount",
672
+ value: function componentDidMount() {
673
+ this.getYearItems();
674
+ this.getMonthItems();
675
+ }
676
+ }, {
677
+ key: "componentDidUpdate",
678
+ value: function componentDidUpdate(prevProps) {
679
+ var selectedMonthDidChange = this.dateHelpers.getMonth(this.props.date) !== this.dateHelpers.getMonth(prevProps.date);
680
+ var selectedYearDidChange = this.dateHelpers.getYear(this.props.date) !== this.dateHelpers.getYear(prevProps.date);
681
+
682
+ if (selectedMonthDidChange) {
683
+ // re-calculate yearItems
684
+ this.getYearItems();
685
+ }
686
+
687
+ if (selectedYearDidChange) {
688
+ // re-calculate monthItems
689
+ this.getMonthItems();
690
+ }
691
+ }
692
+ }, {
625
693
  key: "render",
626
694
  value: function render() {
627
695
  var _this2 = this;
628
696
 
629
- var _this$props$overrides3 = this.props.overrides,
630
- overrides = _this$props$overrides3 === void 0 ? {} : _this$props$overrides3;
697
+ var _this$props6 = this.props,
698
+ _this$props6$override = _this$props6.overrides,
699
+ overrides = _this$props6$override === void 0 ? {} : _this$props6$override,
700
+ density = _this$props6.density;
631
701
 
632
702
  var _getOverrides17 = (0, _overrides.getOverrides)(overrides.CalendarHeader, _styledComponents.StyledCalendarHeader),
633
703
  _getOverrides18 = _slicedToArray(_getOverrides17, 2),
@@ -648,6 +718,7 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
648
718
  return /*#__PURE__*/React.createElement(_themeProvider.ThemeContext.Consumer, null, function (theme) {
649
719
  return /*#__PURE__*/React.createElement(_index3.LocaleContext.Consumer, null, function (locale) {
650
720
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_CalendarHeader, _extends({}, calendarHeaderProps, {
721
+ $density: _this2.props.density,
651
722
  onFocus: (0, _focusVisible.forkFocus)(calendarHeaderProps, _this2.handleFocus),
652
723
  onBlur: (0, _focusVisible.forkBlur)(calendarHeaderProps, _this2.handleBlur)
653
724
  }), _this2.renderPreviousMonthButton({
@@ -664,7 +735,9 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
664
735
  return /*#__PURE__*/React.createElement(WeekdayHeader, _extends({
665
736
  key: offset,
666
737
  alt: _this2.dateHelpers.getWeekdayInLocale(day, _this2.props.locale)
667
- }, weekdayHeaderProps), _this2.dateHelpers.getWeekdayMinInLocale(day, _this2.props.locale));
738
+ }, weekdayHeaderProps, {
739
+ $density: density
740
+ }), _this2.dateHelpers.getWeekdayMinInLocale(day, _this2.props.locale));
668
741
  })));
669
742
  });
670
743
  });