@okta/odyssey-react-mui 1.58.0 → 1.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/dist/cjs/Accordion.cjs +1 -1
  2. package/dist/cjs/Autocomplete.cjs +1 -1
  3. package/dist/cjs/Badge.cjs +1 -1
  4. package/dist/cjs/Banner.cjs +1 -1
  5. package/dist/cjs/Box.cjs +1 -1
  6. package/dist/cjs/Breadcrumbs.cjs +1 -1
  7. package/dist/cjs/Buttons/BaseButton.cjs +1 -1
  8. package/dist/cjs/Buttons/BaseMenuButton.cjs +1 -1
  9. package/dist/cjs/Buttons/Button.cjs +1 -1
  10. package/dist/cjs/Buttons/MenuButton.cjs +1 -1
  11. package/dist/cjs/Buttons/MenuItem.cjs +1 -1
  12. package/dist/cjs/Callout.cjs +1 -1
  13. package/dist/cjs/Card.cjs +1 -1
  14. package/dist/cjs/CircularProgress.cjs +1 -1
  15. package/dist/cjs/ConditionalWrapper.cjs +1 -1
  16. package/dist/cjs/DataTable/DataTable.cjs +4 -2
  17. package/dist/cjs/DataTable/DataTable.cjs.map +1 -1
  18. package/dist/cjs/DataTable/DataTableRowActions.cjs +1 -1
  19. package/dist/cjs/DataTable/DataTableSettings.cjs +1 -1
  20. package/dist/cjs/DatePickers/DateField.cjs +1 -1
  21. package/dist/cjs/DatePickers/DateFieldActionBar.cjs +1 -1
  22. package/dist/cjs/DatePickers/DateFieldLocalizationProvider.cjs +1 -1
  23. package/dist/cjs/DatePickers/DatePicker.cjs +1 -1
  24. package/dist/cjs/DatePickers/TimeZonePicker.cjs +1 -1
  25. package/dist/cjs/Dialog.cjs +1 -1
  26. package/dist/cjs/Drawer.cjs +1 -1
  27. package/dist/cjs/EmptyState.cjs +1 -1
  28. package/dist/cjs/ErrorMessageList.cjs +1 -1
  29. package/dist/cjs/Field.cjs +1 -1
  30. package/dist/cjs/FieldError.cjs +1 -1
  31. package/dist/cjs/FieldHint.cjs +1 -1
  32. package/dist/cjs/FieldLabel.cjs +1 -1
  33. package/dist/cjs/Fields/Checkbox.cjs +1 -1
  34. package/dist/cjs/Fields/CheckboxGroup.cjs +1 -1
  35. package/dist/cjs/Fields/Radio.cjs +1 -1
  36. package/dist/cjs/Fields/RadioGroup.cjs +1 -1
  37. package/dist/cjs/Fieldset.cjs +1 -1
  38. package/dist/cjs/FileUploader/FileUploadIllustration.cjs +1 -1
  39. package/dist/cjs/FileUploader/FileUploadPreview.cjs +1 -1
  40. package/dist/cjs/FileUploader/FileUploader.cjs +1 -1
  41. package/dist/cjs/Form.cjs +1 -1
  42. package/dist/cjs/FullScreenOverlay.cjs +1 -1
  43. package/dist/cjs/FullScreenOverlayContext.cjs +1 -1
  44. package/dist/cjs/HintLink.cjs +1 -1
  45. package/dist/cjs/IconWithTooltip.cjs +1 -1
  46. package/dist/cjs/Link.cjs +1 -1
  47. package/dist/cjs/MuiPropsChild.cjs +1 -1
  48. package/dist/cjs/NativeSelect.cjs +1 -1
  49. package/dist/cjs/OdysseyCacheProvider.cjs +1 -1
  50. package/dist/cjs/OdysseyDesignTokensContext.cjs +3 -3
  51. package/dist/cjs/OdysseyDesignTokensContext.cjs.map +1 -1
  52. package/dist/cjs/OdysseyProvider.cjs +1 -1
  53. package/dist/cjs/OdysseyThemeProvider.cjs +27 -20
  54. package/dist/cjs/OdysseyThemeProvider.cjs.map +1 -1
  55. package/dist/cjs/OdysseyThemeProviderPropsContext.cjs +1 -1
  56. package/dist/cjs/Pagination/Pagination.cjs +1 -1
  57. package/dist/cjs/PasswordField.cjs +1 -1
  58. package/dist/cjs/ScreenReaderText.cjs +1 -1
  59. package/dist/cjs/SearchField.cjs +1 -1
  60. package/dist/cjs/Select.cjs +1 -1
  61. package/dist/cjs/Stack.cjs +1 -1
  62. package/dist/cjs/Status.cjs +1 -1
  63. package/dist/cjs/Surface.cjs +1 -1
  64. package/dist/cjs/Switch.cjs +2 -2
  65. package/dist/cjs/Tabs.cjs +1 -1
  66. package/dist/cjs/Tag.cjs +3 -2
  67. package/dist/cjs/Tag.cjs.map +1 -1
  68. package/dist/cjs/TagList.cjs +3 -1
  69. package/dist/cjs/TagList.cjs.map +1 -1
  70. package/dist/cjs/TextField.cjs +1 -1
  71. package/dist/cjs/Toast.cjs +1 -1
  72. package/dist/cjs/ToastStack.cjs +1 -1
  73. package/dist/cjs/Tooltip.cjs +1 -1
  74. package/dist/cjs/Typography.cjs +12 -12
  75. package/dist/cjs/icons.generated/Add.cjs +1 -1
  76. package/dist/cjs/icons.generated/AddCircle.cjs +1 -1
  77. package/dist/cjs/icons.generated/Apps.cjs +1 -1
  78. package/dist/cjs/icons.generated/AppsSelected.cjs +1 -1
  79. package/dist/cjs/icons.generated/ArrowBottom.cjs +1 -1
  80. package/dist/cjs/icons.generated/ArrowDown.cjs +1 -1
  81. package/dist/cjs/icons.generated/ArrowLeft.cjs +1 -1
  82. package/dist/cjs/icons.generated/ArrowLowerLeft.cjs +1 -1
  83. package/dist/cjs/icons.generated/ArrowLowerRight.cjs +1 -1
  84. package/dist/cjs/icons.generated/ArrowRight.cjs +1 -1
  85. package/dist/cjs/icons.generated/ArrowTop.cjs +1 -1
  86. package/dist/cjs/icons.generated/ArrowUnsorted.cjs +1 -1
  87. package/dist/cjs/icons.generated/ArrowUp.cjs +1 -1
  88. package/dist/cjs/icons.generated/ArrowUpperLeft.cjs +1 -1
  89. package/dist/cjs/icons.generated/ArrowUpperRight.cjs +1 -1
  90. package/dist/cjs/icons.generated/Bug.cjs +1 -1
  91. package/dist/cjs/icons.generated/Calendar.cjs +1 -1
  92. package/dist/cjs/icons.generated/Call.cjs +1 -1
  93. package/dist/cjs/icons.generated/Chat.cjs +1 -1
  94. package/dist/cjs/icons.generated/Check.cjs +1 -1
  95. package/dist/cjs/icons.generated/CheckCircleFilled.cjs +1 -1
  96. package/dist/cjs/icons.generated/ChevronDown.cjs +1 -1
  97. package/dist/cjs/icons.generated/ChevronLeft.cjs +1 -1
  98. package/dist/cjs/icons.generated/ChevronRight.cjs +1 -1
  99. package/dist/cjs/icons.generated/ChevronUp.cjs +1 -1
  100. package/dist/cjs/icons.generated/Clock.cjs +1 -1
  101. package/dist/cjs/icons.generated/Close.cjs +1 -1
  102. package/dist/cjs/icons.generated/CloseCircleFilled.cjs +1 -1
  103. package/dist/cjs/icons.generated/CollapseLeft.cjs +1 -1
  104. package/dist/cjs/icons.generated/CollapseRight.cjs +1 -1
  105. package/dist/cjs/icons.generated/Copy.cjs +1 -1
  106. package/dist/cjs/icons.generated/Custom.cjs +1 -1
  107. package/dist/cjs/icons.generated/Customizations.cjs +1 -1
  108. package/dist/cjs/icons.generated/CustomizationsSelected.cjs +1 -1
  109. package/dist/cjs/icons.generated/DangerDiamond.cjs +1 -1
  110. package/dist/cjs/icons.generated/DangerDiamondFilled.cjs +1 -1
  111. package/dist/cjs/icons.generated/Delete.cjs +1 -1
  112. package/dist/cjs/icons.generated/Deny.cjs +1 -1
  113. package/dist/cjs/icons.generated/Devices.cjs +1 -1
  114. package/dist/cjs/icons.generated/Directory.cjs +1 -1
  115. package/dist/cjs/icons.generated/DirectorySelected.cjs +1 -1
  116. package/dist/cjs/icons.generated/Documentation.cjs +1 -1
  117. package/dist/cjs/icons.generated/Download.cjs +1 -1
  118. package/dist/cjs/icons.generated/DragIndicator.cjs +1 -1
  119. package/dist/cjs/icons.generated/Duo.cjs +1 -1
  120. package/dist/cjs/icons.generated/Edit.cjs +1 -1
  121. package/dist/cjs/icons.generated/Email.cjs +1 -1
  122. package/dist/cjs/icons.generated/ExpandLeft.cjs +1 -1
  123. package/dist/cjs/icons.generated/ExpandRight.cjs +1 -1
  124. package/dist/cjs/icons.generated/ExternalLink.cjs +1 -1
  125. package/dist/cjs/icons.generated/Fido2.cjs +1 -1
  126. package/dist/cjs/icons.generated/Filter.cjs +1 -1
  127. package/dist/cjs/icons.generated/Folder.cjs +1 -1
  128. package/dist/cjs/icons.generated/Globe.cjs +1 -1
  129. package/dist/cjs/icons.generated/GoogleAuth.cjs +1 -1
  130. package/dist/cjs/icons.generated/Grid.cjs +1 -1
  131. package/dist/cjs/icons.generated/Group.cjs +1 -1
  132. package/dist/cjs/icons.generated/Happy.cjs +1 -1
  133. package/dist/cjs/icons.generated/Hide.cjs +1 -1
  134. package/dist/cjs/icons.generated/Home.cjs +1 -1
  135. package/dist/cjs/icons.generated/HomeSelected.cjs +1 -1
  136. package/dist/cjs/icons.generated/IdentityGovernance.cjs +1 -1
  137. package/dist/cjs/icons.generated/IdentityGovernanceSelected.cjs +1 -1
  138. package/dist/cjs/icons.generated/Idp.cjs +1 -1
  139. package/dist/cjs/icons.generated/InformationCircle.cjs +1 -1
  140. package/dist/cjs/icons.generated/InformationCircleFilled.cjs +1 -1
  141. package/dist/cjs/icons.generated/Link.cjs +1 -1
  142. package/dist/cjs/icons.generated/List.cjs +1 -1
  143. package/dist/cjs/icons.generated/Lock.cjs +1 -1
  144. package/dist/cjs/icons.generated/Menu.cjs +1 -1
  145. package/dist/cjs/icons.generated/More.cjs +1 -1
  146. package/dist/cjs/icons.generated/Neutral.cjs +1 -1
  147. package/dist/cjs/icons.generated/Notification.cjs +1 -1
  148. package/dist/cjs/icons.generated/OktaVerify.cjs +1 -1
  149. package/dist/cjs/icons.generated/OnPremMfa.cjs +1 -1
  150. package/dist/cjs/icons.generated/OneTimePassword.cjs +1 -1
  151. package/dist/cjs/icons.generated/Password.cjs +1 -1
  152. package/dist/cjs/icons.generated/Pause.cjs +1 -1
  153. package/dist/cjs/icons.generated/QuestionCircle.cjs +1 -1
  154. package/dist/cjs/icons.generated/QuestionCircleFilled.cjs +1 -1
  155. package/dist/cjs/icons.generated/Refresh.cjs +1 -1
  156. package/dist/cjs/icons.generated/Reports.cjs +1 -1
  157. package/dist/cjs/icons.generated/ReportsSelected.cjs +1 -1
  158. package/dist/cjs/icons.generated/Reset.cjs +1 -1
  159. package/dist/cjs/icons.generated/Resume.cjs +1 -1
  160. package/dist/cjs/icons.generated/Sad.cjs +1 -1
  161. package/dist/cjs/icons.generated/Same.cjs +1 -1
  162. package/dist/cjs/icons.generated/Search.cjs +1 -1
  163. package/dist/cjs/icons.generated/Security.cjs +1 -1
  164. package/dist/cjs/icons.generated/SecurityQuestion.cjs +1 -1
  165. package/dist/cjs/icons.generated/SecuritySelected.cjs +1 -1
  166. package/dist/cjs/icons.generated/Send.cjs +1 -1
  167. package/dist/cjs/icons.generated/Server.cjs +1 -1
  168. package/dist/cjs/icons.generated/Settings.cjs +1 -1
  169. package/dist/cjs/icons.generated/SettingsSelected.cjs +1 -1
  170. package/dist/cjs/icons.generated/Show.cjs +1 -1
  171. package/dist/cjs/icons.generated/SmartCard.cjs +1 -1
  172. package/dist/cjs/icons.generated/Sms.cjs +1 -1
  173. package/dist/cjs/icons.generated/Sparkle.cjs +1 -1
  174. package/dist/cjs/icons.generated/Subtract.cjs +1 -1
  175. package/dist/cjs/icons.generated/SymantecVip.cjs +1 -1
  176. package/dist/cjs/icons.generated/Sync.cjs +1 -1
  177. package/dist/cjs/icons.generated/ThumbsDown.cjs +1 -1
  178. package/dist/cjs/icons.generated/ThumbsUp.cjs +1 -1
  179. package/dist/cjs/icons.generated/Unlock.cjs +1 -1
  180. package/dist/cjs/icons.generated/Upload.cjs +1 -1
  181. package/dist/cjs/icons.generated/User.cjs +1 -1
  182. package/dist/cjs/icons.generated/Video.cjs +1 -1
  183. package/dist/cjs/icons.generated/VoiceCall.cjs +1 -1
  184. package/dist/cjs/icons.generated/Warning.cjs +1 -1
  185. package/dist/cjs/icons.generated/WarningFilled.cjs +1 -1
  186. package/dist/cjs/icons.generated/Workflows.cjs +1 -1
  187. package/dist/cjs/icons.generated/WorkflowsSelected.cjs +1 -1
  188. package/dist/cjs/icons.generated/Yubikey.cjs +1 -1
  189. package/dist/cjs/index.cjs.map +1 -1
  190. package/dist/cjs/labs/AppTile.cjs +1 -1
  191. package/dist/cjs/labs/DataFilters.cjs +19 -5
  192. package/dist/cjs/labs/DataFilters.cjs.map +1 -1
  193. package/dist/cjs/labs/DataTable.cjs +1 -1
  194. package/dist/cjs/labs/DataTablePagination.cjs +1 -1
  195. package/dist/cjs/labs/DataView/BulkActionsMenu.cjs +1 -1
  196. package/dist/cjs/labs/DataView/CardLayoutContent.cjs +2 -2
  197. package/dist/cjs/labs/DataView/DataCard.cjs +1 -1
  198. package/dist/cjs/labs/DataView/DataTable.cjs +1 -1
  199. package/dist/cjs/labs/DataView/DataView.cjs +9 -3
  200. package/dist/cjs/labs/DataView/DataView.cjs.map +1 -1
  201. package/dist/cjs/labs/DataView/DetailPanel.cjs +1 -1
  202. package/dist/cjs/labs/DataView/LayoutSwitcher.cjs +1 -1
  203. package/dist/cjs/labs/DataView/RowActions.cjs +1 -1
  204. package/dist/cjs/labs/DataView/TableLayoutContent.cjs +1 -1
  205. package/dist/cjs/labs/DataView/TableSettings.cjs +1 -1
  206. package/dist/cjs/labs/DataView/componentTypes.cjs.map +1 -1
  207. package/dist/cjs/labs/DataView/dataTypes.cjs.map +1 -1
  208. package/dist/cjs/labs/DatePickers/DateTimeField.cjs +1 -1
  209. package/dist/cjs/labs/DatePickers/DateTimePicker.cjs +1 -1
  210. package/dist/cjs/labs/OdysseyPickers/ComposablePicker.cjs +1 -1
  211. package/dist/cjs/labs/OdysseyPickers/Picker.cjs +1 -1
  212. package/dist/cjs/labs/OdysseyPickers/PickerVirtualizationListBox.cjs +1 -1
  213. package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs +1 -1
  214. package/dist/cjs/labs/OdysseyPickers/SearchDropdown.cjs +1 -1
  215. package/dist/cjs/labs/PageTemplate/DocumentationLink.cjs +1 -1
  216. package/dist/cjs/labs/PageTemplate/Layout.cjs +1 -1
  217. package/dist/cjs/labs/PageTemplate/PageTemplate.cjs +1 -1
  218. package/dist/cjs/labs/PaginatedTable.cjs +1 -1
  219. package/dist/cjs/labs/StaticTable.cjs +1 -1
  220. package/dist/cjs/labs/UserProfile.cjs +1 -1
  221. package/dist/cjs/labs/UserProfileMenuButton.cjs +1 -1
  222. package/dist/cjs/properties/ts/odyssey-react-mui.cjs +2 -0
  223. package/dist/cjs/properties/ts/odyssey-react-mui.cjs.map +1 -1
  224. package/dist/cjs/properties/ts/odyssey-react-mui_ok_PL.cjs +2 -0
  225. package/dist/cjs/properties/ts/odyssey-react-mui_ok_PL.cjs.map +1 -1
  226. package/dist/cjs/properties/ts/odyssey-react-mui_ok_SK.cjs +2 -0
  227. package/dist/cjs/properties/ts/odyssey-react-mui_ok_SK.cjs.map +1 -1
  228. package/dist/cjs/theme/components.cjs +7 -7
  229. package/dist/cjs/theme/components.cjs.map +1 -1
  230. package/dist/cjs/ui-shell/AppSwitcher/AppSwitcher.cjs +1 -1
  231. package/dist/cjs/ui-shell/InnerAppContainer.cjs +1 -1
  232. package/dist/cjs/ui-shell/NarrowUiShellContent.cjs +5 -2
  233. package/dist/cjs/ui-shell/NarrowUiShellContent.cjs.map +1 -1
  234. package/dist/cjs/ui-shell/SideNav/NavAccordion.cjs +1 -1
  235. package/dist/cjs/ui-shell/SideNav/SideNav.cjs +1 -1
  236. package/dist/cjs/ui-shell/SideNav/SideNavFooterContent.cjs +1 -1
  237. package/dist/cjs/ui-shell/SideNav/SideNavHeader.cjs +1 -1
  238. package/dist/cjs/ui-shell/SideNav/SideNavItemContent.cjs +1 -1
  239. package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs +1 -1
  240. package/dist/cjs/ui-shell/SideNav/SideNavSortableList.cjs +1 -1
  241. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs +2 -2
  242. package/dist/cjs/ui-shell/SkipToContent.cjs +124 -0
  243. package/dist/cjs/ui-shell/SkipToContent.cjs.map +1 -0
  244. package/dist/cjs/ui-shell/TopNav/HamburgerMenuIcon.cjs +1 -1
  245. package/dist/cjs/ui-shell/TopNav/TopNav.cjs +1 -1
  246. package/dist/cjs/ui-shell/TopNav/TopNavLinksList.cjs +1 -1
  247. package/dist/cjs/ui-shell/TopNav/TopNavListItem.cjs +1 -1
  248. package/dist/cjs/ui-shell/UiShell.cjs +1 -1
  249. package/dist/cjs/ui-shell/UiShellLogo.cjs +1 -1
  250. package/dist/cjs/ui-shell/WideUiShellContent.cjs +5 -2
  251. package/dist/cjs/ui-shell/WideUiShellContent.cjs.map +1 -1
  252. package/dist/cjs/ui-shell/index.cjs +12 -0
  253. package/dist/cjs/ui-shell/index.cjs.map +1 -1
  254. package/dist/cjs/ui-shell/uiShellSharedConstants.cjs +2 -1
  255. package/dist/cjs/ui-shell/uiShellSharedConstants.cjs.map +1 -1
  256. package/dist/cjs/useContrastMode.cjs +38 -20
  257. package/dist/cjs/useContrastMode.cjs.map +1 -1
  258. package/dist/cjs/useThemeCache.cjs +53 -0
  259. package/dist/cjs/useThemeCache.cjs.map +1 -0
  260. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs +1 -1
  261. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs.map +1 -1
  262. package/dist/esm/Accordion.js +1 -1
  263. package/dist/esm/Autocomplete.js +1 -1
  264. package/dist/esm/Badge.js +1 -1
  265. package/dist/esm/Banner.js +1 -1
  266. package/dist/esm/Box.js +1 -1
  267. package/dist/esm/Breadcrumbs.js +1 -1
  268. package/dist/esm/Buttons/BaseButton.js +1 -1
  269. package/dist/esm/Buttons/BaseMenuButton.js +1 -1
  270. package/dist/esm/Buttons/Button.js +1 -1
  271. package/dist/esm/Buttons/MenuButton.js +1 -1
  272. package/dist/esm/Buttons/MenuItem.js +1 -1
  273. package/dist/esm/Callout.js +1 -1
  274. package/dist/esm/Card.js +1 -1
  275. package/dist/esm/CircularProgress.js +1 -1
  276. package/dist/esm/ConditionalWrapper.js +1 -1
  277. package/dist/esm/DataTable/DataTable.js +4 -2
  278. package/dist/esm/DataTable/DataTable.js.map +1 -1
  279. package/dist/esm/DataTable/DataTableRowActions.js +1 -1
  280. package/dist/esm/DataTable/DataTableSettings.js +1 -1
  281. package/dist/esm/DatePickers/DateField.js +1 -1
  282. package/dist/esm/DatePickers/DateFieldActionBar.js +1 -1
  283. package/dist/esm/DatePickers/DateFieldLocalizationProvider.js +1 -1
  284. package/dist/esm/DatePickers/DatePicker.js +1 -1
  285. package/dist/esm/DatePickers/TimeZonePicker.js +1 -1
  286. package/dist/esm/Dialog.js +1 -1
  287. package/dist/esm/Drawer.js +1 -1
  288. package/dist/esm/EmptyState.js +1 -1
  289. package/dist/esm/ErrorMessageList.js +1 -1
  290. package/dist/esm/Field.js +1 -1
  291. package/dist/esm/FieldError.js +1 -1
  292. package/dist/esm/FieldHint.js +1 -1
  293. package/dist/esm/FieldLabel.js +1 -1
  294. package/dist/esm/Fields/Checkbox.js +1 -1
  295. package/dist/esm/Fields/CheckboxGroup.js +1 -1
  296. package/dist/esm/Fields/Radio.js +1 -1
  297. package/dist/esm/Fields/RadioGroup.js +1 -1
  298. package/dist/esm/Fieldset.js +1 -1
  299. package/dist/esm/FileUploader/FileUploadIllustration.js +1 -1
  300. package/dist/esm/FileUploader/FileUploadPreview.js +1 -1
  301. package/dist/esm/FileUploader/FileUploader.js +1 -1
  302. package/dist/esm/Form.js +1 -1
  303. package/dist/esm/FullScreenOverlay.js +1 -1
  304. package/dist/esm/FullScreenOverlayContext.js +1 -1
  305. package/dist/esm/HintLink.js +1 -1
  306. package/dist/esm/IconWithTooltip.js +1 -1
  307. package/dist/esm/Link.js +1 -1
  308. package/dist/esm/MuiPropsChild.js +1 -1
  309. package/dist/esm/NativeSelect.js +1 -1
  310. package/dist/esm/OdysseyCacheProvider.js +1 -1
  311. package/dist/esm/OdysseyDesignTokensContext.js +3 -1
  312. package/dist/esm/OdysseyDesignTokensContext.js.map +1 -1
  313. package/dist/esm/OdysseyProvider.js +1 -1
  314. package/dist/esm/OdysseyThemeProvider.js +28 -21
  315. package/dist/esm/OdysseyThemeProvider.js.map +1 -1
  316. package/dist/esm/OdysseyThemeProviderPropsContext.js +1 -1
  317. package/dist/esm/Pagination/Pagination.js +1 -1
  318. package/dist/esm/PasswordField.js +1 -1
  319. package/dist/esm/ScreenReaderText.js +1 -1
  320. package/dist/esm/SearchField.js +1 -1
  321. package/dist/esm/Select.js +1 -1
  322. package/dist/esm/Stack.js +1 -1
  323. package/dist/esm/Status.js +1 -1
  324. package/dist/esm/Surface.js +1 -1
  325. package/dist/esm/Switch.js +2 -2
  326. package/dist/esm/Tabs.js +1 -1
  327. package/dist/esm/Tag.js +3 -2
  328. package/dist/esm/Tag.js.map +1 -1
  329. package/dist/esm/TagList.js +3 -1
  330. package/dist/esm/TagList.js.map +1 -1
  331. package/dist/esm/TextField.js +1 -1
  332. package/dist/esm/Toast.js +1 -1
  333. package/dist/esm/ToastStack.js +1 -1
  334. package/dist/esm/Tooltip.js +1 -1
  335. package/dist/esm/Typography.js +12 -12
  336. package/dist/esm/icons.generated/Add.js +1 -1
  337. package/dist/esm/icons.generated/AddCircle.js +1 -1
  338. package/dist/esm/icons.generated/Apps.js +1 -1
  339. package/dist/esm/icons.generated/AppsSelected.js +1 -1
  340. package/dist/esm/icons.generated/ArrowBottom.js +1 -1
  341. package/dist/esm/icons.generated/ArrowDown.js +1 -1
  342. package/dist/esm/icons.generated/ArrowLeft.js +1 -1
  343. package/dist/esm/icons.generated/ArrowLowerLeft.js +1 -1
  344. package/dist/esm/icons.generated/ArrowLowerRight.js +1 -1
  345. package/dist/esm/icons.generated/ArrowRight.js +1 -1
  346. package/dist/esm/icons.generated/ArrowTop.js +1 -1
  347. package/dist/esm/icons.generated/ArrowUnsorted.js +1 -1
  348. package/dist/esm/icons.generated/ArrowUp.js +1 -1
  349. package/dist/esm/icons.generated/ArrowUpperLeft.js +1 -1
  350. package/dist/esm/icons.generated/ArrowUpperRight.js +1 -1
  351. package/dist/esm/icons.generated/Bug.js +1 -1
  352. package/dist/esm/icons.generated/Calendar.js +1 -1
  353. package/dist/esm/icons.generated/Call.js +1 -1
  354. package/dist/esm/icons.generated/Chat.js +1 -1
  355. package/dist/esm/icons.generated/Check.js +1 -1
  356. package/dist/esm/icons.generated/CheckCircleFilled.js +1 -1
  357. package/dist/esm/icons.generated/ChevronDown.js +1 -1
  358. package/dist/esm/icons.generated/ChevronLeft.js +1 -1
  359. package/dist/esm/icons.generated/ChevronRight.js +1 -1
  360. package/dist/esm/icons.generated/ChevronUp.js +1 -1
  361. package/dist/esm/icons.generated/Clock.js +1 -1
  362. package/dist/esm/icons.generated/Close.js +1 -1
  363. package/dist/esm/icons.generated/CloseCircleFilled.js +1 -1
  364. package/dist/esm/icons.generated/CollapseLeft.js +1 -1
  365. package/dist/esm/icons.generated/CollapseRight.js +1 -1
  366. package/dist/esm/icons.generated/Copy.js +1 -1
  367. package/dist/esm/icons.generated/Custom.js +1 -1
  368. package/dist/esm/icons.generated/Customizations.js +1 -1
  369. package/dist/esm/icons.generated/CustomizationsSelected.js +1 -1
  370. package/dist/esm/icons.generated/DangerDiamond.js +1 -1
  371. package/dist/esm/icons.generated/DangerDiamondFilled.js +1 -1
  372. package/dist/esm/icons.generated/Delete.js +1 -1
  373. package/dist/esm/icons.generated/Deny.js +1 -1
  374. package/dist/esm/icons.generated/Devices.js +1 -1
  375. package/dist/esm/icons.generated/Directory.js +1 -1
  376. package/dist/esm/icons.generated/DirectorySelected.js +1 -1
  377. package/dist/esm/icons.generated/Documentation.js +1 -1
  378. package/dist/esm/icons.generated/Download.js +1 -1
  379. package/dist/esm/icons.generated/DragIndicator.js +1 -1
  380. package/dist/esm/icons.generated/Duo.js +1 -1
  381. package/dist/esm/icons.generated/Edit.js +1 -1
  382. package/dist/esm/icons.generated/Email.js +1 -1
  383. package/dist/esm/icons.generated/ExpandLeft.js +1 -1
  384. package/dist/esm/icons.generated/ExpandRight.js +1 -1
  385. package/dist/esm/icons.generated/ExternalLink.js +1 -1
  386. package/dist/esm/icons.generated/Fido2.js +1 -1
  387. package/dist/esm/icons.generated/Filter.js +1 -1
  388. package/dist/esm/icons.generated/Folder.js +1 -1
  389. package/dist/esm/icons.generated/Globe.js +1 -1
  390. package/dist/esm/icons.generated/GoogleAuth.js +1 -1
  391. package/dist/esm/icons.generated/Grid.js +1 -1
  392. package/dist/esm/icons.generated/Group.js +1 -1
  393. package/dist/esm/icons.generated/Happy.js +1 -1
  394. package/dist/esm/icons.generated/Hide.js +1 -1
  395. package/dist/esm/icons.generated/Home.js +1 -1
  396. package/dist/esm/icons.generated/HomeSelected.js +1 -1
  397. package/dist/esm/icons.generated/IdentityGovernance.js +1 -1
  398. package/dist/esm/icons.generated/IdentityGovernanceSelected.js +1 -1
  399. package/dist/esm/icons.generated/Idp.js +1 -1
  400. package/dist/esm/icons.generated/InformationCircle.js +1 -1
  401. package/dist/esm/icons.generated/InformationCircleFilled.js +1 -1
  402. package/dist/esm/icons.generated/Link.js +1 -1
  403. package/dist/esm/icons.generated/List.js +1 -1
  404. package/dist/esm/icons.generated/Lock.js +1 -1
  405. package/dist/esm/icons.generated/Menu.js +1 -1
  406. package/dist/esm/icons.generated/More.js +1 -1
  407. package/dist/esm/icons.generated/Neutral.js +1 -1
  408. package/dist/esm/icons.generated/Notification.js +1 -1
  409. package/dist/esm/icons.generated/OktaVerify.js +1 -1
  410. package/dist/esm/icons.generated/OnPremMfa.js +1 -1
  411. package/dist/esm/icons.generated/OneTimePassword.js +1 -1
  412. package/dist/esm/icons.generated/Password.js +1 -1
  413. package/dist/esm/icons.generated/Pause.js +1 -1
  414. package/dist/esm/icons.generated/QuestionCircle.js +1 -1
  415. package/dist/esm/icons.generated/QuestionCircleFilled.js +1 -1
  416. package/dist/esm/icons.generated/Refresh.js +1 -1
  417. package/dist/esm/icons.generated/Reports.js +1 -1
  418. package/dist/esm/icons.generated/ReportsSelected.js +1 -1
  419. package/dist/esm/icons.generated/Reset.js +1 -1
  420. package/dist/esm/icons.generated/Resume.js +1 -1
  421. package/dist/esm/icons.generated/Sad.js +1 -1
  422. package/dist/esm/icons.generated/Same.js +1 -1
  423. package/dist/esm/icons.generated/Search.js +1 -1
  424. package/dist/esm/icons.generated/Security.js +1 -1
  425. package/dist/esm/icons.generated/SecurityQuestion.js +1 -1
  426. package/dist/esm/icons.generated/SecuritySelected.js +1 -1
  427. package/dist/esm/icons.generated/Send.js +1 -1
  428. package/dist/esm/icons.generated/Server.js +1 -1
  429. package/dist/esm/icons.generated/Settings.js +1 -1
  430. package/dist/esm/icons.generated/SettingsSelected.js +1 -1
  431. package/dist/esm/icons.generated/Show.js +1 -1
  432. package/dist/esm/icons.generated/SmartCard.js +1 -1
  433. package/dist/esm/icons.generated/Sms.js +1 -1
  434. package/dist/esm/icons.generated/Sparkle.js +1 -1
  435. package/dist/esm/icons.generated/Subtract.js +1 -1
  436. package/dist/esm/icons.generated/SymantecVip.js +1 -1
  437. package/dist/esm/icons.generated/Sync.js +1 -1
  438. package/dist/esm/icons.generated/ThumbsDown.js +1 -1
  439. package/dist/esm/icons.generated/ThumbsUp.js +1 -1
  440. package/dist/esm/icons.generated/Unlock.js +1 -1
  441. package/dist/esm/icons.generated/Upload.js +1 -1
  442. package/dist/esm/icons.generated/User.js +1 -1
  443. package/dist/esm/icons.generated/Video.js +1 -1
  444. package/dist/esm/icons.generated/VoiceCall.js +1 -1
  445. package/dist/esm/icons.generated/Warning.js +1 -1
  446. package/dist/esm/icons.generated/WarningFilled.js +1 -1
  447. package/dist/esm/icons.generated/Workflows.js +1 -1
  448. package/dist/esm/icons.generated/WorkflowsSelected.js +1 -1
  449. package/dist/esm/icons.generated/Yubikey.js +1 -1
  450. package/dist/esm/index.js.map +1 -1
  451. package/dist/esm/labs/AppTile.js +1 -1
  452. package/dist/esm/labs/DataFilters.js +19 -5
  453. package/dist/esm/labs/DataFilters.js.map +1 -1
  454. package/dist/esm/labs/DataTable.js +1 -1
  455. package/dist/esm/labs/DataTablePagination.js +1 -1
  456. package/dist/esm/labs/DataView/BulkActionsMenu.js +1 -1
  457. package/dist/esm/labs/DataView/CardLayoutContent.js +2 -2
  458. package/dist/esm/labs/DataView/DataCard.js +1 -1
  459. package/dist/esm/labs/DataView/DataTable.js +1 -1
  460. package/dist/esm/labs/DataView/DataView.js +9 -3
  461. package/dist/esm/labs/DataView/DataView.js.map +1 -1
  462. package/dist/esm/labs/DataView/DetailPanel.js +1 -1
  463. package/dist/esm/labs/DataView/LayoutSwitcher.js +1 -1
  464. package/dist/esm/labs/DataView/RowActions.js +1 -1
  465. package/dist/esm/labs/DataView/TableLayoutContent.js +1 -1
  466. package/dist/esm/labs/DataView/TableSettings.js +1 -1
  467. package/dist/esm/labs/DataView/componentTypes.js.map +1 -1
  468. package/dist/esm/labs/DataView/dataTypes.js.map +1 -1
  469. package/dist/esm/labs/DatePickers/DateTimeField.js +1 -1
  470. package/dist/esm/labs/DatePickers/DateTimePicker.js +1 -1
  471. package/dist/esm/labs/OdysseyPickers/ComposablePicker.js +1 -1
  472. package/dist/esm/labs/OdysseyPickers/Picker.js +1 -1
  473. package/dist/esm/labs/OdysseyPickers/PickerVirtualizationListBox.js +1 -1
  474. package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js +1 -1
  475. package/dist/esm/labs/OdysseyPickers/SearchDropdown.js +1 -1
  476. package/dist/esm/labs/PageTemplate/DocumentationLink.js +1 -1
  477. package/dist/esm/labs/PageTemplate/Layout.js +1 -1
  478. package/dist/esm/labs/PageTemplate/PageTemplate.js +1 -1
  479. package/dist/esm/labs/PaginatedTable.js +1 -1
  480. package/dist/esm/labs/StaticTable.js +1 -1
  481. package/dist/esm/labs/UserProfile.js +1 -1
  482. package/dist/esm/labs/UserProfileMenuButton.js +1 -1
  483. package/dist/esm/properties/ts/odyssey-react-mui.js +2 -0
  484. package/dist/esm/properties/ts/odyssey-react-mui.js.map +1 -1
  485. package/dist/esm/properties/ts/odyssey-react-mui_ok_PL.js +2 -0
  486. package/dist/esm/properties/ts/odyssey-react-mui_ok_PL.js.map +1 -1
  487. package/dist/esm/properties/ts/odyssey-react-mui_ok_SK.js +2 -0
  488. package/dist/esm/properties/ts/odyssey-react-mui_ok_SK.js.map +1 -1
  489. package/dist/esm/theme/components.js +7 -7
  490. package/dist/esm/theme/components.js.map +1 -1
  491. package/dist/esm/ui-shell/AppSwitcher/AppSwitcher.js +1 -1
  492. package/dist/esm/ui-shell/InnerAppContainer.js +1 -1
  493. package/dist/esm/ui-shell/NarrowUiShellContent.js +5 -2
  494. package/dist/esm/ui-shell/NarrowUiShellContent.js.map +1 -1
  495. package/dist/esm/ui-shell/SideNav/NavAccordion.js +1 -1
  496. package/dist/esm/ui-shell/SideNav/SideNav.js +1 -1
  497. package/dist/esm/ui-shell/SideNav/SideNavFooterContent.js +1 -1
  498. package/dist/esm/ui-shell/SideNav/SideNavHeader.js +1 -1
  499. package/dist/esm/ui-shell/SideNav/SideNavItemContent.js +1 -1
  500. package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js +1 -1
  501. package/dist/esm/ui-shell/SideNav/SideNavSortableList.js +1 -1
  502. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js +2 -2
  503. package/dist/esm/ui-shell/SkipToContent.js +118 -0
  504. package/dist/esm/ui-shell/SkipToContent.js.map +1 -0
  505. package/dist/esm/ui-shell/TopNav/HamburgerMenuIcon.js +1 -1
  506. package/dist/esm/ui-shell/TopNav/TopNav.js +1 -1
  507. package/dist/esm/ui-shell/TopNav/TopNavLinksList.js +1 -1
  508. package/dist/esm/ui-shell/TopNav/TopNavListItem.js +1 -1
  509. package/dist/esm/ui-shell/UiShell.js +1 -1
  510. package/dist/esm/ui-shell/UiShellLogo.js +1 -1
  511. package/dist/esm/ui-shell/WideUiShellContent.js +5 -2
  512. package/dist/esm/ui-shell/WideUiShellContent.js.map +1 -1
  513. package/dist/esm/ui-shell/index.js +2 -1
  514. package/dist/esm/ui-shell/index.js.map +1 -1
  515. package/dist/esm/ui-shell/uiShellSharedConstants.js +1 -0
  516. package/dist/esm/ui-shell/uiShellSharedConstants.js.map +1 -1
  517. package/dist/esm/useContrastMode.js +37 -20
  518. package/dist/esm/useContrastMode.js.map +1 -1
  519. package/dist/esm/useThemeCache.js +46 -0
  520. package/dist/esm/useThemeCache.js.map +1 -0
  521. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js +1 -1
  522. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js.map +1 -1
  523. package/dist/tsconfig.production.tsbuildinfo +1 -1
  524. package/dist/types/DataTable/DataTable.d.ts +5 -1
  525. package/dist/types/DataTable/DataTable.d.ts.map +1 -1
  526. package/dist/types/OdysseyDesignTokensContext.d.ts +678 -3
  527. package/dist/types/OdysseyDesignTokensContext.d.ts.map +1 -1
  528. package/dist/types/OdysseyThemeProvider.d.ts.map +1 -1
  529. package/dist/types/Tag.d.ts +1 -1
  530. package/dist/types/Tag.d.ts.map +1 -1
  531. package/dist/types/TagList.d.ts +2 -2
  532. package/dist/types/TagList.d.ts.map +1 -1
  533. package/dist/types/i18n.generated/i18n.d.ts +4 -0
  534. package/dist/types/i18n.generated/i18n.d.ts.map +1 -1
  535. package/dist/types/i18n.generated/i18n.resources.d.ts +6 -0
  536. package/dist/types/i18n.generated/i18n.resources.d.ts.map +1 -1
  537. package/dist/types/index.d.ts +1 -0
  538. package/dist/types/index.d.ts.map +1 -1
  539. package/dist/types/labs/DataFilters.d.ts +10 -1
  540. package/dist/types/labs/DataFilters.d.ts.map +1 -1
  541. package/dist/types/labs/DataView/DataView.d.ts.map +1 -1
  542. package/dist/types/labs/DataView/componentTypes.d.ts +4 -1
  543. package/dist/types/labs/DataView/componentTypes.d.ts.map +1 -1
  544. package/dist/types/labs/DataView/dataTypes.d.ts +2 -1
  545. package/dist/types/labs/DataView/dataTypes.d.ts.map +1 -1
  546. package/dist/types/properties/ts/odyssey-react-mui.d.ts +2 -0
  547. package/dist/types/properties/ts/odyssey-react-mui.d.ts.map +1 -1
  548. package/dist/types/properties/ts/odyssey-react-mui_ok_PL.d.ts +2 -0
  549. package/dist/types/properties/ts/odyssey-react-mui_ok_PL.d.ts.map +1 -1
  550. package/dist/types/properties/ts/odyssey-react-mui_ok_SK.d.ts +2 -0
  551. package/dist/types/properties/ts/odyssey-react-mui_ok_SK.d.ts.map +1 -1
  552. package/dist/types/theme/components.d.ts.map +1 -1
  553. package/dist/types/ui-shell/NarrowUiShellContent.d.ts.map +1 -1
  554. package/dist/types/ui-shell/SkipToContent.d.ts +17 -0
  555. package/dist/types/ui-shell/SkipToContent.d.ts.map +1 -0
  556. package/dist/types/ui-shell/WideUiShellContent.d.ts.map +1 -1
  557. package/dist/types/ui-shell/index.d.ts +2 -1
  558. package/dist/types/ui-shell/index.d.ts.map +1 -1
  559. package/dist/types/ui-shell/uiShellSharedConstants.d.ts +1 -0
  560. package/dist/types/ui-shell/uiShellSharedConstants.d.ts.map +1 -1
  561. package/dist/types/useContrastMode.d.ts +6 -2
  562. package/dist/types/useContrastMode.d.ts.map +1 -1
  563. package/dist/types/useThemeCache.d.ts +28 -0
  564. package/dist/types/useThemeCache.d.ts.map +1 -0
  565. package/dist/types/web-component/odysseyWebComponentVersion.generated.d.ts +1 -1
  566. package/package.json +7 -7
