aefis-core-ui 7.0.0-rc.13 → 7.0.0-rc.131

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 (589) hide show
  1. package/core-ui/HOCs/withThemeProvider.tsx +2 -2
  2. package/core-ui/Icon/index.jsx +38 -2
  3. package/core-ui/components/ActionMenuButton/ActionMenuButton.jsx +54 -11
  4. package/core-ui/components/Actions/Actions.jsx +4 -3
  5. package/core-ui/components/Actions/components/Action/Action.jsx +7 -3
  6. package/core-ui/components/Actions/components/Action/components/ActionMenu/ActionMenu.jsx +68 -50
  7. package/core-ui/components/Actions/components/Action/components/Badge/Badge.jsx +3 -3
  8. package/core-ui/components/Actions/components/Action/components/Icon/Icon.jsx +4 -3
  9. package/core-ui/components/Actions/components/Action/components/Text/Text.jsx +4 -3
  10. package/core-ui/components/Alert/Alert.jsx +97 -13
  11. package/core-ui/components/Alert/components/ActionButton/ActionButton.jsx +57 -25
  12. package/core-ui/components/AnimatedExpandMoreIcon/AnimatedExpandMoreIcon.jsx +8 -4
  13. package/core-ui/components/AppToolbar/AppToolbar.jsx +93 -16
  14. package/core-ui/components/AppToolbar/components/Action/Action.jsx +14 -9
  15. package/core-ui/components/AppToolbar/components/UserButton/UserButton.jsx +12 -8
  16. package/core-ui/components/AutoComplete/AutoCompleteBase.jsx +2 -2
  17. package/core-ui/components/AutoComplete/AutoCompleteQuery.jsx +2 -2
  18. package/core-ui/components/AutoCompleteAddable/AutoCompleteAddable.jsx +2 -2
  19. package/core-ui/components/AutoCompleteAddable/components/AutoCompleteAddableBase.jsx +5 -3
  20. package/core-ui/components/AvatarBox/AvatarBox.jsx +32 -11
  21. package/core-ui/components/AvatarTitle/AvatarTitle.jsx +2 -2
  22. package/core-ui/components/AvatarTitle/UnstableAvatarTitle.jsx +12 -6
  23. package/core-ui/components/BusinessObject/BusinessObject.jsx +2 -2
  24. package/core-ui/components/BusinessObject/components/CardDisplay/CardDisplay.jsx +2 -2
  25. package/core-ui/components/BusinessObject/components/CardDisplay/components/OutcomeSpaceDisplay/OutcomeSpaceDisplay.jsx +2 -2
  26. package/core-ui/components/BusinessObject/components/ChipDisplay/ChipDisplay.jsx +2 -2
  27. package/core-ui/components/BusinessObject/components/ListItemDisplay/ListItemDisplay.jsx +2 -2
  28. package/core-ui/components/BusinessObject/entities/accreditor/accreditor.js +2 -2
  29. package/core-ui/components/BusinessObject/entities/administrativeDivision/administrativeDivision.js +2 -2
  30. package/core-ui/components/BusinessObject/entities/administrativeUnit/administrativeUnit.js +2 -2
  31. package/core-ui/components/BusinessObject/entities/assessment/assessment.js +2 -2
  32. package/core-ui/components/BusinessObject/entities/assignment/assignment.js +2 -2
  33. package/core-ui/components/BusinessObject/entities/badge/badge.js +2 -2
  34. package/core-ui/components/BusinessObject/entities/badge/components/BadgeChip/BadgeChip.jsx +2 -2
  35. package/core-ui/components/BusinessObject/entities/badge/components/BadgeListItem/BadgeListItem.jsx +2 -2
  36. package/core-ui/components/BusinessObject/entities/cocurricular/cocurricular.js +2 -2
  37. package/core-ui/components/BusinessObject/entities/college/college.js +2 -2
  38. package/core-ui/components/BusinessObject/entities/course/course.js +9 -8
  39. package/core-ui/components/BusinessObject/entities/courseOutcome/courseOutcome.js +2 -2
  40. package/core-ui/components/BusinessObject/entities/courseSection/courseSection.js +2 -2
  41. package/core-ui/components/BusinessObject/entities/department/department.js +2 -2
  42. package/core-ui/components/BusinessObject/entities/faculty/faculty.js +2 -2
  43. package/core-ui/components/BusinessObject/entities/institution/institution.js +2 -2
  44. package/core-ui/components/BusinessObject/entities/keyword/keyword.js +2 -2
  45. package/core-ui/components/BusinessObject/entities/outcome/outcome.js +2 -2
  46. package/core-ui/components/BusinessObject/entities/outcomeSpace/outcomeSpace.js +2 -2
  47. package/core-ui/components/BusinessObject/entities/performanceIndicator/performanceIndicator.js +2 -2
  48. package/core-ui/components/BusinessObject/entities/program/program.js +2 -2
  49. package/core-ui/components/BusinessObject/entities/programMap/programMap.js +2 -2
  50. package/core-ui/components/BusinessObject/entities/term/term.js +2 -2
  51. package/core-ui/components/BusinessObject/entities/user/user.js +2 -2
  52. package/core-ui/components/BusinessObjectCard/BusinessObjectCard.jsx +3 -7
  53. package/core-ui/components/BusinessObjectCard/components/CardSection/CardSection.jsx +2 -2
  54. package/core-ui/components/BusinessObjectCard/components/CardSectionTitle/CardSectionTitle.jsx +2 -2
  55. package/core-ui/components/BusinessObjectCard/components/EmptyCardSection/EmptyCardSection.jsx +2 -2
  56. package/core-ui/components/BusinessObjectCard/components/Skeleton/Skeleton.jsx +2 -2
  57. package/core-ui/components/BusinessObjectPanel/BusinessObjectPanel.jsx +4 -2
  58. package/core-ui/components/BusinessObjectPanel/components/Header/Header.jsx +7 -7
  59. package/core-ui/components/BusinessObjectPanel/components/Section/Section.jsx +4 -4
  60. package/core-ui/components/BusinessObjectPanel/components/SectionTitle/SectionTitle.jsx +3 -3
  61. package/core-ui/components/BusinessObjectPicker/BusinessObjectPicker.jsx +354 -81
  62. package/core-ui/components/BusinessObjectPicker/_ai_docs/2026-06-09-business-object-picker-enhanced-search-a11y-audit.md +55 -0
  63. package/core-ui/components/BusinessObjectPicker/_ai_docs/2026-06-22-enhanced-search-dialog-usecallback-stability.md +40 -0
  64. package/core-ui/components/BusinessObjectPicker/_ai_docs/2026-08-24-multiselect-selection-indicators.md +24 -0
  65. package/core-ui/components/BusinessObjectPicker/components/AddItemFormDialog/AddItemFormDialog.jsx +2 -2
  66. package/core-ui/components/BusinessObjectPicker/components/DebouncedTextField/DebouncedTextField.jsx +2 -2
  67. package/core-ui/components/BusinessObjectPicker/components/EnhancedSearchDialog/EnhancedSearchDialog.jsx +142 -23
  68. package/core-ui/components/BusinessObjectPicker/components/EnhancedSearchDialog/utils/filterMerge.js +122 -0
  69. package/core-ui/components/BusinessObjectPicker/components/EnhancedSearchDialog/utils/filterMerge.test.js +177 -0
  70. package/core-ui/components/BusinessObjectPicker/components/RadioGroup/RadioGroup.jsx +2 -2
  71. package/core-ui/components/BusinessObjectPicker/hooks/useAutoCompleteValue.js +2 -2
  72. package/core-ui/components/BusinessObjectPicker/services/withEventManager.js +2 -2
  73. package/core-ui/components/BusinessObjectPicker/utils/updateSelectedItems.js +2 -2
  74. package/core-ui/components/BusinessObjectStatus/BusinessObjectStatus.jsx +2 -2
  75. package/core-ui/components/BusinessObjectStatus/components/ChipDisplay/ChipDisplay.jsx +3 -2
  76. package/core-ui/components/BusinessObjectStatus/components/ListItemDisplay/ListItemDisplay.jsx +5 -4
  77. package/core-ui/components/BusinessObjectStatus/config.js +2 -2
  78. package/core-ui/components/BusinessObjectStatusButton/BusinessObjectStatusButton.jsx +3 -5
  79. package/core-ui/components/BusinessObjectStatusButton/withStatusButtonDataSource.jsx +2 -2
  80. package/core-ui/components/BusinessObjectStatusPicker/BusinessObjectStatusPicker.jsx +2 -2
  81. package/core-ui/components/BusinessObjectTable/BusinessObjectTable.jsx +2 -2
  82. package/core-ui/components/BusinessObjectTable/FilteredBusinessObjectTable.jsx +2 -2
  83. package/core-ui/components/Button/Button.jsx +25 -5
  84. package/core-ui/components/Button/theme.js +25 -6
  85. package/core-ui/components/Charts/Charts.js +2 -2
  86. package/core-ui/components/Charts/components/WordCloud/WordCloud.jsx +2 -2
  87. package/core-ui/components/Chip/Chip.jsx +29 -28
  88. package/core-ui/components/ChipList/ChipList.jsx +74 -101
  89. package/core-ui/components/Collapsible/Collapsible.jsx +2 -2
  90. package/core-ui/components/Collapsible/CollapsibleContent/CollapsibleContent.jsx +13 -5
  91. package/core-ui/components/Collapsible/CollapsibleContentButton/CollapsibleContentButton.jsx +6 -3
  92. package/core-ui/components/Collapsible/CollapsibleContentButtonContainer/CollapsibleContentButtonContainer.jsx +2 -2
  93. package/core-ui/components/Collapsible/CollapsibleContentContainer/CollapsibleContentContainer.jsx +2 -2
  94. package/core-ui/components/Collapsible/CollapsibleProvider.jsx +2 -2
  95. package/core-ui/components/ConfirmDialog/ConfirmContext.js +2 -2
  96. package/core-ui/components/ConfirmDialog/ConfirmDialog.jsx +3 -11
  97. package/core-ui/components/ConfirmDialog/ConfirmProvider.jsx +2 -2
  98. package/core-ui/components/ConfirmDialog/index.js +2 -2
  99. package/core-ui/components/ConfirmDialog/useConfirm.js +2 -2
  100. package/core-ui/components/ContactForm/ContactForm.jsx +2 -2
  101. package/core-ui/components/ContactForm/utils/checkFormValues.js +2 -2
  102. package/core-ui/components/ContactForm/utils/generateMailingTemplate.js +2 -2
  103. package/core-ui/components/ContentBox/ContentBox.jsx +89 -97
  104. package/core-ui/components/ContentBox/components/Header/Header.jsx +6 -5
  105. package/core-ui/components/ContentBox/components/Header/utils/index.js +2 -2
  106. package/core-ui/components/CoreProvider/CoreProvider.jsx +2 -2
  107. package/core-ui/components/CoreSnackbarProvider/CoreSnackbarProvider.jsx +2 -2
  108. package/core-ui/components/CurriculumChart/CurriculumChart.jsx +2 -2
  109. package/core-ui/components/CurriculumChart/components/CurriculumNode/CurriculumNode.jsx +2 -2
  110. package/core-ui/components/DataTable/DataTable.jsx +2 -2
  111. package/core-ui/components/DataTable/components/TableStyles/TableStyles.js +2 -2
  112. package/core-ui/components/DataTable/components/TooltipCell/TooltipCell.jsx +2 -2
  113. package/core-ui/components/DatePicker/DatePicker.jsx +2 -2
  114. package/core-ui/components/DateTitle/DateTitle.jsx +2 -2
  115. package/core-ui/components/DisplayInFrame/DisplayInFrame.jsx +96 -29
  116. package/core-ui/components/DocViewer/{DocViewer.jsx → DocViewer.tsx} +102 -81
  117. package/core-ui/components/DocViewer/PRIZMDOC_VIEWER_CONTROL_API.md +31 -0
  118. package/core-ui/components/DocViewer/components/PrizmDocViewer/PrizmDocViewer.tsx +79 -98
  119. package/core-ui/components/DocViewer/components/PrizmDocViewer/createViewingSession.test.ts +133 -0
  120. package/core-ui/components/DocViewer/components/PrizmDocViewer/createViewingSession.ts +144 -0
  121. package/core-ui/components/DocViewer/components/PrizmDocViewer/highlight/ALGORITHM.md +464 -0
  122. package/core-ui/components/DocViewer/components/PrizmDocViewer/highlight/anchorPageCutSearch.ts +279 -0
  123. package/core-ui/components/DocViewer/components/PrizmDocViewer/highlight/buildFallbackSearchPattern.test.ts +118 -0
  124. package/core-ui/components/DocViewer/components/PrizmDocViewer/highlight/buildFallbackSearchPattern.ts +123 -0
  125. package/core-ui/components/DocViewer/components/PrizmDocViewer/highlight/debugLog.ts +49 -0
  126. package/core-ui/components/DocViewer/components/PrizmDocViewer/highlight/getTextOverlap.ts +61 -0
  127. package/core-ui/components/DocViewer/components/PrizmDocViewer/highlight/normalizeSearchText.test.ts +121 -0
  128. package/core-ui/components/DocViewer/components/PrizmDocViewer/highlight/normalizeSearchText.ts +70 -0
  129. package/core-ui/components/DocViewer/components/PrizmDocViewer/highlight/pageCutSearch.ts +407 -0
  130. package/core-ui/components/DocViewer/components/PrizmDocViewer/highlight/useTextHighlightSearch.ts +398 -0
  131. package/core-ui/components/DocViewer/components/PrizmDocViewer/prizmdoc.types.ts +4 -2
  132. package/core-ui/components/Drawer/Drawer.jsx +141 -52
  133. package/core-ui/components/DynamicContainer/DynamicContainer.jsx +2 -2
  134. package/core-ui/components/DynamicForm/DynamicForm.jsx +2 -2
  135. package/core-ui/components/DynamicForm/Fields/BadgeKeywordField/AutoCompleteBadgeQuery.jsx +2 -2
  136. package/core-ui/components/DynamicForm/Fields/BadgeKeywordField/BadgeKeyworField.jsx +2 -2
  137. package/core-ui/components/DynamicForm/Fields/BusinessObjectPickerField/BusinessObjectPickerField.jsx +2 -2
  138. package/core-ui/components/DynamicForm/Fields/DateRangeField/DateRangeField.jsx +2 -2
  139. package/core-ui/components/DynamicForm/Fields/DateSelect/DateSelect.jsx +2 -2
  140. package/core-ui/components/DynamicForm/Fields/DateSelect/DateSelectSimple.jsx +2 -2
  141. package/core-ui/components/DynamicForm/Fields/DateSelect/DateTypeUtil.js +2 -2
  142. package/core-ui/components/DynamicForm/Fields/LinkUserField/LinkUserField.jsx +2 -2
  143. package/core-ui/components/DynamicForm/Fields/LinkUserField/LinkUserWidget.jsx +2 -2
  144. package/core-ui/components/DynamicForm/Fields/SelectField/SelectField.jsx +2 -2
  145. package/core-ui/components/DynamicForm/Fields/SelectField/SelectFieldLoading.jsx +2 -2
  146. package/core-ui/components/DynamicForm/Fields/SelectField/SelectFieldReadOnly.jsx +2 -2
  147. package/core-ui/components/DynamicForm/Fields/StatusField/StatusField.jsx +2 -2
  148. package/core-ui/components/DynamicForm/Fields/StatusField/StatusFieldReadOnly.jsx +2 -2
  149. package/core-ui/components/DynamicForm/Fields/UploadField/ImageUploadReadOnly.jsx +2 -2
  150. package/core-ui/components/DynamicForm/Fields/UploadField/Upload.jsx +2 -2
  151. package/core-ui/components/DynamicForm/Fields/UploadField/UploadField.js +2 -2
  152. package/core-ui/components/DynamicForm/HOCs/connect/connect.jsx +2 -2
  153. package/core-ui/components/DynamicForm/HOCs/globalHOC.js +2 -2
  154. package/core-ui/components/DynamicForm/HOCs/withEmtyValue/withEmptyValue.jsx +2 -2
  155. package/core-ui/components/DynamicForm/HOCs/withEvalDisable/withEvalDisable.jsx +2 -2
  156. package/core-ui/components/DynamicForm/HOCs/withReadOnly/withReadOnly.jsx +2 -2
  157. package/core-ui/components/DynamicForm/HOCs/withRenderUiSchema/withRenderUiSchema.jsx +2 -2
  158. package/core-ui/components/DynamicForm/HOCs/withValidate/withValidate.jsx +2 -2
  159. package/core-ui/components/DynamicForm/Templates/ArrayFieldTemplate.jsx +2 -2
  160. package/core-ui/components/DynamicForm/Templates/CustomFieldTemplate.jsx +2 -2
  161. package/core-ui/components/DynamicForm/Templates/ObjectFieldTemplate.jsx +2 -2
  162. package/core-ui/components/DynamicForm/Widgets/CurrencyWidget/CurrencyWidget.jsx +2 -2
  163. package/core-ui/components/DynamicForm/Widgets/DateWidget/DateWidget.jsx +2 -2
  164. package/core-ui/components/DynamicForm/Widgets/PhoneWidget/PhoneWidget.jsx +2 -2
  165. package/core-ui/components/DynamicForm/Widgets/PhoneWidget/utils.jsx +2 -2
  166. package/core-ui/components/DynamicForm/Widgets/SelectWidget/SelectWidget.jsx +2 -2
  167. package/core-ui/components/DynamicForm/Widgets/TextWidget/TextWidget.jsx +2 -2
  168. package/core-ui/components/DynamicForm/Widgets/TextareaWidget/TextareaWidget.jsx +2 -2
  169. package/core-ui/components/DynamicForm/Widgets/ValidateWidget/ValidateWidget.jsx +2 -2
  170. package/core-ui/components/DynamicForm/commonHOCs.js +2 -2
  171. package/core-ui/components/DynamicForm/components/AutoComplete/AutoCompleteBase.jsx +2 -2
  172. package/core-ui/components/DynamicForm/components/AutoComplete/AutoCompleteQuery.jsx +2 -2
  173. package/core-ui/components/DynamicForm/components/AutoComplete/AutoCompleteSearch.jsx +2 -2
  174. package/core-ui/components/DynamicForm/components/AutoComplete/AutoCompleteStatus.jsx +2 -2
  175. package/core-ui/components/DynamicForm/components/DisableWrapper/DisableWrapper.jsx +2 -2
  176. package/core-ui/components/DynamicForm/components/FieldContainer/FieldContainer.jsx +2 -2
  177. package/core-ui/components/DynamicForm/components/FormButtons/FormButtons.jsx +2 -2
  178. package/core-ui/components/DynamicForm/components/ReadOnlyView/ReadOnlyView.jsx +2 -2
  179. package/core-ui/components/DynamicForm/components/SelectComponent/SelectComponent.js +2 -2
  180. package/core-ui/components/DynamicForm/components/TextWidgetBase/TextWidgetBase.jsx +2 -2
  181. package/core-ui/components/DynamicForm/components/ToggleButtonField/ToggleButtonField.jsx +2 -2
  182. package/core-ui/components/DynamicForm/components/ToggleButtonWidget/ToggleButtonWidget.jsx +2 -2
  183. package/core-ui/components/DynamicForm/hooks/useEvalQueryParam/useEvalQueryParam.js +2 -2
  184. package/core-ui/components/DynamicForm/hooks/useFormState/useFormState.js +2 -2
  185. package/core-ui/components/DynamicForm/hooks/useFormStateScopedEval/useFormStateScopedEval.js +2 -2
  186. package/core-ui/components/DynamicForm/hooks/useProcessCondition/useProcessCondition.js +2 -2
  187. package/core-ui/components/DynamicForm/hooks/useQueryTemplateParam/useQueryTemplateParam.js +2 -2
  188. package/core-ui/components/DynamicForm/hooks/useReadOnly/useReadOnly.js +2 -2
  189. package/core-ui/components/DynamicForm/hooks/useRender/useRender.js +2 -2
  190. package/core-ui/components/DynamicForm/hooks/useSelector/useSelector.js +2 -2
  191. package/core-ui/components/DynamicForm/hooks/useSubmitted/useSubmitted.js +2 -2
  192. package/core-ui/components/DynamicForm/store.js +2 -2
  193. package/core-ui/components/DynamicForm/utils/decodeHtml.js +2 -2
  194. package/core-ui/components/DynamicForm/utils/formStore.js +2 -2
  195. package/core-ui/components/DynamicForm/utils/getDateObject.js +2 -2
  196. package/core-ui/components/DynamicForm/utils/getError.jsx +2 -2
  197. package/core-ui/components/DynamicForm/utils/processForm.js +2 -2
  198. package/core-ui/components/DynamicForm/validation/rules.js +2 -2
  199. package/core-ui/components/DynamicForm/validation/transformErrors.js +2 -2
  200. package/core-ui/components/EditableText/EditableText.jsx +2 -2
  201. package/core-ui/components/EmptyStateMessage/EmptyStateMessage.jsx +217 -0
  202. package/core-ui/components/ErrorMessage/ErrorMessage.jsx +2 -2
  203. package/core-ui/components/FileViewer/FileViewer.jsx +18 -6
  204. package/core-ui/components/FileViewer/components/DownloadInfo/DownloadInfo.jsx +5 -4
  205. package/core-ui/components/FilterChipRow/FilterChipRow.jsx +10 -2
  206. package/core-ui/components/FilterChipRow/components/FilterChips/FilterChips.jsx +16 -12
  207. package/core-ui/components/FilterPanel/FilterPanel.jsx +30 -25
  208. package/core-ui/components/FilterPanel/components/FilterChips/FilterChips.jsx +3 -3
  209. package/core-ui/components/FilterPanel/components/FilterItem/FilterItem.jsx +5 -2
  210. package/core-ui/components/FilterPanel/components/FilterMenu/FilterMenu.jsx +3 -3
  211. package/core-ui/components/FilterPanel/components/FilterSelection/FilterSelection.jsx +3 -3
  212. package/core-ui/components/FilterPanel/components/PanelDisplay/PanelDisplay.jsx +3 -3
  213. package/core-ui/components/FilterPanel/components/SortPicker/SortPicker.jsx +5 -2
  214. package/core-ui/components/FilterPanel/components/TextSearch/TextSearch.jsx +3 -3
  215. package/core-ui/components/FilterPanel/hooks/useFilterState.js +2 -2
  216. package/core-ui/components/FilterPanel/utils/evaluatePickerFilter.js +2 -2
  217. package/core-ui/components/FilterPanel/utils/formatFilters.js +2 -2
  218. package/core-ui/components/FilterPanel/utils/getFilterItemId.js +2 -2
  219. package/core-ui/components/FilterPanel/utils/mapFilters.js +2 -2
  220. package/core-ui/components/FilterPanelWithTextSearch/FilterPanelWithTextSearch.jsx +10 -4
  221. package/core-ui/components/FocusWrapper/FocusWrapper.jsx +29 -17
  222. package/core-ui/components/FocusWrapper/_ai_docs/2026-08-22-centralized-focus-lifecycle-design.md +196 -0
  223. package/core-ui/components/FocusWrapper/_ai_docs/2026-08-22-centralized-focus-lifecycle-plan.md +994 -0
  224. package/core-ui/components/Footer/Footer.jsx +17 -6
  225. package/core-ui/components/FormElements/FormElements.js +2 -2
  226. package/core-ui/components/FormElements/components/CopyInput/CopyInput.jsx +2 -2
  227. package/core-ui/components/FormElements/components/SimpleSelect/SimpleSelect.jsx +2 -2
  228. package/core-ui/components/FormElements/components/ToggleButton/ToggleButton.jsx +2 -2
  229. package/core-ui/components/FramerMotion/Collapsible/index.tsx +2 -2
  230. package/core-ui/components/FullPageViewer/FullPageViewer.jsx +230 -43
  231. package/core-ui/components/FullPageViewer/hooks/useFpvWindowMessage.js +2 -2
  232. package/core-ui/components/Helios/Breadcrumbs/Breadcrumbs.tsx +216 -0
  233. package/core-ui/components/Helios/BusinessObjectCard/BusinessObjectCard.tsx +637 -0
  234. package/core-ui/components/Helios/BusinessObjectCard/_ai_docs/2026-05-18-business-object-card-a11y-audit.md +71 -0
  235. package/core-ui/components/Helios/BusinessObjectCard/components/CardSection/CardSection.tsx +65 -0
  236. package/core-ui/components/Helios/BusinessObjectCard/components/Skeleton/Skeleton.tsx +149 -0
  237. package/core-ui/components/Helios/BusinessObjectCard/density.ts +69 -0
  238. package/core-ui/components/Helios/BusinessObjectHeader/BusinessObjectHeader.tsx +507 -0
  239. package/core-ui/components/Helios/BusinessObjectHeader/HeaderActions.tsx +232 -0
  240. package/core-ui/components/Helios/Drawer/Drawer.tsx +98 -36
  241. package/core-ui/components/Helios/Drawer/Layouts/DrawerBottomBarLayout/DrawerBottomBarLayout.tsx +3 -3
  242. package/core-ui/components/Helios/Drawer/Layouts/DrawerContent/DrawerContent.tsx +2 -2
  243. package/core-ui/components/Helios/FilterPanel/FilterPanel.jsx +2 -2
  244. package/core-ui/components/Helios/FilterPanel/components/FilterChips/FilterChips.jsx +2 -2
  245. package/core-ui/components/Helios/FilterPanel/components/FilterItem/FilterItem.jsx +2 -2
  246. package/core-ui/components/Helios/FilterPanel/components/FilterMenu/FilterMenu.jsx +2 -2
  247. package/core-ui/components/Helios/FilterPanel/components/FilterSelection/FilterSelection.jsx +2 -2
  248. package/core-ui/components/Helios/FilterPanel/components/PanelDisplay/PanelDisplay.jsx +2 -2
  249. package/core-ui/components/Helios/FilterPanel/components/SortPicker/SortPicker.jsx +2 -2
  250. package/core-ui/components/Helios/FilterPanel/components/TextSearch/TextSearch.jsx +2 -2
  251. package/core-ui/components/Helios/FilterPanel/hooks/useFilterState.js +2 -2
  252. package/core-ui/components/Helios/FilterPanel/utils/evaluatePickerFilter.js +2 -2
  253. package/core-ui/components/Helios/FilterPanel/utils/formatFilters.js +2 -2
  254. package/core-ui/components/Helios/FilterPanel/utils/getFilterItemId.js +2 -2
  255. package/core-ui/components/Helios/FilterPanel/utils/mapFilters.js +2 -2
  256. package/core-ui/components/Helios/ScrollableContent/ScrollableContent.tsx +36 -13
  257. package/core-ui/components/Helios/SegmentedControl/SegmentedControl.tsx +343 -0
  258. package/core-ui/components/Helios/SegmentedControl/_ai_docs/2026-05-15-segmented-control-a11y-audit.md +66 -0
  259. package/core-ui/components/Helios/Typography/components/Body1/Body1.jsx +2 -2
  260. package/core-ui/components/Helios/Typography/components/Body2/Body2.jsx +2 -2
  261. package/core-ui/components/Helios/Typography/components/BodyText/BodyText.jsx +2 -2
  262. package/core-ui/components/Helios/Typography/components/Caption/Caption.jsx +2 -2
  263. package/core-ui/components/Helios/Typography/components/H1/H1.jsx +2 -2
  264. package/core-ui/components/Helios/Typography/components/H2/H2.jsx +16 -5
  265. package/core-ui/components/Helios/Typography/components/H3/H3.jsx +16 -6
  266. package/core-ui/components/Helios/Typography/components/H4/H4.jsx +16 -6
  267. package/core-ui/components/Helios/Typography/components/H5/H5.jsx +16 -5
  268. package/core-ui/components/Helios/Typography/components/H6/H6.jsx +2 -2
  269. package/core-ui/components/Helios/Typography/components/Overline/Overline.jsx +2 -2
  270. package/core-ui/components/Helios/Typography/components/SmallText/SmallText.jsx +2 -2
  271. package/core-ui/components/Helios/Typography/index.js +2 -2
  272. package/core-ui/components/Helios/Typography/styles/index.js +2 -2
  273. package/core-ui/components/Helios/index.js +9 -2
  274. package/core-ui/components/IconButton/IconButton.jsx +23 -5
  275. package/core-ui/components/IconPicker/IconPicker.jsx +2 -2
  276. package/core-ui/components/Image/Image.jsx +2 -2
  277. package/core-ui/components/Image/SvgImage.jsx +2 -2
  278. package/core-ui/components/Image/components/ErrorFallback.jsx +2 -2
  279. package/core-ui/components/Image/components/Skeleton/Skeleton.jsx +2 -2
  280. package/core-ui/components/IsometricImage/IsometricImage.jsx +2 -2
  281. package/core-ui/components/List/List.jsx +26 -20
  282. package/core-ui/components/ListItem/ListItem.jsx +96 -36
  283. package/core-ui/components/ListItemGroup/ListItemGroup.jsx +22 -13
  284. package/core-ui/components/MUI/Box/Box.tsx +2 -2
  285. package/core-ui/components/MUI/Divider/Divider.tsx +2 -2
  286. package/core-ui/components/MUI/Grid/Grid.tsx +2 -2
  287. package/core-ui/components/MUI/GridLegacyV2/GridLegacyV2.tsx +5 -3
  288. package/core-ui/components/MUI/LinearProgress/LinearProgress.tsx +2 -2
  289. package/core-ui/components/MUI/Link/Link.tsx +2 -2
  290. package/core-ui/components/MUI/Paper/Paper.tsx +2 -2
  291. package/core-ui/components/MUI/Stack/Stack.tsx +2 -2
  292. package/core-ui/components/MUI/TextField/TextField.tsx +2 -2
  293. package/core-ui/components/MUI/Tooltip/Tooltip.tsx +2 -2
  294. package/core-ui/components/MUI/Typography/Typography.tsx +2 -2
  295. package/core-ui/components/MenuButton/MenuButton.jsx +67 -23
  296. package/core-ui/components/ModalDialog/ModalDialog.jsx +85 -18
  297. package/core-ui/components/ModalDialog/ModalDialog.test.jsx +111 -0
  298. package/core-ui/components/ModalDialog/TransitionComponent.jsx +10 -3
  299. package/core-ui/components/ModalDialog/_ai_docs/2026-08-22-modal-dialog-focus-lifecycle-audit.md +78 -0
  300. package/core-ui/components/ModalDialog/_ai_docs/2026-09-03-modal-aria-hidden-hack-removal.md +103 -0
  301. package/core-ui/components/ModalDialog/components/DialogTitle/DialogTitle.jsx +88 -20
  302. package/core-ui/components/ModalDialog/components/FullScreenAppBar/FullScreenAppBar.jsx +89 -38
  303. package/core-ui/components/Navigation/Navigation.js +2 -2
  304. package/core-ui/components/Navigation/components/Breadcrumbs.jsx +2 -2
  305. package/core-ui/components/Navigation/components/Drawer.jsx +2 -2
  306. package/core-ui/components/Navigation/components/NavigationProvider.jsx +2 -2
  307. package/core-ui/components/Navigation/components/SecondaryMenu.jsx +2 -2
  308. package/core-ui/components/NavigationButtons/NavigationButtons.jsx +11 -10
  309. package/core-ui/components/NavigationDrawer/NavigationDrawer.jsx +2 -2
  310. package/core-ui/components/NavigationDrawerV2/NavigationDrawerV2.test.tsx +69 -0
  311. package/core-ui/components/NavigationDrawerV2/NavigationDrawerV2.tsx +153 -42
  312. package/core-ui/components/NavigationDrawerV2/components/DrawerHeader.tsx +18 -6
  313. package/core-ui/components/NavigationDrawerV2/components/DrawerTitle.tsx +9 -5
  314. package/core-ui/components/NavigationDrawerV2/components/ItemIcon.tsx +3 -3
  315. package/core-ui/components/NavigationDrawerV2/components/MenuItem.tsx +219 -99
  316. package/core-ui/components/NavigationDrawerV2/components/SubMenuSidebar.tsx +85 -10
  317. package/core-ui/components/NavigationDrawerV2/components/index.ts +2 -2
  318. package/core-ui/components/NavigationDrawerV2/constants/index.ts +6 -4
  319. package/core-ui/components/NavigationDrawerV2/hooks/useNavigationMenuContext.tsx +14 -10
  320. package/core-ui/components/NavigationDrawerV2/types/index.ts +28 -8
  321. package/core-ui/components/NavigationDrawerV2/utils/animations.ts +2 -2
  322. package/core-ui/components/NavigationHorizontalMenuPanel/NavigationHorizontalMenuPanel.jsx +2 -2
  323. package/core-ui/components/NavigationHorizontalMenuPanel/components/Level1Base.jsx +2 -2
  324. package/core-ui/components/NavigationHorizontalMenuPanel/components/Level2Base.jsx +22 -12
  325. package/core-ui/components/NavigationHorizontalMenuPanel/components/Level3Base.jsx +26 -12
  326. package/core-ui/components/NavigationHorizontalMenuPanel/components/MenuItems.jsx +4 -2
  327. package/core-ui/components/NavigationMenuPanel/NavigationMenuPanel.jsx +2 -2
  328. package/core-ui/components/NavigationMenuPanel/components/ClickableItem/ClickableItem.jsx +2 -2
  329. package/core-ui/components/NavigationMenuPanel/components/ExpandableItem/ExpandableItem.jsx +2 -2
  330. package/core-ui/components/NavigationMenuPanel/components/ItemIcon/ItemIcon.jsx +2 -2
  331. package/core-ui/components/NavigationMenuPanel/components/MenuItem/MenuItem.jsx +2 -2
  332. package/core-ui/components/NavigationMenuPanel/components/MenuItemBase/MenuItemBase.jsx +2 -2
  333. package/core-ui/components/NestedMenu/NestedMenu.jsx +2 -2
  334. package/core-ui/components/Notification/Notification.jsx +5 -6
  335. package/core-ui/components/OutcomeSpace/OutcomeSpace.jsx +2 -2
  336. package/core-ui/components/OutcomeSpace/components/ChipDisplay/ChipDisplay.jsx +2 -2
  337. package/core-ui/components/OutcomeSpace/components/ListItemDisplay/ListItemDisplay.jsx +2 -2
  338. package/core-ui/components/OutcomeSpace/spaces/administrativeDivision/administrativeDivision.js +2 -2
  339. package/core-ui/components/OutcomeSpace/spaces/administrativeUnit/administrativeUnit.js +2 -2
  340. package/core-ui/components/OutcomeSpace/spaces/college/college.js +2 -2
  341. package/core-ui/components/OutcomeSpace/spaces/department/department.js +2 -2
  342. package/core-ui/components/OutcomeSpace/spaces/external/external.js +2 -2
  343. package/core-ui/components/OutcomeSpace/spaces/institution/institution.js +2 -2
  344. package/core-ui/components/OutcomeSpace/spaces/program/program.js +2 -2
  345. package/core-ui/components/PanelDrawer/PanelDrawer.jsx +2 -2
  346. package/core-ui/components/ProgressChart/{ProgressChart.jsx → ProgressChart.tsx} +69 -68
  347. package/core-ui/components/ProgressChart/components/BarChart/{BarChart.jsx → BarChart.tsx} +66 -38
  348. package/core-ui/components/ProgressChart/components/CircleChart/{CircleChart.jsx → CircleChart.tsx} +32 -33
  349. package/core-ui/components/ProgressChart/components/CircleChart/{CircleChartTitle.jsx → CircleChartTitle.tsx} +20 -35
  350. package/core-ui/components/ProgressChart/components/MultiSeriesBar/{MultiSeriesBar.jsx → MultiSeriesBar.tsx} +138 -132
  351. package/core-ui/components/ProgressChart/components/MultiSeriesBar/_ai_docs/2026-07-01-multi-series-bar-a11y-audit.md +70 -0
  352. package/core-ui/components/ProgressChart/components/SliderChart/{SliderChart.jsx → SliderChart.tsx} +66 -42
  353. package/core-ui/components/QueryBuilder/Operators.jsx +2 -2
  354. package/core-ui/components/QueryBuilder/QueryBuilder.jsx +2 -2
  355. package/core-ui/components/QueryBuilder/config.jsx +2 -2
  356. package/core-ui/components/QueryBuilder/init_logic.js +2 -2
  357. package/core-ui/components/QueryBuilder/init_value.js +2 -2
  358. package/core-ui/components/QueryBuilder/styles/styles.js +2 -2
  359. package/core-ui/components/RichDataTable/RichDataTable.jsx +2 -2
  360. package/core-ui/components/RichDataTable/functions.jsx +2 -2
  361. package/core-ui/components/RubricScoreSlider/RubricScoreSlider.jsx +3 -2
  362. package/core-ui/components/RubricScoreSlider/components/Legend/Legend.jsx +2 -2
  363. package/core-ui/components/RubricScoreSlider/css/RubricScoreSlider.css +73 -72
  364. package/core-ui/components/RubricScoreSlider/utils/utils.js +2 -2
  365. package/core-ui/components/SaveModal/LoadingProvider/FrameBridge/LoadingChildProvider.test.ts +136 -0
  366. package/core-ui/components/SaveModal/LoadingProvider/FrameBridge/LoadingChildProvider.tsx +202 -0
  367. package/core-ui/components/SaveModal/LoadingProvider/FrameBridge/createFrameLoadingBridgeController.ts +152 -0
  368. package/core-ui/components/SaveModal/LoadingProvider/FrameBridge/frameLoadingBridgeStore.test.ts +140 -0
  369. package/core-ui/components/SaveModal/LoadingProvider/FrameBridge/frameLoadingBridgeStore.ts +267 -0
  370. package/core-ui/components/SaveModal/LoadingProvider/FrameBridge/frameLoadingProtocol.test.ts +83 -0
  371. package/core-ui/components/SaveModal/LoadingProvider/FrameBridge/frameLoadingProtocol.ts +142 -0
  372. package/core-ui/components/SaveModal/LoadingProvider/FrameBridge/frameLoadingScheduler.test.ts +84 -0
  373. package/core-ui/components/SaveModal/LoadingProvider/FrameBridge/frameLoadingScheduler.ts +100 -0
  374. package/core-ui/components/SaveModal/LoadingProvider/FrameBridge/index.ts +33 -0
  375. package/core-ui/components/SaveModal/LoadingProvider/FrameBridge/useFrameLoadingBridge.test.tsx +181 -0
  376. package/core-ui/components/SaveModal/LoadingProvider/FrameBridge/useFrameLoadingBridge.ts +107 -0
  377. package/core-ui/components/SaveModal/LoadingProvider/LoadingBoundary.tsx +46 -0
  378. package/core-ui/components/{BusinessObjectHeader/components/ArtifactDrawer/components/Notes/Notes.jsx → SaveModal/LoadingProvider/LoadingModalHost.tsx} +22 -33
  379. package/core-ui/components/SaveModal/LoadingProvider/LoadingProvider.tsx +47 -0
  380. package/core-ui/components/SaveModal/LoadingProvider/LoadingProviderContext.ts +32 -0
  381. package/core-ui/components/SaveModal/LoadingProvider/README.md +163 -0
  382. package/core-ui/components/SaveModal/LoadingProvider/index.ts +33 -0
  383. package/core-ui/components/SaveModal/LoadingProvider/loadingStore.ts +90 -0
  384. package/core-ui/components/SaveModal/LoadingProvider/useLoadingEffect.ts +78 -0
  385. package/core-ui/components/{BusinessObjectHeader/components/ArtifactDrawer/components/Attachments/Attachments.jsx → SaveModal/LoadingProvider/useLoadingModal.ts} +25 -35
  386. package/core-ui/components/SaveModal/SaveModal.jsx +83 -15
  387. package/core-ui/components/ScrollingContainer/ScrollingContainer.jsx +2 -2
  388. package/core-ui/components/SecondaryMenu/SecondaryMenu.jsx +2 -2
  389. package/core-ui/components/SecondaryMenu/components/Horizontal/Horizontal.jsx +2 -2
  390. package/core-ui/components/SecondaryMenu/components/Horizontal/components/Item/Item copy.jsx +2 -2
  391. package/core-ui/components/SecondaryMenu/components/Horizontal/components/Item/Item.jsx +2 -2
  392. package/core-ui/components/SecondaryMenu/components/Vertical/Vertical.jsx +2 -2
  393. package/core-ui/components/SecondaryMenu/components/Vertical/components/Item/Item.jsx +2 -2
  394. package/core-ui/components/SentimentScale/SentimentScale.jsx +22 -7
  395. package/core-ui/components/SentimentScale/components/SentimentIcon/SentimentIcon.jsx +5 -4
  396. package/core-ui/components/SkeletonContent/SkeletonContent.jsx +7 -6
  397. package/core-ui/components/SkeletonContent/components/Avatar/Avatar.jsx +3 -4
  398. package/core-ui/components/SkeletonContent/components/AvatarMenuItem/AvatarMenuItem.jsx +3 -4
  399. package/core-ui/components/SkeletonContent/components/Box/Box.jsx +3 -4
  400. package/core-ui/components/SkeletonContent/components/DrawerWithForm/DrawerWithForm.jsx +3 -4
  401. package/core-ui/components/SkeletonContent/components/DrawerWithHeader/DrawerWithHeader.jsx +3 -4
  402. package/core-ui/components/SkeletonContent/components/ListItem/ListItem.jsx +3 -4
  403. package/core-ui/components/SkeletonContent/components/PageHeader/PageHeader.jsx +3 -4
  404. package/core-ui/components/SkeletonContent/components/SecondaryMenu/SecondaryMenu.jsx +3 -4
  405. package/core-ui/components/SkeletonContent/components/Text/Text.jsx +3 -4
  406. package/core-ui/components/StatCard/StatCard.jsx +396 -0
  407. package/core-ui/components/StatRow/StatRow.jsx +2 -2
  408. package/core-ui/components/StatusMessage/StatusMessage.jsx +2 -2
  409. package/core-ui/components/StatusMessage/components/AvatarHeader/AvatarHeader.jsx +5 -5
  410. package/core-ui/components/StatusMessage/components/ImageHeader/ImageHeader.jsx +2 -2
  411. package/core-ui/components/SurveyComments/SurveyComments.jsx +19 -5
  412. package/core-ui/components/SurveyComments/components/AI/AI.jsx +3 -3
  413. package/core-ui/components/SurveyComments/components/AI/components/Conversation/Conversation.jsx +5 -3
  414. package/core-ui/components/SurveyComments/components/AI/components/Conversation/components/SurveyThemes/SurveyThemes.jsx +4 -4
  415. package/core-ui/components/SurveyComments/components/AI/components/Conversation/components/ThinkingAnimation/ThinkingAnimation.jsx +3 -3
  416. package/core-ui/components/SurveyComments/components/Comments/Comments.jsx +7 -5
  417. package/core-ui/components/SwipeableTabPanel/SwipeableTabPanel.jsx +7 -3
  418. package/core-ui/components/SwipeableTabPanel/components/TabPanel/TabPanel.jsx +3 -2
  419. package/core-ui/components/SwipeableViews/SwipeableViews.jsx +2 -2
  420. package/core-ui/components/SwipeableViews/components/SwipeableComponent.jsx +2 -2
  421. package/core-ui/components/SwipeableViews/components/SwipeableContainer.jsx +82 -6
  422. package/core-ui/components/TabPanels/TabPanels.jsx +8 -3
  423. package/core-ui/components/TextBuilder/TextBuilder.jsx +2 -2
  424. package/core-ui/components/TextBuilder/components/BuilderFooter/BuilderFooter.jsx +2 -2
  425. package/core-ui/components/TextBuilder/components/RootField/RootField.jsx +2 -2
  426. package/core-ui/components/TextBuilder/components/RowActionsWrapper/RowActionsWrapper.jsx +2 -2
  427. package/core-ui/components/TextBuilder/components/RuleGroup/RuleGroup.jsx +2 -2
  428. package/core-ui/components/TextBuilder/components/RuleGroupFooter/RuleGroupFooter.jsx +2 -2
  429. package/core-ui/components/TextBuilder/components/RuleGroupIndex/RuleGroupIndex.jsx +2 -2
  430. package/core-ui/components/TextBuilder/components/TopGroupItemWrapper/TopGroupItemWrapper.jsx +2 -2
  431. package/core-ui/components/TextBuilder/store/store.jsx +2 -2
  432. package/core-ui/components/TextBuilder/utils/mutateFunctions.js +2 -2
  433. package/core-ui/components/TextSearch/TextSearch.jsx +16 -10
  434. package/core-ui/components/TextTransition/TextTransition.jsx +2 -2
  435. package/core-ui/components/Timeline/Timeline.jsx +30 -20
  436. package/core-ui/components/Timeline/components/Skeleton/Skeleton.jsx +3 -3
  437. package/core-ui/components/TitleAndActionHeader/TitleAndActionHeader.jsx +11 -4
  438. package/core-ui/components/TitleAndActionHeader/components/ActionButton/ActionButton.jsx +12 -4
  439. package/core-ui/components/TitleAndActionHeader/components/AsyncExportModal/AsyncExportModal.jsx +2 -2
  440. package/core-ui/components/TitleAndActionHeader/components/Breadcrumbs/Breadcrumbs.jsx +2 -2
  441. package/core-ui/components/TitleAndActionHeader/components/ButtonFollowedTextfield.jsx +2 -2
  442. package/core-ui/components/TitleAndActionHeader/components/DefaultFilter/DefaultFilter.jsx +2 -2
  443. package/core-ui/components/TitleAndActionHeader/components/DefaultIconButton/DefaultIconButton.jsx +2 -2
  444. package/core-ui/components/TitleAndActionHeader/components/FilterButton/FilterButton.jsx +2 -2
  445. package/core-ui/components/TitleAndActionHeader/components/FilterPanelWrapper/FilterPanelWrapper.jsx +2 -2
  446. package/core-ui/components/TitleAndActionHeader/components/FilterSetMenuItem/FilterSetMenuItem.jsx +2 -2
  447. package/core-ui/components/TitleAndActionHeader/components/PreDefinedFilters/PreDefinedFilters.jsx +2 -2
  448. package/core-ui/components/TitleAndActionHeader/components/UserDefinedFilters/UserDefinedFilters.jsx +2 -2
  449. package/core-ui/components/TitleAndActionHeader/utils.js +2 -2
  450. package/core-ui/components/TitleAndDescription/TitleAndDescription.jsx +6 -6
  451. package/core-ui/components/TypstPdfRenderer/README.md +308 -0
  452. package/core-ui/components/TypstPdfRenderer/TODO.md +50 -0
  453. package/core-ui/components/TypstPdfRenderer/TypstPdfRenderer.test.tsx +452 -0
  454. package/core-ui/components/TypstPdfRenderer/TypstPdfRenderer.tsx +94 -0
  455. package/core-ui/components/TypstPdfRenderer/hooks/typstPdfBatchRendererStore.ts +367 -0
  456. package/core-ui/components/TypstPdfRenderer/hooks/typstPdfRendererStore.ts +271 -0
  457. package/core-ui/components/TypstPdfRenderer/hooks/useTypstPdfBatchRenderer.test.tsx +296 -0
  458. package/core-ui/components/TypstPdfRenderer/hooks/useTypstPdfBatchRenderer.ts +127 -0
  459. package/core-ui/components/TypstPdfRenderer/hooks/useTypstPdfRenderer.ts +151 -0
  460. package/core-ui/components/TypstPdfRenderer/index.ts +54 -0
  461. package/core-ui/components/TypstPdfRenderer/services/batchRenderer.test.ts +150 -0
  462. package/core-ui/components/TypstPdfRenderer/services/batchRenderer.ts +128 -0
  463. package/core-ui/components/TypstPdfRenderer/services/bytes.ts +32 -0
  464. package/core-ui/components/TypstPdfRenderer/services/compiler.test.ts +214 -0
  465. package/core-ui/components/TypstPdfRenderer/services/compiler.ts +155 -0
  466. package/core-ui/components/TypstPdfRenderer/services/installPdfByteRenderWorker.test.ts +148 -0
  467. package/core-ui/components/TypstPdfRenderer/services/installPdfByteRenderWorker.ts +129 -0
  468. package/core-ui/components/TypstPdfRenderer/services/testWorker.ts +74 -0
  469. package/core-ui/components/TypstPdfRenderer/services/types.ts +171 -0
  470. package/core-ui/components/TypstPdfRenderer/services/typstPdfBatchWorker.ts +146 -0
  471. package/core-ui/components/TypstPdfRenderer/services/typstTsSubpaths.d.ts +33 -0
  472. package/core-ui/components/TypstPdfRenderer/services/workerPool.test.ts +177 -0
  473. package/core-ui/components/TypstPdfRenderer/services/workerPool.ts +254 -0
  474. package/core-ui/components/TypstPdfRenderer/services/workerRenderer.test.ts +90 -0
  475. package/core-ui/components/TypstPdfRenderer/services/workerRenderer.ts +77 -0
  476. package/core-ui/components/TypstPdfRenderer/services/zip.test.ts +80 -0
  477. package/core-ui/components/TypstPdfRenderer/services/zip.ts +141 -0
  478. package/core-ui/components/UnstableDataTable/DataTable.jsx +203 -91
  479. package/core-ui/components/UnstableDataTable/components/CustomColumnMenu/CustomColumnMenu.jsx +3 -2
  480. package/core-ui/components/UnstableDataTable/components/CustomFooter/CustomFooter.jsx +5 -4
  481. package/core-ui/components/UnstableDataTable/components/LoadingScreenWithTextTransition/LoadingScreenWithTextTransition.jsx +3 -3
  482. package/core-ui/components/UnstableDataTable/theme.js +2 -2
  483. package/core-ui/components/UnstableDataTable/utils/datagridColumnMap.js +2 -2
  484. package/core-ui/components/UnstableEditableTable/EditableDataTable.jsx +2 -2
  485. package/core-ui/components/UnstableRichDataTable/RichDataTable.jsx +235 -32
  486. package/core-ui/components/UnstableRichDataTable/functions.jsx +2 -2
  487. package/core-ui/components/UnstableScrollingContainer/ScrollingContainer.jsx +16 -6
  488. package/core-ui/components/UnstableScrollingContainer/components/ScrollBarContainer.jsx +4 -3
  489. package/core-ui/components/UnstableScrollingContainer/components/ScrollBarContent.jsx +3 -2
  490. package/core-ui/components/UnstableScrollingContainer/components/ScrollBarThumb.jsx +3 -2
  491. package/core-ui/components/UnstableScrollingContainer/components/ScrollBarTrack.jsx +3 -2
  492. package/core-ui/components/UserAvatar/UserAvatar.jsx +17 -4
  493. package/core-ui/components/Widget/Widget.jsx +6 -2
  494. package/core-ui/components/WizardPanel/WizardPanel.jsx +320 -86
  495. package/core-ui/components/WizardPanel/components/CompletedItemList/CompletedItemList.jsx +220 -12
  496. package/core-ui/components/WizardPanel/components/Header/Header.jsx +92 -24
  497. package/core-ui/components/index.js +2 -2
  498. package/core-ui/hooks/useAction/useAction.jsx +2 -2
  499. package/core-ui/hooks/useApiRequest/actionCreators.js +2 -2
  500. package/core-ui/hooks/useApiRequest/actionTypes.js +2 -2
  501. package/core-ui/hooks/useApiRequest/index.js +2 -2
  502. package/core-ui/hooks/useApiRequest/reducer.js +2 -2
  503. package/core-ui/hooks/useColumn/useColumn.jsx +2 -2
  504. package/core-ui/hooks/useComponentWillMount/useComponentWillMount.js +2 -2
  505. package/core-ui/hooks/useConfiguration/useConfiguration.js +2 -2
  506. package/core-ui/hooks/useDataSourceUrl/useDataSourceUrl.js +2 -2
  507. package/core-ui/hooks/useDebounce/useDebounce.js +2 -2
  508. package/core-ui/hooks/useDebounceCallback/useDebounceCallback.js +2 -2
  509. package/core-ui/hooks/useDependecyChange/useDependecyChange.js +2 -2
  510. package/core-ui/hooks/useDispatchAction/useDispatchAction.js +2 -2
  511. package/core-ui/hooks/useEventListener/useEventListener.test.tsx +76 -0
  512. package/core-ui/hooks/useEventListener/useEventListener.ts +81 -0
  513. package/core-ui/hooks/useFilter/useFilter.js +2 -2
  514. package/core-ui/hooks/useFocusLifecycle/focusRestoreRegistry.js +63 -0
  515. package/core-ui/hooks/useFocusLifecycle/useFocusLifecycle.js +189 -0
  516. package/core-ui/hooks/useLoadingDebounce/useLoadingDebounce.jsx +2 -2
  517. package/core-ui/hooks/useLocalStorage/useLocalStorage.js +2 -2
  518. package/core-ui/hooks/useMenuFocusHandoff/useMenuFocusHandoff.js +72 -0
  519. package/core-ui/hooks/useMutateState/useMutateState.js +2 -2
  520. package/core-ui/hooks/useNotify/useNotify.js +2 -2
  521. package/core-ui/hooks/useOnPropChange/useOnPropChange.jsx +2 -2
  522. package/core-ui/hooks/usePrevState/usePrevState.js +2 -2
  523. package/core-ui/hooks/useRefDimensions/useRefDimensions.js +2 -2
  524. package/core-ui/hooks/useScopedEval/useScopedEval.js +2 -2
  525. package/core-ui/hooks/useScroller/defaults.js +2 -2
  526. package/core-ui/hooks/useScroller/useScroller.js +2 -2
  527. package/core-ui/hooks/useScroller/utils.js +2 -2
  528. package/core-ui/hooks/useSkipOnMount/useSkipOnMount.js +2 -2
  529. package/core-ui/hooks/useStatusOptions/useStatusOptions.js +2 -2
  530. package/core-ui/hooks/useTimeout/useTimeout.js +2 -2
  531. package/core-ui/hooks/useValueChange/useValueChange.js +2 -2
  532. package/core-ui/hooks/useWindowMessage/useWindowMessage.test.tsx +113 -0
  533. package/core-ui/hooks/useWindowMessage/useWindowMessage.ts +89 -0
  534. package/core-ui/hooks/useWindowState/queryString.js +2 -2
  535. package/core-ui/hooks/useWindowState/useWindowState.js +2 -2
  536. package/core-ui/hooks/useZoomLevel/useZoomLevel.jsx +2 -2
  537. package/core-ui/index.js +60 -13
  538. package/core-ui/services/createAction.jsx +8 -5
  539. package/core-ui/services/createEvent.jsx +16 -12
  540. package/core-ui/services/createStore.jsx +2 -2
  541. package/core-ui/services/dataSourceManager.js +26 -3
  542. package/core-ui/services/http.js +24 -2
  543. package/core-ui/services/utils.test.ts +78 -0
  544. package/core-ui/services/utils.ts +74 -0
  545. package/core-ui/theme/colors/framework/index.js +7 -26
  546. package/core-ui/theme/colors/framework/primary.js +2 -2
  547. package/core-ui/theme/colors/framework/secondary.js +3 -3
  548. package/core-ui/theme/colors/framework/surface.js +38 -0
  549. package/core-ui/theme/colors/state/ai.js +36 -0
  550. package/core-ui/theme/colors/state/common.js +4 -4
  551. package/core-ui/theme/colors/state/danger.js +3 -4
  552. package/core-ui/theme/colors/state/dynamicSuccess.js +3 -3
  553. package/core-ui/{hooks/useTag/useTag.js → theme/colors/state/error.js} +9 -13
  554. package/core-ui/theme/colors/state/goalMet.js +6 -7
  555. package/core-ui/theme/colors/state/goalNotMet.js +6 -7
  556. package/core-ui/theme/colors/state/inProgress.js +3 -3
  557. package/core-ui/theme/colors/state/index.js +16 -19
  558. package/core-ui/theme/colors/state/info.js +6 -7
  559. package/core-ui/theme/colors/state/noData.js +3 -3
  560. package/core-ui/theme/colors/state/success.js +5 -3
  561. package/core-ui/theme/colors/state/warning.js +6 -7
  562. package/core-ui/theme/theme.js +22 -3
  563. package/core-ui/utils/PrivateRoute.jsx +2 -2
  564. package/core-ui/utils/array.js +2 -2
  565. package/core-ui/utils/color.js +2 -2
  566. package/core-ui/utils/date.js +2 -2
  567. package/core-ui/utils/formatting.js +2 -2
  568. package/core-ui/utils/humanReadableList.js +2 -2
  569. package/core-ui/utils/math.js +2 -2
  570. package/core-ui/utils/memoize.js +2 -2
  571. package/core-ui/utils/number.js +2 -2
  572. package/core-ui/utils/object.js +2 -2
  573. package/core-ui/utils/queryString.js +2 -2
  574. package/core-ui/utils/sanitizedEval.js +2 -2
  575. package/core-ui/utils/string.js +2 -2
  576. package/core-ui/utils/template.js +2 -2
  577. package/core-ui/utils/url.js +2 -2
  578. package/core-ui/with/withTheme/withTheme.jsx +2 -2
  579. package/package.json +15 -4
  580. package/core-ui/components/Breadcrumbs/Breadcrumbs.jsx +0 -102
  581. package/core-ui/components/BusinessObjectHeader/BusinessObjectHeader.jsx +0 -218
  582. package/core-ui/components/BusinessObjectHeader/components/ActionButton/ActionButton.jsx +0 -143
  583. package/core-ui/components/BusinessObjectHeader/components/ArtifactDrawer/ArtifactDrawer.jsx +0 -201
  584. package/core-ui/components/BusinessObjectHeader/components/ArtifactDrawer/components/Tasks/Tasks.jsx +0 -151
  585. package/core-ui/components/BusinessObjectHeader/components/BusinessObjectHeaderActionMenu/BusinessObjectHeaderActionMenu.jsx +0 -136
  586. package/core-ui/components/BusinessObjectHeader/components/BusinessObjectHeaderActionMenu/utils.js +0 -112
  587. package/core-ui/components/RubricDistributionChart/RubricDistributionChart.jsx +0 -269
  588. package/core-ui/components/RubricDistributionChart/components/Legend/Legend.jsx +0 -187
  589. package/core-ui/components/StatBoxes/StatBoxes.jsx +0 -198
