baseui 10.7.2 → 10.9.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 (174) hide show
  1. package/a11y/a11y.js +2 -2
  2. package/a11y/a11y.js.flow +3 -3
  3. package/button/styled-components.js +47 -18
  4. package/button/styled-components.js.flow +25 -5
  5. package/combobox/combobox.js +6 -3
  6. package/combobox/combobox.js.flow +4 -2
  7. package/combobox/types.js.flow +2 -0
  8. package/data-table/column-categorical.js +1 -1
  9. package/data-table/column-categorical.js.flow +2 -2
  10. package/data-table/column-numerical.js +307 -355
  11. package/data-table/column-numerical.js.flow +273 -287
  12. package/data-table/constants.js +17 -11
  13. package/data-table/constants.js.flow +11 -8
  14. package/data-table/data-table.js +53 -50
  15. package/data-table/data-table.js.flow +18 -13
  16. package/data-table/filter-shell.js +27 -4
  17. package/data-table/filter-shell.js.flow +33 -9
  18. package/data-table/locale.js +4 -2
  19. package/data-table/locale.js.flow +6 -2
  20. package/data-table/measure-column-widths.js +83 -121
  21. package/data-table/measure-column-widths.js.flow +87 -109
  22. package/datepicker/styled-components.js +1 -1
  23. package/datepicker/styled-components.js.flow +4 -1
  24. package/drawer/drawer.js +3 -1
  25. package/drawer/drawer.js.flow +7 -1
  26. package/es/a11y/a11y.js +2 -2
  27. package/es/button/styled-components.js +32 -2
  28. package/es/combobox/combobox.js +6 -3
  29. package/es/data-table/column-categorical.js +2 -2
  30. package/es/data-table/column-numerical.js +245 -317
  31. package/es/data-table/constants.js +12 -8
  32. package/es/data-table/data-table.js +18 -16
  33. package/es/data-table/filter-shell.js +26 -4
  34. package/es/data-table/locale.js +4 -2
  35. package/es/data-table/measure-column-widths.js +75 -86
  36. package/es/datepicker/styled-components.js +1 -1
  37. package/es/drawer/drawer.js +3 -1
  38. package/es/index.js +1 -1
  39. package/es/map-marker/badge-enhancer.js +61 -0
  40. package/es/map-marker/constants.js +146 -2
  41. package/es/map-marker/drag-shadow.js +32 -0
  42. package/es/map-marker/fixed-marker.js +54 -48
  43. package/es/map-marker/floating-marker.js +21 -12
  44. package/es/map-marker/index.js +1 -1
  45. package/es/map-marker/label-enhancer.js +39 -0
  46. package/es/map-marker/needle.js +26 -0
  47. package/es/map-marker/pin-head.js +42 -40
  48. package/es/map-marker/styled-components.js +177 -32
  49. package/es/map-marker/types.js +1 -1
  50. package/es/menu/maybe-child-menu.js +0 -2
  51. package/es/menu/nested-menus.js +49 -3
  52. package/es/menu/stateful-container.js +13 -12
  53. package/es/modal/modal.js +3 -1
  54. package/es/popover/popover.js +7 -3
  55. package/es/progress-bar/index.js +1 -1
  56. package/es/progress-bar/progressbar.js +25 -10
  57. package/es/progress-bar/styled-components.js +9 -5
  58. package/es/select/select-component.js +2 -10
  59. package/es/spinner/styled-components.js +34 -16
  60. package/es/table/filter.js +3 -1
  61. package/es/themes/dark-theme/color-component-tokens.js +19 -10
  62. package/es/themes/light-theme/color-component-tokens.js +19 -10
  63. package/es/timezonepicker/timezone-picker.js +53 -36
  64. package/es/timezonepicker/tzdata.js +2 -0
  65. package/es/timezonepicker/update-tzdata.js +69 -0
  66. package/es/toast/styled-components.js +18 -7
  67. package/esm/a11y/a11y.js +3 -3
  68. package/esm/button/styled-components.js +47 -18
  69. package/esm/combobox/combobox.js +6 -3
  70. package/esm/data-table/column-categorical.js +2 -2
  71. package/esm/data-table/column-numerical.js +304 -353
  72. package/esm/data-table/constants.js +12 -8
  73. package/esm/data-table/data-table.js +53 -50
  74. package/esm/data-table/filter-shell.js +26 -4
  75. package/esm/data-table/locale.js +4 -2
  76. package/esm/data-table/measure-column-widths.js +83 -121
  77. package/esm/datepicker/styled-components.js +1 -1
  78. package/esm/drawer/drawer.js +3 -1
  79. package/esm/index.js +1 -1
  80. package/esm/map-marker/badge-enhancer.js +79 -0
  81. package/esm/map-marker/constants.js +94 -4
  82. package/esm/map-marker/drag-shadow.js +53 -0
  83. package/esm/map-marker/fixed-marker.js +84 -80
  84. package/esm/map-marker/floating-marker.js +22 -13
  85. package/esm/map-marker/index.js +1 -1
  86. package/esm/map-marker/label-enhancer.js +60 -0
  87. package/esm/map-marker/needle.js +43 -0
  88. package/esm/map-marker/pin-head.js +77 -66
  89. package/esm/map-marker/styled-components.js +182 -51
  90. package/esm/map-marker/types.js +1 -1
  91. package/esm/menu/maybe-child-menu.js +0 -2
  92. package/esm/menu/nested-menus.js +66 -5
  93. package/esm/menu/stateful-container.js +15 -13
  94. package/esm/modal/modal.js +3 -1
  95. package/esm/popover/popover.js +7 -3
  96. package/esm/progress-bar/index.js +1 -1
  97. package/esm/progress-bar/progressbar.js +32 -10
  98. package/esm/progress-bar/styled-components.js +9 -4
  99. package/esm/select/select-component.js +2 -11
  100. package/esm/spinner/styled-components.js +35 -16
  101. package/esm/table/filter.js +3 -1
  102. package/esm/themes/dark-theme/color-component-tokens.js +19 -10
  103. package/esm/themes/light-theme/color-component-tokens.js +19 -10
  104. package/esm/timezonepicker/timezone-picker.js +64 -36
  105. package/esm/timezonepicker/tzdata.js +2 -0
  106. package/esm/timezonepicker/update-tzdata.js +160 -0
  107. package/esm/toast/styled-components.js +13 -5
  108. package/index.js +6 -0
  109. package/index.js.flow +1 -1
  110. package/map-marker/badge-enhancer.js +90 -0
  111. package/map-marker/badge-enhancer.js.flow +86 -0
  112. package/map-marker/constants.js +103 -5
  113. package/map-marker/constants.js.flow +152 -0
  114. package/map-marker/drag-shadow.js +64 -0
  115. package/map-marker/drag-shadow.js.flow +52 -0
  116. package/map-marker/fixed-marker.js +84 -78
  117. package/map-marker/fixed-marker.js.flow +78 -66
  118. package/map-marker/floating-marker.js +22 -13
  119. package/map-marker/floating-marker.js.flow +30 -17
  120. package/map-marker/index.d.ts +125 -24
  121. package/map-marker/index.js +18 -0
  122. package/map-marker/index.js.flow +3 -0
  123. package/map-marker/label-enhancer.js +71 -0
  124. package/map-marker/label-enhancer.js.flow +63 -0
  125. package/map-marker/needle.js +54 -0
  126. package/map-marker/needle.js.flow +29 -0
  127. package/map-marker/pin-head.js +80 -69
  128. package/map-marker/pin-head.js.flow +122 -84
  129. package/map-marker/styled-components.js +200 -62
  130. package/map-marker/styled-components.js.flow +172 -22
  131. package/map-marker/types.js.flow +69 -20
  132. package/menu/index.d.ts +9 -4
  133. package/menu/maybe-child-menu.js +0 -2
  134. package/menu/maybe-child-menu.js.flow +0 -2
  135. package/menu/nested-menus.js +66 -5
  136. package/menu/nested-menus.js.flow +50 -5
  137. package/menu/stateful-container.js +15 -13
  138. package/menu/stateful-container.js.flow +19 -13
  139. package/menu/types.js.flow +7 -1
  140. package/modal/modal.js +3 -1
  141. package/modal/modal.js.flow +2 -0
  142. package/package.json +5 -4
  143. package/popover/popover.js +7 -3
  144. package/popover/popover.js.flow +23 -17
  145. package/progress-bar/index.d.ts +2 -0
  146. package/progress-bar/index.js +6 -0
  147. package/progress-bar/index.js.flow +1 -0
  148. package/progress-bar/progressbar.js +32 -10
  149. package/progress-bar/progressbar.js.flow +35 -9
  150. package/progress-bar/styled-components.js +9 -4
  151. package/progress-bar/styled-components.js.flow +15 -4
  152. package/progress-bar/types.js.flow +12 -2
  153. package/select/select-component.js +2 -11
  154. package/select/select-component.js.flow +5 -7
  155. package/spinner/styled-components.js +35 -16
  156. package/spinner/styled-components.js.flow +37 -19
  157. package/spinner/types.js.flow +10 -0
  158. package/styles/index.js.flow +1 -1
  159. package/table/filter.js +3 -1
  160. package/table/filter.js.flow +5 -1
  161. package/themes/dark-theme/color-component-tokens.js +19 -10
  162. package/themes/dark-theme/color-component-tokens.js.flow +19 -10
  163. package/themes/light-theme/color-component-tokens.js +19 -10
  164. package/themes/light-theme/color-component-tokens.js.flow +19 -10
  165. package/themes/types.js.flow +9 -0
  166. package/timezonepicker/timezone-picker.js +69 -41
  167. package/timezonepicker/timezone-picker.js.flow +52 -46
  168. package/timezonepicker/types.js.flow +1 -1
  169. package/timezonepicker/tzdata.js +10 -0
  170. package/timezonepicker/tzdata.js.flow +347 -0
  171. package/timezonepicker/update-tzdata.js +164 -0
  172. package/timezonepicker/update-tzdata.js.flow +70 -0
  173. package/toast/styled-components.js +13 -5
  174. package/toast/styled-components.js.flow +17 -7