@@ -70,6 +70,6 @@ const AppSwitcher = ({
70
70
  });
71
71
  };
72
72
  const MemoizedAppSwitcher = memo(AppSwitcher);
73
- MemoizedAppSwitcher.displayName = "AppSwitcher::pkg=odyssey&odysseyV=1.58.0";
73
+ MemoizedAppSwitcher.displayName = "AppSwitcher::pkg=odyssey&odysseyV=1.59.0";
74
74
  export { MemoizedAppSwitcher as AppSwitcher };
75
75
  //# sourceMappingURL=AppSwitcher.js.map
@@ -52,6 +52,6 @@ const InnerAppContainer = ({
52
52
  children: [_jsx(StyledAppContainerShadow1, {}), _jsx(StyledAppContainerShadow2, {}), _jsx(StyledAppContainerShadow3, {})]
53
53
  }) : null;
54
54
  const MemoizedInnerAppContainer = memo(InnerAppContainer);
55
- MemoizedInnerAppContainer.displayName = "InnerAppContainer::pkg=odyssey&odysseyV=1.58.0";
55
+ MemoizedInnerAppContainer.displayName = "InnerAppContainer::pkg=odyssey&odysseyV=1.59.0";
56
56
  export { MemoizedInnerAppContainer as InnerAppContainer };
