@geotab/zenith 3.3.0 → 3.4.0-beta.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 (279) hide show
  1. package/README.md +17 -0
  2. package/dist/advancedGroupsFilter/advancedGroupsFilterFormSection.js +1 -1
  3. package/dist/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.js +0 -39
  4. package/dist/alertRaw/components/alertAnimation.js +8 -4
  5. package/dist/card/card.d.ts +1 -1
  6. package/dist/card/card.js +1 -3
  7. package/dist/card/components/status.js +2 -2
  8. package/dist/chart/barChart/getBarTooltipItems.js +31 -2
  9. package/dist/chart/barChart.js +2 -1
  10. package/dist/chart/utils/getYAxisMeta.d.ts +1 -1
  11. package/dist/chart/utils/getYAxisMeta.js +44 -1
  12. package/dist/checkbox/checkbox.js +3 -3
  13. package/dist/dataGrid/emptySearchList/emptySearchList.d.ts +6 -7
  14. package/dist/dataGrid/emptySearchList/emptySearchList.js +15 -23
  15. package/dist/dateInputRaw/dateInputRaw.d.ts +1 -1
  16. package/dist/dateRangeRaw/dateRangeRaw.d.ts +1 -1
  17. package/dist/dateRangeRaw/utils/dateRangeUtils.d.ts +1 -0
  18. package/dist/dateRangeRaw/utils/dateRangeUtils.js +39 -1
  19. package/dist/dropdownRaw/dropdownRaw.d.ts +1 -1
  20. package/dist/emptyState/emptyState.d.ts +9 -0
  21. package/dist/emptyState/emptyState.js +14 -0
  22. package/dist/emptyState/hooks/useIcon.d.ts +2 -0
  23. package/dist/emptyState/hooks/useIcon.js +17 -0
  24. package/dist/filtersBar/components/filtersBarPeriodPicker/getRangeOption.d.ts +1 -0
  25. package/dist/filtersBar/components/filtersBarPeriodPicker/getRangeOption.js +28 -3
  26. package/dist/formField/components/formFieldAdditionalInfo.d.ts +12 -0
  27. package/dist/formField/components/formFieldAdditionalInfo.js +10 -0
  28. package/dist/formField/components/formFieldAssistiveError.d.ts +10 -0
  29. package/dist/formField/components/formFieldAssistiveError.js +12 -0
  30. package/dist/formField/components/formFieldCounter.d.ts +6 -0
  31. package/dist/formField/components/formFieldCounter.js +7 -0
  32. package/dist/formField/components/formFieldLoading.d.ts +12 -0
  33. package/dist/formField/components/formFieldLoading.js +16 -0
  34. package/dist/formField/components/formFieldWithLabel.d.ts +8 -11
  35. package/dist/formField/components/formFieldWithLabel.js +21 -3
  36. package/dist/formField/components/formFieldWithoutLabel.d.ts +8 -9
  37. package/dist/formField/components/formFieldWithoutLabel.js +6 -1
  38. package/dist/formField/components/isOldFormFieldComponent.d.ts +2 -0
  39. package/dist/formField/components/isOldFormFieldComponent.js +12 -0
  40. package/dist/formField/components/trailingComponent.d.ts +2 -1
  41. package/dist/formField/components/trailingComponent.js +7 -1
  42. package/dist/formField/formField.d.ts +17 -35
  43. package/dist/formField/formField.js +4 -71
  44. package/dist/formField/hooks/useContainer.d.ts +2 -0
  45. package/dist/formField/hooks/useContainer.js +47 -0
  46. package/dist/formField/hooks/useError.d.ts +1 -1
  47. package/dist/formField/hooks/useFormFieldClasses.d.ts +2 -0
  48. package/dist/formField/hooks/useFormFieldClasses.js +30 -0
  49. package/dist/formField/hooks/useFormFieldProps.d.ts +17 -0
  50. package/dist/formField/hooks/useFormFieldProps.js +37 -0
  51. package/dist/formField/hooks/useTrailing.d.ts +1 -1
  52. package/dist/formField/hooks/useTrailing.js +1 -1
  53. package/dist/formField/hooks/useWidth.d.ts +1 -1
  54. package/dist/formField/types.d.ts +35 -0
  55. package/dist/formField/types.js +2 -0
  56. package/dist/formGroup/components/formGroupList.d.ts +1 -1
  57. package/dist/formGroup/components/formGroupToggle.d.ts +1 -1
  58. package/dist/formGroup/formGroup.d.ts +1 -1
  59. package/dist/formGroup/hooks/useLabelAlign.d.ts +1 -1
  60. package/dist/formGroup/types.d.ts +1 -1
  61. package/dist/formGroup/utils/applyCustomControlClasses.d.ts +1 -1
  62. package/dist/formGroup/utils/applyCustomLabelClasses.d.ts +1 -1
  63. package/dist/formGroup/utils/getControlClasses/getControlClasses.d.ts +1 -1
  64. package/dist/formGroup/utils/getControlClasses/getOneLabelOneControlClasses.d.ts +1 -1
  65. package/dist/formGroup/utils/getControlClasses/getOneLabelTwoControlsClasses.d.ts +1 -1
  66. package/dist/formGroup/utils/getControlClasses/getTwoLabelsOneControlClasses.d.ts +1 -1
  67. package/dist/formGroup/utils/getControlClasses/getTwoLabelsTwoControlsClasses.d.ts +1 -1
  68. package/dist/formGroup/utils/getLabelClasses/getLabelClasses.d.ts +1 -1
  69. package/dist/formGroup/utils/getLabelClasses/getOneLabelOneControlClasses.d.ts +1 -1
  70. package/dist/formGroup/utils/getLabelClasses/getOneLabelTwoControlsClasses.d.ts +1 -1
  71. package/dist/formGroup/utils/getLabelClasses/getTwoLabelsOneControlClasses.d.ts +1 -1
  72. package/dist/formGroup/utils/getLabelClasses/getTwoLabelsTwoControlsClasses.d.ts +1 -1
  73. package/dist/formGroup/utils/getListClasses.d.ts +1 -1
  74. package/dist/formGroup/utils/getToggleClasses.d.ts +1 -1
  75. package/dist/formGroup/utils/initializeState.d.ts +1 -1
  76. package/dist/formGroup/utils/isTopAlign.d.ts +1 -1
  77. package/dist/formLayout/types.d.ts +1 -1
  78. package/dist/formSection/types.d.ts +1 -1
  79. package/dist/formSection/utils/formSectionProvider.d.ts +1 -1
  80. package/dist/groupButtonRaw/groupButtonRaw.d.ts +1 -1
  81. package/dist/groupsFilterRaw/groupsFilterRaw.d.ts +1 -1
  82. package/dist/groupsFilterRaw/groupsHelper.js +2 -2
  83. package/dist/headerTitle/headerTitle.js +1 -1
  84. package/dist/images/imageAdjustFilter.d.ts +4 -0
  85. package/dist/images/imageAdjustFilter.js +16 -0
  86. package/dist/images/imageNoMatchingAssets.d.ts +4 -0
  87. package/dist/images/imageNoMatchingAssets.js +16 -0
  88. package/dist/index.css +619 -524
  89. package/dist/index.d.ts +6 -2
  90. package/dist/index.js +23 -16
  91. package/dist/inputAdornments/inputAdornments.d.ts +2 -1
  92. package/dist/inputAdornments/inputAdornments.js +2 -2
  93. package/dist/layout/layout.js +11 -7
  94. package/dist/list/itemData/itemData.d.ts +1 -0
  95. package/dist/list/itemData/itemDataInternal.d.ts +2 -1
  96. package/dist/list/itemData/itemDataInternal.js +4 -2
  97. package/dist/list/itemData/itemDataWaiting.d.ts +2 -1
  98. package/dist/list/itemData/itemDataWaiting.js +4 -1
  99. package/dist/list/list.d.ts +13 -4
  100. package/dist/list/list.js +29 -12
  101. package/dist/list/utils/getLoadingItems.d.ts +1 -1
  102. package/dist/list/utils/getLoadingItems.js +4 -4
  103. package/dist/modal/modal.js +7 -0
  104. package/dist/pillExpandable/pillExpandable.d.ts +1 -0
  105. package/dist/pillExpandable/pillExpandable.js +74 -33
  106. package/dist/radioGroupRaw/radioGroupRaw.d.ts +1 -1
  107. package/dist/rangeRaw/rangeRaw.d.ts +1 -1
  108. package/dist/summary/summary.js +0 -1
  109. package/dist/summaryTile/summaryTile.js +2 -2
  110. package/dist/table/children/tableEmpty.d.ts +1 -1
  111. package/dist/table/children/useTableChildren.js +1 -1
  112. package/dist/timePickerRaw/timePickerRaw.d.ts +1 -1
  113. package/dist/tooltip/tooltip.d.ts +15 -4
  114. package/dist/tooltip/tooltip.js +421 -158
  115. package/dist/utils/localization/translations/cs.json +2 -1
  116. package/dist/utils/localization/translations/da-DK.json +2 -1
  117. package/dist/utils/localization/translations/de.json +2 -1
  118. package/dist/utils/localization/translations/en.json +2 -1
  119. package/dist/utils/localization/translations/es.json +3 -2
  120. package/dist/utils/localization/translations/fi-FI.json +2 -1
  121. package/dist/utils/localization/translations/fr-FR.json +2 -1
  122. package/dist/utils/localization/translations/fr.json +3 -2
  123. package/dist/utils/localization/translations/hu-HU.json +2 -1
  124. package/dist/utils/localization/translations/id.json +2 -1
  125. package/dist/utils/localization/translations/it.json +2 -1
  126. package/dist/utils/localization/translations/ja.json +2 -1
  127. package/dist/utils/localization/translations/ko-KR.json +2 -1
  128. package/dist/utils/localization/translations/ms.json +2 -1
  129. package/dist/utils/localization/translations/nb-NO.json +2 -1
  130. package/dist/utils/localization/translations/nl.json +2 -1
  131. package/dist/utils/localization/translations/pl.json +2 -1
  132. package/dist/utils/localization/translations/pt-BR.json +2 -1
  133. package/dist/utils/localization/translations/sk-SK.json +2 -1
  134. package/dist/utils/localization/translations/sv.json +2 -1
  135. package/dist/utils/localization/translations/th.json +2 -1
  136. package/dist/utils/localization/translations/tr.json +2 -1
  137. package/dist/utils/localization/translations/zh-Hans.json +2 -1
  138. package/dist/utils/localization/translations/zh-TW.json +2 -1
  139. package/dist/utils/positioningUtils/calculatePosition.d.ts +1 -1
  140. package/dist/utils/positioningUtils/calculatePosition.js +11 -1
  141. package/esm/advancedGroupsFilter/advancedGroupsFilterFormSection.js +1 -1
  142. package/esm/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.js +0 -39
  143. package/esm/alertRaw/components/alertAnimation.js +8 -4
  144. package/esm/card/card.d.ts +1 -1
  145. package/esm/card/card.js +1 -3
  146. package/esm/card/components/status.js +2 -2
  147. package/esm/chart/barChart/getBarTooltipItems.js +31 -2
  148. package/esm/chart/barChart.js +2 -1
  149. package/esm/chart/utils/getYAxisMeta.d.ts +1 -1
  150. package/esm/chart/utils/getYAxisMeta.js +44 -1
  151. package/esm/checkbox/checkbox.js +3 -3
  152. package/esm/dataGrid/emptySearchList/emptySearchList.d.ts +6 -7
  153. package/esm/dataGrid/emptySearchList/emptySearchList.js +16 -24
  154. package/esm/dateInputRaw/dateInputRaw.d.ts +1 -1
  155. package/esm/dateRangeRaw/dateRangeRaw.d.ts +1 -1
  156. package/esm/dateRangeRaw/utils/dateRangeUtils.d.ts +1 -0
  157. package/esm/dateRangeRaw/utils/dateRangeUtils.js +37 -0
  158. package/esm/dropdownRaw/dropdownRaw.d.ts +1 -1
  159. package/esm/emptyState/emptyState.d.ts +9 -0
  160. package/esm/emptyState/emptyState.js +10 -0
  161. package/esm/emptyState/hooks/useIcon.d.ts +2 -0
  162. package/esm/emptyState/hooks/useIcon.js +10 -0
  163. package/esm/filtersBar/components/filtersBarPeriodPicker/getRangeOption.d.ts +1 -0
  164. package/esm/filtersBar/components/filtersBarPeriodPicker/getRangeOption.js +29 -4
  165. package/esm/formField/components/formFieldAdditionalInfo.d.ts +12 -0
  166. package/esm/formField/components/formFieldAdditionalInfo.js +6 -0
  167. package/esm/formField/components/formFieldAssistiveError.d.ts +10 -0
  168. package/esm/formField/components/formFieldAssistiveError.js +8 -0
  169. package/esm/formField/components/formFieldCounter.d.ts +6 -0
  170. package/esm/formField/components/formFieldCounter.js +3 -0
  171. package/esm/formField/components/formFieldLoading.d.ts +12 -0
  172. package/esm/formField/components/formFieldLoading.js +12 -0
  173. package/esm/formField/components/formFieldWithLabel.d.ts +8 -11
  174. package/esm/formField/components/formFieldWithLabel.js +21 -3
  175. package/esm/formField/components/formFieldWithoutLabel.d.ts +8 -9
  176. package/esm/formField/components/formFieldWithoutLabel.js +6 -1
  177. package/esm/formField/components/isOldFormFieldComponent.d.ts +2 -0
  178. package/esm/formField/components/isOldFormFieldComponent.js +8 -0
  179. package/esm/formField/components/trailingComponent.d.ts +2 -1
  180. package/esm/formField/components/trailingComponent.js +7 -1
  181. package/esm/formField/formField.d.ts +17 -35
  182. package/esm/formField/formField.js +5 -72
  183. package/esm/formField/hooks/useContainer.d.ts +2 -0
  184. package/esm/formField/hooks/useContainer.js +43 -0
  185. package/esm/formField/hooks/useError.d.ts +1 -1
  186. package/esm/formField/hooks/useFormFieldClasses.d.ts +2 -0
  187. package/esm/formField/hooks/useFormFieldClasses.js +26 -0
  188. package/esm/formField/hooks/useFormFieldProps.d.ts +17 -0
  189. package/esm/formField/hooks/useFormFieldProps.js +33 -0
  190. package/esm/formField/hooks/useTrailing.d.ts +1 -1
  191. package/esm/formField/hooks/useTrailing.js +1 -1
  192. package/esm/formField/hooks/useWidth.d.ts +1 -1
  193. package/esm/formField/types.d.ts +35 -0
  194. package/esm/formField/types.js +1 -0
  195. package/esm/formGroup/components/formGroupList.d.ts +1 -1
  196. package/esm/formGroup/components/formGroupToggle.d.ts +1 -1
  197. package/esm/formGroup/formGroup.d.ts +1 -1
  198. package/esm/formGroup/hooks/useLabelAlign.d.ts +1 -1
  199. package/esm/formGroup/types.d.ts +1 -1
  200. package/esm/formGroup/utils/applyCustomControlClasses.d.ts +1 -1
  201. package/esm/formGroup/utils/applyCustomLabelClasses.d.ts +1 -1
  202. package/esm/formGroup/utils/getControlClasses/getControlClasses.d.ts +1 -1
  203. package/esm/formGroup/utils/getControlClasses/getOneLabelOneControlClasses.d.ts +1 -1
  204. package/esm/formGroup/utils/getControlClasses/getOneLabelTwoControlsClasses.d.ts +1 -1
  205. package/esm/formGroup/utils/getControlClasses/getTwoLabelsOneControlClasses.d.ts +1 -1
  206. package/esm/formGroup/utils/getControlClasses/getTwoLabelsTwoControlsClasses.d.ts +1 -1
  207. package/esm/formGroup/utils/getLabelClasses/getLabelClasses.d.ts +1 -1
  208. package/esm/formGroup/utils/getLabelClasses/getOneLabelOneControlClasses.d.ts +1 -1
  209. package/esm/formGroup/utils/getLabelClasses/getOneLabelTwoControlsClasses.d.ts +1 -1
  210. package/esm/formGroup/utils/getLabelClasses/getTwoLabelsOneControlClasses.d.ts +1 -1
  211. package/esm/formGroup/utils/getLabelClasses/getTwoLabelsTwoControlsClasses.d.ts +1 -1
  212. package/esm/formGroup/utils/getListClasses.d.ts +1 -1
  213. package/esm/formGroup/utils/getToggleClasses.d.ts +1 -1
  214. package/esm/formGroup/utils/initializeState.d.ts +1 -1
  215. package/esm/formGroup/utils/isTopAlign.d.ts +1 -1
  216. package/esm/formLayout/types.d.ts +1 -1
  217. package/esm/formSection/types.d.ts +1 -1
  218. package/esm/formSection/utils/formSectionProvider.d.ts +1 -1
  219. package/esm/groupButtonRaw/groupButtonRaw.d.ts +1 -1
  220. package/esm/groupsFilterRaw/groupsFilterRaw.d.ts +1 -1
  221. package/esm/groupsFilterRaw/groupsHelper.js +2 -2
  222. package/esm/headerTitle/headerTitle.js +1 -1
  223. package/esm/images/imageAdjustFilter.d.ts +4 -0
  224. package/esm/images/imageAdjustFilter.js +12 -0
  225. package/esm/images/imageNoMatchingAssets.d.ts +4 -0
  226. package/esm/images/imageNoMatchingAssets.js +12 -0
  227. package/esm/index.d.ts +6 -2
  228. package/esm/index.js +4 -1
  229. package/esm/inputAdornments/inputAdornments.d.ts +2 -1
  230. package/esm/inputAdornments/inputAdornments.js +2 -2
  231. package/esm/layout/layout.js +11 -7
  232. package/esm/list/itemData/itemData.d.ts +1 -0
  233. package/esm/list/itemData/itemDataInternal.d.ts +2 -1
  234. package/esm/list/itemData/itemDataInternal.js +4 -2
  235. package/esm/list/itemData/itemDataWaiting.d.ts +2 -1
  236. package/esm/list/itemData/itemDataWaiting.js +4 -1
  237. package/esm/list/list.d.ts +13 -4
  238. package/esm/list/list.js +29 -12
  239. package/esm/list/utils/getLoadingItems.d.ts +1 -1
  240. package/esm/list/utils/getLoadingItems.js +4 -4
  241. package/esm/modal/modal.js +7 -0
  242. package/esm/pillExpandable/pillExpandable.d.ts +1 -0
  243. package/esm/pillExpandable/pillExpandable.js +74 -33
  244. package/esm/radioGroupRaw/radioGroupRaw.d.ts +1 -1
  245. package/esm/rangeRaw/rangeRaw.d.ts +1 -1
  246. package/esm/summary/summary.js +0 -1
  247. package/esm/summaryTile/summaryTile.js +2 -2
  248. package/esm/table/children/tableEmpty.d.ts +1 -1
  249. package/esm/table/children/useTableChildren.js +1 -1
  250. package/esm/timePickerRaw/timePickerRaw.d.ts +1 -1
  251. package/esm/tooltip/tooltip.d.ts +15 -4
  252. package/esm/tooltip/tooltip.js +388 -138
  253. package/esm/utils/localization/translations/cs.json +2 -1
  254. package/esm/utils/localization/translations/da-DK.json +2 -1
  255. package/esm/utils/localization/translations/de.json +2 -1
  256. package/esm/utils/localization/translations/en.json +2 -1
  257. package/esm/utils/localization/translations/es.json +3 -2
  258. package/esm/utils/localization/translations/fi-FI.json +2 -1
  259. package/esm/utils/localization/translations/fr-FR.json +2 -1
  260. package/esm/utils/localization/translations/fr.json +3 -2
  261. package/esm/utils/localization/translations/hu-HU.json +2 -1
  262. package/esm/utils/localization/translations/id.json +2 -1
  263. package/esm/utils/localization/translations/it.json +2 -1
  264. package/esm/utils/localization/translations/ja.json +2 -1
  265. package/esm/utils/localization/translations/ko-KR.json +2 -1
  266. package/esm/utils/localization/translations/ms.json +2 -1
  267. package/esm/utils/localization/translations/nb-NO.json +2 -1
  268. package/esm/utils/localization/translations/nl.json +2 -1
  269. package/esm/utils/localization/translations/pl.json +2 -1
  270. package/esm/utils/localization/translations/pt-BR.json +2 -1
  271. package/esm/utils/localization/translations/sk-SK.json +2 -1
  272. package/esm/utils/localization/translations/sv.json +2 -1
  273. package/esm/utils/localization/translations/th.json +2 -1
  274. package/esm/utils/localization/translations/tr.json +2 -1
  275. package/esm/utils/localization/translations/zh-Hans.json +2 -1
  276. package/esm/utils/localization/translations/zh-TW.json +2 -1
  277. package/esm/utils/positioningUtils/calculatePosition.d.ts +1 -1
  278. package/esm/utils/positioningUtils/calculatePosition.js +11 -1
  279. package/package.json +1 -1
