baseui 10.0.0 → 10.3.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 (162) hide show
  1. package/app-nav-bar/index.d.ts +24 -0
  2. package/app-nav-bar/mobile-menu.js +5 -3
  3. package/app-nav-bar/mobile-menu.js.flow +3 -2
  4. package/app-nav-bar/user-menu.js +5 -3
  5. package/app-nav-bar/user-menu.js.flow +3 -2
  6. package/block/index.d.ts +7 -0
  7. package/combobox/combobox.js +4 -9
  8. package/combobox/combobox.js.flow +4 -3
  9. package/combobox/index.d.ts +1 -1
  10. package/data-table/filter-menu.js +5 -3
  11. package/data-table/filter-menu.js.flow +3 -2
  12. package/data-table/header-cell.js +1 -1
  13. package/data-table/header-cell.js.flow +1 -1
  14. package/datepicker/calendar.js +6 -1
  15. package/datepicker/calendar.js.flow +4 -0
  16. package/datepicker/datepicker.js +1 -1
  17. package/datepicker/datepicker.js.flow +5 -2
  18. package/datepicker/index.d.ts +9 -1
  19. package/datepicker/month.js +2 -1
  20. package/datepicker/month.js.flow +8 -1
  21. package/datepicker/types.js.flow +13 -6
  22. package/es/app-nav-bar/mobile-menu.js +5 -5
  23. package/es/app-nav-bar/user-menu.js +5 -5
  24. package/es/combobox/combobox.js +4 -3
  25. package/es/data-table/filter-menu.js +3 -2
  26. package/es/data-table/header-cell.js +1 -1
  27. package/es/datepicker/calendar.js +6 -1
  28. package/es/datepicker/datepicker.js +1 -1
  29. package/es/datepicker/month.js +2 -1
  30. package/es/form-control/form-control.js +6 -14
  31. package/es/helper/helper.js +10 -6
  32. package/es/helpers/base-provider.js +4 -1
  33. package/es/input/input.js +9 -5
  34. package/es/layer/layer.js +5 -1
  35. package/es/layout-grid/grid.js +16 -10
  36. package/es/layout-grid/styled-components.js +24 -12
  37. package/es/list/index.js +1 -0
  38. package/es/list/list-heading.js +77 -0
  39. package/es/list/list-item.js +1 -1
  40. package/es/list/menu-adapter.js +4 -2
  41. package/es/list/styled-components.js +101 -4
  42. package/es/menu/stateful-container.js +41 -27
  43. package/es/phone-input/base-country-picker.js +2 -0
  44. package/es/popover/popover.js +21 -10
  45. package/es/select/select-component.js +34 -22
  46. package/es/table-semantic/styled-components.js +8 -10
  47. package/es/table-semantic/table-builder.js +3 -2
  48. package/es/table-semantic/table.js +1 -0
  49. package/es/tag/index.js +1 -1
  50. package/es/tag/styled-components.js +2 -4
  51. package/es/tag/tag.js +16 -16
  52. package/es/textarea/textarea.js +1 -2
  53. package/es/themes/dark-theme/color-semantic-tokens.js +18 -8
  54. package/es/themes/light-theme/color-semantic-tokens.js +14 -4
  55. package/es/tokens/colors.js +3 -3
  56. package/es/tree-view/tree-view.js +0 -2
  57. package/esm/app-nav-bar/mobile-menu.js +5 -3
  58. package/esm/app-nav-bar/user-menu.js +5 -3
  59. package/esm/combobox/combobox.js +4 -7
  60. package/esm/data-table/filter-menu.js +4 -3
  61. package/esm/data-table/header-cell.js +1 -1
  62. package/esm/datepicker/calendar.js +6 -1
  63. package/esm/datepicker/datepicker.js +1 -1
  64. package/esm/datepicker/month.js +2 -1
  65. package/esm/form-control/form-control.js +21 -33
  66. package/esm/helper/helper.js +10 -6
  67. package/esm/helpers/base-provider.js +4 -1
  68. package/esm/input/input.js +9 -5
  69. package/esm/layer/layer.js +5 -1
  70. package/esm/layout-grid/grid.js +20 -10
  71. package/esm/layout-grid/styled-components.js +52 -35
  72. package/esm/list/index.js +1 -0
  73. package/esm/list/list-heading.js +116 -0
  74. package/esm/list/list-item.js +1 -1
  75. package/esm/list/menu-adapter.js +4 -2
  76. package/esm/list/styled-components.js +99 -3
  77. package/esm/menu/stateful-container.js +56 -40
  78. package/esm/phone-input/base-country-picker.js +2 -0
  79. package/esm/popover/popover.js +25 -16
  80. package/esm/select/select-component.js +87 -79
  81. package/esm/table-semantic/styled-components.js +8 -10
  82. package/esm/table-semantic/table-builder.js +3 -2
  83. package/esm/table-semantic/table.js +1 -0
  84. package/esm/tag/index.js +1 -1
  85. package/esm/tag/styled-components.js +2 -4
  86. package/esm/tag/tag.js +18 -16
  87. package/esm/textarea/textarea.js +1 -2
  88. package/esm/themes/dark-theme/color-semantic-tokens.js +18 -8
  89. package/esm/themes/light-theme/color-semantic-tokens.js +14 -4
  90. package/esm/tokens/colors.js +3 -3
  91. package/esm/tree-view/tree-view.js +0 -2
  92. package/form-control/form-control.js +21 -35
  93. package/form-control/form-control.js.flow +37 -35
  94. package/helper/helper.js +10 -6
  95. package/helper/helper.js.flow +1 -0
  96. package/helpers/base-provider.js +5 -1
  97. package/helpers/base-provider.js.flow +4 -1
  98. package/index.d.ts +1 -0
  99. package/input/input.js +9 -5
  100. package/input/input.js.flow +9 -5
  101. package/layer/layer.js +5 -1
  102. package/layer/layer.js.flow +3 -1
  103. package/layer/types.js.flow +4 -0
  104. package/layout-grid/grid.js +19 -9
  105. package/layout-grid/grid.js.flow +52 -26
  106. package/layout-grid/index.d.ts +1 -0
  107. package/layout-grid/styled-components.js +54 -36
  108. package/layout-grid/styled-components.js.flow +48 -24
  109. package/layout-grid/types.js.flow +12 -0
  110. package/list/index.js +9 -0
  111. package/list/index.js.flow +1 -0
  112. package/list/list-heading.js +124 -0
  113. package/list/list-heading.js.flow +138 -0
  114. package/list/list-item.js +1 -1
  115. package/list/list-item.js.flow +1 -1
  116. package/list/menu-adapter.js +5 -2
  117. package/list/menu-adapter.js.flow +21 -11
  118. package/list/styled-components.js +108 -5
  119. package/list/styled-components.js.flow +103 -2
  120. package/list/types.js.flow +22 -0
  121. package/menu/stateful-container.js +57 -42
  122. package/menu/stateful-container.js.flow +38 -26
  123. package/package.json +1 -1
  124. package/phone-input/base-country-picker.js +2 -0
  125. package/phone-input/base-country-picker.js.flow +2 -0
  126. package/popover/popover.js +26 -17
  127. package/popover/popover.js.flow +19 -7
  128. package/select/select-component.js +87 -79
  129. package/select/select-component.js.flow +119 -103
  130. package/snackbar/index.d.ts +3 -3
  131. package/snackbar/types.js.flow +1 -1
  132. package/table-semantic/index.d.ts +1 -0
  133. package/table-semantic/styled-components.js +8 -10
  134. package/table-semantic/styled-components.js.flow +20 -20
  135. package/table-semantic/table-builder.js +3 -2
  136. package/table-semantic/table-builder.js.flow +3 -2
  137. package/table-semantic/table.js +1 -0
  138. package/table-semantic/table.js.flow +1 -0
  139. package/tag/index.d.ts +0 -1
  140. package/tag/index.js +0 -6
  141. package/tag/index.js.flow +0 -1
  142. package/tag/styled-components.js +3 -6
  143. package/tag/styled-components.js.flow +0 -2
  144. package/tag/tag.js +19 -14
  145. package/tag/tag.js.flow +13 -19
  146. package/textarea/textarea.js +1 -2
  147. package/textarea/textarea.js.flow +0 -1
  148. package/theme.ts +12 -0
  149. package/themes/dark-theme/color-semantic-tokens.js +18 -8
  150. package/themes/dark-theme/color-semantic-tokens.js.flow +18 -7
  151. package/themes/light-theme/color-semantic-tokens.js +14 -4
  152. package/themes/light-theme/color-semantic-tokens.js.flow +14 -3
  153. package/themes/types.js.flow +11 -0
  154. package/toast/index.d.ts +1 -0
  155. package/tokens/colors.js +3 -3
  156. package/tokens/colors.js.flow +3 -3
  157. package/tree-view/tree-view.js +0 -2
  158. package/tree-view/tree-view.js.flow +0 -1
  159. package/es/utils/get-bui-id.js +0 -33
  160. package/esm/utils/get-bui-id.js +0 -33
  161. package/utils/get-bui-id.js +0 -41
  162. package/utils/get-bui-id.js.flow +0 -39