57
57
  //# sourceMappingURL=InnerAppContainer.js.map
@@ -21,6 +21,7 @@ import { MoreIcon } from "../icons.generated/More.js";
21
21
  import { useOdysseyDesignTokens } from "../OdysseyDesignTokensContext.js";
22
22
  import { InnerAppContainer } from "./InnerAppContainer.js";
23
23
  import { SideNav } from "./SideNav/SideNav.js";
24
+ import { SkipToContent } from "./SkipToContent.js";
24
25
  import { HamburgerMenuIcon } from "./TopNav/HamburgerMenuIcon.js";
25
26
  import { UiShellLogo } from "./UiShellLogo.js";
26
27
  import { useUiShellContext } from "./UiShellProvider.js";
@@ -258,7 +259,9 @@ const NarrowUiShellContent = ({
258
259
  }), _jsxs(StyledUiShellContainer, {
259
260
  odysseyDesignTokens: odysseyDesignTokens,
260
261
  ref: parentContainerRef,
261
- children: [_jsx(StyledBannersContainer, {
262
+ children: [_jsx(SkipToContent, {
263
+ appElement: appElement
264
+ }), _jsx(StyledBannersContainer, {
262
265
  children: optionalComponents?.banners
263
266
  }), (initialVisibleSections?.includes("TopNav") || topNavProps) && _jsx(ErrorBoundary, {
264
267
  fallback: null,
@@ -350,6 +353,6 @@ const NarrowUiShellContent = ({
350
353
  });
351
354
  };
352
355
  const MemoizedNarrowUiShellContent = memo(NarrowUiShellContent);
353
- MemoizedNarrowUiShellContent.displayName = "NarrowUiShellContent::pkg=odyssey&odysseyV=1.58.0";
356
+ MemoizedNarrowUiShellContent.displayName = "NarrowUiShellContent::pkg=odyssey&odysseyV=1.59.0";
354
357
  export { MemoizedNarrowUiShellContent as NarrowUiShellContent };
355
358
  //# sourceMappingURL=NarrowUiShellContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NarrowUiShellContent.js","names":["styled","memo","useCallback","useEffect","useRef","useState","ErrorBoundary","Button","hexToRgb","useTranslation","CloseIcon","MoreIcon","useOdysseyDesignTokens","InnerAppContainer","SideNav","HamburgerMenuIcon","UiShellLogo","useUiShellContext","emptySideNavItems","SIDE_NAV_WIDTH","TOP_NAV_HEIGHT","UI_SHELL_BASE_Z_INDEX","UI_SHELL_OVERLAY_Z_INDEX","useMatchAppElementToUiShellAppArea","useScrollState","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","StyledAppContentArea","gridArea","position","height","width","StyledAppContainer","shouldForwardProp","prop","appBackgroundColor","backgroundColor","overflow","StyledBannersContainer","zIndex","StyledLeftSideContainer","isOpen","display","StyledRightSideContainer","odysseyDesignTokens","HueNeutralWhite","maxWidth","overflowY","right","StyledMenuLogo","alignItems","gap","Spacing3","StyledLogoContainer","paddingBlock","Spacing4","maxHeight","StyledPageOverlay","HueNeutral900","asFormattedString","replace","left","top","StyledSideNavContainer","StyledUiShellContainer","HueNeutral50","gridGap","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","StyledTopNav","isContentScrolled","topNavBackgroundColor","boxShadow","DepthMedium","undefined","clipPath","flexDirection","justifyContent","transition","TransitionDurationMain","TransitionTimingMain","StyledTopNavMenu","minHeight","Spacing2","paddingInline","borderBottomColor","HueNeutral100","borderBottomStyle","BorderStyleMain","borderBottomWidth","BorderWidthMain","StyledTopNavSearch","NarrowUiShellContent","appElement","appElementScrollingMode","hasSideNavProps","hasStandardAppContentPadding","initialVisibleSections","logoProps","onError","console","error","optionalComponents","sideNavProps","topNavProps","t","uiShellContext","sideNavContainerRef","topNavContainerRef","uiShellAppAreaRef","isLeftSideMenuOpen","setIsLeftSideMenuOpen","isRightSideMenuOpen","setIsRightSideMenuOpen","closeSideMenus","unsubscribeFromCloseRightSideMenu","subscribeToCloseRightSideMenu","unsubscribeFromSideNavItemClicked","subscribeToCloseSideNavMenu","toggleLeftSideMenu","toggleRightSideMenu","handleKeyDown","event","key","document","addEventListener","removeEventListener","parentContainerRef","paddingMode","uiShellResizableRefs","children","onClick","ref","banners","includes","fallback","sideNavBackgroundColor","isCollapsible","isCollapsed","ariaLabel","startIcon","testId","variant","rightSideMenu","topNavLeftSide","isLoading","sideNavItems","appName","hasCustomFooter","sideNavFooter","footerComponent","footerItems","isObtrusive","onCollapse","tabIndex","MemoizedNarrowUiShellContent","displayName"],"sources":["../../../src/ui-shell/NarrowUiShellContent.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport {\n CSSProperties,\n memo,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\n\nimport type { HtmlProps } from \"../HtmlProps.js\";\n\nimport { Button } from \"../Buttons/Button.js\";\nimport { hexToRgb } from \"../hexToRgb.js\";\nimport { useTranslation } from \"../i18n.generated/i18n.js\";\nimport { CloseIcon } from \"../icons.generated/Close.js\";\nimport { MoreIcon } from \"../icons.generated/More.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext.js\";\nimport { InnerAppContainer } from \"./InnerAppContainer.js\";\nimport { SideNav } from \"./SideNav/SideNav.js\";\nimport { HamburgerMenuIcon } from \"./TopNav/HamburgerMenuIcon.js\";\nimport {\n UiShellContentProps,\n UiShellNavComponentProps,\n} from \"./uiShellContentTypes.js\";\nimport { UiShellLogo } from \"./UiShellLogo.js\";\nimport { UiShellColors, useUiShellContext } from \"./UiShellProvider.js\";\nimport {\n emptySideNavItems,\n SIDE_NAV_WIDTH,\n TOP_NAV_HEIGHT,\n UI_SHELL_BASE_Z_INDEX,\n UI_SHELL_OVERLAY_Z_INDEX,\n} from \"./uiShellSharedConstants.js\";\nimport { useMatchAppElementToUiShellAppArea } from \"./useMatchAppElementToUiShellAppArea.js\";\nimport { useScrollState } from \"./useScrollState.js\";\n\nconst StyledAppContentArea = styled(\"div\")({\n gridArea: \"app-content\",\n position: \"relative\",\n height: \"100%\",\n width: \"100%\",\n});\n\nconst StyledAppContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"appBackgroundColor\" && prop !== \"odysseyDesignTokens\",\n})<{\n appBackgroundColor?: UiShellColors[\"appBackgroundColor\"];\n}>(({ appBackgroundColor }) => ({\n backgroundColor: appBackgroundColor,\n height: \"100%\",\n overflow: \"hidden\",\n width: \"100%\",\n}));\n\nconst StyledBannersContainer = styled(\"div\")({\n gridArea: \"banners\",\n zIndex: UI_SHELL_BASE_Z_INDEX,\n});\n\nconst StyledLeftSideContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"isOpen\",\n})<{\n isOpen: boolean;\n}>(({ isOpen }) => ({\n display: isOpen ? \"block\" : \"none\",\n height: \"100%\",\n position: \"absolute\",\n zIndex: UI_SHELL_OVERLAY_Z_INDEX,\n}));\n\nconst StyledRightSideContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"isOpen\" && prop !== \"odysseyDesignTokens\",\n})<{\n isOpen: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(({ isOpen, odysseyDesignTokens }) => ({\n backgroundColor: odysseyDesignTokens.HueNeutralWhite,\n display: isOpen ? \"block\" : \"none\",\n height: \"100%\",\n maxWidth: SIDE_NAV_WIDTH,\n overflowY: \"auto\",\n position: \"absolute\",\n right: 0,\n width: SIDE_NAV_WIDTH,\n zIndex: UI_SHELL_OVERLAY_Z_INDEX,\n}));\n\nconst StyledMenuLogo = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n alignItems: \"center\",\n display: \"inline-flex\",\n gap: odysseyDesignTokens.Spacing3,\n}));\n\nconst StyledLogoContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n height: TOP_NAV_HEIGHT,\n paddingBlock: odysseyDesignTokens.Spacing4,\n\n \"svg, img\": {\n maxHeight: \"100%\",\n width: \"auto\",\n maxWidth: \"100%\",\n },\n}));\n\nconst StyledPageOverlay = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n backgroundColor: hexToRgb(\n odysseyDesignTokens.HueNeutral900,\n ).asFormattedString.replace(/rgb\\((.+)\\)$/, \"rgba($1, 0.26)\"),\n gridArea: \"app-content\",\n height: \"100vh\",\n left: 0,\n position: \"absolute\",\n top: 0,\n width: \"100vw\",\n zIndex: UI_SHELL_BASE_Z_INDEX,\n}));\n\nconst StyledSideNavContainer = styled(\"div\")({\n height: \"100%\", // Without this value, side nav won't fill up the height if the content is too short.\n});\n\nconst StyledUiShellContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n backgroundColor: odysseyDesignTokens.HueNeutral50,\n display: \"grid\",\n gridGap: 0,\n gridTemplateAreas: `\n \"banners\"\n \"top-nav\"\n \"app-content\"\n `,\n gridTemplateColumns: \"1fr\",\n gridTemplateRows: \"auto auto 1fr\",\n height: \"100vh\",\n overflow: \"hidden\",\n width: \"100vw\",\n}));\n\nconst StyledTopNav = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"isContentScrolled\" &&\n prop !== \"topNavBackgroundColor\",\n})<{\n isContentScrolled?: boolean;\n odysseyDesignTokens: DesignTokens;\n topNavBackgroundColor?: UiShellColors[\"topNavBackgroundColor\"];\n}>(({ odysseyDesignTokens, isContentScrolled, topNavBackgroundColor }) => ({\n alignItems: \"stretch\",\n backgroundColor: odysseyDesignTokens.HueNeutralWhite || topNavBackgroundColor, // This logic doesn't make sense, but I wanted to leave it here for when we eventually make a decision on `topNavBackgroundColor`. --Kevin Ghadyani\n boxShadow: isContentScrolled ? odysseyDesignTokens.DepthMedium : undefined,\n clipPath: \"inset(0 0 -100vh 0)\",\n display: \"flex\",\n flexDirection: \"column\",\n gridArea: \"top-nav\",\n height: \"100%\",\n justifyContent: \"center\",\n position: \"relative\",\n transition: `box-shadow ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n zIndex: UI_SHELL_BASE_Z_INDEX,\n}));\n\nconst StyledTopNavMenu = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"topNavBackgroundColor\",\n})<{\n odysseyDesignTokens: DesignTokens;\n topNavBackgroundColor?: UiShellColors[\"topNavBackgroundColor\"];\n}>(({ odysseyDesignTokens, topNavBackgroundColor }) => ({\n alignItems: \"center\",\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing3,\n height: \"100%\",\n justifyContent: \"space-between\",\n maxHeight: TOP_NAV_HEIGHT,\n minHeight: TOP_NAV_HEIGHT,\n paddingBlock: odysseyDesignTokens.Spacing2,\n paddingInline: odysseyDesignTokens.Spacing3,\n transition: `box-shadow ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n\n ...(topNavBackgroundColor === odysseyDesignTokens.HueNeutralWhite &&\n ({\n borderBottomColor: odysseyDesignTokens.HueNeutral100,\n borderBottomStyle: odysseyDesignTokens.BorderStyleMain,\n borderBottomWidth: odysseyDesignTokens.BorderWidthMain,\n } as CSSProperties)),\n}));\n\nconst StyledTopNavSearch = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n paddingBlock: odysseyDesignTokens.Spacing2,\n paddingInline: odysseyDesignTokens.Spacing3,\n}));\n\nexport type NarrowUiShellContentProps = Pick<HtmlProps, \"testId\"> &\n Pick<UiShellNavComponentProps, \"logoProps\" | \"sideNavProps\" | \"topNavProps\"> &\n UiShellContentProps;\n\nconst NarrowUiShellContent = ({\n appElement,\n appElementScrollingMode,\n hasSideNavProps,\n hasStandardAppContentPadding = true,\n initialVisibleSections = [\"TopNav\", \"SideNav\", \"AppSwitcher\"],\n logoProps,\n onError = console.error,\n optionalComponents,\n sideNavProps,\n topNavProps,\n}: NarrowUiShellContentProps) => {\n const { t } = useTranslation();\n\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const uiShellContext = useUiShellContext();\n\n const { isContentScrolled } = useScrollState(appElement);\n\n const sideNavContainerRef = useRef<HTMLDivElement>(null);\n const topNavContainerRef = useRef<HTMLDivElement>(null);\n const uiShellAppAreaRef = useRef<HTMLDivElement>(null);\n\n const [isLeftSideMenuOpen, setIsLeftSideMenuOpen] = useState(false);\n const [isRightSideMenuOpen, setIsRightSideMenuOpen] = useState(false);\n\n const closeSideMenus = useCallback(() => {\n setIsLeftSideMenuOpen(false);\n setIsRightSideMenuOpen(false);\n }, []);\n\n useEffect(() => {\n const unsubscribeFromCloseRightSideMenu =\n uiShellContext?.subscribeToCloseRightSideMenu(() => {\n closeSideMenus();\n });\n\n const unsubscribeFromSideNavItemClicked =\n uiShellContext?.subscribeToCloseSideNavMenu(() => {\n closeSideMenus();\n });\n\n return () => {\n unsubscribeFromCloseRightSideMenu?.();\n unsubscribeFromSideNavItemClicked?.();\n };\n }, [closeSideMenus, uiShellContext]);\n\n const toggleLeftSideMenu = useCallback(() => {\n setIsRightSideMenuOpen(false);\n setIsLeftSideMenuOpen((isLeftSideMenuOpen) => !isLeftSideMenuOpen);\n }, []);\n\n const toggleRightSideMenu = useCallback(() => {\n setIsLeftSideMenuOpen(false);\n setIsRightSideMenuOpen((isRightSideMenuOpen) => !isRightSideMenuOpen);\n }, []);\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n closeSideMenus();\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [closeSideMenus]);\n\n const { parentContainerRef } = useMatchAppElementToUiShellAppArea({\n appElement,\n appElementScrollingMode,\n paddingMode: hasStandardAppContentPadding ? \"compact\" : \"none\",\n uiShellAppAreaRef,\n uiShellResizableRefs: [\n sideNavContainerRef,\n topNavContainerRef,\n uiShellAppAreaRef,\n ],\n });\n\n return (\n <>\n {(isLeftSideMenuOpen || isRightSideMenuOpen) && (\n <StyledPageOverlay\n odysseyDesignTokens={odysseyDesignTokens}\n onClick={closeSideMenus}\n />\n )}\n\n <StyledUiShellContainer\n odysseyDesignTokens={odysseyDesignTokens}\n ref={parentContainerRef}\n >\n <StyledBannersContainer>\n {optionalComponents?.banners}\n </StyledBannersContainer>\n\n {(initialVisibleSections?.includes(\"TopNav\") || topNavProps) && (\n <ErrorBoundary fallback={null} onError={onError}>\n <StyledTopNav\n isContentScrolled={isContentScrolled}\n odysseyDesignTokens={odysseyDesignTokens}\n topNavBackgroundColor={uiShellContext?.topNavBackgroundColor}\n >\n <StyledTopNavMenu\n odysseyDesignTokens={odysseyDesignTokens}\n topNavBackgroundColor={uiShellContext?.sideNavBackgroundColor}\n >\n <StyledMenuLogo odysseyDesignTokens={odysseyDesignTokens}>\n {hasSideNavProps &&\n (sideNavProps?.isCollapsible ||\n !sideNavProps?.isCollapsed) && (\n <Button\n ariaLabel={t(\"topnav.sidenavmenu.toggle\")}\n onClick={toggleLeftSideMenu}\n startIcon={<HamburgerMenuIcon />}\n testId=\"sidenav-menu--icon\"\n variant=\"floating\"\n />\n )}\n\n <StyledLogoContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <UiShellLogo {...(sideNavProps?.logoProps || logoProps)} />\n </StyledLogoContainer>\n </StyledMenuLogo>\n\n {optionalComponents?.rightSideMenu && (\n <Button\n ariaLabel={t(\"topnav.usermenu.toggle\")}\n onClick={toggleRightSideMenu}\n startIcon={\n isRightSideMenuOpen ? <CloseIcon /> : <MoreIcon />\n }\n testId=\"userprofile-menu--icon\"\n variant=\"floating\"\n />\n )}\n </StyledTopNavMenu>\n\n {optionalComponents?.topNavLeftSide && (\n <StyledTopNavSearch odysseyDesignTokens={odysseyDesignTokens}>\n {optionalComponents?.topNavLeftSide}\n </StyledTopNavSearch>\n )}\n </StyledTopNav>\n </ErrorBoundary>\n )}\n\n <StyledAppContentArea>\n <StyledLeftSideContainer isOpen={isLeftSideMenuOpen}>\n {\n /* If SideNav should be initially visible and we have not yet received props, render SideNav with minimal inputs */\n initialVisibleSections?.includes(\"SideNav\") &&\n !hasSideNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <SideNav isLoading sideNavItems={emptySideNavItems} />\n </ErrorBoundary>\n )\n }\n\n {hasSideNavProps && sideNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <StyledSideNavContainer>\n <SideNav\n {...{\n ...{\n ...sideNavProps,\n // This hides the side nav logo or app name from showing up as we already have one in the narrow top nav.\n appName: undefined,\n logoProps: undefined,\n },\n ...(sideNavProps.hasCustomFooter &&\n optionalComponents?.sideNavFooter\n ? {\n footerComponent: optionalComponents.sideNavFooter,\n footerItems: undefined,\n hasCustomFooter: sideNavProps.hasCustomFooter,\n }\n : {\n footerItems: sideNavProps.footerItems,\n hasCustomFooter: false,\n }),\n }}\n isCollapsed={false}\n isCollapsible={false}\n isObtrusive\n onCollapse={closeSideMenus}\n />\n </StyledSideNavContainer>\n </ErrorBoundary>\n )}\n </StyledLeftSideContainer>\n\n <StyledRightSideContainer\n isOpen={isRightSideMenuOpen}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <StyledSideNavContainer>\n {optionalComponents?.rightSideMenu}\n </StyledSideNavContainer>\n </StyledRightSideContainer>\n\n <StyledAppContainer\n appBackgroundColor={uiShellContext?.appBackgroundColor}\n ref={uiShellAppAreaRef}\n tabIndex={0}\n >\n <InnerAppContainer isContentScrolled={isContentScrolled} />\n </StyledAppContainer>\n </StyledAppContentArea>\n </StyledUiShellContainer>\n </>\n );\n};\n\nconst MemoizedNarrowUiShellContent = memo(NarrowUiShellContent);\nMemoizedNarrowUiShellContent.displayName = \"NarrowUiShellContent\";\n\nexport { MemoizedNarrowUiShellContent as NarrowUiShellContent };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NarrowUiShellContent.js","names":["styled","memo","useCallback","useEffect","useRef","useState","ErrorBoundary","Button","hexToRgb","useTranslation","CloseIcon","MoreIcon","useOdysseyDesignTokens","InnerAppContainer","SideNav","SkipToContent","HamburgerMenuIcon","UiShellLogo","useUiShellContext","emptySideNavItems","SIDE_NAV_WIDTH","TOP_NAV_HEIGHT","UI_SHELL_BASE_Z_INDEX","UI_SHELL_OVERLAY_Z_INDEX","useMatchAppElementToUiShellAppArea","useScrollState","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","StyledAppContentArea","gridArea","position","height","width","StyledAppContainer","shouldForwardProp","prop","appBackgroundColor","backgroundColor","overflow","StyledBannersContainer","zIndex","StyledLeftSideContainer","isOpen","display","StyledRightSideContainer","odysseyDesignTokens","HueNeutralWhite","maxWidth","overflowY","right","StyledMenuLogo","alignItems","gap","Spacing3","StyledLogoContainer","paddingBlock","Spacing4","maxHeight","StyledPageOverlay","HueNeutral900","asFormattedString","replace","left","top","StyledSideNavContainer","StyledUiShellContainer","HueNeutral50","gridGap","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","StyledTopNav","isContentScrolled","topNavBackgroundColor","boxShadow","DepthMedium","undefined","clipPath","flexDirection","justifyContent","transition","TransitionDurationMain","TransitionTimingMain","StyledTopNavMenu","minHeight","Spacing2","paddingInline","borderBottomColor","HueNeutral100","borderBottomStyle","BorderStyleMain","borderBottomWidth","BorderWidthMain","StyledTopNavSearch","NarrowUiShellContent","appElement","appElementScrollingMode","hasSideNavProps","hasStandardAppContentPadding","initialVisibleSections","logoProps","onError","console","error","optionalComponents","sideNavProps","topNavProps","t","uiShellContext","sideNavContainerRef","topNavContainerRef","uiShellAppAreaRef","isLeftSideMenuOpen","setIsLeftSideMenuOpen","isRightSideMenuOpen","setIsRightSideMenuOpen","closeSideMenus","unsubscribeFromCloseRightSideMenu","subscribeToCloseRightSideMenu","unsubscribeFromSideNavItemClicked","subscribeToCloseSideNavMenu","toggleLeftSideMenu","toggleRightSideMenu","handleKeyDown","event","key","document","addEventListener","removeEventListener","parentContainerRef","paddingMode","uiShellResizableRefs","children","onClick","ref","banners","includes","fallback","sideNavBackgroundColor","isCollapsible","isCollapsed","ariaLabel","startIcon","testId","variant","rightSideMenu","topNavLeftSide","isLoading","sideNavItems","appName","hasCustomFooter","sideNavFooter","footerComponent","footerItems","isObtrusive","onCollapse","tabIndex","MemoizedNarrowUiShellContent","displayName"],"sources":["../../../src/ui-shell/NarrowUiShellContent.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport {\n CSSProperties,\n memo,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\n\nimport type { HtmlProps } from \"../HtmlProps.js\";\n\nimport { Button } from \"../Buttons/Button.js\";\nimport { hexToRgb } from \"../hexToRgb.js\";\nimport { useTranslation } from \"../i18n.generated/i18n.js\";\nimport { CloseIcon } from \"../icons.generated/Close.js\";\nimport { MoreIcon } from \"../icons.generated/More.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext.js\";\nimport { InnerAppContainer } from \"./InnerAppContainer.js\";\nimport { SideNav } from \"./SideNav/SideNav.js\";\nimport { SkipToContent } from \"./SkipToContent.js\";\nimport { HamburgerMenuIcon } from \"./TopNav/HamburgerMenuIcon.js\";\nimport {\n UiShellContentProps,\n UiShellNavComponentProps,\n} from \"./uiShellContentTypes.js\";\nimport { UiShellLogo } from \"./UiShellLogo.js\";\nimport { UiShellColors, useUiShellContext } from \"./UiShellProvider.js\";\nimport {\n emptySideNavItems,\n SIDE_NAV_WIDTH,\n TOP_NAV_HEIGHT,\n UI_SHELL_BASE_Z_INDEX,\n UI_SHELL_OVERLAY_Z_INDEX,\n} from \"./uiShellSharedConstants.js\";\nimport { useMatchAppElementToUiShellAppArea } from \"./useMatchAppElementToUiShellAppArea.js\";\nimport { useScrollState } from \"./useScrollState.js\";\n\nconst StyledAppContentArea = styled(\"div\")({\n gridArea: \"app-content\",\n position: \"relative\",\n height: \"100%\",\n width: \"100%\",\n});\n\nconst StyledAppContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"appBackgroundColor\" && prop !== \"odysseyDesignTokens\",\n})<{\n appBackgroundColor?: UiShellColors[\"appBackgroundColor\"];\n}>(({ appBackgroundColor }) => ({\n backgroundColor: appBackgroundColor,\n height: \"100%\",\n overflow: \"hidden\",\n width: \"100%\",\n}));\n\nconst StyledBannersContainer = styled(\"div\")({\n gridArea: \"banners\",\n zIndex: UI_SHELL_BASE_Z_INDEX,\n});\n\nconst StyledLeftSideContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"isOpen\",\n})<{\n isOpen: boolean;\n}>(({ isOpen }) => ({\n display: isOpen ? \"block\" : \"none\",\n height: \"100%\",\n position: \"absolute\",\n zIndex: UI_SHELL_OVERLAY_Z_INDEX,\n}));\n\nconst StyledRightSideContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"isOpen\" && prop !== \"odysseyDesignTokens\",\n})<{\n isOpen: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(({ isOpen, odysseyDesignTokens }) => ({\n backgroundColor: odysseyDesignTokens.HueNeutralWhite,\n display: isOpen ? \"block\" : \"none\",\n height: \"100%\",\n maxWidth: SIDE_NAV_WIDTH,\n overflowY: \"auto\",\n position: \"absolute\",\n right: 0,\n width: SIDE_NAV_WIDTH,\n zIndex: UI_SHELL_OVERLAY_Z_INDEX,\n}));\n\nconst StyledMenuLogo = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n alignItems: \"center\",\n display: \"inline-flex\",\n gap: odysseyDesignTokens.Spacing3,\n}));\n\nconst StyledLogoContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n height: TOP_NAV_HEIGHT,\n paddingBlock: odysseyDesignTokens.Spacing4,\n\n \"svg, img\": {\n maxHeight: \"100%\",\n width: \"auto\",\n maxWidth: \"100%\",\n },\n}));\n\nconst StyledPageOverlay = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n backgroundColor: hexToRgb(\n odysseyDesignTokens.HueNeutral900,\n ).asFormattedString.replace(/rgb\\((.+)\\)$/, \"rgba($1, 0.26)\"),\n gridArea: \"app-content\",\n height: \"100vh\",\n left: 0,\n position: \"absolute\",\n top: 0,\n width: \"100vw\",\n zIndex: UI_SHELL_BASE_Z_INDEX,\n}));\n\nconst StyledSideNavContainer = styled(\"div\")({\n height: \"100%\", // Without this value, side nav won't fill up the height if the content is too short.\n});\n\nconst StyledUiShellContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n backgroundColor: odysseyDesignTokens.HueNeutral50,\n display: \"grid\",\n gridGap: 0,\n gridTemplateAreas: `\n \"banners\"\n \"top-nav\"\n \"app-content\"\n `,\n gridTemplateColumns: \"1fr\",\n gridTemplateRows: \"auto auto 1fr\",\n height: \"100vh\",\n overflow: \"hidden\",\n width: \"100vw\",\n}));\n\nconst StyledTopNav = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"isContentScrolled\" &&\n prop !== \"topNavBackgroundColor\",\n})<{\n isContentScrolled?: boolean;\n odysseyDesignTokens: DesignTokens;\n topNavBackgroundColor?: UiShellColors[\"topNavBackgroundColor\"];\n}>(({ odysseyDesignTokens, isContentScrolled, topNavBackgroundColor }) => ({\n alignItems: \"stretch\",\n backgroundColor: odysseyDesignTokens.HueNeutralWhite || topNavBackgroundColor, // This logic doesn't make sense, but I wanted to leave it here for when we eventually make a decision on `topNavBackgroundColor`. --Kevin Ghadyani\n boxShadow: isContentScrolled ? odysseyDesignTokens.DepthMedium : undefined,\n clipPath: \"inset(0 0 -100vh 0)\",\n display: \"flex\",\n flexDirection: \"column\",\n gridArea: \"top-nav\",\n height: \"100%\",\n justifyContent: \"center\",\n position: \"relative\",\n transition: `box-shadow ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n zIndex: UI_SHELL_BASE_Z_INDEX,\n}));\n\nconst StyledTopNavMenu = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"topNavBackgroundColor\",\n})<{\n odysseyDesignTokens: DesignTokens;\n topNavBackgroundColor?: UiShellColors[\"topNavBackgroundColor\"];\n}>(({ odysseyDesignTokens, topNavBackgroundColor }) => ({\n alignItems: \"center\",\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing3,\n height: \"100%\",\n justifyContent: \"space-between\",\n maxHeight: TOP_NAV_HEIGHT,\n minHeight: TOP_NAV_HEIGHT,\n paddingBlock: odysseyDesignTokens.Spacing2,\n paddingInline: odysseyDesignTokens.Spacing3,\n transition: `box-shadow ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n\n ...(topNavBackgroundColor === odysseyDesignTokens.HueNeutralWhite &&\n ({\n borderBottomColor: odysseyDesignTokens.HueNeutral100,\n borderBottomStyle: odysseyDesignTokens.BorderStyleMain,\n borderBottomWidth: odysseyDesignTokens.BorderWidthMain,\n } as CSSProperties)),\n}));\n\nconst StyledTopNavSearch = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n paddingBlock: odysseyDesignTokens.Spacing2,\n paddingInline: odysseyDesignTokens.Spacing3,\n}));\n\nexport type NarrowUiShellContentProps = Pick<HtmlProps, \"testId\"> &\n Pick<UiShellNavComponentProps, \"logoProps\" | \"sideNavProps\" | \"topNavProps\"> &\n UiShellContentProps;\n\nconst NarrowUiShellContent = ({\n appElement,\n appElementScrollingMode,\n hasSideNavProps,\n hasStandardAppContentPadding = true,\n initialVisibleSections = [\"TopNav\", \"SideNav\", \"AppSwitcher\"],\n logoProps,\n onError = console.error,\n optionalComponents,\n sideNavProps,\n topNavProps,\n}: NarrowUiShellContentProps) => {\n const { t } = useTranslation();\n\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const uiShellContext = useUiShellContext();\n\n const { isContentScrolled } = useScrollState(appElement);\n\n const sideNavContainerRef = useRef<HTMLDivElement>(null);\n const topNavContainerRef = useRef<HTMLDivElement>(null);\n const uiShellAppAreaRef = useRef<HTMLDivElement>(null);\n\n const [isLeftSideMenuOpen, setIsLeftSideMenuOpen] = useState(false);\n const [isRightSideMenuOpen, setIsRightSideMenuOpen] = useState(false);\n\n const closeSideMenus = useCallback(() => {\n setIsLeftSideMenuOpen(false);\n setIsRightSideMenuOpen(false);\n }, []);\n\n useEffect(() => {\n const unsubscribeFromCloseRightSideMenu =\n uiShellContext?.subscribeToCloseRightSideMenu(() => {\n closeSideMenus();\n });\n\n const unsubscribeFromSideNavItemClicked =\n uiShellContext?.subscribeToCloseSideNavMenu(() => {\n closeSideMenus();\n });\n\n return () => {\n unsubscribeFromCloseRightSideMenu?.();\n unsubscribeFromSideNavItemClicked?.();\n };\n }, [closeSideMenus, uiShellContext]);\n\n const toggleLeftSideMenu = useCallback(() => {\n setIsRightSideMenuOpen(false);\n setIsLeftSideMenuOpen((isLeftSideMenuOpen) => !isLeftSideMenuOpen);\n }, []);\n\n const toggleRightSideMenu = useCallback(() => {\n setIsLeftSideMenuOpen(false);\n setIsRightSideMenuOpen((isRightSideMenuOpen) => !isRightSideMenuOpen);\n }, []);\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n closeSideMenus();\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [closeSideMenus]);\n\n const { parentContainerRef } = useMatchAppElementToUiShellAppArea({\n appElement,\n appElementScrollingMode,\n paddingMode: hasStandardAppContentPadding ? \"compact\" : \"none\",\n uiShellAppAreaRef,\n uiShellResizableRefs: [\n sideNavContainerRef,\n topNavContainerRef,\n uiShellAppAreaRef,\n ],\n });\n\n return (\n <>\n {(isLeftSideMenuOpen || isRightSideMenuOpen) && (\n <StyledPageOverlay\n odysseyDesignTokens={odysseyDesignTokens}\n onClick={closeSideMenus}\n />\n )}\n\n <StyledUiShellContainer\n odysseyDesignTokens={odysseyDesignTokens}\n ref={parentContainerRef}\n >\n <SkipToContent appElement={appElement} />\n\n <StyledBannersContainer>\n {optionalComponents?.banners}\n </StyledBannersContainer>\n\n {(initialVisibleSections?.includes(\"TopNav\") || topNavProps) && (\n <ErrorBoundary fallback={null} onError={onError}>\n <StyledTopNav\n isContentScrolled={isContentScrolled}\n odysseyDesignTokens={odysseyDesignTokens}\n topNavBackgroundColor={uiShellContext?.topNavBackgroundColor}\n >\n <StyledTopNavMenu\n odysseyDesignTokens={odysseyDesignTokens}\n topNavBackgroundColor={uiShellContext?.sideNavBackgroundColor}\n >\n <StyledMenuLogo odysseyDesignTokens={odysseyDesignTokens}>\n {hasSideNavProps &&\n (sideNavProps?.isCollapsible ||\n !sideNavProps?.isCollapsed) && (\n <Button\n ariaLabel={t(\"topnav.sidenavmenu.toggle\")}\n onClick={toggleLeftSideMenu}\n startIcon={<HamburgerMenuIcon />}\n testId=\"sidenav-menu--icon\"\n variant=\"floating\"\n />\n )}\n\n <StyledLogoContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <UiShellLogo {...(sideNavProps?.logoProps || logoProps)} />\n </StyledLogoContainer>\n </StyledMenuLogo>\n\n {optionalComponents?.rightSideMenu && (\n <Button\n ariaLabel={t(\"topnav.usermenu.toggle\")}\n onClick={toggleRightSideMenu}\n startIcon={\n isRightSideMenuOpen ? <CloseIcon /> : <MoreIcon />\n }\n testId=\"userprofile-menu--icon\"\n variant=\"floating\"\n />\n )}\n </StyledTopNavMenu>\n\n {optionalComponents?.topNavLeftSide && (\n <StyledTopNavSearch odysseyDesignTokens={odysseyDesignTokens}>\n {optionalComponents?.topNavLeftSide}\n </StyledTopNavSearch>\n )}\n </StyledTopNav>\n </ErrorBoundary>\n )}\n\n <StyledAppContentArea>\n <StyledLeftSideContainer isOpen={isLeftSideMenuOpen}>\n {\n /* If SideNav should be initially visible and we have not yet received props, render SideNav with minimal inputs */\n initialVisibleSections?.includes(\"SideNav\") &&\n !hasSideNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <SideNav isLoading sideNavItems={emptySideNavItems} />\n </ErrorBoundary>\n )\n }\n\n {hasSideNavProps && sideNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <StyledSideNavContainer>\n <SideNav\n {...{\n ...{\n ...sideNavProps,\n // This hides the side nav logo or app name from showing up as we already have one in the narrow top nav.\n appName: undefined,\n logoProps: undefined,\n },\n ...(sideNavProps.hasCustomFooter &&\n optionalComponents?.sideNavFooter\n ? {\n footerComponent: optionalComponents.sideNavFooter,\n footerItems: undefined,\n hasCustomFooter: sideNavProps.hasCustomFooter,\n }\n : {\n footerItems: sideNavProps.footerItems,\n hasCustomFooter: false,\n }),\n }}\n isCollapsed={false}\n isCollapsible={false}\n isObtrusive\n onCollapse={closeSideMenus}\n />\n </StyledSideNavContainer>\n </ErrorBoundary>\n )}\n </StyledLeftSideContainer>\n\n <StyledRightSideContainer\n isOpen={isRightSideMenuOpen}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <StyledSideNavContainer>\n {optionalComponents?.rightSideMenu}\n </StyledSideNavContainer>\n </StyledRightSideContainer>\n\n <StyledAppContainer\n appBackgroundColor={uiShellContext?.appBackgroundColor}\n ref={uiShellAppAreaRef}\n tabIndex={0}\n >\n <InnerAppContainer isContentScrolled={isContentScrolled} />\n </StyledAppContainer>\n </StyledAppContentArea>\n </StyledUiShellContainer>\n </>\n );\n};\n\nconst MemoizedNarrowUiShellContent = memo(NarrowUiShellContent);\nMemoizedNarrowUiShellContent.displayName = \"NarrowUiShellContent\";\n\nexport { MemoizedNarrowUiShellContent as NarrowUiShellContent };\n"],"mappings":"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","ignoreList":[]}
@@ -163,6 +163,6 @@ const NavAccordion = ({
163
163
  });
164
164
  };
165
165
  const MemoizedNavAccordion = memo(NavAccordion);
166
- MemoizedNavAccordion.displayName = "NavAccordion::pkg=odyssey&odysseyV=1.58.0";
166
+ MemoizedNavAccordion.displayName = "NavAccordion::pkg=odyssey&odysseyV=1.59.0";
167
167
  export { MemoizedNavAccordion as NavAccordion };
168
168
  //# sourceMappingURL=NavAccordion.js.map
@@ -636,6 +636,6 @@ const SideNav = ({
636
636
  });
637
637
  };
638
638
  const MemoizedSideNav = memo(SideNav);
639
- MemoizedSideNav.displayName = "SideNav::pkg=odyssey&odysseyV=1.58.0";
639
+ MemoizedSideNav.displayName = "SideNav::pkg=odyssey&odysseyV=1.59.0";
640
640
  export { MemoizedSideNav as SideNav };
641
641
  //# sourceMappingURL=SideNav.js.map
@@ -62,6 +62,6 @@ const SideNavFooterContent = ({
62
62
  });
63
63
  };
64
64
  const MemoizedSideNavFooterContent = memo(SideNavFooterContent);
65
- MemoizedSideNavFooterContent.displayName = "SideNavFooterContent::pkg=odyssey&odysseyV=1.58.0";
65
+ MemoizedSideNavFooterContent.displayName = "SideNavFooterContent::pkg=odyssey&odysseyV=1.59.0";
66
66
  export { MemoizedSideNavFooterContent as SideNavFooterContent };
67
67
  //# sourceMappingURL=SideNavFooterContent.js.map
@@ -93,6 +93,6 @@ const SideNavHeader = ({
93
93
  });
94
94
  };
95
95
  const MemoizedSideNavHeader = memo(SideNavHeader);
96
- MemoizedSideNavHeader.displayName = "SideNavHeader::pkg=odyssey&odysseyV=1.58.0";
96
+ MemoizedSideNavHeader.displayName = "SideNavHeader::pkg=odyssey&odysseyV=1.59.0";
97
97
  export { MemoizedSideNavHeader as SideNavHeader };
98
98
  //# sourceMappingURL=SideNavHeader.js.map
@@ -277,6 +277,6 @@ const SideNavItemContent = ({
277
277
  }, id);
278
278
  };
279
279
  const MemoizedSideNavItemContent = memo(SideNavItemContent);
280
- MemoizedSideNavItemContent.displayName = "SideNavItemContent::pkg=odyssey&odysseyV=1.58.0";
280
+ MemoizedSideNavItemContent.displayName = "SideNavItemContent::pkg=odyssey&odysseyV=1.59.0";
281
281
  export { MemoizedSideNavItemContent as SideNavItemContent };
282
282
  //# sourceMappingURL=SideNavItemContent.js.map
@@ -67,6 +67,6 @@ const SideNavItemLinkContent = ({
67
67
  });
68
68
  };
69
69
  const MemoizedSideNavItemLinkContent = memo(SideNavItemLinkContent);
70
- MemoizedSideNavItemLinkContent.displayName = "SideNavItemLinkContent::pkg=odyssey&odysseyV=1.58.0";
70
+ MemoizedSideNavItemLinkContent.displayName = "SideNavItemLinkContent::pkg=odyssey&odysseyV=1.59.0";
71
71
  export { MemoizedSideNavItemLinkContent as SideNavItemLinkContent };
72
72
  //# sourceMappingURL=SideNavItemLinkContent.js.map
@@ -37,6 +37,6 @@ const SideNavSortableList = ({
37
37
  });
38
38
  };
