@onewelcome/react-lib-components 9.4.0 → 9.5.1

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 (210) hide show
  1. package/dist/cjs/Breadcrumbs/Breadcrumbs.module.scss.cjs.js +1 -1
  2. package/dist/cjs/Button/BaseButton.module.scss.cjs.js +1 -1
  3. package/dist/cjs/Button/Button.module.scss.cjs.js +1 -1
  4. package/dist/cjs/Button/IconButton.module.scss.cjs.js +1 -1
  5. package/dist/cjs/ContextMenu/ContextMenu.module.scss.cjs.js +1 -1
  6. package/dist/cjs/ContextMenu/ContextMenuItem.module.scss.cjs.js +1 -1
  7. package/dist/cjs/DataGrid/DataGrid.module.scss.cjs.js +1 -1
  8. package/dist/cjs/DataGrid/DataGridActions/DataGridActions.module.scss.cjs.js +1 -1
  9. package/dist/cjs/DataGrid/DataGridActions/DataGridColumnsToggle.module.scss.cjs.js +1 -1
  10. package/dist/cjs/DataGrid/DataGridBody/DataGridBody.module.scss.cjs.js +1 -1
  11. package/dist/cjs/DataGrid/DataGridBody/DataGridCell/DataGridCell.module.scss.cjs.js +1 -1
  12. package/dist/cjs/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawer.module.scss.cjs.js +1 -1
  13. package/dist/cjs/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawerItem.module.scss.cjs.js +1 -1
  14. package/dist/cjs/DataGrid/DataGridBody/DataGridRow/DataGridRow.module.scss.cjs.js +1 -1
  15. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilter.module.scss.cjs.js +1 -1
  16. package/dist/cjs/DataGrid/DataGridFilters/DataGridToolbar.module.scss.cjs.js +1 -1
  17. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.cjs.js +1 -1
  18. package/dist/cjs/DataGrid/DataGridHeader/DataGridHeader.module.scss.cjs.js +1 -1
  19. package/dist/cjs/DataGrid/DataGridHeader/DataGridHeaderCell.module.scss.cjs.js +1 -1
  20. package/dist/cjs/DatePicker/DatePicker.module.scss.cjs.js +1 -1
  21. package/dist/cjs/Form/Checkbox/Checkbox.module.scss.cjs.js +1 -1
  22. package/dist/cjs/Form/Fieldset/Fieldset.module.scss.cjs.js +1 -1
  23. package/dist/cjs/Form/FileUpload/FileItem/FileItem.module.scss.cjs.js +1 -1
  24. package/dist/cjs/Form/FileUpload/FileUpload.module.scss.cjs.js +1 -1
  25. package/dist/cjs/Form/Form.module.scss.cjs.js +1 -1
  26. package/dist/cjs/Form/FormControl/FormControl.module.scss.cjs.js +1 -1
  27. package/dist/cjs/Form/FormErrorText/FormErrorText.module.scss.cjs.js +1 -1
  28. package/dist/cjs/Form/FormGroup/FormGroup.module.scss.cjs.js +1 -1
  29. package/dist/cjs/Form/FormHelperText/FormHelperText.module.scss.cjs.js +1 -1
  30. package/dist/cjs/Form/FormSelectorWrapper/FormSelectorWrapper.module.scss.cjs.js +1 -1
  31. package/dist/cjs/Form/Input/Input.module.scss.cjs.js +1 -1
  32. package/dist/cjs/Form/Label/Label.module.scss.cjs.js +1 -1
  33. package/dist/cjs/Form/Radio/Radio.module.scss.cjs.js +1 -1
  34. package/dist/cjs/Form/Select/MultiSelect/MultiSelect.module.scss.cjs.js +1 -1
  35. package/dist/cjs/Form/Select/MultiSelect/SelectButton.module.scss.cjs.js +1 -1
  36. package/dist/cjs/Form/Select/MultiSelect/SelectedOptions.module.scss.cjs.js +1 -1
  37. package/dist/cjs/Form/Select/SingleSelect/Select.module.scss.cjs.js +1 -1
  38. package/dist/cjs/Form/Select/useAddNewBtn.module.scss.cjs.js +1 -1
  39. package/dist/cjs/Form/Textarea/Textarea.module.scss.cjs.js +1 -1
  40. package/dist/cjs/Form/Toggle/Toggle.module.scss.cjs.js +1 -1
  41. package/dist/cjs/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.module.scss.cjs.js +1 -1
  42. package/dist/cjs/Form/Wrapper/InputWrapper/InputWrapper.module.scss.cjs.js +1 -1
  43. package/dist/cjs/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.module.scss.cjs.js +1 -1
  44. package/dist/cjs/Form/Wrapper/RadioWrapper/RadioWrapper.module.scss.cjs.js +1 -1
  45. package/dist/cjs/Form/Wrapper/SelectWrapper/SelectWrapper.module.scss.cjs.js +1 -1
  46. package/dist/cjs/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss.cjs.js +1 -1
  47. package/dist/cjs/Form/Wrapper/Wrapper/Wrapper.module.scss.cjs.js +1 -1
  48. package/dist/cjs/Icon/Icon.module.scss.cjs.js +1 -1
  49. package/dist/cjs/Layout/ContentHeader/ContentHeader.module.scss.cjs.js +1 -1
  50. package/dist/cjs/Layout/FormPage/FormWithStepper/FormSection/FormSection.module.scss.cjs.js +1 -1
  51. package/dist/cjs/Layout/FormPage/FormWithStepper/FormStepper/FormStepper.module.scss.cjs.js +1 -1
  52. package/dist/cjs/Layout/FormPage/FormWithStepper/FormWithStepper.module.scss.cjs.js +1 -1
  53. package/dist/cjs/Link/Link.module.scss.cjs.js +1 -1
  54. package/dist/cjs/Notifications/Alert/AlertContainer/AlertContainer.module.scss.cjs.js +1 -1
  55. package/dist/cjs/Notifications/Alert/AlertItem/AlertItem.module.scss.cjs.js +1 -1
  56. package/dist/cjs/Notifications/Banner/Banner.module.scss.cjs.js +1 -1
  57. package/dist/cjs/Notifications/BaseModal/BaseModal.module.scss.cjs.js +1 -1
  58. package/dist/cjs/Notifications/BaseModal/BaseModalActions/BaseModalActions.module.scss.cjs.js +1 -1
  59. package/dist/cjs/Notifications/BaseModal/BaseModalContent/BaseModalContent.module.scss.cjs.js +1 -1
  60. package/dist/cjs/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.module.scss.cjs.js +1 -1
  61. package/dist/cjs/Notifications/Dialog/Dialog.module.scss.cjs.js +1 -1
  62. package/dist/cjs/Notifications/Dialog/DialogActions/DialogActions.module.scss.cjs.js +1 -1
  63. package/dist/cjs/Notifications/Dialog/DialogTitle/DialogTitle.module.scss.cjs.js +1 -1
  64. package/dist/cjs/Notifications/SideSheet/SideSheet.module.scss.cjs.js +1 -1
  65. package/dist/cjs/Notifications/SideSheet/SideSheetContent/SideSheetContent.module.scss.cjs.js +1 -1
  66. package/dist/cjs/Notifications/SideSheet/SideSheetHeader/SideSheetHeader.module.scss.cjs.js +1 -1
  67. package/dist/cjs/Notifications/SlideInModal/SlideInModal.module.scss.cjs.js +1 -1
  68. package/dist/cjs/Pagination/Pagination.module.scss.cjs.js +1 -1
  69. package/dist/cjs/Popover/Popover.module.scss.cjs.js +1 -1
  70. package/dist/cjs/ProgressBar/ProgressBar.module.scss.cjs.js +1 -1
  71. package/dist/cjs/Skeleton/Skeleton.module.scss.cjs.js +1 -1
  72. package/dist/cjs/Spinner/Spinner.module.scss.cjs.js +1 -1
  73. package/dist/cjs/Stepper/Step.module.scss.cjs.js +1 -1
  74. package/dist/cjs/Stepper/Stepper.module.scss.cjs.js +1 -1
  75. package/dist/cjs/Tabs/Tab.module.scss.cjs.js +1 -1
  76. package/dist/cjs/Tabs/TabButton.module.scss.cjs.js +1 -1
  77. package/dist/cjs/Tabs/Tabs.module.scss.cjs.js +1 -1
  78. package/dist/cjs/Tag/RemoveButton.module.scss.cjs.js +1 -1
  79. package/dist/cjs/Tag/Tag.module.scss.cjs.js +1 -1
  80. package/dist/cjs/TextEllipsis/TextEllipsis.module.scss.cjs.js +1 -1
  81. package/dist/cjs/Tiles/Tile.module.scss.cjs.js +1 -1
  82. package/dist/cjs/Tiles/Tiles.module.scss.cjs.js +1 -1
  83. package/dist/cjs/Tooltip/Tooltip.module.scss.cjs.js +1 -1
  84. package/dist/cjs/Typography/Typography.module.scss.cjs.js +1 -1
  85. package/dist/cjs/admin/layout/LeftNav/LeftNav.cjs.js +1 -1
  86. package/dist/cjs/admin/layout/LeftNav/LeftNav.cjs.js.map +1 -1
  87. package/dist/cjs/admin/layout/LeftNav/LeftNav.module.scss.cjs.js +1 -1
  88. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.cjs.js +1 -1
  89. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.cjs.js.map +1 -1
  90. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/LeftNavItem.module.scss.cjs.js +1 -1
  91. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.cjs.js +1 -1
  92. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.cjs.js.map +1 -1
  93. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.cjs.js +1 -1
  94. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.cjs.js.map +1 -1
  95. package/dist/cjs/admin/layout/MicrofrontendContainer/MicrofrontendContainer.module.scss.cjs.js +1 -1
  96. package/dist/cjs/miscellaneous/IdentityProviderButton.module.scss.cjs.js +1 -1
  97. package/dist/cjs/src/components/admin/layout/LeftNav/LeftNav.d.ts +1 -0
  98. package/dist/cjs/src/components/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.d.ts +1 -0
  99. package/dist/cjs/src/components/admin/layout/LeftNav/LeftNavItem/LeftNavItem.interface.d.ts +1 -0
  100. package/dist/cjs/src/components/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.d.ts +1 -0
  101. package/dist/cjs/src/components/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.d.ts +2 -1
  102. package/dist/cjs/src/readyclasses.module.scss.cjs.js +1 -1
  103. package/dist/esm/Breadcrumbs/Breadcrumbs.module.scss.esm.js +2 -2
  104. package/dist/esm/Button/BaseButton.module.scss.esm.js +2 -2
  105. package/dist/esm/Button/Button.module.scss.esm.js +2 -2
  106. package/dist/esm/Button/IconButton.module.scss.esm.js +2 -2
  107. package/dist/esm/ContextMenu/ContextMenu.module.scss.esm.js +2 -2
  108. package/dist/esm/ContextMenu/ContextMenuItem.module.scss.esm.js +2 -2
  109. package/dist/esm/DataGrid/DataGrid.module.scss.esm.js +2 -2
  110. package/dist/esm/DataGrid/DataGridActions/DataGridActions.module.scss.esm.js +2 -2
  111. package/dist/esm/DataGrid/DataGridActions/DataGridColumnsToggle.module.scss.esm.js +2 -2
  112. package/dist/esm/DataGrid/DataGridBody/DataGridBody.module.scss.esm.js +2 -2
  113. package/dist/esm/DataGrid/DataGridBody/DataGridCell/DataGridCell.module.scss.esm.js +2 -2
  114. package/dist/esm/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawer.module.scss.esm.js +2 -2
  115. package/dist/esm/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawerItem.module.scss.esm.js +2 -2
  116. package/dist/esm/DataGrid/DataGridBody/DataGridRow/DataGridRow.module.scss.esm.js +2 -2
  117. package/dist/esm/DataGrid/DataGridFilters/DataGridFilter.module.scss.esm.js +2 -2
  118. package/dist/esm/DataGrid/DataGridFilters/DataGridToolbar.module.scss.esm.js +2 -2
  119. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.esm.js +2 -2
  120. package/dist/esm/DataGrid/DataGridHeader/DataGridHeader.module.scss.esm.js +2 -2
  121. package/dist/esm/DataGrid/DataGridHeader/DataGridHeaderCell.module.scss.esm.js +2 -2
  122. package/dist/esm/DatePicker/DatePicker.module.scss.esm.js +2 -2
  123. package/dist/esm/Form/Checkbox/Checkbox.module.scss.esm.js +2 -2
  124. package/dist/esm/Form/Fieldset/Fieldset.module.scss.esm.js +2 -2
  125. package/dist/esm/Form/FileUpload/FileItem/FileItem.module.scss.esm.js +2 -2
  126. package/dist/esm/Form/FileUpload/FileUpload.module.scss.esm.js +2 -2
  127. package/dist/esm/Form/Form.module.scss.esm.js +2 -2
  128. package/dist/esm/Form/FormControl/FormControl.module.scss.esm.js +2 -2
  129. package/dist/esm/Form/FormErrorText/FormErrorText.module.scss.esm.js +2 -2
  130. package/dist/esm/Form/FormGroup/FormGroup.module.scss.esm.js +2 -2
  131. package/dist/esm/Form/FormHelperText/FormHelperText.module.scss.esm.js +2 -2
  132. package/dist/esm/Form/FormSelectorWrapper/FormSelectorWrapper.module.scss.esm.js +2 -2
  133. package/dist/esm/Form/Input/Input.module.scss.esm.js +2 -2
  134. package/dist/esm/Form/Label/Label.module.scss.esm.js +2 -2
  135. package/dist/esm/Form/Radio/Radio.module.scss.esm.js +2 -2
  136. package/dist/esm/Form/Select/MultiSelect/MultiSelect.module.scss.esm.js +2 -2
  137. package/dist/esm/Form/Select/MultiSelect/SelectButton.module.scss.esm.js +2 -2
  138. package/dist/esm/Form/Select/MultiSelect/SelectedOptions.module.scss.esm.js +2 -2
  139. package/dist/esm/Form/Select/SingleSelect/Select.module.scss.esm.js +2 -2
  140. package/dist/esm/Form/Select/useAddNewBtn.module.scss.esm.js +2 -2
  141. package/dist/esm/Form/Textarea/Textarea.module.scss.esm.js +2 -2
  142. package/dist/esm/Form/Toggle/Toggle.module.scss.esm.js +2 -2
  143. package/dist/esm/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.module.scss.esm.js +2 -2
  144. package/dist/esm/Form/Wrapper/InputWrapper/InputWrapper.module.scss.esm.js +2 -2
  145. package/dist/esm/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.module.scss.esm.js +2 -2
  146. package/dist/esm/Form/Wrapper/RadioWrapper/RadioWrapper.module.scss.esm.js +2 -2
  147. package/dist/esm/Form/Wrapper/SelectWrapper/SelectWrapper.module.scss.esm.js +2 -2
  148. package/dist/esm/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss.esm.js +2 -2
  149. package/dist/esm/Form/Wrapper/Wrapper/Wrapper.module.scss.esm.js +2 -2
  150. package/dist/esm/Icon/Icon.module.scss.esm.js +2 -2
  151. package/dist/esm/Layout/ContentHeader/ContentHeader.module.scss.esm.js +2 -2
  152. package/dist/esm/Layout/FormPage/FormWithStepper/FormSection/FormSection.module.scss.esm.js +2 -2
  153. package/dist/esm/Layout/FormPage/FormWithStepper/FormStepper/FormStepper.module.scss.esm.js +2 -2
  154. package/dist/esm/Layout/FormPage/FormWithStepper/FormWithStepper.module.scss.esm.js +2 -2
  155. package/dist/esm/Link/Link.module.scss.esm.js +2 -2
  156. package/dist/esm/Notifications/Alert/AlertContainer/AlertContainer.module.scss.esm.js +2 -2
  157. package/dist/esm/Notifications/Alert/AlertItem/AlertItem.module.scss.esm.js +2 -2
  158. package/dist/esm/Notifications/Banner/Banner.module.scss.esm.js +2 -2
  159. package/dist/esm/Notifications/BaseModal/BaseModal.module.scss.esm.js +2 -2
  160. package/dist/esm/Notifications/BaseModal/BaseModalActions/BaseModalActions.module.scss.esm.js +2 -2
  161. package/dist/esm/Notifications/BaseModal/BaseModalContent/BaseModalContent.module.scss.esm.js +2 -2
  162. package/dist/esm/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.module.scss.esm.js +2 -2
  163. package/dist/esm/Notifications/Dialog/Dialog.module.scss.esm.js +2 -2
  164. package/dist/esm/Notifications/Dialog/DialogActions/DialogActions.module.scss.esm.js +2 -2
  165. package/dist/esm/Notifications/Dialog/DialogTitle/DialogTitle.module.scss.esm.js +2 -2
  166. package/dist/esm/Notifications/SideSheet/SideSheet.module.scss.esm.js +2 -2
  167. package/dist/esm/Notifications/SideSheet/SideSheetContent/SideSheetContent.module.scss.esm.js +2 -2
  168. package/dist/esm/Notifications/SideSheet/SideSheetHeader/SideSheetHeader.module.scss.esm.js +2 -2
  169. package/dist/esm/Notifications/SlideInModal/SlideInModal.module.scss.esm.js +2 -2
  170. package/dist/esm/Pagination/Pagination.module.scss.esm.js +2 -2
  171. package/dist/esm/Popover/Popover.module.scss.esm.js +2 -2
  172. package/dist/esm/ProgressBar/ProgressBar.module.scss.esm.js +2 -2
  173. package/dist/esm/Skeleton/Skeleton.module.scss.esm.js +2 -2
  174. package/dist/esm/Spinner/Spinner.module.scss.esm.js +2 -2
  175. package/dist/esm/Stepper/Step.module.scss.esm.js +2 -2
  176. package/dist/esm/Stepper/Stepper.module.scss.esm.js +2 -2
  177. package/dist/esm/Tabs/Tab.module.scss.esm.js +2 -2
  178. package/dist/esm/Tabs/TabButton.module.scss.esm.js +2 -2
  179. package/dist/esm/Tabs/Tabs.module.scss.esm.js +2 -2
  180. package/dist/esm/Tag/RemoveButton.module.scss.esm.js +2 -2
  181. package/dist/esm/Tag/Tag.module.scss.esm.js +2 -2
  182. package/dist/esm/TextEllipsis/TextEllipsis.module.scss.esm.js +2 -2
  183. package/dist/esm/Tiles/Tile.module.scss.esm.js +2 -2
  184. package/dist/esm/Tiles/Tiles.module.scss.esm.js +2 -2
  185. package/dist/esm/Tooltip/Tooltip.module.scss.esm.js +2 -2
  186. package/dist/esm/Typography/Typography.module.scss.esm.js +2 -2
  187. package/dist/esm/admin/layout/LeftNav/LeftNav.esm.js +2 -2
  188. package/dist/esm/admin/layout/LeftNav/LeftNav.esm.js.map +1 -1
  189. package/dist/esm/admin/layout/LeftNav/LeftNav.module.scss.esm.js +2 -2
  190. package/dist/esm/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.esm.js +12 -7
  191. package/dist/esm/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.esm.js.map +1 -1
  192. package/dist/esm/admin/layout/LeftNav/LeftNavItem/LeftNavItem.module.scss.esm.js +2 -2
  193. package/dist/esm/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.esm.js +3 -3
  194. package/dist/esm/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.esm.js.map +1 -1
  195. package/dist/esm/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.esm.js +9 -4
  196. package/dist/esm/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.esm.js.map +1 -1
  197. package/dist/esm/admin/layout/MicrofrontendContainer/MicrofrontendContainer.module.scss.esm.js +2 -2
  198. package/dist/esm/miscellaneous/IdentityProviderButton.module.scss.esm.js +2 -2
  199. package/dist/esm/src/components/admin/layout/LeftNav/LeftNav.d.ts +1 -0
  200. package/dist/esm/src/components/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.d.ts +1 -0
  201. package/dist/esm/src/components/admin/layout/LeftNav/LeftNavItem/LeftNavItem.interface.d.ts +1 -0
  202. package/dist/esm/src/components/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.d.ts +1 -0
  203. package/dist/esm/src/components/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.d.ts +2 -1
  204. package/dist/esm/src/readyclasses.module.scss.esm.js +2 -2
  205. package/package.json +1 -1
  206. package/src/components/admin/layout/LeftNav/LeftNav.tsx +12 -1
  207. package/src/components/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.tsx +23 -7
  208. package/src/components/admin/layout/LeftNav/LeftNavItem/LeftNavItem.interface.ts +1 -0
  209. package/src/components/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.tsx +3 -2
  210. package/src/components/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.ts +14 -3
