@zohodesk/components 1.2.40 → 1.2.41

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 (308) hide show
  1. package/.cli/propValidation_report.html +1 -1
  2. package/README.md +5 -0
  3. package/es/Accordion/Accordion.js +2 -2
  4. package/es/Accordion/AccordionItem.js +4 -4
  5. package/es/Accordion/__tests__/Accordion.spec.js +1 -1
  6. package/es/Accordion/__tests__/AccordionItem.spec.js +1 -1
  7. package/es/Accordion/index.js +2 -2
  8. package/es/Animation/Animation.js +3 -3
  9. package/es/Animation/__tests__/Animation.spec.js +1 -1
  10. package/es/Animation/utils.js +1 -1
  11. package/es/AppContainer/AppContainer.js +9 -9
  12. package/es/AppContainer/__tests__/AppContainer.spec.js +1 -1
  13. package/es/Avatar/Avatar.js +5 -5
  14. package/es/Avatar/__tests__/Avatar.spec.js +1 -1
  15. package/es/AvatarTeam/AvatarTeam.js +4 -4
  16. package/es/AvatarTeam/__tests__/AvatarTeam.spec.js +1 -1
  17. package/es/Button/Button.js +4 -4
  18. package/es/Button/__tests__/Button.spec.js +1 -1
  19. package/es/Button/index.js +2 -2
  20. package/es/Button/props/defaultProps.js +1 -1
  21. package/es/Buttongroup/Buttongroup.js +3 -3
  22. package/es/Buttongroup/__tests__/Buttongroup.spec.js +1 -1
  23. package/es/Card/Card.js +5 -5
  24. package/es/Card/__tests__/Card.spec.js +1 -1
  25. package/es/Card/index.js +4 -4
  26. package/es/CheckBox/CheckBox.js +6 -6
  27. package/es/CheckBox/__tests__/CheckBox.spec.js +1 -1
  28. package/es/DateTime/CalendarView.js +6 -6
  29. package/es/DateTime/DateTime.js +15 -15
  30. package/es/DateTime/DateTimePopupFooter.js +5 -5
  31. package/es/DateTime/DateTimePopupHeader.js +4 -4
  32. package/es/DateTime/DateWidget.js +17 -17
  33. package/es/DateTime/DaysRow.js +3 -3
  34. package/es/DateTime/Time.js +5 -5
  35. package/es/DateTime/YearView.js +6 -6
  36. package/es/DateTime/__tests__/CalendarView.spec.js +1 -1
  37. package/es/DateTime/__tests__/DateTime.spec.js +1 -1
  38. package/es/DateTime/__tests__/DateTimePopupFooter.spec.js +1 -1
  39. package/es/DateTime/__tests__/DateTimePopupHeader.spec.js +1 -1
  40. package/es/DateTime/__tests__/DateWidget.spec.js +1 -1
  41. package/es/DateTime/__tests__/DaysRow.spec.js +1 -1
  42. package/es/DateTime/__tests__/Time.spec.js +1 -1
  43. package/es/DateTime/__tests__/YearView.spec.js +1 -1
  44. package/es/DateTime/dateFormatUtils/dateFormat.js +4 -4
  45. package/es/DateTime/dateFormatUtils/dayChange.js +2 -2
  46. package/es/DateTime/dateFormatUtils/index.js +3 -3
  47. package/es/DateTime/dateFormatUtils/monthChange.js +2 -2
  48. package/es/DateTime/dateFormatUtils/timeChange.js +2 -2
  49. package/es/DateTime/dateFormatUtils/yearChange.js +2 -2
  50. package/es/DateTime/index.js +1 -1
  51. package/es/DateTime/props/propTypes.js +1 -1
  52. package/es/DateTime/validator.js +2 -2
  53. package/es/DropBox/DropBox.js +9 -9
  54. package/es/DropBox/DropBoxElement/DropBoxElement.js +6 -6
  55. package/es/DropBox/DropBoxElement/__tests__/DropBoxElement.spec.js +1 -1
  56. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +1 -1
  57. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +1 -1
  58. package/es/DropBox/__tests__/DropBox.spec.js +1 -1
  59. package/es/DropBox/css/cssJSLogic.js +1 -1
  60. package/es/DropBox/props/defaultProps.js +1 -1
  61. package/es/DropBox/props/propTypes.js +1 -1
  62. package/es/DropBox/utils/isMobilePopover.js +1 -1
  63. package/es/DropDown/DropDown.js +4 -4
  64. package/es/DropDown/DropDownHeading.js +3 -3
  65. package/es/DropDown/DropDownItem.js +3 -3
  66. package/es/DropDown/DropDownSearch.js +4 -4
  67. package/es/DropDown/DropDownSeparator.js +2 -2
  68. package/es/DropDown/__tests__/DropDown.spec.js +1 -1
  69. package/es/DropDown/__tests__/DropDownHeading.spec.js +1 -1
  70. package/es/DropDown/__tests__/DropDownItem.spec.js +1 -1
  71. package/es/DropDown/__tests__/DropDownSearch.spec.js +1 -1
  72. package/es/DropDown/__tests__/DropDownSeparator.spec.js +1 -1
  73. package/es/DropDown/index.js +7 -7
  74. package/es/DropDown/props/propTypes.js +1 -1
  75. package/es/Heading/Heading.js +3 -3
  76. package/es/Heading/__tests__/Heading.spec.js +1 -1
  77. package/es/Label/Label.js +4 -4
  78. package/es/Label/__tests__/Label.spec.js +1 -1
  79. package/es/Layout/Box.js +4 -4
  80. package/es/Layout/Container.js +4 -4
  81. package/es/Layout/__tests__/Box.spec.js +1 -1
  82. package/es/Layout/__tests__/Container.spec.js +1 -1
  83. package/es/Layout/index.js +2 -2
  84. package/es/ListItem/ListContainer.js +6 -6
  85. package/es/ListItem/ListItem.js +5 -5
  86. package/es/ListItem/ListItemWithAvatar.js +7 -7
  87. package/es/ListItem/ListItemWithCheckBox.js +6 -6
  88. package/es/ListItem/ListItemWithIcon.js +5 -5
  89. package/es/ListItem/ListItemWithRadio.js +6 -6
  90. package/es/ListItem/__tests__/ListContainer.spec.js +1 -1
  91. package/es/ListItem/__tests__/ListItem.spec.js +1 -1
  92. package/es/ListItem/__tests__/ListItemWithAvatar.spec.js +1 -1
  93. package/es/ListItem/__tests__/ListItemWithCheckBox.spec.js +1 -1
  94. package/es/ListItem/__tests__/ListItemWithIcon.spec.js +1 -1
  95. package/es/ListItem/__tests__/ListItemWithRadio.spec.js +1 -1
  96. package/es/ListItem/index.js +6 -6
  97. package/es/Modal/Modal.js +3 -3
  98. package/es/Modal/__tests__/Modal.spec.js +1 -1
  99. package/es/MultiSelect/AdvancedGroupMultiSelect.js +17 -17
  100. package/es/MultiSelect/AdvancedMultiSelect.js +17 -17
  101. package/es/MultiSelect/EmptyState.js +3 -3
  102. package/es/MultiSelect/MobileHeader/MobileHeader.js +5 -5
  103. package/es/MultiSelect/MobileHeader/__tests__/MobileHeader.spec.js +1 -1
  104. package/es/MultiSelect/MultiSelect.js +20 -20
  105. package/es/MultiSelect/MultiSelectHeader.js +4 -4
  106. package/es/MultiSelect/MultiSelectWithAvatar.js +16 -16
  107. package/es/MultiSelect/SelectedOptions.js +5 -5
  108. package/es/MultiSelect/Suggestions.js +6 -6
  109. package/es/MultiSelect/__tests__/AdvancedGroupMultiSelect.spec.js +1 -1
  110. package/es/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +1 -1
  111. package/es/MultiSelect/__tests__/EmptyState.spec.js +1 -1
  112. package/es/MultiSelect/__tests__/MultiSelect.spec.js +1 -1
  113. package/es/MultiSelect/__tests__/MultiSelectHeader.spec.js +1 -1
  114. package/es/MultiSelect/__tests__/MultiSelectWithAvatar.spec.js +1 -1
  115. package/es/MultiSelect/__tests__/SelectedOptions.spec.js +1 -1
  116. package/es/MultiSelect/__tests__/Suggestions.spec.js +1 -1
  117. package/es/MultiSelect/index.js +4 -4
  118. package/es/MultiSelect/props/defaultProps.js +1 -1
  119. package/es/PopOver/PopOver.js +6 -6
  120. package/es/PopOver/__tests__/PopOver.spec.js +1 -1
  121. package/es/PopOver/index.js +3 -3
  122. package/es/Popup/Popup.js +3 -3
  123. package/es/Provider/AvatarSize.js +1 -1
  124. package/es/Provider/CssProvider.js +1 -1
  125. package/es/Provider/IdProvider.js +2 -2
  126. package/es/Provider/LibraryContext.js +2 -2
  127. package/es/Provider/ZindexProvider.js +2 -2
  128. package/es/Provider/index.js +4 -4
  129. package/es/Radio/Radio.js +5 -5
  130. package/es/Radio/__tests__/Radio.spec.js +1 -1
  131. package/es/Responsive/CustomResponsive.js +7 -7
  132. package/es/Responsive/ResizeComponent.js +2 -2
  133. package/es/Responsive/Responsive.js +6 -6
  134. package/es/Responsive/index.js +3 -3
  135. package/es/Responsive/utils/index.js +1 -1
  136. package/es/Responsive/windowResizeObserver.js +1 -1
  137. package/es/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
  138. package/es/ResponsiveDropBox/__tests__/ResponsiveDropBox.spec.js +1 -1
  139. package/es/ResponsiveDropBox/props/propTypes.js +1 -1
  140. package/es/Ribbon/Ribbon.js +3 -3
  141. package/es/Ribbon/__tests__/Ribbon.spec.js +1 -1
  142. package/es/RippleEffect/RippleEffect.js +4 -4
  143. package/es/RippleEffect/__tests__/RippleEffect.spec.js +1 -1
  144. package/es/Select/GroupSelect.js +16 -16
  145. package/es/Select/Select.js +15 -15
  146. package/es/Select/SelectWithAvatar.js +17 -17
  147. package/es/Select/SelectWithIcon.js +13 -13
  148. package/es/Select/__tests__/GroupSelect.spec.js +1 -1
  149. package/es/Select/__tests__/Select.spec.js +1 -1
  150. package/es/Select/__tests__/SelectWithAvatar.spec.js +1 -1
  151. package/es/Select/__tests__/SelectWithIcon.spec.js +1 -1
  152. package/es/Select/index.js +4 -4
  153. package/es/Select/props/defaultProps.js +1 -1
  154. package/es/Stencils/Stencils.js +3 -3
  155. package/es/Stencils/__tests__/Stencils.spec.js +1 -1
  156. package/es/Switch/Switch.js +5 -5
  157. package/es/Switch/__tests__/Switch.spec.js +1 -1
  158. package/es/Tab/Tab.js +5 -5
  159. package/es/Tab/TabContent.js +4 -4
  160. package/es/Tab/TabContentWrapper.js +3 -3
  161. package/es/Tab/TabWrapper.js +3 -3
  162. package/es/Tab/Tabs.js +131 -33
  163. package/es/Tab/Tabs.module.css +32 -2
  164. package/es/Tab/__tests__/Tab.spec.js +1 -1
  165. package/es/Tab/__tests__/TabContent.spec.js +1 -1
  166. package/es/Tab/__tests__/TabContentWrapper.spec.js +1 -1
  167. package/es/Tab/__tests__/TabWrapper.spec.js +1 -1
  168. package/es/Tab/__tests__/Tabs.spec.js +1 -1
  169. package/es/Tab/index.js +5 -5
  170. package/es/Tab/props/defaultProps.js +4 -1
  171. package/es/Tab/props/propTypes.js +6 -1
  172. package/es/Tag/Tag.js +7 -7
  173. package/es/Tag/__tests__/Tag.spec.js +1 -1
  174. package/es/TextBox/TextBox.js +3 -3
  175. package/es/TextBox/__tests__/TextBox.spec.js +1 -1
  176. package/es/TextBoxIcon/TextBoxIcon.js +6 -6
  177. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +1 -1
  178. package/es/TextBoxIcon/props/propTypes.js +1 -1
  179. package/es/Textarea/Textarea.js +3 -3
  180. package/es/Textarea/__tests__/Textarea.spec.js +1 -1
  181. package/es/Tooltip/Tooltip.js +5 -5
  182. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
  183. package/es/VelocityAnimation/VelocityAnimation/__tests__/VelocityAnimation.spec.js +1 -1
  184. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +3 -3
  185. package/es/VelocityAnimation/VelocityAnimationGroup/__tests__/VelocityAnimationGroup.spec.js +1 -1
  186. package/es/VelocityAnimation/index.js +2 -2
  187. package/es/css.js +37 -37
  188. package/es/deprecated/PortalLayer/PortalLayer.js +3 -3
  189. package/es/index.js +39 -39
  190. package/es/semantic/Button/Button.js +3 -3
  191. package/es/semantic/Button/__tests__/Button.spec.js +1 -1
  192. package/es/semantic/index.js +1 -1
  193. package/es/utils/Common.js +1 -1
  194. package/es/utils/ContextOptimizer.js +1 -1
  195. package/es/utils/datetime/common.js +1 -1
  196. package/es/utils/dropDownUtils.js +1 -1
  197. package/es/utils/index.js +1 -1
  198. package/es/v1/Accordion/Accordion.js +2 -2
  199. package/es/v1/Accordion/AccordionItem.js +4 -4
  200. package/es/v1/Accordion/index.js +2 -2
  201. package/es/v1/Animation/Animation.js +3 -3
  202. package/es/v1/Animation/utils.js +1 -1
  203. package/es/v1/AppContainer/AppContainer.js +9 -9
  204. package/es/v1/Avatar/Avatar.js +5 -5
  205. package/es/v1/AvatarTeam/AvatarTeam.js +4 -4
  206. package/es/v1/Button/Button.js +4 -4
  207. package/es/v1/Button/props/defaultProps.js +1 -1
  208. package/es/v1/Buttongroup/Buttongroup.js +3 -3
  209. package/es/v1/Card/Card.js +5 -5
  210. package/es/v1/Card/index.js +4 -4
  211. package/es/v1/Card/props/propTypes.js +1 -1
  212. package/es/v1/CheckBox/CheckBox.js +6 -6
  213. package/es/v1/DateTime/CalendarView.js +7 -7
  214. package/es/v1/DateTime/DateTime.js +15 -15
  215. package/es/v1/DateTime/DateTimePopupFooter.js +5 -5
  216. package/es/v1/DateTime/DateTimePopupHeader.js +4 -4
  217. package/es/v1/DateTime/DateWidget.js +17 -17
  218. package/es/v1/DateTime/DaysRow.js +3 -3
  219. package/es/v1/DateTime/Time.js +5 -5
  220. package/es/v1/DateTime/YearView.js +6 -6
  221. package/es/v1/DateTime/index.js +1 -1
  222. package/es/v1/DateTime/props/propTypes.js +2 -2
  223. package/es/v1/DropBox/DropBox.js +9 -9
  224. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +6 -6
  225. package/es/v1/DropBox/props/defaultProps.js +1 -1
  226. package/es/v1/DropBox/props/propTypes.js +1 -1
  227. package/es/v1/DropBox/utils/isMobilePopover.js +1 -1
  228. package/es/v1/DropDown/DropDown.js +4 -4
  229. package/es/v1/DropDown/DropDownHeading.js +3 -3
  230. package/es/v1/DropDown/DropDownItem.js +3 -3
  231. package/es/v1/DropDown/DropDownSearch.js +4 -4
  232. package/es/v1/DropDown/DropDownSeparator.js +2 -2
  233. package/es/v1/DropDown/props/propTypes.js +1 -1
  234. package/es/v1/Heading/Heading.js +3 -3
  235. package/es/v1/Label/Label.js +4 -4
  236. package/es/v1/Layout/Box.js +4 -4
  237. package/es/v1/Layout/Container.js +4 -4
  238. package/es/v1/Layout/index.js +2 -2
  239. package/es/v1/ListItem/ListContainer.js +6 -6
  240. package/es/v1/ListItem/ListItem.js +5 -5
  241. package/es/v1/ListItem/ListItemWithAvatar.js +7 -7
  242. package/es/v1/ListItem/ListItemWithCheckBox.js +6 -6
  243. package/es/v1/ListItem/ListItemWithIcon.js +5 -5
  244. package/es/v1/ListItem/ListItemWithRadio.js +6 -6
  245. package/es/v1/ListItem/index.js +6 -6
  246. package/es/v1/Modal/Modal.js +3 -3
  247. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +17 -17
  248. package/es/v1/MultiSelect/AdvancedMultiSelect.js +17 -17
  249. package/es/v1/MultiSelect/EmptyState.js +3 -3
  250. package/es/v1/MultiSelect/MobileHeader/MobileHeader.js +5 -5
  251. package/es/v1/MultiSelect/MultiSelect.js +19 -19
  252. package/es/v1/MultiSelect/MultiSelectHeader.js +4 -4
  253. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +16 -16
  254. package/es/v1/MultiSelect/SelectedOptions.js +5 -5
  255. package/es/v1/MultiSelect/Suggestions.js +6 -6
  256. package/es/v1/MultiSelect/index.js +4 -4
  257. package/es/v1/MultiSelect/props/defaultProps.js +1 -1
  258. package/es/v1/PopOver/PopOver.js +6 -6
  259. package/es/v1/Popup/Popup.js +3 -3
  260. package/es/v1/Radio/Radio.js +5 -5
  261. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
  262. package/es/v1/ResponsiveDropBox/props/propTypes.js +2 -2
  263. package/es/v1/Ribbon/Ribbon.js +3 -3
  264. package/es/v1/Ribbon/props/propTypes.js +1 -1
  265. package/es/v1/RippleEffect/RippleEffect.js +4 -4
  266. package/es/v1/Select/GroupSelect.js +16 -16
  267. package/es/v1/Select/Select.js +15 -15
  268. package/es/v1/Select/SelectWithAvatar.js +17 -17
  269. package/es/v1/Select/SelectWithIcon.js +13 -13
  270. package/es/v1/Select/index.js +4 -4
  271. package/es/v1/Select/props/defaultProps.js +1 -1
  272. package/es/v1/Stencils/Stencils.js +3 -3
  273. package/es/v1/Switch/Switch.js +5 -5
  274. package/es/v1/Tab/Tab.js +5 -5
  275. package/es/v1/Tab/TabContent.js +4 -4
  276. package/es/v1/Tab/TabContentWrapper.js +3 -3
  277. package/es/v1/Tab/TabWrapper.js +3 -3
  278. package/es/v1/Tab/Tabs.js +111 -28
  279. package/es/v1/Tab/index.js +5 -5
  280. package/es/v1/Tab/props/defaultProps.js +4 -1
  281. package/es/v1/Tab/props/propTypes.js +6 -1
  282. package/es/v1/Tab/v1Tabs.module.css +32 -2
  283. package/es/v1/Tag/Tag.js +7 -7
  284. package/es/v1/TextBox/TextBox.js +3 -3
  285. package/es/v1/TextBoxIcon/TextBoxIcon.js +6 -6
  286. package/es/v1/TextBoxIcon/props/propTypes.js +1 -1
  287. package/es/v1/Textarea/Textarea.js +3 -3
  288. package/es/v1/Tooltip/Tooltip.js +5 -5
  289. package/es/v1/Typography/Typography.js +4 -4
  290. package/es/v1/Typography/css/cssJSLogic.js +1 -1
  291. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
  292. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +3 -3
  293. package/es/v1/semantic/Button/Button.js +3 -3
  294. package/es/v1/semantic/index.js +1 -1
  295. package/lib/Tab/Tabs.js +167 -74
  296. package/lib/Tab/Tabs.module.css +32 -2
  297. package/lib/Tab/props/defaultProps.js +4 -1
  298. package/lib/Tab/props/propTypes.js +6 -1
  299. package/lib/v1/Card/props/propTypes.js +1 -1
  300. package/lib/v1/DateTime/props/propTypes.js +1 -1
  301. package/lib/v1/ResponsiveDropBox/props/propTypes.js +1 -1
  302. package/lib/v1/Ribbon/props/propTypes.js +1 -1
  303. package/lib/v1/Tab/Tabs.js +107 -23
  304. package/lib/v1/Tab/props/defaultProps.js +4 -1
  305. package/lib/v1/Tab/props/propTypes.js +6 -1
  306. package/lib/v1/Tab/v1Tabs.module.css +32 -2
  307. package/package.json +10 -10
  308. package/result.json +1 -1
