@zohodesk/components 1.0.0-temp-203.2 → 1.0.0-temp-204

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 (141) hide show
  1. package/.cli/propValidation_report.html +1 -1
  2. package/README.md +25 -0
  3. package/es/CheckBox/CheckBox.js +3 -2
  4. package/es/CheckBox/props/propTypes.js +2 -1
  5. package/es/DateTime/DateWidget.js +8 -3
  6. package/es/DateTime/DateWidget.module.css +1 -0
  7. package/es/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +3 -3
  8. package/es/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +1 -1
  9. package/es/DateTime/__tests__/__snapshots__/Time.spec.js.snap +3 -3
  10. package/es/DropBox/DropBoxElement/DropBoxElement.js +1 -1
  11. package/es/DropBox/DropBoxPositionMapping.js +142 -0
  12. package/es/ListItem/ListItemWithAvatar.js +9 -5
  13. package/es/ListItem/props/defaultProps.js +1 -0
  14. package/es/ListItem/props/propTypes.js +4 -1
  15. package/es/MultiSelect/MultiSelect.js +11 -3
  16. package/es/MultiSelect/MultiSelect.module.css +4 -0
  17. package/es/MultiSelect/Suggestions.js +2 -0
  18. package/es/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +1 -1
  19. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +1 -1
  20. package/es/MultiSelect/props/defaultProps.js +2 -1
  21. package/es/MultiSelect/props/propTypes.js +5 -1
  22. package/es/Popup/Popup.js +1 -1
  23. package/es/Popup/PositionMapping.js +72 -0
  24. package/es/Provider/LibraryContext.js +15 -3
  25. package/es/Provider/LibraryContextInit.js +1 -1
  26. package/es/Tab/Tabs.js +124 -20
  27. package/es/Tab/Tabs.module.css +33 -2
  28. package/es/Tab/props/defaultProps.js +3 -1
  29. package/es/Tab/props/propTypes.js +6 -1
  30. package/es/Tag/Tag.js +3 -1
  31. package/es/Tag/__tests__/Tag.spec.js +10 -0
  32. package/es/Tag/__tests__/__snapshots__/Tag.spec.js.snap +20 -0
  33. package/es/Tag/props/defaultProps.js +1 -0
  34. package/es/Tag/props/propTypes.js +1 -0
  35. package/es/TextBoxIcon/TextBoxIcon.js +13 -3
  36. package/es/TextBoxIcon/props/defaultProps.js +1 -0
  37. package/es/TextBoxIcon/props/propTypes.js +3 -1
  38. package/es/{Select → select}/Select.js +13 -8
  39. package/es/{Select → select}/Select.module.css +3 -0
  40. package/es/{Select → select}/SelectWithIcon.js +24 -4
  41. package/es/{Select → select}/__tests__/__snapshots__/Select.spec.js.snap +1 -1
  42. package/{lib/Select → es/select}/__tests__/__snapshots__/SelectWithIcon.spec.js.snap +1 -1
  43. package/es/{Select → select}/props/defaultProps.js +2 -1
  44. package/es/{Select → select}/props/propTypes.js +7 -1
  45. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +1 -1
  46. package/es/v1/ListItem/ListItemWithAvatar.js +9 -5
  47. package/es/v1/ListItem/props/defaultProps.js +1 -0
  48. package/es/v1/ListItem/props/propTypes.js +4 -1
  49. package/es/v1/MultiSelect/Suggestions.js +2 -0
  50. package/es/v1/MultiSelect/props/propTypes.js +1 -0
  51. package/es/v1/Popup/Popup.js +1 -1
  52. package/es/v1/Select/Select.js +3 -1
  53. package/es/v1/Select/props/propTypes.js +1 -0
  54. package/es/v1/Tag/Tag.js +3 -1
  55. package/es/v1/Tag/props/defaultProps.js +1 -0
  56. package/es/v1/Tag/props/propTypes.js +1 -0
  57. package/es/v1/TextBoxIcon/TextBoxIcon.js +9 -1
  58. package/es/v1/TextBoxIcon/props/defaultProps.js +1 -0
  59. package/es/v1/TextBoxIcon/props/propTypes.js +1 -0
  60. package/lib/CheckBox/CheckBox.js +3 -2
  61. package/lib/CheckBox/props/propTypes.js +2 -1
  62. package/lib/DateTime/DateWidget.js +11 -4
  63. package/lib/DateTime/DateWidget.module.css +1 -0
  64. package/lib/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +3 -3
  65. package/lib/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +1 -1
  66. package/lib/DateTime/__tests__/__snapshots__/Time.spec.js.snap +3 -3
  67. package/lib/DropBox/DropBoxElement/DropBoxElement.js +1 -1
  68. package/lib/DropBox/DropBoxPositionMapping.js +149 -0
  69. package/lib/ListItem/ListItemWithAvatar.js +9 -5
  70. package/lib/ListItem/props/defaultProps.js +1 -0
  71. package/lib/ListItem/props/propTypes.js +4 -2
  72. package/lib/MultiSelect/MultiSelect.js +12 -4
  73. package/lib/MultiSelect/MultiSelect.module.css +4 -0
  74. package/lib/MultiSelect/Suggestions.js +2 -0
  75. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +1 -1
  76. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +1 -1
  77. package/lib/MultiSelect/props/defaultProps.js +2 -1
  78. package/lib/MultiSelect/props/propTypes.js +5 -1
  79. package/lib/Popup/Popup.js +1 -1
  80. package/lib/Popup/PositionMapping.js +81 -0
  81. package/lib/Provider/LibraryContext.js +15 -5
  82. package/lib/Provider/LibraryContextInit.js +1 -1
  83. package/lib/Tab/Tabs.js +125 -27
  84. package/lib/Tab/Tabs.module.css +33 -2
  85. package/lib/Tab/props/defaultProps.js +3 -1
  86. package/lib/Tab/props/propTypes.js +6 -1
  87. package/lib/Tag/Tag.js +5 -2
  88. package/lib/Tag/__tests__/Tag.spec.js +10 -0
  89. package/lib/Tag/__tests__/__snapshots__/Tag.spec.js.snap +20 -0
  90. package/lib/Tag/props/defaultProps.js +1 -0
  91. package/lib/Tag/props/propTypes.js +1 -0
  92. package/lib/TextBoxIcon/TextBoxIcon.js +14 -3
  93. package/lib/TextBoxIcon/props/defaultProps.js +1 -0
  94. package/lib/TextBoxIcon/props/propTypes.js +3 -1
  95. package/lib/{Select → select}/Select.js +14 -9
  96. package/lib/{Select → select}/Select.module.css +3 -0
  97. package/lib/{Select → select}/SelectWithIcon.js +33 -6
  98. package/lib/{Select → select}/__tests__/__snapshots__/Select.spec.js.snap +1 -1
  99. package/{es/Select → lib/select}/__tests__/__snapshots__/SelectWithIcon.spec.js.snap +1 -1
  100. package/lib/{Select → select}/props/defaultProps.js +1 -1
  101. package/lib/{Select → select}/props/propTypes.js +7 -1
  102. package/lib/v1/DropBox/DropBoxElement/DropBoxElement.js +1 -1
  103. package/lib/v1/ListItem/ListItemWithAvatar.js +9 -5
  104. package/lib/v1/ListItem/props/defaultProps.js +1 -0
  105. package/lib/v1/ListItem/props/propTypes.js +4 -2
  106. package/lib/v1/MultiSelect/Suggestions.js +2 -0
  107. package/lib/v1/MultiSelect/props/propTypes.js +1 -0
  108. package/lib/v1/Popup/Popup.js +1 -1
  109. package/lib/v1/Select/Select.js +4 -2
  110. package/lib/v1/Select/props/propTypes.js +1 -0
  111. package/lib/v1/Tag/Tag.js +5 -2
  112. package/lib/v1/Tag/props/defaultProps.js +1 -0
  113. package/lib/v1/Tag/props/propTypes.js +1 -0
  114. package/lib/v1/TextBoxIcon/TextBoxIcon.js +9 -1
  115. package/lib/v1/TextBoxIcon/props/defaultProps.js +1 -0
  116. package/lib/v1/TextBoxIcon/props/propTypes.js +1 -0
  117. package/package.json +1 -1
  118. package/propValidationArg.json +1 -1
  119. package/result.json +1 -1
  120. package/es/DropBox/DropBoxPositionMapping.json +0 -145
  121. package/es/Popup/PositionMapping.json +0 -74
  122. package/lib/DropBox/DropBoxPositionMapping.json +0 -145
  123. package/lib/Popup/PositionMapping.json +0 -74
  124. /package/es/{Select → select}/GroupSelect.js +0 -0
  125. /package/es/{Select → select}/SelectWithAvatar.js +0 -0
  126. /package/es/{Select → select}/__tests__/GroupSelect.spec.js +0 -0
  127. /package/es/{Select → select}/__tests__/Select.spec.js +0 -0
  128. /package/es/{Select → select}/__tests__/SelectWithAvatar.spec.js +0 -0
  129. /package/es/{Select → select}/__tests__/SelectWithIcon.spec.js +0 -0
  130. /package/es/{Select → select}/__tests__/__snapshots__/GroupSelect.spec.js.snap +0 -0
  131. /package/es/{Select → select}/__tests__/__snapshots__/SelectWithAvatar.spec.js.snap +0 -0
  132. /package/es/{Select → select}/index.js +0 -0
  133. /package/lib/{Select → select}/GroupSelect.js +0 -0
  134. /package/lib/{Select → select}/SelectWithAvatar.js +0 -0
  135. /package/lib/{Select → select}/__tests__/GroupSelect.spec.js +0 -0
  136. /package/lib/{Select → select}/__tests__/Select.spec.js +0 -0
  137. /package/lib/{Select → select}/__tests__/SelectWithAvatar.spec.js +0 -0
  138. /package/lib/{Select → select}/__tests__/SelectWithIcon.spec.js +0 -0
  139. /package/lib/{Select → select}/__tests__/__snapshots__/GroupSelect.spec.js.snap +0 -0
  140. /package/lib/{Select → select}/__tests__/__snapshots__/SelectWithAvatar.spec.js.snap +0 -0
  141. /package/lib/{Select → select}/index.js +0 -0