@@ -70,8 +70,10 @@ const reactHelpers_1 = require("../commonHelpers/reactHelpers/reactHelpers");
70
70
  const MAX_PILLS_TO_DISPLAY_IN_POPUP = 2;
71
71
  const PillContext = (0, react_1.createContext)({
72
72
  level: 0,
73
- onPillExpand: () => {},
74
- expandId: undefined
73
+ onChildPillExpand: () => {},
74
+ onChildPillCollapse: () => {},
75
+ expandedChildPillIds: new Set(),
76
+ autoExpand: false
75
77
  });
76
78
  const paddingX = 26;
77
79
  const paddingY = 52;
@@ -153,7 +155,8 @@ const PillExpandableBase = ({
153
155
  secondaryIcon,
154
156
  isBeta,
155
157
  loadingWidth = 200,
156
- hideCounterNumber
158
+ hideCounterNumber,
159
+ autoExpandChildren
157
160
  }) => {
158
161
  const popupId = (0, react_1.useId)();
159
162
  const pillId = (0, react_1.useId)();
@@ -168,11 +171,11 @@ const PillExpandableBase = ({
168
171
  mainAction,
169
172
  getData
170
173
  }));
171
- const [isOpen, setIsOpen] = (0, react_1.useState)(false);
174
+ const [isPopupOpen, setIsPopupOpen] = (0, react_1.useState)(false);
172
175
  const [isPopupContentReady, setIsPopupContentReady] = (0, react_1.useState)(false);
