@geotab/zenith 3.1.1-beta.6 → 3.2.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 (430) hide show
  1. package/README.md +20 -0
  2. package/dist/advancedGroupsFilter/advancedGroupsFilter.js +136 -30
  3. package/dist/advancedGroupsFilter/advancedGroupsFilterForm.js +139 -34
  4. package/dist/advancedGroupsFilter/advancedGroupsFilterFormSection.js +352 -87
  5. package/dist/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.d.ts +0 -1
  6. package/dist/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.js +83 -9
  7. package/dist/alertRaw/alertRaw.js +175 -54
  8. package/dist/banner/bannerMultipLine.js +131 -23
  9. package/dist/banner/bannerSingleLine.js +110 -16
  10. package/dist/betaPill/betaPill.js +111 -20
  11. package/dist/bookmark/bookmark.js +95 -28
  12. package/dist/bulkEditControl/bulkEditControl.js +167 -34
  13. package/dist/calendar/calendar.js +943 -273
  14. package/dist/calendar/calendarUtils.js +157 -85
  15. package/dist/card/card.js +268 -123
  16. package/dist/chart/accessibleChart/accessibleChartNarrative.js +648 -555
  17. package/dist/chart/accessibleChart/accessibleChartTable.js +245 -86
  18. package/dist/chart/chart.js +36 -21
  19. package/dist/chart/chartAxis/chartAxis.js +85 -7
  20. package/dist/checkboxListWithAction/checkboxListWithAction.js +224 -69
  21. package/dist/chip/chip.js +195 -91
  22. package/dist/columnsSelector/columnsSelector.js +97 -12
  23. package/dist/columnsSelector/columnsTab/columnsTab.js +59 -15
  24. package/dist/columnsSelector/columnsTabGroup/columnsTabGroup.js +81 -34
  25. package/dist/comboboxSelected/comboboxSelected.js +1 -3
  26. package/dist/dataFeed/feedExpandControl/feedExpandControl.js +25 -10
  27. package/dist/dataGrid/columns/checkboxColumn/checkboxHeaderCell.js +92 -11
  28. package/dist/dataGrid/dataGrid.js +227 -117
  29. package/dist/dataGrid/emptySearchList/emptySearchList.js +56 -9
  30. package/dist/dataGrid/entitiesListActions/actions/columnsListButton.js +51 -7
  31. package/dist/dataGrid/entitiesListActions/actions/fullscreenButton.js +64 -18
  32. package/dist/dataGrid/withFlexibleColumns/components/columnSettings.js +84 -10
  33. package/dist/dataGrid/withFlexibleColumns/components/columnSettingsSidePanel.js +48 -16
  34. package/dist/dataGrid/withSelectableRows/components/bulkActions/bulkActions.js +223 -32
  35. package/dist/dataGrid/withSelectableRows/withSelectableRows.js +286 -213
  36. package/dist/dataGrid/withSortableColumns/columns/sortableColumnWrapper.js +178 -95
  37. package/dist/dateInputInner/dateInputInner.js +791 -476
  38. package/dist/dateInputInner/dateInputInnerControlBlock.js +125 -22
  39. package/dist/dateInputRaw/dateInputRaw.js +315 -104
  40. package/dist/dateInputRaw/utils/getLabel.js +38 -7
  41. package/dist/dateRangeInner/dateRangeInner.js +172 -58
  42. package/dist/dateRangeRaw/dateRangeRaw.js +601 -239
  43. package/dist/dateRangeRaw/utils/dateRangeUtils.js +629 -241
  44. package/dist/dateSelectionWrapper/dateSelectionWrapper.js +152 -14
  45. package/dist/dialog/dialogContent.js +123 -40
  46. package/dist/dropdownRaw/dropdownHelper.d.ts +2 -2
  47. package/dist/dropdownRaw/dropdownHelper.js +9 -9
  48. package/dist/dropdownRaw/dropdownList.js +447 -78
  49. package/dist/dropdownRaw/dropdownPopup.js +218 -20
  50. package/dist/dropdownRaw/dropdownRaw.js +866 -506
  51. package/dist/dropdownRaw/dropdownSearchableTrigger.js +223 -46
  52. package/dist/dropdownRaw/stateReducer/stateAction.d.ts +5 -1
  53. package/dist/dropdownRaw/stateReducer/stateActionType.d.ts +2 -1
  54. package/dist/dropdownRaw/stateReducer/stateActionType.js +1 -0
  55. package/dist/dropdownRaw/stateReducer/stateReducer.d.ts +6 -1
  56. package/dist/dropdownRaw/stateReducer/stateReducer.js +24 -12
  57. package/dist/dropdownRaw/stateReducer/stateReducerHelper.d.ts +2 -0
  58. package/dist/dropdownRaw/stateReducer/stateReducerHelper.js +20 -1
  59. package/dist/dropdownRaw/stateReducer/stateReducerTestData.d.ts +39 -0
  60. package/dist/dropdownRaw/stateReducer/stateReducerTestData.js +74 -0
  61. package/dist/dropdownRaw/types.d.ts +1 -0
  62. package/dist/favoriteButton/favoriteButton.js +59 -10
  63. package/dist/filters/components/filtersContainer.js +151 -64
  64. package/dist/filters/components/filtersEmptySelectedList.js +30 -4
  65. package/dist/filters/components/filtersSaveModal.js +140 -42
  66. package/dist/filters/components/filtersSavedChipComponent.js +318 -108
  67. package/dist/filters/components/filtersSearchItemData.js +127 -47
  68. package/dist/filters/components/filtersSearchList.js +381 -179
  69. package/dist/filters/components/filtersSelect.js +128 -61
  70. package/dist/filters/components/filtersSelectListItem.js +125 -13
  71. package/dist/filters/components/filtersSidePanel.js +510 -178
  72. package/dist/filters/filters.js +445 -268
  73. package/dist/filtersBar/components/filtersBarPeriodPicker/getRangeOption.js +729 -272
  74. package/dist/filtersBar/components/resetComponentButton.js +45 -5
  75. package/dist/filtersBar/filtersBarActions/filtersBarActions.js +126 -15
  76. package/dist/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelRange/filtersBarSidePanelRange.js +155 -49
  77. package/dist/filtersBar/filtersBarSidePanel/filtersBarSidePanel.js +360 -104
  78. package/dist/filtersBar/filtersContainer/filtersContainer.js +204 -134
  79. package/dist/formField/components/formFieldWithLabel.d.ts +2 -1
  80. package/dist/formField/components/formFieldWithLabel.js +3 -2
  81. package/dist/formField/components/formFieldWithoutLabel.d.ts +2 -1
  82. package/dist/formField/components/formFieldWithoutLabel.js +3 -3
  83. package/dist/formField/components/trailingComponent.d.ts +8 -0
  84. package/dist/formField/components/trailingComponent.js +11 -0
  85. package/dist/formField/formField.js +12 -11
  86. package/dist/formField/hooks/useError.js +100 -36
  87. package/dist/formGroup/components/reviewListToggle/reviewListToggle.js +72 -7
  88. package/dist/formGroup/hooks/useToggle.js +37 -11
  89. package/dist/formGroup/utils/getControls.js +8 -7
  90. package/dist/formLayout/hooks/useError.js +55 -15
  91. package/dist/formLayout/hooks/useFormButtons.js +128 -27
  92. package/dist/formSection/components/formSectionModal.js +1 -1
  93. package/dist/formSection/formSection.js +1 -1
  94. package/dist/formSection/hooks/useError.js +70 -22
  95. package/dist/formStepper/components/formStep.js +65 -10
  96. package/dist/formStepper/formStepper.js +129 -33
  97. package/dist/formStepperButtons/formStepperButtons.js +184 -38
  98. package/dist/groupsFilter/groupsHelper.d.ts +1 -1
  99. package/dist/groupsFilterRaw/groupsFilterAdjustmentState.js +162 -17
  100. package/dist/groupsFilterRaw/groupsFilterBox.js +137 -32
  101. package/dist/groupsFilterRaw/groupsFilterCommon.js +75 -8
  102. package/dist/groupsFilterRaw/groupsFilterCurrentlySelectedState.js +184 -25
  103. package/dist/groupsFilterRaw/groupsFilterHelper.d.ts +2 -1
  104. package/dist/groupsFilterRaw/groupsFilterHelper.js +284 -168
  105. package/dist/groupsFilterRaw/groupsFilterInitialState.js +266 -18
  106. package/dist/groupsFilterRaw/groupsFilterMenu.js +124 -9
  107. package/dist/groupsFilterRaw/groupsFilterRaw.d.ts +1 -0
  108. package/dist/groupsFilterRaw/groupsFilterRaw.js +816 -308
  109. package/dist/groupsFilterRaw/groupsFilterTestData.d.ts +155 -2
  110. package/dist/groupsFilterRaw/groupsFilterTestData.js +153 -58
  111. package/dist/groupsFilterRaw/groupsFilterTrigger.js +139 -35
  112. package/dist/groupsFilterRaw/groupsHelper.js +739 -208
  113. package/dist/groupsFilterRaw/stateReducer/stateReducerHelper.js +3 -1
  114. package/dist/groupsFilterRaw/types.d.ts +1 -0
  115. package/dist/header/components/collapsedItemsControl/collapsedItemsControl.js +107 -52
  116. package/dist/header/components/mobileFilterControl/mobileFilterControl.js +62 -9
  117. package/dist/header/components/mobileSearchControl/mobileSearchControl.js +119 -14
  118. package/dist/header/headerBack.js +64 -20
  119. package/dist/index.css +110 -71
  120. package/dist/index.d.ts +1 -0
  121. package/dist/index.js +4 -1
  122. package/dist/list/itemData/itemDataInternal.js +216 -51
  123. package/dist/list/listItem/listItem.js +168 -55
  124. package/dist/menu/components/menuErrorItem.js +33 -5
  125. package/dist/mobileSheet/mobileSheet.js +195 -69
  126. package/dist/modal/modal.js +300 -142
  127. package/dist/nav/nav.js +1 -1
  128. package/dist/nav/navFooter/navFooter.js +82 -39
  129. package/dist/nav/navFooter/navFooterAction/navFooterAction.js +52 -13
  130. package/dist/nav/navHeader/navHeader.js +86 -36
  131. package/dist/nav/navHeader/navHeaderSearch/navHeaderSearch.js +88 -29
  132. package/dist/nav/navItem/navItem.d.ts +3 -3
  133. package/dist/nav/navItem/navItem.js +35 -33
  134. package/dist/nav/navMobileBar/navMobileBar.js +67 -21
  135. package/dist/notification/notification.js +124 -21
  136. package/dist/pagination/paginationArrow.js +81 -11
  137. package/dist/pagination/paginationText/paginationText.js +45 -11
  138. package/dist/pill/components/pillNonActionable/pillNonActionable.js +93 -24
  139. package/dist/pillBox/components/pillBoxItem.js +52 -9
  140. package/dist/pillBox/pillBox.js +121 -20
  141. package/dist/pillExpandable/pillExpandable.js +333 -139
  142. package/dist/rangeRaw/rangeRaw.js +486 -141
  143. package/dist/rangeRaw/utils/rangeHelper.js +209 -39
  144. package/dist/searchInputRaw/searchInputRaw.js +180 -65
  145. package/dist/skeleton/skeleton.js +51 -6
  146. package/dist/sortControl/sortControl.js +152 -42
  147. package/dist/stepperRaw/stepperRaw.js +116 -42
  148. package/dist/summary/summary.js +94 -8
  149. package/dist/table/actions/actionsMenu.js +171 -78
  150. package/dist/table/flexible/columnSettings.js +80 -10
  151. package/dist/table/flexible/columnsList.js +110 -43
  152. package/dist/table/flexible/columnsPopup.js +77 -20
  153. package/dist/table/nested/useNestedRows.js +167 -77
  154. package/dist/table/selectable/selectableHeader.js +180 -41
  155. package/dist/table/selectable/useSelectableRows.js +270 -191
  156. package/dist/table/sortable/sortableHeader.js +153 -75
  157. package/dist/tabs/tabs.js +227 -118
  158. package/dist/timePickerRaw/timePickerRaw.js +278 -58
  159. package/dist/toastRaw/toastRaw.js +138 -32
  160. package/dist/toggleButton/toggleButton.d.ts +0 -1
  161. package/dist/toggleButtonRaw/toggleButtonRaw.d.ts +1 -0
  162. package/dist/toggleButtonRaw/toggleButtonRaw.js +146 -40
  163. package/dist/utils/formatDate.js +1001 -117
  164. package/{esm/utils/localization/translations/cs-json.js → dist/utils/localization/translations/cs.json} +11 -12
  165. package/{esm/utils/localization/translations/da-DK-json.js → dist/utils/localization/translations/da-DK.json} +31 -23
  166. package/{esm/utils/localization/translations/de-json.js → dist/utils/localization/translations/de.json} +12 -13
  167. package/dist/utils/localization/translations/en.json +308 -0
  168. package/{esm/utils/localization/translations/es-json.js → dist/utils/localization/translations/es.json} +11 -12
  169. package/{esm/utils/localization/translations/fi-FI-json.js → dist/utils/localization/translations/fi-FI.json} +31 -23
  170. package/{esm/utils/localization/translations/fr-FR-json.js → dist/utils/localization/translations/fr-FR.json} +12 -12
  171. package/{esm/utils/localization/translations/fr-json.js → dist/utils/localization/translations/fr.json} +11 -12
  172. package/{esm/utils/localization/translations/hu-HU-json.js → dist/utils/localization/translations/hu-HU.json} +31 -23
  173. package/{esm/utils/localization/translations/id-json.js → dist/utils/localization/translations/id.json} +11 -13
  174. package/{esm/utils/localization/translations/it-json.js → dist/utils/localization/translations/it.json} +11 -12
  175. package/{esm/utils/localization/translations/ja-json.js → dist/utils/localization/translations/ja.json} +11 -12
  176. package/{esm/utils/localization/translations/ko-KR-json.js → dist/utils/localization/translations/ko-KR.json} +24 -23
  177. package/{esm/utils/localization/translations/ms-json.js → dist/utils/localization/translations/ms.json} +11 -12
  178. package/{esm/utils/localization/translations/nb-NO-json.js → dist/utils/localization/translations/nb-NO.json} +31 -23
  179. package/{esm/utils/localization/translations/nl-json.js → dist/utils/localization/translations/nl.json} +11 -12
  180. package/{esm/utils/localization/translations/pl-json.js → dist/utils/localization/translations/pl.json} +11 -12
  181. package/{esm/utils/localization/translations/pt-BR-json.js → dist/utils/localization/translations/pt-BR.json} +11 -12
  182. package/{esm/utils/localization/translations/sk-SK-json.js → dist/utils/localization/translations/sk-SK.json} +31 -23
  183. package/{esm/utils/localization/translations/sv-json.js → dist/utils/localization/translations/sv.json} +11 -12
  184. package/{esm/utils/localization/translations/th-json.js → dist/utils/localization/translations/th.json} +11 -12
  185. package/{esm/utils/localization/translations/tr-json.js → dist/utils/localization/translations/tr.json} +11 -12
  186. package/{esm/utils/localization/translations/zh-Hans-json.js → dist/utils/localization/translations/zh-Hans.json} +11 -12
  187. package/{esm/utils/localization/translations/zh-TW-json.js → dist/utils/localization/translations/zh-TW.json} +11 -23
  188. package/dist/utils/localization/translationsDictionary.d.ts +2 -0
  189. package/dist/utils/localization/translationsDictionary.js +63 -0
  190. package/dist/utils/localization/useLanguage.js +2 -74
  191. package/esm/advancedGroupsFilter/advancedGroupsFilter.js +130 -29
  192. package/esm/advancedGroupsFilter/advancedGroupsFilterForm.js +133 -33
  193. package/esm/advancedGroupsFilter/advancedGroupsFilterFormSection.js +317 -65
  194. package/esm/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.d.ts +0 -1
  195. package/esm/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.js +77 -8
  196. package/esm/alertRaw/alertRaw.js +165 -51
  197. package/esm/banner/bannerMultipLine.js +121 -20
  198. package/esm/banner/bannerSingleLine.js +100 -13
  199. package/esm/betaPill/betaPill.js +105 -19
  200. package/esm/bookmark/bookmark.js +89 -27
  201. package/esm/bulkEditControl/bulkEditControl.js +161 -33
  202. package/esm/calendar/calendar.js +937 -272
  203. package/esm/calendar/calendarUtils.js +151 -84
  204. package/esm/card/card.js +233 -101
  205. package/esm/chart/accessibleChart/accessibleChartNarrative.js +642 -554
  206. package/esm/chart/accessibleChart/accessibleChartTable.js +239 -85
  207. package/esm/chart/chart.js +30 -20
  208. package/esm/chart/chartAxis/chartAxis.js +79 -6
  209. package/esm/checkboxListWithAction/checkboxListWithAction.js +218 -68
  210. package/esm/chip/chip.js +189 -90
  211. package/esm/columnsSelector/columnsSelector.js +91 -11
  212. package/esm/columnsSelector/columnsTab/columnsTab.js +53 -14
  213. package/esm/columnsSelector/columnsTabGroup/columnsTabGroup.js +75 -33
  214. package/esm/comboboxSelected/comboboxSelected.js +1 -3
  215. package/esm/dataFeed/feedExpandControl/feedExpandControl.js +21 -9
  216. package/esm/dataGrid/columns/checkboxColumn/checkboxHeaderCell.js +86 -10
  217. package/esm/dataGrid/dataGrid.js +221 -116
  218. package/esm/dataGrid/emptySearchList/emptySearchList.js +50 -8
  219. package/esm/dataGrid/entitiesListActions/actions/columnsListButton.js +45 -6
  220. package/esm/dataGrid/entitiesListActions/actions/fullscreenButton.js +58 -17
  221. package/esm/dataGrid/withFlexibleColumns/components/columnSettings.js +78 -9
  222. package/esm/dataGrid/withFlexibleColumns/components/columnSettingsSidePanel.js +44 -15
  223. package/esm/dataGrid/withSelectableRows/components/bulkActions/bulkActions.js +217 -31
  224. package/esm/dataGrid/withSelectableRows/withSelectableRows.js +280 -212
  225. package/esm/dataGrid/withSortableColumns/columns/sortableColumnWrapper.js +172 -94
  226. package/esm/dateInputInner/dateInputInner.js +785 -475
  227. package/esm/dateInputInner/dateInputInnerControlBlock.js +119 -21
  228. package/esm/dateInputRaw/dateInputRaw.js +309 -103
  229. package/esm/dateInputRaw/utils/getLabel.js +32 -6
  230. package/esm/dateRangeInner/dateRangeInner.js +166 -57
  231. package/esm/dateRangeRaw/dateRangeRaw.js +595 -238
  232. package/esm/dateRangeRaw/utils/dateRangeUtils.js +622 -239
  233. package/esm/dateSelectionWrapper/dateSelectionWrapper.js +146 -13
  234. package/esm/dialog/dialogContent.js +117 -39
  235. package/esm/dropdownRaw/dropdownHelper.d.ts +2 -2
  236. package/esm/dropdownRaw/dropdownHelper.js +10 -10
  237. package/esm/dropdownRaw/dropdownList.js +412 -56
  238. package/esm/dropdownRaw/dropdownPopup.js +212 -19
  239. package/esm/dropdownRaw/dropdownRaw.js +862 -507
  240. package/esm/dropdownRaw/dropdownSearchableTrigger.js +217 -45
  241. package/esm/dropdownRaw/stateReducer/stateAction.d.ts +5 -1
  242. package/esm/dropdownRaw/stateReducer/stateActionType.d.ts +2 -1
  243. package/esm/dropdownRaw/stateReducer/stateActionType.js +1 -0
  244. package/esm/dropdownRaw/stateReducer/stateReducer.d.ts +6 -1
  245. package/esm/dropdownRaw/stateReducer/stateReducer.js +24 -12
  246. package/esm/dropdownRaw/stateReducer/stateReducerHelper.d.ts +2 -0
  247. package/esm/dropdownRaw/stateReducer/stateReducerHelper.js +18 -0
  248. package/esm/dropdownRaw/stateReducer/stateReducerTestData.d.ts +39 -0
  249. package/esm/dropdownRaw/stateReducer/stateReducerTestData.js +71 -0
  250. package/esm/dropdownRaw/types.d.ts +1 -0
  251. package/esm/favoriteButton/favoriteButton.js +53 -9
  252. package/esm/filters/components/filtersContainer.js +141 -61
  253. package/esm/filters/components/filtersEmptySelectedList.js +24 -3
  254. package/esm/filters/components/filtersSaveModal.js +134 -41
  255. package/esm/filters/components/filtersSavedChipComponent.js +312 -107
  256. package/esm/filters/components/filtersSearchItemData.js +121 -46
  257. package/esm/filters/components/filtersSearchList.js +375 -178
  258. package/esm/filters/components/filtersSelect.js +122 -60
  259. package/esm/filters/components/filtersSelectListItem.js +119 -12
  260. package/esm/filters/components/filtersSidePanel.js +504 -177
  261. package/esm/filters/filters.js +435 -265
  262. package/esm/filtersBar/components/filtersBarPeriodPicker/getRangeOption.js +722 -270
  263. package/esm/filtersBar/components/resetComponentButton.js +39 -4
  264. package/esm/filtersBar/filtersBarActions/filtersBarActions.js +120 -14
  265. package/esm/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelRange/filtersBarSidePanelRange.js +149 -48
  266. package/esm/filtersBar/filtersBarSidePanel/filtersBarSidePanel.js +354 -103
  267. package/esm/filtersBar/filtersContainer/filtersContainer.js +198 -133
  268. package/esm/formField/components/formFieldWithLabel.d.ts +2 -1
  269. package/esm/formField/components/formFieldWithLabel.js +3 -2
  270. package/esm/formField/components/formFieldWithoutLabel.d.ts +2 -1
  271. package/esm/formField/components/formFieldWithoutLabel.js +3 -3
  272. package/esm/formField/components/trailingComponent.d.ts +8 -0
  273. package/esm/formField/components/trailingComponent.js +7 -0
  274. package/esm/formField/formField.js +12 -11
  275. package/esm/formField/hooks/useError.js +94 -35
  276. package/esm/formGroup/components/reviewListToggle/reviewListToggle.js +66 -6
  277. package/esm/formGroup/hooks/useToggle.js +31 -10
  278. package/esm/formGroup/utils/getControls.js +8 -7
  279. package/esm/formLayout/hooks/useError.js +49 -14
  280. package/esm/formLayout/hooks/useFormButtons.js +122 -26
  281. package/esm/formSection/components/formSectionModal.js +1 -1
  282. package/esm/formSection/formSection.js +1 -1
  283. package/esm/formSection/hooks/useError.js +64 -21
  284. package/esm/formStepper/components/formStep.js +59 -9
  285. package/esm/formStepper/formStepper.js +123 -32
  286. package/esm/formStepperButtons/formStepperButtons.js +178 -37
  287. package/esm/groupsFilter/groupsHelper.d.ts +1 -1
  288. package/esm/groupsFilterRaw/groupsFilterAdjustmentState.js +152 -14
  289. package/esm/groupsFilterRaw/groupsFilterBox.js +131 -31
  290. package/esm/groupsFilterRaw/groupsFilterCommon.js +69 -7
  291. package/esm/groupsFilterRaw/groupsFilterCurrentlySelectedState.js +178 -24
  292. package/esm/groupsFilterRaw/groupsFilterHelper.d.ts +2 -1
  293. package/esm/groupsFilterRaw/groupsFilterHelper.js +279 -168
  294. package/esm/groupsFilterRaw/groupsFilterInitialState.js +260 -17
  295. package/esm/groupsFilterRaw/groupsFilterMenu.js +118 -8
  296. package/esm/groupsFilterRaw/groupsFilterRaw.d.ts +1 -0
  297. package/esm/groupsFilterRaw/groupsFilterRaw.js +811 -308
  298. package/esm/groupsFilterRaw/groupsFilterTestData.d.ts +155 -2
  299. package/esm/groupsFilterRaw/groupsFilterTestData.js +152 -57
  300. package/esm/groupsFilterRaw/groupsFilterTrigger.js +133 -34
  301. package/esm/groupsFilterRaw/groupsHelper.js +733 -207
  302. package/esm/groupsFilterRaw/stateReducer/stateReducerHelper.js +3 -1
  303. package/esm/groupsFilterRaw/types.d.ts +1 -0
  304. package/esm/header/components/collapsedItemsControl/collapsedItemsControl.js +101 -51
  305. package/esm/header/components/mobileFilterControl/mobileFilterControl.js +56 -8
  306. package/esm/header/components/mobileSearchControl/mobileSearchControl.js +113 -13
  307. package/esm/header/headerBack.js +58 -19
  308. package/esm/index.d.ts +1 -0
  309. package/esm/index.js +1 -0
  310. package/esm/list/itemData/itemDataInternal.js +210 -50
  311. package/esm/list/listItem/listItem.js +162 -54
  312. package/esm/menu/components/menuErrorItem.js +27 -4
  313. package/esm/mobileSheet/mobileSheet.js +189 -68
  314. package/esm/modal/modal.js +265 -120
  315. package/esm/nav/nav.js +1 -1
  316. package/esm/nav/navFooter/navFooter.js +76 -38
  317. package/esm/nav/navFooter/navFooterAction/navFooterAction.js +46 -12
  318. package/esm/nav/navHeader/navHeader.js +80 -35
  319. package/esm/nav/navHeader/navHeaderSearch/navHeaderSearch.js +82 -28
  320. package/esm/nav/navItem/navItem.d.ts +3 -3
  321. package/esm/nav/navItem/navItem.js +35 -33
  322. package/esm/nav/navMobileBar/navMobileBar.js +61 -20
  323. package/esm/notification/notification.js +114 -18
  324. package/esm/pagination/paginationArrow.js +75 -10
  325. package/esm/pagination/paginationText/paginationText.js +39 -10
  326. package/esm/pill/components/pillNonActionable/pillNonActionable.js +87 -23
  327. package/esm/pillBox/components/pillBoxItem.js +46 -8
  328. package/esm/pillBox/pillBox.js +115 -19
  329. package/esm/pillExpandable/pillExpandable.js +327 -138
  330. package/esm/rangeRaw/rangeRaw.js +480 -140
  331. package/esm/rangeRaw/utils/rangeHelper.js +203 -38
  332. package/esm/searchInputRaw/searchInputRaw.js +145 -43
  333. package/esm/skeleton/skeleton.js +45 -5
  334. package/esm/sortControl/sortControl.js +146 -41
  335. package/esm/stepperRaw/stepperRaw.js +112 -41
  336. package/esm/storybookHelpers/dataGridWithDifferentCellOptions/components/EntitiesListAction.js +178 -19
  337. package/esm/summary/summary.js +88 -7
  338. package/esm/table/actions/actionsMenu.js +165 -77
  339. package/esm/table/flexible/columnSettings.js +74 -9
  340. package/esm/table/flexible/columnsList.js +104 -42
  341. package/esm/table/flexible/columnsPopup.js +71 -19
  342. package/esm/table/nested/useNestedRows.js +161 -76
  343. package/esm/table/selectable/selectableHeader.js +174 -40
  344. package/esm/table/selectable/useSelectableRows.js +264 -190
  345. package/esm/table/sortable/sortableHeader.js +147 -74
  346. package/esm/tabs/tabs.js +221 -117
  347. package/esm/timePickerRaw/timePickerRaw.js +272 -57
  348. package/esm/toastRaw/toastRaw.js +132 -31
  349. package/esm/toggleButton/toggleButton.d.ts +0 -1
  350. package/esm/toggleButtonRaw/toggleButtonRaw.d.ts +1 -0
  351. package/esm/toggleButtonRaw/toggleButtonRaw.js +111 -18
  352. package/esm/utils/formatDate.js +995 -116
  353. package/{dist/utils/localization/translations/cs-json.js → esm/utils/localization/translations/cs.json} +11 -15
  354. package/{dist/utils/localization/translations/da-DK-json.js → esm/utils/localization/translations/da-DK.json} +31 -26
  355. package/{dist/utils/localization/translations/de-json.js → esm/utils/localization/translations/de.json} +12 -16
  356. package/esm/utils/localization/translations/en.json +308 -0
  357. package/{dist/utils/localization/translations/es-json.js → esm/utils/localization/translations/es.json} +11 -15
  358. package/{dist/utils/localization/translations/fi-FI-json.js → esm/utils/localization/translations/fi-FI.json} +31 -26
  359. package/{dist/utils/localization/translations/fr-FR-json.js → esm/utils/localization/translations/fr-FR.json} +12 -15
  360. package/{dist/utils/localization/translations/fr-json.js → esm/utils/localization/translations/fr.json} +11 -15
  361. package/{dist/utils/localization/translations/hu-HU-json.js → esm/utils/localization/translations/hu-HU.json} +31 -26
  362. package/{dist/utils/localization/translations/id-json.js → esm/utils/localization/translations/id.json} +11 -16
  363. package/{dist/utils/localization/translations/it-json.js → esm/utils/localization/translations/it.json} +11 -15
  364. package/{dist/utils/localization/translations/ja-json.js → esm/utils/localization/translations/ja.json} +11 -15
  365. package/{dist/utils/localization/translations/ko-KR-json.js → esm/utils/localization/translations/ko-KR.json} +24 -26
  366. package/{dist/utils/localization/translations/ms-json.js → esm/utils/localization/translations/ms.json} +11 -15
  367. package/{dist/utils/localization/translations/nb-NO-json.js → esm/utils/localization/translations/nb-NO.json} +31 -26
  368. package/{dist/utils/localization/translations/nl-json.js → esm/utils/localization/translations/nl.json} +11 -15
  369. package/{dist/utils/localization/translations/pl-json.js → esm/utils/localization/translations/pl.json} +11 -15
  370. package/{dist/utils/localization/translations/pt-BR-json.js → esm/utils/localization/translations/pt-BR.json} +11 -15
  371. package/{dist/utils/localization/translations/sk-SK-json.js → esm/utils/localization/translations/sk-SK.json} +31 -26
  372. package/{dist/utils/localization/translations/sv-json.js → esm/utils/localization/translations/sv.json} +11 -15
  373. package/{dist/utils/localization/translations/th-json.js → esm/utils/localization/translations/th.json} +11 -15
  374. package/{dist/utils/localization/translations/tr-json.js → esm/utils/localization/translations/tr.json} +11 -15
  375. package/{dist/utils/localization/translations/zh-Hans-json.js → esm/utils/localization/translations/zh-Hans.json} +11 -15
  376. package/{dist/utils/localization/translations/zh-TW-json.js → esm/utils/localization/translations/zh-TW.json} +11 -26
  377. package/esm/utils/localization/translationsDictionary.d.ts +2 -0
  378. package/esm/utils/localization/translationsDictionary.js +59 -0
  379. package/esm/utils/localization/useLanguage.js +1 -50
  380. package/package.json +17 -10
  381. package/dist/utils/localization/translations/cs-json.d.ts +0 -251
  382. package/dist/utils/localization/translations/da-DK-json.d.ts +0 -252
  383. package/dist/utils/localization/translations/de-json.d.ts +0 -251
  384. package/dist/utils/localization/translations/en-json.d.ts +0 -314
  385. package/dist/utils/localization/translations/en-json.js +0 -317
  386. package/dist/utils/localization/translations/es-json.d.ts +0 -251
  387. package/dist/utils/localization/translations/fi-FI-json.d.ts +0 -252
  388. package/dist/utils/localization/translations/fr-FR-json.d.ts +0 -250
  389. package/dist/utils/localization/translations/fr-json.d.ts +0 -251
  390. package/dist/utils/localization/translations/hu-HU-json.d.ts +0 -252
  391. package/dist/utils/localization/translations/id-json.d.ts +0 -252
  392. package/dist/utils/localization/translations/it-json.d.ts +0 -251
  393. package/dist/utils/localization/translations/ja-json.d.ts +0 -251
  394. package/dist/utils/localization/translations/ko-KR-json.d.ts +0 -258
  395. package/dist/utils/localization/translations/ms-json.d.ts +0 -251
  396. package/dist/utils/localization/translations/nb-NO-json.d.ts +0 -252
  397. package/dist/utils/localization/translations/nl-json.d.ts +0 -251
  398. package/dist/utils/localization/translations/pl-json.d.ts +0 -251
  399. package/dist/utils/localization/translations/pt-BR-json.d.ts +0 -251
  400. package/dist/utils/localization/translations/sk-SK-json.d.ts +0 -251
  401. package/dist/utils/localization/translations/sv-json.d.ts +0 -251
  402. package/dist/utils/localization/translations/th-json.d.ts +0 -251
  403. package/dist/utils/localization/translations/tr-json.d.ts +0 -251
  404. package/dist/utils/localization/translations/zh-Hans-json.d.ts +0 -251
  405. package/dist/utils/localization/translations/zh-TW-json.d.ts +0 -271
  406. package/esm/utils/localization/translations/cs-json.d.ts +0 -251
  407. package/esm/utils/localization/translations/da-DK-json.d.ts +0 -252
  408. package/esm/utils/localization/translations/de-json.d.ts +0 -251
  409. package/esm/utils/localization/translations/en-json.d.ts +0 -314
  410. package/esm/utils/localization/translations/en-json.js +0 -314
  411. package/esm/utils/localization/translations/es-json.d.ts +0 -251
  412. package/esm/utils/localization/translations/fi-FI-json.d.ts +0 -252
  413. package/esm/utils/localization/translations/fr-FR-json.d.ts +0 -250
  414. package/esm/utils/localization/translations/fr-json.d.ts +0 -251
  415. package/esm/utils/localization/translations/hu-HU-json.d.ts +0 -252
  416. package/esm/utils/localization/translations/id-json.d.ts +0 -252
  417. package/esm/utils/localization/translations/it-json.d.ts +0 -251
  418. package/esm/utils/localization/translations/ja-json.d.ts +0 -251
  419. package/esm/utils/localization/translations/ko-KR-json.d.ts +0 -258
  420. package/esm/utils/localization/translations/ms-json.d.ts +0 -251
  421. package/esm/utils/localization/translations/nb-NO-json.d.ts +0 -252
  422. package/esm/utils/localization/translations/nl-json.d.ts +0 -251
  423. package/esm/utils/localization/translations/pl-json.d.ts +0 -251
  424. package/esm/utils/localization/translations/pt-BR-json.d.ts +0 -251
  425. package/esm/utils/localization/translations/sk-SK-json.d.ts +0 -251
  426. package/esm/utils/localization/translations/sv-json.d.ts +0 -251
  427. package/esm/utils/localization/translations/th-json.d.ts +0 -251
  428. package/esm/utils/localization/translations/tr-json.d.ts +0 -251
  429. package/esm/utils/localization/translations/zh-Hans-json.d.ts +0 -251
  430. package/esm/utils/localization/translations/zh-TW-json.d.ts +0 -271