@@ -57,6 +57,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
57
57
 
58
58
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
59
59
 
60
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
61
+
60
62
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
61
63
 
62
64
  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."); }
@@ -945,7 +947,8 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
945
947
  dataId = _this$props14.dataId,
946
948
  setAriaId = _this$props14.setAriaId,
947
949
  isPopupOpen = _this$props14.isPopupOpen,
948
- ariaErrorId = _this$props14.ariaErrorId;
950
+ ariaErrorId = _this$props14.ariaErrorId,
951
+ customProps = _this$props14.customProps;
949
952
  var _this$state8 = this.state,
950
953
  isActive = _this$state8.isActive,
951
954
  selectedOptions = _this$state8.selectedOptions,
@@ -964,6 +967,8 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
964
967
  isShowClear = _this$getIsShowClearI.isShowClearIcon;
965
968
 
966
969
  var isShowClearIcon = !isReadOnly && !isDisabled && !disableAction && isShowClear;
970
+ var _customProps$TextBoxI = customProps.TextBoxIconProps,
971
+ TextBoxIconProps = _customProps$TextBoxI === void 0 ? {} : _customProps$TextBoxI;
967
972
  return /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
968
973
  align: "vertical",
969
974
  alignBox: "row",
@@ -987,7 +992,7 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
987
992
  shrink: true