@@ -11,6 +11,10 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _useEffectCallOnlyAfterState = _interopRequireDefault(require("@zohodesk/hooks/es/utils/useEffectCallOnlyAfterState"));
13
13
 
14
+ var _TextBoxIcon = _interopRequireDefault(require("../TextBoxIcon/TextBoxIcon"));
15
+
16
+ var _EmptySearch = _interopRequireDefault(require("@zohodesk/svg/lib/emptystate/version3/EmptySearch"));
17
+
14
18
  var _Tab = _interopRequireDefault(require("./Tab"));
15
19
 
16
20
  var _defaultProps = require("./props/defaultProps");
@@ -86,6 +90,11 @@ var Tabs = function Tabs(props) {
86
90
  tabKeys = _useState8[0],
87
91
  setTabKeys = _useState8[1];
88
92
 
93
+ var _useState9 = (0, _react.useState)(''),
94
+ _useState10 = _slicedToArray(_useState9, 2),
95
+ searchValue = _useState10[0],
96
+ setSearchValue = _useState10[1];
97
+
89
98
  var tabsObserver = (0, _react.useRef)(new _ResizeObserver["default"](onResize));
90
99
  var tabObserver = (0, _react.useRef)({});
91
100
  var highlight = (0, _react.useRef)(null);
@@ -114,7 +123,60 @@ var Tabs = function Tabs(props) {
114
123
  childType = props.childType,
115
124
  containerClass = props.containerClass,
116
125
  dataSelectorId = props.dataSelectorId,
117
- selectedTab = props.selectedTab;
126
+ selectedTab = props.selectedTab,
127
+ showTitleInMoreOptions = props.showTitleInMoreOptions,
128
+ searchErrorText = props.searchErrorText,
129
+ placeHolderText = props.placeHolderText,
130
+ searchBoxSize = props.searchBoxSize,
131
+ isPopupOpen = props.isPopupOpen,
132
+ closePopupOnly = props.closePopupOnly;
133
+
134
+ function handleChange(value, e) {
135
+ setSearchValue(value);
136
+ }
137
+
138
+ function handleSearchValueClear(e) {
139
+ setSearchValue('');
140
+ }
141
+
142
+ function getMoreList(_ref) {
143
+ var moreTabs = _ref.moreTabs;
144
+ var validElements = [];
145
+
146
+ _react["default"].Children.map(moreTabs, function (child) {
147
+ var isValidElement = /*#__PURE__*/_react["default"].isValidElement(child);
148
+
149
+ if (isValidElement) {
150
+ validElements.push(child.props);
151
+ }
152
+ });
153
+
154
+ return validElements;
155
+ }
156
+
157
+ function handleFilterSuggestions(_ref2) {
158
+ var moreTabs = _ref2.moreTabs;
159
+ var options = getMoreList({
160
+ moreTabs: moreTabs
161
+ });
162
+ var filteredOptions = options.filter(function (list) {
163
+ var text = list.text,
164
+ title = list.title;
165
+ var value = text ? text : showTitleInMoreOptions ? title : '';
166
+ return value.toLowerCase().includes(searchValue.toLowerCase());
167
+ });
168
+ return filteredOptions;
169
+ }
170
+
171
+ function renderEmptyState() {
172
+ return /*#__PURE__*/_react["default"].createElement("div", {
173
+ className: _v1TabsModule["default"].emptyStateContainer
174
+ }, /*#__PURE__*/_react["default"].createElement(_EmptySearch["default"], {
175
+ size: "small"
176
+ }), /*#__PURE__*/_react["default"].createElement("div", {
177
+ className: _v1TabsModule["default"].emptyStateTitle
178
+ }, searchErrorText));
179
+ }
118
180
 
119
181
  function onTabResize(size, target) {
120
182
  var newDim = Object.assign({}, tabDimensions);
@@ -167,6 +229,11 @@ var Tabs = function Tabs(props) {
167
229
  }
168
230
  };
169
231
  }, []);