@@ -10,14 +10,14 @@
10
10
  * ║ updating the npm package. 📦 ║
11
11
  * ║ ║
12
12
  * ║ Package: aefis-core-ui ║
13
- * ║ Version: 7.0.0-rc.13 ║
13
+ * ║ Version: 7.0.0-rc.131 ║
14
14
  * ║ ║
15
15
  * ╠════════════════════════════════════════════════════════════════════╣
16
16
  * ║ ⚠️ ANY CHANGES HERE WILL BE AUTOMATICALLY OVERWRITTEN ⚠️ ║
17
17
  * ╚════════════════════════════════════════════════════════════════════╝
18
18
  *
19
19
  * @package aefis-core-ui
20
- * @version 7.0.0-rc.13
20
+ * @version 7.0.0-rc.131
21
21
  * @generated automatically
22
22
  * @warning do not modify
23
23
  */
@@ -10,14 +10,14 @@
10
10
  * ║ updating the npm package. 📦 ║
11
11
  * ║ ║
12
12
  * ║ Package: aefis-core-ui ║
13
- * ║ Version: 7.0.0-rc.13 ║
13
+ * ║ Version: 7.0.0-rc.131 ║
14
14
  * ║ ║
15
15
  * ╠════════════════════════════════════════════════════════════════════╣