988
993
  }, /*#__PURE__*/_react["default"].createElement("span", {
989
994
  className: " ".concat(_MultiSelectModule["default"].custmSpan, " ").concat(textBoxSize === 'xmedium' ? _MultiSelectModule["default"].custmSpanXmedium : _MultiSelectModule["default"].custmSpanMedium, " ").concat(isShowClearIcon ? _MultiSelectModule["default"].clearIconSpace : '', "\n ").concat(customChildrenClass ? customChildrenClass : '')
990
- }, searchStr), /*#__PURE__*/_react["default"].createElement(_TextBoxIcon["default"], {
995
+ }, searchStr), /*#__PURE__*/_react["default"].createElement(_TextBoxIcon["default"], _extends({
991
996
  isDisabled: isDisabled,
992
997
  inputRef: this.searchInputRef,
993
998
  needBorder: false,
@@ -1019,9 +1024,12 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
1019
1024
  ariaLabelledby: ariaLabelledby
1020
1025
  },
1021
1026
  autoComplete: autoComplete
1022
- }, /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
1027
+ }, TextBoxIconProps), /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
1028
+ isInline: true,
1029
+ isCover: false,
1023
1030
  alignBox: "row",
1024
- align: "vertical"
1031
+ align: "vertical",
1032
+ className: _MultiSelectModule["default"].rightPlaceholder
1025
1033
  }, isShowClearIcon ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
1026
1034
  className: "".concat(_MultiSelectModule["default"]["delete"], " ").concat(_MultiSelectModule["default"]["".concat(palette, "Delete")]),
1027
1035
  dataId: "".concat(dataId, "_clearIcon"),
@@ -202,3 +202,7 @@
202
202
  background-color: var(--zdt_multiselect_delete_bg);
203
203
  border: 0;
204
204
  }