@@ -32,7 +32,7 @@ LICENSE file in the root directory of this source tree.
32
32
  */
33
33
  import * as React from 'react';
34
34
  import { getOverride, getOverrideProps } from '../helpers/overrides.js';
35
- import getBuiId from '../utils/get-bui-id.js';
35
+ import { UIDConsumer } from 'react-uid';
36
36
  import { Label as StyledLabel, Caption as StyledCaption, ControlContainer as StyledControlContainer } from './styled-components.js';
37
37
 
38
38
  function chooseRenderedHint(caption, error, positive, sharedProps) {
@@ -57,28 +57,14 @@ var FormControl = /*#__PURE__*/function (_React$Component) {
57
57
  var _super = _createSuper(FormControl);
58
58
 
59
59
  function FormControl() {
60
- var _this;
61
-
62
60
  _classCallCheck(this, FormControl);
63
61
 
64
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
65
- args[_key] = arguments[_key];
66
- }
67
-
68
- _this = _super.call.apply(_super, [this].concat(args));
69
-
70
- _defineProperty(_assertThisInitialized(_this), "state", {
71
- captionId: getBuiId()
72
- });
73
-
74
- return _this;
62
+ return _super.apply(this, arguments);
75
63
  }
76
64
 
77
65
  _createClass(FormControl, [{
78
66
  key: "render",
79
67
  value: function render() {
80
- var _this2 = this;
81
-
82
68
  var _this$props = this.props,
83
69
  _this$props$overrides = _this$props.overrides,
84
70
  LabelOverride = _this$props$overrides.Label,
@@ -112,23 +98,25 @@ var FormControl = /*#__PURE__*/function (_React$Component) {
112
98
  return /*#__PURE__*/React.createElement(React.Fragment, null, label && /*#__PURE__*/React.createElement(Label, _extends({
113
99
  "data-baseweb": "form-control-label",
114
100
  htmlFor: htmlFor || onlyChildProps.id
115
- }, sharedProps, getOverrideProps(LabelOverride)), typeof label === 'function' ? label(sharedProps) : label), /*#__PURE__*/React.createElement(ControlContainer, _extends({
116
- "data-baseweb": "form-control-container"
117
- }, sharedProps, getOverrideProps(ControlContainerOverride)), React.Children.map(children, function (child, index) {
118
- if (!child) return;
119
- var key = child.key || String(index);
120
- return /*#__PURE__*/React.cloneElement(child, {
121
- key: key,
122
- 'aria-errormessage': error ? _this2.state.captionId : null,
123
- 'aria-describedby': caption || positive ? _this2.state.captionId : null,
124
- disabled: onlyChildProps.disabled || disabled,
125
- error: typeof onlyChildProps.error !== 'undefined' ? onlyChildProps.error : error,
126
- positive: typeof onlyChildProps.positive !== 'undefined' ? onlyChildProps.positive : positive
127
- });
128
- }), (caption || error || positive) && /*#__PURE__*/React.createElement(Caption, _extends({
129
- "data-baseweb": "form-control-caption",
130
- id: this.state.captionId
131
- }, sharedProps, getOverrideProps(CaptionOverride)), hint)));
101
+ }, sharedProps, getOverrideProps(LabelOverride)), typeof label === 'function' ? label(sharedProps) : label), /*#__PURE__*/React.createElement(UIDConsumer, null, function (captionId) {
102
+ return /*#__PURE__*/React.createElement(ControlContainer, _extends({
103
+ "data-baseweb": "form-control-container"
104
+ }, sharedProps, getOverrideProps(ControlContainerOverride)), React.Children.map(children, function (child, index) {
105
+ if (!child) return;
106
+ var key = child.key || String(index);
107
+ return /*#__PURE__*/React.cloneElement(child, {
108
+ key: key,
109
+ 'aria-errormessage': error ? captionId : null,
110
+ 'aria-describedby': caption || positive ? captionId : null,
111
+ disabled: onlyChildProps.disabled || disabled,
112
+ error: typeof onlyChildProps.error !== 'undefined' ? onlyChildProps.error : error,
113
+ positive: typeof onlyChildProps.positive !== 'undefined' ? onlyChildProps.positive : positive
114
+ });
115
+ }), (caption || error || positive) && /*#__PURE__*/React.createElement(Caption, _extends({
116
+ "data-baseweb": "form-control-caption",
117
+ id: captionId
118
+ }, sharedProps, getOverrideProps(CaptionOverride)), hint));
119
+ }));
132
120
  }
133
121
  }]);