@@ -34,10 +34,20 @@ export interface Props extends ComponentPropsWithRef<"nav"> {
34
34
  navigate: (path: string) => void;
35
35
  onItemClick?: (path?: string, button?: boolean) => void;
36
36
  marginTop?: string;
37
+ internalLinkPrefix?: string;
37
38
  }
38
39
 
39
40
  const LeftNavComponent: ForwardRefRenderFunction<HTMLElement, Props> = (
40
- { isSideMenuOpen, onScreenSizeChange, items, navigate, onItemClick, marginTop, ...rest },
41
+ {
42
+ isSideMenuOpen,
43
+ onScreenSizeChange,
44
+ items,
45
+ navigate,
46
+ onItemClick,
47
+ marginTop,
48
+ internalLinkPrefix,
49
+ ...rest
50
+ },
41
51
  ref
42
52
  ) => {
43
53
  const [isSideNavbarVisible, setIsSideNavbarVisible] = useState(isSideMenuOpen);
@@ -62,6 +72,7 @@ const LeftNavComponent: ForwardRefRenderFunction<HTMLElement, Props> = (
62
72
  navigate={navigate}
63
73
  onItemClick={onItemClick}
64
74
  refItems={refItems}
75
+ internalLinkPrefix={internalLinkPrefix}
65
76
  />
66
77
  );
67
78
  });