173
176
  const [containerNode, setContainerNode] = (0, react_1.useState)(null);
174
177
  (0, react_1.useEffect)(() => {
175
- if (!isOpen) {
178
+ if (!isPopupOpen) {
176
179
  setIsPopupContentReady(false);
177
180
  return;
178
181
  }
@@ -189,10 +192,10 @@ const PillExpandableBase = ({
189
192
  return () => {
190
193
  observer.unobserve(containerNode);
191
194
  };
192
- }, [isOpen, containerNode]);
195
+ }, [isPopupOpen, containerNode]);
193
196
  (0, react_1.useEffect)(() => {
194
197
  const fetchData = function () {
195
- if (!isOpen) {
198
+ if (!isPopupOpen) {
196
199
  return;
197
200
  }
198
201
  if ((0, reactHelpers_1.isFunction)(getData)) {
@@ -206,9 +209,9 @@ const PillExpandableBase = ({
206
209
  }
207
210
  };
208
211
  fetchData();
209
- }, [getData, isOpen, errorHandler]);
212
+ }, [getData, isPopupOpen, errorHandler]);
210
213
  (0, react_1.useEffect)(() => {
211
- if (!isOpen) {
214
+ if (!isPopupOpen) {
212
215
  return;
213
216
  }
214
217
  getValue(description, setContent, "description", errorHandler);
@@ -216,25 +219,58 @@ const PillExpandableBase = ({
216
219
  getValue(count, setContent, "count", errorHandler);
217
220
  getValue(secondaryAction, setContent, "secondaryAction", errorHandler);
218
221
  getValue(mainAction, setContent, "mainAction", errorHandler);
219
- }, [content, isOpen, description, date, count, secondaryAction, mainAction, errorHandler]);
222
+ }, [content, isPopupOpen, description, date, count, secondaryAction, mainAction, errorHandler]);
220
223
  const {
221
224
  level,
222
- expandId,
223
- onPillExpand
225
+ expandedChildPillIds,
226
+ onChildPillExpand,
227
+ onChildPillCollapse,
228
+ autoExpand
224
229
  } = (0, react_1.useContext)(PillContext);
225
230
  const triggerRef = (0, react_1.useRef)(null);
226
231
  const isChild = level !== 0;
227
- const [currentExpand, setCurrentExpand] = (0, react_1.useState)(undefined);
228
- const onExpandHandler = (0, react_1.useCallback)(e => {
232
+ const [currentExpandedPills, setCurrentExpandedPills] = (0, react_1.useState)(new Set());
233
+ (0, react_1.useEffect)(() => {
234
+ if (isChild && autoExpand) {
235
+ onChildPillExpand(pillId);
236
+ }
237
+ }, [autoExpand, isChild, onChildPillExpand, pillId]);
238
+ const handlePopupToggle = (0, react_1.useCallback)(e => {
229
239
  var _a;
230
240
  e === null || e === void 0 ? void 0 : e.stopPropagation();
231
- setIsOpen(!isOpen);
232
- isOpen && ((_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus());
233
- onPillExpand(pillId === expandId ? "" : pillId);
234
- }, [isOpen, onPillExpand, pillId, expandId]);
241
+ setIsPopupOpen(!isPopupOpen);
242
+ isPopupOpen && ((_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus());
243
+ }, [isPopupOpen]);
244
+ const handleChildToggle = (0, react_1.useCallback)(e => {
245
+ e === null || e === void 0 ? void 0 : e.stopPropagation();
246
+ const isExpanded = expandedChildPillIds.has(pillId);
247
+ if (isExpanded) {
248
+ onChildPillCollapse(pillId);
249
+ } else {
250
+ if (!autoExpand) {
251
+ // Prevent multiple child pills being expanded at the same time
252
+ expandedChildPillIds.forEach(pill => onChildPillCollapse(pill));
253
+ }
254
+ onChildPillExpand(pillId);
255
+ }
256
+ }, [expandedChildPillIds, pillId, autoExpand, onChildPillCollapse, onChildPillExpand]);
257
+ const addExpandedChild = (0, react_1.useCallback)(id => {
258
+ setCurrentExpandedPills(prev => {
259
+ const next = new Set(prev);
260
+ next.add(id);
261
+ return next;
262
+ });
263
+ }, []);
264
+ const removeExpandedChild = (0, react_1.useCallback)(id => {
265
+ setCurrentExpandedPills(prev => {
266
+ const next = new Set(prev);
267
+ next.delete(id);
268
+ return next;
269
+ });
270
+ }, []);
235
271
  const onChange = (0, react_1.useCallback)(() => {
236
- setIsOpen(!isOpen);
237
- }, [isOpen]);
272
+ setIsPopupOpen(!isPopupOpen);
273
+ }, [isPopupOpen]);
238
274
  const buttonMoreProps = (0, react_1.useMemo)(() => (0, getProps_1.getButtonMoreProps)(viewMoreAction), [viewMoreAction]);
239
275
  const validChildren = (0, react_1.useMemo)(() => react_1.Children.toArray(children).filter(child => {
240
276
  var _a;
@@ -252,28 +288,31 @@ const PillExpandableBase = ({
252
288
  });
253
289
  }
254
290
  if (isChild) {
291
+ const isExpanded = expandedChildPillIds.has(pillId);
255
292
  return (0, jsx_runtime_1.jsxs)(PillContext.Provider, {
256
293
  value: {
257
294
  level: level + 1,
258
- onPillExpand: setCurrentExpand,
259
- expandId: currentExpand
295
+ onChildPillExpand: addExpandedChild,
296
+ onChildPillCollapse: removeExpandedChild,
297
+ expandedChildPillIds: currentExpandedPills,
298
+ autoExpand: autoExpandChildren || false
260
299
  },
261
300
  children: [(0, jsx_runtime_1.jsx)(pillExpandableSimple_1.PillExpandableSimple, {
262
301
  icon: icon,
263
302
  text: text,
264
- expanded: expandId === pillId,
265
- onExpand: onExpandHandler,
303
+ expanded: isExpanded,
304
+ onExpand: handleChildToggle,
266
305
  expandAriaText: translate("Expand"),
267
306
  type: type,
268
307
  errorHandler: errorHandler
269
308
  }), (0, jsx_runtime_1.jsx)(pillContent_1.PillContent, {
270
- onActionClick: onExpandHandler,
309
+ onActionClick: handleChildToggle,
271
310
  descriptionText: content.description,
272
311
  date: content.date,
273
312
  count: content.count,
274
313
  mainAction: content.mainAction,
275
314
  secondaryAction: content.secondaryAction,
276
- isVisible: expandId === pillId,
315
+ isVisible: isExpanded,
277
316
  errorHandler: errorHandler
278
317
  })]
279
318
  });
@@ -281,19 +320,21 @@ const PillExpandableBase = ({
281
320
  return (0, jsx_runtime_1.jsx)(PillContext.Provider, {
282
321
  value: {
283
322
  level: level + 1,
284
- onPillExpand: setCurrentExpand,
285
- expandId: currentExpand
323
+ onChildPillExpand: addExpandedChild,
324
+ onChildPillCollapse: removeExpandedChild,
325
+ expandedChildPillIds: currentExpandedPills,
326
+ autoExpand: autoExpandChildren || false
286
327
  },
287
328
  children: (0, jsx_runtime_1.jsxs)("div", {
288
329
  className: (0, classNames_1.classNames)(["zen-status-pill", className || ""]),
289
330
  "aria-haspopup": "true",
290
331
  children: [(0, jsx_runtime_1.jsxs)("div", {
291
332
  className: "zen-status-pill__pill-container",
292
- onClick: onExpandHandler,
333
+ onClick: handlePopupToggle,
293
334
  children: [(0, jsx_runtime_1.jsx)(pillExpandableSimple_1.PillExpandableSimple, {
294
335
  icon: icon,
295
336
  text: text,
296
- expanded: isOpen,
337
+ expanded: isPopupOpen,
297
338
  expandAriaText: translate("Expand"),
298
339
  ref: triggerRef,
299
340
  type: type,
@@ -315,7 +356,7 @@ const PillExpandableBase = ({
315
356
  onOpenChange: onChange,
316
357
  paddingX: paddingX,
317
358
  paddingY: paddingY,
318
- isOpen: isOpen,
359
+ isOpen: isPopupOpen,
319
360
  triggerRef: triggerRef,
320
361
  alignmentsFn: pillExpandableAlignments_1.alignments,
321
362
  children: (0, jsx_runtime_1.jsx)("div", {
@@ -329,14 +370,14 @@ const PillExpandableBase = ({
329
370
  icon: icon,
330
371
  text: text,
331
372
  expanded: true,
332
- onExpand: onExpandHandler,
373
+ onExpand: handlePopupToggle,
333
374
  expandAriaText: translate("Expand"),
334
375
  type: type,
335
376
  errorHandler: errorHandler,
336
377
  isBeta: isBeta
337
378
  })
338
379
  }), (0, jsx_runtime_1.jsx)(pillContent_1.PillContent, {
339
- onActionClick: onExpandHandler,
380
+ onActionClick: handlePopupToggle,
340
381
  descriptionText: content.description,
341
382
  date: content.date,
342
383
  count: content.count,
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { IFormFieldComponent } from "../formField/formField";
2
+ import { IFormFieldComponent } from "../formField/types";
3
3
  import { IRadioGroupRawDefault, TRadioGroupRaw } from "./types";
4
4
  import "./radioGroupRaw.less";
5
5
  export interface IRadioGroupRaw extends IRadioGroupRawDefault {
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { IFormFieldComponent } from "../formField/formField";
2
+ import { IFormFieldComponent } from "../formField/types";
3
3
  import { IRangeRawDefault, TRangeRaw } from "./types";
4
4
  import "./rangeRaw.less";
5
5
  export type { IRangeValuesRaw } from "./types";
@@ -72,7 +72,6 @@ const Summary = ({
72
72
  children: title
73
73
  }), tooltip && (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, {
74
74
  alignment: "top",
75
- size: "auto",
76
75
  trigger: (0, jsx_runtime_1.jsx)("div", {
77
76
  className: "zen-summary__trigger",
78
77
  children: (0, jsx_runtime_1.jsx)(iconInfoCircle_1.IconInfoCircle, {
@@ -53,7 +53,7 @@ var SummaryTileSize;
53
53
  SummaryTileSize["Medium"] = "medium";
54
54
  })(SummaryTileSize || (exports.SummaryTileSize = SummaryTileSize = {}));
55
55
  exports.SummaryTileDisplayName = "SummaryTile";
56
- const SummaryTile = ({ className, children, size = SummaryTileSize.Small, title, tileType = SummaryTileType.Default, id, onClick, tooltipText, tooltipAlignment = "top", tooltipSize }) => {
56
+ const SummaryTile = ({ className, children, size = SummaryTileSize.Small, title, tileType = SummaryTileType.Default, id, onClick, tooltipText, tooltipAlignment = "top" }) => {
57
57
  const generatedId = React.useId();
58
58
  const eltId = id || generatedId;
59
59
  const memoizedGetIconId = React.useMemo(() => {
@@ -83,7 +83,7 @@ const SummaryTile = ({ className, children, size = SummaryTileSize.Small, title,
83
83
  };
84
84
  }
85
85
  const Tag = onClick ? "button" : "div";
86
- return (0, jsx_runtime_1.jsxs)(Tag, Object.assign({}, componentProps, { children: [(0, jsx_runtime_1.jsxs)("div", { className: "zen-summary-tile__title-block", children: [(0, jsx_runtime_1.jsx)("div", { className: "zen-summary-tile__title-text zen-ellipsis heading-05", children: title }), tooltipText ? (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { alignment: tooltipAlignment, size: tooltipSize, trigger: (0, jsx_runtime_1.jsx)(summaryTileTrigger_1.SummaryTileTrigger, { icon: memoizedGetIconId }), children: tooltipText }) : null] }), (0, jsx_runtime_1.jsx)("div", { className: "zen-summary-tile__content", children: children })] }));
86
+ return (0, jsx_runtime_1.jsxs)(Tag, Object.assign({}, componentProps, { children: [(0, jsx_runtime_1.jsxs)("div", { className: "zen-summary-tile__title-block", children: [(0, jsx_runtime_1.jsx)("div", { className: "zen-summary-tile__title-text zen-ellipsis heading-05", children: title }), tooltipText ? (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { alignment: tooltipAlignment, trigger: (0, jsx_runtime_1.jsx)(summaryTileTrigger_1.SummaryTileTrigger, { icon: memoizedGetIconId }), children: tooltipText }) : null] }), (0, jsx_runtime_1.jsx)("div", { className: "zen-summary-tile__content", children: children })] }));
87
87
  };
88
88
  exports.SummaryTile = SummaryTile;
89
89
  exports.SummaryTile.displayName = exports.SummaryTileDisplayName;
@@ -1,5 +1,5 @@
1
1
  import { IEmptySearchList } from "../../dataGrid/emptySearchList/emptySearchList";
2
- export interface ITableEmpty extends Pick<IEmptySearchList, "description" | "image" | "className"> {
2
+ export interface ITableEmpty extends Pick<IEmptySearchList, "description" | "image" | "className" | "children"> {
3
3
  }
4
4
  export declare const TableEmpty: {
5
5
  (_: ITableEmpty): import("react/jsx-runtime").JSX.Element;
@@ -71,7 +71,7 @@ const useTableChildren = (children, isMobile, selected, allSelected, clearSelect
71
71
  description: child.props.description,
72
72
  image: child.props.image,
73
73
  className: child.props.className
74
- }));
74
+ }, child.props.children));
75
75
  return;
76
76
  }
77
77
  if (isChildElement(child, tableDetailPanel_1.TableDetailPanel.displayName)) {
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { IFormFieldComponent } from "../formField/formField";
2
+ import { IFormFieldComponent } from "../formField/types";
3
3
  import { ITimePickerRawDefault, TTimePickerRaw } from "./types";
4
4
  import "./timePickerRaw.less";
5
5
  export interface ITimePickerRaw extends ITimePickerRawDefault {
@@ -1,13 +1,24 @@
1
- import { FC, PropsWithChildren, ReactElement } from "react";
1
+ import React, { FC, PropsWithChildren, ReactElement } from "react";
2
2
  import { IZenComponentProps } from "../commonHelpers/zenComponent";
3
- import { TAlignment } from "../absolute/absolute";
4
3
  import "./tooltip.less";
4
+ import { TAlignment } from "../absolute/absolute";
5
5
  export type TooltipSize = "large" | "small" | "auto";
6
6
  export type TMobileView = "default" | "mobileSheet";
7
7
  interface ITooltip extends IZenComponentProps {
8
- trigger: ReactElement<PropsWithChildren>;
9
- size?: TooltipSize;
8
+ trigger?: ReactElement<PropsWithChildren & {
9
+ onClick?: (e: React.MouseEvent) => void;
10
+ }>;
10
11
  alignment?: TAlignment;
12
+ triggerClassName?: string;
13
+ mobileTitle?: string;
14
+ /**
15
+ * @deprecated
16
+ * @param mobileSheetTitle - will be removed in the next major release
17
+ * @param mobileView - will be removed in the next major release
18
+ * @param size - will be removed in the next major release
19
+ * @param padding - will be removed in the next major release
20
+ */
21
+ size?: TooltipSize;
11
22
  padding?: number;
12
23
  mobileView?: TMobileView;
13
24
  mobileSheetTitle?: ReactElement | string;