39
39
  const MemoizedSideNavSortableList = memo(SideNavSortableList);
40
- MemoizedSideNavSortableList.displayName = "SideNavSortableList::pkg=odyssey&odysseyV=1.58.0";
40
+ MemoizedSideNavSortableList.displayName = "SideNavSortableList::pkg=odyssey&odysseyV=1.59.0";
41
41
  export { MemoizedSideNavSortableList as SideNavSortableList };
42
42
  //# sourceMappingURL=SideNavSortableList.js.map
@@ -80,7 +80,7 @@ const StyledChevronRightIcon = styled(ChevronRightIcon, {
80
80
  transitionProperty: "transform",
81
81
  transitionTimingFunction: "ease-in-out"
82
82
  }));
83
- StyledChevronRightIcon.displayName = "StyledChevronRightIcon::pkg=odyssey&odysseyV=1.58.0";
83
+ StyledChevronRightIcon.displayName = "StyledChevronRightIcon::pkg=odyssey&odysseyV=1.59.0";
84
84
  const defaultLocalButton = typeof window === "undefined" ? null : document.createElement("button");
85
85
  const SideNavToggleButton = ({
86
86
  ariaControls,
@@ -155,6 +155,6 @@ const SideNavToggleButton = ({
155
155
  });
156
156
  };
157
157
  const MemoizedSideNavToggleButton = memo(SideNavToggleButton);
158
- MemoizedSideNavToggleButton.displayName = "SideNavToggleButton::pkg=odyssey&odysseyV=1.58.0";
158
+ MemoizedSideNavToggleButton.displayName = "SideNavToggleButton::pkg=odyssey&odysseyV=1.59.0";
159
159
  export { MemoizedSideNavToggleButton as SideNavToggleButton };
160
160
  //# sourceMappingURL=SideNavToggleButton.js.map
@@ -0,0 +1,118 @@
1
+ /*!
2
+ * Copyright (c) 2026-present, Okta, Inc. and/or its affiliates. All rights reserved.
3
+ * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
4
+ *
5
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
6
+ * Unless required by applicable law or agreed to in writing, software
7
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
8
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ *
10
+ * See the License for the specific language governing permissions and limitations under the License.
11
+ */
12
+
13
+ import styled from "@emotion/styled";
14
+ import { memo, useCallback, useEffect, useRef } from "react";
15
+ import { BaseButton } from "../Buttons/BaseButton.js";
16
+ import { useTranslation } from "../i18n.generated/i18n.js";
17
+ import { useOdysseyDesignTokens } from "../OdysseyDesignTokensContext.js";
18
+ import { SKIP_LINKS_Z_INDEX } from "./uiShellSharedConstants.js";
19
+ import { jsx as _jsx } from "react/jsx-runtime";
20
+ const StyledContainer = styled("div", {
21
+ shouldForwardProp: prop => prop !== "odysseyDesignTokens"
22
+ })(({
23
+ odysseyDesignTokens
24
+ }) => ({
25
+ left: odysseyDesignTokens.Spacing4,
26
+ position: "fixed",
27
+ top: odysseyDesignTokens.Spacing3,
28
+ zIndex: SKIP_LINKS_Z_INDEX,
29
+ "&:not(:focus-within)": {
30
+ clip: "rect(0 0 0 0)",
31
+ clipPath: "inset(50%)",
32
+ height: "1px",
33
+ overflow: "hidden",
34
+ pointerEvents: "none",
35
+ whiteSpace: "nowrap",
36
+ width: "1px"
37
+ }
38
+ }));
39
+ const SkipToContent = ({
40
+ appElement
41
+ }) => {
42
+ const odysseyDesignTokens = useOdysseyDesignTokens();
43
+ const {
44
+ t
45
+ } = useTranslation();
46
+ const containerRef = useRef(null);
47
+ const buttonRef = useRef(null);
48
+ const interceptedFromRef = useRef(null);
49
+ useEffect(() => {
50
+ if (appElement) {
51
+ const hasTabIndex = appElement.hasAttribute("tabindex");
52
+ const hasOutlineStyle = appElement.style.getPropertyValue("outline") !== "";
53
+ if (!hasTabIndex) {
54
+ appElement.setAttribute("tabindex", "-1");
55
+ }
56
+ if (!hasOutlineStyle) {
57
+ appElement.style.setProperty("outline", "none");
58
+ }
59
+ return () => {
60
+ if (!hasTabIndex) {
61
+ appElement.removeAttribute("tabindex");
62
+ }
63
+ if (!hasOutlineStyle) {
64
+ appElement.style.removeProperty("outline");
65
+ }
66
+ };
67
+ }
68
+ return;
69
+ }, [appElement]);
70
+ useEffect(() => {
71
+ const stopInterceptor = () => {
72
+ document.removeEventListener("keydown", handleKeyDown);
73
+ document.removeEventListener("pointerdown", stopInterceptor);
74
+ };
75
+ const handleKeyDown = keyboardEvent => {
76
+ if (keyboardEvent.key === "Tab" && !keyboardEvent.shiftKey && !containerRef.current?.contains(document.activeElement)) {
77
+ interceptedFromRef.current = document.activeElement;
78
+ keyboardEvent.preventDefault();
79
+ stopInterceptor();
80
+ requestAnimationFrame(() => {
81
+ buttonRef.current?.focus();
82
+ });
83
+ }
84
+ };
85
+ document.addEventListener("keydown", handleKeyDown);
86
+ document.addEventListener("pointerdown", stopInterceptor);
87
+ return stopInterceptor;
88
+ }, []);
89
+ useEffect(() => {
90
+ const resumeFromInterceptedPosition = keyboardEvent => {
91
+ if (interceptedFromRef.current && keyboardEvent.key === "Tab" && !keyboardEvent.shiftKey && containerRef.current?.contains(document.activeElement)) {
92
+ interceptedFromRef.current.focus();
93
+ interceptedFromRef.current = null;
94
+ }
95
+ };
96
+ document.addEventListener("keydown", resumeFromInterceptedPosition);
97
+ return () => {
98
+ document.removeEventListener("keydown", resumeFromInterceptedPosition);
99
+ };
100
+ }, []);
101
+ const focusMainContent = useCallback(() => {
102
+ appElement?.focus();
103
+ }, [appElement]);
104
+ return _jsx(StyledContainer, {
105
+ odysseyDesignTokens: odysseyDesignTokens,
106
+ ref: containerRef,
107
+ children: _jsx(BaseButton, {
108
+ buttonRef: buttonRef,
109
+ label: t("skiplinks.main"),
110
+ onClick: focusMainContent,
111
+ variant: "primary"
112
+ })
113
+ });
114
+ };
115
+ const MemoizedSkipToContent = memo(SkipToContent);
116
+ MemoizedSkipToContent.displayName = "SkipToContent::pkg=odyssey&odysseyV=1.59.0";
117
+ export { MemoizedSkipToContent as SkipToContent };
118
+ //# sourceMappingURL=SkipToContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkipToContent.js","names":["styled","memo","useCallback","useEffect","useRef","BaseButton","useTranslation","useOdysseyDesignTokens","SKIP_LINKS_Z_INDEX","jsx","_jsx","StyledContainer","shouldForwardProp","prop","odysseyDesignTokens","left","Spacing4","position","top","Spacing3","zIndex","clip","clipPath","height","overflow","pointerEvents","whiteSpace","width","SkipToContent","appElement","t","containerRef","buttonRef","interceptedFromRef","hasTabIndex","hasAttribute","hasOutlineStyle","style","getPropertyValue","setAttribute","setProperty","removeAttribute","removeProperty","stopInterceptor","document","removeEventListener","handleKeyDown","keyboardEvent","key","shiftKey","current","contains","activeElement","preventDefault","requestAnimationFrame","focus","addEventListener","resumeFromInterceptedPosition","focusMainContent","ref","children","label","onClick","variant","MemoizedSkipToContent","displayName"],"sources":["../../../src/ui-shell/SkipToContent.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2026-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport { memo, useCallback, useEffect, useRef } from \"react\";\n\nimport { BaseButton } from \"../Buttons/BaseButton.js\";\nimport { useTranslation } from \"../i18n.generated/i18n.js\";\nimport { FocusHandle } from \"../inputUtils.js\";\nimport {\n type DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext.js\";\nimport { SKIP_LINKS_Z_INDEX } from \"./uiShellSharedConstants.js\";\n\nconst StyledContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n left: odysseyDesignTokens.Spacing4,\n position: \"fixed\",\n top: odysseyDesignTokens.Spacing3,\n zIndex: SKIP_LINKS_Z_INDEX,\n // Visually hidden when not focused — the \"sr-only\" pattern.\n // https://www.a11yproject.com/posts/how-to-hide-content/\n //\n // We found this method via the A11y Project. It fixes axe color-contrast\n // violations that `opacity: 0` triggers (axe still evaluates contrast on\n // opacity-0 elements because they occupy space in the layout). The sr-only\n // pattern collapses the element to 1×1 px and clips it, which axe — and\n // every modern screen reader — treats as fully hidden. Unlike a large\n // negative `left` offset, it also avoids any risk of a phantom scrollbar.\n \"&:not(:focus-within)\": {\n clip: \"rect(0 0 0 0)\",\n clipPath: \"inset(50%)\",\n height: \"1px\",\n overflow: \"hidden\",\n pointerEvents: \"none\",\n whiteSpace: \"nowrap\",\n width: \"1px\",\n },\n}));\n\ntype SkipToContentProps = {\n appElement: HTMLDivElement | null;\n};\n\nconst SkipToContent = ({ appElement }: SkipToContentProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const containerRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<FocusHandle>(null);\n const interceptedFromRef = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n if (appElement) {\n const hasTabIndex = appElement.hasAttribute(\"tabindex\");\n const hasOutlineStyle =\n appElement.style.getPropertyValue(\"outline\") !== \"\";\n\n if (!hasTabIndex) {\n appElement.setAttribute(\"tabindex\", \"-1\");\n }\n if (!hasOutlineStyle) {\n appElement.style.setProperty(\"outline\", \"none\");\n }\n\n return () => {\n if (!hasTabIndex) {\n appElement.removeAttribute(\"tabindex\");\n }\n if (!hasOutlineStyle) {\n appElement.style.removeProperty(\"outline\");\n }\n };\n }\n\n return;\n }, [appElement]);\n\n useEffect(() => {\n const stopInterceptor = () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.removeEventListener(\"pointerdown\", stopInterceptor);\n };\n\n const handleKeyDown = (keyboardEvent: globalThis.KeyboardEvent) => {\n if (\n keyboardEvent.key === \"Tab\" &&\n !keyboardEvent.shiftKey &&\n !containerRef.current?.contains(document.activeElement)\n ) {\n interceptedFromRef.current = document.activeElement as HTMLElement;\n keyboardEvent.preventDefault();\n stopInterceptor();\n\n requestAnimationFrame(() => {\n buttonRef.current?.focus();\n });\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n document.addEventListener(\"pointerdown\", stopInterceptor);\n\n return stopInterceptor;\n }, []);\n\n useEffect(() => {\n const resumeFromInterceptedPosition = (\n keyboardEvent: globalThis.KeyboardEvent,\n ) => {\n if (\n interceptedFromRef.current &&\n keyboardEvent.key === \"Tab\" &&\n !keyboardEvent.shiftKey &&\n containerRef.current?.contains(document.activeElement)\n ) {\n interceptedFromRef.current.focus();\n interceptedFromRef.current = null;\n }\n };\n\n document.addEventListener(\"keydown\", resumeFromInterceptedPosition);\n\n return () => {\n document.removeEventListener(\"keydown\", resumeFromInterceptedPosition);\n };\n }, []);\n\n const focusMainContent = useCallback(() => {\n appElement?.focus();\n }, [appElement]);\n\n return (\n <StyledContainer\n odysseyDesignTokens={odysseyDesignTokens}\n ref={containerRef}\n >\n <BaseButton\n buttonRef={buttonRef}\n label={t(\"skiplinks.main\")}\n onClick={focusMainContent}\n variant=\"primary\"\n />\n </StyledContainer>\n );\n};\n\nconst MemoizedSkipToContent = memo(SkipToContent);\nMemoizedSkipToContent.displayName = \"SkipToContent\";\n\nexport { MemoizedSkipToContent as SkipToContent };\n"],"mappings":"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","ignoreList":[]}
@@ -27,6 +27,6 @@ const HamburgerMenuIcon = forwardRef((props, ref) => {
27
27
  });
28
28
  });