@@ -37,17 +37,36 @@ export interface Props extends HTMLProps<HTMLElement> {
37
37
  refItems: UseRefItemsReturnType;
38
38
  NestedComponent: ForwardRefExoticComponent<LeftNavItemProps>;
39
39
  closeParentList?: () => void;
40
+ internalLinkPrefix?: string;
40
41
  }
41
42
 
42
43
  const chevronIconDataKey = { attributeKey: "chevron-icon", objectKey: "chevronIcon" };
43
44
 
44
45
  const ButtonLeftNavItemComponent: ForwardRefRenderFunction<HTMLElement, Props> = (
45
- { item, navigate, onItemClick, refItems, NestedComponent, closeParentList },
46
+ {
47
+ item,
48
+ navigate,
49
+ onItemClick,
50
+ refItems,
51
+ NestedComponent,
52
+ closeParentList,
53
+ internalLinkPrefix = ""
54
+ },
46
55
  ref
47
56
  ) => {
48
57
  const [expanded, setExpanded] = useState(false);
49
58
  const isActiveParent = !!item.items?.find(menuItem => menuItem.active);
50
- const { onKeyPressNavigation } = useKeyboardNavigation({ refItems, item, closeParentList });
59
+
60
+ const onExpandIconClickHandler = () => {
61
+ setExpanded(expanded => !expanded);
62
+ };
63
+
64
+ const { onKeyPressNavigation } = useKeyboardNavigation({
65
+ refItems,
66
+ item,
67
+ closeParentList,
68
+ onExpandIconClickHandler
69
+ });
51
70
 
52
71
  const onButtonClickHandler = (event: MouseEvent<HTMLButtonElement>) => {
53
72
  const isChevronIcon = !!(event.target as HTMLElement).dataset[chevronIconDataKey.objectKey];
@@ -62,10 +81,6 @@ const ButtonLeftNavItemComponent: ForwardRefRenderFunction<HTMLElement, Props> =
62
81
  event.preventDefault();
63
82
  };
64
83
 
65
- const onExpandIconClickHandler = () => {
66
- setExpanded(expanded => !expanded);
67
- };
68
-
69
84
  const openParentWithActiveElement = () => {
70
85
  if (isActiveParent) {
71
86
  setExpanded(true);
@@ -110,7 +125,7 @@ const ButtonLeftNavItemComponent: ForwardRefRenderFunction<HTMLElement, Props> =
110
125
  React.cloneElement(item.iconComponent, { className: classes["menu-item-icon"] })}
111
126
  {item.path ? (
112
127
  <a
113
- href={item.path}
128
+ href={item.path ? internalLinkPrefix + item.path : ""}
114
129
  aria-current={item.active ? "page" : false}
115
130
  className={classes["menu-item-text"]}
116
131
  onClick={onLinkClickHandler}
@@ -145,6 +160,7 @@ const ButtonLeftNavItemComponent: ForwardRefRenderFunction<HTMLElement, Props> =
145
160
  navigate={navigate}
146
161
  onItemClick={onItemClick}
147
162
  refItems={refItems}
163
+ internalLinkPrefix={internalLinkPrefix}
148
164
  >
149
165
  {item.title}
150
166
  </NestedComponent>
@@ -24,4 +24,5 @@ export interface LeftNavItemProps extends HTMLProps<HTMLElement> {
24
24
  onItemClick?: (path?: string, button?: boolean) => void;
25
25
  refItems: UseRefItemsReturnType;
26
26
  closeParentList?: () => void;
27
+ internalLinkPrefix?: string;
27
28
  }
@@ -27,10 +27,11 @@ export interface Props extends HTMLProps<HTMLElement> {
27
27
  onItemClick?: (path?: string, button?: boolean) => void;
28
28
  refItems: UseRefItemsReturnType;
29
29
  closeParentList?: () => void;
30
+ internalLinkPrefix?: string;
30
31
  }
31
32
 
32
33
  const LinkLeftNavItemComponent: ForwardRefRenderFunction<HTMLElement, Props> = (
33
- { item, onItemClick, refItems, closeParentList, navigate },
34
+ { item, onItemClick, refItems, closeParentList, navigate, internalLinkPrefix = "" },
34
35
  ref
35
36
  ) => {
36
37
  const { onKeyPressNavigation } = useKeyboardNavigation({ refItems, item, closeParentList });
@@ -88,7 +89,7 @@ const LinkLeftNavItemComponent: ForwardRefRenderFunction<HTMLElement, Props> = (
88
89
  aria-current={item.active ? "page" : false}
89
90
  aria-disabled={item.disabled}
90
91
  className={menuItemLinkClasses.join(" ")}
91
- href={item.path ?? ""}
92
+ href={item.path ? internalLinkPrefix + item.path : ""}
92
93
  tabIndex={tabIndex}
93
94
  >
94
95
  <div className={classes["menu-item-text-wrapper"]}>
@@ -22,11 +22,18 @@ interface Props {
22
22
  item: MenuItem;
23
23
  refItems: UseRefItemsReturnType;
24
24
  closeParentList?: () => void;
25
+ onExpandIconClickHandler?: () => void;
25
26
  }
26
27
 
27
- export const useKeyboardNavigation = ({ refItems, item, closeParentList }: Props) => {
28
+ export const useKeyboardNavigation = ({
29
+ refItems,
30
+ item,
31
+ closeParentList,
32
+ onExpandIconClickHandler
33
+ }: Props) => {
34
+ const isButtonLeftNavItem = !!onExpandIconClickHandler;
28
35
  const onKeyPressNavigation = (e: KeyboardEvent<HTMLButtonElement | HTMLAnchorElement>) => {
29
- if (e.code === "Escape") {
36
+ if (e.code === "Escape" || e.code === "ArrowLeft") {
30
37
  e.preventDefault();
31
38
  e.stopPropagation();
32
39
  closeParentList?.();
@@ -55,9 +62,13 @@ export const useKeyboardNavigation = ({ refItems, item, closeParentList }: Props
55
62
  if (e.code === "Space" || e.code === "Enter") {
56
63
  e.stopPropagation();
57
64
  e.preventDefault();
58
- refItems.getNextElement(item.key, true)?.focus();
65
+ isButtonLeftNavItem && refItems.getNextElement(item.key, true)?.focus();
59
66
  e.currentTarget.click();
60
67
  }
68
+ if (e.code === "ArrowRight") {
69
+ onExpandIconClickHandler?.();
70
+ refItems.getNextElement(item.key, true)?.focus();
71
+ }
61
72
  };
62
73
 
63
74
  return { onKeyPressNavigation };