134
122
 
@@ -38,12 +38,16 @@ export function Helper(props) {
38
38
  }
39
39
  }
40
40
  }, overrides);
41
- return /*#__PURE__*/React.createElement(Popover, _extends({
42
- "data-baseweb": "helper"
43
- }, restProps, {
44
- placement: placement,
45
- overrides: mergedOverrides
46
- }));
41
+ return (
42
+ /*#__PURE__*/
43
+ //$FlowFixMe
44
+ React.createElement(Popover, _extends({
45
+ "data-baseweb": "helper"
46
+ }, restProps, {
47
+ placement: placement,
48
+ overrides: mergedOverrides
49
+ }))
50
+ );
47
51
  }
48
52
  Helper.defaultProps = _objectSpread(_objectSpread({}, Popover.defaultProps), {}, {
49
53
  placement: PLACEMENT.bottom,
@@ -5,6 +5,7 @@ This source code is licensed under the MIT license found in the
5
5
  LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import * as React from 'react';
8
+ import { UIDReset } from 'react-uid';
8
9
  import { LayersManager } from '../layer/index.js';
9
10
  import { ThemeProvider } from '../styles/index.js';
10
11
 
@@ -16,9 +17,11 @@ var BaseProvider = function BaseProvider(props) {
16
17
  return /*#__PURE__*/React.createElement(LayersManager, {
17
18
  zIndex: zIndex,
18
19
  overrides: overrides
20
+ }, /*#__PURE__*/React.createElement(UIDReset, {
21
+ prefix: "bui"
19
22
  }, /*#__PURE__*/React.createElement(ThemeProvider, {
20
23
  theme: theme
21
- }, children));
24
+ }, children)));
22
25
  };
23
26
 
24
27
  export default BaseProvider;
