@geotab/zenith 3.16.0-beta.1 → 3.16.0-beta.3

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 (383) hide show
  1. package/README.md +17 -10
  2. package/dist/absolute/absolute.js +1 -1
  3. package/dist/advancedGroupsFilter/advancedGroupsFilter.js +3 -3
  4. package/dist/advancedGroupsFilter/advancedGroupsFilterForm.js +2 -2
  5. package/dist/advancedGroupsFilter/advancedGroupsFilterFormSection.js +7 -7
  6. package/dist/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.js +1 -1
  7. package/dist/alertRaw/alertRaw.js +1 -1
  8. package/dist/banner/bannerMultipLine.js +1 -1
  9. package/dist/banner/bannerSingleLine.js +1 -1
  10. package/dist/banner/utils/useSummaryBannerProp.js +1 -1
  11. package/dist/betaPill/betaPill.js +4 -4
  12. package/dist/bookmark/bookmark.js +2 -2
  13. package/dist/bulkEditControl/bulkEditControl.js +5 -5
  14. package/dist/calendar/calendar.js +30 -30
  15. package/dist/calendar/calendarUtils.js +6 -6
  16. package/dist/card/card.js +1 -1
  17. package/dist/chart/accessibleChart/accessibleChartNarrative.js +13 -13
  18. package/dist/chart/accessibleChart/accessibleChartTable.js +5 -5
  19. package/dist/chart/accessibleChart/generatePieNarrative.js +6 -6
  20. package/dist/chart/barChart.js +1 -1
  21. package/dist/chart/chart.js +1 -1
  22. package/dist/chart/chartAxis/chartAxis.js +2 -2
  23. package/dist/chart/lineChart.js +1 -1
  24. package/dist/chart/pieChart.js +1 -1
  25. package/dist/chart/plugins/linePlugin/getInterpolatedValue.d.ts +2 -2
  26. package/dist/chart/plugins/linePlugin/getInterpolatedValue.js +3 -2
  27. package/dist/chart/plugins/linePlugin/linePlugin.js +2 -1
  28. package/dist/chart/utils/getFormattedLabel.js +5 -1
  29. package/dist/checkbox/checkbox.d.ts +2 -1
  30. package/dist/checkbox/checkbox.js +2 -2
  31. package/dist/checkboxListWithAction/checkboxListWithAction.js +5 -4
  32. package/dist/chip/chip.js +1 -1
  33. package/dist/columnsSelector/columnsSelector.js +2 -2
  34. package/dist/columnsSelector/columnsTab/columnsTab.js +1 -1
  35. package/dist/columnsSelector/columnsTabGroup/columnsTabGroup.js +1 -1
  36. package/dist/commonHelpers/hooks/useTrapFocus.d.ts +0 -9
  37. package/dist/commonHelpers/hooks/useTrapFocus.js +14 -66
  38. package/dist/controlledPopup/controlledPopup.d.ts +1 -1
  39. package/dist/controlledPopup/controlledPopup.js +17 -3
  40. package/dist/dataFeed/feedExpandControl/feedExpandControl.js +2 -2
  41. package/dist/dataGrid/columns/checkboxColumn/checkboxCell.d.ts +2 -1
  42. package/dist/dataGrid/columns/checkboxColumn/checkboxCell.js +1 -1
  43. package/dist/dataGrid/columns/checkboxColumn/checkboxColumnWrapper.d.ts +4 -2
  44. package/dist/dataGrid/columns/checkboxColumn/checkboxColumnWrapper.js +10 -1
  45. package/dist/dataGrid/columns/checkboxColumn/checkboxHeaderCell.js +1 -1
  46. package/dist/dataGrid/dataGrid.js +1 -1
  47. package/dist/dataGrid/emptySearchList/emptySearchList.js +1 -1
  48. package/dist/dataGrid/entitiesListActions/actions/columnsListButton.js +1 -1
  49. package/dist/dataGrid/entitiesListActions/actions/fullscreenButton.js +2 -2
  50. package/dist/dataGrid/row/row.js +3 -2
  51. package/dist/dataGrid/withFlexibleColumns/components/columnSettings.js +2 -2
  52. package/dist/dataGrid/withFlexibleColumns/components/columnSettingsSidePanel.js +1 -1
  53. package/dist/dataGrid/withFlexibleColumns/withFlexibleColumns.js +1 -1
  54. package/dist/dataGrid/withSelectableRows/components/bulkActions/bulkActions.js +5 -5
  55. package/dist/dataGrid/withSelectableRows/withSelectableRows.js +77 -16
  56. package/dist/dataGrid/withSortableColumns/columns/sortableColumnWrapper.js +2 -2
  57. package/dist/dateInputInner/dateInputInner.js +7 -7
  58. package/dist/dateInputInner/dateInputInnerControlBlock.js +2 -2
  59. package/dist/dateInputRaw/dateInputRaw.js +3 -3
  60. package/dist/dateInputRaw/utils/getLabel.js +2 -2
  61. package/dist/dateRangeInner/dateRangeInner.js +1 -1
  62. package/dist/dateRangeRaw/dateRangeRaw.js +10 -10
  63. package/dist/dateRangeRaw/utils/dateRangeUtils.js +17 -17
  64. package/dist/dateSelectionWrapper/dateSelectionWrapper.js +4 -4
  65. package/dist/dialog/dialogContent.js +1 -1
  66. package/dist/dropdown/dropdownTrigger.d.ts +1 -1
  67. package/dist/dropdownRaw/dropdownList.js +9 -9
  68. package/dist/dropdownRaw/dropdownPopup.js +3 -3
  69. package/dist/dropdownRaw/dropdownRaw.js +249 -3
  70. package/dist/dropdownRaw/dropdownSearchableTrigger.d.ts +2 -1
  71. package/dist/dropdownRaw/dropdownSearchableTrigger.js +8 -6
  72. package/dist/dropdownRaw/dropdownTrigger.d.ts +2 -1
  73. package/dist/dropdownRaw/dropdownTrigger.js +2 -2
  74. package/dist/dropdownRaw/types.d.ts +7 -0
  75. package/dist/favoriteButton/favoriteButton.js +1 -1
  76. package/dist/fileUpload/components/dropZoneContent.js +4 -4
  77. package/dist/fileUpload/components/templateDownloadSection.js +1 -1
  78. package/dist/fileUpload/components/uploadedFilesSection.js +2 -2
  79. package/dist/fileUpload/fileUpload.js +6 -6
  80. package/dist/filters/components/filtersContainer.js +3 -3
  81. package/dist/filters/components/filtersEmptyState.js +2 -2
  82. package/dist/filters/components/filtersSaveModal.js +5 -5
  83. package/dist/filters/components/filtersSavedChipComponent.js +11 -11
  84. package/dist/filters/components/filtersSearchItemData.js +1 -1
  85. package/dist/filters/components/filtersSearchList.js +9 -9
  86. package/dist/filters/components/filtersSelect.js +1 -1
  87. package/dist/filters/components/filtersSelectListItem.js +2 -2
  88. package/dist/filters/components/filtersSidePanel.js +8 -8
  89. package/dist/filters/filters.js +4 -3
  90. package/dist/filtersBar/components/filtersBarPeriodPicker/getRangeOption.js +18 -18
  91. package/dist/filtersBar/components/resetComponentButton.js +1 -1
  92. package/dist/filtersBar/filtersBarActions/filtersBarActions.js +4 -4
  93. package/dist/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelRange/filtersBarSidePanelRange.js +2 -2
  94. package/dist/filtersBar/filtersBarSidePanel/filtersBarSidePanel.js +5 -5
  95. package/dist/filtersBar/filtersContainer/filtersContainer.js +2 -2
  96. package/dist/formField/hooks/useError.js +3 -3
  97. package/dist/formGroup/components/reviewListToggle/reviewListToggle.js +2 -2
  98. package/dist/formGroup/hooks/useToggle.js +1 -1
  99. package/dist/formLayout/hooks/useError.js +3 -3
  100. package/dist/formLayout/hooks/useFormButtons.js +3 -3
  101. package/dist/formSection/hooks/useError.js +3 -3
  102. package/dist/formStepper/components/formStep.js +1 -1
  103. package/dist/formStepper/formStepper.js +2 -2
  104. package/dist/formStepperButtons/formStepperButtons.js +4 -4
  105. package/dist/groupsFilterRaw/groupsFilterAdjustmentState.js +4 -4
  106. package/dist/groupsFilterRaw/groupsFilterBox.js +3 -3
  107. package/dist/groupsFilterRaw/groupsFilterCommon.js +2 -2
  108. package/dist/groupsFilterRaw/groupsFilterCurrentlySelectedState.js +5 -5
  109. package/dist/groupsFilterRaw/groupsFilterHelper.js +2 -2
  110. package/dist/groupsFilterRaw/groupsFilterInitialState.js +8 -8
  111. package/dist/groupsFilterRaw/groupsFilterMenu.js +3 -3
  112. package/dist/groupsFilterRaw/groupsFilterRaw.js +8 -8
  113. package/dist/groupsFilterRaw/groupsFilterTrigger.js +2 -2
  114. package/dist/groupsFilterRaw/groupsHelper.js +22 -22
  115. package/dist/header/components/collapsedItemsControl/collapsedItemsControl.js +1 -1
  116. package/dist/header/components/mobileFilterControl/mobileFilterControl.js +1 -1
  117. package/dist/header/components/mobileSearchControl/mobileSearchControl.js +3 -3
  118. package/dist/header/headerBack.js +1 -1
  119. package/dist/index.css +90 -84
  120. package/dist/index.d.ts +3 -0
  121. package/dist/index.js +8 -3
  122. package/dist/lineChart/lineChart.js +1 -1
  123. package/dist/lineChartMini/lineChartMini.js +1 -1
  124. package/dist/list/itemData/itemDataInternal.js +2 -2
  125. package/dist/list/listItem/listItem.js +2 -2
  126. package/dist/menu/components/menuErrorItem.js +2 -2
  127. package/dist/mobileSheet/mobileSheet.js +2 -2
  128. package/dist/modal/modal.js +1 -1
  129. package/dist/nav/navFooter/navEditFooter/navEditFooter.js +2 -2
  130. package/dist/nav/navFooter/navFooter.js +1 -1
  131. package/dist/nav/navFooter/navFooterAction/navFooterAction.js +1 -1
  132. package/dist/nav/navHeader/navHeader.js +2 -2
  133. package/dist/nav/navHeader/navHeaderSearch/navHeaderSearch.js +2 -2
  134. package/dist/nav/navMobileBar/navMobileBar.js +1 -1
  135. package/dist/notification/notification.js +1 -1
  136. package/dist/pagination/paginationArrow.js +2 -2
  137. package/dist/pagination/paginationText/paginationText.js +1 -1
  138. package/dist/pill/components/pillNonActionable/pillNonActionable.js +1 -1
  139. package/dist/pillBox/components/pillBoxItem.js +1 -1
  140. package/dist/pillBox/pillBox.js +3 -3
  141. package/dist/pillExpandable/pillExpandable.js +1 -1
  142. package/dist/pillExpandable/pillExpandableAlignments.js +65 -48
  143. package/dist/progressIndicator/progressIndicator.d.ts +4 -4
  144. package/dist/progressIndicator/progressIndicator.js +4 -4
  145. package/dist/rangeRaw/rangeRaw.js +7 -7
  146. package/dist/rangeRaw/utils/rangeHelper.js +7 -7
  147. package/dist/searchInputRaw/searchInputRaw.js +2 -2
  148. package/dist/selectList/selectList.js +2 -2
  149. package/dist/skeleton/skeleton.js +1 -1
  150. package/dist/sortControl/sortControl.js +5 -5
  151. package/dist/stepperRaw/stepperRaw.js +2 -2
  152. package/dist/summary/summary.js +2 -2
  153. package/dist/summaryTile/summaryTile.js +1 -1
  154. package/dist/table/actions/actionsMenu.js +2 -2
  155. package/dist/table/detailPanel/detailPanel.js +1 -1
  156. package/dist/table/detailPanel/detailPanelHeader.js +2 -2
  157. package/dist/table/flexible/columnSettings.js +2 -2
  158. package/dist/table/flexible/columnsPopup.js +1 -1
  159. package/dist/table/nested/useNestedRows.js +2 -2
  160. package/dist/table/selectable/interfaces.d.ts +9 -13
  161. package/dist/table/selectable/selectableHeader.js +5 -5
  162. package/dist/table/selectable/useDragSelection.d.ts +10 -0
  163. package/dist/table/selectable/useDragSelection.js +139 -0
  164. package/dist/table/selectable/useSelectableRows.d.ts +2 -2
  165. package/dist/table/selectable/useSelectableRows.js +61 -51
  166. package/dist/table/selectable/utils/calculateSelectionState.js +0 -35
  167. package/dist/table/selectable/utils/getDragSelectionRows.d.ts +15 -0
  168. package/dist/table/selectable/utils/getDragSelectionRows.js +28 -0
  169. package/dist/table/selectable/utils/getRangeIds.d.ts +2 -0
  170. package/dist/table/selectable/utils/getRangeIds.js +21 -0
  171. package/dist/table/selectable/utils/isRowChecked.js +1 -12
  172. package/dist/table/sortable/mobileSortControl.js +3 -3
  173. package/dist/table/sortable/sortableHeader.js +2 -2
  174. package/dist/table/table.d.ts +4 -0
  175. package/dist/table/table.js +11 -7
  176. package/dist/tabs/tabs.js +2 -2
  177. package/dist/tag/tag.d.ts +3 -2
  178. package/dist/tag/tag.js +3 -2
  179. package/dist/timePickerRaw/timePickerRaw.js +7 -7
  180. package/dist/toastRaw/toastRaw.js +1 -1
  181. package/dist/toggleButtonRaw/toggleButtonRaw.js +2 -2
  182. package/dist/tooltip/tooltip.js +5 -2
  183. package/dist/utils/formatDate.js +37 -37
  184. package/dist/utils/localization/flipAlignment.js +5 -1
  185. package/dist/utils/localization/getSupportedLanguage.d.ts +1 -1
  186. package/dist/utils/localization/getSupportedLanguage.js +8 -2
  187. package/dist/utils/localization/getTextDirection.js +1 -1
  188. package/dist/utils/localization/languageContext.d.ts +1 -1
  189. package/dist/utils/localization/translations/{ar.json → ar-001.json} +54 -53
  190. package/dist/utils/localization/translationsDictionary.js +1 -1
  191. package/dist/utils/localization/useRTLAlignment.d.ts +6 -0
  192. package/dist/utils/localization/useRTLAlignment.js +6 -0
  193. package/esm/absolute/absolute.js +1 -1
  194. package/esm/advancedGroupsFilter/advancedGroupsFilter.js +3 -3
  195. package/esm/advancedGroupsFilter/advancedGroupsFilterForm.js +2 -2
  196. package/esm/advancedGroupsFilter/advancedGroupsFilterFormSection.js +7 -7
  197. package/esm/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.js +1 -1
  198. package/esm/alertRaw/alertRaw.js +1 -1
  199. package/esm/banner/bannerMultipLine.js +1 -1
  200. package/esm/banner/bannerSingleLine.js +1 -1
  201. package/esm/banner/utils/useSummaryBannerProp.js +1 -1
  202. package/esm/betaPill/betaPill.js +4 -4
  203. package/esm/bookmark/bookmark.js +2 -2
  204. package/esm/bulkEditControl/bulkEditControl.js +5 -5
  205. package/esm/calendar/calendar.js +30 -30
  206. package/esm/calendar/calendarUtils.js +6 -6
  207. package/esm/card/card.js +1 -1
  208. package/esm/chart/accessibleChart/accessibleChartNarrative.js +13 -13
  209. package/esm/chart/accessibleChart/accessibleChartTable.js +5 -5
  210. package/esm/chart/accessibleChart/generatePieNarrative.js +6 -6
  211. package/esm/chart/barChart.js +1 -1
  212. package/esm/chart/chart.js +1 -1
  213. package/esm/chart/chartAxis/chartAxis.js +2 -2
  214. package/esm/chart/lineChart.js +1 -1
  215. package/esm/chart/pieChart.js +1 -1
  216. package/esm/chart/plugins/linePlugin/getInterpolatedValue.d.ts +2 -2
  217. package/esm/chart/plugins/linePlugin/getInterpolatedValue.js +3 -2
  218. package/esm/chart/plugins/linePlugin/linePlugin.js +2 -1
  219. package/esm/chart/utils/getFormattedLabel.js +5 -1
  220. package/esm/checkbox/checkbox.d.ts +2 -1
  221. package/esm/checkbox/checkbox.js +2 -2
  222. package/esm/checkboxListWithAction/checkboxListWithAction.js +5 -4
  223. package/esm/chip/chip.js +1 -1
  224. package/esm/columnsSelector/columnsSelector.js +2 -2
  225. package/esm/columnsSelector/columnsTab/columnsTab.js +1 -1
  226. package/esm/columnsSelector/columnsTabGroup/columnsTabGroup.js +1 -1
  227. package/esm/commonHelpers/hooks/useTrapFocus.d.ts +0 -9
  228. package/esm/commonHelpers/hooks/useTrapFocus.js +15 -67
  229. package/esm/controlledPopup/controlledPopup.d.ts +1 -1
  230. package/esm/controlledPopup/controlledPopup.js +17 -3
  231. package/esm/dataFeed/feedExpandControl/feedExpandControl.js +2 -2
  232. package/esm/dataGrid/columns/checkboxColumn/checkboxCell.d.ts +2 -1
  233. package/esm/dataGrid/columns/checkboxColumn/checkboxCell.js +1 -1
  234. package/esm/dataGrid/columns/checkboxColumn/checkboxColumnWrapper.d.ts +4 -2
  235. package/esm/dataGrid/columns/checkboxColumn/checkboxColumnWrapper.js +10 -1
  236. package/esm/dataGrid/columns/checkboxColumn/checkboxHeaderCell.js +1 -1
  237. package/esm/dataGrid/dataGrid.js +1 -1
  238. package/esm/dataGrid/emptySearchList/emptySearchList.js +1 -1
  239. package/esm/dataGrid/entitiesListActions/actions/columnsListButton.js +1 -1
  240. package/esm/dataGrid/entitiesListActions/actions/fullscreenButton.js +2 -2
  241. package/esm/dataGrid/row/row.js +3 -2
  242. package/esm/dataGrid/withFlexibleColumns/components/columnSettings.js +2 -2
  243. package/esm/dataGrid/withFlexibleColumns/components/columnSettingsSidePanel.js +1 -1
  244. package/esm/dataGrid/withFlexibleColumns/withFlexibleColumns.js +1 -1
  245. package/esm/dataGrid/withSelectableRows/components/bulkActions/bulkActions.js +5 -5
  246. package/esm/dataGrid/withSelectableRows/withSelectableRows.js +77 -16
  247. package/esm/dataGrid/withSortableColumns/columns/sortableColumnWrapper.js +2 -2
  248. package/esm/dateInputInner/dateInputInner.js +7 -7
  249. package/esm/dateInputInner/dateInputInnerControlBlock.js +2 -2
  250. package/esm/dateInputRaw/dateInputRaw.js +3 -3
  251. package/esm/dateInputRaw/utils/getLabel.js +2 -2
  252. package/esm/dateRangeInner/dateRangeInner.js +1 -1
  253. package/esm/dateRangeRaw/dateRangeRaw.js +10 -10
  254. package/esm/dateRangeRaw/utils/dateRangeUtils.js +17 -17
  255. package/esm/dateSelectionWrapper/dateSelectionWrapper.js +4 -4
  256. package/esm/dialog/dialogContent.js +1 -1
  257. package/esm/dropdown/dropdownTrigger.d.ts +1 -1
  258. package/esm/dropdownRaw/dropdownList.js +9 -9
  259. package/esm/dropdownRaw/dropdownPopup.js +3 -3
  260. package/esm/dropdownRaw/dropdownRaw.js +249 -3
  261. package/esm/dropdownRaw/dropdownSearchableTrigger.d.ts +2 -1
  262. package/esm/dropdownRaw/dropdownSearchableTrigger.js +8 -6
  263. package/esm/dropdownRaw/dropdownTrigger.d.ts +2 -1
  264. package/esm/dropdownRaw/dropdownTrigger.js +2 -2
  265. package/esm/dropdownRaw/types.d.ts +7 -0
  266. package/esm/favoriteButton/favoriteButton.js +1 -1
  267. package/esm/fileUpload/components/dropZoneContent.js +4 -4
  268. package/esm/fileUpload/components/templateDownloadSection.js +1 -1
  269. package/esm/fileUpload/components/uploadedFilesSection.js +2 -2
  270. package/esm/fileUpload/fileUpload.js +6 -6
  271. package/esm/filters/components/filtersContainer.js +3 -3
  272. package/esm/filters/components/filtersEmptyState.js +2 -2
  273. package/esm/filters/components/filtersSaveModal.js +5 -5
  274. package/esm/filters/components/filtersSavedChipComponent.js +11 -11
  275. package/esm/filters/components/filtersSearchItemData.js +1 -1
  276. package/esm/filters/components/filtersSearchList.js +9 -9
  277. package/esm/filters/components/filtersSelect.js +1 -1
  278. package/esm/filters/components/filtersSelectListItem.js +2 -2
  279. package/esm/filters/components/filtersSidePanel.js +8 -8
  280. package/esm/filters/filters.js +4 -3
  281. package/esm/filtersBar/components/filtersBarPeriodPicker/getRangeOption.js +18 -18
  282. package/esm/filtersBar/components/resetComponentButton.js +1 -1
  283. package/esm/filtersBar/filtersBarActions/filtersBarActions.js +4 -4
  284. package/esm/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelRange/filtersBarSidePanelRange.js +2 -2
  285. package/esm/filtersBar/filtersBarSidePanel/filtersBarSidePanel.js +5 -5
  286. package/esm/filtersBar/filtersContainer/filtersContainer.js +2 -2
  287. package/esm/formField/hooks/useError.js +3 -3
  288. package/esm/formGroup/components/reviewListToggle/reviewListToggle.js +2 -2
  289. package/esm/formGroup/hooks/useToggle.js +1 -1
  290. package/esm/formLayout/hooks/useError.js +3 -3
  291. package/esm/formLayout/hooks/useFormButtons.js +3 -3
  292. package/esm/formSection/hooks/useError.js +3 -3
  293. package/esm/formStepper/components/formStep.js +1 -1
  294. package/esm/formStepper/formStepper.js +2 -2
  295. package/esm/formStepperButtons/formStepperButtons.js +4 -4
  296. package/esm/groupsFilterRaw/groupsFilterAdjustmentState.js +4 -4
  297. package/esm/groupsFilterRaw/groupsFilterBox.js +3 -3
  298. package/esm/groupsFilterRaw/groupsFilterCommon.js +2 -2
  299. package/esm/groupsFilterRaw/groupsFilterCurrentlySelectedState.js +5 -5
  300. package/esm/groupsFilterRaw/groupsFilterHelper.js +2 -2
  301. package/esm/groupsFilterRaw/groupsFilterInitialState.js +8 -8
  302. package/esm/groupsFilterRaw/groupsFilterMenu.js +3 -3
  303. package/esm/groupsFilterRaw/groupsFilterRaw.js +8 -8
  304. package/esm/groupsFilterRaw/groupsFilterTrigger.js +2 -2
  305. package/esm/groupsFilterRaw/groupsHelper.js +22 -22
  306. package/esm/header/components/collapsedItemsControl/collapsedItemsControl.js +1 -1
  307. package/esm/header/components/mobileFilterControl/mobileFilterControl.js +1 -1
  308. package/esm/header/components/mobileSearchControl/mobileSearchControl.js +3 -3
  309. package/esm/header/headerBack.js +1 -1
  310. package/esm/index.d.ts +3 -0
  311. package/esm/index.js +2 -0
  312. package/esm/lineChart/lineChart.js +1 -1
  313. package/esm/lineChartMini/lineChartMini.js +1 -1
  314. package/esm/list/itemData/itemDataInternal.js +2 -2
  315. package/esm/list/listItem/listItem.js +2 -2
  316. package/esm/menu/components/menuErrorItem.js +2 -2
  317. package/esm/mobileSheet/mobileSheet.js +2 -2
  318. package/esm/modal/modal.js +1 -1
  319. package/esm/nav/navFooter/navEditFooter/navEditFooter.js +2 -2
  320. package/esm/nav/navFooter/navFooter.js +1 -1
  321. package/esm/nav/navFooter/navFooterAction/navFooterAction.js +1 -1
  322. package/esm/nav/navHeader/navHeader.js +2 -2
  323. package/esm/nav/navHeader/navHeaderSearch/navHeaderSearch.js +2 -2
  324. package/esm/nav/navMobileBar/navMobileBar.js +1 -1
  325. package/esm/notification/notification.js +1 -1
  326. package/esm/pagination/paginationArrow.js +2 -2
  327. package/esm/pagination/paginationText/paginationText.js +1 -1
  328. package/esm/pill/components/pillNonActionable/pillNonActionable.js +1 -1
  329. package/esm/pillBox/components/pillBoxItem.js +1 -1
  330. package/esm/pillBox/pillBox.js +3 -3
  331. package/esm/pillExpandable/pillExpandable.js +1 -1
  332. package/esm/pillExpandable/pillExpandableAlignments.js +65 -48
  333. package/esm/progressIndicator/progressIndicator.d.ts +4 -4
  334. package/esm/progressIndicator/progressIndicator.js +4 -4
  335. package/esm/rangeRaw/rangeRaw.js +7 -7
  336. package/esm/rangeRaw/utils/rangeHelper.js +7 -7
  337. package/esm/searchInputRaw/searchInputRaw.js +2 -2
  338. package/esm/selectList/selectList.js +2 -2
  339. package/esm/skeleton/skeleton.js +1 -1
  340. package/esm/sortControl/sortControl.js +5 -5
  341. package/esm/stepperRaw/stepperRaw.js +2 -2
  342. package/esm/summary/summary.js +2 -2
  343. package/esm/summaryTile/summaryTile.js +1 -1
  344. package/esm/table/actions/actionsMenu.js +2 -2
  345. package/esm/table/detailPanel/detailPanel.js +1 -1
  346. package/esm/table/detailPanel/detailPanelHeader.js +2 -2
  347. package/esm/table/flexible/columnSettings.js +2 -2
  348. package/esm/table/flexible/columnsPopup.js +1 -1
  349. package/esm/table/nested/useNestedRows.js +2 -2
  350. package/esm/table/selectable/interfaces.d.ts +9 -13
  351. package/esm/table/selectable/selectableHeader.js +5 -5
  352. package/esm/table/selectable/useDragSelection.d.ts +10 -0
  353. package/esm/table/selectable/useDragSelection.js +135 -0
  354. package/esm/table/selectable/useSelectableRows.d.ts +2 -2
  355. package/esm/table/selectable/useSelectableRows.js +61 -51
  356. package/esm/table/selectable/utils/calculateSelectionState.js +0 -35
  357. package/esm/table/selectable/utils/getDragSelectionRows.d.ts +15 -0
  358. package/esm/table/selectable/utils/getDragSelectionRows.js +24 -0
  359. package/esm/table/selectable/utils/getRangeIds.d.ts +2 -0
  360. package/esm/table/selectable/utils/getRangeIds.js +17 -0
  361. package/esm/table/selectable/utils/isRowChecked.js +1 -12
  362. package/esm/table/sortable/mobileSortControl.js +3 -3
  363. package/esm/table/sortable/sortableHeader.js +2 -2
  364. package/esm/table/table.d.ts +4 -0
  365. package/esm/table/table.js +10 -6
  366. package/esm/tabs/tabs.js +2 -2
  367. package/esm/tag/tag.d.ts +3 -2
  368. package/esm/tag/tag.js +3 -2
  369. package/esm/timePickerRaw/timePickerRaw.js +7 -7
  370. package/esm/toastRaw/toastRaw.js +1 -1
  371. package/esm/toggleButtonRaw/toggleButtonRaw.js +2 -2
  372. package/esm/tooltip/tooltip.js +5 -2
  373. package/esm/utils/formatDate.js +37 -37
  374. package/esm/utils/localization/flipAlignment.js +5 -1
  375. package/esm/utils/localization/getSupportedLanguage.d.ts +1 -1
  376. package/esm/utils/localization/getSupportedLanguage.js +8 -2
  377. package/esm/utils/localization/getTextDirection.js +1 -1
  378. package/esm/utils/localization/languageContext.d.ts +1 -1
  379. package/esm/utils/localization/translations/{ar.json → ar-001.json} +54 -53
  380. package/esm/utils/localization/translationsDictionary.js +1 -1
  381. package/esm/utils/localization/useRTLAlignment.d.ts +6 -0
  382. package/esm/utils/localization/useRTLAlignment.js +6 -0
  383. package/package.json +1 -1