205
+
206
+ .rightPlaceholder{
207
+ height: 100% ;
208
+ }
@@ -70,6 +70,7 @@ var Suggestions = /*#__PURE__*/function (_React$PureComponent) {
70
70
  getRef = _this$props.getRef,
71
71
  hoverOption = _this$props.hoverOption,
72
72
  onClick = _this$props.onClick,
73
+ onAvatarClick = _this$props.onAvatarClick,
73
74
  onMouseEnter = _this$props.onMouseEnter,
74
75
  needTick = _this$props.needTick,
75
76
  needBorder = _this$props.needBorder,
@@ -134,6 +135,7 @@ var Suggestions = /*#__PURE__*/function (_React$PureComponent) {
134
135
  key: "".concat(id, "avatarListItem"),
135
136
  name: value,
136
137
  onClick: onClick,
138
+ onAvatarClick: onAvatarClick,
137
139
  onMouseEnter: onMouseEnter,
138
140
  value: value,
139
141
  title: value,
@@ -70,7 +70,7 @@ exports[`MultiSelect rendering the defult props 1`] = `
70
70
  data-test-id="boxComponent"
71
71
  >
72
72
  <div
73
- class="flex cover rowdir vCenter"
73
+ class="rightPlaceholder inflex rowdir vCenter"
74
74
  data-id="containerComponent"
75
75
  data-selector-id="container"
76
76
  data-test-id="containerComponent"
@@ -69,7 +69,7 @@ exports[`MultiSelectWithAvatar rendering the defult props 1`] = `
69
69
  data-test-id="boxComponent"
70
70
  >
71
71
  <div
72
- class="flex cover rowdir vCenter"
72
+ class="rightPlaceholder inflex rowdir vCenter"
73
73
  data-id="containerComponent"
74
74
  data-selector-id="container"
75
75
  data-test-id="containerComponent"
@@ -122,7 +122,8 @@ var MultiSelect_defaultProps = {
122
122
  keepSelectedOptions: false,
123
123
  selectedOptionsCount: 0,
124
124
  cardHeaderName: '',
125
- needResponsive: true
125
+ needResponsive: true,
126
+ customProps: {}
126
127
  };
127
128
  exports.MultiSelect_defaultProps = MultiSelect_defaultProps;
128
129
  var MultiSelectHeader_defaultProps = {
@@ -121,7 +121,10 @@ var MultiSelect_propTypes = {
121
121
  needSelectAll: _propTypes["default"].bool,
122
122
  selectAllText: _propTypes["default"].string,
123
123
  setAriaId: _propTypes["default"].string,
124
- ariaErrorId: _propTypes["default"].string
124
+ ariaErrorId: _propTypes["default"].string,
125
+ customProps: _propTypes["default"].shape({
126
+ TextBoxIconProps: _propTypes["default"].object
127
+ })
125
128
  };
126
129
  exports.MultiSelect_propTypes = MultiSelect_propTypes;
127
130
  var MultiSelectHeader_propTypes = {
@@ -180,6 +183,7 @@ var Suggestions_propTypes = {
180
183
  needBorder: _propTypes["default"].bool,
181
184
  needTick: _propTypes["default"].bool,
182
185
  onClick: _propTypes["default"].func,
186
+ onAvatarClick: _propTypes["default"].func,
183
187
  onMouseEnter: _propTypes["default"].func,
184
188
  palette: _propTypes["default"].string,
185
189
  selectedOptions: _propTypes["default"].array,
@@ -17,7 +17,7 @@ var _Common = require("../utils/Common.js");
17
17
 
18
18
  var _viewPort = _interopRequireDefault(require("./viewPort"));
19
19
 
20
- var _PositionMapping = require("./PositionMapping.json");
20
+ var _PositionMapping = require("./PositionMapping.js");
21
21
 
22
22
  var _ResizeObserver = _interopRequireDefault(require("@zohodesk/virtualizer/lib/commons/ResizeObserver.js"));
23
23
 
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.rtlFixedPositionMapping = exports.rtlAbsolutePositionMapping = exports.absolutePositionMapping = void 0;
7
+ var absolutePositionMapping = {
8
+ "bottomCenter": "bottomCenter",
9
+ "bottomRight": "bottomLeftToRight",
10
+ "bottomLeft": "bottomRightToLeft",
11
+ "topCenter": "topCenter",
12
+ "topRight": "topLeftToRight",
13
+ "topLeft": "topRightToLeft",
14
+ "rightCenter": "rightCenter",
15
+ "rightBottom": "rightTopToBottom",
16
+ "rightTop": "rightBottomToTop",
17
+ "leftCenter": "leftCenter",
18
+ "leftBottom": "leftTopToBottom",
19
+ "leftTop": "leftBottomToTop",
20
+ "bottomLeftToRight": "bottomLeftToRight",
21
+ "bottomRightToLeft": "bottomRightToLeft",
22
+ "topLeftToRight": "topLeftToRight",
23
+ "topRightToLeft": "topRightToLeft",
24
+ "rightTopToBottom": "rightTopToBottom",
25
+ "rightBottomToTop": "rightBottomToTop",
26
+ "leftTopToBottom": "leftTopToBottom"
27
+ };
28
+ exports.absolutePositionMapping = absolutePositionMapping;
29
+ var rtlAbsolutePositionMapping = {
30
+ "bottomCenter": "bottomCenter",
31
+ "bottomRight": "bottomRightToLeft",
32
+ "bottomLeft": "bottomLeftToRight",
33
+ "topCenter": "topCenter",
34
+ "topRight": "topRightToLeft",
35
+ "topLeft": "topLeftToRight",
36
+ "rightCenter": "leftCenter",
37
+ "rightBottom": "leftTopToBottom",
38
+ "rightTop": "leftBottomToTop",
39
+ "leftCenter": "rightCenter",
40
+ "leftBottom": "rightTopToBottom",
41
+ "leftTop": "rightBottomToTop",
42
+ "bottomLeftToRight": "bottomLeftToRight",
43
+ "bottomRightToLeft": "bottomRightToLeft",
44
+ "topLeftToRight": "topLeftToRight",
45
+ "topRightToLeft": "topRightToLeft",
46
+ "rightTopToBottom": "rightTopToBottom",
47
+ "rightBottomToTop": "rightBottomToTop",
48
+ "leftTopToBottom": "leftTopToBottom"
49
+ };
50
+ exports.rtlAbsolutePositionMapping = rtlAbsolutePositionMapping;
51
+ var rtlFixedPositionMapping = {
52
+ "bottomCenter": "bottomCenter",
53
+ "bottomLeftToRight": "bottomRightToLeft",
54
+ "bottomCenterToRight": "bottomCenterToLeft",
55
+ "bottomRightToLeft": "bottomLeftToRight",
56
+ "bottomCenterToLeft": "bottomCenterToRight",
57
+ "topCenter": "topCenter",
58
+ "topLeftToRight": "topRightToLeft",
59
+ "topCenterToRight": "topCenterToLeft",
60
+ "topRightToLeft": "topLeftToRight",
61
+ "topCenterToLeft": "topCenterToRight",
62
+ "rightTopToBottom": "leftTopToBottom",
63
+ "rightCenterToBottom": "leftCenterToBottom",
64
+ "rightCenter": "leftCenter",
65
+ "rightBottomToTop": "leftBottomToTop",
66
+ "rightCenterToTop": "leftCenterToTop",
67
+ "leftTopToBottom": "rightTopToBottom",
68
+ "leftCenterToBottom": "rightCenterToBottom",
69
+ "leftCenter": "rightCenter",
70
+ "leftBottomToTop": "rightBottomToTop",
71
+ "leftCenterToTop": "rightCenterToTop",
72
+ "bottomRight": "bottomLeft",
73
+ "bottomLeft": "bottomRight",
74
+ "topRight": "topLeft",
75
+ "topLeft": "topRight",
76
+ "rightBottom": "leftBottom",
77
+ "rightTop": "leftTop",
78
+ "leftBottom": "rightBottom",
79
+ "leftTop": "rightTop"
80
+ };
81
+ exports.rtlFixedPositionMapping = rtlFixedPositionMapping;
@@ -40,15 +40,17 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
40
40
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
41
41
 
42
42
  var LibraryContextProvider = function LibraryContextProvider(_ref) {
43
- var _ref$isReducedMotion = _ref.isReducedMotion,
44
- isReducedMotion = _ref$isReducedMotion === void 0 ? (0, _Config.getLibraryConfig)('isReducedMotion') : _ref$isReducedMotion,
45
- _ref$direction = _ref.direction,
46
- direction = _ref$direction === void 0 ? (0, _Config.getLibraryConfig)('direction') : _ref$direction,
43
+ var isReducedMotion = _ref.isReducedMotion,
44
+ direction = _ref.direction,
45
+ coloredTagVariant = _ref.coloredTagVariant,
46
+ hasTagColorInheritedToText = _ref.hasTagColorInheritedToText,
47
47
  children = _ref.children;
48
48
 
49
49
  var _useState = (0, _react.useState)({
50
50
  isReducedMotion: isReducedMotion,
51
- direction: direction
51
+ direction: direction,
52
+ coloredTagVariant: coloredTagVariant,
53
+ hasTagColorInheritedToText: hasTagColorInheritedToText
52
54
  }),
53
55
  _useState2 = _slicedToArray(_useState, 2),
54
56
  value = _useState2[0],
@@ -70,7 +72,15 @@ var LibraryContextProvider = function LibraryContextProvider(_ref) {
70
72
  LibraryContextProvider.propTypes = {
71
73
  children: _propTypes["default"].node.isRequired,
72
74
  isReducedMotion: _propTypes["default"].bool,
75
+ coloredTagVariant: _propTypes["default"].oneOf(['bold', 'subtle', 'minimal']),
76
+ hasTagColorInheritedToText: _propTypes["default"].bool,
73
77
  direction: _propTypes["default"].string
74
78
  };
79
+ LibraryContextProvider.defaultProps = {
80
+ isReducedMotion: (0, _Config.getLibraryConfig)('isReducedMotion'),
81
+ direction: (0, _Config.getLibraryConfig)('direction'),
82
+ coloredTagVariant: 'bold',
83
+ hasTagColorInheritedToText: true
84
+ };
75
85
  var _default = LibraryContextProvider;
76
86
  exports["default"] = _default;
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
11
 
12
- var LibraryContext = /*#__PURE__*/_react["default"].createContext();
12
+ var LibraryContext = /*#__PURE__*/_react["default"].createContext({});
13
13
 
14
14
  var _default = LibraryContext;
15
15
  exports["default"] = _default;
package/lib/Tab/Tabs.js CHANGED
@@ -9,6 +9,8 @@ exports["default"] = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
+ var _EmptySearch = _interopRequireDefault(require("@zohodesk/svg/lib/emptystate/version3/EmptySearch"));
13
+
12
14
  var _Tab = _interopRequireDefault(require("./Tab"));
13
15
 
14
16
  var _defaultProps = require("./props/defaultProps");
@@ -29,6 +31,8 @@ var _TabsModule = _interopRequireDefault(require("./Tabs.module.css"));
29
31
 
30
32
  var _Popup = _interopRequireDefault(require("../Popup/Popup"));
31
33
 
34
+ var _TextBoxIcon = _interopRequireDefault(require("../TextBoxIcon/TextBoxIcon"));
35
+
32
36
  var _ResponsiveDropBox = _interopRequireDefault(require("../ResponsiveDropBox/ResponsiveDropBox"));
33
37
 
34
38
  var _CustomResponsive = require("../Responsive/CustomResponsive");
@@ -81,10 +85,11 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
81
85
  tabDimensions: {},
82
86
  highlightInitialDimension: null,
83
87
  renderVirtualTabs: true,
84
- tabKeys: []
88
+ tabKeys: [],
89
+ searchValue: ''
85
90
  };
86
91
 
87
- _Common.bind.apply(_assertThisInitialized(_this), ['moreTabSelect', 'onResize', 'onTabResize', 'getHighlightRef', 'getTabsRef', 'getTabRef', 'getHighlightDim', 'onSizeChange', 'onScroll', 'togglePopup', 'setMaxDim']);
92
+ _Common.bind.apply(_assertThisInitialized(_this), ['moreTabSelect', 'onResize', 'onTabResize', 'getHighlightRef', 'getTabsRef', 'getTabRef', 'getHighlightDim', 'onSizeChange', 'onScroll', 'togglePopup', 'setMaxDim', 'handleChange', 'handleSearchValueClear', 'getMoreList', 'renderEmptyState']);
88
93
 
89
94
  _this.tabsObserver = new _ResizeObserver["default"](_this.onResize);
90
95
  _this.tabObserver = {};
@@ -188,11 +193,13 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
188
193
  var _this$props2 = this.props,
189
194
  children = _this$props2.children,
190
195
  selectedTab = _this$props2.selectedTab,
191
- childType = _this$props2.childType;
196
+ childType = _this$props2.childType,
197
+ isPopupOpen = _this$props2.isPopupOpen;
192
198
  var _this$state = this.state,
193
199
  tabDimensions = _this$state.tabDimensions,
194
200
  totalDimension = _this$state.totalDimension,
195
- tabKeys = _this$state.tabKeys;
201
+ tabKeys = _this$state.tabKeys,
202
+ searchValue = _this$state.searchValue;
196
203
 
197
204
  if (prevProps.children && children) {
198
205
  /**
@@ -230,6 +237,10 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
230
237
  if (prevProps.selectedTab !== selectedTab || newTabKeys.length === 1) {
231
238
  this.moveHighlight();
232
239
  }
240
+
241
+ if (prevProps.isPopupOpen != isPopupOpen && searchValue.length) {
242
+ this.handleSearchValueClear();
243
+ }
233
244
  }
234
245
  }
235
246
  }, {
@@ -440,6 +451,7 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
440
451
 
441
452
  e.preventDefault();
442
453
  onSelect(tab);
454
+ this.togglePopup();
443
455
  }
444
456
  }, {
445
457
  key: "onScroll",
@@ -471,6 +483,65 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
471
483
  }])
472
484
  };
473
485
  }
486
+ }, {
487
+ key: "handleChange",
488
+ value: function handleChange(value, e) {
489
+ this.setState({
490
+ searchValue: value
491
+ });
492
+ }
493
+ }, {
494
+ key: "handleSearchValueClear",
495
+ value: function handleSearchValueClear(e) {
496
+ this.setState({
497
+ searchValue: ''
498
+ });
499
+ }
500
+ }, {
501
+ key: "getMoreList",
502
+ value: function getMoreList(_ref2) {
503
+ var moreTabs = _ref2.moreTabs;
504
+ var valideElements = [];
505
+ {
506
+ _react["default"].Children.map(moreTabs, function (child) {
507
+ var isValidElement = /*#__PURE__*/_react["default"].isValidElement(child);
508
+
509
+ if (isValidElement) {
510
+ valideElements.push(child.props);
511
+ }
512
+ });
513
+ }
514
+ return valideElements;
515
+ }
516
+ }, {
517
+ key: "handleFilterSuggestions",
518
+ value: function handleFilterSuggestions(_ref3) {
519
+ var moreTabs = _ref3.moreTabs;
520
+ var searchValue = this.state.searchValue;
521
+ var options = this.getMoreList({
522
+ moreTabs: moreTabs
523
+ });
524
+ var filteredOptions = options.filter(function (list) {
525
+ var _list$id = list.id,
526
+ id = _list$id === void 0 ? '' : _list$id;
527
+ var value = id;
528
+ return value.toLowerCase().includes(searchValue);
529
+ });
530
+ return filteredOptions;
531
+ }
532
+ }, {
533
+ key: "renderEmptyState",
534
+ value: function renderEmptyState() {
535
+ var searchErrorText = this.props.searchErrorText;
536
+ return /*#__PURE__*/_react["default"].createElement("div", {
537
+ className: _TabsModule["default"].emptyStateContainer
538
+ }, /*#__PURE__*/_react["default"].createElement(_EmptySearch["default"], {
539
+ size: "small"
540
+ }), /*#__PURE__*/_react["default"].createElement("div", {
541
+ className: _TabsModule["default"].emptyStateTitle
542
+ }, searchErrorText));
543
+ return ''; // return <EmptySearch size='small' />;
544
+ }
474
545
  }, {
475
546
  key: "renderTabs",
476
547
  value: function renderTabs(mainTabs, moreTabs, isVirtual) {
@@ -502,7 +573,13 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
502
573
  customProps = _this$props8.customProps,
503
574
  getCustomDropBoxHeaderPlaceHolder = _this$props8.getCustomDropBoxHeaderPlaceHolder,
504
575
  dataSelectorId = _this$props8.dataSelectorId,
505
- dataId = _this$props8.dataId;
576
+ dataId = _this$props8.dataId,
577
+ placeHolderText = _this$props8.placeHolderText,
578
+ searchBoxSize = _this$props8.searchBoxSize,
579
+ ariaTitleId = _this$props8.ariaTitleId,
580
+ TextBoxIconProps = _this$props8.TextBoxIconProps,
581
+ removeClose = _this$props8.removeClose;
582
+ var searchValue = this.state.searchValue;
506
583
  var _customProps$DropBoxP = customProps.DropBoxProps,
507
584
  DropBoxProps = _customProps$DropBoxP === void 0 ? {} : _customProps$DropBoxP,
508
585
  _customProps$ListItem = customProps.ListItemProps,
@@ -510,6 +587,10 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
510
587
  _customProps$MoreButt = customProps.MoreButtonProps,
511
588
  MoreButtonProps = _customProps$MoreButt === void 0 ? {} : _customProps$MoreButt;
512
589
  var popupClass = align === 'vertical' ? _TabsModule["default"][position] ? _TabsModule["default"][position] : '' : '';
590
+ var listItemArray = this.handleFilterSuggestions({
591
+ moreTabs: moreTabs
592
+ });
593
+ var isSearch = moreTabs.length > 4;
513
594
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, _react["default"].Children.map(mainTabs, function (child) {
514
595
  if (!child) {
515
596
  return null;
@@ -558,8 +639,8 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
558
639
  })), isPopupOpen && /*#__PURE__*/_react["default"].createElement(_CustomResponsive.ResponsiveReceiver, {
559
640
  query: this.responsiveFunc,
560
641
  responsiveId: "Helmet"
561
- }, function (_ref2) {
562
- var tabletMode = _ref2.tabletMode;
642
+ }, function (_ref4) {
643
+ var tabletMode = _ref4.tabletMode;
563
644
  return /*#__PURE__*/_react["default"].createElement(_ResponsiveDropBox["default"], _extends({
564
645
  isActive: isPopupReady,
565
646
  isAnimate: true,
@@ -569,35 +650,52 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
569
650
  },
570
651
  boxPosition: position,
571
652
  getRef: getContainerRef,
572
- isBoxPaddingNeed: true,
653
+ isBoxPaddingNeed: false,
573
654
  isArrow: false
574
655
  }, DropBoxProps, {
575
656
  isResponsivePadding: true,
576
657
  needFocusScope: true,
577
- onClose: _this8.togglePopup,
578
- dataId: "".concat(dataId, "_dropbox")
579
- }), getCustomDropBoxHeaderPlaceHolder && getCustomDropBoxHeaderPlaceHolder(_this8.props), /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
658
+ dataId: "".concat(dataId, "_dropbox"),
659
+ onClick: removeClose
660
+ }), getCustomDropBoxHeaderPlaceHolder && getCustomDropBoxHeaderPlaceHolder(_this8.props), isSearch ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
661
+ className: _TabsModule["default"].search
662
+ }, /*#__PURE__*/_react["default"].createElement(_TextBoxIcon["default"], _extends({
663
+ placeHolder: placeHolderText,
664
+ onChange: _this8.handleChange,
665
+ value: searchValue,
666
+ onClear: _this8.handleSearchValueClear,
667
+ size: searchBoxSize,
668
+ customProps: {
669
+ TextBoxProps: {
670
+ 'data-a11y-autofocus': true
671
+ }
672
+ } //search
673
+ ,
674
+ dataId: "".concat(dataId, "_search"),
675
+ a11y: {
676
+ role: 'combobox',
677
+ ariaOwns: ariaTitleId,
678
+ ariaAutocomplete: 'list',
679
+ ariaHaspopup: true,
680
+ ariaExpanded: true
681
+ }
682
+ }, TextBoxIconProps))) : null, /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
580
683
  flexible: true,
581
684
  shrink: true,
582
685
  scroll: "vertical",
583
- className: "".concat(tabletMode ? '' : _TabsModule["default"].menuBox, " ").concat(moreBoxClass),
686
+ className: "".concat(_TabsModule["default"].listWrapper, " ").concat(tabletMode ? '' : _TabsModule["default"].menuBox, " ").concat(moreBoxClass),
584
687
  onScroll: _this8.onScroll,
585
688
  dataId: "".concat(dataId, "_Tabs")
586
- }, _react["default"].Children.map(moreTabs, function (child) {
587
- if (!child) {
588
- return null;
589
- }
590
-
591
- var _child$props = child.props,
592
- text = _child$props.text,
593
- id = _child$props.id,
594
- title = _child$props.title,
595
- isLink = _child$props.isLink,
596
- href = _child$props.href,
597
- children = _child$props.children,
598
- dataId = _child$props.dataId;
689
+ }, listItemArray.length ? listItemArray.map(function (data) {
690
+ var text = data.text,
691
+ id = data.id,
692
+ title = data.title,
693
+ isLink = data.isLink,
694
+ href = data.href,
695
+ children = data.children,
696
+ dataId = data.dataId;
599
697
  var value = text ? text : showTitleInMoreOptions ? title : null;
600
- return /*#__PURE__*/_react["default"].isValidElement(child) && /*#__PURE__*/_react["default"].createElement(_ListItem["default"], _extends({
698
+ return /*#__PURE__*/_react["default"].createElement(_ListItem["default"], _extends({
601
699
  key: id,
602
700
  value: value,
603
701
  onClick: _this8.moreTabSelect,
@@ -612,7 +710,7 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
612
710
  target: "self",
613
711
  dataId: "".concat(dataId, "_Tab")
614
712
  }, ListItemProps), !showTitleInMoreOptions ? children : null);
615
- })));
713
+ }) : _this8.renderEmptyState()));
616
714
  })) : null);