29
29
  const MemoizedHamburgerMenuIcon = memo(HamburgerMenuIcon);
30
- MemoizedHamburgerMenuIcon.displayName = "HamburgerMenuIcon::pkg=odyssey&odysseyV=1.58.0";
30
+ MemoizedHamburgerMenuIcon.displayName = "HamburgerMenuIcon::pkg=odyssey&odysseyV=1.59.0";
31
31
  export { MemoizedHamburgerMenuIcon as HamburgerMenuIcon };
32
32
  //# sourceMappingURL=HamburgerMenuIcon.js.map
@@ -62,6 +62,6 @@ const TopNav = ({
62
62
  });
63
63
  };
64
64
  const MemoizedTopNav = memo(TopNav);
65
- MemoizedTopNav.displayName = "TopNav::pkg=odyssey&odysseyV=1.58.0";
65
+ MemoizedTopNav.displayName = "TopNav::pkg=odyssey&odysseyV=1.59.0";
66
66
  export { MemoizedTopNav as TopNav };
67
67
  //# sourceMappingURL=TopNav.js.map
@@ -32,6 +32,6 @@ const TopNavLinksList = ({
32
32
  })
33
33
  });
34
34
  const MemoizedTopNavLinksList = memo(TopNavLinksList);
35
- MemoizedTopNavLinksList.displayName = "TopNavLinksList::pkg=odyssey&odysseyV=1.58.0";
35
+ MemoizedTopNavLinksList.displayName = "TopNavLinksList::pkg=odyssey&odysseyV=1.59.0";
36
36
  export { MemoizedTopNavLinksList as TopNavLinksList };