@@ -1,3 +1,4 @@
1
+ import { injectString } from "../../utils/localization/translationsDictionary";
1
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
3
  import { classNames } from "../../commonHelpers/classNames/classNames";
3
4
  import { Children, useMemo } from "react";
@@ -9,33 +10,77 @@ import { NavItem } from "../navItem/navItem";
9
10
  import { useLanguage } from "../../utils/localization/useLanguage";
10
11
  import { NavAddMenu } from "../navAddMenu/navAddMenu";
11
12
  import { IconMenu } from "../../icons/iconMenu";
12
- const NavHeaderToggler = ({ className }) => {
13
- const { collapsed, onCollapseToggle } = useNavContext();
14
- const { translate } = useLanguage();
15
- const isMobile = useMobile();
16
- const title = collapsed ? translate("Expand Navigation") : translate("Collapse Navigation");
17
- return isMobile
18
- ? null
19
- : _jsx("div", { className: classNames(["zen-nav-header__toggler", className || ""]), children: _jsx(NavItem, { className: "zen-nav-header__button", title: title, primaryIcon: IconMenu, collapsed: true, isMenuItem: false, onClick: () => onCollapseToggle && onCollapseToggle(!collapsed), tooltipAlignment: collapsed ? "right" : "bottom" }, "collapse-button") });
13
+ injectString("en", "Expand Navigation", "Expand Navigation");
14
+ injectString("en", "Collapse Navigation", "Collapse Navigation");
15
+ const NavHeaderToggler = ({
16
+ className
17
+ }) => {
18
+ const {
19
+ collapsed,
20
+ onCollapseToggle
21
+ } = useNavContext();
22
+ const {
23
+ translate
24
+ } = useLanguage();
25
+ const isMobile = useMobile();
26
+ const title = collapsed ? translate("Expand Navigation") : translate("Collapse Navigation");
27
+ return isMobile ? null : _jsx("div", {
28
+ className: classNames(["zen-nav-header__toggler", className || ""]),
29
+ children: _jsx(NavItem, {
30
+ className: "zen-nav-header__button",
31
+ title: title,
32
+ primaryIcon: IconMenu,
33
+ collapsed: true,
34
+ isMenuItem: false,
35
+ onClick: () => onCollapseToggle && onCollapseToggle(!collapsed),
36
+ tooltipAlignment: collapsed ? "right" : "bottom"
37
+ }, "collapse-button")
38
+ });
20
39
  };
21
40
  NavHeaderToggler.displayName = "NavHeaderToggler";
22
- const NavHeaderComponent = ({ className, logo, logoLink, imgTitle, collapsedLogo, children }) => {
23
- const { collapsed, searchOpen } = useNavContext();
24
- const isLogoImageString = useMemo(() => isImageUrl(logo), [logo]);
25
- const isCollapsedLogoImageString = useMemo(() => isImageUrl(collapsedLogo), [collapsedLogo]);
26
- const logoElement = isLogoImageString ? _jsx("img", { className: "zen-nav-header__logo-image", src: logo, alt: imgTitle }) : logo;
27
- const logoCollapsedElement = isCollapsedLogoImageString ? _jsx("img", { className: "zen-nav-header__logo-image", src: collapsedLogo, alt: imgTitle }) : collapsedLogo;
28
- const logoImage = collapsed && collapsedLogo ? logoCollapsedElement : logoElement;
29
- const logoToRender = logoImage && logoLink ? _jsx("a", { href: logoLink, className: "zen-nav-header__logo-link", children: logoImage }) : logoImage;
30
- const navChildren = Children.toArray(children)
31
- .filter(child => {
32
- const element = child;
33
- return element && element.type &&
34
- (element.type.displayName === "NavHeaderSearch" ||
35
- element.type.displayName === "NavHeaderActions" || // TODO: Left for backward compatibility, to be removed in future releases
36
- element.type.displayName === "NavAddMenu");
37
- });
38
- return _jsxs("div", { className: classNames(["zen-nav-header", collapsed ? "zen-nav-header--collapsed" : "", searchOpen ? "zen-nav-header--mode-search" : "", className || ""]), children: [collapsed ? null : _jsx(NavHeaderToggler, {}), searchOpen ? null : logoToRender, _jsxs("div", { className: "zen-nav-header__controls", children: [collapsed ? _jsx(NavHeaderToggler, {}) : null, navChildren] })] });
41
+ const NavHeaderComponent = ({
42
+ className,
43
+ logo,
44
+ logoLink,
45
+ imgTitle,
46
+ collapsedLogo,
47
+ children
48
+ }) => {
49
+ const {
50
+ collapsed,
51
+ searchOpen
52
+ } = useNavContext();
53
+ const isLogoImageString = useMemo(() => isImageUrl(logo), [logo]);
54
+ const isCollapsedLogoImageString = useMemo(() => isImageUrl(collapsedLogo), [collapsedLogo]);
55
+ const logoElement = isLogoImageString ? _jsx("img", {
56
+ className: "zen-nav-header__logo-image",
57
+ src: logo,
58
+ alt: imgTitle
59
+ }) : logo;
60
+ const logoCollapsedElement = isCollapsedLogoImageString ? _jsx("img", {
61
+ className: "zen-nav-header__logo-image",
62
+ src: collapsedLogo,
63
+ alt: imgTitle
64
+ }) : collapsedLogo;
65
+ const logoImage = collapsed && collapsedLogo ? logoCollapsedElement : logoElement;
66
+ const logoToRender = logoImage && logoLink ? _jsx("a", {
67
+ href: logoLink,
68
+ className: "zen-nav-header__logo-link",
69
+ children: logoImage
70
+ }) : logoImage;
71
+ const navChildren = Children.toArray(children).filter(child => {
72
+ const element = child;
73
+ return element && element.type && (element.type.displayName === "NavHeaderSearch" || element.type.displayName === "NavHeaderActions" ||
74
+ // TODO: Left for backward compatibility, to be removed in future releases
75
+ element.type.displayName === "NavAddMenu");
76
+ });
77
+ return _jsxs("div", {
78
+ className: classNames(["zen-nav-header", collapsed ? "zen-nav-header--collapsed" : "", searchOpen ? "zen-nav-header--mode-search" : "", className || ""]),
79
+ children: [collapsed ? null : _jsx(NavHeaderToggler, {}), searchOpen ? null : logoToRender, _jsxs("div", {
80
+ className: "zen-nav-header__controls",
81
+ children: [collapsed ? _jsx(NavHeaderToggler, {}) : null, navChildren]
82
+ })]
83
+ });
39
84
  };
40
85
  /**
41
86
  * @deprecated Use NavAddMenu instead. This component is left for backward compatibility and will be removed in future releases.
@@ -51,14 +96,14 @@ NavHeaderAction.displayName = "NavItem";
51
96
  * @beta This component is not fully ready yet and may change in future releases.
52
97
  */
53
98
  export const NavHeader = Object.assign(NavHeaderComponent, {
54
- /**
55
- * @deprecated Use NavAddMenu instead. Will be removed in future releases.
56
- */
57
- Actions: NavHeaderActions,
58
- /**
59
- * @deprecated Use NavItem instead. Will be removed in future releases.
60
- */
61
- Action: NavHeaderAction,
62
- Search: NavHeaderSearch
99
+ /**
100
+ * @deprecated Use NavAddMenu instead. Will be removed in future releases.
101
+ */
102
+ Actions: NavHeaderActions,
103
+ /**
104
+ * @deprecated Use NavItem instead. Will be removed in future releases.
105
+ */
106
+ Action: NavHeaderAction,
107
+ Search: NavHeaderSearch
63
108
  });
64
- NavHeader.displayName = "NavHeader";
109
+ NavHeader.displayName = "NavHeader";
@@ -1,3 +1,4 @@
1
+ import { injectString } from "../../../utils/localization/translationsDictionary";
1
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
3
  import { useCallback } from "react";
3
4
  import { useMobile } from "../../../commonHelpers/hooks/useMobile";
@@ -8,32 +9,85 @@ import { classNames } from "../../../commonHelpers/classNames/classNames";
8
9
  import { IconSearch } from "../../../icons/iconSearch";
9
10
  import { SearchInput } from "../../../searchInput/searchInput";
10
11
  import { NavItem } from "../../navItem/navItem";
11
- export const NavHeaderSearch = ({ className, onSearch }) => {
12
- const isMobile = useMobile();
13
- const { searchOpen, onSearchToggle, searchTerm = "", onSearch: contextOnSearch, collapsed } = useNavContext();
14
- const { translate } = useLanguage();
15
- const onSearchCallback = useCallback((term) => {
16
- onSearch === null || onSearch === void 0 ? void 0 : onSearch(term);
17
- }, [onSearch]);
18
- const debouncedSearch = useDebounce(onSearchCallback);
19
- const handleChange = useCallback((term) => {
20
- contextOnSearch === null || contextOnSearch === void 0 ? void 0 : contextOnSearch(term);
21
- debouncedSearch(term);
22
- }, [debouncedSearch, contextOnSearch]);
23
- const handleBlur = useCallback(() => {
24
- // On desktop, close search if term is empty
25
- if (!isMobile && !searchTerm.trim()) {
26
- onSearchToggle === null || onSearchToggle === void 0 ? void 0 : onSearchToggle(false);
27
- }
28
- }, [isMobile, searchTerm, onSearchToggle]);
29
- const handleKeyDown = useCallback((event) => {
30
- if (event.key === "Escape") {
31
- handleChange("");
32
- onSearchToggle === null || onSearchToggle === void 0 ? void 0 : onSearchToggle(false);
33
- }
34
- }, [handleChange, onSearchToggle]);
35
- return _jsxs("div", { className: classNames(["zen-nav-header-search", className || ""]), children: [!searchOpen && !isMobile
36
- ? _jsx(NavItem, { title: translate("Search"), className: "zen-nav-header-search__button", primaryIcon: IconSearch, collapsed: true, isMenuItem: false, onClick: () => onSearchToggle === null || onSearchToggle === void 0 ? void 0 : onSearchToggle(true), tooltipAlignment: collapsed ? "right" : "bottom" })
37
- : null, searchOpen || isMobile ? _jsx(SearchInput, { autoFocus: true, ariaLabel: translate("Search"), value: searchTerm, placeholder: translate("Search"), className: "zen-nav-header-search__input", onChange: handleChange, onBlur: handleBlur, onKeyDown: handleKeyDown }) : null] });
12
+ injectString("cs", "Search", "Hledat");
13
+ injectString("da-DK", "Search", "S\xF8g");
14
+ injectString("de", "Search", "Suche");
15
+ injectString("en", "Search", "Search");
16
+ injectString("es", "Search", "Buscar");
17
+ injectString("fi-FI", "Search", "Etsi");
18
+ injectString("fr", "Search", "Rechercher");
19
+ injectString("fr-FR", "Search", "Rechercher");
20
+ injectString("hu-HU", "Search", "Keres\xE9s");
21
+ injectString("id", "Search", "Cari");
22
+ injectString("it", "Search", "Cercare");
23
+ injectString("ja", "Search", "\u691C\u7D22");
24
+ injectString("ko-KR", "Search", "\uAC80\uC0C9");
25
+ injectString("ms", "Search", "Cari");
26
+ injectString("nb-NO", "Search", "S\xF8k");
27
+ injectString("nl", "Search", "Zoeken");
28
+ injectString("pl", "Search", "Wyszukaj");
29
+ injectString("pt-BR", "Search", "Pesquisar");
30
+ injectString("sk-SK", "Search", "H\u013Eadaj.");
31
+ injectString("sv", "Search", "S\xF6k");
32
+ injectString("th", "Search", "\u0E04\u0E49\u0E19\u0E2B\u0E32");
33
+ injectString("tr", "Search", "Ara");
34
+ injectString("zh-Hans", "Search", "\u641C\u7D22");
35
+ injectString("zh-TW", "Search", "\u641C\u5C0B");
36
+ export const NavHeaderSearch = ({
37
+ className,
38
+ onSearch
39
+ }) => {
40
+ const isMobile = useMobile();
41
+ const {
42
+ searchOpen,
43
+ onSearchToggle,
44
+ searchTerm = "",
45
+ onSearch: contextOnSearch,
46
+ collapsed
47
+ } = useNavContext();
48
+ const {
49
+ translate
50
+ } = useLanguage();
51
+ const onSearchCallback = useCallback(term => {
52
+ onSearch === null || onSearch === void 0 ? void 0 : onSearch(term);
53
+ }, [onSearch]);
54
+ const debouncedSearch = useDebounce(onSearchCallback);
55
+ const handleChange = useCallback(term => {
56
+ contextOnSearch === null || contextOnSearch === void 0 ? void 0 : contextOnSearch(term);
57
+ debouncedSearch(term);
58
+ }, [debouncedSearch, contextOnSearch]);
59
+ const handleBlur = useCallback(() => {
60
+ // On desktop, close search if term is empty
61
+ if (!isMobile && !searchTerm.trim()) {
62
+ onSearchToggle === null || onSearchToggle === void 0 ? void 0 : onSearchToggle(false);
63
+ }
64
+ }, [isMobile, searchTerm, onSearchToggle]);
65
+ const handleKeyDown = useCallback(event => {
66
+ if (event.key === "Escape") {
67
+ handleChange("");
68
+ onSearchToggle === null || onSearchToggle === void 0 ? void 0 : onSearchToggle(false);
69
+ }
70
+ }, [handleChange, onSearchToggle]);
71
+ return _jsxs("div", {
72
+ className: classNames(["zen-nav-header-search", className || ""]),
73
+ children: [!searchOpen && !isMobile ? _jsx(NavItem, {
74
+ title: translate("Search"),
75
+ className: "zen-nav-header-search__button",
76
+ primaryIcon: IconSearch,
77
+ collapsed: true,
78
+ isMenuItem: false,
79
+ onClick: () => onSearchToggle === null || onSearchToggle === void 0 ? void 0 : onSearchToggle(true),
80
+ tooltipAlignment: collapsed ? "right" : "bottom"
81
+ }) : null, searchOpen || isMobile ? _jsx(SearchInput, {
82
+ autoFocus: true,
83
+ ariaLabel: translate("Search"),
84
+ value: searchTerm,
85
+ placeholder: translate("Search"),
86
+ className: "zen-nav-header-search__input",
87
+ onChange: handleChange,
88
+ onBlur: handleBlur,
89
+ onKeyDown: handleKeyDown
90
+ }) : null]
91
+ });
38
92
  };
39
- NavHeaderSearch.displayName = "NavHeaderSearch";
93
+ NavHeaderSearch.displayName = "NavHeaderSearch";
@@ -7,9 +7,9 @@ interface INavItemCommon extends IZenComponentProps {
7
7
  title: string;
8
8
  primaryIcon?: FC<IIcon> | ReactNode;
9
9
  secondaryIcon?: FC<IIcon>;
10
- tertiaryIcon?: FC<IIcon>;
11
- tertiaryIconAriaLabel?: string;
12
- onTertiaryIconClick?: (e: React.MouseEvent) => void;
10
+ actionIcon?: FC<IIcon>;
11
+ actionIconTitle?: string;
12
+ onActionIconClick?: (e: React.MouseEvent) => void;
13
13
  isBeta?: boolean;
14
14
  counter?: string;
15
15
  collapsed?: boolean;
@@ -24,44 +24,56 @@ const SUBMENU_ICON_SIZE = "large";
24
24
  export const NavItemContext = createContext({ parentLevel: 0 });
25
25
  const defaultTooltipAlignment = "right";
26
26
  const isLinkNavItem = (item) => !!item.link;
27
- const NavItemContent = ({ primaryIcon, secondaryIcon, tertiaryIcon, tertiaryIconAriaLabel = "", onTertiaryIconClick, isBeta, counter, collapsed, hasSubmenu, iconClass, level = 1, children }) => {
27
+ const NavItemContent = ({ primaryIcon, secondaryIcon, isBeta, counter, collapsed, hasSubmenu, iconClass, level = 1, children }) => {
28
28
  const primaryIconRef = useRef(null);
29
29
  const PrimaryIconComponent = typeof primaryIcon === "function" ? primaryIcon : null;
30
30
  const SecondaryIconComponent = secondaryIcon;
31
- const TertiaryIconComponent = tertiaryIcon;
32
31
  const iconSize = level > 1 ? SUBMENU_ICON_SIZE : ICON_SIZE;
33
32
  const primaryIconComponent = primaryIcon ? (_jsx("span", { ref: primaryIconRef, className: classNames(["zen-nav-item__icon", counter ? "zen-nav-item__icon--with-counter" : "", iconClass || ""]), children: PrimaryIconComponent ? _jsx(PrimaryIconComponent, { size: iconSize }) : primaryIcon })) : null;
34
- const handleTertiaryIconClick = (e) => {
33
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "zen-nav-item__content-left", children: [isBeta && !collapsed ? (_jsx("span", { className: "zen-nav-item__beta", children: _jsx(IconBeta, { size: "big" }) })) : null, primaryIconComponent, SecondaryIconComponent && !collapsed ? (_jsx("span", { className: "zen-nav-item__icon", children: _jsx(SecondaryIconComponent, { size: iconSize }) })) : null, !collapsed ? _jsx("span", { className: "zen-nav-item__title", children: children }) : null] }), !collapsed && (counter || hasSubmenu) ? (_jsxs("div", { className: "zen-nav-item__content-right", children: [counter ? _jsx("div", { className: "zen-nav-item__counter", children: counter }) : null, hasSubmenu ? _jsx(IconChevronRight, { className: "zen-nav-item__title-icon", size: iconSize }) : null] })) : null] }));
34
+ };
35
+ const NavItemAction = ({ actionIcon, actionIconTitle = "", onActionIconClick, collapsed, level = 1 }) => {
36
+ const ActionIconComponent = actionIcon;
37
+ const iconSize = level > 1 ? SUBMENU_ICON_SIZE : ICON_SIZE;
38
+ if (!ActionIconComponent || collapsed) {
39
+ return null;
40
+ }
41
+ const handleActionIconClick = (e) => {
35
42
  e.stopPropagation();
36
- onTertiaryIconClick === null || onTertiaryIconClick === void 0 ? void 0 : onTertiaryIconClick(e);
43
+ onActionIconClick === null || onActionIconClick === void 0 ? void 0 : onActionIconClick(e);
37
44
  };
38
- return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "zen-nav-item__content-left", children: [isBeta && !collapsed ? (_jsx("span", { className: "zen-nav-item__beta", children: _jsx(IconBeta, { size: "big" }) })) : null, primaryIconComponent, SecondaryIconComponent && !collapsed ? (_jsx("span", { className: "zen-nav-item__icon", children: _jsx(SecondaryIconComponent, { size: iconSize }) })) : null, !collapsed ? _jsx("span", { className: "zen-nav-item__title", children: children }) : null] }), !collapsed && (counter || hasSubmenu || TertiaryIconComponent) ? (_jsxs("div", { className: "zen-nav-item__content-right", children: [counter ? _jsx("div", { className: "zen-nav-item__counter", children: counter }) : null, TertiaryIconComponent && !hasSubmenu ? (_jsx("button", { type: "button", className: "zen-nav-item__tertiary-icon-button", onClick: handleTertiaryIconClick, "aria-label": tertiaryIconAriaLabel, children: _jsx(TertiaryIconComponent, { size: iconSize }) })) : null, hasSubmenu ? _jsx(IconChevronRight, { className: "zen-nav-item__title-icon", size: iconSize }) : null] })) : null] }));
45
+ return (_jsx("button", { type: "button", className: "zen-nav-item__action", onClick: handleActionIconClick, "aria-label": actionIconTitle, title: actionIconTitle, children: _jsx(ActionIconComponent, { size: iconSize }) }));
39
46
  };