@@ -37,7 +37,7 @@ injectString("tr", "Y-axis", "Y ekseni");
37
37
  injectString("zh-Hans", "Y-axis", "Y \u8F74");
38
38
  injectString("zh-TW", "Y-axis", "Y \u8EF8");
39
39
  injectString("ro-RO", "Y-axis", "Axa Y");
40
- injectString("ar", "Y-axis", "\u0627\u0644\u0645\u062D\u0648\u0631 \u0627\u0644\u0635\u0627\u062F\u064A");
40
+ injectString("ar-001", "Y-axis", "\u0627\u0644\u0645\u062D\u0648\u0631 \u0627\u0644\u0635\u0627\u062F\u064A");
41
41
  injectString("lt-LT", "Y-axis", "Y a\u0161is");
42
42
  injectString("lv-LV", "Y-axis", "Y ass");
43
43
  injectString("ka-GE", "Y-axis", "Y-\u10E6\u10D4\u10E0\u10EB\u10D8");
@@ -70,7 +70,7 @@ injectString("tr", "X-axis", "X ekseni");
70
70
  injectString("zh-Hans", "X-axis", "X \u8F74");
71
71
  injectString("zh-TW", "X-axis", "X \u8EF8");
72
72
  injectString("ro-RO", "X-axis", "Axa X");