@@ -134,14 +134,14 @@ var Input = /*#__PURE__*/function (_React$Component) {
134
134
  }, sharedProps, rootProps, {
135
135
  $adjoined: getAdjoinedProp(startEnhancer, endEnhancer),
136
136
  $hasIconTrailing: this.props.clearable || this.props.type == 'password'
137
- }), startEnhancer && /*#__PURE__*/React.createElement(StartEnhancer, _extends({}, sharedProps, startEnhancerProps, {
137
+ }), isEnhancer(startEnhancer) && /*#__PURE__*/React.createElement(StartEnhancer, _extends({}, sharedProps, startEnhancerProps, {
138
138
  $position: ENHANCER_POSITION.start
139
139
  }), typeof startEnhancer === 'function' ? startEnhancer(sharedProps) : startEnhancer), /*#__PURE__*/React.createElement(BaseInput, _extends({}, restProps, {
140
140
  overrides: restOverrides,
141
141
  adjoined: getAdjoinedProp(startEnhancer, endEnhancer),
142
142
  onFocus: this.onFocus,
143
143
  onBlur: this.onBlur
144
- })), endEnhancer && /*#__PURE__*/React.createElement(EndEnhancer, _extends({}, sharedProps, endEnhancerProps, {
144
+ })), isEnhancer(endEnhancer) && /*#__PURE__*/React.createElement(EndEnhancer, _extends({}, sharedProps, endEnhancerProps, {
145
145
  $position: ENHANCER_POSITION.end
146
146
  }), typeof endEnhancer === 'function' ? endEnhancer(sharedProps) : endEnhancer));
147
147
  }
@@ -167,15 +167,19 @@ _defineProperty(Input, "defaultProps", {
167
167
  });
168
168
 