37
37
  //# sourceMappingURL=TopNavLinksList.js.map
@@ -126,6 +126,6 @@ const TopNavListItem = ({
126
126
  });
127
127
  };
128
128
  const MemoizedTopNavListItem = memo(TopNavListItem);
129
- MemoizedTopNavListItem.displayName = "TopNavListItem::pkg=odyssey&odysseyV=1.58.0";
129
+ MemoizedTopNavListItem.displayName = "TopNavListItem::pkg=odyssey&odysseyV=1.59.0";
130
130
  export { MemoizedTopNavListItem as TopNavListItem };
131
131
  //# sourceMappingURL=TopNavListItem.js.map
@@ -114,6 +114,6 @@ const UiShell = ({
114
114
  });
115
115
  };
116
116
  const MemoizedUiShell = memo(UiShell);
117
- MemoizedUiShell.displayName = "UiShell::pkg=odyssey&odysseyV=1.58.0";
117
+ MemoizedUiShell.displayName = "UiShell::pkg=odyssey&odysseyV=1.59.0";
118
118
  export { MemoizedUiShell as UiShell };
119
119
  //# sourceMappingURL=UiShell.js.map
@@ -65,6 +65,6 @@ const UiShellLogo = ({
65
65
  });
66
66
  };
67
67
  const MemoizedUiShellLogo = memo(UiShellLogo);
