@onewelcome/react-lib-components 8.10.0 → 8.11.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 (500) 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.cjs.js +1 -1
  5. package/dist/cjs/Button/IconButton.cjs.js.map +1 -1
  6. package/dist/cjs/Button/IconButton.module.scss.cjs.js +1 -1
  7. package/dist/cjs/ContextMenu/ContextMenu.module.scss.cjs.js +1 -1
  8. package/dist/cjs/ContextMenu/ContextMenuItem.module.scss.cjs.js +1 -1
  9. package/dist/cjs/DataGrid/DataGrid.module.scss.cjs.js +1 -1
  10. package/dist/cjs/DataGrid/DataGridActions/DataGridActions.module.scss.cjs.js +1 -1
  11. package/dist/cjs/DataGrid/DataGridActions/DataGridColumnsToggle.module.scss.cjs.js +1 -1
  12. package/dist/cjs/DataGrid/DataGridBody/DataGridBody.module.scss.cjs.js +1 -1
  13. package/dist/cjs/DataGrid/DataGridBody/DataGridCell/DataGridCell.module.scss.cjs.js +1 -1
  14. package/dist/cjs/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawer.module.scss.cjs.js +1 -1
  15. package/dist/cjs/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawerItem.module.scss.cjs.js +1 -1
  16. package/dist/cjs/DataGrid/DataGridBody/DataGridRow/DataGridRow.module.scss.cjs.js +1 -1
  17. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilter.module.scss.cjs.js +1 -1
  18. package/dist/cjs/DataGrid/DataGridFilters/DataGridToolbar.module.scss.cjs.js +1 -1
  19. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.cjs.js +1 -1
  20. package/dist/cjs/DataGrid/DataGridHeader/DataGridHeader.module.scss.cjs.js +1 -1
  21. package/dist/cjs/DataGrid/DataGridHeader/DataGridHeaderCell.module.scss.cjs.js +1 -1
  22. package/dist/cjs/DatePicker/DatePicker.module.scss.cjs.js +1 -1
  23. package/dist/cjs/Form/Checkbox/Checkbox.module.scss.cjs.js +1 -1
  24. package/dist/cjs/Form/Fieldset/Fieldset.module.scss.cjs.js +1 -1
  25. package/dist/cjs/Form/FileUpload/FileItem/FileItem.module.scss.cjs.js +1 -1
  26. package/dist/cjs/Form/FileUpload/FileUpload.module.scss.cjs.js +1 -1
  27. package/dist/cjs/Form/Form.module.scss.cjs.js +1 -1
  28. package/dist/cjs/Form/FormControl/FormControl.module.scss.cjs.js +1 -1
  29. package/dist/cjs/Form/FormGroup/FormGroup.module.scss.cjs.js +1 -1
  30. package/dist/cjs/Form/FormHelperText/FormHelperText.module.scss.cjs.js +1 -1
  31. package/dist/cjs/Form/FormSelectorWrapper/FormSelectorWrapper.module.scss.cjs.js +1 -1
  32. package/dist/cjs/Form/Input/Input.module.scss.cjs.js +1 -1
  33. package/dist/cjs/Form/Label/Label.module.scss.cjs.js +1 -1
  34. package/dist/cjs/Form/Radio/Radio.module.scss.cjs.js +1 -1
  35. package/dist/cjs/Form/Select/MultiSelect/MultiSelect.module.scss.cjs.js +1 -1
  36. package/dist/cjs/Form/Select/MultiSelect/SelectButton.module.scss.cjs.js +1 -1
  37. package/dist/cjs/Form/Select/MultiSelect/SelectedOptions.module.scss.cjs.js +1 -1
  38. package/dist/cjs/Form/Select/SingleSelect/Select.module.scss.cjs.js +1 -1
  39. package/dist/cjs/Form/Select/useAddNewBtn.module.scss.cjs.js +1 -1
  40. package/dist/cjs/Form/Textarea/Textarea.module.scss.cjs.js +1 -1
  41. package/dist/cjs/Form/Toggle/Toggle.module.scss.cjs.js +1 -1
  42. package/dist/cjs/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.module.scss.cjs.js +1 -1
  43. package/dist/cjs/Form/Wrapper/InputWrapper/InputWrapper.module.scss.cjs.js +1 -1
  44. package/dist/cjs/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.module.scss.cjs.js +1 -1
  45. package/dist/cjs/Form/Wrapper/RadioWrapper/RadioWrapper.module.scss.cjs.js +1 -1
  46. package/dist/cjs/Form/Wrapper/SelectWrapper/SelectWrapper.module.scss.cjs.js +1 -1
  47. package/dist/cjs/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss.cjs.js +1 -1
  48. package/dist/cjs/Form/Wrapper/Wrapper/Wrapper.module.scss.cjs.js +1 -1
  49. package/dist/cjs/Icon/Icon.cjs.js +1 -1
  50. package/dist/cjs/Icon/Icon.cjs.js.map +1 -1
  51. package/dist/cjs/Icon/Icon.module.scss.cjs.js +1 -1
  52. package/dist/cjs/Layout/ContentHeader/ContentHeader.cjs.js +1 -1
  53. package/dist/cjs/Layout/ContentHeader/ContentHeader.cjs.js.map +1 -1
  54. package/dist/cjs/Layout/ContentHeader/ContentHeader.module.scss.cjs.js +1 -1
  55. package/dist/cjs/Layout/FormPage/FormWithStepper/FormSection/FormSection.module.scss.cjs.js +1 -1
  56. package/dist/cjs/Layout/FormPage/FormWithStepper/FormStepper/FormStepper.module.scss.cjs.js +1 -1
  57. package/dist/cjs/Layout/FormPage/FormWithStepper/FormWithStepper.module.scss.cjs.js +1 -1
  58. package/dist/cjs/Link/Link.module.scss.cjs.js +1 -1
  59. package/dist/cjs/Notifications/Alert/AlertContainer/AlertContainer.module.scss.cjs.js +1 -1
  60. package/dist/cjs/Notifications/Alert/AlertItem/AlertItem.module.scss.cjs.js +1 -1
  61. package/dist/cjs/Notifications/Banner/Banner.module.scss.cjs.js +1 -1
  62. package/dist/cjs/Notifications/BaseModal/BaseModal.module.scss.cjs.js +1 -1
  63. package/dist/cjs/Notifications/BaseModal/BaseModalActions/BaseModalActions.module.scss.cjs.js +1 -1
  64. package/dist/cjs/Notifications/BaseModal/BaseModalContent/BaseModalContent.module.scss.cjs.js +1 -1
  65. package/dist/cjs/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.module.scss.cjs.js +1 -1
  66. package/dist/cjs/Notifications/Dialog/Dialog.module.scss.cjs.js +1 -1
  67. package/dist/cjs/Notifications/Dialog/DialogActions/DialogActions.module.scss.cjs.js +1 -1
  68. package/dist/cjs/Notifications/Dialog/DialogTitle/DialogTitle.module.scss.cjs.js +1 -1
  69. package/dist/cjs/Notifications/SideSheet/SideSheet.module.scss.cjs.js +1 -1
  70. package/dist/cjs/Notifications/SideSheet/SideSheetContent/SideSheetContent.module.scss.cjs.js +1 -1
  71. package/dist/cjs/Notifications/SideSheet/SideSheetHeader/SideSheetHeader.module.scss.cjs.js +1 -1
  72. package/dist/cjs/Notifications/SlideInModal/SlideInModal.module.scss.cjs.js +1 -1
  73. package/dist/cjs/Pagination/Pagination.module.scss.cjs.js +1 -1
  74. package/dist/cjs/Popover/Popover.module.scss.cjs.js +1 -1
  75. package/dist/cjs/ProgressBar/ProgressBar.module.scss.cjs.js +1 -1
  76. package/dist/cjs/Skeleton/Skeleton.module.scss.cjs.js +1 -1
  77. package/dist/cjs/Spinner/Spinner.module.scss.cjs.js +1 -1
  78. package/dist/cjs/Stepper/Step.module.scss.cjs.js +1 -1
  79. package/dist/cjs/Stepper/Stepper.module.scss.cjs.js +1 -1
  80. package/dist/cjs/Tabs/Tab.module.scss.cjs.js +1 -1
  81. package/dist/cjs/Tabs/TabButton.module.scss.cjs.js +1 -1
  82. package/dist/cjs/Tabs/Tabs.module.scss.cjs.js +1 -1
  83. package/dist/cjs/Tag/RemoveButton.module.scss.cjs.js +1 -1
  84. package/dist/cjs/Tag/Tag.module.scss.cjs.js +1 -1
  85. package/dist/cjs/TextEllipsis/TextEllipsis.module.scss.cjs.js +1 -1
  86. package/dist/cjs/Tiles/Tile.module.scss.cjs.js +1 -1
  87. package/dist/cjs/Tiles/Tiles.module.scss.cjs.js +1 -1
  88. package/dist/cjs/Tooltip/Tooltip.module.scss.cjs.js +1 -1
  89. package/dist/cjs/Typography/Typography.module.scss.cjs.js +1 -1
  90. package/dist/cjs/_BaseStyling_/BaseStyling.cjs.js +1 -1
  91. package/dist/cjs/_BaseStyling_/BaseStyling.cjs.js.map +1 -1
  92. package/dist/cjs/admin/layout/LeftNav/LeftNav.cjs.js +2 -0
  93. package/dist/cjs/admin/layout/LeftNav/LeftNav.cjs.js.map +1 -0
  94. package/dist/cjs/admin/layout/LeftNav/LeftNav.module.scss.cjs.js +2 -0
  95. package/dist/cjs/admin/layout/LeftNav/LeftNav.module.scss.cjs.js.map +1 -0
  96. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.cjs.js +2 -0
  97. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.cjs.js.map +1 -0
  98. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/LeftNavItem.cjs.js +2 -0
  99. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/LeftNavItem.cjs.js.map +1 -0
  100. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/LeftNavItem.module.scss.cjs.js +2 -0
  101. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/LeftNavItem.module.scss.cjs.js.map +1 -0
  102. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.cjs.js +2 -0
  103. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.cjs.js.map +1 -0
  104. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.cjs.js +2 -0
  105. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.cjs.js.map +1 -0
  106. package/dist/cjs/admin/layout/LeftNav/useRefItems.cjs.js +2 -0
  107. package/dist/cjs/admin/layout/LeftNav/useRefItems.cjs.js.map +1 -0
  108. package/dist/cjs/admin/layout/MicrofrontendContainer/MicrofrontendContainer.module.scss.cjs.js +1 -1
  109. package/dist/cjs/miscellaneous/IdentityProviderButton.module.scss.cjs.js +1 -1
  110. package/dist/cjs/node_modules/@remix-run/router/dist/router.cjs.js +12 -0
  111. package/dist/cjs/node_modules/@remix-run/router/dist/router.cjs.js.map +1 -0
  112. package/dist/cjs/node_modules/react-router/dist/index.cjs.js +12 -0
  113. package/dist/cjs/node_modules/react-router/dist/index.cjs.js.map +1 -0
  114. package/dist/cjs/node_modules/react-router-dom/dist/index.cjs.js +12 -0
  115. package/dist/cjs/node_modules/react-router-dom/dist/index.cjs.js.map +1 -0
  116. package/dist/cjs/src/components/Icon/Icon.d.ts +1 -0
  117. package/dist/cjs/src/components/Layout/ContentHeader/ContentHeader.d.ts +16 -2
  118. package/dist/cjs/src/components/_BaseStyling_/BaseStyling.d.ts +2 -0
  119. package/dist/cjs/src/components/admin/layout/LeftNav/LeftNav.d.ts +10 -0
  120. package/dist/cjs/src/components/admin/layout/LeftNav/LeftNav.interfaces.d.ts +13 -0
  121. package/dist/cjs/src/components/admin/layout/LeftNav/LeftNav.test.d.ts +1 -0
  122. package/dist/cjs/src/components/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.d.ts +13 -0
  123. package/dist/cjs/src/components/admin/layout/LeftNav/LeftNavItem/LeftNavItem.d.ts +3 -0
  124. package/dist/cjs/src/components/admin/layout/LeftNav/LeftNavItem/LeftNavItem.interface.d.ts +10 -0
  125. package/dist/cjs/src/components/admin/layout/LeftNav/LeftNavItem/LeftNavItem.test.d.ts +1 -0
  126. package/dist/cjs/src/components/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.d.ts +10 -0
  127. package/dist/cjs/src/components/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.d.ts +12 -0
  128. package/dist/cjs/src/components/admin/layout/LeftNav/useRefItems.d.ts +22 -0
  129. package/dist/cjs/src/components/admin/layout/LeftNav/useRefItems.test.d.ts +1 -0
  130. package/dist/cjs/src/index.cjs.js +1 -1
  131. package/dist/cjs/src/index.d.ts +2 -0
  132. package/dist/cjs/src/readyclasses.module.scss.cjs.js +1 -1
  133. package/dist/esm/Breadcrumbs/Breadcrumbs.esm.js +9 -9
  134. package/dist/esm/Breadcrumbs/Breadcrumbs.esm.js.map +1 -1
  135. package/dist/esm/Breadcrumbs/Breadcrumbs.module.scss.esm.js +2 -2
  136. package/dist/esm/Button/BaseButton.esm.js +5 -5
  137. package/dist/esm/Button/BaseButton.esm.js.map +1 -1
  138. package/dist/esm/Button/BaseButton.module.scss.esm.js +2 -2
  139. package/dist/esm/Button/Button.esm.js +6 -6
  140. package/dist/esm/Button/Button.esm.js.map +1 -1
  141. package/dist/esm/Button/Button.module.scss.esm.js +2 -2
  142. package/dist/esm/Button/IconButton.esm.js +6 -9
  143. package/dist/esm/Button/IconButton.esm.js.map +1 -1
  144. package/dist/esm/Button/IconButton.module.scss.esm.js +2 -2
  145. package/dist/esm/Button/Spinner.esm.js +3 -3
  146. package/dist/esm/Button/Spinner.esm.js.map +1 -1
  147. package/dist/esm/ContextMenu/ContextMenu.esm.js +10 -10
  148. package/dist/esm/ContextMenu/ContextMenu.esm.js.map +1 -1
  149. package/dist/esm/ContextMenu/ContextMenu.module.scss.esm.js +2 -2
  150. package/dist/esm/ContextMenu/ContextMenuItem.esm.js +4 -4
  151. package/dist/esm/ContextMenu/ContextMenuItem.esm.js.map +1 -1
  152. package/dist/esm/ContextMenu/ContextMenuItem.module.scss.esm.js +2 -2
  153. package/dist/esm/DataGrid/DataGrid.esm.js +11 -11
  154. package/dist/esm/DataGrid/DataGrid.esm.js.map +1 -1
  155. package/dist/esm/DataGrid/DataGrid.module.scss.esm.js +2 -2
  156. package/dist/esm/DataGrid/DataGridActions/DataGridActions.esm.js +14 -14
  157. package/dist/esm/DataGrid/DataGridActions/DataGridActions.esm.js.map +1 -1
  158. package/dist/esm/DataGrid/DataGridActions/DataGridActions.module.scss.esm.js +2 -2
  159. package/dist/esm/DataGrid/DataGridActions/DataGridColumnsToggle.esm.js +11 -11
  160. package/dist/esm/DataGrid/DataGridActions/DataGridColumnsToggle.esm.js.map +1 -1
  161. package/dist/esm/DataGrid/DataGridActions/DataGridColumnsToggle.module.scss.esm.js +2 -2
  162. package/dist/esm/DataGrid/DataGridBody/DataGridBody.esm.js +10 -10
  163. package/dist/esm/DataGrid/DataGridBody/DataGridBody.esm.js.map +1 -1
  164. package/dist/esm/DataGrid/DataGridBody/DataGridBody.module.scss.esm.js +2 -2
  165. package/dist/esm/DataGrid/DataGridBody/DataGridCell/DataGridCell.esm.js +10 -10
  166. package/dist/esm/DataGrid/DataGridBody/DataGridCell/DataGridCell.esm.js.map +1 -1
  167. package/dist/esm/DataGrid/DataGridBody/DataGridCell/DataGridCell.module.scss.esm.js +2 -2
  168. package/dist/esm/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawer.esm.js +4 -4
  169. package/dist/esm/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawer.esm.js.map +1 -1
  170. package/dist/esm/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawer.module.scss.esm.js +2 -2
  171. package/dist/esm/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawerItem.esm.js +6 -6
  172. package/dist/esm/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawerItem.esm.js.map +1 -1
  173. package/dist/esm/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawerItem.module.scss.esm.js +2 -2
  174. package/dist/esm/DataGrid/DataGridBody/DataGridRow/DataGridRow.esm.js +15 -15
  175. package/dist/esm/DataGrid/DataGridBody/DataGridRow/DataGridRow.esm.js.map +1 -1
  176. package/dist/esm/DataGrid/DataGridBody/DataGridRow/DataGridRow.module.scss.esm.js +2 -2
  177. package/dist/esm/DataGrid/DataGridBody/DataGridRow/useNestedRow.esm.js +4 -4
  178. package/dist/esm/DataGrid/DataGridBody/DataGridRow/useNestedRow.esm.js.map +1 -1
  179. package/dist/esm/DataGrid/DataGridFilters/DataGridDateFilter.esm.js +4 -4
  180. package/dist/esm/DataGrid/DataGridFilters/DataGridDateFilter.esm.js.map +1 -1
  181. package/dist/esm/DataGrid/DataGridFilters/DataGridFilter.esm.js +4 -4
  182. package/dist/esm/DataGrid/DataGridFilters/DataGridFilter.esm.js.map +1 -1
  183. package/dist/esm/DataGrid/DataGridFilters/DataGridFilter.module.scss.esm.js +2 -2
  184. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterPopover.esm.js +12 -12
  185. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterPopover.esm.js.map +1 -1
  186. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterTag.esm.js +17 -17
  187. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterTag.esm.js.map +1 -1
  188. package/dist/esm/DataGrid/DataGridFilters/DataGridSearchbar.esm.js +3 -3
  189. package/dist/esm/DataGrid/DataGridFilters/DataGridSearchbar.esm.js.map +1 -1
  190. package/dist/esm/DataGrid/DataGridFilters/DataGridToolbar.esm.js +8 -8
  191. package/dist/esm/DataGrid/DataGridFilters/DataGridToolbar.esm.js.map +1 -1
  192. package/dist/esm/DataGrid/DataGridFilters/DataGridToolbar.module.scss.esm.js +2 -2
  193. package/dist/esm/DataGrid/DataGridFilters/DataGridToolbarWrapper.esm.js +5 -5
  194. package/dist/esm/DataGrid/DataGridFilters/DataGridToolbarWrapper.esm.js.map +1 -1
  195. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.esm.js +13 -13
  196. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.esm.js.map +1 -1
  197. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.esm.js +2 -2
  198. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.esm.js +8 -8
  199. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.esm.js.map +1 -1
  200. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.esm.js +4 -4
  201. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.esm.js.map +1 -1
  202. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/SideMenu.esm.js +3 -3
  203. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/SideMenu.esm.js.map +1 -1
  204. package/dist/esm/DataGrid/DataGridHeader/DataGridHeader.esm.js +7 -7
  205. package/dist/esm/DataGrid/DataGridHeader/DataGridHeader.esm.js.map +1 -1
  206. package/dist/esm/DataGrid/DataGridHeader/DataGridHeader.module.scss.esm.js +2 -2
  207. package/dist/esm/DataGrid/DataGridHeader/DataGridHeaderCell.esm.js +7 -7
  208. package/dist/esm/DataGrid/DataGridHeader/DataGridHeaderCell.esm.js.map +1 -1
  209. package/dist/esm/DataGrid/DataGridHeader/DataGridHeaderCell.module.scss.esm.js +2 -2
  210. package/dist/esm/DatePicker/DatePicker.esm.js +2 -2
  211. package/dist/esm/DatePicker/DatePicker.esm.js.map +1 -1
  212. package/dist/esm/DatePicker/DatePicker.module.scss.esm.js +2 -2
  213. package/dist/esm/Form/Checkbox/Checkbox.esm.js +12 -12
  214. package/dist/esm/Form/Checkbox/Checkbox.esm.js.map +1 -1
  215. package/dist/esm/Form/Checkbox/Checkbox.module.scss.esm.js +2 -2
  216. package/dist/esm/Form/Fieldset/Fieldset.esm.js +7 -7
  217. package/dist/esm/Form/Fieldset/Fieldset.esm.js.map +1 -1
  218. package/dist/esm/Form/Fieldset/Fieldset.module.scss.esm.js +2 -2
  219. package/dist/esm/Form/FileUpload/FileItem/FileItem.esm.js +17 -17
  220. package/dist/esm/Form/FileUpload/FileItem/FileItem.esm.js.map +1 -1
  221. package/dist/esm/Form/FileUpload/FileItem/FileItem.module.scss.esm.js +2 -2
  222. package/dist/esm/Form/FileUpload/FileUpload.esm.js +17 -17
  223. package/dist/esm/Form/FileUpload/FileUpload.esm.js.map +1 -1
  224. package/dist/esm/Form/FileUpload/FileUpload.module.scss.esm.js +2 -2
  225. package/dist/esm/Form/Form.esm.js +3 -3
  226. package/dist/esm/Form/Form.esm.js.map +1 -1
  227. package/dist/esm/Form/Form.module.scss.esm.js +2 -2
  228. package/dist/esm/Form/FormControl/FormControl.esm.js +6 -6
  229. package/dist/esm/Form/FormControl/FormControl.esm.js.map +1 -1
  230. package/dist/esm/Form/FormControl/FormControl.module.scss.esm.js +2 -2
  231. package/dist/esm/Form/FormGroup/FormGroup.esm.js +9 -9
  232. package/dist/esm/Form/FormGroup/FormGroup.esm.js.map +1 -1
  233. package/dist/esm/Form/FormGroup/FormGroup.module.scss.esm.js +2 -2
  234. package/dist/esm/Form/FormHelperText/FormHelperText.esm.js +3 -3
  235. package/dist/esm/Form/FormHelperText/FormHelperText.esm.js.map +1 -1
  236. package/dist/esm/Form/FormHelperText/FormHelperText.module.scss.esm.js +2 -2
  237. package/dist/esm/Form/FormSelectorWrapper/FormSelectorWrapper.esm.js +5 -5
  238. package/dist/esm/Form/FormSelectorWrapper/FormSelectorWrapper.esm.js.map +1 -1
  239. package/dist/esm/Form/FormSelectorWrapper/FormSelectorWrapper.module.scss.esm.js +2 -2
  240. package/dist/esm/Form/Input/Input.esm.js +8 -8
  241. package/dist/esm/Form/Input/Input.esm.js.map +1 -1
  242. package/dist/esm/Form/Input/Input.module.scss.esm.js +2 -2
  243. package/dist/esm/Form/Label/Label.esm.js +3 -3
  244. package/dist/esm/Form/Label/Label.esm.js.map +1 -1
  245. package/dist/esm/Form/Label/Label.module.scss.esm.js +2 -2
  246. package/dist/esm/Form/Radio/Radio.esm.js +7 -7
  247. package/dist/esm/Form/Radio/Radio.esm.js.map +1 -1
  248. package/dist/esm/Form/Radio/Radio.module.scss.esm.js +2 -2
  249. package/dist/esm/Form/Select/MultiSelect/MultiOption.esm.js +3 -3
  250. package/dist/esm/Form/Select/MultiSelect/MultiOption.esm.js.map +1 -1
  251. package/dist/esm/Form/Select/MultiSelect/MultiSelect.esm.js +24 -24
  252. package/dist/esm/Form/Select/MultiSelect/MultiSelect.esm.js.map +1 -1
  253. package/dist/esm/Form/Select/MultiSelect/MultiSelect.module.scss.esm.js +2 -2
  254. package/dist/esm/Form/Select/MultiSelect/SelectButton.esm.js +3 -3
  255. package/dist/esm/Form/Select/MultiSelect/SelectButton.esm.js.map +1 -1
  256. package/dist/esm/Form/Select/MultiSelect/SelectButton.module.scss.esm.js +2 -2
  257. package/dist/esm/Form/Select/MultiSelect/SelectedOptions.esm.js +3 -3
  258. package/dist/esm/Form/Select/MultiSelect/SelectedOptions.esm.js.map +1 -1
  259. package/dist/esm/Form/Select/MultiSelect/SelectedOptions.module.scss.esm.js +2 -2
  260. package/dist/esm/Form/Select/MultiSelect/useMultiSelect.esm.js +2 -2
  261. package/dist/esm/Form/Select/MultiSelect/useMultiSelect.esm.js.map +1 -1
  262. package/dist/esm/Form/Select/MultiSelect/useSearch.esm.js +2 -2
  263. package/dist/esm/Form/Select/MultiSelect/useSearch.esm.js.map +1 -1
  264. package/dist/esm/Form/Select/SingleSelect/Option.esm.js +3 -3
  265. package/dist/esm/Form/Select/SingleSelect/Option.esm.js.map +1 -1
  266. package/dist/esm/Form/Select/SingleSelect/Select.esm.js +22 -22
  267. package/dist/esm/Form/Select/SingleSelect/Select.esm.js.map +1 -1
  268. package/dist/esm/Form/Select/SingleSelect/Select.module.scss.esm.js +2 -2
  269. package/dist/esm/Form/Select/SingleSelect/useSearch.esm.js +2 -2
  270. package/dist/esm/Form/Select/SingleSelect/useSearch.esm.js.map +1 -1
  271. package/dist/esm/Form/Select/useAddNewBtn.esm.js +3 -3
  272. package/dist/esm/Form/Select/useAddNewBtn.esm.js.map +1 -1
  273. package/dist/esm/Form/Select/useAddNewBtn.module.scss.esm.js +2 -2
  274. package/dist/esm/Form/Textarea/Textarea.esm.js +6 -6
  275. package/dist/esm/Form/Textarea/Textarea.esm.js.map +1 -1
  276. package/dist/esm/Form/Textarea/Textarea.module.scss.esm.js +2 -2
  277. package/dist/esm/Form/Toggle/Toggle.esm.js +5 -5
  278. package/dist/esm/Form/Toggle/Toggle.esm.js.map +1 -1
  279. package/dist/esm/Form/Toggle/Toggle.module.scss.esm.js +2 -2
  280. package/dist/esm/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.esm.js +5 -5
  281. package/dist/esm/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.esm.js.map +1 -1
  282. package/dist/esm/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.module.scss.esm.js +2 -2
  283. package/dist/esm/Form/Wrapper/InputWrapper/InputWrapper.esm.js +4 -4
  284. package/dist/esm/Form/Wrapper/InputWrapper/InputWrapper.esm.js.map +1 -1
  285. package/dist/esm/Form/Wrapper/InputWrapper/InputWrapper.module.scss.esm.js +2 -2
  286. package/dist/esm/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.esm.js +4 -4
  287. package/dist/esm/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.esm.js.map +1 -1
  288. package/dist/esm/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.module.scss.esm.js +2 -2
  289. package/dist/esm/Form/Wrapper/RadioWrapper/RadioWrapper.esm.js +6 -6
  290. package/dist/esm/Form/Wrapper/RadioWrapper/RadioWrapper.esm.js.map +1 -1
  291. package/dist/esm/Form/Wrapper/RadioWrapper/RadioWrapper.module.scss.esm.js +2 -2
  292. package/dist/esm/Form/Wrapper/SelectWrapper/SelectWrapper.esm.js +4 -4
  293. package/dist/esm/Form/Wrapper/SelectWrapper/SelectWrapper.esm.js.map +1 -1
  294. package/dist/esm/Form/Wrapper/SelectWrapper/SelectWrapper.module.scss.esm.js +2 -2
  295. package/dist/esm/Form/Wrapper/TextareaWrapper/TextareaWrapper.esm.js +5 -5
  296. package/dist/esm/Form/Wrapper/TextareaWrapper/TextareaWrapper.esm.js.map +1 -1
  297. package/dist/esm/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss.esm.js +2 -2
  298. package/dist/esm/Form/Wrapper/Wrapper/Wrapper.esm.js +7 -7
  299. package/dist/esm/Form/Wrapper/Wrapper/Wrapper.esm.js.map +1 -1
  300. package/dist/esm/Form/Wrapper/Wrapper/Wrapper.module.scss.esm.js +2 -2
  301. package/dist/esm/Icon/Icon.esm.js +4 -3
  302. package/dist/esm/Icon/Icon.esm.js.map +1 -1
  303. package/dist/esm/Icon/Icon.module.scss.esm.js +2 -2
  304. package/dist/esm/Layout/ContentHeader/ContentHeader.esm.js +37 -9
  305. package/dist/esm/Layout/ContentHeader/ContentHeader.esm.js.map +1 -1
  306. package/dist/esm/Layout/ContentHeader/ContentHeader.module.scss.esm.js +2 -2
  307. package/dist/esm/Layout/FormPage/FormWithStepper/FormSection/FormSection.esm.js +6 -6
  308. package/dist/esm/Layout/FormPage/FormWithStepper/FormSection/FormSection.esm.js.map +1 -1
  309. package/dist/esm/Layout/FormPage/FormWithStepper/FormSection/FormSection.module.scss.esm.js +2 -2
  310. package/dist/esm/Layout/FormPage/FormWithStepper/FormStepper/FormStepper.esm.js +3 -3
  311. package/dist/esm/Layout/FormPage/FormWithStepper/FormStepper/FormStepper.esm.js.map +1 -1
  312. package/dist/esm/Layout/FormPage/FormWithStepper/FormStepper/FormStepper.module.scss.esm.js +2 -2
  313. package/dist/esm/Layout/FormPage/FormWithStepper/FormWithStepper.esm.js +3 -3
  314. package/dist/esm/Layout/FormPage/FormWithStepper/FormWithStepper.esm.js.map +1 -1
  315. package/dist/esm/Layout/FormPage/FormWithStepper/FormWithStepper.module.scss.esm.js +2 -2
  316. package/dist/esm/Link/Link.esm.js +5 -5
  317. package/dist/esm/Link/Link.esm.js.map +1 -1
  318. package/dist/esm/Link/Link.module.scss.esm.js +2 -2
  319. package/dist/esm/Notifications/Alert/AlertContainer/AlertContainer.esm.js +2 -2
  320. package/dist/esm/Notifications/Alert/AlertContainer/AlertContainer.esm.js.map +1 -1
  321. package/dist/esm/Notifications/Alert/AlertContainer/AlertContainer.module.scss.esm.js +2 -2
  322. package/dist/esm/Notifications/Alert/AlertItem/AlertItem.esm.js +11 -11
  323. package/dist/esm/Notifications/Alert/AlertItem/AlertItem.esm.js.map +1 -1
  324. package/dist/esm/Notifications/Alert/AlertItem/AlertItem.module.scss.esm.js +2 -2
  325. package/dist/esm/Notifications/Alert/AlertProvider/AlertProvider.esm.js +4 -4
  326. package/dist/esm/Notifications/Alert/AlertProvider/AlertProvider.esm.js.map +1 -1
  327. package/dist/esm/Notifications/Banner/Banner.esm.js +7 -7
  328. package/dist/esm/Notifications/Banner/Banner.esm.js.map +1 -1
  329. package/dist/esm/Notifications/Banner/Banner.module.scss.esm.js +2 -2
  330. package/dist/esm/Notifications/BaseModal/BaseModal.esm.js +8 -8
  331. package/dist/esm/Notifications/BaseModal/BaseModal.esm.js.map +1 -1
  332. package/dist/esm/Notifications/BaseModal/BaseModal.module.scss.esm.js +2 -2
  333. package/dist/esm/Notifications/BaseModal/BaseModalActions/BaseModalActions.esm.js +7 -7
  334. package/dist/esm/Notifications/BaseModal/BaseModalActions/BaseModalActions.esm.js.map +1 -1
  335. package/dist/esm/Notifications/BaseModal/BaseModalActions/BaseModalActions.module.scss.esm.js +2 -2
  336. package/dist/esm/Notifications/BaseModal/BaseModalContent/BaseModalContent.esm.js +3 -3
  337. package/dist/esm/Notifications/BaseModal/BaseModalContent/BaseModalContent.esm.js.map +1 -1
  338. package/dist/esm/Notifications/BaseModal/BaseModalContent/BaseModalContent.module.scss.esm.js +2 -2
  339. package/dist/esm/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.esm.js +9 -9
  340. package/dist/esm/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.esm.js.map +1 -1
  341. package/dist/esm/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.module.scss.esm.js +2 -2
  342. package/dist/esm/Notifications/Dialog/Dialog.esm.js +9 -9
  343. package/dist/esm/Notifications/Dialog/Dialog.esm.js.map +1 -1
  344. package/dist/esm/Notifications/Dialog/Dialog.module.scss.esm.js +2 -2
  345. package/dist/esm/Notifications/Dialog/DialogActions/DialogActions.esm.js +3 -3
  346. package/dist/esm/Notifications/Dialog/DialogActions/DialogActions.esm.js.map +1 -1
  347. package/dist/esm/Notifications/Dialog/DialogActions/DialogActions.module.scss.esm.js +2 -2
  348. package/dist/esm/Notifications/Dialog/DialogTitle/DialogTitle.esm.js +10 -10
  349. package/dist/esm/Notifications/Dialog/DialogTitle/DialogTitle.esm.js.map +1 -1
  350. package/dist/esm/Notifications/Dialog/DialogTitle/DialogTitle.module.scss.esm.js +2 -2
  351. package/dist/esm/Notifications/DiscardChangesModal/DiscardChangesDialog/DiscardChangesDialog.esm.js +4 -4
  352. package/dist/esm/Notifications/DiscardChangesModal/DiscardChangesDialog/DiscardChangesDialog.esm.js.map +1 -1
  353. package/dist/esm/Notifications/DiscardChangesModal/DiscardChangesModal.esm.js +5 -5
  354. package/dist/esm/Notifications/DiscardChangesModal/DiscardChangesModal.esm.js.map +1 -1
  355. package/dist/esm/Notifications/NotificationProvider/NotificationContext.esm.js +3 -3
  356. package/dist/esm/Notifications/NotificationProvider/NotificationContext.esm.js.map +1 -1
  357. package/dist/esm/Notifications/SideSheet/SideSheet.esm.js +11 -11
  358. package/dist/esm/Notifications/SideSheet/SideSheet.esm.js.map +1 -1
  359. package/dist/esm/Notifications/SideSheet/SideSheet.module.scss.esm.js +2 -2
  360. package/dist/esm/Notifications/SideSheet/SideSheetContent/SideSheetContent.esm.js +2 -2
  361. package/dist/esm/Notifications/SideSheet/SideSheetContent/SideSheetContent.esm.js.map +1 -1
  362. package/dist/esm/Notifications/SideSheet/SideSheetContent/SideSheetContent.module.scss.esm.js +2 -2
  363. package/dist/esm/Notifications/SideSheet/SideSheetHeader/SideSheetHeader.esm.js +2 -2
  364. package/dist/esm/Notifications/SideSheet/SideSheetHeader/SideSheetHeader.esm.js.map +1 -1
  365. package/dist/esm/Notifications/SideSheet/SideSheetHeader/SideSheetHeader.module.scss.esm.js +2 -2
  366. package/dist/esm/Notifications/SlideInModal/SlideInModal.esm.js +3 -3
  367. package/dist/esm/Notifications/SlideInModal/SlideInModal.esm.js.map +1 -1
  368. package/dist/esm/Notifications/SlideInModal/SlideInModal.module.scss.esm.js +2 -2
  369. package/dist/esm/Pagination/Pagination.esm.js +29 -29
  370. package/dist/esm/Pagination/Pagination.esm.js.map +1 -1
  371. package/dist/esm/Pagination/Pagination.module.scss.esm.js +2 -2
  372. package/dist/esm/Popover/Popover.esm.js +4 -4
  373. package/dist/esm/Popover/Popover.esm.js.map +1 -1
  374. package/dist/esm/Popover/Popover.module.scss.esm.js +2 -2
  375. package/dist/esm/ProgressBar/ProgressBar.esm.js +10 -10
  376. package/dist/esm/ProgressBar/ProgressBar.esm.js.map +1 -1
  377. package/dist/esm/ProgressBar/ProgressBar.module.scss.esm.js +2 -2
  378. package/dist/esm/Skeleton/Skeleton.esm.js +3 -3
  379. package/dist/esm/Skeleton/Skeleton.esm.js.map +1 -1
  380. package/dist/esm/Skeleton/Skeleton.module.scss.esm.js +2 -2
  381. package/dist/esm/Spinner/Spinner.esm.js +4 -4
  382. package/dist/esm/Spinner/Spinner.esm.js.map +1 -1
  383. package/dist/esm/Spinner/Spinner.module.scss.esm.js +2 -2
  384. package/dist/esm/Stepper/Step.esm.js +10 -10
  385. package/dist/esm/Stepper/Step.esm.js.map +1 -1
  386. package/dist/esm/Stepper/Step.module.scss.esm.js +2 -2
  387. package/dist/esm/Stepper/Stepper.esm.js +2 -2
  388. package/dist/esm/Stepper/Stepper.esm.js.map +1 -1
  389. package/dist/esm/Stepper/Stepper.module.scss.esm.js +2 -2
  390. package/dist/esm/Tabs/Tab.esm.js +2 -2
  391. package/dist/esm/Tabs/Tab.esm.js.map +1 -1
  392. package/dist/esm/Tabs/Tab.module.scss.esm.js +2 -2
  393. package/dist/esm/Tabs/TabButton.esm.js +4 -4
  394. package/dist/esm/Tabs/TabButton.esm.js.map +1 -1
  395. package/dist/esm/Tabs/TabButton.module.scss.esm.js +2 -2
  396. package/dist/esm/Tabs/Tabs.esm.js +10 -10
  397. package/dist/esm/Tabs/Tabs.esm.js.map +1 -1
  398. package/dist/esm/Tabs/Tabs.module.scss.esm.js +2 -2
  399. package/dist/esm/Tag/RemoveButton.esm.js +4 -4
  400. package/dist/esm/Tag/RemoveButton.esm.js.map +1 -1
  401. package/dist/esm/Tag/RemoveButton.module.scss.esm.js +2 -2
  402. package/dist/esm/Tag/Tag.esm.js +7 -7
  403. package/dist/esm/Tag/Tag.esm.js.map +1 -1
  404. package/dist/esm/Tag/Tag.module.scss.esm.js +2 -2
  405. package/dist/esm/TextEllipsis/TextEllipsis.esm.js +4 -4
  406. package/dist/esm/TextEllipsis/TextEllipsis.esm.js.map +1 -1
  407. package/dist/esm/TextEllipsis/TextEllipsis.module.scss.esm.js +2 -2
  408. package/dist/esm/Tiles/Tile.esm.js +11 -11
  409. package/dist/esm/Tiles/Tile.esm.js.map +1 -1
  410. package/dist/esm/Tiles/Tile.module.scss.esm.js +2 -2
  411. package/dist/esm/Tiles/Tiles.esm.js +6 -6
  412. package/dist/esm/Tiles/Tiles.esm.js.map +1 -1
  413. package/dist/esm/Tiles/Tiles.module.scss.esm.js +2 -2
  414. package/dist/esm/Tooltip/Tooltip.esm.js +10 -10
  415. package/dist/esm/Tooltip/Tooltip.esm.js.map +1 -1
  416. package/dist/esm/Tooltip/Tooltip.module.scss.esm.js +2 -2
  417. package/dist/esm/Typography/Typography.esm.js +3 -3
  418. package/dist/esm/Typography/Typography.esm.js.map +1 -1
  419. package/dist/esm/Typography/Typography.module.scss.esm.js +2 -2
  420. package/dist/esm/_BaseStyling_/BaseStyling.esm.js +4 -2
  421. package/dist/esm/_BaseStyling_/BaseStyling.esm.js.map +1 -1
  422. package/dist/esm/admin/layout/LeftNav/LeftNav.esm.js +41 -0
  423. package/dist/esm/admin/layout/LeftNav/LeftNav.esm.js.map +1 -0
  424. package/dist/esm/admin/layout/LeftNav/LeftNav.module.scss.esm.js +8 -0
  425. package/dist/esm/admin/layout/LeftNav/LeftNav.module.scss.esm.js.map +1 -0
  426. package/dist/esm/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.esm.js +74 -0
  427. package/dist/esm/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.esm.js.map +1 -0
  428. package/dist/esm/admin/layout/LeftNav/LeftNavItem/LeftNavItem.esm.js +28 -0
  429. package/dist/esm/admin/layout/LeftNav/LeftNavItem/LeftNavItem.esm.js.map +1 -0
  430. package/dist/esm/admin/layout/LeftNav/LeftNavItem/LeftNavItem.module.scss.esm.js +8 -0
  431. package/dist/esm/admin/layout/LeftNav/LeftNavItem/LeftNavItem.module.scss.esm.js.map +1 -0
  432. package/dist/esm/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.esm.js +59 -0
  433. package/dist/esm/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.esm.js.map +1 -0
  434. package/dist/esm/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.esm.js +56 -0
  435. package/dist/esm/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.esm.js.map +1 -0
  436. package/dist/esm/admin/layout/LeftNav/useRefItems.esm.js +236 -0
  437. package/dist/esm/admin/layout/LeftNav/useRefItems.esm.js.map +1 -0
  438. package/dist/esm/admin/layout/MicrofrontendContainer/MicrofrontendContainer.esm.js +4 -4
  439. package/dist/esm/admin/layout/MicrofrontendContainer/MicrofrontendContainer.esm.js.map +1 -1
  440. package/dist/esm/admin/layout/MicrofrontendContainer/MicrofrontendContainer.module.scss.esm.js +2 -2
  441. package/dist/esm/miscellaneous/IdentityProviderButton.esm.js +4 -4
  442. package/dist/esm/miscellaneous/IdentityProviderButton.esm.js.map +1 -1
  443. package/dist/esm/miscellaneous/IdentityProviderButton.module.scss.esm.js +2 -2
  444. package/dist/esm/node_modules/@remix-run/router/dist/router.esm.js +373 -0
  445. package/dist/esm/node_modules/@remix-run/router/dist/router.esm.js.map +1 -0
  446. package/dist/esm/node_modules/react-router/dist/index.esm.js +328 -0
  447. package/dist/esm/node_modules/react-router/dist/index.esm.js.map +1 -0
  448. package/dist/esm/node_modules/react-router-dom/dist/index.esm.js +609 -0
  449. package/dist/esm/node_modules/react-router-dom/dist/index.esm.js.map +1 -0
  450. package/dist/esm/src/components/Icon/Icon.d.ts +1 -0
  451. package/dist/esm/src/components/Layout/ContentHeader/ContentHeader.d.ts +16 -2
  452. package/dist/esm/src/components/_BaseStyling_/BaseStyling.d.ts +2 -0
  453. package/dist/esm/src/components/admin/layout/LeftNav/LeftNav.d.ts +10 -0
  454. package/dist/esm/src/components/admin/layout/LeftNav/LeftNav.interfaces.d.ts +13 -0
  455. package/dist/esm/src/components/admin/layout/LeftNav/LeftNav.test.d.ts +1 -0
  456. package/dist/esm/src/components/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.d.ts +13 -0
  457. package/dist/esm/src/components/admin/layout/LeftNav/LeftNavItem/LeftNavItem.d.ts +3 -0
  458. package/dist/esm/src/components/admin/layout/LeftNav/LeftNavItem/LeftNavItem.interface.d.ts +10 -0
  459. package/dist/esm/src/components/admin/layout/LeftNav/LeftNavItem/LeftNavItem.test.d.ts +1 -0
  460. package/dist/esm/src/components/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.d.ts +10 -0
  461. package/dist/esm/src/components/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.d.ts +12 -0
  462. package/dist/esm/src/components/admin/layout/LeftNav/useRefItems.d.ts +22 -0
  463. package/dist/esm/src/components/admin/layout/LeftNav/useRefItems.test.d.ts +1 -0
  464. package/dist/esm/src/hooks/useDebouncedCallback.esm.js +3 -3
  465. package/dist/esm/src/hooks/useDebouncedCallback.esm.js.map +1 -1
  466. package/dist/esm/src/hooks/useDetermineStatusIcon.esm.js +3 -3
  467. package/dist/esm/src/hooks/useDetermineStatusIcon.esm.js.map +1 -1
  468. package/dist/esm/src/hooks/useRepeater.esm.js +2 -2
  469. package/dist/esm/src/hooks/useRepeater.esm.js.map +1 -1
  470. package/dist/esm/src/index.d.ts +2 -0
  471. package/dist/esm/src/index.esm.js +1 -0
  472. package/dist/esm/src/index.esm.js.map +1 -1
  473. package/dist/esm/src/readyclasses.module.scss.esm.js +2 -2
  474. package/dist/esm/withReadOnly.esm.js +3 -3
  475. package/dist/esm/withReadOnly.esm.js.map +1 -1
  476. package/package.json +2 -1
  477. package/src/components/Button/IconButton.tsx +9 -5
  478. package/src/components/Icon/Icon.module.scss +4 -0
  479. package/src/components/Icon/Icon.tsx +1 -0
  480. package/src/components/Layout/ContentHeader/ContentHeader.module.scss +51 -0
  481. package/src/components/Layout/ContentHeader/ContentHeader.tsx +82 -6
  482. package/src/components/_BaseStyling_/BaseStyling.tsx +4 -0
  483. package/src/components/admin/layout/LeftNav/LeftNav.interfaces.ts +30 -0
  484. package/src/components/admin/layout/LeftNav/LeftNav.module.scss +52 -0
  485. package/src/components/admin/layout/LeftNav/LeftNav.tsx +81 -0
  486. package/src/components/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.tsx +153 -0
  487. package/src/components/admin/layout/LeftNav/LeftNavItem/LeftNavItem.interface.ts +27 -0
  488. package/src/components/admin/layout/LeftNav/LeftNavItem/LeftNavItem.module.scss +217 -0
  489. package/src/components/admin/layout/LeftNav/LeftNavItem/LeftNavItem.tsx +34 -0
  490. package/src/components/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.tsx +105 -0
  491. package/src/components/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.ts +64 -0
  492. package/src/components/admin/layout/LeftNav/useRefItems.ts +280 -0
  493. package/src/font/icomoon.eot +0 -0
  494. package/src/font/icomoon.svg +1 -0
  495. package/src/font/icomoon.ttf +0 -0
  496. package/src/font/icomoon.woff +0 -0
  497. package/src/font/selection.json +1 -1
  498. package/src/index.ts +2 -0
  499. package/src/mixins.module.scss +33 -0
  500. package/src/variables.scss +11 -0