@@ -0,0 +1,63 @@
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
+ import * as React from 'react';
9
+ import {getOverrides} from '../helpers/overrides.js';
10
+ import {
11
+ RelativeContainer,
12
+ StyledStrokedLabel,
13
+ StyledStrokedLabelContainer,
14
+ } from './styled-components.js';
15
+ import {LABEL_ENHANCER_POSITIONS} from './constants.js';
16
+ import type {LabelEhancerComponentT} from './types.js';
17
+
18
+ const LabelEnhancer = ({
19
+ labelEnhancerContent,
20
+ labelEnhancerPosition,
21
+ needleHeight,
22
+ size,
23
+ overrides = {},
24
+ }: LabelEhancerComponentT) => {
25
+ if (
26
+ !labelEnhancerPosition ||
27
+ labelEnhancerPosition === LABEL_ENHANCER_POSITIONS.none
28
+ ) {
29
+ return null;
30
+ }
31
+ if (!labelEnhancerContent) {
32
+ return null;
33
+ }
34
+
35
+ const [StrokedLabelContainer, strokedLabelContainerProps] = getOverrides(
36
+ overrides.LabelEnhancerContainer,
37
+ StyledStrokedLabelContainer,
38
+ );
39
+
40
+ const [StrokedLabel, strokedLabelProps] = getOverrides(
41
+ overrides.LabelEnhancer,
42
+ StyledStrokedLabel,
43
+ );
44
+ return (
45
+ <StrokedLabelContainer
46
+ $position={labelEnhancerPosition}
47
+ $labelOffset={needleHeight}
48
+ {...strokedLabelContainerProps}
49
+ >
50
+ <RelativeContainer>
51
+ <StrokedLabel $size={size} {...strokedLabelProps}>
52
+ {labelEnhancerContent}
53
+ </StrokedLabel>
54
+ </RelativeContainer>
55
+ </StrokedLabelContainer>
56
+ );
57
+ };
58
+
59
+ export default LabelEnhancer;
60
+
61
+ declare var __DEV__: boolean;
62
+ declare var __NODE__: boolean;
63
+ declare var __BROWSER__: boolean;
@@ -0,0 +1,54 @@
1
+ "use strict";
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
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var React = _interopRequireWildcard(require("react"));
11
+
12
+ var _overrides = require("../helpers/overrides.js");
13
+
14
+ var _constants = require("./constants.js");
15
+
16
+ var _styledComponents = require("./styled-components.js");
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
+
22
+ 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); }
23
+
24
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
25
+
26
+ 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."); }
27
+
28
+ 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); }
29
+
30
+ 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; }
31
+
32
+ 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; }
33
+
34
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
+
36
+ var Needle = function Needle(_ref) {
37
+ var size = _ref.size,
38
+ background = _ref.background,
39
+ _ref$overrides = _ref.overrides,
40
+ overrides = _ref$overrides === void 0 ? {} : _ref$overrides;
41
+
42
+ var _getOverrides = (0, _overrides.getOverrides)(overrides.Needle, _styledComponents.StyledNeedle),
43
+ _getOverrides2 = _slicedToArray(_getOverrides, 2),
44
+ Needle = _getOverrides2[0],
45
+ needleProps = _getOverrides2[1];
46
+
47
+ return /*#__PURE__*/React.createElement(Needle, _extends({
48
+ $background: background,
49
+ $height: _constants.NEEDLE_HEIGHTS[size]
50
+ }, needleProps));
51
+ };
52
+
53
+ var _default = Needle;
54
+ exports.default = _default;
@@ -0,0 +1,29 @@
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
+ import * as React from 'react';
9
+ import {getOverrides} from '../helpers/overrides.js';
10
+ import {NEEDLE_HEIGHTS} from './constants.js';
11
+ import {StyledNeedle} from './styled-components.js';
12
+ import type {NeedlePropsT} from './types.js';
13
+
14
+ const Needle = ({size, background, overrides = {}}: NeedlePropsT) => {
15
+ const [Needle, needleProps] = getOverrides(overrides.Needle, StyledNeedle);
16
+ return (
17
+ <Needle
18
+ $background={background}
19
+ $height={NEEDLE_HEIGHTS[size]}
20
+ {...needleProps}
21
+ />
22
+ );
23
+ };
24
+
25
+ export default Needle;
26
+
27
+ declare var __DEV__: boolean;
28
+ declare var __NODE__: boolean;
29
+ declare var __BROWSER__: boolean;
@@ -5,18 +5,22 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports._ContentItem = void 0;
8
+ exports.default = void 0;
9
9
 
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
 