617
715
  }
618
716
  }, {
@@ -123,15 +123,46 @@
123
123
  .bottomRightToLeft,
124
124
  .topRightToLeft,
125
125
  .bottomCenterToLeft {
126
- right: calc(var(--tab_position_gap) * -1);
126
+ right: calc(var(--tab_position_gap) * -1);
127
127
  }
128
128
 
129
129
  .bottomLeftToRight,
130
130
  .topLeftToRight,
131
131
  .bottomCenterToRight {
132
- left: calc(var(--tab_position_gap) * -1);
132
+ left: calc(var(--tab_position_gap) * -1);
133
133
  }
134
134
 
135
135
  .hidden {
136
136
  visibility: hidden;
137
+ }
138
+
139
+ .search {
140
+ padding: 0 var(--zd_size20) 0 ;
141
+ }
142
+
143
+ .emptyStateContainer {
144
+ padding-bottom: var(--zd_size25);
145
+ }
146
+
147
+ .emptyStateTitle {
148
+ font-family: var(--zd_semibold);
149
+ color: var(--zdt_commonEmptyState_default_title);
150
+ word-wrap: break-word;
151
+ font-size: var(--zd_font_size16) ;
152
+ max-width: var(--zd_size430) ;
153
+ text-align: center;
154
+ }
155
+
156
+ [dir=ltr] .emptyStateTitle {
157
+ margin-left: auto ;
158
+ margin-right: auto ;
159
+ }
160
+
161
+ [dir=rtl] .emptyStateTitle {
162
+ margin-right: auto ;
163
+ margin-left: auto ;
164
+ }
165
+
166
+ .listWrapper {
167
+ padding: var(--zd_size10) 0 ;
137
168
  }
@@ -39,7 +39,9 @@ var Tabs_defaultProps = {
39
39
  iconSize: '7',
40
40
  containerClass: '',
41
41
  customProps: {},
42
- dataSelectorId: 'tabs'
42
+ dataSelectorId: 'tabs',
43
+ searchBoxSize: 'small',
44
+ searchErrorText: 'No results'
43
45
  };
44
46
  exports.Tabs_defaultProps = Tabs_defaultProps;
45
47
  var TabWrapper_defaultProps = {
@@ -102,7 +102,12 @@ var Tabs_propTypes = {
102
102
  MoreButtonProps: _propTypes["default"].object
103
103
  }),
104
104
  getCustomDropBoxHeaderPlaceHolder: _propTypes["default"].func,
105
- dataSelectorId: _propTypes["default"].string
105
+ dataSelectorId: _propTypes["default"].string,
106
+ placeHolderText: _propTypes["default"].string,
107
+ searchBoxSize: _propTypes["default"].string,
108
+ ariaTitleId: _propTypes["default"].string,
109
+ TextBoxIconProps: _propTypes["default"].object,
110
+ searchErrorText: _propTypes["default"].string
106
111
  };