232
+ (0, _react.useEffect)(function () {
233
+ if (searchValue.length) {
234
+ handleSearchValueClear();
235
+ }
236
+ }, [isPopupOpen]);
170
237
 
171
238
  function setMaxDim() {
172
239
  var totalDimension = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
@@ -393,6 +460,7 @@ var Tabs = function Tabs(props) {
393
460
 
394
461
  e.preventDefault();
395
462
  onSelect(tab);
463
+ closePopupOnly();
396
464
  }
397
465
 
398
466
  function onScrollLocal(e) {
@@ -407,8 +475,8 @@ var Tabs = function Tabs(props) {
407
475
  togglePopup(e, boxPosition);
408
476
  }
409
477
 
410
- function responsiveFunc(_ref) {
411
- var mediaQueryOR = _ref.mediaQueryOR;
478
+ function responsiveFunc(_ref3) {
479
+ var mediaQueryOR = _ref3.mediaQueryOR;
412
480
  return {
413
481
  tabletMode: mediaQueryOR([{
414
482
  maxWidth: 700
@@ -445,8 +513,14 @@ var Tabs = function Tabs(props) {
445
513
  _customProps$ListItem = customProps.ListItemProps,
446
514
  ListItemProps = _customProps$ListItem === void 0 ? {} : _customProps$ListItem,
447
515
  _customProps$MoreButt = customProps.MoreButtonProps,
448
- MoreButtonProps = _customProps$MoreButt === void 0 ? {} : _customProps$MoreButt;
516
+ MoreButtonProps = _customProps$MoreButt === void 0 ? {} : _customProps$MoreButt,
517
+ _customProps$TextBoxI = customProps.TextBoxIconProps,
518
+ TextBoxIconProps = _customProps$TextBoxI === void 0 ? {} : _customProps$TextBoxI;
449
519
  var popupClass = align === 'vertical' ? _v1TabsModule["default"][position] ? _v1TabsModule["default"][position] : '' : '';
520
+ var moreTabsListItems = handleFilterSuggestions({
521
+ moreTabs: moreTabs
522
+ });
523
+ var hasSearch = moreTabs.length > 4;
450
524
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, _react["default"].Children.map(mainTabs, function (child) {
451
525
  if (!child) {
452
526
  return null;
@@ -495,8 +569,8 @@ var Tabs = function Tabs(props) {
495
569
  })), isPopupOpen && /*#__PURE__*/_react["default"].createElement(_CustomResponsive.ResponsiveReceiver, {
496
570
  query: responsiveFunc,
497
571
  responsiveId: "Helmet"
498
- }, function (_ref2) {
499
- var tabletMode = _ref2.tabletMode;
572
+ }, function (_ref4) {
573
+ var tabletMode = _ref4.tabletMode;
500
574
  return /*#__PURE__*/_react["default"].createElement(_ResponsiveDropBox["default"], _extends({
501
575
  isActive: isPopupReady,
502
576
  isAnimate: true,
@@ -512,29 +586,39 @@ var Tabs = function Tabs(props) {
512
586
  isResponsivePadding: true,
513
587
  needFocusScope: true,
514
588
  onClose: togglePopupLocal,
589
+ onClick: removeClose,
515
590
  dataId: "".concat(dataId, "_dropbox")
516
- }), getCustomDropBoxHeaderPlaceHolder && getCustomDropBoxHeaderPlaceHolder(props), /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
591
+ }), getCustomDropBoxHeaderPlaceHolder && getCustomDropBoxHeaderPlaceHolder(props), hasSearch ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
592
+ className: _v1TabsModule["default"].search
593
+ }, /*#__PURE__*/_react["default"].createElement(_TextBoxIcon["default"], _extends({
594
+ placeHolder: placeHolderText,
595
+ onChange: handleChange,
596
+ value: searchValue,
597
+ onClear: handleSearchValueClear,
598
+ size: searchBoxSize,
599
+ customProps: {
600
+ TextBoxProps: {
601
+ 'data-a11y-autofocus': true
602
+ }
603
+ },
604
+ dataId: "".concat(dataId, "_search")
605
+ }, TextBoxIconProps))) : null, /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
517
606
  flexible: true,
518
607
  shrink: true,
519
608
  scroll: "vertical",
520
- className: "".concat(tabletMode ? '' : _v1TabsModule["default"].menuBox, " ").concat(moreBoxClass),
609
+ className: "".concat(_v1TabsModule["default"].listWrapper, " ").concat(tabletMode ? '' : _v1TabsModule["default"].menuBox, " ").concat(moreBoxClass),
521
610
  onScroll: onScrollLocal,
522
611
  dataId: "".concat(dataId, "_Tabs")
523
- }, _react["default"].Children.map(moreTabs, function (child) {
524
- if (!child) {
525
- return null;
526
- }
527
-
528
- var _child$props = child.props,
529
- text = _child$props.text,
530
- id = _child$props.id,
531
- title = _child$props.title,
532
- isLink = _child$props.isLink,
533
- href = _child$props.href,
534
- children = _child$props.children,
535
- dataId = _child$props.dataId;
612
+ }, moreTabsListItems.length ? moreTabsListItems.map(function (data) {
613
+ var text = data.text,
614
+ id = data.id,
615
+ title = data.title,
616
+ isLink = data.isLink,
617
+ href = data.href,
618
+ children = data.children,
619
+ dataId = data.dataId;
536
620
  var value = text ? text : showTitleInMoreOptions ? title : null;
537
- return /*#__PURE__*/_react["default"].isValidElement(child) && /*#__PURE__*/_react["default"].createElement(_ListItem["default"], _extends({
621
+ return /*#__PURE__*/_react["default"].createElement(_ListItem["default"], _extends({
538
622
  key: id,
539
623
  value: value,
540
624
  onClick: moreTabSelect,
@@ -549,7 +633,7 @@ var Tabs = function Tabs(props) {
549
633
  target: "self",
550
634
  dataId: "".concat(dataId, "_Tab")
551
635
  }, ListItemProps), !showTitleInMoreOptions ? children : null);
552
- })));
636
+ }) : renderEmptyState()));
553
637
  })) : null);
554
638
  }
555
639
 
@@ -39,7 +39,10 @@ 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',
45
+ placeHolderText: 'Search'
43
46
  };
44
47
  exports.Tabs_defaultProps = Tabs_defaultProps;
45
48
  var TabWrapper_defaultProps = {
@@ -97,12 +97,17 @@ var Tabs_propTypes = {
97
97
  getTargetRef: _propTypes["default"].func,
98
98
  containerClass: _propTypes["default"].string,
99
99
  customProps: _propTypes["default"].shape({
100
+ TextBoxIconProps: _propTypes["default"].object,
100
101
  DropBoxProps: _propTypes["default"].object,
101
102
  ListItemProps: _propTypes["default"].object,
102
103
  MoreButtonProps: _propTypes["default"].object
103
104
  }),
104
105
  getCustomDropBoxHeaderPlaceHolder: _propTypes["default"].func,
105
- dataSelectorId: _propTypes["default"].string
106
+ dataSelectorId: _propTypes["default"].string,
107
+ placeHolderText: _propTypes["default"].string,
108
+ searchBoxSize: _propTypes["default"].string,
109
+ searchErrorText: _propTypes["default"].string,
110
+ closePopupOnly: _propTypes["default"].func
106
111
  };
107
112
  exports.Tabs_propTypes = Tabs_propTypes;
108
113
  var TabWrapper_propTypes = {
@@ -123,15 +123,45 @@
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_size15) ;
145
+ }
146
+
147
+ .emptyStateTitle {
148
+ font-family: var(--zd_semibold);
149
+ word-wrap: break-word;
150
+ font-size: var(--zd_font_size16) ;
151
+ max-width: var(--zd_size430) ;
152
+ text-align: center;
153
+ }
154
+
155
+ [dir=ltr] .emptyStateTitle {
156
+ margin-left: auto ;
157
+ margin-right: auto ;
158
+ }
159
+
160
+ [dir=rtl] .emptyStateTitle {
161
+ margin-right: auto ;
162
+ margin-left: auto ;
163
+ }
164
+
165
+ .listWrapper {
166
+ padding-top: var(--zd_size10) ;
137
167
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zohodesk/components",
3
- "version": "1.2.40",
3
+ "version": "1.2.41",
4
4
  "main": "es/index.js",
5
5
  "module": "es/index.js",
6
6
  "private": false,
@@ -70,10 +70,10 @@
70
70
  "@zohodesk-private/react-prop-validator": "1.2.3",
71
71
  "@zohodesk/a11y": "2.2.3",
72
72
  "@zohodesk/docstool": "1.0.0-alpha-2",
73
- "@zohodesk/hooks": "2.0.4",
74
- "@zohodesk/icons": "1.0.50",
75
- "@zohodesk/svg": "1.1.14",
76
- "@zohodesk/utils": "1.3.13",
73
+ "@zohodesk/hooks": "2.0.5",
74
+ "@zohodesk/icons": "1.0.56",
75
+ "@zohodesk/svg": "1.1.19",
76
+ "@zohodesk/utils": "1.3.14",
77
77
  "@zohodesk/variables": "1.0.0",
78
78
  "@zohodesk/virtualizer": "1.0.3",
79
79
  "react-sortable-hoc": "^0.8.3",
@@ -86,14 +86,14 @@
86
86
  "selectn": "1.1.2"
87
87
  },
88
88
  "peerDependencies": {
89
- "@zohodesk/icons": "1.0.50",
89
+ "@zohodesk/icons": "1.0.56",
90
90
  "@zohodesk/variables": "1.0.0",
91
- "@zohodesk/svg": "1.1.14",
91
+ "@zohodesk/svg": "1.1.19",
92
92
  "@zohodesk/virtualizer": "1.0.3",
93
93
  "velocity-react": "1.4.3",
94
94
  "react-sortable-hoc": "^0.8.3",
95
- "@zohodesk/hooks": "2.0.4",
96
- "@zohodesk/utils": "1.3.13",
95
+ "@zohodesk/hooks": "2.0.5",
96
+ "@zohodesk/utils": "1.3.14",
97
97
  "@zohodesk/a11y": "2.2.3"
98
98
  }
99
- }
99
+ }