12
- var _index = require("../styles/index.js");
13
-
14
12
  var _overrides = require("../helpers/overrides.js");
15
13
 
16
14
  var _styledComponents = require("./styled-components.js");
17
15
 
18
16
  var _constants = require("./constants.js");
19
17
 
18
+ var _badgeEnhancer = _interopRequireDefault(require("./badge-enhancer.js"));
19
+
20
+ var _labelEnhancer = _interopRequireDefault(require("./label-enhancer.js"));
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
20
24
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
21
25
 
22
26
  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; }
@@ -35,57 +39,26 @@ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(
35
39
 
36
40
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
37
41
 
38
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
39
-
40
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
41
-
42
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
43
-
44
- var _ContentItem = (0, _index.styled)('div', function (_ref) {
45
- var _match;
46
-
47
- var $theme = _ref.$theme,
48
- $color = _ref.$color,
49
- $height = _ref.$height,
50
- $size = _ref.$size;
51
- var match = (_match = {}, _defineProperty(_match, _constants.PINHEAD_SIZES_SHAPES.xSmallCircle, 'LabelSmall'), _defineProperty(_match, _constants.PINHEAD_SIZES_SHAPES.xSmallSquare, 'LabelSmall'), _defineProperty(_match, _constants.PINHEAD_SIZES_SHAPES.small, 'LabelSmall'), _defineProperty(_match, _constants.PINHEAD_SIZES_SHAPES.medium, 'LabelMedium'), _defineProperty(_match, _constants.PINHEAD_SIZES_SHAPES.large, 'LabelLarge'), _match);
52
- return _objectSpread(_objectSpread({}, $theme.typography[match[$size]]), {}, {
53
- display: 'flex',
54
- alignItems: 'center',
55
- textAlign: 'center',
56
- lineHeight: "".concat($height, "px"),
57
- height: "".concat($height, "px"),
58
- color: $color
59
- });
60
- });
61
-
62
- exports._ContentItem = _ContentItem;
63
- _ContentItem.displayName = "_ContentItem";
64
-
65
- var PinHead = function PinHead(_ref2) {
66
- var _ref2$size = _ref2.size,
67
- size = _ref2$size === void 0 ? _constants.PINHEAD_SIZES_SHAPES.medium : _ref2$size,
68
- _ref2$label = _ref2.label,
69
- label = _ref2$label === void 0 ? '' : _ref2$label,
70
- StartEnhancer = _ref2.startEnhancer,
71
- EndEnhancer = _ref2.endEnhancer,
72
- color = _ref2.color,
73
- background = _ref2.background,
74
- _ref2$type = _ref2.type,
75
- type = _ref2$type === void 0 ? _constants.PINHEAD_TYPES.fixed : _ref2$type,
76
- anchorType = _ref2.anchorType,
77
- _ref2$overrides = _ref2.overrides,
78
- overrides = _ref2$overrides === void 0 ? {} : _ref2$overrides;
79
-
80
- var _useStyletron = (0, _index.useStyletron)(),
81
- _useStyletron2 = _slicedToArray(_useStyletron, 2),
82
- theme = _useStyletron2[1];
83
-
84
- var _theme$colors = theme.colors,
85
- backgroundPrimary = _theme$colors.backgroundPrimary,
86
- primaryA = _theme$colors.primaryA;
87
- color = color || backgroundPrimary;
88
- background = background || primaryA;
42
+ var PinHead = function PinHead(_ref) {
43
+ var _ref$size = _ref.size,
44
+ size = _ref$size === void 0 ? _constants.PINHEAD_SIZES_SHAPES.medium : _ref$size,
45
+ _ref$label = _ref.label,
46
+ label = _ref$label === void 0 ? '' : _ref$label,
47
+ StartEnhancer = _ref.startEnhancer,
48
+ EndEnhancer = _ref.endEnhancer,
49
+ color = _ref.color,
50
+ background = _ref.background,
51
+ _ref$type = _ref.type,
52
+ type = _ref$type === void 0 ? _constants.PINHEAD_TYPES.fixed : _ref$type,
53
+ anchorType = _ref.anchorType,
54
+ _ref$needle = _ref.needle,
55
+ needle = _ref$needle === void 0 ? _constants.NEEDLE_SIZES.none : _ref$needle,
56
+ labelEnhancerContent = _ref.labelEnhancerContent,
57
+ labelEnhancerPosition = _ref.labelEnhancerPosition,
58
+ badgeEnhancerSize = _ref.badgeEnhancerSize,
59
+ badgeEnhancerContent = _ref.badgeEnhancerContent,
60
+ _ref$overrides = _ref.overrides,
61
+ overrides = _ref$overrides === void 0 ? {} : _ref$overrides;
89
62
  var activeElements = [label, StartEnhancer, EndEnhancer].filter(function (x) {
90
63
  return x;
91
64
  });
@@ -97,40 +70,78 @@ var PinHead = function PinHead(_ref2) {
97
70
  height = _PINHEAD_DIMENSIONS$s.height,
98
71
  icon = _PINHEAD_DIMENSIONS$s.icon;
99
72
 
100
- var _getOverrides = (0, _overrides.getOverrides)(overrides.PinHead, _styledComponents.PinHead),
73
+ var _getOverrides = (0, _overrides.getOverrides)(overrides.PinHead, _styledComponents.StyledPinHead),
101
74
  _getOverrides2 = _slicedToArray(_getOverrides, 2),
102
75
  PinHead = _getOverrides2[0],
103
76
  pinHeadProps = _getOverrides2[1];
104
77
 
105
- var _getOverrides3 = (0, _overrides.getOverrides)(overrides.PinHeadContent, _ContentItem),
78
+ var _getOverrides3 = (0, _overrides.getOverrides)(overrides.PinHeadContent, _styledComponents.StyledContentItem),
106
79
  _getOverrides4 = _slicedToArray(_getOverrides3, 2),
107
80
  ContentItem = _getOverrides4[0],
108
81
  contentItemProps = _getOverrides4[1];
109
82
 
110
- var _getOverrides5 = (0, _overrides.getOverrides)(overrides.InnerAnchor, _styledComponents.InnerXSmallAnchor),
83
+ var _getOverrides5 = (0, _overrides.getOverrides)(overrides.InnerAnchor, _styledComponents.StyledInnerXXSmallAnchor),
111
84
  _getOverrides6 = _slicedToArray(_getOverrides5, 2),
112
- InnerXSmallAnchor = _getOverrides6[0],
113
- innerXSmallAnchorProps = _getOverrides6[1];
85
+ InnerXXSmallAnchor = _getOverrides6[0],
86
+ innerXXSmallAnchorProps = _getOverrides6[1];
114
87
 
115
- var _getOverrides7 = (0, _overrides.getOverrides)(overrides.OuterAnchor, _styledComponents.OuterXSmallAnchor),
88
+ var _getOverrides7 = (0, _overrides.getOverrides)(overrides.OuterAnchor, _styledComponents.StyledOuterXXSmallAnchor),
116
89
  _getOverrides8 = _slicedToArray(_getOverrides7, 2),
117
- OuterXSmallAnchor = _getOverrides8[0],
118
- outerXSmallAnchorProps = _getOverrides8[1];
90
+ OuterXXSmallAnchor = _getOverrides8[0],
91
+ outerXXSmallAnchorProps = _getOverrides8[1];
92
+
93
+ var _getOverrides9 = (0, _overrides.getOverrides)(overrides.InnerAnchor, _styledComponents.StyledInnerXSmallAnchor),
94
+ _getOverrides10 = _slicedToArray(_getOverrides9, 2),
95
+ InnerXSmallAnchor = _getOverrides10[0],
96
+ innerXSmallAnchorProps = _getOverrides10[1];
97
+
98
+ var _getOverrides11 = (0, _overrides.getOverrides)(overrides.OuterAnchor, _styledComponents.StyledOuterXSmallAnchor),
99
+ _getOverrides12 = _slicedToArray(_getOverrides11, 2),
100
+ OuterXSmallAnchor = _getOverrides12[0],
101
+ outerXSmallAnchorProps = _getOverrides12[1];
102
+
103
+ var badge = /*#__PURE__*/React.createElement(_badgeEnhancer.default, {
104
+ markerType: type,
105
+ pinHeadSize: size,
106
+ badgeEnhancerSize: badgeEnhancerSize,
107
+ badgeEnhancerContent: badgeEnhancerContent,
108
+ overrides: overrides
109
+ });
119
110
 
120
- if (type === _constants.PINHEAD_TYPES.fixed && (size === _constants.PINHEAD_SIZES_SHAPES.xSmallSquare || size === _constants.PINHEAD_SIZES_SHAPES.xSmallCircle)) {
121
- var round = size === _constants.PINHEAD_SIZES_SHAPES.xSmallCircle;
122
- return /*#__PURE__*/React.createElement(OuterXSmallAnchor, _extends({
111
+ if (type === _constants.PINHEAD_TYPES.fixed && (size === _constants.PINHEAD_SIZES_SHAPES.xxSmallCircle || size === _constants.PINHEAD_SIZES_SHAPES.xxSmallSquare)) {
112
+ var round = size === _constants.PINHEAD_SIZES_SHAPES.xxSmallCircle;
113
+ return /*#__PURE__*/React.createElement(OuterXXSmallAnchor, _extends({
123
114
  $round: round,
124
115
  $background: background,
125
116
  $size: height
126
- }, outerXSmallAnchorProps), /*#__PURE__*/React.createElement(InnerXSmallAnchor, _extends({
117
+ }, outerXXSmallAnchorProps), /*#__PURE__*/React.createElement(InnerXXSmallAnchor, _extends({
127
118
  $color: color,
128
119
  $round: round,
129
120
  $size: icon
130
- }, innerXSmallAnchorProps)));
121
+ }, innerXXSmallAnchorProps)));
122
+ }
123
+
124
+ if (type === _constants.PINHEAD_TYPES.fixed && (size === _constants.PINHEAD_SIZES_SHAPES.xSmallSquare || size === _constants.PINHEAD_SIZES_SHAPES.xSmallCircle)) {
125
+ var _round = size === _constants.PINHEAD_SIZES_SHAPES.xSmallCircle;
126
+
127
+ return /*#__PURE__*/React.createElement(_styledComponents.RelativeContainer, null, badge, /*#__PURE__*/React.createElement(OuterXSmallAnchor, _extends({
128
+ $round: _round,
129
+ $background: background,
130
+ $size: height
131
+ }, outerXSmallAnchorProps), /*#__PURE__*/React.createElement(InnerXSmallAnchor, _extends({
132
+ $color: color,
133
+ $round: _round,
134
+ $size: icon
135
+ }, innerXSmallAnchorProps))));
131
136
  }
132
137
 
133
- return /*#__PURE__*/React.createElement(PinHead, _extends({
138
+ return /*#__PURE__*/React.createElement(_styledComponents.RelativeContainer, null, /*#__PURE__*/React.createElement(_labelEnhancer.default, {
139
+ labelEnhancerContent: labelEnhancerContent,
140
+ labelEnhancerPosition: labelEnhancerPosition,
141
+ needleHeight: _constants.NEEDLE_HEIGHTS[needle],
142
+ size: size,
143
+ overrides: overrides
144
+ }), badge, /*#__PURE__*/React.createElement(PinHead, _extends({
134
145
  $background: background,
135
146
  $height: height,
136
147
  $gridTemplateColumns: gridTemplateColumns,
@@ -152,7 +163,7 @@ var PinHead = function PinHead(_ref2) {
152
163
  $size: size
153
164
  }, contentItemProps), /*#__PURE__*/React.createElement(EndEnhancer, {
154
165
  size: icon
155
- })));
166
+ }))));
156
167
  };
157
168
 
158
169
  var _default = PinHead;
@@ -6,42 +6,26 @@ LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  // @flow
8
8
  import * as React from 'react';
9
- import {useStyletron, styled} from '../styles/index.js';
10
9
  import {getOverrides} from '../helpers/overrides.js';
11
10
  import {
12
- InnerXSmallAnchor as StyledInnerXSmallAnchor,
13
- OuterXSmallAnchor as StyledOuterXSmallAnchor,
14
- PinHead as StyledPinHead,
11
+ StyledInnerXXSmallAnchor,
12
+ StyledOuterXXSmallAnchor,
13
+ StyledInnerXSmallAnchor,
14
+ StyledOuterXSmallAnchor,
15
+ StyledPinHead,
16
+ RelativeContainer,
17
+ StyledContentItem,
15
18
  } from './styled-components.js';
16
19
  import {
17
20
  PINHEAD_DIMENSIONS,
18
21
  PINHEAD_TYPES,
19
22
  PINHEAD_SIZES_SHAPES,
23
+ NEEDLE_HEIGHTS,
24
+ NEEDLE_SIZES,
20
25
  } from './constants.js';
21
- import type {PinHeadPropsT, PinHeadSizeT} from './types.js';
22
-
23
- export const _ContentItem = styled<{
24
- $color: string,
25
- $height: number,
26
- $size: PinHeadSizeT,
27
- }>('div', ({$theme, $color, $height, $size}) => {
28
- const match = {
29
- [PINHEAD_SIZES_SHAPES.xSmallCircle]: 'LabelSmall',
30
- [PINHEAD_SIZES_SHAPES.xSmallSquare]: 'LabelSmall',
31
- [PINHEAD_SIZES_SHAPES.small]: 'LabelSmall',
32
- [PINHEAD_SIZES_SHAPES.medium]: 'LabelMedium',
33
- [PINHEAD_SIZES_SHAPES.large]: 'LabelLarge',
34
- };
35
- return {
36
- ...$theme.typography[match[$size]],
37
- display: 'flex',
38
- alignItems: 'center',
39
- textAlign: 'center',
40
- lineHeight: `${$height}px`,
41
- height: `${$height}px`,
42
- color: $color,
43
- };
44
- });
26
+ import BadgeEnhancer from './badge-enhancer.js';
27
+ import LabelEnhancer from './label-enhancer.js';
28
+ import type {PinHeadPropsT} from './types.js';
45
29
 
46
30
  const PinHead = ({
47
31
  size = PINHEAD_SIZES_SHAPES.medium,
@@ -52,16 +36,14 @@ const PinHead = ({
52
36
  background,
53
37
  type = PINHEAD_TYPES.fixed,
54
38
  anchorType,
39
+ needle = NEEDLE_SIZES.none,
40
+ labelEnhancerContent,
41
+ labelEnhancerPosition,
42
+ badgeEnhancerSize,
43
+ badgeEnhancerContent,
44
+
55
45
  overrides = {},
56
46
  }: PinHeadPropsT) => {
57
- const [, theme] = useStyletron();
58
- const {
59
- colors: {backgroundPrimary, primaryA},
60
- } = theme;
61
-
62
- color = color || backgroundPrimary;
63
- background = background || primaryA;
64
-
65
47
  const activeElements = [label, StartEnhancer, EndEnhancer].filter(x => x);
66
48
  const gridTemplateColumns = activeElements.map(() => 'auto').join(' ');
67
49
  const forceCircle = activeElements.length === 1 && !label;
@@ -73,8 +55,18 @@ const PinHead = ({
73
55
  );
74
56
  const [ContentItem, contentItemProps] = getOverrides(
75
57
  overrides.PinHeadContent,
76
- _ContentItem,
58
+ StyledContentItem,
59
+ );
60
+
61
+ const [InnerXXSmallAnchor, innerXXSmallAnchorProps] = getOverrides(
62
+ overrides.InnerAnchor,
63
+ StyledInnerXXSmallAnchor,
64
+ );
65
+ const [OuterXXSmallAnchor, outerXXSmallAnchorProps] = getOverrides(
66
+ overrides.OuterAnchor,
67
+ StyledOuterXXSmallAnchor,
77
68
  );
69
+
78
70
  const [InnerXSmallAnchor, innerXSmallAnchorProps] = getOverrides(
79
71
  overrides.InnerAnchor,
80
72
  StyledInnerXSmallAnchor,
@@ -84,68 +76,114 @@ const PinHead = ({
84
76
  StyledOuterXSmallAnchor,
85
77
  );
86
78
 
79
+ const badge = (
80
+ <BadgeEnhancer
81
+ markerType={type}
82
+ pinHeadSize={size}
83
+ badgeEnhancerSize={badgeEnhancerSize}
84
+ badgeEnhancerContent={badgeEnhancerContent}
85
+ overrides={overrides}
86
+ />
87
+ );
87
88
  if (
88
89
  type === PINHEAD_TYPES.fixed &&
89
- (size === PINHEAD_SIZES_SHAPES.xSmallSquare ||
90
- size === PINHEAD_SIZES_SHAPES.xSmallCircle)
90
+ (size === PINHEAD_SIZES_SHAPES.xxSmallCircle ||
91
+ size === PINHEAD_SIZES_SHAPES.xxSmallSquare)
91
92
  ) {
92
- const round = size === PINHEAD_SIZES_SHAPES.xSmallCircle;
93
+ const round = size === PINHEAD_SIZES_SHAPES.xxSmallCircle;
93
94
  return (
94
- <OuterXSmallAnchor
95
+ <OuterXXSmallAnchor
95
96
  $round={round}
96
97
  $background={background}
97
98
  $size={height}
98
- {...outerXSmallAnchorProps}
99
+ {...outerXXSmallAnchorProps}
99
100
  >
100
- <InnerXSmallAnchor
101
+ <InnerXXSmallAnchor
101
102
  $color={color}
102
103
  $round={round}
103
104
  $size={icon}
104
- {...innerXSmallAnchorProps}
105
+ {...innerXXSmallAnchorProps}
105
106
  />
106
- </OuterXSmallAnchor>
107
+ </OuterXXSmallAnchor>
107
108
  );
108
109
  }
109
- return (
110
- <PinHead
111
- $background={background}
112
- $height={height}
113
- $gridTemplateColumns={gridTemplateColumns}
114
- $forceCircle={forceCircle}
115
- $type={type}
116
- {...pinHeadProps}
117
- >
118
- {StartEnhancer && (
119
- <ContentItem
120
- $height={height}
121
- $color={color}
122
- $size={size}
123
- {...contentItemProps}
124
- >
125
- <StartEnhancer size={icon} />
126
- </ContentItem>
127
- )}
128
- {label && (
129
- <ContentItem
130
- $height={height}
131
- $color={color}
132
- $size={size}
133
- {...contentItemProps}
134
- >
135
- {label}
136
- </ContentItem>
137
- )}
138
- {EndEnhancer && (
139
- <ContentItem
140
- $height={height}
141
- $color={color}
142
- $size={size}
143
- {...contentItemProps}
110
+
111
+ if (
112
+ type === PINHEAD_TYPES.fixed &&
113
+ (size === PINHEAD_SIZES_SHAPES.xSmallSquare ||
114
+ size === PINHEAD_SIZES_SHAPES.xSmallCircle)
115
+ ) {
116
+ const round = size === PINHEAD_SIZES_SHAPES.xSmallCircle;
117
+ return (
118
+ <RelativeContainer>
119
+ {badge}
120
+ <OuterXSmallAnchor
121
+ $round={round}
122
+ $background={background}
123
+ $size={height}
124
+ {...outerXSmallAnchorProps}
144
125
  >
145
- <EndEnhancer size={icon} />
146
- </ContentItem>
147
- )}
148
- </PinHead>
126
+ <InnerXSmallAnchor
127
+ $color={color}
128
+ $round={round}
129
+ $size={icon}
130
+ {...innerXSmallAnchorProps}
131
+ />
132
+ </OuterXSmallAnchor>
133
+ </RelativeContainer>
134
+ );
135
+ }
136
+
137
+ return (
138
+ <RelativeContainer>
139
+ <LabelEnhancer
140
+ labelEnhancerContent={labelEnhancerContent}
141
+ labelEnhancerPosition={labelEnhancerPosition}
142
+ needleHeight={NEEDLE_HEIGHTS[needle]}
143
+ size={size}
144
+ overrides={overrides}
145
+ />
146
+ {badge}
147
+ <PinHead
148
+ $background={background}
149
+ $height={height}
150
+ $gridTemplateColumns={gridTemplateColumns}
151
+ $forceCircle={forceCircle}
152
+ $type={type}
153
+ {...pinHeadProps}
154
+ >
155
+ {StartEnhancer && (
156
+ <ContentItem
157
+ $height={height}
158
+ $color={color}
159
+ $size={size}
160
+ {...contentItemProps}
161
+ >
162
+ <StartEnhancer size={icon} />
163
+ </ContentItem>
164
+ )}
165
+ {label && (
166
+ <ContentItem
167
+ $height={height}
168
+ $color={color}
169
+ $size={size}
170
+ {...contentItemProps}
171
+ >
172
+ {label}
173
+ </ContentItem>
174
+ )}
175
+ {EndEnhancer && (
176
+ <ContentItem
177
+ $height={height}
178
+ $color={color}
179
+ $size={size}
180
+ {...contentItemProps}
181
+ >
182
+ <EndEnhancer size={icon} />
183
+ </ContentItem>
184
+ )}
185
+ </PinHead>
186
+ </RelativeContainer>
149
187
  );
150
188
  };
151
189
  export default PinHead;