73
- injectString("ar", "X-axis", "\u0627\u0644\u0645\u062D\u0648\u0631 \u0627\u0644\u0633\u064A\u0646\u064A");
73
+ injectString("ar-001", "X-axis", "\u0627\u0644\u0645\u062D\u0648\u0631 \u0627\u0644\u0633\u064A\u0646\u064A");
74
74
  injectString("lt-LT", "X-axis", "X a\u0161is");
75
75
  injectString("lv-LV", "X-axis", "X ass");
76
76
  injectString("ka-GE", "X-axis", "X-\u10E6\u10D4\u10E0\u10EB\u10D8");
@@ -43,7 +43,7 @@ injectString("tr", "Line chart", "\xC7izgi grafik");
43
43
  injectString("zh-Hans", "Line chart", "\u6298\u7EBF\u56FE");
44
44
  injectString("zh-TW", "Line chart", "\u6298\u7DDA\u5716");
45
45
  injectString("ro-RO", "Line chart", "Grafic liniar");
46
- injectString("ar", "Line chart", "\u0645\u062E\u0637\u0637 \u062E\u0637\u064A");
46
+ injectString("ar-001", "Line chart", "\u0645\u062E\u0637\u0637 \u062E\u0637\u064A");
47
47
  injectString("lt-LT", "Line chart", "Linijin\u0117 diagrama");
48
48
  injectString("lv-LV", "Line chart", "L\u012Bniju diagramma");
49
49
  injectString("ka-GE", "Line chart", "\u10EE\u10D0\u10D6\u10DD\u10D5\u10D0\u10DC\u10D8 \u10E1\u10E5\u10D4\u10DB\u10D0");
@@ -43,7 +43,7 @@ injectString("tr", "Pie chart", "Pasta grafik");
43
43
  injectString("zh-Hans", "Pie chart", "\u997C\u56FE");
44
44
  injectString("zh-TW", "Pie chart", "\u5713\u5F62\u5716");
45
45
  injectString("ro-RO", "Pie chart", "Diagram\u0103 circular\u0103");
46
- injectString("ar", "Pie chart", "\u0645\u062E\u0637\u0637 \u062F\u0627\u0626\u0631\u064A");
46
+ injectString("ar-001", "Pie chart", "\u0645\u062E\u0637\u0637 \u062F\u0627\u0626\u0631\u064A");
47
47
  injectString("lt-LT", "Pie chart", "Skritulin\u0117 diagrama");