169
169
  function getAdjoinedProp(startEnhancer, endEnhancer) {
170
- if (startEnhancer && endEnhancer) {
170
+ if (isEnhancer(startEnhancer) && isEnhancer(endEnhancer)) {
171
171
  return ADJOINED.both;
172
- } else if (startEnhancer) {
172
+ } else if (isEnhancer(startEnhancer)) {
173
173
  return ADJOINED.left;
174
- } else if (endEnhancer) {
174
+ } else if (isEnhancer(endEnhancer)) {
175
175
  return ADJOINED.right;
176
176
  }
177
177
 
178
178
  return ADJOINED.none;
179
179
  }
180
180
 
181
+ function isEnhancer(enhancer) {
182
+ return Boolean(enhancer || enhancer === 0);
183
+ }
184
+
181
185
  export default Input;
@@ -87,7 +87,11 @@ var LayerComponent = /*#__PURE__*/function (_React$Component) {
87
87
  key: "componentDidMount",
88
88
  value: function componentDidMount() {
89
89
  this.context.addEscapeHandler(this.onEscape);
90
- this.context.addDocClickHandler(this.onDocumentClick);
90
+
91
+ if (!this.props.isHoverLayer) {
92
+ this.context.addDocClickHandler(this.onDocumentClick);
93
+ }
94
+
91
95
  var _this$props = this.props,
92
96
  onMount = _this$props.onMount,
93
97
  mountNode = _this$props.mountNode,
@@ -27,7 +27,7 @@ LICENSE file in the root directory of this source tree.
27
27
  import * as React from 'react';
28
28
  import { getOverrides } from '../helpers/overrides.js';
29
29
  import { STYLE, STYLE_VALUES } from './constants.js';
30
- import { StyledGrid as DefaultStyledGrid } from './styled-components.js';
30
+ import { StyledGrid as DefaultStyledGrid, StyledGridWrapper as DefaultStyledGridWrapper } from './styled-components.js';
31
31
  export var GridContext = /*#__PURE__*/React.createContext({});
32
32
  export default function Grid(_ref) {
33
33
  var align = _ref.align,
@@ -49,32 +49,42 @@ export default function Grid(_ref) {
49
49
  StyledGrid = _getOverrides2[0],
50
50
  overrideProps = _getOverrides2[1];
51
51
 
52
+ var _getOverrides3 = getOverrides(overrides.GridWrapper, DefaultStyledGridWrapper),
53
+ _getOverrides4 = _slicedToArray(_getOverrides3, 2),
54
+ StyledGridWrapper = _getOverrides4[0],
55
+ wrapperProps = _getOverrides4[1];
56
+
52
57
  var presetStyleValues = STYLE_VALUES[gridStyle];
53
- var gridStyleValues = presetStyleValues && {
58
+ var gridStyleValues = presetStyleValues ? {
54
59
  $gridGutters: presetStyleValues.gutters,
55
60
  $gridMargins: presetStyleValues.margins,
56
61
  $gridMaxWidth: presetStyleValues.maxWidth,
57
62
  $gridUnit: presetStyleValues.unit
58
- };
63
+ } : {};
59
64
  var gridContextStyleValues = presetStyleValues && {
60
65
  gridColumns: presetStyleValues.columns,
61
66
  gridGaps: presetStyleValues.gaps,
62
67
  gridGutters: presetStyleValues.gutters,
63
68
  gridUnit: presetStyleValues.unit
64
69
  };
65
- return /*#__PURE__*/React.createElement(StyledGrid, _extends({
70
+ return /*#__PURE__*/React.createElement(StyledGridWrapper, _extends({
71
+ $behavior: behavior,
72
+ $gridMargins: gridMargins != null ? gridMargins : gridStyleValues.$gridMargins,
73
+ $gridMaxWidth: gridMaxWidth != null ? gridMaxWidth : gridStyleValues.$gridMaxWidth,
74
+ $gridUnit: gridUnit != null ? gridUnit : gridStyleValues.$gridUnit
75
+ }, wrapperProps), /*#__PURE__*/React.createElement(StyledGrid, _extends({
66
76
  $align: align,
67
77
  $behavior: behavior,
68
- $gridGutters: gridGutters,
69
- $gridMargins: gridMargins,
70
- $gridMaxWidth: gridMaxWidth,
71
- $gridUnit: gridUnit
72
- }, gridStyleValues, overrideProps), /*#__PURE__*/React.createElement(GridContext.Provider, {
78
+ $gridGutters: gridGutters != null ? gridGutters : gridStyleValues.$gridGutters,
79
+ $gridMargins: gridMargins != null ? gridMargins : gridStyleValues.$gridMargins,
80
+ $gridMaxWidth: gridMaxWidth != null ? gridMaxWidth : gridStyleValues.$gridMaxWidth,
81
+ $gridUnit: gridUnit != null ? gridUnit : gridStyleValues.$gridUnit
82
+ }, overrideProps), /*#__PURE__*/React.createElement(GridContext.Provider, {
73
83
  value: _objectSpread({
74
84
  gridColumns: gridColumns,
75
85
  gridGaps: gridGaps,
76
86
  gridGutters: gridGutters,
77
87
  gridUnit: gridUnit
78
88
  }, gridContextStyleValues)
79
- }, children));
89
+ }, children)));
80
90
  }
@@ -13,60 +13,78 @@ LICENSE file in the root directory of this source tree.
13
13
  import { styled } from '../styles/index.js';
14
14
  import { getMediaQueries } from '../helpers/responsive-helpers.js';
15
15
  import { BEHAVIOR } from './constants.js';
16
- export var StyledGrid = styled('div', function (_ref) {
16
+ export var StyledGridWrapper = styled('div', function (_ref) {
17
17
  var $theme = _ref.$theme,
18
- _ref$$align = _ref.$align,
19
- $align = _ref$$align === void 0 ? null : _ref$$align,
20
18
  _ref$$behavior = _ref.$behavior,
21
19
  $behavior = _ref$$behavior === void 0 ? BEHAVIOR.fixed : _ref$$behavior,
22
- _ref$$gridGutters = _ref.$gridGutters,
23
- $gridGutters = _ref$$gridGutters === void 0 ? $theme.grid.gutters : _ref$$gridGutters,
24
20
  _ref$$gridMargins = _ref.$gridMargins,
25
21
  $gridMargins = _ref$$gridMargins === void 0 ? $theme.grid.margins : _ref$$gridMargins,
26
22
  _ref$$gridMaxWidth = _ref.$gridMaxWidth,
27
23
  $gridMaxWidth = _ref$$gridMaxWidth === void 0 ? $theme.grid.maxWidth : _ref$$gridMaxWidth,
28
24
  _ref$$gridUnit = _ref.$gridUnit,
29
25
  $gridUnit = _ref$$gridUnit === void 0 ? $theme.grid.unit : _ref$$gridUnit;
26
+ return {
27
+ margin: 'auto',
28
+ maxWidth: $behavior === BEHAVIOR.fixed ? "".concat($gridMaxWidth + 2 * getResponsiveNumber($gridMargins, Infinity) - 1).concat($gridUnit) : null
29
+ };
30
+ });
31
+ StyledGridWrapper.displayName = "StyledGridWrapper";
32
+ export var StyledGrid = styled('div', function (_ref2) {
33
+ var $theme = _ref2.$theme,
34
+ _ref2$$align = _ref2.$align,
35
+ $align = _ref2$$align === void 0 ? null : _ref2$$align,
36
+ _ref2$$behavior = _ref2.$behavior,
37
+ $behavior = _ref2$$behavior === void 0 ? BEHAVIOR.fixed : _ref2$$behavior,
38
+ _ref2$$gridGutters = _ref2.$gridGutters,
39
+ $gridGutters = _ref2$$gridGutters === void 0 ? $theme.grid.gutters : _ref2$$gridGutters,
40
+ _ref2$$gridMargins = _ref2.$gridMargins,
41
+ $gridMargins = _ref2$$gridMargins === void 0 ? $theme.grid.margins : _ref2$$gridMargins,
42
+ _ref2$$gridMaxWidth = _ref2.$gridMaxWidth,
43
+ $gridMaxWidth = _ref2$$gridMaxWidth === void 0 ? $theme.grid.maxWidth : _ref2$$gridMaxWidth,
44
+ _ref2$$gridUnit = _ref2.$gridUnit,
45
+ $gridUnit = _ref2$$gridUnit === void 0 ? $theme.grid.unit : _ref2$$gridUnit;
30
46
  var mediaQueries = getMediaQueries($theme.breakpoints);
31
47
  var gridStyles = mediaQueries.reduce(function (acc, cur, idx) {
32
48
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, cur, {
33
- paddingLeft: "".concat(getResponsiveNumber($gridMargins, idx) - getResponsiveNumber($gridGutters, idx) / 2 - 0.5).concat($gridUnit),
34
- paddingRight: "".concat(getResponsiveNumber($gridMargins, idx) - getResponsiveNumber($gridGutters, idx) / 2 - 0.5).concat($gridUnit),
49
+ paddingLeft: "".concat(getResponsiveNumber($gridMargins, idx)).concat($gridUnit),
50
+ paddingRight: "".concat(getResponsiveNumber($gridMargins, idx)).concat($gridUnit),
51
+ marginLeft: "-".concat(getResponsiveNumber($gridGutters, idx) / 2).concat($gridUnit),
52
+ marginRight: "-".concat(getResponsiveNumber($gridGutters, idx) / 2).concat($gridUnit),
35
53
  alignItems: getResponsiveValue($align, idx)
36
54
  }));
37
55
  }, {
38
- paddingLeft: "".concat(getResponsiveNumber($gridMargins, 0) - getResponsiveNumber($gridGutters, 0) / 2 - 0.5).concat($gridUnit),
39
- paddingRight: "".concat(getResponsiveNumber($gridMargins, 0) - getResponsiveNumber($gridGutters, 0) / 2 - 0.5).concat($gridUnit),
56
+ paddingLeft: "".concat(getResponsiveNumber($gridMargins, 0)).concat($gridUnit),
57
+ paddingRight: "".concat(getResponsiveNumber($gridMargins, 0)).concat($gridUnit),
58
+ marginLeft: "-".concat(getResponsiveNumber($gridGutters, 0) / 2).concat($gridUnit),
59
+ marginRight: "-".concat(getResponsiveNumber($gridGutters, 0) / 2).concat($gridUnit),
40
60
  alignItems: getResponsiveValue($align, 0)
41
61
  });
42
62
  return _objectSpread({
43
63
  boxSizing: 'border-box',
44
64
  display: 'flex',
45
65
  flexWrap: 'wrap',
46
- marginLeft: 'auto',
47
- marginRight: 'auto',
48
66
  maxWidth: $behavior === BEHAVIOR.fixed ? "".concat($gridMaxWidth + 2 * getResponsiveNumber($gridMargins, Infinity) - 1).concat($gridUnit) : null
49
67
  }, gridStyles);
50
68
  });
51
69
  StyledGrid.displayName = "StyledGrid";
52
- export var StyledCell = styled('div', function (_ref2) {
53
- var $theme = _ref2.$theme,
54
- _ref2$$align = _ref2.$align,
55
- $align = _ref2$$align === void 0 ? null : _ref2$$align,
56
- _ref2$$order = _ref2.$order,
57
- $order = _ref2$$order === void 0 ? null : _ref2$$order,
58
- _ref2$$gridColumns = _ref2.$gridColumns,
59
- $gridColumns = _ref2$$gridColumns === void 0 ? $theme.grid.columns : _ref2$$gridColumns,
60
- _ref2$$gridGaps = _ref2.$gridGaps,
61
- $gridGaps = _ref2$$gridGaps === void 0 ? $theme.grid.gaps : _ref2$$gridGaps,
62
- _ref2$$gridGutters = _ref2.$gridGutters,
63
- $gridGutters = _ref2$$gridGutters === void 0 ? $theme.grid.gutters : _ref2$$gridGutters,
64
- _ref2$$gridUnit = _ref2.$gridUnit,
65
- $gridUnit = _ref2$$gridUnit === void 0 ? $theme.grid.unit : _ref2$$gridUnit,
66
- _ref2$$skip = _ref2.$skip,
67
- $skip = _ref2$$skip === void 0 ? [0, 0, 0] : _ref2$$skip,
68
- _ref2$$span = _ref2.$span,
69
- $span = _ref2$$span === void 0 ? [1, 1, 1] : _ref2$$span;
70
+ export var StyledCell = styled('div', function (_ref3) {
71
+ var $theme = _ref3.$theme,
72
+ _ref3$$align = _ref3.$align,
73
+ $align = _ref3$$align === void 0 ? null : _ref3$$align,
74
+ _ref3$$order = _ref3.$order,
75
+ $order = _ref3$$order === void 0 ? null : _ref3$$order,
76
+ _ref3$$gridColumns = _ref3.$gridColumns,
77
+ $gridColumns = _ref3$$gridColumns === void 0 ? $theme.grid.columns : _ref3$$gridColumns,
78
+ _ref3$$gridGaps = _ref3.$gridGaps,
79
+ $gridGaps = _ref3$$gridGaps === void 0 ? $theme.grid.gaps : _ref3$$gridGaps,
80
+ _ref3$$gridGutters = _ref3.$gridGutters,
81
+ $gridGutters = _ref3$$gridGutters === void 0 ? $theme.grid.gutters : _ref3$$gridGutters,
82
+ _ref3$$gridUnit = _ref3.$gridUnit,
83
+ $gridUnit = _ref3$$gridUnit === void 0 ? $theme.grid.unit : _ref3$$gridUnit,
84
+ _ref3$$skip = _ref3.$skip,
85
+ $skip = _ref3$$skip === void 0 ? [0, 0, 0] : _ref3$$skip,
86
+ _ref3$$span = _ref3.$span,
87
+ $span = _ref3$$span === void 0 ? [1, 1, 1] : _ref3$$span;
70
88
  var mediaQueries = getMediaQueries($theme.breakpoints);
71
89
  var cellStyles = mediaQueries.reduce(function (acc, cur, idx) {
72
90
  if (getResponsiveNumber($span, idx) === 0) {
@@ -82,18 +100,17 @@ export var StyledCell = styled('div', function (_ref2) {
82
100
 
83
101
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, cur, {
84
102
  display: 'block',
85
- width: "".concat(100 / getResponsiveNumber($gridColumns, idx) * Math.min(getResponsiveNumber($span, idx), getResponsiveNumber($gridColumns, idx)), "%"),
86
- marginLeft: "".concat(100 / getResponsiveNumber($gridColumns, idx) * Math.min(getResponsiveNumber($skip, idx), getResponsiveNumber($gridColumns, idx) - 1), "%"),
87
- paddingLeft: "".concat(getResponsiveNumber($gridGutters, idx) / 2).concat($gridUnit),
88
- paddingRight: "".concat(getResponsiveNumber($gridGutters, idx) / 2).concat($gridUnit),
103
+ width: "calc(".concat(100 / getResponsiveNumber($gridColumns, idx) * Math.min(getResponsiveNumber($span, idx), getResponsiveNumber($gridColumns, idx)), "% - ").concat(getResponsiveNumber($gridGutters, idx)).concat($gridUnit, ")"),
104
+ marginLeft: "calc(".concat(100 / getResponsiveNumber($gridColumns, idx) * Math.min(getResponsiveNumber($skip, idx), getResponsiveNumber($gridColumns, idx) - 1), "% + ").concat(getResponsiveNumber($gridGutters, idx) / 2).concat($gridUnit, ")"),
105
+ marginRight: "".concat(getResponsiveNumber($gridGutters, idx) / 2).concat($gridUnit),
89
106
  marginBottom: "".concat(getResponsiveNumber($gridGaps, idx)).concat($gridUnit),
90
107
  alignSelf: getResponsiveValue($align, idx),
91
108
  order: getResponsiveNumber($order, idx)
92
109
  }));
93
110
  }, {
94
111
  width: '100%',
95
- paddingLeft: "".concat(getResponsiveNumber($gridGutters, 0) / 2).concat($gridUnit),
96
- paddingRight: "".concat(getResponsiveNumber($gridGutters, 0) / 2).concat($gridUnit),
112
+ marginLeft: "".concat(getResponsiveNumber($gridGutters, 0) / 2).concat($gridUnit),
113
+ marginRight: "".concat(getResponsiveNumber($gridGutters, 0) / 2).concat($gridUnit),
97
114
  marginBottom: "".concat(getResponsiveNumber($gridGaps, 0)).concat($gridUnit),
98
115
  alignSelf: getResponsiveValue($align, 0),
99
116
  order: getResponsiveNumber($order, 0)
package/esm/list/index.js CHANGED
@@ -6,6 +6,7 @@ LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  export { default as ListItem } from './list-item.js';
8
8
  export { default as ListItemLabel } from './list-item-label.js';
9
+ export { default as ListHeading } from './list-heading.js';
9
10
  export { default as MenuAdapter } from './menu-adapter.js';
10
11
  export { ARTWORK_SIZES, SHAPE } from './constants.js';
11
12
  export * from './styled-components.js';
@@ -0,0 +1,116 @@
1
+ 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); }
2
+
3
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
+
5
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
+
7
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
+
9
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
10
+
11
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
12
+
13
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
+
15
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
16
+
17
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
18
+
19
+ /*
20
+ Copyright (c) Uber Technologies, Inc.
21
+
22
+ This source code is licensed under the MIT license found in the
23
+ LICENSE file in the root directory of this source tree.
24
+ */
25
+ import React from 'react';
26
+ import ReactIs from 'react-is';
27
+ import { getOverrides } from '../helpers/overrides.js';
28
+ import { StyledHeadingRoot, StyledHeadingContent, StyledHeadingContentRow, StyledHeadingEndEnhancerContainer, StyledHeadingEndEnhancerDescriptionContainer, StyledHeadingMainHeading, StyledHeadingSubHeading } from './styled-components.js';
29
+
30
+ function RenderNode(props) {
31
+ var component = props.component,
32
+ restProps = _objectWithoutProperties(props, ["component"]);
33
+
34
+ var Component = component;
35
+
36
+ if (!Component) {
37
+ return null;
38
+ }
39
+
40
+ if (typeof Component === 'string') {
41
+ return Component;
42
+ }
43
+
44
+ if (ReactIs.isValidElementType(Component)) {
45
+ // $FlowFixMe
46
+ return /*#__PURE__*/React.createElement(Component, restProps);
47
+ } // $FlowFixMe
48
+
49
+
50
+ return Component;
51
+ }
52
+
53
+ var ListHeading = /*#__PURE__*/React.forwardRef(function (props, ref) {
54
+ var _props$overrides = props.overrides,
55
+ overrides = _props$overrides === void 0 ? {} : _props$overrides;
56
+ var EndEnhancer = props.endEnhancer;
57
+ var EndEnhancerDescription = props.endEnhancerDescription;
58
+ var SubHeading = props.subHeading;
59
+
60
+ var _getOverrides = getOverrides(overrides.Root, StyledHeadingRoot),
61
+ _getOverrides2 = _slicedToArray(_getOverrides, 2),
62
+ Root = _getOverrides2[0],
63
+ rootProps = _getOverrides2[1];
64
+
65
+ var _getOverrides3 = getOverrides(overrides.Content, StyledHeadingContent),
66
+ _getOverrides4 = _slicedToArray(_getOverrides3, 2),
67
+ Content = _getOverrides4[0],
68
+ contentProps = _getOverrides4[1];
69
+
70
+ var _getOverrides5 = getOverrides(overrides.HeadingContainer, StyledHeadingMainHeading),
71
+ _getOverrides6 = _slicedToArray(_getOverrides5, 2),
72
+ HeadingContainer = _getOverrides6[0],
73
+ headingContainerProps = _getOverrides6[1];
74
+
75
+ var _getOverrides7 = getOverrides(overrides.SubHeadingContainer, StyledHeadingSubHeading),
76
+ _getOverrides8 = _slicedToArray(_getOverrides7, 2),
77
+ SubHeadingContainer = _getOverrides8[0],
78
+ subHeadingContainerProps = _getOverrides8[1];
79
+
80
+ var _getOverrides9 = getOverrides(overrides.EndEnhancerContainer, StyledHeadingEndEnhancerContainer),
81
+ _getOverrides10 = _slicedToArray(_getOverrides9, 2),
82
+ EndEnhancerContainer = _getOverrides10[0],
83
+ endEnhancerContainerProps = _getOverrides10[1];
84
+
85
+ var _getOverrides11 = getOverrides(overrides.EndEnhancerDescriptionContainer, StyledHeadingEndEnhancerDescriptionContainer),
86
+ _getOverrides12 = _slicedToArray(_getOverrides11, 2),
87
+ EndEnhancerDescriptionContainer = _getOverrides12[0],
88
+ endEnhancerDescriptionContainerProps = _getOverrides12[1];
89
+
90
+ var isEndEnhancerString = typeof EndEnhancer === 'string';
91
+
92
+ if (isEndEnhancerString && EndEnhancerDescription) {
93
+ console.warn('endEnhancerDescription will not be rendered if endEnhancer is not a string');
94
+ }
95
+
96
+ return /*#__PURE__*/React.createElement(Root // eslint-disable-next-line flowtype/no-weak-types
97
+ , _extends({
98
+ ref: ref
99
+ }, rootProps), /*#__PURE__*/React.createElement(Content, contentProps, /*#__PURE__*/React.createElement(StyledHeadingContentRow, null, /*#__PURE__*/React.createElement(HeadingContainer, _extends({
100
+ $maxLines: props.maxLines
101
+ }, headingContainerProps), /*#__PURE__*/React.createElement(RenderNode, {
102
+ component: props.heading
103
+ })), EndEnhancer && /*#__PURE__*/React.createElement(EndEnhancerContainer, _extends({
104
+ $isText: isEndEnhancerString
105
+ }, endEnhancerContainerProps), /*#__PURE__*/React.createElement(RenderNode, {
106
+ component: EndEnhancer
107
+ }))), (SubHeading || EndEnhancerDescription) && /*#__PURE__*/React.createElement(StyledHeadingContentRow, null, /*#__PURE__*/React.createElement(SubHeadingContainer, _extends({
108
+ $maxLines: props.maxLines
109
+ }, subHeadingContainerProps), /*#__PURE__*/React.createElement(RenderNode, {
110
+ component: SubHeading
111
+ })), EndEnhancerDescription && isEndEnhancerString && /*#__PURE__*/React.createElement(EndEnhancerDescriptionContainer, endEnhancerDescriptionContainerProps, /*#__PURE__*/React.createElement(RenderNode, {
112
+ component: EndEnhancerDescription
113
+ })))));
114
+ });
115
+ ListHeading.displayName = 'ListHeading';
116
+ export default ListHeading;
@@ -78,7 +78,7 @@ var ListItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
78
78
  })), /*#__PURE__*/React.createElement(Content, _extends({
79
79
  $mLeft: !Artwork,
80
80
  $sublist: !!props.sublist
81
- }, contentProps), props.children, EndEnhancer && /*#__PURE__*/React.createElement(EndEnhancerContainer, endEnhancerContainerProps, /*#__PURE__*/React.createElement(EndEnhancer, null))));
81
+ }, contentProps), props.children, EndEnhancer && EndEnhancer !== 0 && /*#__PURE__*/React.createElement(EndEnhancerContainer, endEnhancerContainerProps, /*#__PURE__*/React.createElement(EndEnhancer, null))));
82
82
  });
