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
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _reactIs = _interopRequireDefault(require("react-is"));
11
+
12
+ var _overrides = require("../helpers/overrides.js");
13
+
14
+ var _styledComponents = require("./styled-components.js");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ 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); }
19
+
20
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
21
+
22
+ 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."); }
23
+
24
+ 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); }
25
+
26
+ 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; }
27
+
28
+ 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; }
29
+
30
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31
+
32
+ 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; }
33
+
34
+ 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; }
35
+
36
+ function RenderNode(props) {
37
+ var component = props.component,
38
+ restProps = _objectWithoutProperties(props, ["component"]);
39
+
40
+ var Component = component;
41
+
42
+ if (!Component) {
43
+ return null;
44
+ }
45
+
46
+ if (typeof Component === 'string') {
47
+ return Component;
48
+ }
49
+
50
+ if (_reactIs.default.isValidElementType(Component)) {
51
+ // $FlowFixMe
52
+ return /*#__PURE__*/_react.default.createElement(Component, restProps);
53
+ } // $FlowFixMe
54
+
55
+
56
+ return Component;
57
+ }
58
+
59
+ var ListHeading = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
60
+ var _props$overrides = props.overrides,
61
+ overrides = _props$overrides === void 0 ? {} : _props$overrides;
62
+ var EndEnhancer = props.endEnhancer;
63
+ var EndEnhancerDescription = props.endEnhancerDescription;
64
+ var SubHeading = props.subHeading;
65
+
66
+ var _getOverrides = (0, _overrides.getOverrides)(overrides.Root, _styledComponents.StyledHeadingRoot),
67
+ _getOverrides2 = _slicedToArray(_getOverrides, 2),
68
+ Root = _getOverrides2[0],
69
+ rootProps = _getOverrides2[1];
70
+
71
+ var _getOverrides3 = (0, _overrides.getOverrides)(overrides.Content, _styledComponents.StyledHeadingContent),
72
+ _getOverrides4 = _slicedToArray(_getOverrides3, 2),
73
+ Content = _getOverrides4[0],
74
+ contentProps = _getOverrides4[1];
75
+
76
+ var _getOverrides5 = (0, _overrides.getOverrides)(overrides.HeadingContainer, _styledComponents.StyledHeadingMainHeading),
77
+ _getOverrides6 = _slicedToArray(_getOverrides5, 2),
78
+ HeadingContainer = _getOverrides6[0],
79
+ headingContainerProps = _getOverrides6[1];
80
+
81
+ var _getOverrides7 = (0, _overrides.getOverrides)(overrides.SubHeadingContainer, _styledComponents.StyledHeadingSubHeading),
82
+ _getOverrides8 = _slicedToArray(_getOverrides7, 2),
83
+ SubHeadingContainer = _getOverrides8[0],
84
+ subHeadingContainerProps = _getOverrides8[1];
85
+
86
+ var _getOverrides9 = (0, _overrides.getOverrides)(overrides.EndEnhancerContainer, _styledComponents.StyledHeadingEndEnhancerContainer),
87
+ _getOverrides10 = _slicedToArray(_getOverrides9, 2),
88
+ EndEnhancerContainer = _getOverrides10[0],
89
+ endEnhancerContainerProps = _getOverrides10[1];
90
+
91
+ var _getOverrides11 = (0, _overrides.getOverrides)(overrides.EndEnhancerDescriptionContainer, _styledComponents.StyledHeadingEndEnhancerDescriptionContainer),
92
+ _getOverrides12 = _slicedToArray(_getOverrides11, 2),
93
+ EndEnhancerDescriptionContainer = _getOverrides12[0],
94
+ endEnhancerDescriptionContainerProps = _getOverrides12[1];
95
+
96
+ var isEndEnhancerString = typeof EndEnhancer === 'string';
97
+
98
+ if (isEndEnhancerString && EndEnhancerDescription) {
99
+ console.warn('endEnhancerDescription will not be rendered if endEnhancer is not a string');
100
+ }
101
+
102
+ return /*#__PURE__*/_react.default.createElement(Root // eslint-disable-next-line flowtype/no-weak-types
103
+ , _extends({
104
+ ref: ref
105
+ }, rootProps), /*#__PURE__*/_react.default.createElement(Content, contentProps, /*#__PURE__*/_react.default.createElement(_styledComponents.StyledHeadingContentRow, null, /*#__PURE__*/_react.default.createElement(HeadingContainer, _extends({
106
+ $maxLines: props.maxLines
107
+ }, headingContainerProps), /*#__PURE__*/_react.default.createElement(RenderNode, {
108
+ component: props.heading
109
+ })), EndEnhancer && /*#__PURE__*/_react.default.createElement(EndEnhancerContainer, _extends({
110
+ $isText: isEndEnhancerString
111
+ }, endEnhancerContainerProps), /*#__PURE__*/_react.default.createElement(RenderNode, {
112
+ component: EndEnhancer
113
+ }))), (SubHeading || EndEnhancerDescription) && /*#__PURE__*/_react.default.createElement(_styledComponents.StyledHeadingContentRow, null, /*#__PURE__*/_react.default.createElement(SubHeadingContainer, _extends({
114
+ $maxLines: props.maxLines
115
+ }, subHeadingContainerProps), /*#__PURE__*/_react.default.createElement(RenderNode, {
116
+ component: SubHeading
117
+ })), EndEnhancerDescription && isEndEnhancerString && /*#__PURE__*/_react.default.createElement(EndEnhancerDescriptionContainer, endEnhancerDescriptionContainerProps, /*#__PURE__*/_react.default.createElement(RenderNode, {
118
+ component: EndEnhancerDescription
119
+ })))));
120
+ });
121
+
122
+ ListHeading.displayName = 'ListHeading';
123
+ var _default = ListHeading;
124
+ exports.default = _default;
@@ -0,0 +1,138 @@
1
+ /*
2
+ Copyright (c) Uber Technologies, Inc.
3
+
4
+ This source code is licensed under the MIT license found in the
5
+ LICENSE file in the root directory of this source tree.
6
+ */
7
+ // @flow
8
+
9
+ import React from 'react';
10
+ import ReactIs from 'react-is';
11
+
12
+ import {getOverrides} from '../helpers/overrides.js';
13
+
14
+ import {
15
+ StyledHeadingRoot,
16
+ StyledHeadingContent,
17
+ StyledHeadingContentRow,
18
+ StyledHeadingEndEnhancerContainer,
19
+ StyledHeadingEndEnhancerDescriptionContainer,
20
+ StyledHeadingMainHeading,
21
+ StyledHeadingSubHeading,
22
+ } from './styled-components.js';
23
+ import type {HeadingPropsT} from './types.js';
24
+
25
+ function RenderNode(props) {
26
+ const {component, ...restProps} = props;
27
+ const Component = component;
28
+ if (!Component) {
29
+ return null;
30
+ }
31
+ if (typeof Component === 'string') {
32
+ return Component;
33
+ }
34
+ if (ReactIs.isValidElementType(Component)) {
35
+ // $FlowFixMe
36
+ return <Component {...restProps} />;
37
+ }
38
+ // $FlowFixMe
39
+ return Component;
40
+ }
41
+
42
+ const ListHeading = React.forwardRef<HeadingPropsT, HTMLLIElement>(
43
+ (props: HeadingPropsT, ref) => {
44
+ const {overrides = {}} = props;
45
+ const EndEnhancer = props.endEnhancer;
46
+ const EndEnhancerDescription = props.endEnhancerDescription;
47
+ const SubHeading = props.subHeading;
48
+
49
+ const [Root, rootProps] = getOverrides(overrides.Root, StyledHeadingRoot);
50
+ const [Content, contentProps] = getOverrides(
51
+ overrides.Content,
52
+ StyledHeadingContent,
53
+ );
54
+ const [HeadingContainer, headingContainerProps] = getOverrides(
55
+ overrides.HeadingContainer,
56
+ StyledHeadingMainHeading,
57
+ );
58
+ const [SubHeadingContainer, subHeadingContainerProps] = getOverrides(
59
+ overrides.SubHeadingContainer,
60
+ StyledHeadingSubHeading,
61
+ );
62
+ const [EndEnhancerContainer, endEnhancerContainerProps] = getOverrides(
63
+ overrides.EndEnhancerContainer,
64
+ StyledHeadingEndEnhancerContainer,
65
+ );
66
+ const [
67
+ EndEnhancerDescriptionContainer,
68
+ endEnhancerDescriptionContainerProps,
69
+ ] = getOverrides(
70
+ overrides.EndEnhancerDescriptionContainer,
71
+ StyledHeadingEndEnhancerDescriptionContainer,
72
+ );
73
+
74
+ const isEndEnhancerString = typeof EndEnhancer === 'string';
75
+
76
+ if (isEndEnhancerString && EndEnhancerDescription) {
77
+ console.warn(
78
+ 'endEnhancerDescription will not be rendered if endEnhancer is not a string',
79
+ );
80
+ }
81
+
82
+ return (
83
+ <Root
84
+ // eslint-disable-next-line flowtype/no-weak-types
85
+ ref={(ref: any)}
86
+ {...rootProps}
87
+ >
88
+ <Content {...contentProps}>
89
+ {/* ----- Top Row -------------------------- */}
90
+ <StyledHeadingContentRow>
91
+ <HeadingContainer
92
+ $maxLines={props.maxLines}
93
+ {...headingContainerProps}
94
+ >
95
+ <RenderNode component={props.heading} />
96
+ </HeadingContainer>
97
+
98
+ {EndEnhancer && (
99
+ <EndEnhancerContainer
100
+ $isText={isEndEnhancerString}
101
+ {...endEnhancerContainerProps}
102
+ >
103
+ <RenderNode component={EndEnhancer} />
104
+ </EndEnhancerContainer>
105
+ )}
106
+ </StyledHeadingContentRow>
107
+
108
+ {/* ----- Bottom Row ----------------------- */}
109
+ {(SubHeading || EndEnhancerDescription) && (
110
+ <StyledHeadingContentRow>
111
+ <SubHeadingContainer
112
+ $maxLines={props.maxLines}
113
+ {...subHeadingContainerProps}
114
+ >
115
+ <RenderNode component={SubHeading} />
116
+ </SubHeadingContainer>
117
+
118
+ {EndEnhancerDescription && isEndEnhancerString && (
119
+ <EndEnhancerDescriptionContainer
120
+ {...endEnhancerDescriptionContainerProps}
121
+ >
122
+ <RenderNode component={EndEnhancerDescription} />
123
+ </EndEnhancerDescriptionContainer>
124
+ )}
125
+ </StyledHeadingContentRow>
126
+ )}
127
+ </Content>
128
+ </Root>
129
+ );
130
+ },
131
+ );
132
+ ListHeading.displayName = 'ListHeading';
133
+
134
+ export default ListHeading;
135
+
136
+ declare var __DEV__: boolean;
137
+ declare var __NODE__: boolean;
138
+ declare var __BROWSER__: boolean;
package/list/list-item.js CHANGED
@@ -87,7 +87,7 @@ var ListItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
87
87
  })), /*#__PURE__*/_react.default.createElement(Content, _extends({
88
88
  $mLeft: !Artwork,
89
89
  $sublist: !!props.sublist
90
- }, contentProps), props.children, EndEnhancer && /*#__PURE__*/_react.default.createElement(EndEnhancerContainer, endEnhancerContainerProps, /*#__PURE__*/_react.default.createElement(EndEnhancer, null))));
90
+ }, contentProps), props.children, EndEnhancer && EndEnhancer !== 0 && /*#__PURE__*/_react.default.createElement(EndEnhancerContainer, endEnhancerContainerProps, /*#__PURE__*/_react.default.createElement(EndEnhancer, null))));
91
91
  });