68
- MemoizedUiShellLogo.displayName = "UiShellLogo::pkg=odyssey&odysseyV=1.58.0";
68
+ MemoizedUiShellLogo.displayName = "UiShellLogo::pkg=odyssey&odysseyV=1.59.0";
69
69
  export { MemoizedUiShellLogo as UiShellLogo };
70
70
  //# sourceMappingURL=UiShellLogo.js.map
@@ -17,6 +17,7 @@ import { useOdysseyDesignTokens } from "../OdysseyDesignTokensContext.js";
17
17
  import { AppSwitcher } from "./AppSwitcher/AppSwitcher.js";
18
18
  import { InnerAppContainer } from "./InnerAppContainer.js";
19
19
  import { SideNav } from "./SideNav/SideNav.js";
20
+ import { SkipToContent } from "./SkipToContent.js";
20
21
  import { TopNav } from "./TopNav/TopNav.js";
21
22
  import { TURN_OFF_APP_SWITCHER } from "./uiShellContentTypes.js";
22
23
  import { useUiShellContext } from "./UiShellProvider.js";
@@ -96,7 +97,9 @@ const WideUiShellContent = ({
96
97
  return _jsxs(StyledShellContainer, {
97
98
  odysseyDesignTokens: odysseyDesignTokens,
98
99
  ref: parentContainerRef,
99
- children: [_jsx(StyledBannersContainer, {
100
+ children: [_jsx(SkipToContent, {
101
+ appElement: appElement
102
+ }), _jsx(StyledBannersContainer, {
100
103
  children: optionalComponents?.banners
101
104
  }), _jsxs(StyledAppSwitcherContainer, {
102
105
  children: [initialVisibleSections?.includes("AppSwitcher") && !appSwitcherProps && _jsx(ErrorBoundary, {
@@ -167,6 +170,6 @@ const WideUiShellContent = ({
167
170
  });
168
171
  };
169
172
  const MemoizedWideUiShellContent = memo(WideUiShellContent);
170
- MemoizedWideUiShellContent.displayName = "WideUiShellContent::pkg=odyssey&odysseyV=1.58.0";
173
+ MemoizedWideUiShellContent.displayName = "WideUiShellContent::pkg=odyssey&odysseyV=1.59.0";
171
174
  export { MemoizedWideUiShellContent as WideUiShellContent };
172
175
  //# sourceMappingURL=WideUiShellContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WideUiShellContent.js","names":["styled","memo","useRef","ErrorBoundary","useOdysseyDesignTokens","AppSwitcher","InnerAppContainer","SideNav","TopNav","TURN_OFF_APP_SWITCHER","useUiShellContext","emptySideNavItems","useMatchAppElementToUiShellAppArea","useScrollState","jsx","_jsx","jsxs","_jsxs","appSwitcherDefaultAppIcons","StyledAppContainer","shouldForwardProp","prop","appBackgroundColor","backgroundColor","gridArea","position","StyledAppSwitcherContainer","StyledBannersContainer","StyledSideNavContainer","StyledShellContainer","odysseyDesignTokens","HueNeutral50","display","gridGap","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","height","width","StyledTopNavContainer","WideUiShellContent","appElement","appElementScrollingMode","appSwitcherProps","hasStandardAppContentPadding","hasSideNavProps","initialVisibleSections","onError","console","error","optionalComponents","sideNavProps","topNavProps","uiShellContext","isContentScrolled","sideNavContainerRef","topNavContainerRef","uiShellAppAreaRef","parentContainerRef","paddingMode","uiShellResizableRefs","ref","children","banners","includes","fallback","appIcons","isLoading","selectedAppName","sideNavItems","hasCustomFooter","sideNavFooter","footerComponent","footerItems","undefined","leftSideComponent","topNavLeftSide","rightSideComponent","topNavRightSide","tabIndex","MemoizedWideUiShellContent","displayName"],"sources":["../../../src/ui-shell/WideUiShellContent.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport { memo, useRef } from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\n\nimport {\n type DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext.js\";\nimport { AppSwitcher } from \"./AppSwitcher/AppSwitcher.js\";\nimport { AppSwitcherAppIconData } from \"./AppSwitcher/AppSwitcherApp.js\";\nimport { InnerAppContainer } from \"./InnerAppContainer.js\";\nimport { SideNav } from \"./SideNav/SideNav.js\";\nimport { TopNav } from \"./TopNav/TopNav.js\";\nimport {\n TURN_OFF_APP_SWITCHER,\n UiShellContentProps,\n UiShellNavComponentProps,\n} from \"./uiShellContentTypes.js\";\nimport { UiShellColors, useUiShellContext } from \"./UiShellProvider.js\";\nimport { emptySideNavItems } from \"./uiShellSharedConstants.js\";\nimport { useMatchAppElementToUiShellAppArea } from \"./useMatchAppElementToUiShellAppArea.js\";\nimport { useScrollState } from \"./useScrollState.js\";\n\nconst appSwitcherDefaultAppIcons = [] satisfies AppSwitcherAppIconData[];\n\nconst StyledAppContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"appBackgroundColor\" && prop !== \"odysseyDesignTokens\",\n})<{\n appBackgroundColor?: UiShellColors[\"appBackgroundColor\"];\n}>(({ appBackgroundColor }) => ({\n backgroundColor: appBackgroundColor,\n gridArea: \"app-content\",\n position: \"relative\",\n}));\n\nconst StyledAppSwitcherContainer = styled(\"div\")({\n gridArea: \"app-switcher\",\n});\n\nconst StyledBannersContainer = styled(\"div\")({\n gridArea: \"banners\",\n});\n\nconst StyledSideNavContainer = styled(\"div\")({\n gridArea: \"side-nav\",\n});\n\nconst StyledShellContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n backgroundColor: odysseyDesignTokens.HueNeutral50,\n display: \"grid\",\n gridGap: 0,\n gridTemplateAreas: `\n \"banners banners banners\"\n \"app-switcher side-nav top-nav\"\n \"app-switcher side-nav app-content\"\n `,\n gridTemplateColumns: \"auto auto 1fr\",\n gridTemplateRows: \"auto auto 1fr\",\n height: \"100vh\",\n width: \"100vw\",\n}));\n\nconst StyledTopNavContainer = styled(\"div\")({\n gridArea: \"top-nav\",\n});\n\nexport type WideUiShellContentProps = UiShellNavComponentProps &\n UiShellContentProps;\n\n/**\n * Our new Unified Platform UI Shell.\n *\n * This includes the top and side navigation as well as the footer and provides a spot for your app to render into.\n *\n * If an error occurs, this will revert to only showing the app.\n */\nconst WideUiShellContent = ({\n appElement,\n appElementScrollingMode,\n appSwitcherProps,\n hasStandardAppContentPadding = true,\n hasSideNavProps,\n initialVisibleSections = [\"TopNav\", \"SideNav\", \"AppSwitcher\"],\n onError = console.error,\n optionalComponents,\n sideNavProps,\n topNavProps,\n}: WideUiShellContentProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const uiShellContext = useUiShellContext();\n\n const { isContentScrolled } = useScrollState(appElement);\n\n const sideNavContainerRef = useRef<HTMLDivElement>(null);\n const topNavContainerRef = useRef<HTMLDivElement>(null);\n const uiShellAppAreaRef = useRef<HTMLDivElement>(null);\n\n const { parentContainerRef } = useMatchAppElementToUiShellAppArea({\n appElement,\n appElementScrollingMode,\n paddingMode: hasStandardAppContentPadding ? \"comfortable\" : \"none\",\n uiShellAppAreaRef,\n uiShellResizableRefs: [\n sideNavContainerRef,\n topNavContainerRef,\n uiShellAppAreaRef,\n ],\n });\n\n return (\n <StyledShellContainer\n odysseyDesignTokens={odysseyDesignTokens}\n ref={parentContainerRef}\n >\n <StyledBannersContainer>\n {optionalComponents?.banners}\n </StyledBannersContainer>\n\n <StyledAppSwitcherContainer>\n {\n /* If AppSwitcher should be initially visible and we have not yet received props, render AppSwitcher in the loading state */\n initialVisibleSections?.includes(\"AppSwitcher\") &&\n !appSwitcherProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <AppSwitcher\n appIcons={appSwitcherDefaultAppIcons}\n isLoading\n selectedAppName=\"\"\n />\n </ErrorBoundary>\n )\n }\n\n {appSwitcherProps && appSwitcherProps !== TURN_OFF_APP_SWITCHER && (\n <ErrorBoundary fallback={null} onError={onError}>\n <AppSwitcher {...appSwitcherProps} />\n </ErrorBoundary>\n )}\n </StyledAppSwitcherContainer>\n\n <StyledSideNavContainer ref={sideNavContainerRef}>\n {\n /* If SideNav should be initially visible and we have not yet received props, render SideNav with minimal inputs */\n initialVisibleSections?.includes(\"SideNav\") && !hasSideNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <SideNav isLoading sideNavItems={emptySideNavItems} />\n </ErrorBoundary>\n )\n }\n\n {hasSideNavProps && sideNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <SideNav\n {...{\n ...sideNavProps,\n ...(sideNavProps.hasCustomFooter &&\n optionalComponents?.sideNavFooter\n ? {\n footerComponent: optionalComponents.sideNavFooter,\n footerItems: undefined,\n hasCustomFooter: sideNavProps.hasCustomFooter,\n }\n : {\n footerItems: sideNavProps.footerItems,\n hasCustomFooter: false,\n }),\n }}\n />\n </ErrorBoundary>\n )}\n </StyledSideNavContainer>\n\n <StyledTopNavContainer ref={topNavContainerRef}>\n {\n /* If TopNav should be initially visible and we have not yet received props, render Topnav with minimal inputs */\n initialVisibleSections?.includes(\"TopNav\") &&\n topNavProps === undefined && (\n <ErrorBoundary fallback={null} onError={onError}>\n <TopNav\n leftSideComponent={optionalComponents?.topNavLeftSide}\n rightSideComponent={optionalComponents?.topNavRightSide}\n />\n </ErrorBoundary>\n )\n }\n\n {topNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <TopNav\n {...topNavProps}\n leftSideComponent={optionalComponents?.topNavLeftSide}\n rightSideComponent={optionalComponents?.topNavRightSide}\n />\n </ErrorBoundary>\n )}\n </StyledTopNavContainer>\n\n <StyledAppContainer\n appBackgroundColor={uiShellContext?.appBackgroundColor}\n ref={uiShellAppAreaRef}\n tabIndex={0}\n >\n <InnerAppContainer isContentScrolled={isContentScrolled} />\n </StyledAppContainer>\n </StyledShellContainer>\n );\n};\n\nconst MemoizedWideUiShellContent = memo(WideUiShellContent);\nMemoizedWideUiShellContent.displayName = \"WideUiShellContent\";\n\nexport { MemoizedWideUiShellContent as WideUiShellContent };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"WideUiShellContent.js","names":["styled","memo","useRef","ErrorBoundary","useOdysseyDesignTokens","AppSwitcher","InnerAppContainer","SideNav","SkipToContent","TopNav","TURN_OFF_APP_SWITCHER","useUiShellContext","emptySideNavItems","useMatchAppElementToUiShellAppArea","useScrollState","jsx","_jsx","jsxs","_jsxs","appSwitcherDefaultAppIcons","StyledAppContainer","shouldForwardProp","prop","appBackgroundColor","backgroundColor","gridArea","position","StyledAppSwitcherContainer","StyledBannersContainer","StyledSideNavContainer","StyledShellContainer","odysseyDesignTokens","HueNeutral50","display","gridGap","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","height","width","StyledTopNavContainer","WideUiShellContent","appElement","appElementScrollingMode","appSwitcherProps","hasStandardAppContentPadding","hasSideNavProps","initialVisibleSections","onError","console","error","optionalComponents","sideNavProps","topNavProps","uiShellContext","isContentScrolled","sideNavContainerRef","topNavContainerRef","uiShellAppAreaRef","parentContainerRef","paddingMode","uiShellResizableRefs","ref","children","banners","includes","fallback","appIcons","isLoading","selectedAppName","sideNavItems","hasCustomFooter","sideNavFooter","footerComponent","footerItems","undefined","leftSideComponent","topNavLeftSide","rightSideComponent","topNavRightSide","tabIndex","MemoizedWideUiShellContent","displayName"],"sources":["../../../src/ui-shell/WideUiShellContent.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport { memo, useRef } from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\n\nimport {\n type DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext.js\";\nimport { AppSwitcher } from \"./AppSwitcher/AppSwitcher.js\";\nimport { AppSwitcherAppIconData } from \"./AppSwitcher/AppSwitcherApp.js\";\nimport { InnerAppContainer } from \"./InnerAppContainer.js\";\nimport { SideNav } from \"./SideNav/SideNav.js\";\nimport { SkipToContent } from \"./SkipToContent.js\";\nimport { TopNav } from \"./TopNav/TopNav.js\";\nimport {\n TURN_OFF_APP_SWITCHER,\n UiShellContentProps,\n UiShellNavComponentProps,\n} from \"./uiShellContentTypes.js\";\nimport { UiShellColors, useUiShellContext } from \"./UiShellProvider.js\";\nimport { emptySideNavItems } from \"./uiShellSharedConstants.js\";\nimport { useMatchAppElementToUiShellAppArea } from \"./useMatchAppElementToUiShellAppArea.js\";\nimport { useScrollState } from \"./useScrollState.js\";\n\nconst appSwitcherDefaultAppIcons = [] satisfies AppSwitcherAppIconData[];\n\nconst StyledAppContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"appBackgroundColor\" && prop !== \"odysseyDesignTokens\",\n})<{\n appBackgroundColor?: UiShellColors[\"appBackgroundColor\"];\n}>(({ appBackgroundColor }) => ({\n backgroundColor: appBackgroundColor,\n gridArea: \"app-content\",\n position: \"relative\",\n}));\n\nconst StyledAppSwitcherContainer = styled(\"div\")({\n gridArea: \"app-switcher\",\n});\n\nconst StyledBannersContainer = styled(\"div\")({\n gridArea: \"banners\",\n});\n\nconst StyledSideNavContainer = styled(\"div\")({\n gridArea: \"side-nav\",\n});\n\nconst StyledShellContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n backgroundColor: odysseyDesignTokens.HueNeutral50,\n display: \"grid\",\n gridGap: 0,\n gridTemplateAreas: `\n \"banners banners banners\"\n \"app-switcher side-nav top-nav\"\n \"app-switcher side-nav app-content\"\n `,\n gridTemplateColumns: \"auto auto 1fr\",\n gridTemplateRows: \"auto auto 1fr\",\n height: \"100vh\",\n width: \"100vw\",\n}));\n\nconst StyledTopNavContainer = styled(\"div\")({\n gridArea: \"top-nav\",\n});\n\nexport type WideUiShellContentProps = UiShellNavComponentProps &\n UiShellContentProps;\n\n/**\n * Our new Unified Platform UI Shell.\n *\n * This includes the top and side navigation as well as the footer and provides a spot for your app to render into.\n *\n * If an error occurs, this will revert to only showing the app.\n */\nconst WideUiShellContent = ({\n appElement,\n appElementScrollingMode,\n appSwitcherProps,\n hasStandardAppContentPadding = true,\n hasSideNavProps,\n initialVisibleSections = [\"TopNav\", \"SideNav\", \"AppSwitcher\"],\n onError = console.error,\n optionalComponents,\n sideNavProps,\n topNavProps,\n}: WideUiShellContentProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const uiShellContext = useUiShellContext();\n\n const { isContentScrolled } = useScrollState(appElement);\n\n const sideNavContainerRef = useRef<HTMLDivElement>(null);\n const topNavContainerRef = useRef<HTMLDivElement>(null);\n const uiShellAppAreaRef = useRef<HTMLDivElement>(null);\n\n const { parentContainerRef } = useMatchAppElementToUiShellAppArea({\n appElement,\n appElementScrollingMode,\n paddingMode: hasStandardAppContentPadding ? \"comfortable\" : \"none\",\n uiShellAppAreaRef,\n uiShellResizableRefs: [\n sideNavContainerRef,\n topNavContainerRef,\n uiShellAppAreaRef,\n ],\n });\n\n return (\n <StyledShellContainer\n odysseyDesignTokens={odysseyDesignTokens}\n ref={parentContainerRef}\n >\n <SkipToContent appElement={appElement} />\n\n <StyledBannersContainer>\n {optionalComponents?.banners}\n </StyledBannersContainer>\n\n <StyledAppSwitcherContainer>\n {\n /* If AppSwitcher should be initially visible and we have not yet received props, render AppSwitcher in the loading state */\n initialVisibleSections?.includes(\"AppSwitcher\") &&\n !appSwitcherProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <AppSwitcher\n appIcons={appSwitcherDefaultAppIcons}\n isLoading\n selectedAppName=\"\"\n />\n </ErrorBoundary>\n )\n }\n\n {appSwitcherProps && appSwitcherProps !== TURN_OFF_APP_SWITCHER && (\n <ErrorBoundary fallback={null} onError={onError}>\n <AppSwitcher {...appSwitcherProps} />\n </ErrorBoundary>\n )}\n </StyledAppSwitcherContainer>\n\n <StyledSideNavContainer ref={sideNavContainerRef}>\n {\n /* If SideNav should be initially visible and we have not yet received props, render SideNav with minimal inputs */\n initialVisibleSections?.includes(\"SideNav\") && !hasSideNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <SideNav isLoading sideNavItems={emptySideNavItems} />\n </ErrorBoundary>\n )\n }\n\n {hasSideNavProps && sideNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <SideNav\n {...{\n ...sideNavProps,\n ...(sideNavProps.hasCustomFooter &&\n optionalComponents?.sideNavFooter\n ? {\n footerComponent: optionalComponents.sideNavFooter,\n footerItems: undefined,\n hasCustomFooter: sideNavProps.hasCustomFooter,\n }\n : {\n footerItems: sideNavProps.footerItems,\n hasCustomFooter: false,\n }),\n }}\n />\n </ErrorBoundary>\n )}\n </StyledSideNavContainer>\n\n <StyledTopNavContainer ref={topNavContainerRef}>\n {\n /* If TopNav should be initially visible and we have not yet received props, render Topnav with minimal inputs */\n initialVisibleSections?.includes(\"TopNav\") &&\n topNavProps === undefined && (\n <ErrorBoundary fallback={null} onError={onError}>\n <TopNav\n leftSideComponent={optionalComponents?.topNavLeftSide}\n rightSideComponent={optionalComponents?.topNavRightSide}\n />\n </ErrorBoundary>\n )\n }\n\n {topNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <TopNav\n {...topNavProps}\n leftSideComponent={optionalComponents?.topNavLeftSide}\n rightSideComponent={optionalComponents?.topNavRightSide}\n />\n </ErrorBoundary>\n )}\n </StyledTopNavContainer>\n\n <StyledAppContainer\n appBackgroundColor={uiShellContext?.appBackgroundColor}\n ref={uiShellAppAreaRef}\n tabIndex={0}\n >\n <InnerAppContainer isContentScrolled={isContentScrolled} />\n </StyledAppContainer>\n </StyledShellContainer>\n );\n};\n\nconst MemoizedWideUiShellContent = memo(WideUiShellContent);\nMemoizedWideUiShellContent.displayName = \"WideUiShellContent\";\n\nexport { MemoizedWideUiShellContent as WideUiShellContent };\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.
2
+ * Copyright (c) 2026-present, Okta, Inc. and/or its affiliates. All rights reserved.
3
3
  * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
4
4
  *
5
5
  * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
@@ -16,6 +16,7 @@ export * from "./NarrowUiShellContent.js";
16
16
  export * from "./renderUiShell.js";
17
17
  export * from "./SideNav/SideNav.js";
18
18
  export * from "./SideNav/types.js";
19
+ export * from "./SkipToContent.js";
19
20
  export * from "./TopNav/TopNav.js";
20
21
  export * from "./uiShellContentTypes.js";
21
22
  export * from "./UiShellLogo.js";