83
83
  ListItem.displayName = 'ListItem';
84
84
  export default ListItem;
@@ -6,6 +6,7 @@ LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import * as React from 'react';
8
8
  import ListItem from './list-item.js';
9
+ import { mergeOverrides } from '../helpers/overrides.js';
9
10
  var MenuAdapter = /*#__PURE__*/React.forwardRef(function (props, ref) {
10
11
  return /*#__PURE__*/React.createElement(ListItem, {
11
12
  ref: ref,
@@ -13,7 +14,8 @@ var MenuAdapter = /*#__PURE__*/React.forwardRef(function (props, ref) {
13
14
  artwork: props.artwork,
14
15
  artworkSize: props.artworkSize,
15
16
  endEnhancer: props.endEnhancer,
16
- overrides: {
17
+ overrides: // $FlowFixMe
18
+ mergeOverrides({
17
19
  Root: {
18
20
  props: {
19
21
  onMouseEnter: props.onMouseEnter,
@@ -27,7 +29,7 @@ var MenuAdapter = /*#__PURE__*/React.forwardRef(function (props, ref) {
27
29
  };
28
30
  }
29
31
  }
30
- }
32
+ }, props.overrides)
31
33
  }, props.children);
32
34
  });
33
35
  MenuAdapter.displayName = 'MenuAdapter';