47
+ const getWrapperClassName = ({ className, collapsed, active, isMobile, hasNested, isNested, isLink }) => classNames([
48
+ "zen-nav-item",
49
+ isLink ? "zen-nav-item--link" : "zen-nav-item--button",
50
+ isMobile ? "zen-nav-item--mobile" : "",
51
+ collapsed ? "zen-nav-item--collapsed" : "",
52
+ active ? "zen-nav-item--active" : "",
53
+ hasNested ? "zen-nav-item--has-nested" : "",
54
+ isNested ? "zen-nav-item--nested" : "",
55
+ className || ""
56
+ ]);
40
57
  const LinkNavItem = (_a) => {
41
- var { className, title, collapsed, active, link, isExternalLink, tabIndex, isMenuItem = true, tooltipAlignment = defaultTooltipAlignment } = _a, rest = __rest(_a, ["className", "title", "collapsed", "active", "link", "isExternalLink", "tabIndex", "isMenuItem", "tooltipAlignment"]);
58
+ var { className, title, collapsed, active, link, isExternalLink, tabIndex, isMenuItem = true, tooltipAlignment = defaultTooltipAlignment, actionIcon, actionIconTitle, onActionIconClick } = _a, rest = __rest(_a, ["className", "title", "collapsed", "active", "link", "isExternalLink", "tabIndex", "isMenuItem", "tooltipAlignment", "actionIcon", "actionIconTitle", "onActionIconClick"]);
42
59
  const isMobile = useMobile();
43
60
  const { parentLevel = 0, closeParentMenu } = useContext(NavItemContext);
44
61
  const { onNavigate } = useNavContext();
45
- const item = (_jsx("a", { href: link, "aria-label": title, title: title, target: isExternalLink ? "_blank" : undefined, rel: isExternalLink ? "noopener noreferrer" : undefined, tabIndex: tabIndex, role: isMenuItem ? "menuitem" : undefined, onClick: () => {
62
+ const currentLevel = parentLevel + 1;
63
+ const linkElement = (_jsx("a", { href: link, "aria-label": title, title: title, target: isExternalLink ? "_blank" : undefined, rel: isExternalLink ? "noopener noreferrer" : undefined, tabIndex: tabIndex, role: isMenuItem ? "menuitem" : undefined, onClick: () => {
46
64
  closeParentMenu && closeParentMenu();
47
65
  onNavigate && onNavigate();
48
- }, className: classNames([
49
- "zen-link--light",
50
- "zen-nav-item",
51
- "zen-nav-item--link",
52
- isMobile ? "zen-nav-item--mobile" : "",
53
- collapsed ? "zen-nav-item--collapsed" : "",
54
- active ? "zen-nav-item--active" : "",
55
- className || ""
56
- ]), children: _jsxs(NavItemContent, Object.assign({ title: title, collapsed: collapsed, level: parentLevel + 1 }, rest, { children: [_jsx("span", { className: "zen-nav-item__title-text", children: title }), isExternalLink && !collapsed ? _jsx(IconOpen2, { className: "zen-nav-item__title-icon", size: ICON_SIZE }) : null] })) }));
57
- return collapsed ? (_jsx(Tooltip, { trigger: item, alignment: tooltipAlignment, children: title })) : (item);
66
+ }, className: "zen-link--light zen-nav-item__main", children: _jsxs(NavItemContent, Object.assign({ title: title, collapsed: collapsed, level: currentLevel }, rest, { children: [_jsx("span", { className: "zen-nav-item__title-text", children: title }), isExternalLink && !collapsed ? _jsx(IconOpen2, { className: "zen-nav-item__title-icon", size: ICON_SIZE }) : null] })) }));
67
+ const item = collapsed ? (_jsx(Tooltip, { trigger: linkElement, alignment: tooltipAlignment, children: title })) : (linkElement);
68
+ return (_jsxs("div", { className: getWrapperClassName({ className, collapsed, active, isMobile, isLink: true }), children: [item, _jsx(NavItemAction, { actionIcon: actionIcon, actionIconTitle: actionIconTitle, onActionIconClick: onActionIconClick, collapsed: collapsed, level: currentLevel })] }));
58
69
  };