107
112
  exports.Tabs_propTypes = Tabs_propTypes;
108
113
  var TabWrapper_propTypes = {
package/lib/Tag/Tag.js CHANGED
@@ -31,6 +31,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
31
31
 
32
32
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; }
33
33
 
34
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
35
+
34
36
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
35
37
 
36
38
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@@ -135,6 +137,7 @@ var Tag = /*#__PURE__*/function (_PureComponent) {
135
137
  tooltip = _this$props4.tooltip,
136
138
  avatarPalette = _this$props4.avatarPalette,
137
139
  customClass = _this$props4.customClass,
140
+ customAttributes = _this$props4.customAttributes,
138
141
  a11y = _this$props4.a11y,
139
142
  needEffect = _this$props4.needEffect,
140
143
  isReadOnly = _this$props4.isReadOnly;
@@ -151,7 +154,7 @@ var Tag = /*#__PURE__*/function (_PureComponent) {
151
154
  var _a11y$clearLabel = a11y.clearLabel,
152
155
  clearLabel = _a11y$clearLabel === void 0 ? 'Delete' : _a11y$clearLabel;
153
156
  var isDarkPalette = palette === 'dark';
154
- return /*#__PURE__*/_react["default"].createElement("div", {
157
+ return /*#__PURE__*/_react["default"].createElement("div", _extends({
155
158
  className: "".concat(_TagModule["default"].container, " ").concat(needEffect && !isReadOnly ? _TagModule["default"].effect : _TagModule["default"].readonly, " ").concat(active ? "".concat(_TagModule["default"].selected, " ").concat(_TagModule["default"]["active".concat(palette)]) : '', " ").concat(onRemove ? active ? "".concat(_TagModule["default"]["active".concat(size, "Effect")]) : '' : '', " ").concat(_TagModule["default"][size], " ").concat(rounded ? _TagModule["default"].lgRadius : _TagModule["default"].smRadius, " ").concat(_TagModule["default"][palette], " ").concat(disabled ? _TagModule["default"].disabled : '', " ").concat(onSelectTag ? _TagModule["default"].pointer : '', " ").concat(customTag),
156
159
  "data-id": active ? "".concat(dataId, "_TagSelected") : "".concat(dataId, "_Tag"),
157
160
  "data-test-id": active ? "".concat(dataId, "_TagSelected") : "".concat(dataId, "_Tag"),
@@ -161,7 +164,7 @@ var Tag = /*#__PURE__*/function (_PureComponent) {
161
164
  tabIndex: disabled ? '-1' : '0',
162
165
  "aria-labelledby": getAriaId,
163
166
  "data-selector-id": dataSelectorId
164
- }, hasAvatar ? /*#__PURE__*/_react["default"].createElement("div", {
167
+ }, customAttributes), hasAvatar ? /*#__PURE__*/_react["default"].createElement("div", {
165
168
  className: _TagModule["default"].avatar
166
169
  }, /*#__PURE__*/_react["default"].createElement(_Avatar["default"], {
167
170
  palette: isDarkPalette ? 'info' : avatarPalette,
@@ -249,4 +249,14 @@ describe('Tag component', function () {
249
249
 
250
250
  expect(asFragment()).toMatchSnapshot();
251
251
  });
252
+ test('rendering with customAttributes prop', function () {
253
+ var _render24 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
254
+ customAttributes: {
255
+ 'data-custom-attribute': 'true'
256
+ }
257
+ })),
258
+ asFragment = _render24.asFragment;
259
+
260
+ expect(asFragment()).toMatchSnapshot();
261
+ });
252
262
  });