92
92
 
93
93
  ListItem.displayName = 'ListItem';
@@ -81,7 +81,7 @@ const ListItem = React.forwardRef<PropsT, HTMLLIElement>(
81
81
  )}
82
82
  <Content $mLeft={!Artwork} $sublist={!!props.sublist} {...contentProps}>
83
83
  {props.children}
84
- {EndEnhancer && (
84
+ {EndEnhancer && EndEnhancer !== 0 && (
85
85
  <EndEnhancerContainer {...endEnhancerContainerProps}>
86
86
  <EndEnhancer />
87
87
  </EndEnhancerContainer>
@@ -11,6 +11,8 @@ var React = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _listItem = _interopRequireDefault(require("./list-item.js"));
13
13
 
14
+ var _overrides = require("../helpers/overrides.js");
15
+
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
17
 
16
18
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
@@ -30,7 +32,8 @@ var MenuAdapter = /*#__PURE__*/React.forwardRef(function (props, ref) {
30
32
  artwork: props.artwork,
31
33
  artworkSize: props.artworkSize,
32
34
  endEnhancer: props.endEnhancer,
33
- overrides: {
35
+ overrides: // $FlowFixMe
36
+ (0, _overrides.mergeOverrides)({
34
37
  Root: {
35
38
  props: {
36
39
  onMouseEnter: props.onMouseEnter,
@@ -44,7 +47,7 @@ var MenuAdapter = /*#__PURE__*/React.forwardRef(function (props, ref) {
44
47
  };
45
48
  }
46
49
  }
47
- }
50
+ }, props.overrides)
48
51
  }, props.children);
49
52
  });
50
53
  MenuAdapter.displayName = 'MenuAdapter';
@@ -10,6 +10,7 @@ import * as React from 'react';
10
10
 
11
11
  import ListItem from './list-item.js';
12
12
  import type {MenuAdapterPropsT} from './types.js';
13
+ import {mergeOverrides} from '../helpers/overrides.js';
13
14
 
14
15
  const MenuAdapter = React.forwardRef<MenuAdapterPropsT, HTMLLIElement>(
15
16
  (props, ref) => {
@@ -20,17 +21,26 @@ const MenuAdapter = React.forwardRef<MenuAdapterPropsT, HTMLLIElement>(
20
21
  artwork={props.artwork}
21
22
  artworkSize={props.artworkSize}
22
23
  endEnhancer={props.endEnhancer}
23
- overrides={{
24
- Root: {
25
- props: {onMouseEnter: props.onMouseEnter, onClick: props.onClick},
26
- style: ({$theme}) => ({
27
- backgroundColor: props.$isHighlighted
28
- ? $theme.colors.menuFillHover
29
- : null,
30
- cursor: props.$disabled ? 'not-allowed' : 'pointer',
31
- }),
32
- },
33
- }}
24
+ overrides={
25
+ // $FlowFixMe
26
+ mergeOverrides(
27
+ {
28
+ Root: {
29
+ props: {
30
+ onMouseEnter: props.onMouseEnter,
31
+ onClick: props.onClick,
32
+ },
33
+ style: ({$theme}) => ({
34
+ backgroundColor: props.$isHighlighted
35
+ ? $theme.colors.menuFillHover
36
+ : null,
37
+ cursor: props.$disabled ? 'not-allowed' : 'pointer',
38
+ }),
39
+ },
40
+ },
41
+ props.overrides,
42
+ )
43
+ }
34
44
  >
35
45
  {props.children}
36
46
  </ListItem>
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.StyledLabelSublistContent = exports.StyledLabelDescription = exports.StyledLabelContent = exports.StyledArtworkContainer = exports.StyledEndEnhancerContainer = exports.StyledContent = exports.StyledRoot = void 0;
6
+ exports.StyledHeadingEndEnhancerDescriptionContainer = exports.StyledHeadingEndEnhancerContainer = exports.StyledHeadingSubHeading = exports.StyledHeadingMainHeading = exports.StyledHeadingContentRow = exports.StyledHeadingContent = exports.StyledHeadingRoot = exports.StyledLabelSublistContent = exports.StyledLabelDescription = exports.StyledLabelContent = exports.StyledArtworkContainer = exports.StyledEndEnhancerContainer = exports.StyledContent = exports.StyledRoot = void 0;
7
7
 
8
8
  var _index = require("../styles/index.js");
9
9
 
@@ -46,7 +46,7 @@ var StyledContent = (0, _index.styled)('div', function (_ref2) {
46
46
  borderLeftStyle: 'none',
47
47
  display: 'flex',
48
48
  flexGrow: 1,
49
- minHeight: $sublist ? '48px' : '72px',
49
+ minHeight: $sublist ? 'initial' : $theme.sizing.scale1600,
50
50
  justifyContent: 'space-between'
51
51
  }, $theme.direction === 'rtl' ? {
52
52
  paddingLeft: $theme.sizing.scale600,
@@ -110,9 +110,112 @@ exports.StyledLabelDescription = StyledLabelDescription;
110
110
  StyledLabelDescription.displayName = "StyledLabelDescription";
111
111
  var StyledLabelSublistContent = (0, _index.styled)('p', function (_ref6) {
112
112
  var $theme = _ref6.$theme;
113
- return _objectSpread(_objectSpread({}, $theme.typography.ParagraphMedium), {}, {
114
- color: $theme.colors.contentPrimary
113
+ return _objectSpread(_objectSpread({}, $theme.typography.LabelMedium), {}, {
114
+ color: $theme.colors.contentPrimary,
115
+ marginTop: $theme.sizing.scale500,
116
+ marginBottom: $theme.sizing.scale500
115
117
  });
116
118
  });
117
119
  exports.StyledLabelSublistContent = StyledLabelSublistContent;
118
- StyledLabelSublistContent.displayName = "StyledLabelSublistContent";
120
+ StyledLabelSublistContent.displayName = "StyledLabelSublistContent";
121
+ var StyledHeadingRoot = (0, _index.styled)('div', function (_ref7) {
122
+ var $theme = _ref7.$theme;
123
+ return {
124
+ display: 'flex',
125
+ alignItems: 'center',
126
+ width: '100%',
127
+ backgroundColor: $theme.colors.backgroundPrimary,
128
+ overflow: 'hidden',
129
+ minHeight: $theme.sizing.scale1600
130
+ };
131
+ });
132
+ exports.StyledHeadingRoot = StyledHeadingRoot;
133
+ StyledHeadingRoot.displayName = "StyledHeadingRoot";
134
+ var StyledHeadingContent = (0, _index.styled)('div', function (_ref8) {
135
+ var $theme = _ref8.$theme;
136
+ return _objectSpread({
137
+ flexGrow: 1,
138
+ width: '100%',
139
+ minWidth: 0,
140
+ paddingTop: $theme.sizing.scale600,
141
+ paddingBottom: $theme.sizing.scale300
142
+ }, $theme.direction === 'rtl' ? {
143
+ paddingLeft: $theme.sizing.scale600,
144
+ marginRight: $theme.sizing.scale600
145
+ } : {
146
+ paddingRight: $theme.sizing.scale600,
147
+ marginLeft: $theme.sizing.scale600
148
+ });
149
+ });
150
+ exports.StyledHeadingContent = StyledHeadingContent;
151
+ StyledHeadingContent.displayName = "StyledHeadingContent";
152
+ var StyledHeadingContentRow = (0, _index.styled)('div', {
153
+ display: 'flex',
154
+ justifyContent: 'space-between',
155
+ width: '100%'
156
+ });
157
+ exports.StyledHeadingContentRow = StyledHeadingContentRow;
158
+ StyledHeadingContentRow.displayName = "StyledHeadingContentRow";
159
+ var StyledHeadingMainHeading = (0, _index.styled)('p', // $FlowFixMe - suppressing due to webkit properties
160
+ function (_ref9) {
161
+ var _ref9$$maxLines = _ref9.$maxLines,
162
+ $maxLines = _ref9$$maxLines === void 0 ? 1 : _ref9$$maxLines,
163
+ $theme = _ref9.$theme;
164
+ return _objectSpread(_objectSpread({}, $theme.typography.HeadingSmall), {}, {
165
+ color: $theme.colors.contentPrimary,
166
+ marginTop: 0,
167
+ marginBottom: 0,
168
+ marginRight: $theme.sizing.scale600,
169
+ display: '-webkit-box',
170
+ '-webkit-line-clamp': $maxLines,
171
+ '-webkit-box-orient': 'vertical',
172
+ overflow: 'hidden'
173
+ });
174
+ });
175
+ exports.StyledHeadingMainHeading = StyledHeadingMainHeading;
176
+ StyledHeadingMainHeading.displayName = "StyledHeadingMainHeading";
177
+ var StyledHeadingSubHeading = (0, _index.styled)('p', // $FlowFixMe - suppressing due to webkit properties
178
+ function (_ref10) {
179
+ var _ref10$$maxLines = _ref10.$maxLines,
180
+ $maxLines = _ref10$$maxLines === void 0 ? 1 : _ref10$$maxLines,
181
+ $theme = _ref10.$theme;
182
+ return _objectSpread(_objectSpread({}, $theme.typography.ParagraphLarge), {}, {
183
+ color: $theme.colors.contentPrimary,
184
+ marginTop: 0,
185
+ marginBottom: 0,
186
+ marginRight: $theme.sizing.scale600,
187
+ display: '-webkit-box',
188
+ '-webkit-line-clamp': $maxLines,
189
+ '-webkit-box-orient': 'vertical',
190
+ overflow: 'hidden'
191
+ });
192
+ });
193
+ exports.StyledHeadingSubHeading = StyledHeadingSubHeading;
194
+ StyledHeadingSubHeading.displayName = "StyledHeadingSubHeading";
195
+ var StyledHeadingEndEnhancerContainer = (0, _index.styled)('div', function (_ref11) {
196
+ var $isText = _ref11.$isText,
197
+ $theme = _ref11.$theme;
198
+ return _objectSpread(_objectSpread({}, $theme.typography.LabelMedium), {}, {
199
+ display: 'flex',
200
+ alignItems: $isText ? 'flex-end' : 'center',
201
+ whiteSpace: 'nowrap',
202
+ overflow: 'hidden',
203
+ textOverflow: 'ellipsis'
204
+ });
205
+ });
206
+ exports.StyledHeadingEndEnhancerContainer = StyledHeadingEndEnhancerContainer;
207
+ StyledHeadingEndEnhancerContainer.displayName = "StyledHeadingEndEnhancerContainer";
208
+ var StyledHeadingEndEnhancerDescriptionContainer = (0, _index.styled)('p', function (_ref12) {
209
+ var $theme = _ref12.$theme;
210
+ return _objectSpread(_objectSpread({}, $theme.typography.ParagraphMedium), {}, {
211
+ marginTop: 0,
212
+ marginBottom: 0,
213
+ display: 'flex',
214
+ alignItems: 'flex-start',
215
+ whiteSpace: 'nowrap',
216
+ overflow: 'hidden',
217
+ textOverflow: 'ellipsis'
218
+ });
219
+ });
220
+ exports.StyledHeadingEndEnhancerDescriptionContainer = StyledHeadingEndEnhancerDescriptionContainer;
221
+ StyledHeadingEndEnhancerDescriptionContainer.displayName = "StyledHeadingEndEnhancerDescriptionContainer";
@@ -12,6 +12,7 @@ import type {
12
12
  StyledRootPropsT,
13
13
  StyledContentPropsT,
14
14
  StyledArtworkContainerPropsT,
15
+ StyledHeadingHeadingPropsT,
15
16
  } from './types.js';
16
17
  import {artworkSizeToValue} from './utils.js';
17
18
  import {SHAPE} from './constants.js';
@@ -44,7 +45,7 @@ export const StyledContent = styled<StyledContentPropsT>(
44
45
  borderLeftStyle: 'none',
45
46
  display: 'flex',
46
47
  flexGrow: 1,
47
- minHeight: $sublist ? '48px' : '72px',
48
+ minHeight: $sublist ? 'initial' : $theme.sizing.scale1600,
48
49
  justifyContent: 'space-between',
49
50
  ...($theme.direction === 'rtl'
50
51
  ? {
@@ -110,11 +111,111 @@ export const StyledLabelDescription = styled<{||}>('p', ({$theme}) => {
110
111
 
111
112
  export const StyledLabelSublistContent = styled<{||}>('p', ({$theme}) => {
112
113
  return {
113
- ...$theme.typography.ParagraphMedium,
114
+ ...$theme.typography.LabelMedium,
114
115
  color: $theme.colors.contentPrimary,
116
+ marginTop: $theme.sizing.scale500,
117
+ marginBottom: $theme.sizing.scale500,
118
+ };
119
+ });
120
+
121
+ export const StyledHeadingRoot = styled<StyledRootPropsT>('div', ({$theme}) => {
122
+ return {
123
+ display: 'flex',
124
+ alignItems: 'center',
125
+ width: '100%',
126
+ backgroundColor: $theme.colors.backgroundPrimary,
127
+ overflow: 'hidden',
128
+ minHeight: $theme.sizing.scale1600,
115
129
  };
116
130
  });
117
131
 
132
+ export const StyledHeadingContent = styled<{}>('div', ({$theme}) => {
133
+ return {
134
+ flexGrow: 1,
135
+ width: '100%',
136
+ minWidth: 0,
137
+ paddingTop: $theme.sizing.scale600,
138
+ paddingBottom: $theme.sizing.scale300,
139
+ ...($theme.direction === 'rtl'
140
+ ? {
141
+ paddingLeft: $theme.sizing.scale600,
142
+ marginRight: $theme.sizing.scale600,
143
+ }
144
+ : {
145
+ paddingRight: $theme.sizing.scale600,
146
+ marginLeft: $theme.sizing.scale600,
147
+ }),
148
+ };
149
+ });
150
+
151
+ export const StyledHeadingContentRow = styled('div', {
152
+ display: 'flex',
153
+ justifyContent: 'space-between',
154
+ width: '100%',
155
+ });
156
+
157
+ export const StyledHeadingMainHeading = styled<StyledHeadingHeadingPropsT>(
158
+ 'p',
159
+ // $FlowFixMe - suppressing due to webkit properties
160
+ ({$maxLines = 1, $theme}) => {
161
+ return {
162
+ ...$theme.typography.HeadingSmall,
163
+ color: $theme.colors.contentPrimary,
164
+ marginTop: 0,
165
+ marginBottom: 0,
166
+ marginRight: $theme.sizing.scale600,
167
+ display: '-webkit-box',
168
+ '-webkit-line-clamp': $maxLines,
169
+ '-webkit-box-orient': 'vertical',
170
+ overflow: 'hidden',
171
+ };
172
+ },
173
+ );
174
+
175
+ export const StyledHeadingSubHeading = styled<StyledHeadingHeadingPropsT>(
176
+ 'p',
177
+ // $FlowFixMe - suppressing due to webkit properties
178
+ ({$maxLines = 1, $theme}) => {
179
+ return {
180
+ ...$theme.typography.ParagraphLarge,
181
+ color: $theme.colors.contentPrimary,
182
+ marginTop: 0,
183
+ marginBottom: 0,
184
+ marginRight: $theme.sizing.scale600,
185
+ display: '-webkit-box',
186
+ '-webkit-line-clamp': $maxLines,
187
+ '-webkit-box-orient': 'vertical',
188
+ overflow: 'hidden',
189
+ };
190
+ },
191
+ );
192
+
193
+ export const StyledHeadingEndEnhancerContainer = styled<{$isText: boolean}>(
194
+ 'div',
195
+ ({$isText, $theme}) => ({
196
+ ...$theme.typography.LabelMedium,
197
+ display: 'flex',
198
+ alignItems: $isText ? 'flex-end' : 'center',
199
+ whiteSpace: 'nowrap',
200
+ overflow: 'hidden',
201
+ textOverflow: 'ellipsis',
202
+ }),
203
+ );
204
+
205
+ export const StyledHeadingEndEnhancerDescriptionContainer = styled<{}>(
206
+ 'p',
207
+ ({$theme}) => ({
208
+ ...$theme.typography.ParagraphMedium,
209
+ marginTop: 0,
210
+ marginBottom: 0,
211
+ display: 'flex',
212
+ alignItems: 'flex-start',
213
+ whiteSpace: 'nowrap',
214
+ overflow: 'hidden',
215
+ textOverflow: 'ellipsis',
216
+ }),
217
+ );
218
+
118
219
  declare var __DEV__: boolean;
119
220
  declare var __NODE__: boolean;
120
221
  declare var __BROWSER__: boolean;
@@ -59,6 +59,28 @@ export type LabelPropsT = {|
59
59
  |},
60
60
  |};
61
61
 
62
+ export type HeadingOverridesT = {|
63
+ Root?: OverrideT,
64
+ Content?: OverrideT,
65
+ HeadingContainer?: OverrideT,
66
+ SubHeadingContainer?: OverrideT,
67
+ EndEnhancerContainer?: OverrideT,
68
+ EndEnhancerDescriptionContainer?: OverrideT,
69
+ |};
70
+
71
+ export type HeadingPropsT = {|
72
+ heading: React.Node | React.AbstractComponent<{}>,
73
+ subHeading?: React.Node | React.AbstractComponent<{}>,
74
+ endEnhancer?: React.Node | React.AbstractComponent<{}>,
75
+ endEnhancerDescription?: React.Node | React.AbstractComponent<{}>,
76
+ overrides?: HeadingOverridesT,
77
+ maxLines?: 1 | 2,
78
+ |};
79
+
80
+ export type StyledHeadingHeadingPropsT = {|
81
+ $maxLines: number,
82
+ |};
83
+
62
84
  export type MenuAdapterPropsT = {
63
85
  ...PropsT,
64
86
  // eslint-disable-next-line flowtype/no-weak-types