48
48
  injectString("lv-LV", "Pie chart", "Sektoru diagramma");
49
49
  injectString("ka-GE", "Pie chart", "\u10EC\u10E0\u10D8\u10E3\u10DA\u10D8 \u10E1\u10E5\u10D4\u10DB\u10D0");
@@ -1,3 +1,3 @@
1
- import { Scale } from "chart.js";
1
+ import { Scale, type ChartOptions } from "chart.js";
2
2
  import { ILineChartData } from "../../lineChart/interfaces";
3
- export declare function getInterpolatedValue(xScale: Scale, data: ILineChartData, datasetIndex: number, xPixel: number): number | null;
3
+ export declare function getInterpolatedValue(xScale: Scale, data: ILineChartData, datasetIndex: number, xPixel: number, parsing?: ChartOptions<"line">["parsing"]): number | null;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getInterpolatedValue = getInterpolatedValue;
4
- function getInterpolatedValue(xScale, data, datasetIndex, xPixel) {
4
+ function getInterpolatedValue(xScale, data, datasetIndex, xPixel, parsing) {
5
5
  const dataset = data.datasets[datasetIndex];
6
6
  const dataPoints = dataset.data;
7
7
  if (dataPoints.length < 2) {
@@ -18,7 +18,8 @@ function getInterpolatedValue(xScale, data, datasetIndex, xPixel) {
18
18
  if (y === null) {
19
19
  continue;
20
20
  }
21
- const pointXPixel = xScale.getPixelForValue(x);
21
+ const parsedX = parsing === false ? x : xScale.parse(x, i);
22
+ const pointXPixel = xScale.getPixelForValue(parsedX);
22
23
  if (pointXPixel <= xPixel && pointXPixel > lowerXPixel) {
23
24
  lowerPoint = y;
24
25
  lowerXPixel = pointXPixel;
@@ -60,6 +60,7 @@ const LinePlugin = (containerId, options, isDark) => ({
60
60
  let lowestValueY = Infinity;
61
61
  const items = datasets
62
62
  .map((dataset, dsIndex) => {
63
+ var _a;
63
64
  if (!chart.isDatasetVisible(dsIndex)) {
64
65
  return undefined;
65
66
  }
@@ -67,7 +68,7 @@ const LinePlugin = (containerId, options, isDark) => ({
67
68
  return undefined;
68
69
  }
69
70
  const xScale = chart.scales.x;
70
- const value = (0, getInterpolatedValue_1.getInterpolatedValue)(xScale, chart.data, dsIndex, x);
71
+ const value = (0, getInterpolatedValue_1.getInterpolatedValue)(xScale, chart.data, dsIndex, x, (_a = dataset.parsing) !== null && _a !== void 0 ? _a : chart.options.parsing);
71
72
  const yAxisID = dataset.yAxisID || "y";
72
73
  const yScale = chart.scales[yAxisID];
73
74
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
@@ -6,14 +6,18 @@ function getFormattedLabel(value, dateFormatter, options) {
6
6
  var _a, _b, _c;
7
7
  const scaleType = (_b = (_a = options === null || options === void 0 ? void 0 : options.scales) === null || _a === void 0 ? void 0 : _a.x) === null || _b === void 0 ? void 0 : _b.type;
8
8
  let format;
9
+ let parser;
9
10
  if (((_c = options === null || options === void 0 ? void 0 : options.scales) === null || _c === void 0 ? void 0 : _c.x) && scaleType) {
10
11
  const scaleFormat = options.scales.x[scaleType];
11
12
  if ((scaleFormat === null || scaleFormat === void 0 ? void 0 : scaleFormat.unit) && scaleFormat.displayFormats && scaleFormat.displayFormats[scaleFormat.unit]) {
12
13
  format = scaleFormat.displayFormats[scaleFormat.unit];
13
14
  }
15
+ if (options.parsing !== false && scaleFormat && "parser" in scaleFormat && typeof scaleFormat.parser === "function") {
16
+ parser = scaleFormat.parser;
17
+ }
14
18
  }
15
19
  if (value instanceof Date || (typeof value === "string" && (0, isDateString_1.isDateString)(value))) {
16
- return dateFormatter(value, format);
20
+ return dateFormatter(parser ? new Date(parser(value)) : value, format);
17
21
  }
18
22
  return String(value);
19
23
  }
@@ -8,6 +8,7 @@ export interface ICheckbox extends IZenComponentProps {
8
8
  checked?: boolean;
9
9
  indeterminate?: boolean;
10
10
  title?: string;
11
+ ariaLabel?: string;
11
12
  disabled?: boolean;
12
13
  fullWidth?: boolean;
13
14
  reverse?: boolean;
@@ -16,4 +17,4 @@ export interface ICheckbox extends IZenComponentProps {
16
17
  tabIndex?: number;
17
18
  describedBy?: string;
18
19
  }
19
- export declare const Checkbox: ({ reverse, fullWidth, id, checked, indeterminate, title, className, children, disabled, wrapped, describedBy, ...rest }: ICheckbox) => import("react/jsx-runtime").JSX.Element;
20
+ export declare const Checkbox: ({ reverse, fullWidth, id, checked, indeterminate, title, ariaLabel, className, children, disabled, wrapped, describedBy, ...rest }: ICheckbox) => import("react/jsx-runtime").JSX.Element;
@@ -56,14 +56,14 @@ const checkboxIconCheckmark_1 = require("./checkboxIconCheckmark");
56
56
  const checkboxIconMinus_1 = require("./checkboxIconMinus");
57
57
  const useMobile_1 = require("../commonHelpers/hooks/useMobile");
58
58
  const Checkbox = (_a) => {
59
- var { reverse, fullWidth, id, checked, indeterminate, title, className = "", children, disabled, wrapped, describedBy } = _a, rest = __rest(_a, ["reverse", "fullWidth", "id", "checked", "indeterminate", "title", "className", "children", "disabled", "wrapped", "describedBy"]);
59
+ var { reverse, fullWidth, id, checked, indeterminate, title, ariaLabel, className = "", children, disabled, wrapped, describedBy } = _a, rest = __rest(_a, ["reverse", "fullWidth", "id", "checked", "indeterminate", "title", "ariaLabel", "className", "children", "disabled", "wrapped", "describedBy"]);
60
60
  const state = (0, checkboxUtils_1.getCheckboxState)(checked, indeterminate);
61
61
  const generatedId = react_1.default.useId();
62
62
  const intId = id || generatedId;
63
63
  const driveClasses = (0, useDriveClassName_1.useDriveClassName)("zen-checkbox");
64
64
  const isMobile = (0, useMobile_1.useMobile)();
65
65
  const checkboxIconClasses = (0, react_1.useMemo)(() => (0, classNames_1.classNames)(["zen-checkbox__icon", disabled ? "zen-checkbox__icon--disabled" : ""]), [disabled]);
66
- const checkbox = ((0, jsx_runtime_1.jsx)(triStateCheckbox_1.TriStateCheckbox, Object.assign({ className: "zen-checkbox__input", id: intId, checked: checked, indeterminate: indeterminate, disabled: disabled, "aria-label": title, "aria-describedby": describedBy }, rest)));
66
+ const checkbox = ((0, jsx_runtime_1.jsx)(triStateCheckbox_1.TriStateCheckbox, Object.assign({ className: "zen-checkbox__input", id: intId, checked: checked, indeterminate: indeterminate, disabled: disabled, "aria-label": ariaLabel || title, "aria-describedby": describedBy }, rest)));
67
67
  const iconAndLabel = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: "zen-checkbox__box", "aria-hidden": true, children: state === checkboxState_1.CheckboxState.Indeterminate ? ((0, jsx_runtime_1.jsx)(checkboxIconMinus_1.CheckboxIconMinus, { className: checkboxIconClasses, size: driveClasses ? "bigger" : "medium" })) : state === checkboxState_1.CheckboxState.On ? ((0, jsx_runtime_1.jsx)(checkboxIconCheckmark_1.CheckboxIconCheckmark, { className: checkboxIconClasses, size: driveClasses ? "bigger" : "medium" })) : null }), children ? ((0, jsx_runtime_1.jsx)("div", { className: (0, classNames_1.classNames)(["zen-checkbox__label-text", fullWidth ? "zen-checkbox__label-text--full-width" : ""]), children: children })) : null] }));
68
68
  if (wrapped) {
69
69
  return ((0, jsx_runtime_1.jsxs)("label", { className: (0, classNames_1.classNames)(["zen-checkbox", driveClasses || "", className]), title: title, children: [checkbox, (0, jsx_runtime_1.jsx)("div", { className: (0, classNames_1.classNames)(["zen-checkbox__label", reverse ? "zen-checkbox__label--reverse" : ""]), children: iconAndLabel })] }));
@@ -35,7 +35,7 @@ injectString("tr", "Number of selected child groups - {count}", "Se\xE7ilen alt
35
35
  injectString("zh-Hans", "Number of selected child groups - {count}", "\u9009\u4E2D\u7684\u5B50\u7EC4\u6570\u91CF - {count}");
36
36
  injectString("zh-TW", "Number of selected child groups - {count}", "\u6240\u9078\u5B50\u7FA4\u7D44\u7684\u6578\u76EE - {count}");
37
37
  injectString("ro-RO", "Number of selected child groups - {count}", "Num\u0103r de grupuri derivate selectate \u2013 {count}");
38
- injectString("ar", "Number of selected child groups - {count}", "\u0639\u062F\u062F \u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0627\u062A \u0627\u0644\u062A\u0627\u0628\u0639\u0629 \u0627\u0644\u0645\u062D\u062F\u062F\u0629 - {count}");
38
+ injectString("ar-001", "Number of selected child groups - {count}", "\u0639\u062F\u062F \u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0627\u062A \u0627\u0644\u062A\u0627\u0628\u0639\u0629 \u0627\u0644\u0645\u062D\u062F\u062F\u0629 - {count}");
39
39
  injectString("lt-LT", "Number of selected child groups - {count}", "Pasirinkt\u0173 pogrupi\u0173 skai\u010Dius - {count}");
40
40
  injectString("lv-LV", "Number of selected child groups - {count}", "Atlas\u012Bto apak\u0161grupu skaits - {count}");
41
41
  injectString("ka-GE", "Number of selected child groups - {count}", "\u10D0\u10E0\u10E9\u10D4\u10E3\u10DA\u10D8 \u10E5\u10D5\u10D4\u10EF\u10D2\u10E3\u10E4\u10D4\u10D1\u10D8\u10E1 \u10E0\u10D0\u10DD\u10D3\u10D4\u10DC\u10DD\u10D1\u10D0 - {count}");
@@ -68,7 +68,7 @@ injectString("tr", "View {groupName} children", "{groupName} alt \xF6\u011Feleri
68
68
  injectString("zh-Hans", "View {groupName} children", "\u67E5\u770B {groupName} \u5B50\u7EC4");
69
69
  injectString("zh-TW", "View {groupName} children", "\u6AA2\u8996\u300C{groupName}\u300D\u5B50\u7FA4\u7D44");
70
70
  injectString("ro-RO", "View {groupName} children", "Vede\u021Bi derivatele {groupName}");
71
- injectString("ar", "View {groupName} children", "\u0639\u0631\u0636 \u062A\u0648\u0627\u0628\u0639 {groupName}");
71
+ injectString("ar-001", "View {groupName} children", "\u0639\u0631\u0636 \u062A\u0648\u0627\u0628\u0639 {groupName}");
72
72
  injectString("lt-LT", "View {groupName} children", "Per\u017Ei\u016Br\u0117ti {groupName} pogrupius");
73
73
  injectString("lv-LV", "View {groupName} children", "Skat\u012Bt {groupName} apak\u0161grupas");
74
74
  injectString("ka-GE", "View {groupName} children", "{groupName} \u10E5\u10D5\u10D4\u10EF\u10D2\u10E3\u10E4\u10D4\u10D1\u10D8\u10E1 \u10DC\u10D0\u10EE\u10D5\u10D0");
@@ -101,7 +101,7 @@ injectString("tr", "Toggle {groupName} filter", "{groupName} filtresini de\u011F
101
101
  injectString("zh-Hans", "Toggle {groupName} filter", "\u5207\u6362 {groupName} \u7B5B\u9009\u5668");
102
102
  injectString("zh-TW", "Toggle {groupName} filter", "\u5207\u63DB\u300C{groupName}\u300D\u7BE9\u9078\u689D\u4EF6");
103
103
  injectString("ro-RO", "Toggle {groupName} filter", "Activa\u021Bi filtrul {groupName}");
104
- injectString("ar", "Toggle {groupName} filter", "\u062A\u0628\u062F\u064A\u0644 \u0639\u0627\u0645\u0644 \u062A\u0635\u0641\u064A\u0629 {groupName}");
104
+ injectString("ar-001", "Toggle {groupName} filter", "\u062A\u0628\u062F\u064A\u0644 \u0639\u0627\u0645\u0644 \u062A\u0635\u0641\u064A\u0629 {groupName}");
105
105
  injectString("lt-LT", "Toggle {groupName} filter", "\u012Ejungti / i\u0161jungti {groupName} filtr\u0105");
106
106
  injectString("lv-LV", "Toggle {groupName} filter", "Iesl\u0113gt/izsl\u0113gt {groupName} filtru");
107
107
  injectString("ka-GE", "Toggle {groupName} filter", "{groupName} \u10E4\u10D8\u10DA\u10E2\u10E0\u10D8\u10E1 \u10D2\u10D0\u10D3\u10D0\u10E0\u10D7\u10D5\u10D0");
@@ -134,7 +134,7 @@ injectString("tr", "Has additional actions. Use right arrow to access button, le
134
134
  injectString("zh-Hans", "Has additional actions. Use right arrow to access button, left arrow to return.", "Has additional actions. Use right arrow to access button, left arrow to return.");
135
135
  injectString("zh-TW", "Has additional actions. Use right arrow to access button, left arrow to return.", "Has additional actions. Use right arrow to access button, left arrow to return.");
136
136
  injectString("ro-RO", "Has additional actions. Use right arrow to access button, left arrow to return.", "Has additional actions. Use right arrow to access button, left arrow to return.");
137
- injectString("ar", "Has additional actions. Use right arrow to access button, left arrow to return.", "\u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0625\u062C\u0631\u0627\u0621\u0627\u062A \u0625\u0636\u0627\u0641\u064A\u0629. \u0627\u0633\u062A\u062E\u062F\u0645 \u0627\u0644\u0633\u0647\u0645 \u0627\u0644\u0623\u064A\u0645\u0646 \u0644\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u0632\u0631\u060C \u0648\u0627\u0644\u0633\u0647\u0645 \u0627\u0644\u0623\u064A\u0633\u0631 \u0644\u0644\u0639\u0648\u062F\u0629.");
137
+ injectString("ar-001", "Has additional actions. Use right arrow to access button, left arrow to return.", "\u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0625\u062C\u0631\u0627\u0621\u0627\u062A \u0625\u0636\u0627\u0641\u064A\u0629. \u0627\u0633\u062A\u062E\u062F\u0645 \u0627\u0644\u0633\u0647\u0645 \u0627\u0644\u0623\u064A\u0645\u0646 \u0644\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u0632\u0631\u060C \u0648\u0627\u0644\u0633\u0647\u0645 \u0627\u0644\u0623\u064A\u0633\u0631 \u0644\u0644\u0639\u0648\u062F\u0629.");
138
138
  injectString("lt-LT", "Has additional actions. Use right arrow to access button, left arrow to return.", "Yra papildom\u0173 veiksm\u0173. De\u0161iniojo rodykl\u0117s klavi\u0161o paspauskite mygtuk\u0105, kairiojo - gr\u012F\u017Ekite.");
139
139
  injectString("lv-LV", "Has additional actions. Use right arrow to access button, left arrow to return.", "Ir papildu darb\u012Bbas. Lab\u0101 bulti\u0146a - piek\u013C\u016Bt pogai, kreis\u0101 bulti\u0146a - atgriezties.");
140
140
  injectString("ka-GE", "Has additional actions. Use right arrow to access button, left arrow to return.", "\u10D3\u10D0\u10DB\u10D0\u10E2\u10D4\u10D1\u10D8\u10D7\u10D8 \u10DB\u10DD\u10E5\u10DB\u10D4\u10D3\u10D4\u10D1\u10D4\u10D1\u10D8 \u10D0\u10E0\u10E1\u10D4\u10D1\u10DD\u10D1\u10E1. \u10DB\u10D0\u10E0\u10EF\u10D5\u10D4\u10DC\u10D0 \u10D8\u10E1\u10E0\u10D8\u10D7 \u10EC\u10D5\u10D3\u10DD\u10DB\u10D8\u10E1\u10D7\u10D5\u10D8\u10E1, \u10DB\u10D0\u10E0\u10EA\u10EE\u10D4\u10DC\u10D8\u10D7 \u10D3\u10D0\u10E1\u10D0\u10D1\u10E0\u10E3\u10DC\u10D4\u10D1\u10DA\u10D0\u10D3.");
@@ -453,6 +453,7 @@ const CheckboxListWithAction = ({
453
453
  checked: opt.checked,
454
454
  disabled: opt.blocked,
455
455
  title: translate("Toggle {groupName} filter").replace("{groupName}", titleForRender),
456
+ ariaLabel: titleForRender,
456
457
  describedBy: opt.isWithAction ? navigationInstructionsId : undefined,
457
458
  "data-indeterminate": opt.partialChecked,
458
459
  tabIndex: getTabIndex(ind, "checkbox", opt.blocked),
package/dist/chip/chip.js CHANGED
@@ -34,7 +34,7 @@ injectString("tr", "Clear selection", "Se\xE7imi temizle");
34
34
  injectString("zh-Hans", "Clear selection", "\u6E05\u9664\u9009\u62E9");
35
35
  injectString("zh-TW", "Clear selection", "\u6E05\u9664\u9078\u53D6\u9805\u76EE");
36
36
  injectString("ro-RO", "Clear selection", "\u0218terge\u021Bi selec\u021Bia");
37
- injectString("ar", "Clear selection", "\u0645\u0633\u062D \u0627\u0644\u062A\u062D\u062F\u064A\u062F");
37
+ injectString("ar-001", "Clear selection", "\u0645\u0633\u062D \u0627\u0644\u062A\u062D\u062F\u064A\u062F");
38
38
  injectString("lt-LT", "Clear selection", "I\u0161valyti pasirinkim\u0105");
39
39
  injectString("lv-LV", "Clear selection", "Not\u012Br\u012Bt atlasi");
40
40
  injectString("ka-GE", "Clear selection", "\u10DB\u10DD\u10DC\u10D8\u10E8\u10D5\u10DC\u10D8\u10E1 \u10D2\u10D0\u10E1\u10E3\u10E4\u10D7\u10D0\u10D5\u10D4\u10D1\u10D0");
@@ -37,7 +37,7 @@ injectString("tr", "Column Settings", "S\xFCtun Ayarlar\u0131");
37
37
  injectString("zh-Hans", "Column Settings", "\u5217\u8BBE\u7F6E");
38
38
  injectString("zh-TW", "Column Settings", "\u6B04\u8A2D\u5B9A");
39
39
  injectString("ro-RO", "Column Settings", "Set\u0103ri coloane");
40
- injectString("ar", "Column Settings", "\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0639\u0645\u0648\u062F");
40
+ injectString("ar-001", "Column Settings", "\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0639\u0645\u0648\u062F");
41
41
  injectString("lt-LT", "Column Settings", "Stulpelio nustatymai");
42
42
  injectString("lv-LV", "Column Settings", "Kolonnas iestat\u012Bjumi");
43
43
  injectString("ka-GE", "Column Settings", "\u10E1\u10D5\u10D4\u10E2\u10D8\u10E1 \u10DE\u10D0\u10E0\u10D0\u10DB\u10D4\u10E2\u10E0\u10D4\u10D1\u10D8");
@@ -70,7 +70,7 @@ injectString("tr", "Reset to default", "Varsay\u0131lana s\u0131f\u0131rla");
70
70
  injectString("zh-Hans", "Reset to default", "\u91CD\u7F6E\u4E3A\u9ED8\u8BA4\u503C");
71
71
  injectString("zh-TW", "Reset to default", "\u91CD\u8A2D\u70BA\u9810\u8A2D\u503C");
72
72
  injectString("ro-RO", "Reset to default", "Reseta\u021Bi la implicit");
73
- injectString("ar", "Reset to default", "\u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u062A\u0639\u064A\u064A\u0646 \u0625\u0644\u0649 \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A");
73
+ injectString("ar-001", "Reset to default", "\u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u062A\u0639\u064A\u064A\u0646 \u0625\u0644\u0649 \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A");
74
74
  injectString("lt-LT", "Reset to default", "Atkurti numatyt\u0105j\u0105 reik\u0161m\u0119");
75
75
  injectString("lv-LV", "Reset to default", "Atjaunot noklus\u0113jumu");
76
76
  injectString("ka-GE", "Reset to default", "\u10DC\u10D0\u10D2\u10E3\u10DA\u10D8\u10E1\u10EE\u10DB\u10D4\u10D5\u10D6\u10D4 \u10D2\u10D0\u10D3\u10D0\u10E7\u10D4\u10DC\u10D4\u10D1\u10D0");
@@ -37,7 +37,7 @@ injectString("tr", "Columns", "S\xFCtunlar");
37
37
  injectString("zh-Hans", "Columns", "\u5217");
38
38
  injectString("zh-TW", "Columns", "\u6B04");
39
39
  injectString("ro-RO", "Columns", "Coloane");
40
- injectString("ar", "Columns", "\u0627\u0644\u0623\u0639\u0645\u062F\u0629");
40
+ injectString("ar-001", "Columns", "\u0627\u0644\u0623\u0639\u0645\u062F\u0629");
41
41
  injectString("lt-LT", "Columns", "Stulpeliai");
42
42
  injectString("lv-LV", "Columns", "Kolonnas");
43
43
  injectString("ka-GE", "Columns", "\u10E1\u10D5\u10D4\u10E2\u10D4\u10D1\u10D8");
@@ -38,7 +38,7 @@ injectString("tr", "Additional Properties", "Ek \xD6zellikler");
38
38
  injectString("zh-Hans", "Additional Properties", "\u5176\u4ED6\u5C5E\u6027");
39
39
  injectString("zh-TW", "Additional Properties", "\u5176\u4ED6\u5C6C\u6027");
40
40
  injectString("ro-RO", "Additional Properties", "Propriet\u0103\u021Bi suplimentare");
41
- injectString("ar", "Additional Properties", "\u062E\u0635\u0627\u0626\u0635 \u0625\u0636\u0627\u0641\u064A\u0629");
41
+ injectString("ar-001", "Additional Properties", "\u062E\u0635\u0627\u0626\u0635 \u0625\u0636\u0627\u0641\u064A\u0629");
42
42
  injectString("lt-LT", "Additional Properties", "Papildomos savyb\u0117s");
43
43
  injectString("lv-LV", "Additional Properties", "Papildu rekviz\u012Bti");
44
44
  injectString("ka-GE", "Additional Properties", "\u10D3\u10D0\u10DB\u10D0\u10E2\u10D4\u10D1\u10D8\u10D7\u10D8 \u10D7\u10D5\u10D8\u10E1\u10D4\u10D1\u10D4\u10D1\u10D8");
@@ -1,13 +1,4 @@
1
1
  import { RefObject } from "react";
2
2
  type TElementToBool = (element: HTMLElement) => boolean;
3
- /**
4
- * Traps keyboard (Tab) focus within `containerRef` (and optionally its `triggerRef`).
5
- *
6
- * Nested-popup contract: for correct nested-popup behaviour, a focused element that triggers an
7
- * open child popup must expose a `data-popup-id` attribute whose value is the `id` of the child
8
- * popup element rendered in the DOM. When present, focus is deferred to that child popup's trap.
9
- * This contract is fulfilled automatically by `ControlledPopup`; callers using `useTrapFocus`
10
- * directly must set `data-popup-id` themselves or nested popups will silently lose focus handling.
11
- */
12
3
  export declare const useTrapFocus: (containerRef: RefObject<HTMLElement | null>, triggerRef: RefObject<HTMLElement | null> | undefined, subscriptionTrigger: unknown, condition?: (t: unknown) => boolean, isElementVisible?: TElementToBool) => void;
13
4
  export {};
@@ -9,38 +9,18 @@ const isChildOf_1 = require("../../utils/isChildOf");
9
9
  const isElementHidden_1 = require("../../utils/isElementHidden");
10
10
  const zen_1 = require("../../utils/zen");
11
11
  const findFirstVisible = (elems, isElementVisible) => elems.find(elem => isElementVisible(elem));
12
- /**
13
- * Traps keyboard (Tab) focus within `containerRef` (and optionally its `triggerRef`).
14
- *
15
- * Nested-popup contract: for correct nested-popup behaviour, a focused element that triggers an
16
- * open child popup must expose a `data-popup-id` attribute whose value is the `id` of the child
17
- * popup element rendered in the DOM. When present, focus is deferred to that child popup's trap.
18
- * This contract is fulfilled automatically by `ControlledPopup`; callers using `useTrapFocus`
19
- * directly must set `data-popup-id` themselves or nested popups will silently lose focus handling.
20
- */
21
12
  const useTrapFocus = (containerRef, triggerRef, subscriptionTrigger, condition, isElementVisible) => {
22
13
  /* eslint-disable complexity */
23
14
  const handleKeyDown = (0, react_1.useCallback)(e => {
24
- var _a, _b, _c, _d, _e, _f, _g;
15
+ var _a, _b, _c, _d, _e, _f;
25
16
  /* eslint-enable complexity */
26
17
  const getChildCondition = () => {
27
- var _a, _b, _c;
28
- const targetEl = e.target;
29
- // If the target is a trigger for an open child popup, defer to that popup's
30
- // focus trap. Key on data-popup-id + DOM presence so this works even when
31
- // preventAttributesAutoSet suppresses aria-expanded.
32
- const dataPopupId = targetEl.getAttribute("data-popup-id");
33
- if (dataPopupId &&
34
- ((_a = zen_1.zen.document) === null || _a === void 0 ? void 0 : _a.getElementById(dataPopupId)) &&
35
- (0, isChildOf_1.isChildOf)(targetEl, containerRef.current) &&
36
- targetEl !== (triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current)) {
37
- return true;
38
- }
18
+ var _a, _b;
39
19
  return triggerRef
40
- ? !(0, isChildOf_1.isChildOf)(targetEl, containerRef.current) &&
41
- targetEl !== ((_b = zen_1.zen.document) === null || _b === void 0 ? void 0 : _b.body) &&
42
- !(0, isChildOf_1.isChildOf)(targetEl, triggerRef.current)
43
- : !(0, isChildOf_1.isChildOf)(targetEl, containerRef.current) && targetEl !== ((_c = zen_1.zen.document) === null || _c === void 0 ? void 0 : _c.body);
20
+ ? !(0, isChildOf_1.isChildOf)(e.target, containerRef.current) &&
21
+ e.target !== ((_a = zen_1.zen.document) === null || _a === void 0 ? void 0 : _a.body) &&
22
+ !(0, isChildOf_1.isChildOf)(e.target, triggerRef.current)
23
+ : !(0, isChildOf_1.isChildOf)(e.target, containerRef.current) && e.target !== ((_b = zen_1.zen.document) === null || _b === void 0 ? void 0 : _b.body);
44
24
  };
45
25
  if (!containerRef.current || getChildCondition()) {
46
26
  return;
@@ -50,14 +30,9 @@ const useTrapFocus = (containerRef, triggerRef, subscriptionTrigger, condition,
50
30
  : !(0, dialogHelpers_1.isElementInsideContainer)(target, containerEl.current) &&
51
31
  !(0, dialogHelpers_1.isElementInsideContainer)(target, triggerEl.current);
52
32
  const isTargetOutside = e.target ? checkIsElementOutside(e.target, containerRef, triggerRef) : undefined;
53
- const triggerElement = (_a = triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current) !== null && _a !== void 0 ? _a : null;
54
- const triggerSelf = (triggerElement === null || triggerElement === void 0 ? void 0 : triggerElement.matches(focusableSelector_1.FOCUSABLE_SELECTOR)) ? [triggerElement] : [];
55
- const triggerChildren = Array.from((_b = triggerElement === null || triggerElement === void 0 ? void 0 : triggerElement.querySelectorAll(focusableSelector_1.FOCUSABLE_SELECTOR)) !== null && _b !== void 0 ? _b : []);
56
- // querySelectorAll only returns descendants (never the element itself), so triggerSelf
57
- // and triggerChildren are disjoint by definition and need no deduplication.
58
- const triggerSelectors = [...triggerSelf, ...triggerChildren];
33
+ const triggerSelectors = ((_a = triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current) === null || _a === void 0 ? void 0 : _a.querySelectorAll(focusableSelector_1.FOCUSABLE_SELECTOR)) || [];
59
34
  const containerSelectors = containerRef.current.querySelectorAll(focusableSelector_1.FOCUSABLE_SELECTOR);
60
- const focusable = triggerRef ? [...triggerSelectors, ...Array.from(containerSelectors)] : [...Array.from(containerSelectors)];
35
+ const focusable = triggerRef ? [...Array.from(triggerSelectors), ...Array.from(containerSelectors)] : [...Array.from(containerSelectors)];
61
36
  if (!focusable.length) {
62
37
  return;
63
38
  }
@@ -74,59 +49,32 @@ const useTrapFocus = (containerRef, triggerRef, subscriptionTrigger, condition,
74
49
  return;
75
50
  }
76
51
  if (e.shiftKey) {
77
- if (((_c = zen_1.zen.document) === null || _c === void 0 ? void 0 : _c.activeElement) === first) {
52
+ if (((_b = zen_1.zen.document) === null || _b === void 0 ? void 0 : _b.activeElement) === first) {
78
53
  e.preventDefault();
79
54
  last === null || last === void 0 ? void 0 : last.focus();
80
55
  return;
81
56
  }
82
- if (firstContainerFocusable && ((_d = zen_1.zen.document) === null || _d === void 0 ? void 0 : _d.activeElement) === firstContainerFocusable) {
57
+ if (firstContainerFocusable && ((_c = zen_1.zen.document) === null || _c === void 0 ? void 0 : _c.activeElement) === firstContainerFocusable) {
83
58
  e.preventDefault();
84
59
  lastTriggerFocusable === null || lastTriggerFocusable === void 0 ? void 0 : lastTriggerFocusable.focus();
85
60
  }
86
61
  return;
87
62
  }
88
- if (((_e = zen_1.zen.document) === null || _e === void 0 ? void 0 : _e.activeElement) === last) {
63
+ if (((_d = zen_1.zen.document) === null || _d === void 0 ? void 0 : _d.activeElement) === last) {
89
64
  e.preventDefault();
90
65
  first === null || first === void 0 ? void 0 : first.focus();
91
66
  return;
92
67
  }
93
- if (lastTriggerFocusable && ((_f = zen_1.zen.document) === null || _f === void 0 ? void 0 : _f.activeElement) === lastTriggerFocusable) {
68
+ if (lastTriggerFocusable && ((_e = zen_1.zen.document) === null || _e === void 0 ? void 0 : _e.activeElement) === lastTriggerFocusable) {
94
69
  e.preventDefault();
95
70
  firstContainerFocusable === null || firstContainerFocusable === void 0 ? void 0 : firstContainerFocusable.focus();
96
71
  }
97
- else if (isLastChildOfFirst && first && (0, isChildOf_1.isChildOf)((_g = zen_1.zen.document) === null || _g === void 0 ? void 0 : _g.activeElement, first)) {
72
+ else if (isLastChildOfFirst && first && (0, isChildOf_1.isChildOf)((_f = zen_1.zen.document) === null || _f === void 0 ? void 0 : _f.activeElement, first)) {
98
73
  e.preventDefault();
99
74
  }
100
75
  return;
101
76
  }
102
- },
103
- // condition is consumed by useKeydown below, not read by handleKeyDown directly; its absence from deps is intentional.
104
- [containerRef, triggerRef, isElementVisible]);
77
+ }, [containerRef, triggerRef, isElementVisible]);
105
78
  (0, useKeydown_1.useKeydown)(handleKeyDown, subscriptionTrigger, condition);
106
- // When withTrigger mode closes (condition goes false), restore focus to the trigger
107
- // if focus landed on body (which happens when the popup's focused element is unmounted).
108
- // This restoration is intentionally scoped to the "focused element unmounted → body" case;
109
- // the general close case (e.g. click-outside, item selection) is handled separately by the
110
- // returnFocusToTrigger effect in absolute.tsx. Both are idempotent, so overlap is harmless.
111
- // Initialized to false because popups mount closed; the guard below reconciles the first
112
- // active/inactive edge, so a popup that mounts already open still resolves correctly.
113
- const isActiveRef = (0, react_1.useRef)(false);
114
- (0, react_1.useEffect)(() => {
115
- var _a, _b;
116
- const isActive = condition ? condition(subscriptionTrigger) : !!subscriptionTrigger;
117
- // Guard: short-circuit when the raw open/close state is unchanged to avoid spurious
118
- // focus restoration if an unstable condition reference re-fires this effect.
119
- if (!!subscriptionTrigger === isActiveRef.current) {
120
- isActiveRef.current = isActive;
121
- return;
122
- }
123
- if (!isActive && isActiveRef.current && (triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current)) {
124
- const active = (_a = zen_1.zen.document) === null || _a === void 0 ? void 0 : _a.activeElement;
125
- if (!active || active === ((_b = zen_1.zen.document) === null || _b === void 0 ? void 0 : _b.body)) {
126
- triggerRef.current.focus();
127
- }
128
- }
129
- isActiveRef.current = isActive;
130
- }, [condition, subscriptionTrigger, triggerRef]);
131
79
  };
132
80
  exports.useTrapFocus = useTrapFocus;
@@ -10,7 +10,7 @@ import { IAlignment } from "../utils/positioningUtils/alignments";
10
10
  export type TAlignment = "top" | "top-left" | "top-right" | "left" | "left-top" | "left-bottom" | "right" | "right-top" | "right-bottom" | "bottom" | "bottom-left" | "bottom-right";
11
11
  export interface IControlledPopup extends IZenComponentProps {
12
12
  triggerRef: RefObject<HTMLElement | null>;
13
- /** Alignment of the popup relative to its trigger. Defaults to `"bottom-start"`. */
13
+ /** Alignment of the popup relative to its trigger. Defaults to `"bottom-start"` (resolves to `"bottom-left"` in LTR and `"bottom-right"` in RTL). Accepts both logical and physical `TAlignment` values. */
14
14
  alignment?: TAlignmentAbsolute;
15
15
  id?: string;
16
16
  className?: string;
@@ -6,12 +6,26 @@ const react_1 = require("react");
6
6
  const absolute_1 = require("../absolute/absolute");
7
7
  const classNames_1 = require("../commonHelpers/classNames/classNames");
8
8
  const useClientReady_1 = require("../commonHelpers/hooks/useClientReady");
9
- const useRTLAlignment_1 = require("../utils/localization/useRTLAlignment");
9
+ const useDirection_1 = require("../utils/localization/useDirection");
10
+ const flipAlignment_1 = require("../utils/localization/flipAlignment");
10
11
  const ControlledPopup = ({ isOpen, id, paddingX, paddingY, triggerRef, className, children, alignment, inline, onOpenChange, useTrapFocusWithTrigger, shouldHoldScroll, ariaLabel, ariaLabelledby, recalculateOnScroll, closeOnScroll, preventAttributesAutoSet, focusOnOpen, alignmentsFn, role = "dialog" }) => {
11
12
  const autoId = (0, react_1.useId)();
12
13
  const popupId = id || autoId;
13
14
  const isClientReady = (0, useClientReady_1.useClientReady)();
14
- const rtlAlignment = (0, useRTLAlignment_1.useRTLAlignment)(alignment !== null && alignment !== void 0 ? alignment : "bottom-start");
15
+ const direction = (0, useDirection_1.useDirection)();
16
+ // ControlledPopup's sole alignment responsibility: flip deprecated physical values in RTL
17
+ // for backward compatibility with consumers that haven't migrated to logical TAlignment values.
18
+ // In RTL, flipAlignment is called: it flips physical values (e.g. "bottom-left" → "bottom-right")
19
+ // and is a no-op for logical values (e.g. "bottom-start" → "bottom-start"), so logical values
20
+ // pass through to Absolute unchanged. In LTR, flipAlignment is not called at all.
21
+ // Absolute/calculatePosition handles logical → physical resolution internally in both directions.
22
+ //
23
+ // Asymmetry note: passing a physical value (e.g. "bottom-left") directly to <Absolute> in RTL
24
+ // renders on the physical left (no flip). The same prop via ControlledPopup renders on the
25
+ // physical right (pre-flipped here). This is intentional — consumers migrating from
26
+ // ControlledPopup to Absolute directly must switch to logical values to retain RTL behavior.
27
+ const effectiveAlignment = alignment !== null && alignment !== void 0 ? alignment : "bottom-start";
28
+ const flippedAlignment = direction === "rtl" ? (0, flipAlignment_1.flipAlignment)(effectiveAlignment) : effectiveAlignment;
15
29
  (0, react_1.useEffect)(() => {
16
30
  if (!triggerRef.current || !isClientReady) {
17
31
  return;
@@ -26,6 +40,6 @@ const ControlledPopup = ({ isOpen, id, paddingX, paddingY, triggerRef, className
26
40
  triggerRef.current.setAttribute("aria-expanded", isOpen ? "true" : "false");
27
41
  triggerRef.current.setAttribute("aria-controls", popupId);
28
42
  }, [triggerRef, isOpen, popupId, preventAttributesAutoSet, isClientReady]);
29
- return ((0, jsx_runtime_1.jsx)(absolute_1.Absolute, Object.assign({ triggerRef: triggerRef, alignment: rtlAlignment, id: popupId, isOpen: isOpen, className: (0, classNames_1.classNames)(["zen-popup", className ? className : ""]), paddingX: paddingX, paddingY: paddingY, inline: inline, onOpenChange: onOpenChange, useTrapFocusWithTrigger: useTrapFocusWithTrigger, shouldHoldScroll: shouldHoldScroll }, (role !== false && typeof role === "string" ? { role } : {}), (role !== false && ariaLabel ? { ariaLabel } : {}), (role !== false && ariaLabelledby ? { ariaLabelledby } : {}), { recalculateOnScroll: recalculateOnScroll, closeOnScroll: closeOnScroll, focusOnOpen: focusOnOpen, alignmentsFn: alignmentsFn, children: children })));
43
+ return ((0, jsx_runtime_1.jsx)(absolute_1.Absolute, Object.assign({ triggerRef: triggerRef, alignment: flippedAlignment, id: popupId, isOpen: isOpen, className: (0, classNames_1.classNames)(["zen-popup", className ? className : ""]), paddingX: paddingX, paddingY: paddingY, inline: inline, onOpenChange: onOpenChange, useTrapFocusWithTrigger: useTrapFocusWithTrigger, shouldHoldScroll: shouldHoldScroll }, (role !== false && typeof role === "string" ? { role } : {}), (role !== false && ariaLabel ? { ariaLabel } : {}), (role !== false && ariaLabelledby ? { ariaLabelledby } : {}), { recalculateOnScroll: recalculateOnScroll, closeOnScroll: closeOnScroll, focusOnOpen: focusOnOpen, alignmentsFn: alignmentsFn, children: children })));
30
44
  };
31
45
  exports.ControlledPopup = ControlledPopup;
@@ -34,7 +34,7 @@ injectString("tr", "Collapse feed", "Ak\u0131\u015F\u0131 daralt");
34
34
  injectString("zh-Hans", "Collapse feed", "\u6298\u53E0\u52A8\u6001");
35
35
  injectString("zh-TW", "Collapse feed", "\u647A\u758A\u52D5\u614B");
36
36
  injectString("ro-RO", "Collapse feed", "Restr\xE2nge\u021Bi feedul");
37
- injectString("ar", "Collapse feed", "\u0637\u064A\u0651 \u0627\u0644\u062E\u0644\u0627\u0635\u0629");
37
+ injectString("ar-001", "Collapse feed", "\u0637\u064A \u0627\u0644\u0645\u0648\u062C\u0632");
38
38
  injectString("lt-LT", "Collapse feed", "Sutraukti sraut\u0105");
39
39
  injectString("lv-LV", "Collapse feed", "Sak\u013Caut pl\u016Bsmu");
40
40
  injectString("ka-GE", "Collapse feed", "\u10E4\u10D8\u10D3\u10D8\u10E1 \u10E9\u10D0\u10D9\u10D4\u10EA\u10D5\u10D0");
@@ -67,7 +67,7 @@ injectString("tr", "Expand feed", "Ak\u0131\u015F\u0131 geni\u015Flet");
67
67
  injectString("zh-Hans", "Expand feed", "\u5C55\u5F00\u52A8\u6001");
68
68
  injectString("zh-TW", "Expand feed", "\u5C55\u958B\u52D5\u614B");
69
69
  injectString("ro-RO", "Expand feed", "Extinde\u021Bi feedul");
70
- injectString("ar", "Expand feed", "\u062A\u0648\u0633\u064A\u0639 \u0627\u0644\u062E\u0644\u0627\u0635\u0629");
70
+ injectString("ar-001", "Expand feed", "\u062A\u0648\u0633\u064A\u0639 \u0627\u0644\u0645\u0648\u062C\u0632");
71
71
  injectString("lt-LT", "Expand feed", "I\u0161pl\u0117sti sraut\u0105");
72
72
  injectString("lv-LV", "Expand feed", "Izv\u0113rst pl\u016Bsmu");
73
73
  injectString("ka-GE", "Expand feed", "\u10E4\u10D8\u10D3\u10D8\u10E1 \u10D2\u10D0\u10E8\u10DA\u10D0");
@@ -1,4 +1,4 @@
1
- import { FC, PropsWithChildren, ReactElement } from "react";
1
+ import { FC, MouseEvent as ReactMouseEvent, PropsWithChildren, ReactElement } from "react";
2
2
  import { IZenIdComponentProps } from "../../../commonHelpers/zenComponent";
3
3
  import "./checkboxColumn.less";
4
4
  interface ICheckboxCellProps extends IZenIdComponentProps {
@@ -8,6 +8,7 @@ interface ICheckboxCellProps extends IZenIdComponentProps {
8
8
  disabled?: boolean;
9
9
  children?: ReactElement<typeof CheckboxCell.Content>;
10
10
  onChange?: (id: string, checked: boolean) => void;
11
+ onMouseDown?: (id: string, checked: boolean, e: ReactMouseEvent) => void;
11
12
  }
12
13
  interface ICheckboxCell extends FC<ICheckboxCellProps> {
13
14
  Content: FC<PropsWithChildren>;
@@ -4,7 +4,7 @@ exports.CheckboxCell = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const checkbox_1 = require("../../../checkbox/checkbox");
6
6
  const classNames_1 = require("../../../commonHelpers/classNames/classNames");
7
- const CheckboxCell = ({ id, checked, indeterminate, label, disabled, className, onChange, children }) => ((0, jsx_runtime_1.jsxs)("div", { className: (0, classNames_1.classNames)(["zen-checkbox-column", className || ""]), children: [(0, jsx_runtime_1.jsx)(checkbox_1.Checkbox, { className: "zen-checkbox-column__checkbox", checked: checked, indeterminate: indeterminate, disabled: disabled, title: label, onChange: e => onChange && onChange(id, e.target.checked), wrapped: true }), children] }));
7
+ const CheckboxCell = ({ id, checked, indeterminate, label, disabled, className, onChange, onMouseDown, children }) => ((0, jsx_runtime_1.jsxs)("div", { className: (0, classNames_1.classNames)(["zen-checkbox-column", className || ""]), onMouseDown: onMouseDown ? e => onMouseDown(id, checked, e) : undefined, children: [(0, jsx_runtime_1.jsx)(checkbox_1.Checkbox, { className: "zen-checkbox-column__checkbox", checked: checked, indeterminate: indeterminate, disabled: disabled, title: label, onChange: e => onChange && onChange(id, e.target.checked), wrapped: true }), children] }));
8
8
  exports.CheckboxCell = CheckboxCell;
9
9
  exports.CheckboxCell.Content = function content({ children }) {
10
10
  return (0, jsx_runtime_1.jsx)("div", { className: "zen-checkbox-column__content", children: children });
@@ -1,4 +1,4 @@
1
- import { ReactNode, RefObject } from "react";
1
+ import { MouseEvent as ReactMouseEvent, ReactNode, RefObject } from "react";
2
2
  import { IListColumnWrapper } from "../../listColumn";
3
3
  import "./checkboxColumn.less";
4
4
  import { SimpleEventHandler } from "../../../commonHelpers/simpleEventHandler";
@@ -17,7 +17,8 @@ export interface ICheckboxColumnWrapper<T extends object> extends IListColumnWra
17
17
  attach(event: "toggle", handler: (state: [Event, HTMLButtonElement]) => void): this;
18
18
  attach(event: "change", handler: (state: [string, boolean]) => void): this;
19
19
  attach(event: "change-all", handler: (state: [boolean]) => void): this;
20
- detach(event: "change" | "toggle" | "change-all", handler?: (state: unknown) => void): this;
20
+ attach(event: "mousedown", handler: (state: [string, boolean, ReactMouseEvent]) => void): this;
21
+ detach(event: "change" | "toggle" | "change-all" | "mousedown", handler?: (state: unknown) => void): this;
21
22
  }
22
23
  export declare enum SelectionState {
23
24
  All = 0,
@@ -34,6 +35,7 @@ export declare class CheckboxColumnWrapper<T extends IEntityWithId> extends Simp
34
35
  private state;
35
36
  private readonly actionsClickHandler;
36
37
  private readonly changeHandler;
38
+ private readonly mouseDownHandler;
37
39
  private readonly changeHandlerAll;
38
40
  constructor(selections: Set<string>, options: ICheckboxColumnOptions<T>, menuTriggerRef: RefObject<HTMLButtonElement | null>);
39
41
  get selectionState(): SelectionState;
@@ -67,6 +67,15 @@ class CheckboxColumnWrapper extends simpleEventHandler_1.SimpleEventHandler {
67
67
  this.fire("change", [id, checked]);
68
68
  }
69
69
  });
70
+ // Only fired for enabled checkboxes, so a disabled row can never become a drag anchor.
71
+ Object.defineProperty(this, "mouseDownHandler", {
72
+ enumerable: true,
73
+ configurable: true,
74
+ writable: true,
75
+ value: (id, checked, e) => {
76
+ this.fire("mousedown", [id, checked, e]);
77
+ }
78
+ });
70
79
  Object.defineProperty(this, "changeHandlerAll", {
71
80
  enumerable: true,
72
81
  configurable: true,
@@ -92,7 +101,7 @@ class CheckboxColumnWrapper extends simpleEventHandler_1.SimpleEventHandler {
92
101
  }
93
102
  const allowed = this.condition(entity);
94
103
  const isDisable = this.disabled ? this.disabled(entity) : this.state === SelectionState.All;
95
- const cell = ((0, jsx_runtime_1.jsx)(checkboxCell_1.CheckboxCell, { id: entity.id, className: allowed ? "" : "zen-checkbox-column--no-checkbox", checked: this.state === SelectionState.All || this.selections.has(entity.id), indeterminate: false, disabled: isDisable, label: this.options.createTitle(entity), onChange: this.changeHandler, children: (0, jsx_runtime_1.jsx)(checkboxCell_1.CheckboxCell.Content, { children: value }) }));
104
+ const cell = ((0, jsx_runtime_1.jsx)(checkboxCell_1.CheckboxCell, { id: entity.id, className: allowed ? "" : "zen-checkbox-column--no-checkbox", checked: this.state === SelectionState.All || this.selections.has(entity.id), indeterminate: false, disabled: isDisable, label: this.options.createTitle(entity), onChange: this.changeHandler, onMouseDown: isDisable ? undefined : this.mouseDownHandler, children: (0, jsx_runtime_1.jsx)(checkboxCell_1.CheckboxCell.Content, { children: value }) }));
96
105
  return cell;
97
106
  }
98
107
  renderHeader(title) {
@@ -38,7 +38,7 @@ injectString("tr", "Multiple row selection menu", "\xC7oklu s\u0131ra se\xE7imi
38
38
  injectString("zh-Hans", "Multiple row selection menu", "\u591A\u884C\u9009\u62E9\u83DC\u5355");
39
39
  injectString("zh-TW", "Multiple row selection menu", "\u591A\u5217\u9078\u64C7\u9078\u55AE");
40
40
  injectString("ro-RO", "Multiple row selection menu", "Meniu de selectare cu mai multe r\xE2nduri");
41
- injectString("ar", "Multiple row selection menu", "\u0642\u0627\u0626\u0645\u0629 \u0627\u062E\u062A\u064A\u0627\u0631 \u0635\u0641\u0648\u0641 \u0645\u062A\u0639\u062F\u062F\u0629");
41
+ injectString("ar-001", "Multiple row selection menu", "\u0642\u0627\u0626\u0645\u0629 \u0627\u062E\u062A\u064A\u0627\u0631 \u0635\u0641\u0648\u0641 \u0645\u062A\u0639\u062F\u062F\u0629");
42
42
  injectString("lt-LT", "Multiple row selection menu", "Keli\u0173 eilu\u010Di\u0173 pasirinkimo meniu");
43
43
  injectString("lv-LV", "Multiple row selection menu", "Vair\u0101ku rindu atlases izv\u0113lne");
44
44
  injectString("ka-GE", "Multiple row selection menu", "\u10DB\u10E0\u10D0\u10D5\u10D0\u10DA\u10D8 \u10DB\u10EC\u10D9\u10E0\u10D8\u10D5\u10D8\u10E1 \u10D0\u10E0\u10E9\u10D4\u10D5\u10D8\u10E1 \u10DB\u10D4\u10DC\u10D8\u10E3");
@@ -34,7 +34,7 @@ injectString("tr", "Action", "Eylem");
34
34
  injectString("zh-Hans", "Action", "\u64CD\u4F5C");
35
35
  injectString("zh-TW", "Action", "\u52D5\u4F5C");
36
36
  injectString("ro-RO", "Action", "M\u0103sur\u0103");
37
- injectString("ar", "Action", "\u0625\u062C\u0631\u0627\u0621");
37
+ injectString("ar-001", "Action", "\u0625\u062C\u0631\u0627\u0621");
38
38
  injectString("lt-LT", "Action", "Veiksmas");
39
39
  injectString("lv-LV", "Action", "Darb\u012Bba");
40
40
  injectString("ka-GE", "Action", "\u10DB\u10DD\u10E5\u10DB\u10D4\u10D3\u10D4\u10D1\u10D0");
@@ -44,7 +44,7 @@ injectString("tr", "Try adjusting your search or filter.", "Araman\u0131z\u0131
44
44
  injectString("zh-Hans", "Try adjusting your search or filter.", "\u5C1D\u8BD5\u8C03\u6574\u60A8\u7684\u641C\u7D22\u6216\u7B5B\u9009\u6761\u4EF6\u3002");
45
45
  injectString("zh-TW", "Try adjusting your search or filter.", "\u8ACB\u5617\u8A66\u8ABF\u6574\u60A8\u7684\u641C\u5C0B\u6216\u7BE9\u9078\u689D\u4EF6\u3002");
46
46
  injectString("ro-RO", "Try adjusting your search or filter.", "\xCEncerca\u021Bi s\u0103 ajusta\u021Bi c\u0103utarea sau filtrul.");
47
- injectString("ar", "Try adjusting your search or filter.", "\u062D\u0627\u0648\u0644 \u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0628\u062D\u062B \u0623\u0648 \u0639\u0627\u0645\u0644 \u0627\u0644\u062A\u0635\u0641\u064A\u0629.");
47
+ injectString("ar-001", "Try adjusting your search or filter.", "\u062D\u0627\u0648\u0644 \u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0628\u062D\u062B \u0623\u0648 \u0639\u0627\u0645\u0644 \u0627\u0644\u062A\u0635\u0641\u064A\u0629.");
48
48
  injectString("lt-LT", "Try adjusting your search or filter.", "Pabandykite koreguoti paie\u0161k\u0105 arba filtr\u0105.");
49
49
  injectString("lv-LV", "Try adjusting your search or filter.", "M\u0113\u0123iniet piel\u0101got mekl\u0113\u0161anu vai filtru.");
50
50
  injectString("ka-GE", "Try adjusting your search or filter.", "\u10E1\u10EA\u10D0\u10D3\u10D4\u10D7 \u10EB\u10D8\u10D4\u10D1\u10D8\u10E1 \u10D0\u10DC \u10E4\u10D8\u10DA\u10E2\u10E0\u10D8\u10E1 \u10DB\u10DD\u10E0\u10D2\u10D4\u10D1\u10D0.");
@@ -39,7 +39,7 @@ injectString("tr", "Column Settings", "S\xFCtun Ayarlar\u0131");
39
39
  injectString("zh-Hans", "Column Settings", "\u5217\u8BBE\u7F6E");
40
40
  injectString("zh-TW", "Column Settings", "\u6B04\u8A2D\u5B9A");
41
41
  injectString("ro-RO", "Column Settings", "Set\u0103ri coloane");
42
- injectString("ar", "Column Settings", "\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0639\u0645\u0648\u062F");
42
+ injectString("ar-001", "Column Settings", "\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0639\u0645\u0648\u062F");
43
43
  injectString("lt-LT", "Column Settings", "Stulpelio nustatymai");
44
44
  injectString("lv-LV", "Column Settings", "Kolonnas iestat\u012Bjumi");
45
45
  injectString("ka-GE", "Column Settings", "\u10E1\u10D5\u10D4\u10E2\u10D8\u10E1 \u10DE\u10D0\u10E0\u10D0\u10DB\u10D4\u10E2\u10E0\u10D4\u10D1\u10D8");