baseui 10.3.0 → 10.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) 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/data-table/data-table.js +13 -3
  13. package/data-table/data-table.js.flow +20 -4
  14. package/data-table/types.js.flow +2 -1
  15. package/datepicker/calendar-header.js +255 -109
  16. package/datepicker/calendar-header.js.flow +282 -145
  17. package/datepicker/calendar.js +6 -1
  18. package/datepicker/calendar.js.flow +5 -1
  19. package/datepicker/constants.js +9 -2
  20. package/datepicker/constants.js.flow +7 -0
  21. package/datepicker/datepicker.js +135 -73
  22. package/datepicker/datepicker.js.flow +161 -62
  23. package/datepicker/day.js +2 -0
  24. package/datepicker/day.js.flow +2 -0
  25. package/datepicker/index.d.ts +8 -0
  26. package/datepicker/month.js +4 -0
  27. package/datepicker/month.js.flow +3 -0
  28. package/datepicker/styled-components.js +116 -56
  29. package/datepicker/styled-components.js.flow +101 -36
  30. package/datepicker/types.js.flow +18 -1
  31. package/datepicker/utils/calendar-header-helpers.js +51 -0
  32. package/datepicker/utils/calendar-header-helpers.js.flow +53 -0
  33. package/datepicker/utils/date-helpers.js +1 -1
  34. package/datepicker/utils/date-helpers.js.flow +1 -1
  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/close-icon.js +3 -2
  43. package/drawer/close-icon.js.flow +2 -2
  44. package/drawer/drawer.js +5 -2
  45. package/drawer/drawer.js.flow +2 -2
  46. package/es/app-nav-bar/user-menu.js +1 -0
  47. package/es/button/styled-components.js +1 -1
  48. package/es/card/styled-components.js +0 -1
  49. package/es/combobox/combobox.js +5 -1
  50. package/es/data-table/column-datetime.js +2 -0
  51. package/es/data-table/data-table.js +13 -3
  52. package/es/datepicker/calendar-header.js +204 -93
  53. package/es/datepicker/calendar.js +7 -2
  54. package/es/datepicker/constants.js +6 -1
  55. package/es/datepicker/datepicker.js +70 -42
  56. package/es/datepicker/day.js +2 -0
  57. package/es/datepicker/month.js +3 -0
  58. package/es/datepicker/styled-components.js +98 -37
  59. package/es/datepicker/types.js +1 -1
  60. package/es/datepicker/utils/calendar-header-helpers.js +34 -0
  61. package/es/datepicker/utils/date-helpers.js +1 -1
  62. package/es/datepicker/week.js +1 -0
  63. package/es/dnd-list/index.js +2 -1
  64. package/es/dnd-list/list.js +1 -2
  65. package/es/dnd-list/styled-components.js +1 -0
  66. package/es/drawer/close-icon.js +3 -2
  67. package/es/drawer/drawer.js +5 -2
  68. package/es/helper/helper.js +1 -0
  69. package/es/layer/layer.js +8 -0
  70. package/es/list/list-heading.js +17 -6
  71. package/es/map-marker/constants.js +69 -0
  72. package/es/map-marker/fixed-marker.js +98 -0
  73. package/es/map-marker/floating-marker.js +65 -0
  74. package/es/map-marker/index.js +9 -0
  75. package/es/map-marker/pin-head.js +108 -0
  76. package/es/map-marker/styled-components.js +156 -0
  77. package/es/map-marker/types.js +8 -0
  78. package/es/menu/maybe-child-menu.js +1 -0
  79. package/es/popover/popover.js +6 -5
  80. package/es/popover/stateful-container.js +8 -2
  81. package/es/rating/emoticon-rating.js +3 -1
  82. package/es/rating/star-rating.js +3 -1
  83. package/es/select/select-component.js +20 -5
  84. package/es/select/styled-components.js +34 -4
  85. package/es/snackbar/snackbar-context.js +16 -4
  86. package/es/spinner/styled-components.js +1 -1
  87. package/es/table-semantic/styled-components.js +6 -4
  88. package/es/table-semantic/table-builder.js +3 -0
  89. package/es/themes/dark-theme/color-component-tokens.js +1 -1
  90. package/es/themes/light-theme/color-component-tokens.js +9 -9
  91. package/es/themes/shared/lighting.js +5 -1
  92. package/es/timepicker/timepicker.js +16 -11
  93. package/es/tooltip/styled-components.js +8 -0
  94. package/es/tooltip/tooltip.js +1 -0
  95. package/esm/app-nav-bar/user-menu.js +1 -0
  96. package/esm/button/styled-components.js +1 -1
  97. package/esm/card/styled-components.js +0 -1
  98. package/esm/combobox/combobox.js +5 -1
  99. package/esm/data-table/column-datetime.js +2 -0
  100. package/esm/data-table/data-table.js +13 -3
  101. package/esm/datepicker/calendar-header.js +255 -110
  102. package/esm/datepicker/calendar.js +7 -2
  103. package/esm/datepicker/constants.js +6 -1
  104. package/esm/datepicker/datepicker.js +136 -74
  105. package/esm/datepicker/day.js +2 -0
  106. package/esm/datepicker/month.js +3 -0
  107. package/esm/datepicker/styled-components.js +112 -55
  108. package/esm/datepicker/types.js +1 -1
  109. package/esm/datepicker/utils/calendar-header-helpers.js +45 -0
  110. package/esm/datepicker/utils/date-helpers.js +1 -1
  111. package/esm/datepicker/week.js +1 -0
  112. package/esm/dnd-list/index.js +2 -1
  113. package/esm/dnd-list/list.js +1 -2
  114. package/esm/dnd-list/styled-components.js +1 -1
  115. package/esm/drawer/close-icon.js +3 -2
  116. package/esm/drawer/drawer.js +5 -2
  117. package/esm/helper/helper.js +1 -0
  118. package/esm/layer/layer.js +8 -0
  119. package/esm/list/list-heading.js +17 -6
  120. package/esm/map-marker/constants.js +62 -0
  121. package/esm/map-marker/fixed-marker.js +137 -0
  122. package/esm/map-marker/floating-marker.js +94 -0
  123. package/esm/map-marker/index.js +9 -0
  124. package/esm/map-marker/pin-head.js +144 -0
  125. package/esm/map-marker/styled-components.js +168 -0
  126. package/esm/map-marker/types.js +8 -0
  127. package/esm/menu/maybe-child-menu.js +1 -0
  128. package/esm/popover/popover.js +6 -5
  129. package/esm/popover/stateful-container.js +8 -2
  130. package/esm/rating/emoticon-rating.js +2 -2
  131. package/esm/rating/star-rating.js +2 -2
  132. package/esm/select/select-component.js +19 -5
  133. package/esm/select/styled-components.js +28 -4
  134. package/esm/snackbar/snackbar-context.js +16 -4
  135. package/esm/spinner/styled-components.js +1 -1
  136. package/esm/table-semantic/styled-components.js +6 -4
  137. package/esm/table-semantic/table-builder.js +3 -0
  138. package/esm/themes/dark-theme/color-component-tokens.js +1 -1
  139. package/esm/themes/light-theme/color-component-tokens.js +9 -9
  140. package/esm/themes/shared/lighting.js +5 -1
  141. package/esm/timepicker/timepicker.js +17 -11
  142. package/esm/tooltip/styled-components.js +8 -0
  143. package/esm/tooltip/tooltip.js +1 -0
  144. package/helper/helper.js +1 -0
  145. package/helper/helper.js.flow +1 -0
  146. package/layer/layer.js +8 -0
  147. package/layer/layer.js.flow +9 -0
  148. package/link/index.d.ts +1 -0
  149. package/list/index.d.ts +36 -0
  150. package/list/list-heading.js +24 -7
  151. package/list/list-heading.js.flow +17 -8
  152. package/map-marker/constants.js +82 -0
  153. package/map-marker/constants.js.flow +74 -0
  154. package/map-marker/fixed-marker.js +152 -0
  155. package/map-marker/fixed-marker.js.flow +137 -0
  156. package/map-marker/floating-marker.js +109 -0
  157. package/map-marker/floating-marker.js.flow +102 -0
  158. package/map-marker/index.d.ts +105 -0
  159. package/map-marker/index.js +55 -0
  160. package/map-marker/index.js.flow +23 -0
  161. package/map-marker/package.json +4 -0
  162. package/map-marker/pin-head.js +159 -0
  163. package/map-marker/pin-head.js.flow +155 -0
  164. package/map-marker/styled-components.js +184 -0
  165. package/map-marker/styled-components.js.flow +177 -0
  166. package/map-marker/types.js +11 -0
  167. package/map-marker/types.js.flow +114 -0
  168. package/menu/index.d.ts +7 -0
  169. package/menu/maybe-child-menu.js +1 -0
  170. package/menu/maybe-child-menu.js.flow +1 -0
  171. package/menu/types.js.flow +12 -0
  172. package/modal/index.d.ts +1 -1
  173. package/modal/types.js.flow +4 -1
  174. package/package.json +5 -3
  175. package/popover/index.d.ts +2 -1
  176. package/popover/popover.js +6 -5
  177. package/popover/popover.js.flow +11 -4
  178. package/popover/stateful-container.js +8 -2
  179. package/popover/stateful-container.js.flow +5 -0
  180. package/popover/types.js.flow +6 -1
  181. package/rating/emoticon-rating.js +2 -2
  182. package/rating/emoticon-rating.js.flow +4 -1
  183. package/rating/star-rating.js +2 -2
  184. package/rating/star-rating.js.flow +4 -1
  185. package/select/select-component.js +19 -5
  186. package/select/select-component.js.flow +19 -5
  187. package/select/styled-components.js +28 -4
  188. package/select/styled-components.js.flow +30 -2
  189. package/select/types.js.flow +9 -0
  190. package/snackbar/index.d.ts +21 -16
  191. package/snackbar/snackbar-context.js +15 -4
  192. package/snackbar/snackbar-context.js.flow +15 -3
  193. package/spinner/styled-components.js +1 -1
  194. package/spinner/styled-components.js.flow +1 -1
  195. package/table-semantic/styled-components.js +6 -4
  196. package/table-semantic/styled-components.js.flow +6 -4
  197. package/table-semantic/table-builder.js +3 -0
  198. package/table-semantic/table-builder.js.flow +3 -0
  199. package/themes/dark-theme/color-component-tokens.js +1 -1
  200. package/themes/dark-theme/color-component-tokens.js.flow +1 -1
  201. package/themes/light-theme/color-component-tokens.js +9 -9
  202. package/themes/light-theme/color-component-tokens.js.flow +9 -9
  203. package/themes/shared/lighting.js +5 -1
  204. package/themes/shared/lighting.js.flow +4 -0
  205. package/themes/types.js.flow +4 -0
  206. package/timepicker/index.d.ts +1 -0
  207. package/timepicker/timepicker.js +17 -11
  208. package/timepicker/timepicker.js.flow +31 -12
  209. package/timepicker/types.js.flow +10 -0
  210. package/tooltip/styled-components.js +8 -0
  211. package/tooltip/styled-components.js.flow +8 -0
  212. package/tooltip/tooltip.js +1 -0
  213. package/tooltip/tooltip.js.flow +6 -1