59
70
  LinkNavItem.displayName = "LinkNavItem";
60
71
  const ButtonNavItem = (_a) => {
61
- var { className, title, onClick, collapsed, active, children, tabIndex, menuAlignment = "right-top", isMenuItem = true, tooltipAlignment = defaultTooltipAlignment } = _a, rest = __rest(_a, ["className", "title", "onClick", "collapsed", "active", "children", "tabIndex", "menuAlignment", "isMenuItem", "tooltipAlignment"]);
72
+ var { className, title, onClick, collapsed, active, children, tabIndex, menuAlignment = "right-top", isMenuItem = true, tooltipAlignment = defaultTooltipAlignment, actionIcon, actionIconTitle, onActionIconClick } = _a, rest = __rest(_a, ["className", "title", "onClick", "collapsed", "active", "children", "tabIndex", "menuAlignment", "isMenuItem", "tooltipAlignment", "actionIcon", "actionIconTitle", "onActionIconClick"]);
62
73
  const [menuOpen, setMenuOpen] = useState(false);
63
74
  const { parentLevel = 0, closeParentMenu } = useContext(NavItemContext);
64
75
  const triggerRef = useRef(null);
76
+ const currentLevel = parentLevel + 1;
65
77
  const validChildren = Children.toArray(children).filter(child => {
66
78
  const element = child;
67
79
  return element.type && element.type.displayName === "NavItem";
@@ -84,20 +96,11 @@ const ButtonNavItem = (_a) => {
84
96
  }
85
97
  };
86
98
  const isMobile = useMobile();
87
- const buttonElement = (_jsx("button", { ref: triggerRef, "aria-label": title, title: title, tabIndex: tabIndex, role: isMenuItem ? "menuitem" : undefined, className: classNames([
88
- "zen-nav-item",
89
- "zen-nav-item--button",
90
- isMobile ? "zen-nav-item--mobile" : "",
91
- collapsed ? "zen-nav-item--collapsed" : "",
92
- active ? "zen-nav-item--active" : "",
93
- hasNestedItems ? "zen-nav-item--has-nested" : "",
94
- hasNestedItems && menuOpen ? "zen-nav-item--active" : "",
95
- className || ""
96
- ]), onClick: handleClick, onKeyDown: handleKeyPress, children: _jsx(NavItemContent, Object.assign({ title: title, collapsed: collapsed, hasSubmenu: hasNestedItems, level: parentLevel + 1 }, rest, { children: _jsx("span", { className: "zen-nav-item__title-text", children: title }) })) }));
99
+ const isActive = active || (hasNestedItems && menuOpen);
100
+ const buttonElement = (_jsx("button", { ref: triggerRef, "aria-label": title, title: title, tabIndex: tabIndex, role: isMenuItem ? "menuitem" : undefined, className: "zen-nav-item__main", onClick: handleClick, onKeyDown: handleKeyPress, children: _jsx(NavItemContent, Object.assign({ title: title, collapsed: collapsed, hasSubmenu: hasNestedItems, level: currentLevel }, rest, { children: _jsx("span", { className: "zen-nav-item__title-text", children: title }) })) }));
97
101
  const trigger = collapsed ? (_jsx(Tooltip, { trigger: buttonElement, alignment: tooltipAlignment, children: title })) : (buttonElement);
98
102
  if (hasNestedItems) {
99
103
  // Process children to add appropriate level classes while allowing unlimited nesting
100
- const currentLevel = parentLevel + 1;
101
104
  const childLevel = currentLevel + 1;
102
105
  const processedChildren = validChildren.map(child => {
103
106
  const childElement = child;
@@ -115,9 +118,9 @@ const ButtonNavItem = (_a) => {
115
118
  setMenuOpen(false);
116
119
  closeParentMenu && closeParentMenu();
117
120
  };
118
- return (_jsxs(_Fragment, { children: [trigger, _jsx(NavItemContext, { value: { parentLevel: currentLevel, closeParentMenu: closeLevelMenu }, children: _jsx(ControlledMenu, { triggerRef: triggerRef, isOpen: menuOpen, setIsOpen: setMenuOpen, title: title, alignment: menuAlignment, className: classNames([popupClass, isMobile ? popupClassMobile : ""]), listClassName: classNames([popupListClass, isMobile ? popupListClassMobile : ""]), children: processedChildren }) })] }));
121
+ return (_jsxs("div", { className: getWrapperClassName({ className, collapsed, active: isActive, isMobile, hasNested: hasNestedItems }), children: [trigger, _jsx(NavItemContext, { value: { parentLevel: currentLevel, closeParentMenu: closeLevelMenu }, children: _jsx(ControlledMenu, { triggerRef: triggerRef, isOpen: menuOpen, setIsOpen: setMenuOpen, title: title, alignment: menuAlignment, className: classNames([popupClass, isMobile ? popupClassMobile : ""]), listClassName: classNames([popupListClass, isMobile ? popupListClassMobile : ""]), children: processedChildren }) })] }));
119
122
  }
120
- return trigger;
123
+ return (_jsxs("div", { className: getWrapperClassName({ className, collapsed, active: isActive, isMobile, hasNested: hasNestedItems }), children: [trigger, _jsx(NavItemAction, { actionIcon: actionIcon, actionIconTitle: actionIconTitle, onActionIconClick: onActionIconClick, collapsed: collapsed, level: currentLevel })] }));
121
124
  };
122
125
  ButtonNavItem.displayName = "ButtonNavItem";
123
126
  /**
@@ -126,7 +129,6 @@ ButtonNavItem.displayName = "ButtonNavItem";
126
129
  export const NavItem = (props) => {
127
130
  const isLink = isLinkNavItem(props);
128
131
  const { collapsed } = useNavContext();
129
- return isLink ? (_jsx(LinkNavItem, Object.assign({ collapsed: collapsed }, props)) // Allow to override collapsed prop from context
130
- ) : (_jsx(ButtonNavItem, Object.assign({ collapsed: collapsed }, props)));
132
+ return isLink ? (_jsx(LinkNavItem, Object.assign({ collapsed: collapsed }, props))) : (_jsx(ButtonNavItem, Object.assign({ collapsed: collapsed }, props)));
131
133
  };
132
134
  NavItem.displayName = "NavItem";
@@ -1,3 +1,4 @@
1
+ import { injectString } from "../../utils/localization/translationsDictionary";
1
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
3
  import { Children, cloneElement } from "react";
3
4
  import { classNames } from "../../commonHelpers/classNames/classNames";
@@ -9,23 +10,63 @@ import { generateId } from "../../commonHelpers/generateId";
9
10
  /**
10
11
  * @beta This component is not fully ready yet and may change in future releases.
11
12
  */
12
- export const NavMobileBar = ({ className, children, isMenuOpen, onMenuToggle }) => {
13
- const { translate } = useLanguage();
14
- const mobileBarClassNames = classNames([
15
- "zen-nav-mobile-bar",
16
- className !== null && className !== void 0 ? className : ""
17
- ]);
18
- const items = Children.toArray(children).filter(child => {
19
- const element = child;
20
- return element.type && element.type.displayName === "NavItem";
21
- }).map(child => {
22
- const element = child;
23
- const existingClassName = element.props.className || "";
24
- const key = generateId();
25
- return cloneElement(element, Object.assign(Object.assign({}, element.props), { key, collapsed: true, className: classNames([
26
- existingClassName,
27
- "zen-nav-item--mobile-bar"
28
- ]), tooltipAlignment: "top" }));
29
- });
30
- return _jsxs("div", { className: mobileBarClassNames, children: [items, _jsx(NavItem, { className: "zen-nav-item--mobile-bar", title: translate("More"), primaryIcon: isMenuOpen ? IconClose : IconMenu, collapsed: true, onClick: onMenuToggle, tooltipAlignment: "top" }, "nav-mobile-bar-more-button")] });
31
- };
13
+ injectString("cs", "More", "V\xEDce");
14
+ injectString("da-DK", "More", "Mere");
15
+ injectString("de", "More", "Mehr");
16
+ injectString("en", "More", "More");
17
+ injectString("es", "More", "M\xE1s");
18
+ injectString("fi-FI", "More", "Lis\xE4\xE4");
19
+ injectString("fr", "More", "Plus");
20
+ injectString("fr-FR", "More", "En savoir plus");
21
+ injectString("hu-HU", "More", "M\xE9g t\xF6bb.");
22
+ injectString("id", "More", "Lainnya");
23
+ injectString("it", "More", "Altro");
24
+ injectString("ja", "More", "\u305D\u306E\u4ED6");
25
+ injectString("ko-KR", "More", "\uC790\uC138\uD788");
26
+ injectString("ms", "More", "Lagi");
27
+ injectString("nb-NO", "More", "Mer");
28
+ injectString("nl", "More", "Meer");
29
+ injectString("pl", "More", "Wi\u0119cej");
30
+ injectString("pt-BR", "More", "Mais");
31
+ injectString("sk-SK", "More", "Viac");
32
+ injectString("sv", "More", "Mer");
33
+ injectString("th", "More", "\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E15\u0E34\u0E21");
34
+ injectString("tr", "More", "Di\u011Fer");
35
+ injectString("zh-Hans", "More", "\u66F4\u591A");
36
+ injectString("zh-TW", "More", "\u66F4\u591A");
37
+ export const NavMobileBar = ({
38
+ className,
39
+ children,
40
+ isMenuOpen,
41
+ onMenuToggle
42
+ }) => {
43
+ const {
44
+ translate
45
+ } = useLanguage();
46
+ const mobileBarClassNames = classNames(["zen-nav-mobile-bar", className !== null && className !== void 0 ? className : ""]);
47
+ const items = Children.toArray(children).filter(child => {
48
+ const element = child;
49
+ return element.type && element.type.displayName === "NavItem";
50
+ }).map(child => {
51
+ const element = child;
52
+ const existingClassName = element.props.className || "";
53
+ const key = generateId();
54
+ return cloneElement(element, Object.assign(Object.assign({}, element.props), {
55
+ key,
56
+ collapsed: true,
57
+ className: classNames([existingClassName, "zen-nav-item--mobile-bar"]),
58
+ tooltipAlignment: "top"
59
+ }));
60
+ });
61
+ return _jsxs("div", {
62
+ className: mobileBarClassNames,
63
+ children: [items, _jsx(NavItem, {
64
+ className: "zen-nav-item--mobile-bar",
65
+ title: translate("More"),
66
+ primaryIcon: isMenuOpen ? IconClose : IconMenu,
67
+ collapsed: true,
68
+ onClick: onMenuToggle,
69
+ tooltipAlignment: "top"
70
+ }, "nav-mobile-bar-more-button")]
71
+ });
72
+ };
@@ -1,3 +1,4 @@
1
+ import { injectString } from "../utils/localization/translationsDictionary";
1
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
3
  import { createElement, useCallback } from "react";
3
4
  import PushNotification from "./pushNotification/pushNotification";
@@ -10,22 +11,117 @@ import { IconHexonalWarning } from "../icons/iconHexonalWarning";
10
11
  import { IconCheckRadio } from "../icons/iconCheckRadio";
11
12
  import { IconDiamondWarning } from "../icons/iconDiamondWarning";
12
13
  import { useLanguage } from "../utils/localization/useLanguage";
13
- export const Notification = ({ id, isCollapsible = true, type, title, text, footerButtons, className, onClose, isOpen = true, ref }) => {
14
- const getIcon = useCallback((t) => {
15
- switch (t) {
16
- case "error": return IconHexonalWarning;
17
- case "success": return IconCheckRadio;
18
- case "warning": return IconDiamondWarning;
19
- case "info":
20
- default: return IconInfoCircle;
21
- }
22
- }, []);
23
- const { translate } = useLanguage();
24
- return _jsx(PushNotification, { isOpen: isOpen, children: _jsxs("div", { ref: ref, className: `zen-push zen-push--${type || "info"} ${className || ""}`, id: id, children: [_jsxs("div", { className: "zen-push__content", children: [_jsxs("div", { className: "zen-push__header", children: [_jsx("div", { className: "zen-push__icon", children: createElement(getIcon(type || "info"), {
25
- size: "huge",
26
- className: `zen-push__icon--${type || "info"}`
27
- }) }), _jsx("div", { className: `zen-push__title zen-push__title--${type || "info"}`, children: title })] }), _jsxs("div", { className: "zen-push__body", children: [_jsx("div", { className: "zen-push__text", children: text }), _jsx("div", { className: "zen-push__body-buttons", children: footerButtons && _jsxs("div", { className: "zen-push__body-buttons", children: [footerButtons.teritary && _jsx(Button, { title: footerButtons.teritary.title, type: ButtonType.Tertiary, className: `zen-push__button zen-push__tertiary-button zen-push__tertiary-button--${type || "info"}`, onClick: footerButtons.teritary.onClick, link: footerButtons.teritary.link, children: footerButtons.teritary.text }), footerButtons.primary && _jsx(Button, { onClick: footerButtons.primary.onClick, link: footerButtons.primary.link, className: "zen-push__button zen-push__primary-button zen-push__primary-button--" + (type || "info"), title: footerButtons.primary.title, type: ButtonType.Primary, children: footerButtons.primary.text })] }) })] })] }), isCollapsible && _jsx("div", { className: "zen-push__actions", children: _jsx("button", { type: "button", className: classNames(["zen-push__close-button", `zen-push__close-button--${type || "info"}`]), onClick: onClose, title: translate("Close"), "aria-label": translate("Close"), children: _jsx(IconCrossThin, {}) }) })] }) });
14
+ injectString("cs", "Close", "Zav\u0159\xEDt");
15
+ injectString("da-DK", "Close", "Luk");
16
+ injectString("de", "Close", "Schlie\xDFen");
17
+ injectString("en", "Close", "Close");
18
+ injectString("es", "Close", "Cerrar");
19
+ injectString("fi-FI", "Close", "Sulje");
20
+ injectString("fr", "Close", "Fermer");
21
+ injectString("fr-FR", "Close", "Fermer");
22
+ injectString("hu-HU", "Close", "Z\xE1rd be.");
23
+ injectString("id", "Close", "Tutup");
24
+ injectString("it", "Close", "Chiudere");
25
+ injectString("ja", "Close", "\u9589\u3058\u308B");
26
+ injectString("ko-KR", "Close", "\uB2EB\uAE30");
27
+ injectString("ms", "Close", "Tutup");
28
+ injectString("nb-NO", "Close", "Lukk");
29
+ injectString("nl", "Close", "Sluiten");
30
+ injectString("pl", "Close", "Zamknij");
31
+ injectString("pt-BR", "Close", "Fechar");
32
+ injectString("sk-SK", "Close", "Zatvor");
33
+ injectString("sv", "Close", "St\xE4ng");
34
+ injectString("th", "Close", "\u0E1B\u0E34\u0E14");
35
+ injectString("tr", "Close", "Kapat");
36
+ injectString("zh-Hans", "Close", "\u5173\u95ED");
37
+ injectString("zh-TW", "Close", "\u95DC\u9589");
38
+ export const Notification = ({
39
+ id,
40
+ isCollapsible = true,
41
+ type,
42
+ title,
43
+ text,
44
+ footerButtons,
45
+ className,
46
+ onClose,
47
+ isOpen = true,
48
+ ref
49
+ }) => {
50
+ const getIcon = useCallback(t => {
51
+ switch (t) {
52
+ case "error":
53
+ return IconHexonalWarning;
54
+ case "success":
55
+ return IconCheckRadio;
56
+ case "warning":
57
+ return IconDiamondWarning;
58
+ case "info":
59
+ default:
60
+ return IconInfoCircle;
61
+ }
62
+ }, []);
63
+ const {
64
+ translate
65
+ } = useLanguage();
66
+ return _jsx(PushNotification, {
67
+ isOpen: isOpen,
68
+ children: _jsxs("div", {
69
+ ref: ref,
70
+ className: `zen-push zen-push--${type || "info"} ${className || ""}`,
71
+ id: id,
72
+ children: [_jsxs("div", {
73
+ className: "zen-push__content",
74
+ children: [_jsxs("div", {
75
+ className: "zen-push__header",
76
+ children: [_jsx("div", {
77
+ className: "zen-push__icon",
78
+ children: createElement(getIcon(type || "info"), {
79
+ size: "huge",
80
+ className: `zen-push__icon--${type || "info"}`
81
+ })
82
+ }), _jsx("div", {
83
+ className: `zen-push__title zen-push__title--${type || "info"}`,
84
+ children: title
85
+ })]
86
+ }), _jsxs("div", {
87
+ className: "zen-push__body",
88
+ children: [_jsx("div", {
89
+ className: "zen-push__text",
90
+ children: text
91
+ }), _jsx("div", {
92
+ className: "zen-push__body-buttons",
93
+ children: footerButtons && _jsxs("div", {
94
+ className: "zen-push__body-buttons",
95
+ children: [footerButtons.teritary && _jsx(Button, {
96
+ title: footerButtons.teritary.title,
97
+ type: ButtonType.Tertiary,
98
+ className: `zen-push__button zen-push__tertiary-button zen-push__tertiary-button--${type || "info"}`,
99
+ onClick: footerButtons.teritary.onClick,
100
+ link: footerButtons.teritary.link,
101
+ children: footerButtons.teritary.text
102
+ }), footerButtons.primary && _jsx(Button, {
103
+ onClick: footerButtons.primary.onClick,
104
+ link: footerButtons.primary.link,
105
+ className: "zen-push__button zen-push__primary-button zen-push__primary-button--" + (type || "info"),
106
+ title: footerButtons.primary.title,
107
+ type: ButtonType.Primary,
108
+ children: footerButtons.primary.text
109
+ })]
110
+ })
111
+ })]
112
+ })]
113
+ }), isCollapsible && _jsx("div", {
114
+ className: "zen-push__actions",
115
+ children: _jsx("button", {
116
+ type: "button",
117
+ className: classNames(["zen-push__close-button", `zen-push__close-button--${type || "info"}`]),
118
+ onClick: onClose,
119
+ title: translate("Close"),
120
+ "aria-label": translate("Close"),
121
+ children: _jsx(IconCrossThin, {})
122
+ })
123
+ })]
124
+ })
125
+ });
28
126
  };
29
- export const TRANSLATIONS = [
30
- "Close"
31
- ];
127
+ export const TRANSLATIONS = ["Close"];