@@ -0,0 +1,217 @@
1
+ /*
2
+ * Copyright 2022 OneWelcome B.V.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ .menu-button {
18
+ background-color: transparent;
19
+ border: 0;
20
+ font-family: var(--font-family);
21
+
22
+ a {
23
+ color: inherit;
24
+ text-decoration: inherit;
25
+
26
+ &:hover,
27
+ &:active,
28
+ &:focus {
29
+ color: inherit;
30
+ }
31
+ }
32
+ }
33
+
34
+ .menu-link {
35
+ text-decoration: none;
36
+ }
37
+
38
+ .menu-button-wrapper {
39
+ > .menu-button + ul > .menu-button-wrapper,
40
+ > .menu-button + ul > a {
41
+ opacity: 0;
42
+ transform: translateY(-60px);
43
+ }
44
+
45
+ $maxElementsOnOneSubLevel: 20;
46
+ &.expanded {
47
+ > .menu-button + ul > .menu-button-wrapper,
48
+ > .menu-button + ul > li {
49
+ opacity: 0;
50
+ animation-name: item-fade-in;
51
+ animation-duration: 250ms;
52
+ animation-fill-mode: forwards;
53
+
54
+ @for $i from 1 to $maxElementsOnOneSubLevel {
55
+ &:nth-child(#{$i}) {
56
+ animation-delay: (100ms * ($i - 1));
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+
63
+ .menu-list {
64
+ padding: 0;
65
+ margin: 0;
66
+ overflow: hidden;
67
+ max-height: 100000px; /* because transition does not work on 'height:auto', we use 'max-height' with very large value to just run transition */
68
+
69
+ list-style: none;
70
+ text-align: left;
71
+
72
+ transition: max-height 0.15s ease-in-out;
73
+
74
+ .menu-item-text-wrapper {
75
+ padding-left: 2rem;
76
+ }
77
+
78
+ a,
79
+ button {
80
+ &:focus-visible {
81
+ outline-offset: -0.0625rem;
82
+ }
83
+ }
84
+ }
85
+
86
+ .menu-item {
87
+ box-sizing: border-box;
88
+ display: flex;
89
+ padding: 1.125rem 1rem;
90
+ align-items: center;
91
+ justify-content: space-between;
92
+ width: 100%;
93
+
94
+ color: var(--color-blue-grey900);
95
+
96
+ line-height: 1.5rem;
97
+ font-size: 1rem;
98
+ font-weight: 400;
99
+
100
+ transition: all 0.15s ease-in-out;
101
+ cursor: pointer;
102
+
103
+ &:focus-visible {
104
+ outline-offset: -0.0625rem;
105
+ }
106
+
107
+ .menu-item-text-wrapper {
108
+ display: flex;
109
+ }
110
+
111
+ .menu-item-expand-icon {
112
+ padding: 0.375rem;
113
+ margin: -0.375rem;
114
+ }
115
+
116
+ & &-icon {
117
+ display: flex;
118
+ align-items: center;
119
+ justify-content: center;
120
+ width: 1.5rem;
121
+ margin-right: 0.5rem;
122
+ font-size: 1.125rem;
123
+ }
124
+
125
+ &-text {
126
+ display: flex;
127
+ align-items: center;
128
+ }
129
+
130
+ &-expand-icon {
131
+ font-size: 0.75rem;
132
+ color: var(--color-blue-grey900);
133
+ transition: all 0.15s ease-in-out;
134
+ }
135
+
136
+ &.expanded .menu-item-expand-icon {
137
+ transform: rotate(180deg);
138
+ }
139
+
140
+ a {
141
+ color: inherit;
142
+ }
143
+
144
+ &:hover {
145
+ background-color: var(--color-blue-grey50);
146
+ }
147
+
148
+ &:focus,
149
+ &:active {
150
+ color: inherit;
151
+ background-color: var(--color-blue-grey100);
152
+ }
153
+
154
+ &.disabled {
155
+ color: var(--color-blue-grey400);
156
+ background-color: var(--color-blue-grey25);
157
+ pointer-events: none;
158
+ }
159
+ }
160
+
161
+ .menu-list-item {
162
+ position: relative;
163
+
164
+ .menu-item {
165
+ padding: 0.75rem 1rem;
166
+ }
167
+
168
+ a.menu-item-active {
169
+ background-color: var(--color-primary50);
170
+
171
+ &:hover {
172
+ background-color: var(--color-blue-grey50);
173
+ }
174
+
175
+ &:focus,
176
+ &:active {
177
+ background-color: var(--color-blue-grey100);
178
+ }
179
+
180
+ &:before {
181
+ content: "";
182
+ height: 100%;
183
+ position: absolute;
184
+ left: 0;
185
+ z-index: 2;
186
+ border-top-right-radius: 0.125rem;
187
+ border-bottom-right-radius: 0.125rem;
188
+ border-left: 0.25rem solid var(--color-primary500);
189
+ }
190
+
191
+ .menu-item-text {
192
+ font-weight: 700;
193
+ }
194
+ }
195
+
196
+ button.menu-item-active {
197
+ .menu-item-text {
198
+ font-weight: 700;
199
+ }
200
+ }
201
+ }
202
+
203
+ @keyframes item-fade-in {
204
+ 0% {
205
+ opacity: 0;
206
+ transform: translateY(-60px);
207
+ }
208
+
209
+ 80% {
210
+ opacity: 0.6;
211
+ }
212
+
213
+ 100% {
214
+ opacity: 1;
215
+ transform: translateY(0px);
216
+ }
217
+ }
@@ -0,0 +1,34 @@
1
+ /*
2
+ * Copyright 2022 OneWelcome B.V.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import React, { ForwardRefRenderFunction } from "react";
18
+ import { ButtonLeftNavItem } from "./ButtonLeftNavItem";
19
+ import { LinkLeftNavItem } from "./LinkLeftNavItem";
20
+ import { LeftNavItemProps } from "./LeftNavItem.interface";
21
+
22
+ const LeftNavItemComponent: ForwardRefRenderFunction<HTMLElement, LeftNavItemProps> = (
23
+ props,
24
+ ref
25
+ ) => {
26
+ const shouldBeButton = !!(props.item.items?.length ?? 0 >= 1);
27
+ return shouldBeButton ? (
28
+ <ButtonLeftNavItem {...props} ref={ref} NestedComponent={LeftNavItem} />
29
+ ) : (
30
+ <LinkLeftNavItem {...props} ref={ref} />
31
+ );
32
+ };
33
+
34
+ export const LeftNavItem = React.forwardRef(LeftNavItemComponent);
@@ -0,0 +1,105 @@
1
+ /*
2
+ * Copyright 2022 OneWelcome B.V.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import React, { ForwardRefRenderFunction, HTMLProps, MouseEvent, Ref } from "react";
18
+ import classes from "./LeftNavItem.module.scss";
19
+ import { Link as RouterLink } from "react-router-dom";
20
+ import { MenuItem } from "../LeftNav.interfaces";
21
+ import { Link } from "../../../../Link/Link";
22
+ import { useKeyboardNavigation } from "./useKeyboardNavigation";
23
+ import { UseRefItemsReturnType } from "../useRefItems";
24
+
25
+ export interface Props extends HTMLProps<HTMLElement> {
26
+ item: MenuItem;
27
+ onItemClick: (path?: string, button?: boolean) => void;
28
+ refItems: UseRefItemsReturnType;
29
+ closeParentList?: () => void;
30
+ }
31
+
32
+ const LinkLeftNavItemComponent: ForwardRefRenderFunction<HTMLElement, Props> = (
33
+ { item, onItemClick, refItems, closeParentList },
34
+ ref
35
+ ) => {
36
+ const { onKeyPressNavigation } = useKeyboardNavigation({ refItems, item, closeParentList });
37
+
38
+ const onLinkClickHandler = (event: MouseEvent<HTMLAnchorElement>) => {
39
+ if (item.disabled) {
40
+ event.preventDefault();
41
+ } else {
42
+ onItemClick(item.path);
43
+ }
44
+ };
45
+
46
+ const getStylingClasses = () => {
47
+ const menuItemLinkClasses = [classes["menu-item"], classes["menu-link"]];
48
+ item.active && menuItemLinkClasses.push(classes["menu-item-active"]);
49
+ item.disabled && menuItemLinkClasses.push(classes["disabled"]);
50
+ const menuLinkWrapperClasses = [classes["menu-list-item"]];
51
+ return {
52
+ menuItemLinkClasses,
53
+ menuLinkWrapperClasses
54
+ };
55
+ };
56
+
57
+ const { menuItemLinkClasses, menuLinkWrapperClasses } = getStylingClasses();
58
+ const tabIndexActive = item.active ? 0 : -1;
59
+ const tabIndex = item.disabled ? -1 : tabIndexActive;
60
+
61
+ return (
62
+ <li className={menuLinkWrapperClasses.join(" ")} data-testid={`${item.key}`}>
63
+ {item.path?.match(/^https?:\/\//) ? (
64
+ <Link
65
+ ref={ref as Ref<HTMLAnchorElement>}
66
+ onKeyDown={onKeyPressNavigation}
67
+ onClick={onLinkClickHandler}
68
+ data-testid={item.key}
69
+ aria-current={item.active ? "page" : false}
70
+ aria-disabled={item.disabled}
71
+ className={menuItemLinkClasses.join(" ")}
72
+ to={item.path ?? ""}
73
+ type="external"
74
+ disabled={item.disabled}
75
+ tabIndex={tabIndex}
76
+ >
77
+ <div className={classes["menu-item-text-wrapper"]}>
78
+ {item.iconComponent &&
79
+ React.cloneElement(item.iconComponent, { className: classes["menu-item-icon"] })}
80
+ <span className={classes["menu-item-text"]}>{item.title}</span>
81
+ </div>
82
+ </Link>
83
+ ) : (
84
+ <RouterLink
85
+ ref={ref as Ref<HTMLAnchorElement>}
86
+ onKeyDown={onKeyPressNavigation}
87
+ onClick={onLinkClickHandler}
88
+ aria-current={item.active ? "page" : false}
89
+ aria-disabled={item.disabled}
90
+ className={menuItemLinkClasses.join(" ")}
91
+ to={item.path ?? ""}
92
+ tabIndex={tabIndex}
93
+ >
94
+ <div className={classes["menu-item-text-wrapper"]}>
95
+ {item.iconComponent &&
96
+ React.cloneElement(item.iconComponent, { className: classes["menu-item-icon"] })}
97
+ <span className={classes["menu-item-text"]}>{item.title}</span>
98
+ </div>
99
+ </RouterLink>
100
+ )}
101
+ </li>
102
+ );
103
+ };
104
+
105
+ export const LinkLeftNavItem = React.forwardRef(LinkLeftNavItemComponent);
@@ -0,0 +1,64 @@
1
+ /*
2
+ * Copyright 2022 OneWelcome B.V.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { KeyboardEvent } from "react";
18
+ import { MenuItem } from "../LeftNav.interfaces";
19
+ import { UseRefItemsReturnType } from "../useRefItems";
20
+
21
+ interface Props {
22
+ item: MenuItem;
23
+ refItems: UseRefItemsReturnType;
24
+ closeParentList?: () => void;
25
+ }
26
+
27
+ export const useKeyboardNavigation = ({ refItems, item, closeParentList }: Props) => {
28
+ const onKeyPressNavigation = (e: KeyboardEvent<HTMLButtonElement | HTMLAnchorElement>) => {
29
+ if (e.code === "Escape") {
30
+ e.preventDefault();
31
+ e.stopPropagation();
32
+ closeParentList?.();
33
+ refItems.getParentElement(item.key)?.focus();
34
+ }
35
+ if (e.code === "ArrowUp") {
36
+ e.preventDefault();
37
+ e.stopPropagation();
38
+ refItems.getPrevElementOnSameLevel(item.key)?.focus();
39
+ }
40
+ if (e.code === "ArrowDown") {
41
+ e.preventDefault();
42
+ e.stopPropagation();
43
+ refItems.getNextElementOnSameLevel(item.key)?.focus();
44
+ }
45
+ if (e.code === "Home") {
46
+ e.preventDefault();
47
+ e.stopPropagation();
48
+ refItems.getFirstElementOnSameLevel(item.key)?.focus();
49
+ }
50
+ if (e.code === "End") {
51
+ e.preventDefault();
52
+ e.stopPropagation();
53
+ refItems.getLastElementOnSameLevel(item.key)?.focus();
54
+ }
55
+ if (e.code === "Space" || e.code === "Enter") {
56
+ e.stopPropagation();
57
+ e.preventDefault();
58
+ refItems.getNextElement(item.key, true)?.focus();
59
+ e.currentTarget.click();
60
+ }
61
+ };
62
+
63
+ return { onKeyPressNavigation };
64
+ };
@@ -0,0 +1,280 @@
1
+ /*
2
+ * Copyright 2022 OneWelcome B.V.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { useEffect, useRef } from "react";
18
+ import { MenuItem } from "./LeftNav.interfaces";
19
+
20
+ interface Props {
21
+ items: MenuItem[];
22
+ }
23
+
24
+ interface LinkedMapValue {
25
+ item: MenuItem;
26
+ level: number;
27
+ prev?: MenuItem;
28
+ next?: MenuItem;
29
+ }
30
+
31
+ export type UseRefItemsReturnType = ReturnType<typeof useRefItems>;
32
+
33
+ export const useRefItems = ({ items }: Props) => {
34
+ const navRefs = useRef<Record<string, HTMLElement>>({});
35
+ const itemsMap = useRef<Record<string, LinkedMapValue>>({});
36
+
37
+ useEffect(() => {
38
+ createLinkedMap(items);
39
+ }, [items]);
40
+
41
+ /**
42
+ * Creates linked list of provided menu items.
43
+ * Disabled items are filtered out.
44
+ */
45
+ const createLinkedMap = (menuItems: MenuItem[]) => {
46
+ const map: Record<string, LinkedMapValue> = {};
47
+ createRecursiveLinkedMap(map, 0, menuItems);
48
+ itemsMap.current = map;
49
+ };
50
+
51
+ const createRecursiveLinkedMap = (
52
+ itemsMap: Record<string, LinkedMapValue>,
53
+ level: number,
54
+ items?: MenuItem[],
55
+ prevItem?: MenuItem,
56
+ nextItem?: MenuItem
57
+ ): { lastItem?: MenuItem } => {
58
+ let currentPreviousItem: MenuItem | undefined = prevItem,
59
+ currentNextItem: MenuItem | undefined = nextItem;
60
+ const nonDisabledItems = items?.filter(item => !item.disabled);
61
+ nonDisabledItems?.forEach((currentItem, index) => {
62
+ const isLast = index === nonDisabledItems.length - 1;
63
+ if (!isLast) {
64
+ currentNextItem = nonDisabledItems[index + 1];
65
+ } else {
66
+ currentNextItem = nextItem;
67
+ }
68
+
69
+ const hasChildren = currentItem.items?.filter(item => !item.disabled) !== undefined;
70
+ if (hasChildren) {
71
+ itemsMap[currentItem.key] = {
72
+ item: currentItem,
73
+ level,
74
+ prev: currentPreviousItem,
75
+ next: currentItem?.items?.filter(item => !item.disabled)[0]
76
+ };
77
+ currentPreviousItem = currentItem;
78
+ const { lastItem } = createRecursiveLinkedMap(
79
+ itemsMap,
80
+ level + 1,
81
+ currentItem?.items,
82
+ currentPreviousItem,
83
+ currentNextItem
84
+ );
85
+ currentPreviousItem = lastItem;
86
+ } else {
87
+ itemsMap[currentItem.key] = {
88
+ item: currentItem,
89
+ level,
90
+ prev: currentPreviousItem,
91
+ next: currentNextItem
92
+ };
93
+ currentPreviousItem = currentItem;
94
+ }
95
+ });
96
+ return { lastItem: currentPreviousItem };
97
+ };
98
+
99
+ const addElementReference = (el: HTMLElement | null, key: string) => {
100
+ if (el) {
101
+ navRefs.current[key] = el;
102
+ } else {
103
+ delete navRefs.current[key];
104
+ }
105
+ };
106
+
107
+ /**
108
+ * Get next element that is rendered. It could be nested element
109
+ * @param currentKey key of item
110
+ * @returns element or undefined if element does not exists or current element is the last element on that level
111
+ */
112
+ const getNextElement = (currentKey: string, whenHavingChildren: boolean = false) => {
113
+ const currentItem = itemsMap.current?.[currentKey];
114
+ if (whenHavingChildren && !currentItem.item.items) {
115
+ return;
116
+ }
117
+ const nextKey = currentItem.next?.key;
118
+ return nextKey ? navRefs.current?.[nextKey] : undefined;
119
+ };
120
+
121
+ /**
122
+ * Get next element on the same level as currentKey param
123
+ * @param currentKey key of item
124
+ * @returns element or undefined if element does not exists or current element is the last element on that level
125
+ */
126
+ const getNextElementOnSameLevel = (currentKey: string) => {
127
+ const currentItem = itemsMap.current?.[currentKey];
128
+ const currentLevel = currentItem.level;
129
+ const nextItem = _traverseNextElements({
130
+ currentItem,
131
+ desiredLevel: currentLevel,
132
+ currentLevel
133
+ });
134
+ return nextItem?.item.key ? navRefs.current?.[nextItem?.item.key] : undefined;
135
+ };
136
+
137
+ /**
138
+ * Get previous element on the same level as currentKey param
139
+ * @param currentKey key of item
140
+ * @returns element or undefined if element does not exists or current element is the first element on that level
141
+ */
142
+ const getPrevElementOnSameLevel = (currentKey: string) => {
143
+ const currentItem = itemsMap.current?.[currentKey];
144
+ const currentLevel = currentItem.level;
145
+ const prevItem = _traversePrevElements({
146
+ currentItem,
147
+ desiredLevel: currentLevel
148
+ });
149
+ return prevItem?.item.key ? navRefs.current?.[prevItem?.item.key] : undefined;
150
+ };
151
+
152
+ /**
153
+ * Get first element on the same level as currentKey param
154
+ * @param currentKey key of item
155
+ * @returns element or undefined if element does not exists or current element is the first element on that level
156
+ */
157
+ const getFirstElementOnSameLevel = (currentKey: string) => {
158
+ const currentItem = itemsMap.current?.[currentKey];
159
+ const currentLevel = currentItem.level;
160
+ const prevItem = _traversePrevElements({
161
+ currentItem,
162
+ desiredLevel: currentLevel
163
+ });
164
+ const prevItemKey = prevItem?.item.key;
165
+ if (prevItemKey) {
166
+ const hasNextPrevElement = !!_traversePrevElements({
167
+ currentItem: itemsMap.current?.[prevItemKey],
168
+ desiredLevel: currentLevel
169
+ });
170
+ if (hasNextPrevElement) {
171
+ return getFirstElementOnSameLevel(prevItemKey);
172
+ }
173
+ return navRefs.current?.[prevItemKey];
174
+ }
175
+ };
176
+
177
+ /**
178
+ * Get last element on the same level as currentKey param
179
+ * @param currentKey key of item
180
+ * @returns element or undefined if element does not exists or current element is the last element on that level
181
+ */
182
+ const getLastElementOnSameLevel = (currentKey: string) => {
183
+ const currentItem = itemsMap.current?.[currentKey];
184
+ const currentLevel = currentItem.level;
185
+ const nextItem = _traverseNextElements({
186
+ currentItem,
187
+ desiredLevel: currentLevel,
188
+ currentLevel
189
+ });
190
+ const nextItemKey = nextItem?.item.key;
191
+ if (nextItemKey) {
192
+ const hasNextNextElement = !!_traverseNextElements({
193
+ currentItem: itemsMap.current?.[nextItemKey],
194
+ desiredLevel: currentLevel,
195
+ currentLevel
196
+ });
197
+ if (hasNextNextElement) {
198
+ return getLastElementOnSameLevel(nextItemKey);
199
+ }
200
+ return navRefs.current?.[nextItemKey];
201
+ }
202
+ };
203
+
204
+ const getParentElement = (currentKey: string) => {
205
+ const currentItem = itemsMap.current?.[currentKey];
206
+ const currentLevel = currentItem.level;
207
+ const parentLevel = currentLevel - 1;
208
+ const parentItem = _traversePrevElements({
209
+ currentItem,
210
+ desiredLevel: parentLevel,
211
+ checkForMenuEscape: false
212
+ });
213
+ return parentItem?.item.key ? navRefs.current?.[parentItem?.item.key] : undefined;
214
+ };
215
+
216
+ const _traverseNextElements = ({
217
+ currentItem,
218
+ desiredLevel,
219
+ currentLevel
220
+ }: {
221
+ currentItem: LinkedMapValue;
222
+ desiredLevel: number;
223
+ currentLevel: number;
224
+ }) => {
225
+ const nextKey = currentItem.next?.key;
226
+ if (!nextKey) {
227
+ return;
228
+ }
229
+ const escapedSubMenu = desiredLevel > currentLevel;
230
+ if (escapedSubMenu) {
231
+ return;
232
+ }
233
+
234
+ const next = itemsMap.current?.[nextKey];
235
+ if (next && next.level === desiredLevel) {
236
+ return next;
237
+ } else {
238
+ return _traverseNextElements({ currentItem: next, desiredLevel, currentLevel: next.level });
239
+ }
240
+ };
241
+
242
+ const _traversePrevElements = ({
243
+ currentItem,
244
+ desiredLevel,
245
+ checkForMenuEscape = true
246
+ }: {
247
+ currentItem: LinkedMapValue;
248
+ desiredLevel: number;
249
+ checkForMenuEscape?: boolean;
250
+ }) => {
251
+ const prevKey = currentItem.prev?.key;
252
+ if (!prevKey) {
253
+ return;
254
+ }
255
+ const prev = itemsMap.current?.[prevKey];
256
+ const prevLevel = prev.level;
257
+
258
+ const escapedSubMenu = desiredLevel > prevLevel;
259
+ if (checkForMenuEscape && escapedSubMenu) {
260
+ return;
261
+ }
262
+
263
+ if (prev && prev.level === desiredLevel) {
264
+ return prev;
265
+ } else {
266
+ return _traversePrevElements({ currentItem: prev, desiredLevel });
267
+ }
268
+ };
269
+
270
+ return {
271
+ addElementReference,
272
+ getNextElement,
273
+ getNextElementOnSameLevel,
274
+ getPrevElementOnSameLevel,
275
+ getFirstElementOnSameLevel,
276
+ getLastElementOnSameLevel,
277
+ getParentElement,
278
+ getItemMap: () => itemsMap.current
279
+ };
280
+ };
Binary file