@@ -159,7 +159,7 @@ var Select = /*#__PURE__*/function (_React$Component) {
159
159
  isPseudoFocused: false
160
160
  });
161
161
 
162
- _defineProperty(_assertThisInitialized(_this), "isMounted", false);
162
+ _defineProperty(_assertThisInitialized(_this), "isItMounted", false);
163
163
 
164
164
  _defineProperty(_assertThisInitialized(_this), "handleTouchOutside", function (event) {
165
165
  if (containsNode(_this.dropdown.current, event.target)) return;
@@ -307,7 +307,7 @@ var Select = /*#__PURE__*/function (_React$Component) {
307
307
  _this.props.onBlur(event);
308
308
  }
309
309
 
310
- if (_this.isMounted) {
310
+ if (_this.isItMounted) {
311
311
  _this.setState({
312
312
  isFocused: false,
313
313
  isOpen: false,
@@ -661,7 +661,14 @@ var Select = /*#__PURE__*/function (_React$Component) {
661
661
  this.focus();
662
662
  }
663
663
 
664
- this.isMounted = true;
664
+ this.isItMounted = true;
665
+
666
+ if (this.props.methodsRef) {
667
+ var methodsRef = this.props.methodsRef;
668
+ methodsRef.current = {
669
+ setDropdownOpen: this.handleDropdownOpen.bind(this)
670
+ };
671
+ }
665
672
  }
666
673
  }, {
667
674
  key: "componentDidUpdate",
@@ -690,13 +697,20 @@ var Select = /*#__PURE__*/function (_React$Component) {
690
697
  document.removeEventListener('click', this.handleClickOutside);
691
698
  }
692
699
 
693
- this.isMounted = false;
700
+ this.isItMounted = false;
694
701
  }
695
702
  }, {
696
703
  key: "focus",
697
704
  value: function focus() {
698
705
  if (!this.input) return;
699
706
  this.input.focus();
707
+ }
708
+ }, {
709
+ key: "handleDropdownOpen",
710
+ value: function handleDropdownOpen(nextOpenState) {
711
+ this.setState({
712
+ isOpen: nextOpenState
713
+ });
700
714
  } // Handle touch outside on mobile to dismiss menu, ensures that the
701
715
  // touch target is not within the anchor DOM node.
702
716
 
@@ -912,7 +926,6 @@ var Select = /*#__PURE__*/function (_React$Component) {
912
926
 
913
927
  var ariaLabel = this.props.multi ? 'Clear all' : 'Clear value';
914
928
  return /*#__PURE__*/React.createElement(ClearIcon, _extends({
915
- size: 16,
916
929
  title: ariaLabel,
917
930
  "aria-label": ariaLabel,
918
931
  onClick: this.clearValue,
@@ -1134,6 +1147,7 @@ var Select = /*#__PURE__*/function (_React$Component) {
1134
1147
  if (!ref) return;
1135
1148
  _this6.anchor = ref.anchorRef;
1136
1149
  },
1150
+ autoFocus: false,
1137
1151
  focusLock: false,
1138
1152
  mountNode: _this6.props.mountNode,
1139
1153
  onEsc: function onEsc() {
@@ -326,25 +326,49 @@ function getSvgStyles(_ref4) {
326
326
  }
327
327
 
328
328
  export var StyledSelectArrow = styled('svg', function (props) {
329
+ var _sizes;
330
+
329
331
  var $theme = props.$theme,
330
- $disabled = props.$disabled;
332
+ $disabled = props.$disabled,
333
+ $size = props.$size;
331
334
  var colors = $theme.colors;
335
+ var sizes = (_sizes = {}, _defineProperty(_sizes, SIZE.mini, 16), _defineProperty(_sizes, SIZE.compact, 16), _defineProperty(_sizes, SIZE.default, 20), _defineProperty(_sizes, SIZE.large, 24), _sizes);
336
+ var size = sizes[SIZE.default];
337
+
338
+ if ($size) {
339
+ size = sizes[$size];
340
+ }
341
+
332
342
  return _objectSpread(_objectSpread({}, getSvgStyles({
333
343
  $theme: $theme
334
344
  })), {}, {
335
345
  color: $disabled ? colors.inputTextDisabled : colors.contentPrimary,
336
- cursor: $disabled ? 'not-allowed' : 'pointer'
346
+ cursor: $disabled ? 'not-allowed' : 'pointer',
347
+ height: "".concat(size, "px"),
348
+ width: "".concat(size, "px")
337
349
  });
338
350
  });
339
351
  StyledSelectArrow.displayName = "StyledSelectArrow";
340
352
  export var StyledClearIcon = styled('svg', function (props) {
341
- var $theme = props.$theme;
353
+ var _sizes2;
354
+
355
+ var $theme = props.$theme,
356
+ $size = props.$size;
342
357
  var colors = $theme.colors;
358
+ var sizes = (_sizes2 = {}, _defineProperty(_sizes2, SIZE.mini, 15), _defineProperty(_sizes2, SIZE.compact, 15), _defineProperty(_sizes2, SIZE.default, 18), _defineProperty(_sizes2, SIZE.large, 22), _sizes2);
359
+ var size = sizes[SIZE.default];
360
+
361
+ if ($size) {
362
+ size = sizes[$size];
363
+ }
364
+
343
365
  return _objectSpread(_objectSpread({}, getSvgStyles({
344
366
  $theme: $theme
345
367
  })), {}, {
346
368
  color: colors.contentPrimary,
347
- cursor: 'pointer'
369
+ cursor: 'pointer',
370
+ height: "".concat(size, "px"),
371
+ width: "".concat(size, "px")
348
372
  });
349
373
  });
350
374
  StyledClearIcon.displayName = "StyledClearIcon";
@@ -61,6 +61,15 @@ export function useSnackbar() {
61
61
  dequeue: context.dequeue
62
62
  };
63
63
  }
64
+
65
+ function usePrevious(value) {
66
+ var ref = React.useRef();
67
+ React.useEffect(function () {
68
+ ref.current = value;
69
+ });
70
+ return ref.current;
71
+ }
72
+
64
73
  export default function SnackbarProvider(_ref) {
65
74
  var children = _ref.children,
66
75
  _ref$overrides = _ref.overrides,
@@ -95,10 +104,6 @@ export default function SnackbarProvider(_ref) {
95
104
  function enqueue(elementProps) {
96
105
  var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultDuration;
97
106
  setSnackbars(function (prev) {
98
- if (prev.length === 0) {
99
- enter(duration);
100
- }
101
-
102
107
  return [].concat(_toConsumableArray(prev), [{
103
108
  elementProps: elementProps,
104
109
  duration: duration
@@ -106,6 +111,13 @@ export default function SnackbarProvider(_ref) {
106
111
  });
107
112
  }
108
113
 
114
+ var prevSnackbars = usePrevious(snackbars) || [];
115
+ React.useEffect(function () {
116
+ if (prevSnackbars.length === 0 && snackbars.length >= 1) {
117
+ enter(snackbars[0].duration);
118
+ }
119
+ }, [snackbars, prevSnackbars]);
120
+
109
121
  function dequeue() {
110
122
  setContainerHeight(0);
111
123
  setSnackbars(function (prev) {
@@ -52,7 +52,7 @@ export var StyledActivePath = styled('path', function (props) {
52
52
  }); // TODO(v11): Replace Spinner with SpinnerNext
53
53
 
54
54
  StyledActivePath.displayName = "StyledActivePath";
55
- export var StyledSpinnerNext = styled('div', function (_ref) {
55
+ export var StyledSpinnerNext = styled('i', function (_ref) {
56
56
  var $theme = _ref.$theme,
57
57
  _ref$$size = _ref.$size,
58
58
  $size = _ref$$size === void 0 ? SIZE.medium : _ref$$size;
@@ -70,7 +70,8 @@ export var StyledTableHeadCell = styled('th', function (_ref5) {
70
70
 
71
71
  var $theme = _ref5.$theme,
72
72
  $size = _ref5.$size,
73
- $divider = _ref5.$divider;
73
+ $divider = _ref5.$divider,
74
+ $isNumeric = _ref5.$isNumeric;
74
75
  var borderDir = $theme.direction === 'rtl' ? 'Left' : 'Right';
75
76
  var borderVertical = $divider === DIVIDER.grid || $divider === DIVIDER.vertical;
76
77
  var padding = sizeToCellPadding($theme, $size);
@@ -83,7 +84,7 @@ export var StyledTableHeadCell = styled('th', function (_ref5) {
83
84
  paddingLeft: padding,
84
85
  backgroundColor: $theme.colors.tableHeadBackgroundColor,
85
86
  color: $theme.colors.contentPrimary,
86
- textAlign: $theme.direction === 'rtl' ? 'right' : 'left',
87
+ textAlign: $theme.direction === 'rtl' || $isNumeric ? 'right' : 'left',
87
88
  verticalAlign: 'top',
88
89
  whiteSpace: 'nowrap',
89
90
  zIndex: 1
@@ -164,14 +165,15 @@ export var StyledTableBodyCell = styled('td', function (_ref12) {
164
165
  $size = _ref12.$size,
165
166
  $divider = _ref12.$divider,
166
167
  $isNumeric = _ref12.$isNumeric,
167
- $isLastRow = _ref12.$isLastRow;
168
+ $isLastRow = _ref12.$isLastRow,
169
+ $isSortable = _ref12.$isSortable;
168
170
  var borderDir = $theme.direction === 'rtl' ? 'Left' : 'Right';
169
171
  var borderVertical = $divider === DIVIDER.vertical || $divider === DIVIDER.grid;
170
172
  var borderHorizontal = $divider === undefined || $divider === DIVIDER.horizontal || $divider === DIVIDER.grid;
171
173
  var padding = sizeToCellPadding($theme, $size);
172
174
  return _objectSpread(_objectSpread({}, $theme.typography.font200), {}, {
173
175
  paddingTop: padding,
174
- paddingRight: padding,
176
+ paddingRight: !$isSortable ? padding : $theme.sizing.scale1000,
175
177
  paddingBottom: padding,
176
178
  paddingLeft: padding,
177
179
  color: $theme.colors.contentPrimary,
@@ -200,6 +200,7 @@ var TableBuilder = /*#__PURE__*/function (_React$Component) {
200
200
  $col: col,
201
201
  $colIndex: colIndex,
202
202
  $divider: divider,
203
+ $isNumeric: col.numeric,
203
204
  $size: size
204
205
  }, tableHeadCellProps, colTableHeadCellProps), col.header);
205
206
  }
@@ -242,6 +243,7 @@ var TableBuilder = /*#__PURE__*/function (_React$Component) {
242
243
  $col: col,
243
244
  $colIndex: colIndex,
244
245
  $divider: divider,
246
+ $isNumeric: col.numeric,
245
247
  role: "button",
246
248
  tabIndex: "0",
247
249
  "aria-label": "".concat(col.tableHeadAriaLabel || col.header, ", ").concat(sortLabel),
@@ -275,6 +277,7 @@ var TableBuilder = /*#__PURE__*/function (_React$Component) {
275
277
  $rowIndex: rowIndex,
276
278
  $isNumeric: col.numeric,
277
279
  $isLastRow: rowIndex === lastRowindex,
280
+ $isSortable: col.sortable,
278
281
  $size: size
279
282
  }, tableBodyCellProps, colTableBodyCellProps), col.children(row, rowIndex));
280
283
  }
@@ -93,7 +93,7 @@ export default (function () {
93
93
  linkActive: themePrimitives.primary300,
94
94
  // List
95
95
  listHeaderFill: themePrimitives.mono600,
96
- listBodyFill: themePrimitives.mono700,
96
+ listBodyFill: themePrimitives.mono800,
97
97
  listIconFill: themePrimitives.mono100,
98
98
  listBorder: themePrimitives.mono500,
99
99
  // ProgressSteps
@@ -22,32 +22,32 @@ export default (function () {
22
22
  buttonPrimaryActive: themePrimitives.primary600,
23
23
  buttonPrimarySelectedFill: themePrimitives.primary600,
24
24
  buttonPrimarySelectedText: themePrimitives.white,
25
- buttonPrimarySpinnerForeground: themePrimitives.primary50,
26
- buttonPrimarySpinnerBackground: themePrimitives.primary500,
25
+ buttonPrimarySpinnerForeground: themePrimitives.accent,
26
+ buttonPrimarySpinnerBackground: themePrimitives.primaryB,
27
27
  buttonSecondaryFill: themePrimitives.primary100,
28
28
  buttonSecondaryText: themePrimitives.primary,
29
29
  buttonSecondaryHover: themePrimitives.primary200,
30
30
  buttonSecondaryActive: themePrimitives.primary300,
31
31
  buttonSecondarySelectedFill: themePrimitives.primary300,
32
32
  buttonSecondarySelectedText: themePrimitives.primary,
33
- buttonSecondarySpinnerForeground: themePrimitives.primary700,
34
- buttonSecondarySpinnerBackground: themePrimitives.primary300,
33
+ buttonSecondarySpinnerForeground: themePrimitives.accent,
34
+ buttonSecondarySpinnerBackground: themePrimitives.primaryB,
35
35
  buttonTertiaryFill: 'transparent',
36
36
  buttonTertiaryText: themePrimitives.primary,
37
37
  buttonTertiaryHover: themePrimitives.primary50,
38
38
  buttonTertiaryActive: themePrimitives.primary100,
39
39
  buttonTertiarySelectedFill: themePrimitives.primary100,
40
40
  buttonTertiarySelectedText: themePrimitives.primary,
41
- buttonTertiarySpinnerForeground: themePrimitives.primary700,
42
- buttonTertiarySpinnerBackground: themePrimitives.primary300,
41
+ buttonTertiarySpinnerForeground: themePrimitives.accent,
42
+ buttonTertiarySpinnerBackground: themePrimitives.primary100,
43
43
  buttonMinimalFill: 'transparent',
44
44
  buttonMinimalText: themePrimitives.primary,
45
45
  buttonMinimalHover: themePrimitives.primary50,
46
46
  buttonMinimalActive: themePrimitives.primary100,
47
47
  buttonMinimalSelectedFill: themePrimitives.primary100,
48
48
  buttonMinimalSelectedText: themePrimitives.primary,
49
- buttonMinimalSpinnerForeground: themePrimitives.primary700,
50
- buttonMinimalSpinnerBackground: themePrimitives.primary300,
49
+ buttonMinimalSpinnerForeground: themePrimitives.accent,
50
+ buttonMinimalSpinnerBackground: themePrimitives.primary100,
51
51
  buttonDisabledFill: themePrimitives.mono200,
52
52
  buttonDisabledText: themePrimitives.mono600,
53
53
  buttonDisabledSpinnerForeground: themePrimitives.mono600,
@@ -93,7 +93,7 @@ export default (function () {
93
93
  linkActive: themePrimitives.primary500,
94
94
  // List
95
95
  listHeaderFill: themePrimitives.white,
96
- listBodyFill: themePrimitives.mono200,
96
+ listBodyFill: themePrimitives.white,
97
97
  listIconFill: themePrimitives.mono500,
98
98
  listBorder: themePrimitives.mono500,
99
99
  // ProgressSteps
@@ -15,6 +15,10 @@ var 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;
@@ -206,26 +206,31 @@ var TimePicker = /*#__PURE__*/function (_React$Component) {
206
206
  _defineProperty(_assertThisInitialized(_this), "getTimeWindowInSeconds", function (step) {
207
207
  var _this$props = _this.props,
208
208
  min = _this$props.minTime,
209
- max = _this$props.maxTime;
209
+ max = _this$props.maxTime,
210
+ ignoreMinMaxDateComponent = _this$props.ignoreMinMaxDateComponent;
210
211
 
211
- var midnight = _this.setTime(_this.props.value, 0, 0, 0);
212
+ var dayStart = _this.setTime(_this.props.value, 0, 0, 0);
212
213
 
213
- if (!min) {
214
- min = midnight;
214
+ var dayEnd = _this.setTime(_this.props.value, 24, 0, 0);
215
+
216
+ if (!min || _this.props.adapter.isBefore(min, dayStart) && !ignoreMinMaxDateComponent) {
217
+ min = dayStart;
218
+ } else {
219
+ min = _this.setTime(_this.props.value, _this.props.adapter.getHours(min), _this.props.adapter.getMinutes(min), _this.props.adapter.getSeconds(min));
215
220
  }
216
221
 
217
- if (!max) {
218
- max = _this.setTime(_this.props.value, 24, 0, 0);
222
+ if (!max || _this.props.adapter.isAfter(max, dayEnd) && !ignoreMinMaxDateComponent) {
223
+ max = dayEnd;
219
224
  } else {
220
- // maxTime (if provided) should be inclusive, so add an extra step here
221
- max = _this.props.adapter.setSeconds(_this.props.adapter.date(max), _this.props.adapter.getSeconds(max) + step);
225
+ 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
226
+ _this.props.adapter.getSeconds(max) + 1);
222
227
  }
223
228
 
224
229
  var minDate = _this.props.adapter.toJsDate(min);
225
230
 
226
231
  var maxDate = _this.props.adapter.toJsDate(max);
227
232
 
228
- var midnightDate = _this.props.adapter.toJsDate(midnight);
233
+ var midnightDate = _this.props.adapter.toJsDate(dayStart);
229
234
 
230
235
  return {
231
236
  start: (minDate - midnightDate) / 1000,
@@ -312,7 +317,7 @@ var TimePicker = /*#__PURE__*/function (_React$Component) {
312
317
  steps: steps,
313
318
  value: this.props.nullable ? undefined : {
314
319
  id: closestStep,
315
- label: this.secondsToLabel(closestStep, undefined)
320
+ label: this.secondsToLabel(closestStep, this.props.format)
316
321
  }
317
322
  });
318
323
 
@@ -414,7 +419,8 @@ _defineProperty(TimePicker, "defaultProps", {
414
419
  format: '12',
415
420
  step: 900,
416
421
  creatable: false,
417
- adapter: dateFnsAdapter
422
+ adapter: dateFnsAdapter,
423
+ ignoreMinMaxDateComponent: false
418
424
  });
419
425
 
420
426
  export default TimePicker;
@@ -28,6 +28,10 @@ import { getEndPosition } from '../popover/utils.js';
28
28
  export var Body = styled('div', function (props) {
29
29
  return _objectSpread(_objectSpread({}, getBodyStyles(props)), {}, {
30
30
  backgroundColor: props.$theme.colors.tooltipBackground,
31
+ borderTopLeftRadius: props.$theme.borders.radius300,
32
+ borderTopRightRadius: props.$theme.borders.radius300,
33
+ borderBottomRightRadius: props.$theme.borders.radius300,
34
+ borderBottomLeftRadius: props.$theme.borders.radius300,
31
35
  boxShadow: props.$theme.lighting.shadow400,
32
36
  color: props.$theme.colors.tooltipText,
33
37
  // Reset transition property to opacity only, and static transform
@@ -39,6 +43,10 @@ Body.displayName = "Body";
39
43
  export var Inner = styled('div', function (props) {
40
44
  return _objectSpread(_objectSpread(_objectSpread({}, getInnerStyles(props)), {}, {
41
45
  backgroundColor: props.$theme.colors.tooltipBackground,
46
+ borderTopLeftRadius: props.$theme.borders.radius300,
47
+ borderTopRightRadius: props.$theme.borders.radius300,
48
+ borderBottomRightRadius: props.$theme.borders.radius300,
49
+ borderBottomLeftRadius: props.$theme.borders.radius300,
42
50
  paddingTop: props.$theme.sizing.scale300,
43
51
  paddingBottom: props.$theme.sizing.scale300,
44
52
  paddingLeft: props.$theme.sizing.scale600,
@@ -62,6 +62,7 @@ var Tooltip = /*#__PURE__*/function (_React$Component) {
62
62
  Inner: StyledInner
63
63
  }, this.props.overrides);
64
64
  return /*#__PURE__*/React.createElement(Popover, _extends({
65
+ autoFocus: false,
65
66
  "data-baseweb": "tooltip"
66
67
  }, this.props, {
67
68
  overrides: overrides
package/helper/helper.js CHANGED
@@ -55,6 +55,7 @@ function Helper(props) {
55
55
  React.createElement(_index.Popover, _extends({
56
56
  "data-baseweb": "helper"
57
57
  }, restProps, {
58
+ autoFocus: false,
58
59
  placement: placement,
59
60
  overrides: mergedOverrides
60
61
  }))
@@ -36,6 +36,7 @@ export function Helper(props: PropsT) {
36
36
  <Popover
37
37
  data-baseweb="helper"
38
38
  {...restProps}
39
+ autoFocus={false}
39
40
  placement={placement}
40
41
  overrides={mergedOverrides}
41
42
  />
package/layer/layer.js CHANGED
@@ -141,6 +141,14 @@ var LayerComponent = /*#__PURE__*/function (_React$Component) {
141
141
  if (host && host !== prevProps.host && prevProps.host === null) {
142
142
  this.addContainer(host);
143
143
  }
144
+
145
+ if (prevProps.isHoverLayer != this.props.isHoverLayer) {
146
+ if (this.props.isHoverLayer) {
147
+ this.context.removeDocClickHandler(this.onDocumentClick);
148
+ } else {
149
+ this.context.addDocClickHandler(this.onDocumentClick);
150
+ }
151
+ }
144
152
  }
145
153
  }, {
146
154
  key: "componentWillUnmount",
@@ -61,9 +61,18 @@ class LayerComponent extends React.Component<
61
61
  if (mountNode) {
62
62
  return;
63
63
  }
64
+
64
65
  if (host && host !== prevProps.host && prevProps.host === null) {
65
66
  this.addContainer(host);
66
67
  }
68
+
69
+ if (prevProps.isHoverLayer != this.props.isHoverLayer) {
70
+ if (this.props.isHoverLayer) {
71
+ this.context.removeDocClickHandler(this.onDocumentClick);
72
+ } else {
73
+ this.context.addDocClickHandler(this.onDocumentClick);
74
+ }
75
+ }
67
76
  }
68
77
 
69
78
  componentWillUnmount() {
package/link/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export interface LinkProps
6
6
  React.AnchorHTMLAttributes<HTMLAnchorElement>,
7
7
  HTMLAnchorElement
8
8
  > {
9
+ animateUnderline?: boolean;
9
10
  target?: '_self' | '_blank' | '_parent' | '_top';
10
11
  }
11
12
 
package/list/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import {HeaderNavigationOverrides} from 'baseui/header-navigation';
1
2
  import * as React from 'react';
2
3
  import {StyletronComponent} from 'styletron-react';
3
4
  import {Override} from '../overrides';
@@ -84,3 +85,38 @@ export const StyledEndEnhancerContainer: StyletronComponent<{}>;
84
85
  export const StyledArtworkContainer: StyletronComponent<
85
86
  StyledArtworkContainerPropsT
86
87
  >;
88
+
89
+ export interface HeadingPropsT {
90
+ heading: React.ReactNode;
91
+ subHeading?: React.ReactNode;
92
+ endEnhancer?: React.ReactNode;
93
+ endEnhancerDescription?: React.ReactNode;
94
+ overrides?: HeaderNavigationOverrides;
95
+ maxLines?: number;
96
+ }
97
+
98
+ export interface StyledHeadingEndEnhancerContainerPropsT {
99
+ $isText: boolean;
100
+ }
101
+
102
+ export type StyledHeadingHeadingPropsT = {
103
+ $maxLines: 1 | 2;
104
+ };
105
+
106
+ export const ListHeading: React.ForwardRefExoticComponent<
107
+ HeadingPropsT & React.RefAttributes<HTMLLIElement>
108
+ >;
109
+
110
+ export const StyledHeadingRoot: StyletronComponent<{}>;
111
+ export const StyledHeadingContent: StyletronComponent<{}>;
112
+ export const StyledHeadingContentRow: StyletronComponent<{}>;
113
+ export const StyledHeadingMainHeading: StyletronComponent<
114
+ StyledHeadingHeadingPropsT
115
+ >;
116
+ export const StyledHeadingSubHeading: StyletronComponent<
117
+ StyledHeadingHeadingPropsT
118
+ >;
119
+ export const StyledHeadingEndEnhancerContainer: StyletronComponent<
120
+ StyledHeadingEndEnhancerContainerPropsT
121
+ >;
122
+ export const StyledHeadingEndEnhancerDescriptionContainer: StyletronComponent<{}>;
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -7,12 +9,16 @@ exports.default = void 0;
7
9
 
8
10
  var _react = _interopRequireDefault(require("react"));
9
11
 
10
- var _reactIs = _interopRequireDefault(require("react-is"));
12
+ var ReactIs = _interopRequireWildcard(require("react-is"));
11
13
 
12
14
  var _overrides = require("../helpers/overrides.js");
13
15
 
14
16
  var _styledComponents = require("./styled-components.js");
15
17
 
18
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
19
+
20
+ 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; }
21
+
16
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
23
 
18
24
  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); }
@@ -47,7 +53,7 @@ function RenderNode(props) {
47
53
  return Component;
48
54
  }
49
55
 
50
- if (_reactIs.default.isValidElementType(Component)) {
56
+ if (ReactIs.isValidElementType(Component)) {
51
57
  // $FlowFixMe
52
58
  return /*#__PURE__*/_react.default.createElement(Component, restProps);
53
59
  } // $FlowFixMe
@@ -56,9 +62,14 @@ function RenderNode(props) {
56
62
  return Component;
57
63
  }
58
64
 
65
+ function isMaxLinesValid(maxLines) {
66
+ return maxLines === 1 || maxLines === 2;
67
+ }
68
+
59
69
  var ListHeading = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
60
70
  var _props$overrides = props.overrides,
61
- overrides = _props$overrides === void 0 ? {} : _props$overrides;
71
+ overrides = _props$overrides === void 0 ? {} : _props$overrides,
72
+ maxLines = props.maxLines;
62
73
  var EndEnhancer = props.endEnhancer;
63
74
  var EndEnhancerDescription = props.endEnhancerDescription;
64
75
  var SubHeading = props.subHeading;
@@ -95,15 +106,21 @@ var ListHeading = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
95
106
 
96
107
  var isEndEnhancerString = typeof EndEnhancer === 'string';
97
108
 
98
- if (isEndEnhancerString && EndEnhancerDescription) {
99
- console.warn('endEnhancerDescription will not be rendered if endEnhancer is not a string');
109
+ if (process.env.NODE_ENV !== "production") {
110
+ if (isEndEnhancerString && EndEnhancerDescription) {
111
+ console.warn('endEnhancerDescription will not be rendered if endEnhancer is not a string');
112
+ }
113
+
114
+ if (maxLines && !isMaxLinesValid(maxLines)) {
115
+ console.warn('maxLines must be 1 or 2.');
116
+ }
100
117
  }
101
118
 
102
119
  return /*#__PURE__*/_react.default.createElement(Root // eslint-disable-next-line flowtype/no-weak-types
103
120
  , _extends({
104
121
  ref: ref
105
122
  }, rootProps), /*#__PURE__*/_react.default.createElement(Content, contentProps, /*#__PURE__*/_react.default.createElement(_styledComponents.StyledHeadingContentRow, null, /*#__PURE__*/_react.default.createElement(HeadingContainer, _extends({
106
- $maxLines: props.maxLines
123
+ $maxLines: isMaxLinesValid(maxLines) ? maxLines : 1
107
124
  }, headingContainerProps), /*#__PURE__*/_react.default.createElement(RenderNode, {
108
125
  component: props.heading
109
126
  })), EndEnhancer && /*#__PURE__*/_react.default.createElement(EndEnhancerContainer, _extends({
@@ -111,7 +128,7 @@ var ListHeading = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
111
128
  }, endEnhancerContainerProps), /*#__PURE__*/_react.default.createElement(RenderNode, {
112
129
  component: EndEnhancer
113
130
  }))), (SubHeading || EndEnhancerDescription) && /*#__PURE__*/_react.default.createElement(_styledComponents.StyledHeadingContentRow, null, /*#__PURE__*/_react.default.createElement(SubHeadingContainer, _extends({
114
- $maxLines: props.maxLines
131
+ $maxLines: isMaxLinesValid(maxLines) ? maxLines : 1
115
132
  }, subHeadingContainerProps), /*#__PURE__*/_react.default.createElement(RenderNode, {
116
133
  component: SubHeading
117
134
  })), EndEnhancerDescription && isEndEnhancerString && /*#__PURE__*/_react.default.createElement(EndEnhancerDescriptionContainer, endEnhancerDescriptionContainerProps, /*#__PURE__*/_react.default.createElement(RenderNode, {
@@ -7,7 +7,7 @@ LICENSE file in the root directory of this source tree.
7
7
  // @flow
8
8
 
9
9
  import React from 'react';
10
- import ReactIs from 'react-is';
10
+ import * as ReactIs from 'react-is';
11
11
 
12
12
  import {getOverrides} from '../helpers/overrides.js';
13
13
 
@@ -39,9 +39,13 @@ function RenderNode(props) {
39
39
  return Component;
40
40
  }
41
41
 
42
+ function isMaxLinesValid(maxLines) {
43
+ return maxLines === 1 || maxLines === 2;
44
+ }
45
+
42
46
  const ListHeading = React.forwardRef<HeadingPropsT, HTMLLIElement>(
43
47
  (props: HeadingPropsT, ref) => {
44
- const {overrides = {}} = props;
48
+ const {overrides = {}, maxLines} = props;
45
49
  const EndEnhancer = props.endEnhancer;
46
50
  const EndEnhancerDescription = props.endEnhancerDescription;
47
51
  const SubHeading = props.subHeading;
@@ -73,10 +77,15 @@ const ListHeading = React.forwardRef<HeadingPropsT, HTMLLIElement>(
73
77
 
74
78
  const isEndEnhancerString = typeof EndEnhancer === 'string';
75
79
 
76
- if (isEndEnhancerString && EndEnhancerDescription) {
77
- console.warn(
78
- 'endEnhancerDescription will not be rendered if endEnhancer is not a string',
79
- );
80
+ if (__DEV__) {
81
+ if (isEndEnhancerString && EndEnhancerDescription) {
82
+ console.warn(
83
+ 'endEnhancerDescription will not be rendered if endEnhancer is not a string',
84
+ );
85
+ }
86
+ if (maxLines && !isMaxLinesValid(maxLines)) {
87
+ console.warn('maxLines must be 1 or 2.');
88
+ }
80
89
  }
81
90
 
82
91
  return (
@@ -89,7 +98,7 @@ const ListHeading = React.forwardRef<HeadingPropsT, HTMLLIElement>(
89
98
  {/* ----- Top Row -------------------------- */}
90
99
  <StyledHeadingContentRow>
91
100
  <HeadingContainer
92
- $maxLines={props.maxLines}
101
+ $maxLines={isMaxLinesValid(maxLines) ? maxLines : 1}
93
102
  {...headingContainerProps}
94
103
  >
95
104
  <RenderNode component={props.heading} />
@@ -109,7 +118,7 @@ const ListHeading = React.forwardRef<HeadingPropsT, HTMLLIElement>(
109
118
  {(SubHeading || EndEnhancerDescription) && (
110
119
  <StyledHeadingContentRow>
111
120
  <SubHeadingContainer
112
- $maxLines={props.maxLines}
121
+ $maxLines={isMaxLinesValid(maxLines) ? maxLines : 1}
113
122
  {...subHeadingContainerProps}
114
123
  >
115
124
  <RenderNode component={SubHeading} />