16
16
  * ║ ⚠️ ANY CHANGES HERE WILL BE AUTOMATICALLY OVERWRITTEN ⚠️ ║
17
17
  * ╚════════════════════════════════════════════════════════════════════╝
18
18
  *
19
19
  * @package aefis-core-ui
20
- * @version 7.0.0-rc.13
20
+ * @version 7.0.0-rc.131
21
21
  * @generated automatically
22
22
  * @warning do not modify
23
23
  */
@@ -65,6 +65,7 @@ import {
65
65
  Autorenew as _Autorenew,
66
66
  Balance as _Balance,
67
67
  BarChartOutlined as _BarChartOutlined,
68
+ AutoStoriesOutlined as _AutoStoriesOutlined,
68
69
  Book as _Book,
69
70
  BookOutlined as _BookOutlined,
70
71
  Bookmark as _Bookmark,
@@ -172,6 +173,10 @@ import {
172
173
  EqualizerOutlined as _EqualizerOutlined,
173
174
  Face as _Face,
174
175
  FaceOutlined as _FaceOutlined,
176
+ Favorite as _Favorite,
177
+ FavoriteBorder as _FavoriteBorder,
178
+ FavoriteOutlined as _FavoriteOutlined,
179
+ FavoriteBorderOutlined as _FavoriteBorderOutlined,
175
180
  FileDownload as _FileDownload,
176
181
  FileDownloadOutlined as _FileDownloadOutlined,
177
182
  FilterList as _FilterList,
@@ -316,6 +321,7 @@ import {
316
321
  StopOutlined as _StopOutlined,
317
322
  Timeline as _Timeline,
318
323
  TimelineOutlined as _TimelineOutlined,
324
+ ManageSearch as _ManageSearch,
319
325
  Search as _Search,
320
326
  SearchOutlined as _SearchOutlined,
321
327
  SentimentVeryDissatisfied as _SentimentVeryDissatisfied,
@@ -438,6 +444,7 @@ export const icons = {
438
444
  Autorenew: <_Autorenew />,
439
445
  Balance: <_Balance />,
440
446
  BarChartOutlined: <_BarChartOutlined />,
447
+ AutoStoriesOutlined: <_AutoStoriesOutlined />,
441
448
  Book: <_Book />,
442
449
  BookOutlined: <_BookOutlined />,
443
450
  Bookmark: <_Bookmark />,
@@ -549,6 +556,10 @@ export const icons = {
549
556
  EqualizerOutlined: <_EqualizerOutlined />,
550
557
  Face: <_Face />,
551
558
  FaceOutlined: <_FaceOutlined />,
559
+ Favorite: <_Favorite />,
560
+ FavoriteBorder: <_FavoriteBorder />,
561
+ FavoriteBorderOutlined: <_FavoriteBorderOutlined />,
562
+ FavoriteOutlined: <_FavoriteOutlined />,
552
563
  FileDownload: <_FileDownload />,
553
564
  FileDownloadOutlined: <_FileDownloadOutlined />,
554
565
  FilterList: <_FilterList />,
@@ -688,6 +699,7 @@ export const icons = {
688
699
  SchoolTwoTone: <_SchoolTwoTone />,
689
700
  Science: <_Science />,
690
701
  ScienceOutlined: <_ScienceOutlined />,
702
+ ManageSearch: <_ManageSearch />,
691
703
  Search: <_Search />,
692
704
  SearchOutlined: <_SearchOutlined />,
693
705
  Send: <_Send />,
@@ -934,6 +946,10 @@ export const BarChartOutlined = (props) => {
934
946
  return <_BarChartOutlined {...props} />;
935
947
  };
936
948
 
949
+ export const AutoStoriesOutlined = (props) => {
950
+ return <_AutoStoriesOutlined {...props} />;
951
+ };
952
+
937
953
  export const Book = (props) => {
938
954
  return <_Book {...props} />;
939
955
  };
@@ -1374,6 +1390,22 @@ export const FaceOutlined = (props) => {
1374
1390
  return <_FaceOutlined {...props} />;
1375
1391
  };
1376
1392
 
1393
+ export const Favorite = (props) => {
1394
+ return <_Favorite {...props} />;
1395
+ };
1396
+
1397
+ export const FavoriteBorder = (props) => {
1398
+ return <_FavoriteBorder {...props} />;
1399
+ };
1400
+
1401
+ export const FavoriteBorderOutlined = (props) => {
1402
+ return <_FavoriteBorderOutlined {...props} />;
1403
+ };
1404
+
1405
+ export const FavoriteOutlined = (props) => {
1406
+ return <_FavoriteOutlined {...props} />;
1407
+ };
1408
+
1377
1409
  export const FileDownload = (props) => {
1378
1410
  return <_FileDownload {...props} />;
1379
1411
  };
@@ -1926,6 +1958,10 @@ export const ScienceOutlined = (props) => {
1926
1958
  return <_ScienceOutlined {...props} />;
1927
1959
  };
1928
1960
 
1961
+ export const ManageSearch = (props) => {
1962
+ return <_ManageSearch {...props} />;
1963
+ };
1964
+
1929
1965
  export const Search = (props) => {
1930
1966
  return <_Search {...props} />;
1931
1967
  };
@@ -10,19 +10,19 @@
10
10
  * ║ updating the npm package. 📦 ║
11
11
  * ║ ║
12
12
  * ║ Package: aefis-core-ui ║
13
- * ║ Version: 7.0.0-rc.13 ║
13
+ * ║ Version: 7.0.0-rc.131 ║
14
14
  * ║ ║
15
15
  * ╠════════════════════════════════════════════════════════════════════╣
16
16
  * ║ ⚠️ ANY CHANGES HERE WILL BE AUTOMATICALLY OVERWRITTEN ⚠️ ║
17
17
  * ╚════════════════════════════════════════════════════════════════════╝
18
18
  *
19
19
  * @package aefis-core-ui
20
- * @version 7.0.0-rc.13
20
+ * @version 7.0.0-rc.131
21
21
  * @generated automatically
22
22
  * @warning do not modify
23
23
  */
24
24
 
25
- // Copyright (c) 2023 HelioCampus Inc, all rights reserved.
25
+ // Copyright (c) 2026 HelioCampus Inc, all rights reserved.
26
26
  // http://www.heliocampus.com/
27
27
 
28
28
  import Button from "../Button/Button";
@@ -50,12 +50,27 @@ const booleanOrFunction = (field, data) =>
50
50
  (typeof field === "boolean" && field);
51
51
 
52
52
  const renderIcon = (Icon) => {
53
- return <Icon />;
53
+ return <Icon aria-hidden="true" />;
54
+ };
55
+
56
+ /** Derive the CSS transform-origin for the open animation from the Popper placement,
57
+ * so the menu appears to grow out of the edge it is anchored to. */
58
+ const transformOriginForPlacement = (placement) => {
59
+ const vertical = placement.startsWith("top") ? "bottom" : "top";
60
+ const horizontal = placement.endsWith("end") ? "right" : "left";
61
+ return `${horizontal} ${vertical}`;
54
62
  };
55
63
 
56
64
  /** Menu button with actions menu */
57
65
 
58
- const ActionMenuButton = ({ actions, data, disabled = false, disableElevation = true, sx }) => {
66
+ const ActionMenuButton = ({
67
+ actions,
68
+ data,
69
+ disabled = false,
70
+ disableElevation = true,
71
+ placement = "bottom-start",
72
+ sx
73
+ }) => {
59
74
  const [open, setOpen] = useState(false);
60
75
  const [selectedIndex, setSelectedIndex] = useState(0);
61
76
  const anchorRef = useRef(null);
@@ -72,6 +87,13 @@ const ActionMenuButton = ({ actions, data, disabled = false, disableElevation =
72
87
  setOpen((prevOpen) => !prevOpen);
73
88
  };
74
89
 
90
+ const handleKeyDown = (event) => {
91
+ if (event.key === "Escape") {
92
+ setOpen(false);
93
+ anchorRef.current?.querySelector("button:last-child")?.focus();
94
+ }
95
+ };
96
+
75
97
  const handleActionClick = (e, action, index) => {
76
98
  setSelectedIndex(index || null);
77
99
  setOpen(false);
@@ -88,9 +110,10 @@ const ActionMenuButton = ({ actions, data, disabled = false, disableElevation =
88
110
  (actions?.length === 1 && (
89
111
  <>
90
112
  {isMobile ? (
91
- <Tooltip title={actions[0].name}>
113
+ <Tooltip title={actions[0].name || "action"}>
92
114
  <IconButton
93
- aria-label={actions[0].name}
115
+ data-testid="hc-action-menu-button-single"
116
+ aria-label={actions[0].name || "action"}
94
117
  disabled={disabled}
95
118
  onClick={(e) => handleActionClick(e, actions[0])}
96
119
  >
@@ -99,6 +122,7 @@ const ActionMenuButton = ({ actions, data, disabled = false, disableElevation =
99
122
  </Tooltip>
100
123
  ) : (
101
124
  <Button
125
+ data-testid="hc-action-menu-button-single"
102
126
  sx={sx}
103
127
  variant="contained"
104
128
  color={actions[0].primary ? "primary" : "secondary"}
@@ -118,6 +142,7 @@ const ActionMenuButton = ({ actions, data, disabled = false, disableElevation =
118
142
  (actions?.length > 1 && (
119
143
  <>
120
144
  <ButtonGroup
145
+ data-testid="hc-action-menu-button-group"
121
146
  disableElevation={disableElevation}
122
147
  sx={sx}
123
148
  variant="contained"
@@ -134,8 +159,9 @@ const ActionMenuButton = ({ actions, data, disabled = false, disableElevation =
134
159
  {actions[0].name}
135
160
  </Button>
136
161
  <Button
162
+ data-testid="hc-action-menu-button-toggle"
137
163
  aria-controls={open ? "split-button-menu" : undefined}
138
- aria-expanded={open ? "true" : undefined}
164
+ aria-expanded={open}
139
165
  variant="contained"
140
166
  aria-label="view more actions"
141
167
  aria-haspopup="menu"
@@ -154,25 +180,27 @@ const ActionMenuButton = ({ actions, data, disabled = false, disableElevation =
154
180
  }}
155
181
  open={open}
156
182
  anchorEl={anchorRef.current}
183
+ placement={placement}
157
184
  role={undefined}
158
185
  transition
159
186
  disablePortal
160
187
  >
161
- {({ TransitionProps, placement }) => (
188
+ {({ TransitionProps, placement: actualPlacement }) => (
162
189
  <Grow
163
190
  {...TransitionProps}
164
191
  style={{
165
192
  transformOrigin:
166
- placement === "bottom" ? "left top" : "left bottom"
193
+ transformOriginForPlacement(actualPlacement)
167
194
  }}
168
195
  >
169
196
  <Paper elevation={3}>
170
197
  <ClickAwayListener onClickAway={handleClose}>
171
- <MenuList id="split-button-menu" autoFocusItem>
198
+ <MenuList data-testid="hc-action-menu-button-menu" id="split-button-menu" autoFocusItem onKeyDown={handleKeyDown}>
172
199
  {actions?.map(
173
200
  (action, index) =>
174
201
  isHidden(action, data) === false && (
175
202
  <MenuItem
203
+ data-testid={`hc-action-menu-button-item-${action.id}`}
176
204
  key={`actionMenuItem-${action.id}`}
177
205
  selected={index === selectedIndex}
178
206
  disabled={booleanOrFunction(
@@ -234,6 +262,21 @@ ActionMenuButton.propTypes = {
234
262
  disabled: PropTypes.bool,
235
263
  /** Disable the elevation? */
236
264
  disableElevation: PropTypes.bool,
265
+ /** Where the actions menu opens relative to the button. Mirrors MUI Popper placement. Defaults to "bottom-start". */
266
+ placement: PropTypes.oneOf([
267
+ "top-start",
268
+ "top",
269
+ "top-end",
270
+ "bottom-start",
271
+ "bottom",
272
+ "bottom-end",
273
+ "left-start",
274
+ "left",
275
+ "left-end",
276
+ "right-start",
277
+ "right",
278
+ "right-end"
279
+ ]),
237
280
  /** Additional styles to pass to the button. */
238
281
  sx: PropTypes.any
239
282
  };
@@ -10,19 +10,19 @@
10
10
  * ║ updating the npm package. 📦 ║
11
11
  * ║ ║
12
12
  * ║ Package: aefis-core-ui ║
13
- * ║ Version: 7.0.0-rc.13 ║
13
+ * ║ Version: 7.0.0-rc.131 ║
14
14
  * ║ ║
15
15
  * ╠════════════════════════════════════════════════════════════════════╣
16
16
  * ║ ⚠️ ANY CHANGES HERE WILL BE AUTOMATICALLY OVERWRITTEN ⚠️ ║
17
17
  * ╚════════════════════════════════════════════════════════════════════╝
18
18
  *
19
19
  * @package aefis-core-ui
20
- * @version 7.0.0-rc.13
20
+ * @version 7.0.0-rc.131
21
21
  * @generated automatically
22
22
  * @warning do not modify
23
23
  */
24
24
 
25
- // Copyright (c) 2023 HelioCampus Inc., all rights reserved.
25
+ // Copyright (c) 2026 HelioCampus Inc., all rights reserved.
26
26
  // http://www.heliocampus.com/
27
27
 
28
28
  import PropTypes from "prop-types";
@@ -41,6 +41,7 @@ const Actions = ({ data, configuration }) => {
41
41
 
42
42
  return configuration?.map((item, index) => (
43
43
  <Box
44
+ data-testid={`hc-action-${index}`}
44
45
  key={`actionMenuItem-${seededKeyValue(index)}`}
45
46
  style={{ marginLeft: "8px", ...getStyle(item) }}
46
47
  >
@@ -10,19 +10,19 @@
10
10
  * ║ updating the npm package. 📦 ║
11
11
  * ║ ║
12
12
  * ║ Package: aefis-core-ui ║
13
- * ║ Version: 7.0.0-rc.13 ║
13
+ * ║ Version: 7.0.0-rc.131 ║
14
14
  * ║ ║
15
15
  * ╠════════════════════════════════════════════════════════════════════╣
16
16
  * ║ ⚠️ ANY CHANGES HERE WILL BE AUTOMATICALLY OVERWRITTEN ⚠️ ║
17
17
  * ╚════════════════════════════════════════════════════════════════════╝
18
18
  *
19
19
  * @package aefis-core-ui
20
- * @version 7.0.0-rc.13
20
+ * @version 7.0.0-rc.131
21
21
  * @generated automatically
22
22
  * @warning do not modify
23
23
  */
24
24
 
25
- // Copyright (c) 2023 HelioCampus Inc., all rights reserved.
25
+ // Copyright (c) 2026 HelioCampus Inc., all rights reserved.
26
26
  // http://www.heliocampus.com/
27
27
 
28
28
  import PropTypes from "prop-types";
@@ -86,6 +86,9 @@ const Action = ({ actionItem, data }) => {
86
86
  const name = item.name || "Action Menu";
87
87
  return typeof item.name === "function" ? item.name(data) : name;
88
88
  };
89
+ const getTooltip = (item) => {
90
+ return typeof item.tooltip === "function" ? item.tooltip(data) : item.tooltip;
91
+ };
89
92
  const getStyle = (item) => {
90
93
  const style = item.style || undefined;
91
94
  return typeof item.style === "function" ? item.style(data) : style;
@@ -102,6 +105,7 @@ const Action = ({ actionItem, data }) => {
102
105
  {actionItem.menu?.length > 0 ? (
103
106
  <ActionMenu
104
107
  name={getName(actionItem)}
108
+ tooltip={getTooltip(actionItem)}
105
109
  configuration={actionItem.menu}
106
110
  hidden={isHidden(actionItem)}
107
111
  disabled={isDisabled(actionItem)}
@@ -10,46 +10,43 @@
10
10
  * ║ updating the npm package. 📦 ║
11
11
  * ║ ║
12
12
  * ║ Package: aefis-core-ui ║
13
- * ║ Version: 7.0.0-rc.13 ║
13
+ * ║ Version: 7.0.0-rc.131 ║
14
14
  * ║ ║
15
15
  * ╠════════════════════════════════════════════════════════════════════╣
16
16
  * ║ ⚠️ ANY CHANGES HERE WILL BE AUTOMATICALLY OVERWRITTEN ⚠️ ║
17
17
  * ╚════════════════════════════════════════════════════════════════════╝
18
18
  *
19
19
  * @package aefis-core-ui
20
- * @version 7.0.0-rc.13
20
+ * @version 7.0.0-rc.131
21
21
  * @generated automatically
22
22
  * @warning do not modify
23
23
  */
24
24
 
25
- // Copyright (c) 2022 HelioCampus Inc., all rights reserved.
25
+ // Copyright (c) 2026 HelioCampus Inc., all rights reserved.
26
26
  // http://www.heliocampus.com/
27
27
 
28
28
  import { ListItemIcon, Menu, MenuItem, Typography } from "@mui/material";
29
- import { styled } from '@mui/material/styles';
29
+ import { styled } from "@mui/material/styles";
30
30
  import IconButton from "../../../../../IconButton/IconButton";
31
31
  import clsx from "clsx";
32
32
  import { MoreVert as MoreVertIcon } from "../../../../../../Icon";
33
+ import { setPendingFocusTrigger } from "../../../../../../hooks/useFocusLifecycle/focusRestoreRegistry";
33
34
  import PropTypes from "prop-types";
34
35
  import React, { useState } from "react";
35
36
  import { useUID, useUIDSeed } from "react-uid";
36
37
 
37
38
  import Badge from "../Badge/Badge";
38
39
 
39
- const PREFIX = 'ActionMenu';
40
+ const PREFIX = "ActionMenu";
40
41
 
41
42
  const classes = {
42
- expand: `${PREFIX}-expand`,
43
- expandOpen: `${PREFIX}-expandOpen`
43
+ expand: `${PREFIX}-expand`,
44
+ expandOpen: `${PREFIX}-expandOpen`
44
45
  };
45
46
 
46
47
  // TODO jss-to-styled codemod: The Fragment root was replaced by div. Change the tag if needed.
47
- const Root = styled('div')((
48
- {
49
- theme
50
- }
51
- ) => ({
52
- [`& .${classes.expand}`]: {
48
+ const Root = styled("div")(({ theme }) => ({
49
+ [`& .${classes.expand}`]: {
53
50
  transform: "rotate(0deg)",
54
51
  marginLeft: "auto",
55
52
  transition: theme.transitions.create("transform", {
@@ -57,7 +54,7 @@ const Root = styled('div')((
57
54
  })
58
55
  },
59
56
 
60
- [`& .${classes.expandOpen}`]: {
57
+ [`& .${classes.expandOpen}`]: {
61
58
  transform: "rotate(90deg)"
62
59
  }
63
60
  }));
@@ -73,6 +70,7 @@ const isHidden = (item, data) => {
73
70
 
74
71
  const ActionMenu = ({
75
72
  name,
73
+ tooltip,
76
74
  icon: Icon,
77
75
  disabled = false,
78
76
  hidden = false,
@@ -80,6 +78,7 @@ const ActionMenu = ({
80
78
  configuration,
81
79
  data
82
80
  }) => {
81
+ const hasVisibleItems = configuration?.some((item) => !isHidden(item, data));
83
82
 
84
83
  const [anchorEl, setAnchorEl] = useState(null);
85
84
  const open = Boolean(anchorEl);
@@ -93,28 +92,52 @@ const ActionMenu = ({
93
92
  setAnchorEl(null);
94
93
  };
95
94
  const handleMenuClick = (action) => {
95
+ // Hand the trigger to whichever overlay the action opens (WCAG 2.4.3):
96
+ // by the time the action runs, `document.activeElement` is the menu item,
97
+ // which this close destroys — the overlay cannot recover the trigger on
98
+ // its own. The registry handoff needs no per-screen wiring; the `meta`
99
+ // arg remains for callers that want the trigger explicitly.
100
+ const trigger = anchorEl;
96
101
  setAnchorEl(null);
97
- action(data);
102
+ setPendingFocusTrigger(trigger);
103
+ action(data, { trigger });
98
104
  };
99
- const id = useUID();
105
+ // Prefixed, not the bare useUID() value: useUID returns a plain number, and a
106
+ // numeric id — while legal HTML5 — is an INVALID CSS selector, so
107
+ // `document.querySelector("#246")` throws. Accessibility tooling resolves ID
108
+ // references that way, so axe could never verify this menu's `aria-controls`
109
+ // and reported it as an unresolvable (critical) incomplete on every row.
110
+ const id = `hc-action-menu-${useUID()}`;
100
111
  const seededKeyValue = useUIDSeed();
101
112
 
102
- return hidden ? (
103
- (<Root></Root>)
113
+ return hidden || !hasVisibleItems ? (
114
+ <Root></Root>
104
115
  ) : (
105
- <>
106
- {disabled ? (
107
- <IconButton
108
- name={name || `more options`}
109
- aria-controls={id}
110
- aria-haspopup="true"
111
- showTooltip={false}
112
- aria-expanded={open}
113
- onClick={handleClick}
114
- size="small"
115
- disabled={true}
116
- >
117
- {Icon ? (
116
+ <Root>
117
+ <IconButton
118
+ data-testid="hc-action-menu-trigger"
119
+ name={name || `more options`}
120
+ // Kept separate from `name` so the accessible name can be as long as it
121
+ // needs to be to identify the row, without turning the hover tooltip into
122
+ // a paragraph. Defaults to `name` when unset.
123
+ tooltip={tooltip}
124
+ showTooltip={!disabled}
125
+ size="small"
126
+ disabled={disabled}
127
+ onClick={handleClick}
128
+ {...(!disabled && {
129
+ // Only reference the menu while it is open. The Menu is
130
+ // `keepMounted`, so when closed it stays in the DOM carrying
131
+ // `aria-hidden="true"` — and an ID reference into an aria-hidden
132
+ // subtree is unreadable by screen readers, which invalidates the
133
+ // relationship. `aria-expanded` already conveys the closed state.
134
+ ...(open && { "aria-controls": id }),
135
+ "aria-haspopup": "true",
136
+ "aria-expanded": open
137
+ })}
138
+ >
139
+ {disabled ? (
140
+ Icon ? (
118
141
  <Icon />
119
142
  ) : (
120
143
  <MoreVertIcon
@@ -122,19 +145,8 @@ const ActionMenu = ({
122
145
  [classes.expandOpen]: open
123
146
  })}
124
147
  />
125
- )}
126
- </IconButton>
127
- ) : (
128
- <IconButton
129
- name={name || `more options`}
130
- showTooltip={true}
131
- size="small"
132
- aria-controls={id}
133
- aria-haspopup="true"
134
- aria-expanded={open}
135
- onClick={handleClick}
136
- disabled={disabled}
137
- >
148
+ )
149
+ ) : (
138
150
  <Badge badgeContent={badge}>
139
151
  {Icon ? (
140
152
  <Icon />
@@ -146,10 +158,11 @@ const ActionMenu = ({
146
158
  />
147
159
  )}
148
160
  </Badge>
149
- </IconButton>
150
- )}
161
+ )}
162
+ </IconButton>
151
163
 
152
164
  <Menu
165
+ data-testid="hc-action-menu"
153
166
  id={id}
154
167
  anchorEl={anchorEl}
155
168
  keepMounted
@@ -168,6 +181,7 @@ const ActionMenu = ({
168
181
  (item, index) =>
169
182
  !isHidden(item, data) && (
170
183
  <MenuItem
184
+ data-testid={`hc-action-menu-item-${index}`}
171
185
  key={seededKeyValue(index)}
172
186
  onClick={() => handleMenuClick(item.action)}
173
187
  disabled={isDisabled(item, data) || false}
@@ -180,26 +194,30 @@ const ActionMenu = ({
180
194
  "& .Mui-focusVisible": {
181
195
  backgroundColor: "rgba(0, 0, 0, 0.04)"
182
196
  }
183
- }
197
+ }
184
198
  : {
185
199
  "&.Mui-focusVisible": {
186
200
  backgroundColor: "rgba(0, 0, 0, 0.04)"
187
201
  }
188
- }
202
+ }
189
203
  }
190
204
  >
191
- {item.icon && <ListItemIcon>{item.icon}</ListItemIcon>}
205
+ {item.icon && (
206
+ <ListItemIcon aria-hidden="true">{item.icon}</ListItemIcon>
207
+ )}
192
208
  <Typography variant="inherit">{item.name}</Typography>
193
209
  </MenuItem>
194
210
  )
195
211
  )}
196
212
  </Menu>
197
- </>
213
+ </Root>
198
214
  );
199
215
  };
200
216
 
201
217
  ActionMenu.propTypes = {
202
218
  name: PropTypes.string,
219
+ /** Tooltip text when it should be shorter than `name`. Keep it a substring of `name` (WCAG 2.5.3). */
220
+ tooltip: PropTypes.string,
203
221
  icon: PropTypes.any,
204
222
  disabled: PropTypes.bool,
205
223
  hidden: PropTypes.bool,
@@ -10,19 +10,19 @@
10
10
  * ║ updating the npm package. 📦 ║
11
11
  * ║ ║
12
12
  * ║ Package: aefis-core-ui ║
13
- * ║ Version: 7.0.0-rc.13 ║
13
+ * ║ Version: 7.0.0-rc.131 ║
14
14
  * ║ ║
15
15
  * ╠════════════════════════════════════════════════════════════════════╣
16
16
  * ║ ⚠️ ANY CHANGES HERE WILL BE AUTOMATICALLY OVERWRITTEN ⚠️ ║
17
17
  * ╚════════════════════════════════════════════════════════════════════╝
18
18
  *
19
19
  * @package aefis-core-ui
20
- * @version 7.0.0-rc.13
20
+ * @version 7.0.0-rc.131
21
21
  * @generated automatically
22
22
  * @warning do not modify
23
23
  */
24
24
 
25
- // Copyright (c) 2023 HelioCampus Inc., all rights reserved.
25
+ // Copyright (c) 2026 HelioCampus Inc., all rights reserved.
26
26
  // http://www.heliocampus.com/
27
27
 
28
28
  import { Badge as MuiBadge } from "@mui/material";
@@ -10,19 +10,19 @@
10
10
  * ║ updating the npm package. 📦 ║
11
11
  * ║ ║
12
12
  * ║ Package: aefis-core-ui ║
13
- * ║ Version: 7.0.0-rc.13 ║
13
+ * ║ Version: 7.0.0-rc.131 ║
14
14
  * ║ ║
15
15
  * ╠════════════════════════════════════════════════════════════════════╣
16
16
  * ║ ⚠️ ANY CHANGES HERE WILL BE AUTOMATICALLY OVERWRITTEN ⚠️ ║
17
17
  * ╚════════════════════════════════════════════════════════════════════╝
18
18
  *
19
19
  * @package aefis-core-ui
20
- * @version 7.0.0-rc.13
20
+ * @version 7.0.0-rc.131
21
21
  * @generated automatically
22
22
  * @warning do not modify
23
23
  */
24
24
 
25
- // Copyright (c) 2024 HelioCampus Inc., all rights reserved.
25
+ // Copyright (c) 2026 HelioCampus Inc., all rights reserved.
26
26
  // http://www.heliocampus.com/
27
27
 
28
28
  import PropTypes from "prop-types";
@@ -34,6 +34,7 @@ const RenderIconButton = ({ name, item, data, disabled, badge, buttonStyle }) =>
34
34
  const Icon = item?.icon ?? React.Fragment;
35
35
  return (
36
36
  <IconButton
37
+ data-testid="hc-action-icon-button"
37
38
  name={name || "option"}
38
39
  aria-label={name || "option"}
39
40
  onClick={() => item?.action(data)}