@okta/odyssey-react-mui 1.45.0 → 1.47.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1206) hide show
  1. package/dist/assets/Accordion-BUumLSm9.js +1 -0
  2. package/dist/assets/Accordion.stories-CaMgAnYN.js +85 -0
  3. package/dist/assets/AccordionSummary-0jrOTJTD.js +1 -0
  4. package/dist/assets/AdapterLuxon-0NB_ajTr.js +1 -0
  5. package/dist/assets/AlertTitle-BbBpDTwd.js +1 -0
  6. package/dist/assets/{AppSwitcher-D7UlQ3S8.js → AppSwitcher-B7j0xavZ.js} +2 -2
  7. package/dist/assets/AppSwitcher.stories-BqeExztr.js +100 -0
  8. package/dist/assets/AppTile _labs_.stories-uDhyBCfD.js +136 -0
  9. package/dist/assets/ArrowDropDown-LYMnJjPD.js +1 -0
  10. package/dist/assets/ArrowRight-Bi2Pswgc.js +1 -0
  11. package/dist/assets/Autocomplete-CXy6JKKy.js +1 -0
  12. package/dist/assets/Autocomplete-DD8JT6Eb.js +1 -0
  13. package/dist/assets/{Autocomplete.stories-CCtQosYH.js → Autocomplete.stories-DjkuAafz.js} +3 -3
  14. package/dist/assets/{Badge-DL9N0uiE.js → Badge-C6SBtLt7.js} +1 -1
  15. package/dist/assets/Banner-itG3HAaL.js +1 -0
  16. package/dist/assets/Banner.stories-o2KYQ49p.js +74 -0
  17. package/dist/assets/{BaseButton-B5c4cgt8.js → BaseButton-COF38VLB.js} +1 -1
  18. package/dist/assets/BaseMenuButton-pigMBOEp.js +1 -0
  19. package/dist/assets/{Box-BXOPvc0Q.js → Box-BGpAHVQV.js} +1 -1
  20. package/dist/assets/Box-CWTB5xfE.js +1 -0
  21. package/dist/assets/Box-D2NdOYc2.js +11 -0
  22. package/dist/assets/Box.stories-Bl1v2MtQ.js +38 -0
  23. package/dist/assets/Breadcrumbs-6BEAV_iX.js +1 -0
  24. package/dist/assets/Breadcrumbs-C2ZpdmyC.js +6 -0
  25. package/dist/assets/Breadcrumbs.stories-WwSpw0c-.js +79 -0
  26. package/dist/assets/Bug-CF8uTmAI.js +1 -0
  27. package/dist/assets/{OdysseyProvider-BQyPcEvx.js → Button-B6KDXfay.js} +9 -9
  28. package/dist/assets/Button-CdPi1pZc.js +1 -0
  29. package/dist/assets/{Button-BOzIr8Jh.js → Button-DGmXZ3jw.js} +1 -1
  30. package/dist/assets/Button.stories-DDHyMQ1_.js +271 -0
  31. package/dist/assets/ButtonBase-BAQsCgRq.js +74 -0
  32. package/dist/assets/Calendar-DjJqG0qe.js +1 -0
  33. package/dist/assets/Callout-DyDdgWdc.js +1 -0
  34. package/dist/assets/Callout.stories-nPexHuaO.js +105 -0
  35. package/dist/assets/Card-2fiTHibU.js +8 -0
  36. package/dist/assets/Card-CaY-V3Lt.js +1 -0
  37. package/dist/assets/Card.stories-B_l3D6T0.js +56 -0
  38. package/dist/assets/CardActionArea-BTMPt80M.js +1 -0
  39. package/dist/assets/CardActions-X5bUcMdJ.js +1 -0
  40. package/dist/assets/Checkbox-BCh8HZ37.js +1 -0
  41. package/dist/assets/Checkbox-BVTNXOF7.js +1 -0
  42. package/dist/assets/Checkbox.stories-CQ5I8O9l.js +96 -0
  43. package/dist/assets/{CheckboxGroup-Cgc2chES.js → CheckboxGroup-D-ykWUnV.js} +1 -1
  44. package/dist/assets/CheckboxGroup.stories-B4ljyQRV.js +81 -0
  45. package/dist/assets/ChevronRight-DkL07pJu.js +1 -0
  46. package/dist/assets/ChevronUp-DBzjQ0Vq.js +1 -0
  47. package/dist/assets/Chip-DXaMeATb.js +1 -0
  48. package/dist/assets/CircularProgress-B5_VbcVt.js +28 -0
  49. package/dist/assets/{CircularProgress-Ur28_31H.js → CircularProgress-Dfpt5LAz.js} +1 -1
  50. package/dist/assets/CircularProgress.stories-Daf0R9vA.js +44 -0
  51. package/dist/assets/Clock-Cs7_WjUp.js +1 -0
  52. package/dist/assets/{Close-DA_Sph0R.js → Close-ATS01D1v.js} +1 -1
  53. package/dist/assets/{Code Styling Guidelines-CAzyRuHZ.js → Code Styling Guidelines-KEouIK7B.js } +1 -1
  54. package/dist/assets/Collapse-COoe3Qtd.js +1 -0
  55. package/dist/assets/{Color-YHDXOIA2-CcHVwBQP.js → Color-YHDXOIA2-DQdRRXzu.js} +1 -1
  56. package/dist/assets/{CssBaseline-CUjr0ON2.js → CssBaseline-D-vAj66q.js} +5 -4
  57. package/dist/assets/CssBaseline.stories-BOhXBF5h.js +364 -0
  58. package/dist/assets/Custom Theming-DmPtfg8b.js +136 -0
  59. package/dist/assets/Custom Theming.stories-t0y6qbUN.js +95 -0
  60. package/dist/assets/DataFilters _labs_-blW_3eFm.js +55 -0
  61. package/dist/assets/DataFilters _labs_.stories-D2qt9BDz.js +31 -0
  62. package/dist/assets/DataFilters-49CUFFBF.js +1 -0
  63. package/dist/assets/DataTable _labs_-CJnucUaL.js +41 -0
  64. package/dist/assets/DataTable _labs_.stories-DrwT0H9g.js +21 -0
  65. package/dist/assets/{DataTable-CnCWIOTw.js → DataTable-DeujVhYp.js} +3 -3
  66. package/dist/assets/{DataTable-CkACYzFJ.js → DataTable-Ka-SCcOh.js} +2 -2
  67. package/dist/assets/{DataTable.stories-Db2HEmax.js → DataTable.stories-CaSfkouk.js} +4 -4
  68. package/dist/assets/{DataView _labs_-DZnmSNME.js → DataView _labs_-CqZlEyu1.js } +3 -3
  69. package/dist/assets/DataView _labs_.stories-CXjSXDeF.js +438 -0
  70. package/dist/assets/{DataView-BQBP0FCs.js → DataView-CYkwjPzk.js} +10 -20
  71. package/dist/assets/DataView.stories-DT0ROHOs.js +871 -0
  72. package/dist/assets/DatePicker-C9sNy4fj.js +11 -0
  73. package/dist/assets/DatePicker-txjKmLSi.js +1 -0
  74. package/dist/assets/DatePicker.stories-VLeccVga.js +133 -0
  75. package/dist/assets/DateTimePicker-LSjVE-IM.js +1 -0
  76. package/dist/assets/DateTimePicker.stories-B2SaI9OL.js +158 -0
  77. package/dist/assets/Design Tokens-DrLUPXCc.js +4 -0
  78. package/dist/assets/Dialog-CRuld07G.js +1 -0
  79. package/dist/assets/Dialog.stories-Bm_j9j63.js +201 -0
  80. package/dist/assets/DialogContent-_oGbCJT8.js +1 -0
  81. package/dist/assets/DialogContentText-DU3-VV7L.js +1 -0
  82. package/dist/assets/DialogTitle-DyO9kr6R.js +1 -0
  83. package/dist/assets/Divider-DsFAYUeD.js +1 -0
  84. package/dist/assets/{DocsRenderer-CFRXHY34-DEwq8OPY.js → DocsRenderer-CFRXHY34-IKzmQUB4.js} +1 -1
  85. package/dist/assets/Documentation-BrTRsPbe.js +1 -0
  86. package/dist/assets/Download-CnpAgqy2.js +1 -0
  87. package/dist/assets/Drawer-CwxKxBTE.js +27 -0
  88. package/dist/assets/Drawer-DEqB4KYp.js +1 -0
  89. package/dist/assets/Drawer.stories-Dvgnp9yd.js +95 -0
  90. package/dist/assets/EmptyState-9pxLjmqH.js +11 -0
  91. package/dist/assets/EmptyState.stories-DK1ZE36w.js +11 -0
  92. package/dist/assets/ExampleButton.stories-C51QbMy5.js +11 -0
  93. package/dist/assets/{Extending Translations-BnOA8j0s.js → Extending Translations-DW0F3Xxk.js } +6 -7
  94. package/dist/assets/ExternalLink-BZ-Yczsk.js +1 -0
  95. package/dist/assets/Fade-CVbWKXvx.js +1 -0
  96. package/dist/assets/Field-lyECanzU.js +11 -0
  97. package/dist/assets/FieldHint-C3tXb7u4.js +1 -0
  98. package/dist/assets/{Fieldset-CmtxEykF.js → Fieldset-C2nSfkpl.js} +2 -2
  99. package/dist/assets/Fieldset.stories-BU8d3fia.js +15 -0
  100. package/dist/assets/FileUploader.stories-C8jSeElw.js +58 -0
  101. package/dist/assets/Filter-Dx8z3DNi.js +1 -0
  102. package/dist/assets/Folder-BfxqGqvt.js +1 -0
  103. package/dist/assets/{Form Field Accessibility-bATJbTW6.js → Form Field Accessibility-Bk715sxq.js } +1 -1
  104. package/dist/assets/Form-BFqw21k4.js +11 -0
  105. package/dist/assets/Form.stories-Clfikd2x.js +69 -0
  106. package/dist/assets/FormControlLabel-BKhSSavj.js +1 -0
  107. package/dist/assets/FormGroup-Cuk9jkbL.js +1 -0
  108. package/dist/assets/FormHelperText-qF3DX-zz.js +1 -0
  109. package/dist/assets/FormLabel-BLj3hKkg.js +1 -0
  110. package/dist/assets/FullScreenOverlay-D_QtB3Yt.js +11 -0
  111. package/dist/assets/{Generating Icons-CY4QgHRK.js → Generating Icons-DU5C85Nu.js } +1 -1
  112. package/dist/assets/Globe-Brrqdlv8.js +1 -0
  113. package/dist/assets/Grid-CZMVE6qU.js +1 -0
  114. package/dist/assets/Group-B6q-i_C2.js +1 -0
  115. package/dist/assets/GroupPicker _labs_.stories-CFJvoMQP.js +33 -0
  116. package/dist/assets/Grow-DacPmog-.js +1 -0
  117. package/dist/assets/Hide-DlEWsxsn.js +1 -0
  118. package/dist/assets/Home-BiP4Mg1h.js +1 -0
  119. package/dist/assets/Icon _icons_.stories-BQr18gG9.js +16 -0
  120. package/dist/assets/IconButton-OY9nJWpv.js +1 -0
  121. package/dist/assets/IconWithTooltip _icons_.stories-Ct7hQD2g.js +19 -0
  122. package/dist/assets/IgaComponentsLegacyOdysseyDecorator-28myx5I9.js +175 -0
  123. package/dist/assets/InformationCircle-CE8ruoYu.js +1 -0
  124. package/dist/assets/InputAdornment-D4SsBOPe.js +1 -0
  125. package/dist/assets/InputBase-DSZ9ZgyW.js +2 -0
  126. package/dist/assets/{Installing odyssey-react-mui-FI77Ty6y.js → Installing odyssey-react-mui-XtugTFlz.js } +1 -1
  127. package/dist/assets/{Introduction-B_2OeBP6.js → Introduction-Bt8Bd0mz.js} +7 -17
  128. package/dist/assets/Layout-BduWITqf.js +11 -0
  129. package/dist/assets/Layout.stories-BaeIV62G.js +285 -0
  130. package/dist/assets/{Legacy Migrations-eiPSj0S4.js → Legacy Migrations-DZ-fx_Jl.js } +1 -1
  131. package/dist/assets/Link-BH0CiguI.js +11 -0
  132. package/dist/assets/Link-BnBknBcu.js +1 -0
  133. package/dist/assets/Link-DI6v1ROk.js +1 -0
  134. package/dist/assets/Link.stories-BY0xRfX5.js +43 -0
  135. package/dist/assets/List-Be7fhh4_.js +1 -0
  136. package/dist/assets/List-DsAZFSEg.js +1 -0
  137. package/dist/assets/ListItem-C8ebNPnP.js +1 -0
  138. package/dist/assets/ListSubheader-Bwc0JItn.js +1 -0
  139. package/dist/assets/Menu-CHod3UUY.js +1 -0
  140. package/dist/assets/MenuButton-CMGgaZPh.js +9 -0
  141. package/dist/assets/{MenuButton-OjJFnmOD.js → MenuButton-Dr4RJoKG.js} +1 -1
  142. package/dist/assets/{MenuButton.stories-C8xNZymc.js → MenuButton.stories-B5Ron3HG.js} +4 -4
  143. package/dist/assets/MenuItem-B0_vCuIq.js +1 -0
  144. package/dist/assets/MenuItem-n-UKDxiu.js +1 -0
  145. package/dist/assets/MenuItem.stories-YEtPNOwc.js +29 -0
  146. package/dist/assets/MenuList-CW8ri5AI.js +1 -0
  147. package/dist/assets/Modal-B1-40kNg.js +1 -0
  148. package/dist/assets/More-D1qrtSvt.js +1 -0
  149. package/dist/assets/NativeSelect.stories-BIRwQlHa.js +173 -0
  150. package/dist/assets/OdysseyProvider-2xjMTEu6.js +66 -0
  151. package/dist/assets/OdysseyProvider-CLb8psrs.js +197 -0
  152. package/dist/assets/OdysseyStorybookThemeDecorator-BRjYVaUu.js +1 -0
  153. package/dist/assets/OdysseyThemeProvider-BBwjgzn2.js +189 -0
  154. package/dist/assets/PageHeader.stories-fXDR4T37.js +17 -0
  155. package/dist/assets/PageHeader.stories-q0-kxFNT.js +329 -0
  156. package/dist/assets/PageTemplate _labs_-D3SkGEbG.js +8 -0
  157. package/dist/assets/PageTemplate _labs_.stories-DtJtMC5B.js +306 -0
  158. package/dist/assets/PageTemplate-mNUP99LO.js +21 -0
  159. package/dist/assets/PageTemplate.stories-H4WnNBj4.js +487 -0
  160. package/dist/assets/PaginatedTable _labs_.stories--9YveFu7.js +65 -0
  161. package/dist/assets/Pagination-D6myvUfo.js +11 -0
  162. package/dist/assets/Pagination.stories-CB4pOr9i.js +17 -0
  163. package/dist/assets/Paper-XsV8SWR9.js +1 -0
  164. package/dist/assets/PasswordField.stories-D5ZRplSl.js +129 -0
  165. package/dist/assets/Picker _labs_.stories-CyZs7sOo.js +18 -0
  166. package/dist/assets/PickerWithOptionAdornment _labs_.stories-DZ_mcN9y.js +70 -0
  167. package/dist/assets/Popper-DjhYeJJy.js +1 -0
  168. package/dist/assets/Portal-GAJY6Au9.js +1 -0
  169. package/dist/assets/Radio-BimAm2in.js +1 -0
  170. package/dist/assets/Radio-tkNaA8vy.js +1 -0
  171. package/dist/assets/Radio.stories-BIH7UBMO.js +63 -0
  172. package/dist/assets/RadioGroup-DP-BtKDw.js +10 -0
  173. package/dist/assets/RadioGroup-DRNCKA-f.js +1 -0
  174. package/dist/assets/RadioGroup-DhVJQTpS.js +1 -0
  175. package/dist/assets/{RadioGroup.stories-BcEJF09Q.js → RadioGroup.stories-DRXPUU0H.js} +7 -7
  176. package/dist/assets/Refresh-GVzSl4pN.js +1 -0
  177. package/dist/assets/ResourceAccessPolicyComponentsStorybookThemeDecorator-IgdZHick.js +1 -0
  178. package/dist/assets/{Right-to-Left (RTL)-BK9_DI66.js → Right-to-Left (RTL)-DyJ58shp.js } +1 -1
  179. package/dist/assets/{ScreenReaderText-vq7_Ob_I.js → ScreenReaderText-CM78bF1y.js} +1 -1
  180. package/dist/assets/{ScreenReaderText-DCDUyE9Y.js → ScreenReaderText-CqMaDm6f.js} +1 -1
  181. package/dist/assets/ScreenReaderText.stories-CpsTRHeF.js +8 -0
  182. package/dist/assets/Search-CkfJXFe5.js +1 -0
  183. package/dist/assets/{SearchDropdown _labs_.stories-CYbt2vgf.js → SearchDropdown _labs_.stories-BQPhsSku.js } +3 -3
  184. package/dist/assets/SearchField-CYM6nbh5.js +1 -0
  185. package/dist/assets/SearchField.stories-C95LqZ5d.js +37 -0
  186. package/dist/assets/Select-9yKLDVKS.js +1 -0
  187. package/dist/assets/Select-DJ071lNE.js +15 -0
  188. package/dist/assets/Select.stories-Dv7mWYvh.js +293 -0
  189. package/dist/assets/Server-DjXPiVgb.js +1 -0
  190. package/dist/assets/Settings-CjXK8-N1.js +1 -0
  191. package/dist/assets/Setup-C5eWg4Hp.js +7 -0
  192. package/dist/assets/{Shadow DOM-ErMvgTrT.js → Shadow DOM-CwtnF89G.js } +1 -1
  193. package/dist/assets/Show-BmUFIvXd.js +1 -0
  194. package/dist/assets/SideNav-Bks9RS2j.js +85 -0
  195. package/dist/assets/SideNav-CJ4qafJJ.js +131 -0
  196. package/dist/assets/SideNav.stories-C1fpy9wN.js +207 -0
  197. package/dist/assets/{Skeleton-BJLiCr2o.js → Skeleton-dfR0DjWP.js} +3 -3
  198. package/dist/assets/Snackbar-Cn_gMSEK.js +1 -0
  199. package/dist/assets/Stack-DKhviX3e.js +1 -0
  200. package/dist/assets/Stack.stories-BDHo9eFa.js +1 -0
  201. package/dist/assets/StaticTable _labs_.stories-Dxpy5sLd.js +34 -0
  202. package/dist/assets/{Status-BYBMXN_H.js → Status-BpzpxYZ-.js} +1 -1
  203. package/dist/assets/Status.stories-DLINjRQE.js +66 -0
  204. package/dist/assets/Surface-3Y97A1O8.js +1 -0
  205. package/dist/assets/Switch.stories-pYIYfkr3.js +61 -0
  206. package/dist/assets/SwitchBase-D-uzeIbM.js +1 -0
  207. package/dist/assets/Sync-DFFNrTTV.js +1 -0
  208. package/dist/assets/TabPanel-XF64c5rR.js +1 -0
  209. package/dist/assets/Tabs-DzeBYjfY.js +1 -0
  210. package/dist/assets/{Tabs-BEhcVkzW.js → Tabs-SRLNy8_X.js} +7 -7
  211. package/dist/assets/Tabs.stories-Dtlm8Y9N.js +100 -0
  212. package/dist/assets/{Tag-CjPSrGAL.js → Tag-BgjQI7VM.js} +2 -2
  213. package/dist/assets/Tag.stories-DIlHCDGk.js +96 -0
  214. package/dist/assets/{TagList-BQKiA1TW.js → TagList-DGN86KvF.js} +1 -1
  215. package/dist/assets/TextField-BuwBI2RX.js +1 -0
  216. package/dist/assets/TextField.stories-DL7enA3k.js +149 -0
  217. package/dist/assets/Toast.stories-DO1V8pyh.js +134 -0
  218. package/dist/assets/ToastManager.stories-CmZGqHye.js +22 -0
  219. package/dist/assets/Tooltip-D4AWrTBw.js +1 -0
  220. package/dist/assets/{Tooltip-3088PjcT.js → Tooltip-XQJL1Byd.js} +1 -1
  221. package/dist/assets/Tooltip.stories-s36iDmFy.js +68 -0
  222. package/dist/assets/{TopNav-CWVyy01x.js → TopNav-dZWiR_bv.js} +2 -2
  223. package/dist/assets/TopNav.stories-Dg27-0zA.js +13 -0
  224. package/dist/assets/TransitionGroupContext-DLI0IzWy.js +1 -0
  225. package/dist/assets/Typography-CORddEdk.js +9 -0
  226. package/dist/assets/Typography-D01yctPx.js +607 -0
  227. package/dist/assets/{Typography-CiNRLenM.js → Typography-DfSdXC7o.js} +1 -1
  228. package/dist/assets/Typography-Yf1Zkad_.js +1 -0
  229. package/dist/assets/Typography.stories-Cr7YbFxb.js +73 -0
  230. package/dist/assets/{Typography.stories-DOm50jIe.js → Typography.stories-D-TscJaP.js} +5 -5
  231. package/dist/assets/UiShell.stories-BRpnZ7zi.js +558 -0
  232. package/dist/assets/{UiShellProvider-D1w1Ocw9.js → UiShellProvider-BOM87LOZ.js} +4 -4
  233. package/dist/assets/Upload-CXJBKzcC.js +1 -0
  234. package/dist/assets/User-D6db-Gy0.js +1 -0
  235. package/dist/assets/UserProfile-DqokqHU1.js +11 -0
  236. package/dist/assets/UserProfile.stories-BbvzhbPD.js +14 -0
  237. package/dist/assets/UserProfileMenuButton.stories-CKErfTVM.js +30 -0
  238. package/dist/assets/Video-B1Csvrbu.js +1 -0
  239. package/dist/assets/WorkflowsComponentsStorybookThemeDecorator-COYvO4K8.js +1 -0
  240. package/dist/assets/axe-4JP0vCEZ.js +30 -0
  241. package/dist/{types/OdysseyTranslationProvider.types.d.ts → assets/axeRun-B-LchFqf.js} +2 -5
  242. package/dist/assets/client-ByW5HbEz.js +1 -0
  243. package/dist/assets/colorManipulator-CjGkpVfF.js +1 -0
  244. package/dist/{esm/@types/i18next.d.js → assets/constants-CGUp4oSR.js} +2 -5
  245. package/dist/assets/createStyled-D0LG5-qz.js +1 -0
  246. package/dist/assets/createSvgIcon-DsUj6UQo.js +1 -0
  247. package/dist/assets/dialogActionsClasses-BWrWITLY.js +1 -0
  248. package/dist/assets/emotion-react-jsx-runtime.browser.esm-DcYOMKFp.js +1 -0
  249. package/dist/assets/{entry-preview-4ElqUVRP.js → entry-preview-CklzQ6bB.js} +2 -2
  250. package/dist/assets/{iconUtils-Cxr8mVIA.js → iconUtils-B6sV00nC.js} +1 -1
  251. package/dist/assets/{iframe-C-RQ_TKY.js → iframe-CXLAql3E.js} +2 -2
  252. package/dist/assets/{index-B885ELRa.js → index-B-lxVbXh.js} +1 -1
  253. package/dist/assets/{index-BpVuOoKb.js → index-BqmbiZ7T.js} +3 -3
  254. package/dist/assets/index-BsDcV5Kh.js +1 -0
  255. package/dist/assets/{index-BzN0w9dc.js → index-DRboDwvZ.js} +1 -1
  256. package/dist/assets/index-Dj8r1U9U.js +1 -0
  257. package/dist/assets/{index.esm-D7MwfoQM.js → index.esm-CaIA2ztV.js} +16 -16
  258. package/dist/assets/index.esm-HelN6IAt.js +1 -0
  259. package/dist/assets/{personData-CZJz4n06.js → personData-vW3mumD1.js} +1 -1
  260. package/dist/assets/{personData-Ci-ru1S9.js → personData-zrA1iJih.js} +1 -1
  261. package/dist/assets/{pickerComponentPropsMetadata-C9L3AhmF.js → pickerComponentPropsMetadata-P9x80E4R.js} +3 -3
  262. package/dist/assets/preview-BAx1BwgB.js +1 -0
  263. package/dist/assets/{preview-D_z0Z5cB.js → preview-BaoH-L4j.js} +1 -1
  264. package/dist/assets/{preview-BzLY45Eo.js → preview-BprB3Yzd.js} +2 -2
  265. package/dist/assets/{preview-CeHM5zqH.js → preview-_inBJXZG.js} +2 -2
  266. package/dist/{esm/shadow-dom/index.js → assets/pxToRem-BrMhKUxS.js} +1 -4
  267. package/dist/assets/queryOdysseySelector-CwauhQve.js +187 -0
  268. package/dist/assets/{react-18-CxBTDaIe.js → react-18-u8niHpKc.js} +1 -1
  269. package/dist/assets/renderUiShell.stories-ILWjsAQY.js +854 -0
  270. package/dist/assets/resolveComponentProps-BzfJewMt.js +1 -0
  271. package/dist/assets/tableSortLabelClasses-DtOYtU1J.js +1 -0
  272. package/dist/assets/useAutocomplete-DwWveFvJ.js +11 -0
  273. package/dist/assets/useMobilePicker-5I3ooa1D.js +6 -0
  274. package/dist/assets/useOdysseyDateFields-Cq2BZNiB.js +61 -0
  275. package/dist/assets/{useScrollIndication-BJW9jXaC.js → useScrollIndication-C4t86M0g.js} +3 -3
  276. package/dist/assets/useSlot-CaOQD_17.js +1 -0
  277. package/dist/assets/useThemeProps-Bfa1XAV-.js +1 -0
  278. package/dist/assets/useThemeProps-D4857Xca.js +1 -0
  279. package/dist/assets/utilities.esm-DpQ0TZP_.js +5 -0
  280. package/dist/assets/utils-DkZjDCLm.js +1 -0
  281. package/dist/assets/v4-CtRu48qb.js +1 -0
  282. package/dist/cjs/Autocomplete.cjs +3 -33
  283. package/dist/cjs/Autocomplete.cjs.map +1 -1
  284. package/dist/cjs/Banner.cjs +2 -2
  285. package/dist/cjs/Banner.cjs.map +1 -1
  286. package/dist/cjs/Breadcrumbs.cjs +2 -2
  287. package/dist/cjs/Breadcrumbs.cjs.map +1 -1
  288. package/dist/cjs/Callout.cjs +3 -27
  289. package/dist/cjs/Callout.cjs.map +1 -1
  290. package/dist/cjs/Card.cjs +2 -2
  291. package/dist/cjs/Card.cjs.map +1 -1
  292. package/dist/cjs/Checkbox.cjs +14 -12
  293. package/dist/cjs/Checkbox.cjs.map +1 -1
  294. package/dist/cjs/DataTable/DataTable.cjs +2 -2
  295. package/dist/cjs/DataTable/DataTable.cjs.map +1 -1
  296. package/dist/cjs/DataTable/DataTableRowActions.cjs +6 -6
  297. package/dist/cjs/DataTable/DataTableRowActions.cjs.map +1 -1
  298. package/dist/cjs/DataTable/DataTableSettings.cjs +2 -2
  299. package/dist/cjs/DataTable/DataTableSettings.cjs.map +1 -1
  300. package/dist/cjs/DataTable/useRowReordering.cjs +2 -2
  301. package/dist/cjs/DataTable/useRowReordering.cjs.map +1 -1
  302. package/dist/cjs/DatePickers/DateField.cjs +2 -2
  303. package/dist/cjs/DatePickers/DateField.cjs.map +1 -1
  304. package/dist/cjs/DatePickers/DateFieldActionBar.cjs +2 -2
  305. package/dist/cjs/DatePickers/DateFieldActionBar.cjs.map +1 -1
  306. package/dist/cjs/DatePickers/DatePicker.cjs +2 -2
  307. package/dist/cjs/DatePickers/DatePicker.cjs.map +1 -1
  308. package/dist/cjs/DatePickers/useDateFieldsTranslations.cjs +2 -2
  309. package/dist/cjs/DatePickers/useDateFieldsTranslations.cjs.map +1 -1
  310. package/dist/cjs/DatePickers/useOdysseyDateFields.cjs +2 -2
  311. package/dist/cjs/DatePickers/useOdysseyDateFields.cjs.map +1 -1
  312. package/dist/cjs/Dialog.cjs +34 -31
  313. package/dist/cjs/Dialog.cjs.map +1 -1
  314. package/dist/cjs/Drawer.cjs +8 -4
  315. package/dist/cjs/Drawer.cjs.map +1 -1
  316. package/dist/cjs/Field.cjs +2 -2
  317. package/dist/cjs/Field.cjs.map +1 -1
  318. package/dist/cjs/FieldError.cjs +2 -2
  319. package/dist/cjs/FieldError.cjs.map +1 -1
  320. package/dist/cjs/FieldLabel.cjs +2 -2
  321. package/dist/cjs/FieldLabel.cjs.map +1 -1
  322. package/dist/cjs/FileUploader/FileUploadPreview.cjs +2 -2
  323. package/dist/cjs/FileUploader/FileUploadPreview.cjs.map +1 -1
  324. package/dist/cjs/FileUploader/FileUploader.cjs +2 -2
  325. package/dist/cjs/FileUploader/FileUploader.cjs.map +1 -1
  326. package/dist/cjs/FullScreenOverlay.cjs +40 -0
  327. package/dist/cjs/FullScreenOverlay.cjs.map +1 -0
  328. package/dist/cjs/FullScreenOverlayContext.cjs +72 -0
  329. package/dist/cjs/FullScreenOverlayContext.cjs.map +1 -0
  330. package/dist/cjs/OdysseyCacheProvider.cjs +12 -17
  331. package/dist/cjs/OdysseyCacheProvider.cjs.map +1 -1
  332. package/dist/cjs/OdysseyProvider.cjs +18 -10
  333. package/dist/cjs/OdysseyProvider.cjs.map +1 -1
  334. package/dist/cjs/OdysseyThemeProvider.cjs +27 -16
  335. package/dist/cjs/OdysseyThemeProvider.cjs.map +1 -1
  336. package/dist/cjs/OdysseyThemeProviderPropsContext.cjs +44 -0
  337. package/dist/cjs/OdysseyThemeProviderPropsContext.cjs.map +1 -0
  338. package/dist/cjs/Pagination/Pagination.cjs +2 -3
  339. package/dist/cjs/Pagination/Pagination.cjs.map +1 -1
  340. package/dist/cjs/Pagination/usePagination.cjs +2 -2
  341. package/dist/cjs/Pagination/usePagination.cjs.map +1 -1
  342. package/dist/cjs/PasswordField.cjs +2 -2
  343. package/dist/cjs/PasswordField.cjs.map +1 -1
  344. package/dist/cjs/Radio.cjs +22 -20
  345. package/dist/cjs/Radio.cjs.map +1 -1
  346. package/dist/cjs/SearchField.cjs +2 -2
  347. package/dist/cjs/SearchField.cjs.map +1 -1
  348. package/dist/cjs/Select.cjs +1 -37
  349. package/dist/cjs/Select.cjs.map +1 -1
  350. package/dist/cjs/Surface.cjs +3 -3
  351. package/dist/cjs/Surface.cjs.map +1 -1
  352. package/dist/cjs/Switch.cjs +2 -2
  353. package/dist/cjs/Switch.cjs.map +1 -1
  354. package/dist/cjs/Tabs.cjs +1 -21
  355. package/dist/cjs/Tabs.cjs.map +1 -1
  356. package/dist/cjs/Tag.cjs +2 -2
  357. package/dist/cjs/Tag.cjs.map +1 -1
  358. package/dist/cjs/TextField.cjs +1 -26
  359. package/dist/cjs/TextField.cjs.map +1 -1
  360. package/dist/cjs/Toast.cjs +2 -2
  361. package/dist/cjs/Toast.cjs.map +1 -1
  362. package/dist/cjs/__internal.cjs +193 -0
  363. package/dist/cjs/__internal.cjs.map +1 -0
  364. package/dist/cjs/i18n.generated/i18n.cjs +35 -0
  365. package/dist/cjs/i18n.generated/i18n.cjs.map +1 -0
  366. package/dist/cjs/i18n.generated/i18n.resources.cjs +81 -0
  367. package/dist/cjs/i18n.generated/i18n.resources.cjs.map +1 -0
  368. package/dist/{esm/OdysseyTranslationProvider.types.js → cjs/i18n.generated/i18n.types.cjs} +10 -5
  369. package/dist/cjs/i18n.generated/i18n.types.cjs.map +1 -0
  370. package/dist/cjs/index.cjs +49 -30
  371. package/dist/cjs/index.cjs.map +1 -1
  372. package/dist/cjs/labs/DataFilters.cjs +4 -4
  373. package/dist/cjs/labs/DataFilters.cjs.map +1 -1
  374. package/dist/cjs/labs/DataTable.cjs +2 -2
  375. package/dist/cjs/labs/DataTable.cjs.map +1 -1
  376. package/dist/cjs/labs/DataView/BulkActionsMenu.cjs +2 -2
  377. package/dist/cjs/labs/DataView/BulkActionsMenu.cjs.map +1 -1
  378. package/dist/cjs/labs/DataView/DataCard.cjs +2 -2
  379. package/dist/cjs/labs/DataView/DataCard.cjs.map +1 -1
  380. package/dist/cjs/labs/DataView/DataView.cjs +2 -2
  381. package/dist/cjs/labs/DataView/DataView.cjs.map +1 -1
  382. package/dist/cjs/labs/DataView/LayoutSwitcher.cjs +2 -2
  383. package/dist/cjs/labs/DataView/LayoutSwitcher.cjs.map +1 -1
  384. package/dist/cjs/labs/DataView/RowActions.cjs +2 -2
  385. package/dist/cjs/labs/DataView/RowActions.cjs.map +1 -1
  386. package/dist/cjs/labs/DataView/TableLayoutContent.cjs +2 -2
  387. package/dist/cjs/labs/DataView/TableLayoutContent.cjs.map +1 -1
  388. package/dist/cjs/labs/DataView/TableSettings.cjs +2 -2
  389. package/dist/cjs/labs/DataView/TableSettings.cjs.map +1 -1
  390. package/dist/cjs/labs/DataView/fetchData.cjs +2 -2
  391. package/dist/cjs/labs/DataView/fetchData.cjs.map +1 -1
  392. package/dist/cjs/labs/DatePickers/DateTimeField.cjs +2 -2
  393. package/dist/cjs/labs/DatePickers/DateTimeField.cjs.map +1 -1
  394. package/dist/cjs/labs/DatePickers/DateTimePicker.cjs +2 -2
  395. package/dist/cjs/labs/DatePickers/DateTimePicker.cjs.map +1 -1
  396. package/dist/cjs/labs/OdysseyPickers/ComposablePicker.cjs +2 -2
  397. package/dist/cjs/labs/OdysseyPickers/ComposablePicker.cjs.map +1 -1
  398. package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs +4 -0
  399. package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs.map +1 -1
  400. package/dist/cjs/labs/PageTemplate/Layout.cjs +2 -2
  401. package/dist/cjs/labs/PageTemplate/Layout.cjs.map +1 -1
  402. package/dist/cjs/labs/PageTemplate/PageTemplate.cjs.map +1 -1
  403. package/dist/cjs/labs/PaginatedTable.cjs +4 -4
  404. package/dist/cjs/labs/PaginatedTable.cjs.map +1 -1
  405. package/dist/cjs/labs/StaticTable.cjs +2 -2
  406. package/dist/cjs/labs/StaticTable.cjs.map +1 -1
  407. package/dist/cjs/properties/ts/odyssey-react-mui.cjs.map +1 -1
  408. package/dist/cjs/properties/ts/odyssey-react-mui_cs.cjs +5 -0
  409. package/dist/cjs/properties/ts/odyssey-react-mui_cs.cjs.map +1 -1
  410. package/dist/cjs/properties/ts/odyssey-react-mui_da.cjs +5 -0
  411. package/dist/cjs/properties/ts/odyssey-react-mui_da.cjs.map +1 -1
  412. package/dist/cjs/properties/ts/odyssey-react-mui_de.cjs +6 -1
  413. package/dist/cjs/properties/ts/odyssey-react-mui_de.cjs.map +1 -1
  414. package/dist/cjs/properties/ts/odyssey-react-mui_el.cjs +5 -0
  415. package/dist/cjs/properties/ts/odyssey-react-mui_el.cjs.map +1 -1
  416. package/dist/cjs/properties/ts/odyssey-react-mui_es.cjs +5 -0
  417. package/dist/cjs/properties/ts/odyssey-react-mui_es.cjs.map +1 -1
  418. package/dist/cjs/properties/ts/odyssey-react-mui_eu.cjs +5 -0
  419. package/dist/cjs/properties/ts/odyssey-react-mui_eu.cjs.map +1 -1
  420. package/dist/cjs/properties/ts/odyssey-react-mui_fi.cjs +5 -0
  421. package/dist/cjs/properties/ts/odyssey-react-mui_fi.cjs.map +1 -1
  422. package/dist/cjs/properties/ts/odyssey-react-mui_fr.cjs +5 -0
  423. package/dist/cjs/properties/ts/odyssey-react-mui_fr.cjs.map +1 -1
  424. package/dist/cjs/properties/ts/odyssey-react-mui_ht.cjs +5 -0
  425. package/dist/cjs/properties/ts/odyssey-react-mui_ht.cjs.map +1 -1
  426. package/dist/cjs/properties/ts/odyssey-react-mui_hu.cjs +5 -0
  427. package/dist/cjs/properties/ts/odyssey-react-mui_hu.cjs.map +1 -1
  428. package/dist/cjs/properties/ts/odyssey-react-mui_id.cjs +5 -0
  429. package/dist/cjs/properties/ts/odyssey-react-mui_id.cjs.map +1 -1
  430. package/dist/cjs/properties/ts/odyssey-react-mui_it.cjs +5 -0
  431. package/dist/cjs/properties/ts/odyssey-react-mui_it.cjs.map +1 -1
  432. package/dist/cjs/properties/ts/odyssey-react-mui_ja.cjs +5 -0
  433. package/dist/cjs/properties/ts/odyssey-react-mui_ja.cjs.map +1 -1
  434. package/dist/cjs/properties/ts/odyssey-react-mui_ko.cjs +5 -0
  435. package/dist/cjs/properties/ts/odyssey-react-mui_ko.cjs.map +1 -1
  436. package/dist/cjs/properties/ts/odyssey-react-mui_ms.cjs +5 -0
  437. package/dist/cjs/properties/ts/odyssey-react-mui_ms.cjs.map +1 -1
  438. package/dist/cjs/properties/ts/odyssey-react-mui_nb.cjs +5 -0
  439. package/dist/cjs/properties/ts/odyssey-react-mui_nb.cjs.map +1 -1
  440. package/dist/cjs/properties/ts/odyssey-react-mui_nl_NL.cjs +5 -0
  441. package/dist/cjs/properties/ts/odyssey-react-mui_nl_NL.cjs.map +1 -1
  442. package/dist/cjs/properties/ts/odyssey-react-mui_ok_PL.cjs.map +1 -1
  443. package/dist/cjs/properties/ts/odyssey-react-mui_ok_SK.cjs.map +1 -1
  444. package/dist/cjs/properties/ts/odyssey-react-mui_pl.cjs +5 -0
  445. package/dist/cjs/properties/ts/odyssey-react-mui_pl.cjs.map +1 -1
  446. package/dist/cjs/properties/ts/odyssey-react-mui_pt_BR.cjs +5 -0
  447. package/dist/cjs/properties/ts/odyssey-react-mui_pt_BR.cjs.map +1 -1
  448. package/dist/cjs/properties/ts/odyssey-react-mui_ro.cjs +5 -0
  449. package/dist/cjs/properties/ts/odyssey-react-mui_ro.cjs.map +1 -1
  450. package/dist/cjs/properties/ts/odyssey-react-mui_ru.cjs +5 -0
  451. package/dist/cjs/properties/ts/odyssey-react-mui_ru.cjs.map +1 -1
  452. package/dist/cjs/properties/ts/odyssey-react-mui_sv.cjs +5 -0
  453. package/dist/cjs/properties/ts/odyssey-react-mui_sv.cjs.map +1 -1
  454. package/dist/cjs/properties/ts/odyssey-react-mui_th.cjs +5 -0
  455. package/dist/cjs/properties/ts/odyssey-react-mui_th.cjs.map +1 -1
  456. package/dist/cjs/properties/ts/odyssey-react-mui_tr.cjs +5 -0
  457. package/dist/cjs/properties/ts/odyssey-react-mui_tr.cjs.map +1 -1
  458. package/dist/cjs/properties/ts/odyssey-react-mui_uk.cjs +5 -0
  459. package/dist/cjs/properties/ts/odyssey-react-mui_uk.cjs.map +1 -1
  460. package/dist/cjs/properties/ts/odyssey-react-mui_vi.cjs +5 -0
  461. package/dist/cjs/properties/ts/odyssey-react-mui_vi.cjs.map +1 -1
  462. package/dist/cjs/properties/ts/odyssey-react-mui_zh_CN.cjs +5 -0
  463. package/dist/cjs/properties/ts/odyssey-react-mui_zh_CN.cjs.map +1 -1
  464. package/dist/cjs/properties/ts/odyssey-react-mui_zh_TW.cjs +5 -0
  465. package/dist/cjs/properties/ts/odyssey-react-mui_zh_TW.cjs.map +1 -1
  466. package/dist/cjs/test-selectors/AutocompleteTestSelector.cjs +49 -0
  467. package/dist/cjs/test-selectors/AutocompleteTestSelector.cjs.map +1 -0
  468. package/dist/cjs/test-selectors/CalloutTestSelector.cjs +43 -0
  469. package/dist/cjs/test-selectors/CalloutTestSelector.cjs.map +1 -0
  470. package/dist/cjs/test-selectors/SelectTestSelector.cjs +55 -0
  471. package/dist/cjs/test-selectors/SelectTestSelector.cjs.map +1 -0
  472. package/dist/cjs/{OdysseyTranslationProvider.types.cjs → test-selectors/TabsTestSelector.cjs} +23 -4
  473. package/dist/cjs/test-selectors/TabsTestSelector.cjs.map +1 -0
  474. package/dist/cjs/test-selectors/TextFieldTestSelector.cjs +44 -0
  475. package/dist/cjs/test-selectors/TextFieldTestSelector.cjs.map +1 -0
  476. package/dist/cjs/test-selectors/index.cjs +11 -0
  477. package/dist/cjs/test-selectors/index.cjs.map +1 -1
  478. package/dist/cjs/test-selectors/queryOdysseySelector.cjs +10 -10
  479. package/dist/cjs/test-selectors/queryOdysseySelector.cjs.map +1 -1
  480. package/dist/cjs/theme/components.cjs +5 -5
  481. package/dist/cjs/theme/components.cjs.map +1 -1
  482. package/dist/cjs/ui-shell/NarrowUiShellContent.cjs +2 -12
  483. package/dist/cjs/ui-shell/NarrowUiShellContent.cjs.map +1 -1
  484. package/dist/cjs/ui-shell/SideNav/NavAccordion.cjs +20 -15
  485. package/dist/cjs/ui-shell/SideNav/NavAccordion.cjs.map +1 -1
  486. package/dist/cjs/ui-shell/SideNav/SideNav.cjs +137 -136
  487. package/dist/cjs/ui-shell/SideNav/SideNav.cjs.map +1 -1
  488. package/dist/cjs/ui-shell/SideNav/SideNavFooterContent.cjs +2 -2
  489. package/dist/cjs/ui-shell/SideNav/SideNavFooterContent.cjs.map +1 -1
  490. package/dist/cjs/ui-shell/SideNav/SideNavItemContent.cjs +7 -4
  491. package/dist/cjs/ui-shell/SideNav/SideNavItemContent.cjs.map +1 -1
  492. package/dist/cjs/ui-shell/SideNav/SideNavItemContentContext.cjs.map +1 -1
  493. package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs +3 -4
  494. package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs.map +1 -1
  495. package/dist/cjs/ui-shell/SideNav/SideNavSortableList.cjs +47 -0
  496. package/dist/cjs/ui-shell/SideNav/SideNavSortableList.cjs.map +1 -0
  497. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs +2 -2
  498. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs.map +1 -1
  499. package/dist/cjs/ui-shell/SideNav/SortableList/SortableItem.cjs +2 -2
  500. package/dist/cjs/ui-shell/SideNav/SortableList/SortableItem.cjs.map +1 -1
  501. package/dist/cjs/ui-shell/SideNav/SortableList/SortableList.cjs +2 -2
  502. package/dist/cjs/ui-shell/SideNav/SortableList/SortableList.cjs.map +1 -1
  503. package/dist/cjs/ui-shell/SideNav/types.cjs.map +1 -1
  504. package/dist/cjs/ui-shell/UiShell.cjs +4 -4
  505. package/dist/cjs/ui-shell/UiShell.cjs.map +1 -1
  506. package/dist/cjs/ui-shell/WideUiShellContent.cjs +2 -1
  507. package/dist/cjs/ui-shell/WideUiShellContent.cjs.map +1 -1
  508. package/dist/cjs/ui-shell/uiShellContentTypes.cjs +2 -1
  509. package/dist/cjs/ui-shell/uiShellContentTypes.cjs.map +1 -1
  510. package/dist/cjs/{shadow-dom/shadow-dom.cjs → web-component/createShadowDomElements.cjs} +8 -3
  511. package/dist/cjs/web-component/createShadowDomElements.cjs.map +1 -0
  512. package/dist/cjs/web-component/index.cjs +33 -0
  513. package/dist/cjs/web-component/index.cjs.map +1 -1
  514. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs +1 -1
  515. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs.map +1 -1
  516. package/dist/cjs/web-component/removeGlobalStylesFromShadowDom.cjs +35 -0
  517. package/dist/cjs/web-component/removeGlobalStylesFromShadowDom.cjs.map +1 -0
  518. package/dist/cjs/web-component/renderReactInWebComponent.cjs +5 -9
  519. package/dist/cjs/web-component/renderReactInWebComponent.cjs.map +1 -1
  520. package/dist/esm/Autocomplete.js +1 -31
  521. package/dist/esm/Autocomplete.js.map +1 -1
  522. package/dist/esm/Banner.js +1 -1
  523. package/dist/esm/Banner.js.map +1 -1
  524. package/dist/esm/Breadcrumbs.js +1 -1
  525. package/dist/esm/Breadcrumbs.js.map +1 -1
  526. package/dist/esm/Callout.js +1 -25
  527. package/dist/esm/Callout.js.map +1 -1
  528. package/dist/esm/Card.js +1 -1
  529. package/dist/esm/Card.js.map +1 -1
  530. package/dist/esm/Checkbox.js +13 -11
  531. package/dist/esm/Checkbox.js.map +1 -1
  532. package/dist/esm/DataTable/DataTable.js +1 -1
  533. package/dist/esm/DataTable/DataTable.js.map +1 -1
  534. package/dist/esm/DataTable/DataTableRowActions.js +1 -1
  535. package/dist/esm/DataTable/DataTableRowActions.js.map +1 -1
  536. package/dist/esm/DataTable/DataTableSettings.js +1 -1
  537. package/dist/esm/DataTable/DataTableSettings.js.map +1 -1
  538. package/dist/esm/DataTable/useRowReordering.js +1 -1
  539. package/dist/esm/DataTable/useRowReordering.js.map +1 -1
  540. package/dist/esm/DatePickers/DateField.js +1 -1
  541. package/dist/esm/DatePickers/DateField.js.map +1 -1
  542. package/dist/esm/DatePickers/DateFieldActionBar.js +1 -1
  543. package/dist/esm/DatePickers/DateFieldActionBar.js.map +1 -1
  544. package/dist/esm/DatePickers/DatePicker.js +1 -1
  545. package/dist/esm/DatePickers/DatePicker.js.map +1 -1
  546. package/dist/esm/DatePickers/useDateFieldsTranslations.js +1 -1
  547. package/dist/esm/DatePickers/useDateFieldsTranslations.js.map +1 -1
  548. package/dist/esm/DatePickers/useOdysseyDateFields.js +1 -1
  549. package/dist/esm/DatePickers/useOdysseyDateFields.js.map +1 -1
  550. package/dist/esm/Dialog.js +33 -30
  551. package/dist/esm/Dialog.js.map +1 -1
  552. package/dist/esm/Drawer.js +7 -3
  553. package/dist/esm/Drawer.js.map +1 -1
  554. package/dist/esm/Field.js +1 -1
  555. package/dist/esm/Field.js.map +1 -1
  556. package/dist/esm/FieldError.js +1 -1
  557. package/dist/esm/FieldError.js.map +1 -1
  558. package/dist/esm/FieldLabel.js +1 -1
  559. package/dist/esm/FieldLabel.js.map +1 -1
  560. package/dist/esm/FileUploader/FileUploadPreview.js +1 -1
  561. package/dist/esm/FileUploader/FileUploadPreview.js.map +1 -1
  562. package/dist/esm/FileUploader/FileUploader.js +1 -1
  563. package/dist/esm/FileUploader/FileUploader.js.map +1 -1
  564. package/dist/esm/FullScreenOverlay.js +35 -0
  565. package/dist/esm/FullScreenOverlay.js.map +1 -0
  566. package/dist/esm/FullScreenOverlayContext.js +66 -0
  567. package/dist/esm/FullScreenOverlayContext.js.map +1 -0
  568. package/dist/esm/OdysseyCacheProvider.js +12 -17
  569. package/dist/esm/OdysseyCacheProvider.js.map +1 -1
  570. package/dist/esm/OdysseyProvider.js +18 -10
  571. package/dist/esm/OdysseyProvider.js.map +1 -1
  572. package/dist/esm/OdysseyThemeProvider.js +27 -16
  573. package/dist/esm/OdysseyThemeProvider.js.map +1 -1
  574. package/dist/esm/OdysseyThemeProviderPropsContext.js +38 -0
  575. package/dist/esm/OdysseyThemeProviderPropsContext.js.map +1 -0
  576. package/dist/esm/Pagination/Pagination.js +1 -2
  577. package/dist/esm/Pagination/Pagination.js.map +1 -1
  578. package/dist/esm/Pagination/usePagination.js +1 -1
  579. package/dist/esm/Pagination/usePagination.js.map +1 -1
  580. package/dist/esm/PasswordField.js +1 -1
  581. package/dist/esm/PasswordField.js.map +1 -1
  582. package/dist/esm/Radio.js +22 -20
  583. package/dist/esm/Radio.js.map +1 -1
  584. package/dist/esm/SearchField.js +1 -1
  585. package/dist/esm/SearchField.js.map +1 -1
  586. package/dist/esm/Select.js +0 -36
  587. package/dist/esm/Select.js.map +1 -1
  588. package/dist/esm/Surface.js +3 -3
  589. package/dist/esm/Surface.js.map +1 -1
  590. package/dist/esm/Switch.js +1 -1
  591. package/dist/esm/Switch.js.map +1 -1
  592. package/dist/esm/Tabs.js +0 -20
  593. package/dist/esm/Tabs.js.map +1 -1
  594. package/dist/esm/Tag.js +1 -1
  595. package/dist/esm/Tag.js.map +1 -1
  596. package/dist/esm/TextField.js +0 -25
  597. package/dist/esm/TextField.js.map +1 -1
  598. package/dist/esm/Toast.js +1 -1
  599. package/dist/esm/Toast.js.map +1 -1
  600. package/dist/esm/__internal.js +28 -0
  601. package/dist/esm/__internal.js.map +1 -0
  602. package/dist/esm/i18n.generated/i18n.js +25 -0
  603. package/dist/esm/i18n.generated/i18n.js.map +1 -0
  604. package/dist/esm/i18n.generated/i18n.resources.js +75 -0
  605. package/dist/esm/i18n.generated/i18n.resources.js.map +1 -0
  606. package/dist/{types/shadow-dom/index.d.ts → esm/i18n.generated/i18n.types.js} +3 -3
  607. package/dist/esm/i18n.generated/i18n.types.js.map +1 -0
  608. package/dist/esm/index.js +4 -3
  609. package/dist/esm/index.js.map +1 -1
  610. package/dist/esm/labs/DataFilters.js +1 -1
  611. package/dist/esm/labs/DataFilters.js.map +1 -1
  612. package/dist/esm/labs/DataTable.js +1 -1
  613. package/dist/esm/labs/DataTable.js.map +1 -1
  614. package/dist/esm/labs/DataView/BulkActionsMenu.js +1 -1
  615. package/dist/esm/labs/DataView/BulkActionsMenu.js.map +1 -1
  616. package/dist/esm/labs/DataView/DataCard.js +1 -1
  617. package/dist/esm/labs/DataView/DataCard.js.map +1 -1
  618. package/dist/esm/labs/DataView/DataView.js +1 -1
  619. package/dist/esm/labs/DataView/DataView.js.map +1 -1
  620. package/dist/esm/labs/DataView/LayoutSwitcher.js +1 -1
  621. package/dist/esm/labs/DataView/LayoutSwitcher.js.map +1 -1
  622. package/dist/esm/labs/DataView/RowActions.js +1 -1
  623. package/dist/esm/labs/DataView/RowActions.js.map +1 -1
  624. package/dist/esm/labs/DataView/TableLayoutContent.js +1 -1
  625. package/dist/esm/labs/DataView/TableLayoutContent.js.map +1 -1
  626. package/dist/esm/labs/DataView/TableSettings.js +1 -1
  627. package/dist/esm/labs/DataView/TableSettings.js.map +1 -1
  628. package/dist/esm/labs/DataView/fetchData.js +2 -2
  629. package/dist/esm/labs/DataView/fetchData.js.map +1 -1
  630. package/dist/esm/labs/DatePickers/DateTimeField.js +1 -1
  631. package/dist/esm/labs/DatePickers/DateTimeField.js.map +1 -1
  632. package/dist/esm/labs/DatePickers/DateTimePicker.js +1 -1
  633. package/dist/esm/labs/DatePickers/DateTimePicker.js.map +1 -1
  634. package/dist/esm/labs/OdysseyPickers/ComposablePicker.js +1 -1
  635. package/dist/esm/labs/OdysseyPickers/ComposablePicker.js.map +1 -1
  636. package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js +4 -0
  637. package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js.map +1 -1
  638. package/dist/esm/labs/PageTemplate/Layout.js +2 -2
  639. package/dist/esm/labs/PageTemplate/Layout.js.map +1 -1
  640. package/dist/esm/labs/PageTemplate/PageTemplate.js.map +1 -1
  641. package/dist/esm/labs/PaginatedTable.js +1 -1
  642. package/dist/esm/labs/PaginatedTable.js.map +1 -1
  643. package/dist/esm/labs/StaticTable.js +1 -1
  644. package/dist/esm/labs/StaticTable.js.map +1 -1
  645. package/dist/esm/properties/ts/odyssey-react-mui.js.map +1 -1
  646. package/dist/esm/properties/ts/odyssey-react-mui_cs.js +5 -0
  647. package/dist/esm/properties/ts/odyssey-react-mui_cs.js.map +1 -1
  648. package/dist/esm/properties/ts/odyssey-react-mui_da.js +5 -0
  649. package/dist/esm/properties/ts/odyssey-react-mui_da.js.map +1 -1
  650. package/dist/esm/properties/ts/odyssey-react-mui_de.js +6 -1
  651. package/dist/esm/properties/ts/odyssey-react-mui_de.js.map +1 -1
  652. package/dist/esm/properties/ts/odyssey-react-mui_el.js +5 -0
  653. package/dist/esm/properties/ts/odyssey-react-mui_el.js.map +1 -1
  654. package/dist/esm/properties/ts/odyssey-react-mui_es.js +5 -0
  655. package/dist/esm/properties/ts/odyssey-react-mui_es.js.map +1 -1
  656. package/dist/esm/properties/ts/odyssey-react-mui_eu.js +5 -0
  657. package/dist/esm/properties/ts/odyssey-react-mui_eu.js.map +1 -1
  658. package/dist/esm/properties/ts/odyssey-react-mui_fi.js +5 -0
  659. package/dist/esm/properties/ts/odyssey-react-mui_fi.js.map +1 -1
  660. package/dist/esm/properties/ts/odyssey-react-mui_fr.js +5 -0
  661. package/dist/esm/properties/ts/odyssey-react-mui_fr.js.map +1 -1
  662. package/dist/esm/properties/ts/odyssey-react-mui_ht.js +5 -0
  663. package/dist/esm/properties/ts/odyssey-react-mui_ht.js.map +1 -1
  664. package/dist/esm/properties/ts/odyssey-react-mui_hu.js +5 -0
  665. package/dist/esm/properties/ts/odyssey-react-mui_hu.js.map +1 -1
  666. package/dist/esm/properties/ts/odyssey-react-mui_id.js +5 -0
  667. package/dist/esm/properties/ts/odyssey-react-mui_id.js.map +1 -1
  668. package/dist/esm/properties/ts/odyssey-react-mui_it.js +5 -0
  669. package/dist/esm/properties/ts/odyssey-react-mui_it.js.map +1 -1
  670. package/dist/esm/properties/ts/odyssey-react-mui_ja.js +5 -0
  671. package/dist/esm/properties/ts/odyssey-react-mui_ja.js.map +1 -1
  672. package/dist/esm/properties/ts/odyssey-react-mui_ko.js +5 -0
  673. package/dist/esm/properties/ts/odyssey-react-mui_ko.js.map +1 -1
  674. package/dist/esm/properties/ts/odyssey-react-mui_ms.js +5 -0
  675. package/dist/esm/properties/ts/odyssey-react-mui_ms.js.map +1 -1
  676. package/dist/esm/properties/ts/odyssey-react-mui_nb.js +5 -0
  677. package/dist/esm/properties/ts/odyssey-react-mui_nb.js.map +1 -1
  678. package/dist/esm/properties/ts/odyssey-react-mui_nl_NL.js +5 -0
  679. package/dist/esm/properties/ts/odyssey-react-mui_nl_NL.js.map +1 -1
  680. package/dist/esm/properties/ts/odyssey-react-mui_ok_PL.js.map +1 -1
  681. package/dist/esm/properties/ts/odyssey-react-mui_ok_SK.js.map +1 -1
  682. package/dist/esm/properties/ts/odyssey-react-mui_pl.js +5 -0
  683. package/dist/esm/properties/ts/odyssey-react-mui_pl.js.map +1 -1
  684. package/dist/esm/properties/ts/odyssey-react-mui_pt_BR.js +5 -0
  685. package/dist/esm/properties/ts/odyssey-react-mui_pt_BR.js.map +1 -1
  686. package/dist/esm/properties/ts/odyssey-react-mui_ro.js +5 -0
  687. package/dist/esm/properties/ts/odyssey-react-mui_ro.js.map +1 -1
  688. package/dist/esm/properties/ts/odyssey-react-mui_ru.js +5 -0
  689. package/dist/esm/properties/ts/odyssey-react-mui_ru.js.map +1 -1
  690. package/dist/esm/properties/ts/odyssey-react-mui_sv.js +5 -0
  691. package/dist/esm/properties/ts/odyssey-react-mui_sv.js.map +1 -1
  692. package/dist/esm/properties/ts/odyssey-react-mui_th.js +5 -0
  693. package/dist/esm/properties/ts/odyssey-react-mui_th.js.map +1 -1
  694. package/dist/esm/properties/ts/odyssey-react-mui_tr.js +5 -0
  695. package/dist/esm/properties/ts/odyssey-react-mui_tr.js.map +1 -1
  696. package/dist/esm/properties/ts/odyssey-react-mui_uk.js +5 -0
  697. package/dist/esm/properties/ts/odyssey-react-mui_uk.js.map +1 -1
  698. package/dist/esm/properties/ts/odyssey-react-mui_vi.js +5 -0
  699. package/dist/esm/properties/ts/odyssey-react-mui_vi.js.map +1 -1
  700. package/dist/esm/properties/ts/odyssey-react-mui_zh_CN.js +5 -0
  701. package/dist/esm/properties/ts/odyssey-react-mui_zh_CN.js.map +1 -1
  702. package/dist/esm/properties/ts/odyssey-react-mui_zh_TW.js +5 -0
  703. package/dist/esm/properties/ts/odyssey-react-mui_zh_TW.js.map +1 -1
  704. package/dist/esm/test-selectors/AutocompleteTestSelector.js +43 -0
  705. package/dist/esm/test-selectors/AutocompleteTestSelector.js.map +1 -0
  706. package/dist/esm/test-selectors/CalloutTestSelector.js +37 -0
  707. package/dist/esm/test-selectors/CalloutTestSelector.js.map +1 -0
  708. package/dist/esm/test-selectors/SelectTestSelector.js +49 -0
  709. package/dist/esm/test-selectors/SelectTestSelector.js.map +1 -0
  710. package/dist/esm/test-selectors/TabsTestSelector.js +33 -0
  711. package/dist/esm/test-selectors/TabsTestSelector.js.map +1 -0
  712. package/dist/esm/test-selectors/TextFieldTestSelector.js +38 -0
  713. package/dist/esm/test-selectors/TextFieldTestSelector.js.map +1 -0
  714. package/dist/esm/test-selectors/index.js +1 -0
  715. package/dist/esm/test-selectors/index.js.map +1 -1
  716. package/dist/esm/test-selectors/queryOdysseySelector.js +5 -5
  717. package/dist/esm/test-selectors/queryOdysseySelector.js.map +1 -1
  718. package/dist/esm/theme/components.js +5 -5
  719. package/dist/esm/theme/components.js.map +1 -1
  720. package/dist/esm/ui-shell/NarrowUiShellContent.js +3 -13
  721. package/dist/esm/ui-shell/NarrowUiShellContent.js.map +1 -1
  722. package/dist/esm/ui-shell/SideNav/NavAccordion.js +20 -15
  723. package/dist/esm/ui-shell/SideNav/NavAccordion.js.map +1 -1
  724. package/dist/esm/ui-shell/SideNav/SideNav.js +136 -135
  725. package/dist/esm/ui-shell/SideNav/SideNav.js.map +1 -1
  726. package/dist/esm/ui-shell/SideNav/SideNavFooterContent.js +1 -1
  727. package/dist/esm/ui-shell/SideNav/SideNavFooterContent.js.map +1 -1
  728. package/dist/esm/ui-shell/SideNav/SideNavItemContent.js +7 -4
  729. package/dist/esm/ui-shell/SideNav/SideNavItemContent.js.map +1 -1
  730. package/dist/esm/ui-shell/SideNav/SideNavItemContentContext.js.map +1 -1
  731. package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js +3 -4
  732. package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js.map +1 -1
  733. package/dist/esm/ui-shell/SideNav/SideNavSortableList.js +42 -0
  734. package/dist/esm/ui-shell/SideNav/SideNavSortableList.js.map +1 -0
  735. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js +1 -1
  736. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js.map +1 -1
  737. package/dist/esm/ui-shell/SideNav/SortableList/SortableItem.js +1 -1
  738. package/dist/esm/ui-shell/SideNav/SortableList/SortableItem.js.map +1 -1
  739. package/dist/esm/ui-shell/SideNav/SortableList/SortableList.js +1 -1
  740. package/dist/esm/ui-shell/SideNav/SortableList/SortableList.js.map +1 -1
  741. package/dist/esm/ui-shell/SideNav/types.js.map +1 -1
  742. package/dist/esm/ui-shell/UiShell.js +4 -4
  743. package/dist/esm/ui-shell/UiShell.js.map +1 -1
  744. package/dist/esm/ui-shell/WideUiShellContent.js +2 -1
  745. package/dist/esm/ui-shell/WideUiShellContent.js.map +1 -1
  746. package/dist/esm/ui-shell/uiShellContentTypes.js +1 -0
  747. package/dist/esm/ui-shell/uiShellContentTypes.js.map +1 -1
  748. package/dist/esm/{shadow-dom/shadow-dom.js → web-component/createShadowDomElements.js} +8 -3
  749. package/dist/esm/web-component/createShadowDomElements.js.map +1 -0
  750. package/dist/esm/web-component/index.js +3 -0
  751. package/dist/esm/web-component/index.js.map +1 -1
  752. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js +1 -1
  753. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js.map +1 -1
  754. package/dist/esm/web-component/removeGlobalStylesFromShadowDom.js +28 -0
  755. package/dist/esm/web-component/removeGlobalStylesFromShadowDom.js.map +1 -0
  756. package/dist/esm/web-component/renderReactInWebComponent.js +5 -9
  757. package/dist/esm/web-component/renderReactInWebComponent.js.map +1 -1
  758. package/dist/iframe.html +4 -3
  759. package/dist/index.cjs +1 -1
  760. package/dist/index.d.ts +1 -1
  761. package/dist/index.json +1 -1
  762. package/dist/index.mjs +1 -1
  763. package/dist/index.scss +1 -1
  764. package/dist/project.json +1 -1
  765. package/dist/sb-addons/storybook-13/manager-bundle.js +1 -1
  766. package/dist/tsconfig.production.tsbuildinfo +1 -1
  767. package/dist/tsconfig.tsbuildinfo +1 -1
  768. package/dist/types/Autocomplete.d.ts +0 -30
  769. package/dist/types/Autocomplete.d.ts.map +1 -1
  770. package/dist/types/Banner.d.ts.map +1 -1
  771. package/dist/types/Breadcrumbs.d.ts.map +1 -1
  772. package/dist/types/Callout.d.ts +0 -24
  773. package/dist/types/Callout.d.ts.map +1 -1
  774. package/dist/types/Card.d.ts.map +1 -1
  775. package/dist/types/Checkbox.d.ts.map +1 -1
  776. package/dist/types/DataTable/DataTable.d.ts.map +1 -1
  777. package/dist/types/DataTable/DataTableRowActions.d.ts.map +1 -1
  778. package/dist/types/DatePickers/DatePicker.d.ts.map +1 -1
  779. package/dist/types/DatePickers/useDateFieldsTranslations.d.ts.map +1 -1
  780. package/dist/types/DatePickers/useOdysseyDateFields.d.ts.map +1 -1
  781. package/dist/types/Dialog.d.ts.map +1 -1
  782. package/dist/types/Drawer.d.ts.map +1 -1
  783. package/dist/types/Field.d.ts.map +1 -1
  784. package/dist/types/FieldError.d.ts.map +1 -1
  785. package/dist/types/FieldLabel.d.ts.map +1 -1
  786. package/dist/types/FileUploader/FileUploader.d.ts.map +1 -1
  787. package/dist/types/FullScreenOverlay.d.ts +19 -0
  788. package/dist/types/FullScreenOverlay.d.ts.map +1 -0
  789. package/dist/types/FullScreenOverlayContext.d.ts +31 -0
  790. package/dist/types/FullScreenOverlayContext.d.ts.map +1 -0
  791. package/dist/types/NativeSelect.d.ts +1 -1
  792. package/dist/types/OdysseyCacheProvider.d.ts +10 -3
  793. package/dist/types/OdysseyCacheProvider.d.ts.map +1 -1
  794. package/dist/types/OdysseyProvider.d.ts +8 -8
  795. package/dist/types/OdysseyProvider.d.ts.map +1 -1
  796. package/dist/types/OdysseyThemeProvider.d.ts +7 -16
  797. package/dist/types/OdysseyThemeProvider.d.ts.map +1 -1
  798. package/dist/types/OdysseyThemeProviderPropsContext.d.ts +27 -0
  799. package/dist/types/OdysseyThemeProviderPropsContext.d.ts.map +1 -0
  800. package/dist/types/Pagination/Pagination.d.ts +0 -1
  801. package/dist/types/Pagination/Pagination.d.ts.map +1 -1
  802. package/dist/types/Pagination/usePagination.d.ts.map +1 -1
  803. package/dist/types/PasswordField.d.ts.map +1 -1
  804. package/dist/types/Radio.d.ts.map +1 -1
  805. package/dist/types/SearchField.d.ts.map +1 -1
  806. package/dist/types/Select.d.ts +0 -36
  807. package/dist/types/Select.d.ts.map +1 -1
  808. package/dist/types/Surface.d.ts.map +1 -1
  809. package/dist/types/Switch.d.ts.map +1 -1
  810. package/dist/types/Tabs.d.ts +0 -20
  811. package/dist/types/Tabs.d.ts.map +1 -1
  812. package/dist/types/Tag.d.ts.map +1 -1
  813. package/dist/types/TextField.d.ts +0 -25
  814. package/dist/types/TextField.d.ts.map +1 -1
  815. package/dist/types/Toast.d.ts.map +1 -1
  816. package/dist/types/__internal.d.ts +34 -0
  817. package/dist/types/__internal.d.ts.map +1 -0
  818. package/dist/types/i18n.generated/i18n.d.ts +285 -0
  819. package/dist/types/i18n.generated/i18n.d.ts.map +1 -0
  820. package/dist/types/i18n.generated/i18n.resources.d.ts +4199 -0
  821. package/dist/types/{i18n.d.ts.map → i18n.generated/i18n.resources.d.ts.map} +1 -1
  822. package/dist/types/i18n.generated/i18n.types.d.ts +30 -0
  823. package/dist/types/i18n.generated/i18n.types.d.ts.map +1 -0
  824. package/dist/types/index.d.ts +4 -3
  825. package/dist/types/index.d.ts.map +1 -1
  826. package/dist/types/labs/DataTable.d.ts.map +1 -1
  827. package/dist/types/labs/DataView/DataCard.d.ts.map +1 -1
  828. package/dist/types/labs/DataView/RowActions.d.ts.map +1 -1
  829. package/dist/types/labs/DataView/fetchData.d.ts.map +1 -1
  830. package/dist/types/labs/DatePickers/DateTimePicker.d.ts.map +1 -1
  831. package/dist/types/labs/OdysseyPickers/ComposablePicker.d.ts.map +1 -1
  832. package/dist/types/labs/OdysseyPickers/PickerWithOptionAdornment.d.ts.map +1 -1
  833. package/dist/types/labs/PageTemplate/PageTemplate.d.ts.map +1 -1
  834. package/dist/types/labs/PaginatedTable.d.ts.map +1 -1
  835. package/dist/types/labs/StaticTable.d.ts.map +1 -1
  836. package/dist/types/properties/ts/odyssey-react-mui.d.ts +133 -133
  837. package/dist/types/properties/ts/odyssey-react-mui.d.ts.map +1 -1
  838. package/dist/types/properties/ts/odyssey-react-mui_cs.d.ts +133 -128
  839. package/dist/types/properties/ts/odyssey-react-mui_cs.d.ts.map +1 -1
  840. package/dist/types/properties/ts/odyssey-react-mui_da.d.ts +133 -128
  841. package/dist/types/properties/ts/odyssey-react-mui_da.d.ts.map +1 -1
  842. package/dist/types/properties/ts/odyssey-react-mui_de.d.ts +133 -128
  843. package/dist/types/properties/ts/odyssey-react-mui_de.d.ts.map +1 -1
  844. package/dist/types/properties/ts/odyssey-react-mui_el.d.ts +133 -128
  845. package/dist/types/properties/ts/odyssey-react-mui_el.d.ts.map +1 -1
  846. package/dist/types/properties/ts/odyssey-react-mui_es.d.ts +133 -128
  847. package/dist/types/properties/ts/odyssey-react-mui_es.d.ts.map +1 -1
  848. package/dist/types/properties/ts/odyssey-react-mui_eu.d.ts +133 -128
  849. package/dist/types/properties/ts/odyssey-react-mui_eu.d.ts.map +1 -1
  850. package/dist/types/properties/ts/odyssey-react-mui_fi.d.ts +133 -128
  851. package/dist/types/properties/ts/odyssey-react-mui_fi.d.ts.map +1 -1
  852. package/dist/types/properties/ts/odyssey-react-mui_fr.d.ts +133 -128
  853. package/dist/types/properties/ts/odyssey-react-mui_fr.d.ts.map +1 -1
  854. package/dist/types/properties/ts/odyssey-react-mui_ht.d.ts +133 -128
  855. package/dist/types/properties/ts/odyssey-react-mui_ht.d.ts.map +1 -1
  856. package/dist/types/properties/ts/odyssey-react-mui_hu.d.ts +133 -128
  857. package/dist/types/properties/ts/odyssey-react-mui_hu.d.ts.map +1 -1
  858. package/dist/types/properties/ts/odyssey-react-mui_id.d.ts +133 -128
  859. package/dist/types/properties/ts/odyssey-react-mui_id.d.ts.map +1 -1
  860. package/dist/types/properties/ts/odyssey-react-mui_it.d.ts +133 -128
  861. package/dist/types/properties/ts/odyssey-react-mui_it.d.ts.map +1 -1
  862. package/dist/types/properties/ts/odyssey-react-mui_ja.d.ts +133 -128
  863. package/dist/types/properties/ts/odyssey-react-mui_ja.d.ts.map +1 -1
  864. package/dist/types/properties/ts/odyssey-react-mui_ko.d.ts +133 -128
  865. package/dist/types/properties/ts/odyssey-react-mui_ko.d.ts.map +1 -1
  866. package/dist/types/properties/ts/odyssey-react-mui_ms.d.ts +133 -128
  867. package/dist/types/properties/ts/odyssey-react-mui_ms.d.ts.map +1 -1
  868. package/dist/types/properties/ts/odyssey-react-mui_nb.d.ts +133 -128
  869. package/dist/types/properties/ts/odyssey-react-mui_nb.d.ts.map +1 -1
  870. package/dist/types/properties/ts/odyssey-react-mui_nl_NL.d.ts +133 -128
  871. package/dist/types/properties/ts/odyssey-react-mui_nl_NL.d.ts.map +1 -1
  872. package/dist/types/properties/ts/odyssey-react-mui_ok_PL.d.ts +133 -133
  873. package/dist/types/properties/ts/odyssey-react-mui_ok_PL.d.ts.map +1 -1
  874. package/dist/types/properties/ts/odyssey-react-mui_ok_SK.d.ts +133 -133
  875. package/dist/types/properties/ts/odyssey-react-mui_ok_SK.d.ts.map +1 -1
  876. package/dist/types/properties/ts/odyssey-react-mui_pl.d.ts +133 -128
  877. package/dist/types/properties/ts/odyssey-react-mui_pl.d.ts.map +1 -1
  878. package/dist/types/properties/ts/odyssey-react-mui_pt_BR.d.ts +133 -128
  879. package/dist/types/properties/ts/odyssey-react-mui_pt_BR.d.ts.map +1 -1
  880. package/dist/types/properties/ts/odyssey-react-mui_ro.d.ts +133 -128
  881. package/dist/types/properties/ts/odyssey-react-mui_ro.d.ts.map +1 -1
  882. package/dist/types/properties/ts/odyssey-react-mui_ru.d.ts +133 -128
  883. package/dist/types/properties/ts/odyssey-react-mui_ru.d.ts.map +1 -1
  884. package/dist/types/properties/ts/odyssey-react-mui_sv.d.ts +133 -128
  885. package/dist/types/properties/ts/odyssey-react-mui_sv.d.ts.map +1 -1
  886. package/dist/types/properties/ts/odyssey-react-mui_th.d.ts +133 -128
  887. package/dist/types/properties/ts/odyssey-react-mui_th.d.ts.map +1 -1
  888. package/dist/types/properties/ts/odyssey-react-mui_tr.d.ts +133 -128
  889. package/dist/types/properties/ts/odyssey-react-mui_tr.d.ts.map +1 -1
  890. package/dist/types/properties/ts/odyssey-react-mui_uk.d.ts +133 -128
  891. package/dist/types/properties/ts/odyssey-react-mui_uk.d.ts.map +1 -1
  892. package/dist/types/properties/ts/odyssey-react-mui_vi.d.ts +133 -128
  893. package/dist/types/properties/ts/odyssey-react-mui_vi.d.ts.map +1 -1
  894. package/dist/types/properties/ts/odyssey-react-mui_zh_CN.d.ts +133 -128
  895. package/dist/types/properties/ts/odyssey-react-mui_zh_CN.d.ts.map +1 -1
  896. package/dist/types/properties/ts/odyssey-react-mui_zh_TW.d.ts +133 -128
  897. package/dist/types/properties/ts/odyssey-react-mui_zh_TW.d.ts.map +1 -1
  898. package/dist/types/test-selectors/AutocompleteTestSelector.d.ts +42 -0
  899. package/dist/types/test-selectors/AutocompleteTestSelector.d.ts.map +1 -0
  900. package/dist/types/test-selectors/CalloutTestSelector.d.ts +36 -0
  901. package/dist/types/test-selectors/CalloutTestSelector.d.ts.map +1 -0
  902. package/dist/types/test-selectors/SelectTestSelector.d.ts +48 -0
  903. package/dist/types/test-selectors/SelectTestSelector.d.ts.map +1 -0
  904. package/dist/types/test-selectors/TabsTestSelector.d.ts +32 -0
  905. package/dist/types/test-selectors/TabsTestSelector.d.ts.map +1 -0
  906. package/dist/types/test-selectors/TextFieldTestSelector.d.ts +37 -0
  907. package/dist/types/test-selectors/TextFieldTestSelector.d.ts.map +1 -0
  908. package/dist/types/test-selectors/index.d.ts +1 -0
  909. package/dist/types/test-selectors/index.d.ts.map +1 -1
  910. package/dist/types/test-selectors/queryOdysseySelector.d.ts.map +1 -1
  911. package/dist/types/ui-shell/NarrowUiShellContent.d.ts.map +1 -1
  912. package/dist/types/ui-shell/SideNav/NavAccordion.d.ts.map +1 -1
  913. package/dist/types/ui-shell/SideNav/SideNav.d.ts +1 -1
  914. package/dist/types/ui-shell/SideNav/SideNav.d.ts.map +1 -1
  915. package/dist/types/ui-shell/SideNav/SideNavFooterContent.d.ts.map +1 -1
  916. package/dist/types/ui-shell/SideNav/SideNavItemContent.d.ts +2 -1
  917. package/dist/types/ui-shell/SideNav/SideNavItemContent.d.ts.map +1 -1
  918. package/dist/types/ui-shell/SideNav/SideNavItemContentContext.d.ts +1 -0
  919. package/dist/types/ui-shell/SideNav/SideNavItemContentContext.d.ts.map +1 -1
  920. package/dist/types/ui-shell/SideNav/SideNavItemLinkContent.d.ts.map +1 -1
  921. package/dist/types/ui-shell/SideNav/SideNavSortableList.d.ts +41 -0
  922. package/dist/types/ui-shell/SideNav/SideNavSortableList.d.ts.map +1 -0
  923. package/dist/types/ui-shell/SideNav/types.d.ts +13 -2
  924. package/dist/types/ui-shell/SideNav/types.d.ts.map +1 -1
  925. package/dist/types/ui-shell/UiShell.d.ts.map +1 -1
  926. package/dist/types/ui-shell/WideUiShellContent.d.ts.map +1 -1
  927. package/dist/types/ui-shell/uiShellContentTypes.d.ts +4 -1
  928. package/dist/types/ui-shell/uiShellContentTypes.d.ts.map +1 -1
  929. package/dist/types/{shadow-dom/shadow-dom.d.ts → web-component/createShadowDomElements.d.ts} +6 -4
  930. package/dist/types/web-component/createShadowDomElements.d.ts.map +1 -0
  931. package/dist/types/web-component/index.d.ts +3 -0
  932. package/dist/types/web-component/index.d.ts.map +1 -1
  933. package/dist/types/web-component/odysseyWebComponentVersion.generated.d.ts +1 -1
  934. package/dist/types/web-component/removeGlobalStylesFromShadowDom.d.ts +18 -0
  935. package/dist/types/web-component/removeGlobalStylesFromShadowDom.d.ts.map +1 -0
  936. package/dist/types/web-component/renderReactInWebComponent.d.ts +1 -1
  937. package/dist/types/web-component/renderReactInWebComponent.d.ts.map +1 -1
  938. package/package.json +24 -15
  939. package/dist/assets/Accordion-DLG6nIhh.js +0 -1
  940. package/dist/assets/Accordion.stories-VjVp52QD.js +0 -85
  941. package/dist/assets/AccordionSummary-xCoGLMoL.js +0 -1
  942. package/dist/assets/AlertTitle-DlG4YQWR.js +0 -1
  943. package/dist/assets/AppSwitcher.stories-Dv0DHDxk.js +0 -100
  944. package/dist/assets/AppTile _labs_.stories-CgXIqWmJ.js +0 -136
  945. package/dist/assets/ArrowDropDown-bSngWMh1.js +0 -1
  946. package/dist/assets/ArrowRight-DCIAiEpA.js +0 -1
  947. package/dist/assets/Autocomplete-MfScEzbR.js +0 -1
  948. package/dist/assets/Autocomplete-UE4wqxn0.js +0 -1
  949. package/dist/assets/Banner-C66lWD3c.js +0 -1
  950. package/dist/assets/Banner.stories-D6KqnSl2.js +0 -74
  951. package/dist/assets/BaseMenuButton-DbGGXXbP.js +0 -1
  952. package/dist/assets/Box-BCBP3C7Q.js +0 -1
  953. package/dist/assets/Box-C2ekHaOu.js +0 -1
  954. package/dist/assets/Box-C_Qfmw-_.js +0 -11
  955. package/dist/assets/Box.stories-uaYeF2xg.js +0 -38
  956. package/dist/assets/Breadcrumbs-Qzfi3j0j.js +0 -6
  957. package/dist/assets/Breadcrumbs.stories-CHIGnsjh.js +0 -79
  958. package/dist/assets/Bug-m6zinguF.js +0 -1
  959. package/dist/assets/Button-BqwcAVQ-.js +0 -1
  960. package/dist/assets/Button-Cf49fWiK.js +0 -31
  961. package/dist/assets/Button.stories-Db-QptTh.js +0 -271
  962. package/dist/assets/ButtonBase-BqXVk-1q.js +0 -74
  963. package/dist/assets/Calendar-CuqjwSb0.js +0 -1
  964. package/dist/assets/Callout-CaNoXhaj.js +0 -1
  965. package/dist/assets/Callout.stories-D2csAs8g.js +0 -105
  966. package/dist/assets/Card-B5eIV1vH.js +0 -1
  967. package/dist/assets/Card-Bfg-qZM7.js +0 -8
  968. package/dist/assets/Card.stories-BTaeWH4V.js +0 -129
  969. package/dist/assets/CardActionArea-yvoWcAsF.js +0 -1
  970. package/dist/assets/Check-BmyOKfcL.js +0 -1
  971. package/dist/assets/Checkbox-BTj1hXUa.js +0 -1
  972. package/dist/assets/Checkbox-luq82K1t.js +0 -1
  973. package/dist/assets/Checkbox.stories-ChhXQBH_.js +0 -96
  974. package/dist/assets/CheckboxGroup.stories-DpGwHWla.js +0 -81
  975. package/dist/assets/ChevronDown-BnAWuc8V.js +0 -1
  976. package/dist/assets/ChevronRight-BB0bQIRj.js +0 -1
  977. package/dist/assets/ChevronUp-B9JV-jmd.js +0 -1
  978. package/dist/assets/Chip-BOK8DR8m.js +0 -1
  979. package/dist/assets/CircularProgress-DNk4kmx6.js +0 -28
  980. package/dist/assets/CircularProgress.stories-gv9B0XLW.js +0 -44
  981. package/dist/assets/Clock-Byj5V_49.js +0 -1
  982. package/dist/assets/Close-DA7fBExu.js +0 -1
  983. package/dist/assets/CloseCircleFilled-D2aBlgBe.js +0 -1
  984. package/dist/assets/Collapse-P1H1b4lO.js +0 -1
  985. package/dist/assets/CssBaseline-C3xNeK8b.js +0 -1
  986. package/dist/assets/CssBaseline.stories-DgXaUmIC.js +0 -402
  987. package/dist/assets/Custom Theming-CKloJLS_.js +0 -136
  988. package/dist/assets/Custom Theming.stories-BHdYhCs2.js +0 -93
  989. package/dist/assets/DataFilters _labs_-D3S2uNi-.js +0 -55
  990. package/dist/assets/DataFilters _labs_.stories-RwWZVkCe.js +0 -31
  991. package/dist/assets/DataFilters-DVey1xPT.js +0 -1
  992. package/dist/assets/DataTable _labs_-CtXARbkP.js +0 -41
  993. package/dist/assets/DataTable _labs_.stories-U7XFYtR6.js +0 -21
  994. package/dist/assets/DataView _labs_.stories-CusuCHkc.js +0 -438
  995. package/dist/assets/DatePicker-DIRg7n4d.js +0 -1
  996. package/dist/assets/DatePicker.stories-BPWj6DxY.js +0 -143
  997. package/dist/assets/DateTimePicker-CnXcHc5u.js +0 -1
  998. package/dist/assets/DateTimePicker.stories-nLmYctur.js +0 -168
  999. package/dist/assets/DefaultPropsProvider-B7tpShA7.js +0 -9
  1000. package/dist/assets/Design Tokens-BxQ2eYvg.js +0 -4
  1001. package/dist/assets/Dialog-BIM-1Zvj.js +0 -1
  1002. package/dist/assets/Dialog.stories-D2UYs9Hc.js +0 -201
  1003. package/dist/assets/DialogContent-C_FnZ5ZS.js +0 -1
  1004. package/dist/assets/DialogTitle-CLDQZ0bg.js +0 -1
  1005. package/dist/assets/Divider-CsWa3KCo.js +0 -1
  1006. package/dist/assets/Documentation-DM1hawvn.js +0 -1
  1007. package/dist/assets/Download-Cp75oFKP.js +0 -1
  1008. package/dist/assets/Drawer-Dg44iOBm.js +0 -27
  1009. package/dist/assets/Drawer.stories-DRGYC84s.js +0 -95
  1010. package/dist/assets/EmptyState-DQoihCwU.js +0 -11
  1011. package/dist/assets/EmptyState.stories-C8kkt-lH.js +0 -11
  1012. package/dist/assets/ExampleButton.stories-BKxnZulW.js +0 -11
  1013. package/dist/assets/ExternalLink-DTdulgUc.js +0 -1
  1014. package/dist/assets/Field-ilPS333M.js +0 -11
  1015. package/dist/assets/FieldHint-Cv7aMlpU.js +0 -1
  1016. package/dist/assets/Fieldset.stories-CeV3XwQn.js +0 -15
  1017. package/dist/assets/FileUploader.stories-CmC83k5u.js +0 -58
  1018. package/dist/assets/Filter-BAXcmMyf.js +0 -1
  1019. package/dist/assets/Folder-Ddku_ujr.js +0 -1
  1020. package/dist/assets/Form-CBnvE26F.js +0 -11
  1021. package/dist/assets/Form.stories-Eg4GUI1C.js +0 -69
  1022. package/dist/assets/FormControlLabel-CxCmH5hv.js +0 -1
  1023. package/dist/assets/FormGroup-BaCH3e06.js +0 -1
  1024. package/dist/assets/FormHelperText-ZkUAjajs.js +0 -1
  1025. package/dist/assets/FormLabel-BLeax9q3.js +0 -1
  1026. package/dist/assets/GlobalStyles-BxDN_5FT.js +0 -1
  1027. package/dist/assets/Globe--OQ55RD1.js +0 -1
  1028. package/dist/assets/Grid-B2PgWvdd.js +0 -1
  1029. package/dist/assets/Group-W0XqkWVH.js +0 -1
  1030. package/dist/assets/GroupPicker _labs_.stories-CP9ogL4g.js +0 -33
  1031. package/dist/assets/Grow-CIie3qhp.js +0 -1
  1032. package/dist/assets/Hide-RfKmYLNv.js +0 -1
  1033. package/dist/assets/Home-BXMRmOIu.js +0 -1
  1034. package/dist/assets/Icon _icons_.stories-CfG9aDh6.js +0 -16
  1035. package/dist/assets/IconButton-CK9Do7vj.js +0 -1
  1036. package/dist/assets/IconWithTooltip _icons_.stories-BriwOCod.js +0 -19
  1037. package/dist/assets/InformationCircle-B71JRUfK.js +0 -1
  1038. package/dist/assets/InputAdornment-CFgP75Dd.js +0 -1
  1039. package/dist/assets/InputBase--xDu7aWm.js +0 -2
  1040. package/dist/assets/Layout-Bojn6-Uj.js +0 -11
  1041. package/dist/assets/Layout.stories-BN7leK7P.js +0 -217
  1042. package/dist/assets/Link-ClKgpBXG.js +0 -1
  1043. package/dist/assets/Link-DTvs7F4J.js +0 -11
  1044. package/dist/assets/Link.stories-GP1qln9R.js +0 -43
  1045. package/dist/assets/List-0o0OI1E9.js +0 -1
  1046. package/dist/assets/List-W5kRT_jR.js +0 -1
  1047. package/dist/assets/ListContext-C02XM7tn.js +0 -1
  1048. package/dist/assets/ListItem-CcduKzQu.js +0 -1
  1049. package/dist/assets/ListSubheader-DXKE8lW0.js +0 -1
  1050. package/dist/assets/Menu-CGJO1mMf.js +0 -1
  1051. package/dist/assets/MenuButton-DeZSGuxY.js +0 -9
  1052. package/dist/assets/MenuItem-CuP47MJ-.js +0 -1
  1053. package/dist/assets/MenuItem-DjSqFwdt.js +0 -1
  1054. package/dist/assets/MenuItem.stories-Cc5X-FtZ.js +0 -29
  1055. package/dist/assets/MenuList-BboivbXC.js +0 -1
  1056. package/dist/assets/Modal-CW5mOzJG.js +0 -1
  1057. package/dist/assets/More-axx2rGKU.js +0 -1
  1058. package/dist/assets/NativeSelect.stories-D8Y2ITgz.js +0 -173
  1059. package/dist/assets/OdysseyDesignTokensContext-BWQIA5ie.js +0 -11
  1060. package/dist/assets/OdysseyProvider-BjO4GObW.js +0 -280
  1061. package/dist/assets/OdysseyStorybookThemeDecorator-DginBfEq.js +0 -1
  1062. package/dist/assets/OdysseyThemeProvider-aR5shtx6.js +0 -117
  1063. package/dist/assets/PageHeader.stories-CtAENr0_.js +0 -90
  1064. package/dist/assets/PageHeader.stories-WaRXuLcH.js +0 -17
  1065. package/dist/assets/PageTemplate _labs_-CUXvNJxx.js +0 -8
  1066. package/dist/assets/PageTemplate _labs_.stories-BVKInLfu.js +0 -306
  1067. package/dist/assets/PageTemplate-DOXk_uAG.js +0 -21
  1068. package/dist/assets/PaginatedTable _labs_.stories-Bet6WnQV.js +0 -65
  1069. package/dist/assets/Pagination-CgxBDBwQ.js +0 -11
  1070. package/dist/assets/Pagination.stories-7dUsTYEf.js +0 -17
  1071. package/dist/assets/Paper-DbAuDGNI.js +0 -1
  1072. package/dist/assets/PasswordField.stories-Bclv9Lsw.js +0 -129
  1073. package/dist/assets/Picker _labs_.stories-Dzo7T9_p.js +0 -18
  1074. package/dist/assets/PickerWithOptionAdornment _labs_.stories-C1ftphm9.js +0 -70
  1075. package/dist/assets/Popper-CwLH-7YW.js +0 -1
  1076. package/dist/assets/Portal-Bvf2g5iG.js +0 -1
  1077. package/dist/assets/Radio-Bi1_KmSD.js +0 -1
  1078. package/dist/assets/Radio-D85jg1Ri.js +0 -1
  1079. package/dist/assets/Radio.stories-BrLSJa7w.js +0 -63
  1080. package/dist/assets/RadioGroup-6XgStuIE.js +0 -10
  1081. package/dist/assets/RadioGroup-BS6oYUQf.js +0 -1
  1082. package/dist/assets/Refresh-CPgGX1hz.js +0 -1
  1083. package/dist/assets/ScopedCssBaseline-FivWKbYZ.js +0 -1
  1084. package/dist/assets/ScreenReaderText.stories-BZinu6VX.js +0 -8
  1085. package/dist/assets/Search-BvCmvJcV.js +0 -1
  1086. package/dist/assets/SearchField-jc9ws93I.js +0 -1
  1087. package/dist/assets/SearchField.stories-3apxQKjy.js +0 -37
  1088. package/dist/assets/Select-DVJCNQIV.js +0 -1
  1089. package/dist/assets/Select.stories-Dnr0InYf.js +0 -293
  1090. package/dist/assets/Server-F8KLZq7d.js +0 -1
  1091. package/dist/assets/Settings-DjrryuBd.js +0 -1
  1092. package/dist/assets/Show-qQzUH4Sq.js +0 -1
  1093. package/dist/assets/SideNav-CCPZq2Bh.js +0 -85
  1094. package/dist/assets/SideNav-Duwk1--M.js +0 -125
  1095. package/dist/assets/SideNav.stories-CHEyk4wu.js +0 -207
  1096. package/dist/assets/Stack-Ba8l39se.js +0 -1
  1097. package/dist/assets/Stack.stories-CBatf2Aw.js +0 -1
  1098. package/dist/assets/StaticTable _labs_.stories-HuypNvo4.js +0 -34
  1099. package/dist/assets/Status.stories-C3BLGCGc.js +0 -66
  1100. package/dist/assets/SvgIcon-BQAg6Jm7.js +0 -1
  1101. package/dist/assets/Switch.stories-zEk8HMOP.js +0 -61
  1102. package/dist/assets/SwitchBase-Bja5dn-O.js +0 -1
  1103. package/dist/assets/Sync-Bmam4Lr_.js +0 -1
  1104. package/dist/assets/Tabs-Buvkuz1V.js +0 -1
  1105. package/dist/assets/Tabs-ChAj4m0g.js +0 -1
  1106. package/dist/assets/Tabs.stories-BwOqe_a_.js +0 -100
  1107. package/dist/assets/Tag.stories-D1YMwKB7.js +0 -96
  1108. package/dist/assets/TextField-CZ0hstP2.js +0 -1
  1109. package/dist/assets/TextField.stories-BVJr2VmB.js +0 -149
  1110. package/dist/assets/Toast.stories-aIKtHa18.js +0 -134
  1111. package/dist/assets/ToastManager.stories-Bst-XOOh.js +0 -269
  1112. package/dist/assets/Tooltip-B4GIR2eB.js +0 -1
  1113. package/dist/assets/Tooltip.stories-GU5ZWKSu.js +0 -68
  1114. package/dist/assets/TopNav.stories-CIdyN7Ai.js +0 -13
  1115. package/dist/assets/Trans-DZ9nii1x.js +0 -1
  1116. package/dist/assets/TransitionGroup-BBx_tHs0.js +0 -9
  1117. package/dist/assets/TransitionGroupContext-BMO0EZjQ.js +0 -9
  1118. package/dist/assets/TransitionGroupContext-twgBS-Q3.js +0 -1
  1119. package/dist/assets/Typography-BTrM-f_f.js +0 -9
  1120. package/dist/assets/Typography-D7-qxuiy.js +0 -1
  1121. package/dist/assets/UiShell.stories-CcRPnzQe.js +0 -531
  1122. package/dist/assets/Upload-DK3nRIto.js +0 -1
  1123. package/dist/assets/User-BBdPovZN.js +0 -1
  1124. package/dist/assets/UserProfile-xXh984n9.js +0 -11
  1125. package/dist/assets/UserProfile.stories-cf7P_USw.js +0 -14
  1126. package/dist/assets/UserProfileMenuButton.stories-DQvKwLs8.js +0 -30
  1127. package/dist/assets/Video-DytabcyM.js +0 -1
  1128. package/dist/assets/WarningFilled-Y3Vw7n_w.js +0 -1
  1129. package/dist/assets/alertTitleClasses-CSPeaunQ.js +0 -1
  1130. package/dist/assets/assertThisInitialized-B9jnkVVz.js +0 -1
  1131. package/dist/assets/autocompleteClasses-Bi4FgC8v.js +0 -1
  1132. package/dist/assets/axe-UFrR6cCR.js +0 -30
  1133. package/dist/assets/axeRun-BfHtukUP.js +0 -40
  1134. package/dist/assets/buttonBaseClasses-CSPKg76d.js +0 -1
  1135. package/dist/assets/buttonClasses-DtIJBSf4.js +0 -1
  1136. package/dist/assets/checkboxClasses-Dtdq1kQG.js +0 -1
  1137. package/dist/assets/chipClasses-BMWKl3Eu.js +0 -1
  1138. package/dist/assets/client-akVMpN0m.js +0 -1
  1139. package/dist/assets/colorManipulator-O7SU8zMv.js +0 -1
  1140. package/dist/assets/context-D_qJ2zXV.js +0 -1
  1141. package/dist/assets/createSvgIcon-DiC7XVU3.js +0 -1
  1142. package/dist/assets/createTheme-BmPXDA4p.js +0 -8
  1143. package/dist/assets/emotion-react-jsx-runtime.browser.esm-B2sVIsIq.js +0 -1
  1144. package/dist/assets/emotion-styled.browser.esm-Bcn7fuYX.js +0 -1
  1145. package/dist/assets/formControlLabelClasses-BtjP4uib.js +0 -1
  1146. package/dist/assets/formGroupClasses-D9ChLj7o.js +0 -1
  1147. package/dist/assets/formLabelClasses-xMgYguuN.js +0 -1
  1148. package/dist/assets/generateUtilityClasses-DYvjsuMV.js +0 -1
  1149. package/dist/assets/i18n-DmkmAJlT.js +0 -11
  1150. package/dist/assets/i18next-DbMy2do-.js +0 -1
  1151. package/dist/assets/index-CDGerSbe.js +0 -1
  1152. package/dist/assets/index-CpbQl8EB.js +0 -1
  1153. package/dist/assets/index-CtY5BB1N.js +0 -1
  1154. package/dist/assets/inheritsLoose-CWawPfk8.js +0 -1
  1155. package/dist/assets/inputAdornmentClasses-DYNxkEwO.js +0 -1
  1156. package/dist/assets/inputBaseClasses-PAjj3ZBN.js +0 -1
  1157. package/dist/assets/menuItemClasses-DFm3-Sf1.js +0 -1
  1158. package/dist/assets/popper-CMBiYTiD.js +0 -1
  1159. package/dist/assets/preview-B-jDHJEN.js +0 -1
  1160. package/dist/assets/queryOdysseySelector-B27JCf-A.js +0 -151
  1161. package/dist/assets/radioClasses-f3ayyf7y.js +0 -1
  1162. package/dist/assets/resolveComponentProps-DMpKAZvD.js +0 -1
  1163. package/dist/assets/tableRowClasses-inqOIkjd.js +0 -1
  1164. package/dist/assets/tooltipClasses-C74HjonW.js +0 -1
  1165. package/dist/assets/typographyClasses-D8vr2n3l.js +0 -1
  1166. package/dist/assets/useAutocomplete-C7VK9p4p.js +0 -11
  1167. package/dist/assets/useContrastMode-BthoHtLy.js +0 -21
  1168. package/dist/assets/useId-cMcvCE23.js +0 -1
  1169. package/dist/assets/useId-kSseQ0DW.js +0 -1
  1170. package/dist/assets/useMobilePicker-CfUl5sFz.js +0 -6
  1171. package/dist/assets/useOdysseyDateFields-DQkQFY7w.js +0 -61
  1172. package/dist/assets/useSlot-F4Qz2Wzp.js +0 -1
  1173. package/dist/assets/useTheme-C05bJKih.js +0 -1
  1174. package/dist/assets/useThemeProps-BG38P4ul.js +0 -1
  1175. package/dist/assets/useThemeProps-Dy5sAWyz.js +0 -1
  1176. package/dist/assets/useTranslation-vEf1lqoc.js +0 -1
  1177. package/dist/assets/utils-gq6yExow.js +0 -1
  1178. package/dist/assets/v4-BOvFkHkt.js +0 -1
  1179. package/dist/cjs/@types/i18next.d.cjs +0 -4
  1180. package/dist/cjs/@types/i18next.d.cjs.map +0 -1
  1181. package/dist/cjs/@types/properties.d.cjs +0 -2
  1182. package/dist/cjs/@types/properties.d.cjs.map +0 -1
  1183. package/dist/cjs/OdysseyTranslationProvider.cjs +0 -55
  1184. package/dist/cjs/OdysseyTranslationProvider.cjs.map +0 -1
  1185. package/dist/cjs/OdysseyTranslationProvider.types.cjs.map +0 -1
  1186. package/dist/cjs/i18n.cjs +0 -113
  1187. package/dist/cjs/i18n.cjs.map +0 -1
  1188. package/dist/cjs/shadow-dom/index.cjs +0 -17
  1189. package/dist/cjs/shadow-dom/index.cjs.map +0 -1
  1190. package/dist/cjs/shadow-dom/shadow-dom.cjs.map +0 -1
  1191. package/dist/esm/@types/i18next.d.js.map +0 -1
  1192. package/dist/esm/@types/properties.d.js +0 -2
  1193. package/dist/esm/@types/properties.d.js.map +0 -1
  1194. package/dist/esm/OdysseyTranslationProvider.js +0 -48
  1195. package/dist/esm/OdysseyTranslationProvider.js.map +0 -1
  1196. package/dist/esm/OdysseyTranslationProvider.types.js.map +0 -1
  1197. package/dist/esm/i18n.js +0 -100
  1198. package/dist/esm/i18n.js.map +0 -1
  1199. package/dist/esm/shadow-dom/index.js.map +0 -1
  1200. package/dist/esm/shadow-dom/shadow-dom.js.map +0 -1
  1201. package/dist/types/OdysseyTranslationProvider.d.ts +0 -24
  1202. package/dist/types/OdysseyTranslationProvider.d.ts.map +0 -1
  1203. package/dist/types/OdysseyTranslationProvider.types.d.ts.map +0 -1
  1204. package/dist/types/i18n.d.ts +0 -3937
  1205. package/dist/types/shadow-dom/index.d.ts.map +0 -1
  1206. package/dist/types/shadow-dom/shadow-dom.d.ts.map +0 -1
@@ -15,7 +15,7 @@ import { arrayMove } from "@dnd-kit/sortable";
15
15
  import styled from "@emotion/styled";
16
16
  import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
17
17
  import { ErrorBoundary } from "react-error-boundary";
18
- import { useTranslation } from "react-i18next";
18
+ import { useTranslation } from "../../i18n.generated/i18n.js";
19
19
  import { useOdysseyDesignTokens } from "../../OdysseyDesignTokensContext.js";
20
20
  import { OdysseyThemeProvider } from "../../OdysseyThemeProvider.js";
21
21
  import { Overline } from "../../Typography.js";
@@ -28,12 +28,20 @@ import { SideNavFooterContent } from "./SideNavFooterContent.js";
28
28
  import { SideNavHeader } from "./SideNavHeader.js";
29
29
  import { SideNavItemContent, StyledSideNavListItem } from "./SideNavItemContent.js";
30
30
  import { SideNavItemContentContext } from "./SideNavItemContentContext.js";
31
+ import { SideNavSortableList } from "./SideNavSortableList.js";
31
32
  import { SIDE_NAV_TOGGLE_ICON_HALF_SIZE, SIDE_NAV_TOGGLE_ICON_SIZE, SideNavToggleButton } from "./SideNavToggleButton.js";
32
- import { SortableList } from "./SortableList/SortableList.js";
33
33
  import { useIsSideNavCollapsedSessionStorage } from "./useIsSideNavCollapsedSessionStorage.js";
34
34
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
35
35
  export const SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED = 12;
36
36
  export const SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED = 2;
37
+ const flattenNestedItems = items => {
38
+ return items.flatMap(item => {
39
+ if (item.nestedNavItems) {
40
+ return [item, ...flattenNestedItems(item.nestedNavItems)];
41
+ }
42
+ return item;
43
+ });
44
+ };
37
45
  const StyledCollapsibleContent = styled("div", {
38
46
  shouldForwardProp: prop => prop !== "odysseyDesignTokens" && prop !== "isSideNavCollapsed"
39
47
  })(({
@@ -273,6 +281,7 @@ const SideNav = ({
273
281
  isLoading,
274
282
  isObtrusive,
275
283
  logoProps,
284
+ leavesPaddingStart,
276
285
  onCollapse,
277
286
  onExpand,
278
287
  onSort,
@@ -369,7 +378,7 @@ const SideNav = ({
369
378
  }, [sideNavItemsList]);
370
379
  const scrollIntoViewRef = useRef(null);
371
380
  const firstSideNavItemIdWithIsSelected = useMemo(() => {
372
- const flattenedItems = sideNavItemsList.flatMap(sideNavItem => sideNavItem.nestedNavItems ? [sideNavItem, ...sideNavItem.nestedNavItems] : sideNavItem);
381
+ const flattenedItems = flattenNestedItems(sideNavItemsList);
373
382
  const firstItemWithIsSelected = flattenedItems.find(sideNavItem => sideNavItem.isSelected);
374
383
  return firstItemWithIsSelected?.id;
375
384
  }, [sideNavItemsList]);
@@ -379,29 +388,23 @@ const SideNav = ({
379
388
  }
380
389
  }, [firstSideNavItemIdWithIsSelected]);
381
390
  const getRefIfThisIsFirstNodeWithIsSelected = useCallback(itemId => itemId === firstSideNavItemIdWithIsSelected ? scrollIntoViewRef : undefined, [firstSideNavItemIdWithIsSelected]);
382
- const sideNavItemContentProviderValue = useMemo(() => ({
383
- isCompact,
384
- depth: 1
385
- }), [isCompact]);
386
391
  const setSelectedItem = useCallback(selectedItemId => {
387
- const updatedSideNavItems = sideNavItemsList.map(item => {
388
- if (item.id === selectedItemId) {
389
- item.isSelected = true;
390
- } else if (item.isSelected) {
391
- delete item.isSelected;
392
- }
393
- return item.nestedNavItems ? {
394
- ...item,
395
- nestedNavItems: item.nestedNavItems.map(childItem => {
396
- if (childItem.id === selectedItemId) {
397
- childItem.isSelected = true;
398
- } else if (childItem.isSelected) {
399
- delete childItem.isSelected;
400
- }
401
- return childItem;
402
- })
403
- } : item;
404
- });
392
+ const updateNestedSelection = items => {
393
+ return items.map(item => {
394
+ if (item.nestedNavItems) {
395
+ return {
396
+ ...item,
397
+ isSelected: item.id === selectedItemId,
398
+ nestedNavItems: updateNestedSelection(item.nestedNavItems)
399
+ };
400
+ }
401
+ return {
402
+ ...item,
403
+ isSelected: item.id === selectedItemId
404
+ };
405
+ });
406
+ };
407
+ const updatedSideNavItems = updateNestedSelection(sideNavItemsList);
405
408
  updateSideNavItemsList(updatedSideNavItems);
406
409
  if (isCollapsed || isObtrusive) {
407
410
  if (isCollapsible) {
@@ -411,30 +414,117 @@ const SideNav = ({
411
414
  }
412
415
  }
413
416
  }, [isCollapsed, isCollapsible, isObtrusive, onCollapse, sideNavItemsList, uiShellContext]);
414
- const processedSideNavItems = useMemo(() => {
415
- return sideNavItemsList?.map(item => ({
416
- ...item,
417
- childNavItems: item.nestedNavItems?.map(childProps => ({
418
- id: childProps.id,
419
- isSelected: childProps.isSelected,
420
- isDisabled: childProps.isDisabled,
421
- isSortable: childProps.isSortable,
422
- navItem: _jsx(SideNavItemContentContext.Provider, {
423
- value: {
424
- ...sideNavItemContentProviderValue,
425
- depth: 2,
426
- isSortable: item.isSortable
427
- },
417
+ const createAccordionContextValue = useCallback(depth => ({
418
+ depth
419
+ }), []);
420
+ const createLeafItemContextValue = useCallback((depth, isSortable) => ({
421
+ isCompact,
422
+ depth,
423
+ isSortable,
424
+ absolutePaddingStart: leavesPaddingStart
425
+ }), [isCompact, leavesPaddingStart]);
426
+ const renderSideNavItem = (item, depth = 1) => {
427
+ const {
428
+ href,
429
+ id,
430
+ isDefaultExpanded,
431
+ isDisabled,
432
+ isExpanded,
433
+ isSectionHeader,
434
+ label,
435
+ startIcon,
436
+ nestedNavItems,
437
+ isSortable,
438
+ translate
439
+ } = item;
440
+ if (isSectionHeader) {
441
+ return _jsx(ErrorBoundary, {
442
+ fallback: blankElement,
443
+ children: _jsx(StyledSectionHeaderContainer, {
444
+ contrastFontColor: uiShellContext?.sideNavContrastColors?.fontColor,
445
+ id: id,
446
+ odysseyDesignTokens: odysseyDesignTokens,
447
+ children: _jsx(Overline, {
448
+ component: "h3",
449
+ children: label
450
+ })
451
+ })
452
+ }, id);
453
+ } else if (nestedNavItems && nestedNavItems.length > 0) {
454
+ const nestedChildren = _jsx(StyledSideNavListContainer, {
455
+ role: "presentation",
456
+ children: isSortable ? _jsx(SideNavSortableList, {
457
+ depth: depth + 1,
458
+ items: nestedNavItems,
459
+ onChange: setSortedItems,
460
+ parentId: item.id,
461
+ processSideNavItems: processSideNavItems
462
+ }) : processSideNavItems(nestedNavItems, depth + 1).map(item => item.sortableItem.navItem)
463
+ });
464
+ return href ? _jsxs(ErrorBoundary, {
465
+ fallback: blankElement,
466
+ children: [_jsx(SideNavItemContent, {
467
+ ...item,
468
+ href: href,
469
+ onItemSelected: setSelectedItem,
470
+ scrollRef: getRefIfThisIsFirstNodeWithIsSelected(item.id),
471
+ startIcon: item.startIcon
472
+ }), _jsx(StyledSideNavListItem, {
473
+ "aria-disabled": isDisabled,
474
+ disabled: isDisabled,
475
+ id: `${id}-items`,
476
+ odysseyDesignTokens: odysseyDesignTokens,
477
+ children: nestedChildren
478
+ })]
479
+ }, id) : _jsx(ErrorBoundary, {
480
+ fallback: blankElement,
481
+ children: _jsx(StyledSideNavListItem, {
482
+ "aria-disabled": isDisabled,
483
+ disabled: isDisabled,
484
+ id: id,
485
+ odysseyDesignTokens: odysseyDesignTokens,
486
+ children: _jsx(SideNavItemContentContext.Provider, {
487
+ value: createAccordionContextValue(depth),
488
+ children: _jsx(NavAccordion, {
489
+ isCompact: isCompact,
490
+ isDefaultExpanded: isDefaultExpanded,
491
+ isDisabled: isDisabled,
492
+ isExpanded: isExpanded,
493
+ label: label,
494
+ startIcon: startIcon,
495
+ children: nestedChildren
496
+ })
497
+ }, id)
498
+ })
499
+ }, id);
500
+ } else {
501
+ return _jsx(ErrorBoundary, {
502
+ fallback: blankElement,
503
+ children: _jsx(SideNavItemContentContext.Provider, {
504
+ value: createLeafItemContextValue(depth, isSortable),
428
505
  children: _jsx(SideNavItemContent, {
429
- ...childProps,
506
+ ...item,
430
507
  onItemSelected: setSelectedItem,
431
- scrollRef: getRefIfThisIsFirstNodeWithIsSelected(childProps.id),
432
- translate: childProps.translate
508
+ scrollRef: getRefIfThisIsFirstNodeWithIsSelected(id),
509
+ startIcon: startIcon,
510
+ translate: translate
433
511
  })
434
- }, childProps.id)
435
- }))
512
+ }, id)
513
+ }, id);
514
+ }
515
+ };
516
+ const processSideNavItems = (items, depth = 1) => {
517
+ return items?.map(item => ({
518
+ ...item,
519
+ sortableItem: {
520
+ id: item.id,
521
+ isSelected: item.isSelected,
522
+ isDisabled: item.isDisabled,
523
+ isSortable: item.isSortable,
524
+ navItem: renderSideNavItem(item, depth)
525
+ }
436
526
  }));
437
- }, [getRefIfThisIsFirstNodeWithIsSelected, setSelectedItem, sideNavItemContentProviderValue, sideNavItemsList]);
527
+ };
438
528
  const sideNavExpandClickHandler = useCallback(() => {
439
529
  setIsSideNavCollapsed(isSideNavCollapsed => {
440
530
  if (isSideNavCollapsed) {
@@ -520,96 +610,7 @@ const SideNav = ({
520
610
  children: [_jsx(StyledSideNavListContainer, {
521
611
  ref: scrollableContentRef,
522
612
  role: "none",
523
- children: isLoading ? Array(6).fill(null).map((_, index) => _jsx(LoadingItem, {}, index)) : processedSideNavItems?.map(item => {
524
- const {
525
- childNavItems,
526
- href,
527
- id,
528
- isDefaultExpanded,
529
- isDisabled,
530
- isExpanded,
531
- isSectionHeader,
532
- isSortable,
533
- label,
534
- startIcon
535
- } = item;
536
- if (isSectionHeader) {
537
- return _jsx(ErrorBoundary, {
538
- fallback: blankElement,
539
- children: _jsx(StyledSectionHeaderContainer, {
540
- contrastFontColor: uiShellContext?.sideNavContrastColors?.fontColor,
541
- id: id,
542
- odysseyDesignTokens: odysseyDesignTokens,
543
- children: _jsx(Overline, {
544
- component: "h3",
545
- children: label
546
- })
547
- })
548
- }, id);
549
- } else if (childNavItems) {
550
- const nestedChildren = _jsx(StyledSideNavListContainer, {
551
- role: "presentation",
552
- children: isSortable ? _jsx(SortableList, {
553
- items: childNavItems,
554
- onChange: setSortedItems,
555
- parentId: item.id,
556
- renderItem: sortableItem => _jsx(SortableList.Item, {
557
- id: sortableItem.id,
558
- isDisabled: sortableItem.isDisabled,
559
- isSelected: sortableItem.isSelected,
560
- isSortable: sortableItem.isSortable,
561
- children: sortableItem.navItem
562
- })
563
- }) : childNavItems.map(item => item.navItem)
564
- });
565
- return href ? _jsxs(ErrorBoundary, {
566
- fallback: blankElement,
567
- children: [_jsx(SideNavItemContent, {
568
- ...item,
569
- href: href,
570
- onItemSelected: setSelectedItem,
571
- scrollRef: getRefIfThisIsFirstNodeWithIsSelected(item.id),
572
- startIcon: item.startIcon
573
- }), _jsx(StyledSideNavListItem, {
574
- "aria-disabled": isDisabled,
575
- disabled: isDisabled,
576
- id: `${id}-items`,
577
- odysseyDesignTokens: odysseyDesignTokens,
578
- children: nestedChildren
579
- })]
580
- }, id) : _jsx(ErrorBoundary, {
581
- fallback: blankElement,
582
- children: _jsx(StyledSideNavListItem, {
583
- "aria-disabled": isDisabled,
584
- disabled: isDisabled,
585
- id: id,
586
- odysseyDesignTokens: odysseyDesignTokens,
587
- children: _jsx(NavAccordion, {
588
- isCompact: isCompact,
589
- isDefaultExpanded: isDefaultExpanded,
590
- isDisabled: isDisabled,
591
- isExpanded: isExpanded,
592
- label: label,
593
- startIcon: startIcon,
594
- children: nestedChildren
595
- })
596
- })
597
- }, id);
598
- } else {
599
- return _jsx(ErrorBoundary, {
600
- fallback: blankElement,
601
- children: _jsx(SideNavItemContentContext.Provider, {
602
- value: sideNavItemContentProviderValue,
603
- children: _jsx(SideNavItemContent, {
604
- ...item,
605
- onItemSelected: setSelectedItem,
606
- scrollRef: getRefIfThisIsFirstNodeWithIsSelected(item.id),
607
- startIcon: item.startIcon
608
- })
609
- })
610
- }, item.id);
611
- }
612
- })
613
+ children: isLoading ? Array(6).fill(null).map((_, index) => _jsx(LoadingItem, {}, index)) : processSideNavItems(sideNavItemsList).map(item => item.sortableItem.navItem)
613
614
  }), !isLoading && footerItems && !hasCustomFooter && _jsx(StyledSideNavFooter, {
614
615
  odysseyDesignTokens: odysseyDesignTokens,
615
616
  sideNavBackgroundColor: uiShellContext?.sideNavBackgroundColor,
@@ -1 +1 @@
1
- {"version":3,"file":"SideNav.js","names":["arrayMove","styled","memo","useCallback","useEffect","useMemo","useRef","useState","ErrorBoundary","useTranslation","useOdysseyDesignTokens","OdysseyThemeProvider","Overline","useUiShellContext","useMountLifecycleEffect","SIDE_NAV_VISIBILITY_TOGGLE_ICON_POSITION","SIDE_NAV_WIDTH","UI_SHELL_BASE_Z_INDEX","UI_SHELL_OVERLAY_Z_INDEX","useElementAtContainerEdge","NavAccordion","SideNavFooterContent","SideNavHeader","SideNavItemContent","StyledSideNavListItem","SideNavItemContentContext","SIDE_NAV_TOGGLE_ICON_HALF_SIZE","SIDE_NAV_TOGGLE_ICON_SIZE","SideNavToggleButton","SortableList","useIsSideNavCollapsedSessionStorage","jsx","_jsx","jsxs","_jsxs","SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED","SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED","StyledCollapsibleContent","shouldForwardProp","prop","odysseyDesignTokens","isSideNavCollapsed","position","display","gridTemplateColumns","height","transition","TransitionDurationMain","transitionTimingFunction","TransitionTimingMain","overflow","opacity","StyledOpacityTransitionContainer","gridTemplateRows","StyledSideNavContainer","backgroundColor","hasNeighbouringContentAtInlineStart","isAppContentWhiteBackground","isSideNavToggleHighlighted","HueNeutralWhite","width","content","pointerEvents","right","BorderWidthMain","top","userSelect","zIndex","BorderColorPrimaryControl","HueNeutral100","HueNeutral200","transform","borderRightColor","borderRightStyle","BorderStyleMain","borderRightWidth","StyledSideNavToggleButtonContainer","StyledSideNavHeaderContainer","borderColor","hasContentScrolled","flexShrink","borderBottomWidth","borderBottomStyle","borderBottomColor","concat","StyledSideNavListContainer","padding","listStyle","listStyleType","margin","StyledSideNavScrollableContainer","hasBlockStartPadding","overflowY","paddingBlockStart","Spacing2","paddingInline","StyledSectionHeaderContainer","contrastFontColor","color","HueNeutral600","marginBlock","Spacing3","paddingBlock","Spacing1","Spacing4","StyledSideNavFooter","sideNavBackgroundColor","StyledPersistentSideNavFooter","isContentScrollable","transitionProperty","transitionDuration","transitionTiming","boxShadow","StyledSideNavFooterItemsContainer","sideNavContrastColors","flexWrap","alignItems","fontSize","TypographySizeOverline","fontColor","textDecoration","HueNeutral900","StyledLoadingItemContainer","gap","getHasScrollableContent","scrollableContainer","scrollHeight","clientHeight","LoadingItem","children","_Skeleton","variant","SideNav","appName","footerComponent","footerItems","hasCustomFooter","hasSessionStorageState","isCollapsible","isCollapsed","isCompact","isLoading","isObtrusive","logoProps","onCollapse","onExpand","onSort","sideNavItems","setHasContentScrolled","setIsContentScrollable","setIsSideNavToggleHighlighted","sideNavItemsList","updateSideNavItemsList","isSideNavCollapsedLocalState","setIsSideNavCollapsedLocalState","sessionState","isSideNavCollapsedSessionState","setSessionState","setIsSideNavCollapsedSessionState","setIsSideNavCollapsed","uiShellContext","t","scrollableContentRef","resizeObserverRef","intersectionObserverRef","sideNavRef","isAtContainerInlineStart","element","current","monitoringElement","parentElement","blankElement","onMount","onUpdate","updateIsContentScrollable","resizeObserverDebounceTimer","ResizeObserver","cancelAnimationFrame","requestAnimationFrame","observe","IntersectionObserver","entries","isIntersecting","slice","sort","a","b","time","at","root","threshold","ulElement","liElement","Array","from","disconnect","scrollIntoViewRef","firstSideNavItemIdWithIsSelected","flattenedItems","flatMap","sideNavItem","nestedNavItems","firstItemWithIsSelected","find","isSelected","id","scrollIntoView","getRefIfThisIsFirstNodeWithIsSelected","itemId","undefined","sideNavItemContentProviderValue","depth","setSelectedItem","selectedItemId","updatedSideNavItems","map","item","childItem","closeSideNavMenu","processedSideNavItems","childNavItems","childProps","isDisabled","isSortable","navItem","Provider","value","onItemSelected","scrollRef","translate","sideNavExpandClickHandler","sideNavExpandKeyHandler","event","key","code","preventDefault","unsubscribe","subscribeToCloseSideNavMenu","setSortedItems","parentId","activeId","activeIndex","overIndex","sortedSideNavItems","onSideNavToggleButtonHighlight","isHighlighted","appBackgroundColor","ref","ariaControls","clickAreaPadding","onClick","onHighlight","onKeyDown","role","fill","_","index","href","isDefaultExpanded","isExpanded","isSectionHeader","label","startIcon","fallback","component","nestedChildren","items","onChange","renderItem","sortableItem","Item","disabled","MemoizedSideNav","displayName"],"sources":["../../../../src/ui-shell/SideNav/SideNav.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 { UniqueIdentifier } from \"@dnd-kit/core\";\nimport { arrayMove } from \"@dnd-kit/sortable\";\nimport styled from \"@emotion/styled\";\nimport { Skeleton } from \"@mui/material\";\nimport { Property } from \"csstype\";\nimport {\n CSSProperties,\n KeyboardEventHandler,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { useTranslation } from \"react-i18next\";\n\nimport type { SideNavProps } from \"./types.js\";\n\nimport { ContrastColors } from \"../../createContrastColors.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { OdysseyThemeProvider } from \"../../OdysseyThemeProvider.js\";\nimport { Overline } from \"../../Typography.js\";\nimport {\n UiShellColors,\n useUiShellContext,\n} from \"../../ui-shell/UiShellProvider.js\";\nimport { useMountLifecycleEffect } from \"../../useMountLifecycleEffect.js\";\nimport {\n SIDE_NAV_VISIBILITY_TOGGLE_ICON_POSITION,\n SIDE_NAV_WIDTH,\n UI_SHELL_BASE_Z_INDEX,\n UI_SHELL_OVERLAY_Z_INDEX,\n} from \"../uiShellSharedConstants.js\";\nimport { useElementAtContainerEdge } from \"../useElementAtContainerEdge.js\";\nimport { NavAccordion } from \"./NavAccordion.js\";\nimport { SideNavFooterContent } from \"./SideNavFooterContent.js\";\nimport { SideNavHeader } from \"./SideNavHeader.js\";\nimport {\n SideNavItemContent,\n StyledSideNavListItem,\n} from \"./SideNavItemContent.js\";\nimport { SideNavItemContentContext } from \"./SideNavItemContentContext.js\";\nimport {\n SIDE_NAV_TOGGLE_ICON_HALF_SIZE,\n SIDE_NAV_TOGGLE_ICON_SIZE,\n SideNavToggleButton,\n SideNavToggleButtonProps,\n} from \"./SideNavToggleButton.js\";\nimport { SortableList } from \"./SortableList/SortableList.js\";\nimport { useIsSideNavCollapsedSessionStorage } from \"./useIsSideNavCollapsedSessionStorage.js\";\n\nexport const SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED = 12;\nexport const SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED = 2;\n\nconst StyledCollapsibleContent = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"isSideNavCollapsed\",\n})<{\n isSideNavCollapsed: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens, isSideNavCollapsed }) => ({\n position: \"relative\",\n display: \"grid\",\n gridTemplateColumns: SIDE_NAV_WIDTH,\n height: \"100%\",\n transition: `grid-template-columns ${odysseyDesignTokens.TransitionDurationMain}, opacity 300ms`,\n transitionTimingFunction: odysseyDesignTokens.TransitionTimingMain,\n overflow: \"hidden\",\n\n ...(isSideNavCollapsed &&\n ({\n gridTemplateColumns: 0,\n opacity: 0,\n } satisfies CSSProperties)),\n}));\n\nconst StyledOpacityTransitionContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"isSideNavCollapsed\",\n})(\n ({\n odysseyDesignTokens,\n isSideNavCollapsed,\n }: {\n isSideNavCollapsed: boolean;\n odysseyDesignTokens: DesignTokens;\n }) => ({\n display: \"grid\",\n gridTemplateRows: \"max-content 1fr max-content\",\n height: \"100%\",\n transition: `opacity 50ms`,\n transitionTimingFunction: odysseyDesignTokens.TransitionTimingMain,\n overflow: \"hidden\",\n\n ...(isSideNavCollapsed &&\n ({\n opacity: 0,\n } satisfies CSSProperties)),\n }),\n);\n\nconst StyledSideNavContainer = styled(\"nav\", {\n shouldForwardProp: (prop) =>\n prop !== \"backgroundColor\" &&\n prop !== \"hasNeighbouringContentAtInlineStart\" &&\n prop !== \"isAppContentWhiteBackground\" &&\n prop !== \"isSideNavCollapsed\" &&\n prop !== \"isSideNavToggleHighlighted\" &&\n prop !== \"odysseyDesignTokens\",\n})<{\n backgroundColor?: UiShellColors[\"sideNavBackgroundColor\"];\n hasNeighbouringContentAtInlineStart: boolean;\n isAppContentWhiteBackground: boolean;\n isSideNavCollapsed: boolean;\n isSideNavToggleHighlighted: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(\n ({\n backgroundColor,\n hasNeighbouringContentAtInlineStart,\n isAppContentWhiteBackground,\n isSideNavCollapsed,\n isSideNavToggleHighlighted,\n odysseyDesignTokens,\n }) => ({\n // Side nav container styles\n backgroundColor: backgroundColor || odysseyDesignTokens.HueNeutralWhite,\n height: \"100%\",\n position: \"relative\",\n width: \"fit-content\",\n\n // Right-side vertical line shared\n \"&::before, &::after\": {\n content: \"''\",\n height: \"100%\",\n pointerEvents: \"none\",\n position: \"absolute\",\n right: `-${odysseyDesignTokens.BorderWidthMain}`,\n top: 0,\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain}, transform ${odysseyDesignTokens.TransitionDurationMain}, width ${odysseyDesignTokens.TransitionDurationMain}`,\n userSelect: \"none\",\n zIndex: UI_SHELL_OVERLAY_Z_INDEX,\n },\n\n // Right-side vertical line when open\n \"&::before\": {\n backgroundColor: isSideNavToggleHighlighted\n ? odysseyDesignTokens.BorderColorPrimaryControl\n : odysseyDesignTokens.HueNeutral100,\n opacity:\n isAppContentWhiteBackground ||\n (!isSideNavCollapsed && isSideNavToggleHighlighted)\n ? 1\n : 0,\n width: `calc(${odysseyDesignTokens.BorderWidthMain} * 2)`,\n },\n\n // Side nav vertical fill line when no neighboring content\n \"&::after\": {\n backgroundColor: odysseyDesignTokens.HueNeutral200,\n opacity: isSideNavCollapsed ? 1 : 0,\n transform:\n isSideNavCollapsed && !hasNeighbouringContentAtInlineStart\n ? isSideNavToggleHighlighted\n ? `translateX(calc(100% - (${odysseyDesignTokens.BorderWidthMain} * 2)))`\n : `translateX(calc(100% - ${SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED}px))`\n : \"translateX(0)\",\n width: hasNeighbouringContentAtInlineStart\n ? 0\n : `calc(${SIDE_NAV_TOGGLE_ICON_HALF_SIZE + SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED}px + ${odysseyDesignTokens.BorderWidthMain} * 2)`,\n\n // Right-side vertical line when collapsed\n ...((isSideNavCollapsed && isSideNavToggleHighlighted\n ? {\n borderRightColor: odysseyDesignTokens.BorderColorPrimaryControl,\n borderRightStyle:\n odysseyDesignTokens.BorderStyleMain as Property.BorderRightStyle,\n borderRightWidth: `calc(${odysseyDesignTokens.BorderWidthMain} * 2)`,\n }\n : {}) satisfies CSSProperties),\n },\n }),\n);\n\nconst StyledSideNavToggleButtonContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"hasNeighbouringContentAtInlineStart\" &&\n prop !== \"isSideNavCollapsed\" &&\n prop !== \"isSideNavToggleHighlighted\" &&\n prop !== \"odysseyDesignTokens\",\n})<{\n hasNeighbouringContentAtInlineStart: boolean;\n isSideNavCollapsed: boolean;\n isSideNavToggleHighlighted: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(\n ({\n hasNeighbouringContentAtInlineStart,\n isSideNavCollapsed,\n isSideNavToggleHighlighted,\n odysseyDesignTokens,\n }) => ({\n position: \"absolute\",\n right: `${SIDE_NAV_TOGGLE_ICON_HALF_SIZE}px`,\n top: SIDE_NAV_VISIBILITY_TOGGLE_ICON_POSITION,\n width: `${SIDE_NAV_TOGGLE_ICON_SIZE}px`,\n transform:\n isSideNavCollapsed && !hasNeighbouringContentAtInlineStart\n ? isSideNavToggleHighlighted\n ? `translate3d(calc(100% + ${SIDE_NAV_TOGGLE_ICON_HALF_SIZE + SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED}px), 0, 0)`\n : `translate3d(calc(100% + ${SIDE_NAV_TOGGLE_ICON_HALF_SIZE + SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED}px), 0, 0)`\n : \"translate3d(100%, 0, 0)\",\n transition: `transform ${odysseyDesignTokens.TransitionDurationMain}`,\n zIndex: UI_SHELL_OVERLAY_Z_INDEX + 1,\n }),\n);\n\nconst StyledSideNavHeaderContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"borderColor\" &&\n prop !== \"hasContentScrolled\" &&\n prop !== \"odysseyDesignTokens\",\n})<{\n borderColor: ContrastColors[\"fontColor\"];\n hasContentScrolled: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(({ borderColor, hasContentScrolled, odysseyDesignTokens }) => ({\n flexShrink: 0,\n // The bottom border should appear only if the scrollable region has been scrolled\n ...(hasContentScrolled &&\n ({\n borderBottomWidth: odysseyDesignTokens.BorderWidthMain,\n borderBottomStyle: odysseyDesignTokens.BorderStyleMain,\n borderBottomColor: odysseyDesignTokens.HueNeutral100,\n\n ...(borderColor &&\n ({\n borderBottomColor: borderColor.concat(\"15\"),\n } satisfies CSSProperties)),\n } as CSSProperties)),\n}));\n\nconst StyledSideNavListContainer = styled(\"ul\")(() => ({\n padding: 0,\n listStyle: \"none\",\n listStyleType: \"none\",\n margin: 0,\n width: \"100%\",\n}));\n\nconst StyledSideNavScrollableContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"hasBlockStartPadding\",\n})<{ hasBlockStartPadding?: boolean; odysseyDesignTokens: DesignTokens }>(\n ({ odysseyDesignTokens, hasBlockStartPadding }) => ({\n display: \"inline-grid\",\n gridTemplateRows: \"1fr max-content\",\n overflowY: \"auto\",\n paddingBlockStart: hasBlockStartPadding ? odysseyDesignTokens.Spacing2 : 0,\n paddingInline: odysseyDesignTokens.Spacing2,\n }),\n);\n\nconst StyledSectionHeaderContainer = styled(\"li\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"contrastFontColor\",\n})(\n ({\n contrastFontColor,\n odysseyDesignTokens,\n }: {\n contrastFontColor: ContrastColors[\"fontColor\"];\n odysseyDesignTokens: DesignTokens;\n }) => ({\n color: contrastFontColor || odysseyDesignTokens.HueNeutral600,\n marginBlock: `${odysseyDesignTokens.Spacing3}`,\n paddingBlock: odysseyDesignTokens.Spacing1,\n paddingInline: odysseyDesignTokens.Spacing4,\n }),\n);\n\nconst StyledSideNavFooter = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"sideNavBackgroundColor\",\n})(\n ({\n odysseyDesignTokens,\n sideNavBackgroundColor,\n }: {\n odysseyDesignTokens: DesignTokens;\n sideNavBackgroundColor?: UiShellColors[\"sideNavBackgroundColor\"];\n }) => ({\n backgroundColor: odysseyDesignTokens.HueNeutralWhite,\n flexShrink: 0,\n padding: odysseyDesignTokens.Spacing4,\n\n ...(sideNavBackgroundColor &&\n ({\n backgroundColor: sideNavBackgroundColor,\n } satisfies CSSProperties)),\n }),\n);\n\nconst StyledPersistentSideNavFooter = styled(StyledSideNavFooter, {\n shouldForwardProp: (prop) =>\n prop !== \"isContentScrollable\" &&\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"sideNavBackgroundColor\",\n})(\n ({\n isContentScrollable,\n odysseyDesignTokens,\n sideNavBackgroundColor,\n }: {\n isContentScrollable: boolean;\n odysseyDesignTokens: DesignTokens;\n sideNavBackgroundColor?: UiShellColors[\"sideNavBackgroundColor\"];\n }) => ({\n transitionProperty: \"box-shadow\",\n transitionDuration: odysseyDesignTokens.TransitionDurationMain,\n transitionTiming: odysseyDesignTokens.TransitionTimingMain,\n zIndex: UI_SHELL_BASE_Z_INDEX,\n\n // The box shadow should appear above the footer only if the scrollable region has overflow\n ...(isContentScrollable &&\n ({\n boxShadow: \"0px -8px 8px -8px rgba(39, 39, 39, 0.08)\",\n } satisfies CSSProperties)),\n\n ...(sideNavBackgroundColor &&\n ({\n backgroundColor: sideNavBackgroundColor,\n } satisfies CSSProperties)),\n }),\n);\n\nconst StyledSideNavFooterItemsContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"sideNavContrastColors\",\n})<{\n odysseyDesignTokens: DesignTokens;\n sideNavContrastColors: UiShellColors[\"sideNavContrastColors\"];\n}>(({ odysseyDesignTokens, sideNavContrastColors }) => ({\n display: \"flex\",\n flexWrap: \"wrap\",\n alignItems: \"center\",\n fontSize: odysseyDesignTokens.TypographySizeOverline,\n\n \"a, span\": {\n color: odysseyDesignTokens.HueNeutral600,\n transition: `color ${odysseyDesignTokens.TransitionDurationMain}`,\n\n \"&:visited\": {\n color: odysseyDesignTokens.HueNeutral600,\n\n ...(sideNavContrastColors?.fontColor &&\n ({\n color: sideNavContrastColors?.fontColor,\n } satisfies CSSProperties)),\n },\n\n \"&:hover\": {\n textDecoration: \"none\",\n color: odysseyDesignTokens.HueNeutral900,\n\n ...(sideNavContrastColors?.fontColor &&\n ({\n color: sideNavContrastColors?.fontColor,\n } satisfies CSSProperties)),\n },\n\n ...(sideNavContrastColors?.fontColor &&\n ({\n color: sideNavContrastColors?.fontColor,\n } satisfies CSSProperties)),\n },\n}));\n\nconst StyledLoadingItemContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n alignItems: \"center\",\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing2,\n paddingBlock: odysseyDesignTokens.Spacing2,\n paddingInline: odysseyDesignTokens.Spacing4,\n}));\n\nconst getHasScrollableContent = (scrollableContainer: HTMLElement) =>\n scrollableContainer.scrollHeight > scrollableContainer.clientHeight;\n\nconst LoadingItem = () => {\n const odysseyDesignTokens: DesignTokens = useOdysseyDesignTokens();\n return (\n <StyledLoadingItemContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Skeleton\n height={odysseyDesignTokens.Spacing4}\n variant=\"circular\"\n width={odysseyDesignTokens.Spacing4}\n />\n <Skeleton variant=\"rounded\" width=\"100%\" />\n </StyledLoadingItemContainer>\n );\n};\n\nconst SideNav = ({\n appName,\n footerComponent,\n footerItems,\n hasCustomFooter,\n hasSessionStorageState,\n isCollapsible,\n isCollapsed = false,\n isCompact,\n isLoading,\n isObtrusive,\n logoProps,\n onCollapse,\n onExpand,\n onSort,\n sideNavItems,\n}: SideNavProps) => {\n const [hasContentScrolled, setHasContentScrolled] = useState(false);\n const [isContentScrollable, setIsContentScrollable] = useState(false);\n const [isSideNavToggleHighlighted, setIsSideNavToggleHighlighted] =\n useState(false);\n const [sideNavItemsList, updateSideNavItemsList] = useState(\n sideNavItems || [],\n );\n\n const [isSideNavCollapsedLocalState, setIsSideNavCollapsedLocalState] =\n useState(isCollapsed);\n\n const {\n sessionState: isSideNavCollapsedSessionState,\n setSessionState: setIsSideNavCollapsedSessionState,\n } = useIsSideNavCollapsedSessionStorage(isCollapsed);\n\n const isSideNavCollapsed = hasSessionStorageState\n ? isSideNavCollapsedSessionState\n : isSideNavCollapsedLocalState;\n const setIsSideNavCollapsed = hasSessionStorageState\n ? setIsSideNavCollapsedSessionState\n : setIsSideNavCollapsedLocalState;\n\n const uiShellContext = useUiShellContext();\n const odysseyDesignTokens: DesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const scrollableContentRef = useRef<HTMLUListElement>(null);\n const resizeObserverRef = useRef<ResizeObserver | null>(null);\n const intersectionObserverRef = useRef<IntersectionObserver | null>(null);\n const sideNavRef = useRef<HTMLDivElement>(null);\n\n const { isAtContainerInlineStart } = useElementAtContainerEdge({\n element: sideNavRef.current,\n monitoringElement: sideNavRef.current?.parentElement?.parentElement,\n });\n\n const hasNeighbouringContentAtInlineStart = !isAtContainerInlineStart;\n\n const blankElement = useMemo(() => <div />, []);\n\n // The default value (sideNavItems) passed to useState is ONLY used by the useState hook for\n // the very first value. Subsequent updates to the prop (sideNavItems) need to cause the state\n // to update!\n useEffect(() => updateSideNavItemsList(sideNavItems || []), [sideNavItems]);\n\n // In the case that you can't control the side nav, then it should use whatever state was passed (app control) rather than what's stored in session storage (user control).\n const onMount = useCallback(() => {\n if (!isCollapsible) {\n setIsSideNavCollapsed(isCollapsed);\n }\n }, [isCollapsed, isCollapsible, setIsSideNavCollapsed]);\n\n const onUpdate = useCallback(() => {\n setIsSideNavCollapsed(isCollapsed);\n }, [isCollapsed, setIsSideNavCollapsed]);\n\n useMountLifecycleEffect({\n onMount,\n onUpdate,\n });\n\n useEffect(() => {\n // This is called directly in this effect AND perhaps as a result of the ResizeObserver\n const updateIsContentScrollable = () => {\n if (\n scrollableContentRef.current &&\n scrollableContentRef.current.parentElement\n ) {\n setIsContentScrollable(\n getHasScrollableContent(scrollableContentRef.current.parentElement),\n );\n }\n };\n\n // If the window is resized, we may need to re-determine if the scrollable container has overflow\n // Setup a ResizeObserver to know if the size of the scrollableContent changes\n let resizeObserverDebounceTimer: ReturnType<typeof requestAnimationFrame>;\n if (!resizeObserverRef.current) {\n resizeObserverRef.current = new ResizeObserver(() => {\n cancelAnimationFrame(resizeObserverDebounceTimer);\n resizeObserverDebounceTimer = requestAnimationFrame(\n updateIsContentScrollable,\n );\n });\n }\n\n if (resizeObserverRef.current && scrollableContentRef.current) {\n // Observe the <ul> itself (in case it changes size due to the content expanding)\n resizeObserverRef.current.observe(scrollableContentRef.current);\n if (scrollableContentRef.current.parentElement) {\n // ALSO observe the parent (<SideNavScrollableContainer>) in case the window resizes\n resizeObserverRef.current.observe(\n scrollableContentRef.current.parentElement,\n );\n }\n }\n\n // Determine if the scrollable container has overflow or not on load\n updateIsContentScrollable();\n\n // Finally, we only want to have the border on the bottom of the header iff the user has scrolled\n // the scrollable container\n if (!intersectionObserverRef.current && scrollableContentRef.current) {\n intersectionObserverRef.current = new IntersectionObserver(\n (entries) => {\n // If isIntersecting is true, then we're at the top of the scroll container\n // If isIntersecting is false, some scrolling has occurred.\n // The entries must be sorted by time and we only really need to look at the latest one\n const isIntersecting = entries\n .slice()\n .sort((a, b) => a.time - b.time)\n .at(0)?.isIntersecting;\n setHasContentScrolled(!isIntersecting);\n },\n {\n root: scrollableContentRef.current.parentElement,\n threshold: 1.0,\n },\n );\n }\n\n if (intersectionObserverRef.current && scrollableContentRef.current) {\n const ulElement = scrollableContentRef.current;\n const [liElement] = Array.from(ulElement?.children || []);\n\n if (liElement) {\n intersectionObserverRef.current.observe(liElement);\n }\n }\n\n // Cleanup when unmounted:\n return () => {\n if (resizeObserverRef.current) {\n resizeObserverRef.current.disconnect();\n resizeObserverRef.current = null;\n }\n if (intersectionObserverRef.current) {\n intersectionObserverRef.current.disconnect();\n intersectionObserverRef.current = null;\n }\n cancelAnimationFrame(resizeObserverDebounceTimer); // Ensure timer is cleared on component unmount\n };\n }, [sideNavItemsList]);\n\n const scrollIntoViewRef = useRef<HTMLLIElement>(null);\n /**\n * Look through the sideNavItems and determine which is the first node\n * with isSelected. This should be the node we set a ref on in order to\n * call scrollIntoView in the effect\n */\n const firstSideNavItemIdWithIsSelected = useMemo(() => {\n const flattenedItems = sideNavItemsList.flatMap((sideNavItem) =>\n sideNavItem.nestedNavItems\n ? [sideNavItem, ...sideNavItem.nestedNavItems]\n : sideNavItem,\n );\n const firstItemWithIsSelected = flattenedItems.find(\n (sideNavItem) => sideNavItem.isSelected,\n );\n return firstItemWithIsSelected?.id;\n }, [sideNavItemsList]);\n /**\n * Once we've rendered and if we have an item to scroll to, do the scroll action.\n * This must rely on checking firstSideNavItemIdWithIsSelected or it will not run\n * once the actual ref is populated.\n */\n useEffect(() => {\n if (firstSideNavItemIdWithIsSelected && scrollIntoViewRef.current) {\n scrollIntoViewRef.current.scrollIntoView();\n }\n }, [firstSideNavItemIdWithIsSelected]);\n\n /**\n * We only want to put a ref on a node iff it is the first selected node.\n * This function returns the ref only if the ID provided matches the first\n * selected node, otherwise returns undefined (so that the node has no ref)\n */\n const getRefIfThisIsFirstNodeWithIsSelected = useCallback(\n (itemId: string) =>\n itemId === firstSideNavItemIdWithIsSelected\n ? scrollIntoViewRef\n : undefined,\n [firstSideNavItemIdWithIsSelected],\n );\n\n const sideNavItemContentProviderValue = useMemo(\n () => ({ isCompact, depth: 1 }),\n [isCompact],\n );\n\n const setSelectedItem = useCallback(\n (selectedItemId: string) => {\n const updatedSideNavItems = sideNavItemsList.map((item) => {\n if (item.id === selectedItemId) {\n item.isSelected = true;\n } else if (item.isSelected) {\n delete item.isSelected;\n }\n\n return item.nestedNavItems\n ? {\n ...item,\n nestedNavItems: item.nestedNavItems.map((childItem) => {\n if (childItem.id === selectedItemId) {\n childItem.isSelected = true;\n } else if (childItem.isSelected) {\n delete childItem.isSelected;\n }\n return childItem;\n }),\n }\n : item;\n });\n updateSideNavItemsList(updatedSideNavItems);\n\n if (isCollapsed || isObtrusive) {\n if (isCollapsible) {\n uiShellContext?.closeSideNavMenu();\n } else {\n onCollapse?.();\n }\n }\n },\n [\n isCollapsed,\n isCollapsible,\n isObtrusive,\n onCollapse,\n sideNavItemsList,\n uiShellContext,\n ],\n );\n\n const processedSideNavItems = useMemo(() => {\n return sideNavItemsList?.map((item) => ({\n ...item,\n childNavItems: item.nestedNavItems?.map((childProps) => ({\n id: childProps.id,\n isSelected: childProps.isSelected,\n isDisabled: childProps.isDisabled,\n isSortable: childProps.isSortable,\n navItem: (\n <SideNavItemContentContext.Provider\n key={childProps.id}\n value={{\n ...sideNavItemContentProviderValue,\n depth: 2,\n isSortable: item.isSortable,\n }}\n >\n <SideNavItemContent\n {...childProps}\n onItemSelected={setSelectedItem}\n scrollRef={getRefIfThisIsFirstNodeWithIsSelected(childProps.id)}\n translate={childProps.translate}\n />\n </SideNavItemContentContext.Provider>\n ),\n })),\n }));\n }, [\n getRefIfThisIsFirstNodeWithIsSelected,\n setSelectedItem,\n sideNavItemContentProviderValue,\n sideNavItemsList,\n ]);\n\n const sideNavExpandClickHandler = useCallback(() => {\n setIsSideNavCollapsed((isSideNavCollapsed) => {\n if (isSideNavCollapsed) {\n onExpand?.();\n } else {\n onCollapse?.();\n }\n\n return !isSideNavCollapsed;\n });\n }, [onCollapse, onExpand, setIsSideNavCollapsed]);\n\n const sideNavExpandKeyHandler = useCallback<\n KeyboardEventHandler<HTMLButtonElement>\n >(\n (event) => {\n if (event?.key === \"Enter\" || event?.code === \"Space\") {\n event.preventDefault();\n sideNavExpandClickHandler();\n }\n },\n [sideNavExpandClickHandler],\n );\n\n useEffect(() => {\n const unsubscribe = uiShellContext?.subscribeToCloseSideNavMenu(() => {\n onCollapse?.();\n setIsSideNavCollapsed(true);\n });\n\n return () => {\n unsubscribe?.();\n };\n }, [onCollapse, setIsSideNavCollapsed, uiShellContext]);\n\n const setSortedItems = useCallback(\n (\n parentId: string,\n activeId: UniqueIdentifier,\n activeIndex: number,\n overIndex: number,\n ) => {\n const sortedSideNavItems = sideNavItemsList.map((item) =>\n item.id === parentId && item.nestedNavItems\n ? {\n ...item,\n nestedNavItems: arrayMove(\n item.nestedNavItems,\n activeIndex,\n overIndex,\n ),\n }\n : item,\n );\n updateSideNavItemsList(sortedSideNavItems);\n onSort?.(sortedSideNavItems, parentId, activeId, activeIndex, overIndex);\n },\n [onSort, sideNavItemsList],\n );\n\n const onSideNavToggleButtonHighlight = useCallback<\n NonNullable<SideNavToggleButtonProps[\"onHighlight\"]>\n >((isHighlighted) => {\n setIsSideNavToggleHighlighted(isHighlighted);\n }, []);\n\n return (\n <StyledSideNavContainer\n aria-label={t(\"navigation.label\")}\n backgroundColor={uiShellContext?.sideNavBackgroundColor}\n hasNeighbouringContentAtInlineStart={hasNeighbouringContentAtInlineStart}\n id=\"side-nav-expandable\"\n isAppContentWhiteBackground={\n uiShellContext?.appBackgroundColor ===\n odysseyDesignTokens.HueNeutralWhite\n }\n isSideNavCollapsed={isSideNavCollapsed}\n isSideNavToggleHighlighted={isSideNavToggleHighlighted}\n odysseyDesignTokens={odysseyDesignTokens}\n ref={sideNavRef}\n >\n {isCollapsible && (\n <StyledSideNavToggleButtonContainer\n hasNeighbouringContentAtInlineStart={\n hasNeighbouringContentAtInlineStart\n }\n isSideNavCollapsed={isSideNavCollapsed}\n isSideNavToggleHighlighted={isSideNavToggleHighlighted}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <SideNavToggleButton\n ariaControls=\"side-nav-expandable\"\n clickAreaPadding={\n isSideNavCollapsed && !hasNeighbouringContentAtInlineStart\n ? SIDE_NAV_TOGGLE_ICON_SIZE / 2\n : 0\n }\n isSideNavCollapsed={isSideNavCollapsed}\n onClick={sideNavExpandClickHandler}\n onHighlight={onSideNavToggleButtonHighlight}\n onKeyDown={sideNavExpandKeyHandler}\n />\n </StyledSideNavToggleButtonContainer>\n )}\n\n <OdysseyThemeProvider>\n <StyledCollapsibleContent\n data-se=\"collapsible-region\"\n isSideNavCollapsed={isSideNavCollapsed}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <StyledOpacityTransitionContainer\n isSideNavCollapsed={isSideNavCollapsed}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {appName || isLoading || logoProps ? (\n <StyledSideNavHeaderContainer\n borderColor={uiShellContext?.sideNavContrastColors?.fontColor}\n hasContentScrolled={hasContentScrolled}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {isLoading && !appName && !logoProps ? (\n <SideNavHeader isLoading={isLoading} />\n ) : (\n <SideNavHeader\n appName={appName}\n isLoading={isLoading}\n logoProps={logoProps}\n />\n )}\n </StyledSideNavHeaderContainer>\n ) : (\n <div />\n )}\n\n <StyledSideNavScrollableContainer\n data-se=\"scrollable-region\"\n hasBlockStartPadding={!appName}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <StyledSideNavListContainer\n ref={scrollableContentRef}\n role=\"none\"\n >\n {isLoading\n ? Array(6)\n .fill(null)\n .map((_, index) => <LoadingItem key={index} />)\n : processedSideNavItems?.map((item) => {\n const {\n childNavItems,\n href,\n id,\n isDefaultExpanded,\n isDisabled,\n isExpanded,\n isSectionHeader,\n isSortable,\n label,\n startIcon,\n } = item;\n\n if (isSectionHeader) {\n return (\n <ErrorBoundary fallback={blankElement} key={id}>\n <StyledSectionHeaderContainer\n contrastFontColor={\n uiShellContext?.sideNavContrastColors?.fontColor\n }\n id={id}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <Overline component=\"h3\">{label}</Overline>\n </StyledSectionHeaderContainer>\n </ErrorBoundary>\n );\n } else if (childNavItems) {\n const nestedChildren = (\n <StyledSideNavListContainer role=\"presentation\">\n {isSortable ? (\n <SortableList\n items={childNavItems}\n onChange={setSortedItems}\n parentId={item.id}\n renderItem={(sortableItem) => (\n <SortableList.Item\n id={sortableItem.id}\n isDisabled={sortableItem.isDisabled}\n isSelected={sortableItem.isSelected}\n isSortable={sortableItem.isSortable}\n >\n {sortableItem.navItem}\n </SortableList.Item>\n )}\n />\n ) : (\n childNavItems.map((item) => item.navItem)\n )}\n </StyledSideNavListContainer>\n );\n\n return href ? (\n <ErrorBoundary fallback={blankElement} key={id}>\n <SideNavItemContent\n {...item}\n href={href}\n onItemSelected={setSelectedItem}\n scrollRef={getRefIfThisIsFirstNodeWithIsSelected(\n item.id,\n )}\n startIcon={item.startIcon}\n />\n\n <StyledSideNavListItem\n aria-disabled={isDisabled}\n disabled={isDisabled}\n id={`${id}-items`}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {nestedChildren}\n </StyledSideNavListItem>\n </ErrorBoundary>\n ) : (\n <ErrorBoundary fallback={blankElement} key={id}>\n <StyledSideNavListItem\n aria-disabled={isDisabled}\n disabled={isDisabled}\n id={id}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <NavAccordion\n isCompact={isCompact}\n isDefaultExpanded={isDefaultExpanded}\n isDisabled={isDisabled}\n isExpanded={isExpanded}\n label={label}\n startIcon={startIcon}\n >\n {nestedChildren}\n </NavAccordion>\n </StyledSideNavListItem>\n </ErrorBoundary>\n );\n } else {\n return (\n <ErrorBoundary fallback={blankElement} key={item.id}>\n <SideNavItemContentContext.Provider\n value={sideNavItemContentProviderValue}\n >\n <SideNavItemContent\n {...item}\n onItemSelected={setSelectedItem}\n scrollRef={getRefIfThisIsFirstNodeWithIsSelected(\n item.id,\n )}\n startIcon={item.startIcon}\n />\n </SideNavItemContentContext.Provider>\n </ErrorBoundary>\n );\n }\n })}\n </StyledSideNavListContainer>\n {!isLoading && footerItems && !hasCustomFooter && (\n <StyledSideNavFooter\n odysseyDesignTokens={odysseyDesignTokens}\n sideNavBackgroundColor={\n uiShellContext?.sideNavBackgroundColor\n }\n >\n <StyledSideNavFooterItemsContainer\n odysseyDesignTokens={odysseyDesignTokens}\n sideNavContrastColors={\n uiShellContext?.sideNavContrastColors\n }\n >\n <SideNavFooterContent footerItems={footerItems} />\n </StyledSideNavFooterItemsContainer>\n </StyledSideNavFooter>\n )}\n </StyledSideNavScrollableContainer>\n {!isLoading && !footerItems && hasCustomFooter && (\n <StyledPersistentSideNavFooter\n isContentScrollable={isContentScrollable}\n odysseyDesignTokens={odysseyDesignTokens}\n sideNavBackgroundColor={uiShellContext?.sideNavBackgroundColor}\n >\n {footerComponent}\n </StyledPersistentSideNavFooter>\n )}\n </StyledOpacityTransitionContainer>\n </StyledCollapsibleContent>\n </OdysseyThemeProvider>\n </StyledSideNavContainer>\n );\n};\n\nconst MemoizedSideNav = memo(SideNav);\nMemoizedSideNav.displayName = \"SideNav\";\n\nexport { MemoizedSideNav as SideNav };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SideNav.js","names":["arrayMove","styled","memo","useCallback","useEffect","useMemo","useRef","useState","ErrorBoundary","useTranslation","useOdysseyDesignTokens","OdysseyThemeProvider","Overline","useUiShellContext","useMountLifecycleEffect","SIDE_NAV_VISIBILITY_TOGGLE_ICON_POSITION","SIDE_NAV_WIDTH","UI_SHELL_BASE_Z_INDEX","UI_SHELL_OVERLAY_Z_INDEX","useElementAtContainerEdge","NavAccordion","SideNavFooterContent","SideNavHeader","SideNavItemContent","StyledSideNavListItem","SideNavItemContentContext","SideNavSortableList","SIDE_NAV_TOGGLE_ICON_HALF_SIZE","SIDE_NAV_TOGGLE_ICON_SIZE","SideNavToggleButton","useIsSideNavCollapsedSessionStorage","jsx","_jsx","jsxs","_jsxs","SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED","SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED","flattenNestedItems","items","flatMap","item","nestedNavItems","StyledCollapsibleContent","shouldForwardProp","prop","odysseyDesignTokens","isSideNavCollapsed","position","display","gridTemplateColumns","height","transition","TransitionDurationMain","transitionTimingFunction","TransitionTimingMain","overflow","opacity","StyledOpacityTransitionContainer","gridTemplateRows","StyledSideNavContainer","backgroundColor","hasNeighbouringContentAtInlineStart","isAppContentWhiteBackground","isSideNavToggleHighlighted","HueNeutralWhite","width","content","pointerEvents","right","BorderWidthMain","top","userSelect","zIndex","BorderColorPrimaryControl","HueNeutral100","HueNeutral200","transform","borderRightColor","borderRightStyle","BorderStyleMain","borderRightWidth","StyledSideNavToggleButtonContainer","StyledSideNavHeaderContainer","borderColor","hasContentScrolled","flexShrink","borderBottomWidth","borderBottomStyle","borderBottomColor","concat","StyledSideNavListContainer","padding","listStyle","listStyleType","margin","StyledSideNavScrollableContainer","hasBlockStartPadding","overflowY","paddingBlockStart","Spacing2","paddingInline","StyledSectionHeaderContainer","contrastFontColor","color","HueNeutral600","marginBlock","Spacing3","paddingBlock","Spacing1","Spacing4","StyledSideNavFooter","sideNavBackgroundColor","StyledPersistentSideNavFooter","isContentScrollable","transitionProperty","transitionDuration","transitionTiming","boxShadow","StyledSideNavFooterItemsContainer","sideNavContrastColors","flexWrap","alignItems","fontSize","TypographySizeOverline","fontColor","textDecoration","HueNeutral900","StyledLoadingItemContainer","gap","getHasScrollableContent","scrollableContainer","scrollHeight","clientHeight","LoadingItem","children","_Skeleton","variant","SideNav","appName","footerComponent","footerItems","hasCustomFooter","hasSessionStorageState","isCollapsible","isCollapsed","isCompact","isLoading","isObtrusive","logoProps","leavesPaddingStart","onCollapse","onExpand","onSort","sideNavItems","setHasContentScrolled","setIsContentScrollable","setIsSideNavToggleHighlighted","sideNavItemsList","updateSideNavItemsList","isSideNavCollapsedLocalState","setIsSideNavCollapsedLocalState","sessionState","isSideNavCollapsedSessionState","setSessionState","setIsSideNavCollapsedSessionState","setIsSideNavCollapsed","uiShellContext","t","scrollableContentRef","resizeObserverRef","intersectionObserverRef","sideNavRef","isAtContainerInlineStart","element","current","monitoringElement","parentElement","blankElement","onMount","onUpdate","updateIsContentScrollable","resizeObserverDebounceTimer","ResizeObserver","cancelAnimationFrame","requestAnimationFrame","observe","IntersectionObserver","entries","isIntersecting","slice","sort","a","b","time","at","root","threshold","ulElement","liElement","Array","from","disconnect","scrollIntoViewRef","firstSideNavItemIdWithIsSelected","flattenedItems","firstItemWithIsSelected","find","sideNavItem","isSelected","id","scrollIntoView","getRefIfThisIsFirstNodeWithIsSelected","itemId","undefined","setSelectedItem","selectedItemId","updateNestedSelection","map","updatedSideNavItems","closeSideNavMenu","createAccordionContextValue","depth","createLeafItemContextValue","isSortable","absolutePaddingStart","renderSideNavItem","href","isDefaultExpanded","isDisabled","isExpanded","isSectionHeader","label","startIcon","translate","fallback","component","length","nestedChildren","role","onChange","setSortedItems","parentId","processSideNavItems","sortableItem","navItem","onItemSelected","scrollRef","disabled","Provider","value","sideNavExpandClickHandler","sideNavExpandKeyHandler","event","key","code","preventDefault","unsubscribe","subscribeToCloseSideNavMenu","activeId","activeIndex","overIndex","sortedSideNavItems","onSideNavToggleButtonHighlight","isHighlighted","appBackgroundColor","ref","ariaControls","clickAreaPadding","onClick","onHighlight","onKeyDown","fill","_","index","MemoizedSideNav","displayName"],"sources":["../../../../src/ui-shell/SideNav/SideNav.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 { UniqueIdentifier } from \"@dnd-kit/core\";\nimport { arrayMove } from \"@dnd-kit/sortable\";\nimport styled from \"@emotion/styled\";\nimport { Skeleton } from \"@mui/material\";\nimport { Property } from \"csstype\";\nimport {\n CSSProperties,\n KeyboardEventHandler,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\n\nimport type { SideNavItem, SideNavProps } from \"./types.js\";\n\nimport { ContrastColors } from \"../../createContrastColors.js\";\nimport { useTranslation } from \"../../i18n.generated/i18n.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { OdysseyThemeProvider } from \"../../OdysseyThemeProvider.js\";\nimport { Overline } from \"../../Typography.js\";\nimport {\n UiShellColors,\n useUiShellContext,\n} from \"../../ui-shell/UiShellProvider.js\";\nimport { useMountLifecycleEffect } from \"../../useMountLifecycleEffect.js\";\nimport {\n SIDE_NAV_VISIBILITY_TOGGLE_ICON_POSITION,\n SIDE_NAV_WIDTH,\n UI_SHELL_BASE_Z_INDEX,\n UI_SHELL_OVERLAY_Z_INDEX,\n} from \"../uiShellSharedConstants.js\";\nimport { useElementAtContainerEdge } from \"../useElementAtContainerEdge.js\";\nimport { NavAccordion } from \"./NavAccordion.js\";\nimport { SideNavFooterContent } from \"./SideNavFooterContent.js\";\nimport { SideNavHeader } from \"./SideNavHeader.js\";\nimport {\n SideNavItemContent,\n StyledSideNavListItem,\n} from \"./SideNavItemContent.js\";\nimport { SideNavItemContentContext } from \"./SideNavItemContentContext.js\";\nimport { SideNavSortableList } from \"./SideNavSortableList.js\";\nimport {\n SIDE_NAV_TOGGLE_ICON_HALF_SIZE,\n SIDE_NAV_TOGGLE_ICON_SIZE,\n SideNavToggleButton,\n SideNavToggleButtonProps,\n} from \"./SideNavToggleButton.js\";\nimport { BaseItem } from \"./SortableList/SortableList.js\";\nimport { useIsSideNavCollapsedSessionStorage } from \"./useIsSideNavCollapsedSessionStorage.js\";\n\nexport const SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED = 12;\nexport const SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED = 2;\n\nconst flattenNestedItems = (items: SideNavItem[]): SideNavItem[] => {\n return items.flatMap((item) => {\n if (item.nestedNavItems) {\n return [item, ...flattenNestedItems(item.nestedNavItems)];\n }\n return item;\n });\n};\n\nconst StyledCollapsibleContent = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"isSideNavCollapsed\",\n})<{\n isSideNavCollapsed: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens, isSideNavCollapsed }) => ({\n position: \"relative\",\n display: \"grid\",\n gridTemplateColumns: SIDE_NAV_WIDTH,\n height: \"100%\",\n transition: `grid-template-columns ${odysseyDesignTokens.TransitionDurationMain}, opacity 300ms`,\n transitionTimingFunction: odysseyDesignTokens.TransitionTimingMain,\n overflow: \"hidden\",\n\n ...(isSideNavCollapsed &&\n ({\n gridTemplateColumns: 0,\n opacity: 0,\n } satisfies CSSProperties)),\n}));\n\nconst StyledOpacityTransitionContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"isSideNavCollapsed\",\n})(\n ({\n odysseyDesignTokens,\n isSideNavCollapsed,\n }: {\n isSideNavCollapsed: boolean;\n odysseyDesignTokens: DesignTokens;\n }) => ({\n display: \"grid\",\n gridTemplateRows: \"max-content 1fr max-content\",\n height: \"100%\",\n transition: `opacity 50ms`,\n transitionTimingFunction: odysseyDesignTokens.TransitionTimingMain,\n overflow: \"hidden\",\n\n ...(isSideNavCollapsed &&\n ({\n opacity: 0,\n } satisfies CSSProperties)),\n }),\n);\n\nconst StyledSideNavContainer = styled(\"nav\", {\n shouldForwardProp: (prop) =>\n prop !== \"backgroundColor\" &&\n prop !== \"hasNeighbouringContentAtInlineStart\" &&\n prop !== \"isAppContentWhiteBackground\" &&\n prop !== \"isSideNavCollapsed\" &&\n prop !== \"isSideNavToggleHighlighted\" &&\n prop !== \"odysseyDesignTokens\",\n})<{\n backgroundColor?: UiShellColors[\"sideNavBackgroundColor\"];\n hasNeighbouringContentAtInlineStart: boolean;\n isAppContentWhiteBackground: boolean;\n isSideNavCollapsed: boolean;\n isSideNavToggleHighlighted: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(\n ({\n backgroundColor,\n hasNeighbouringContentAtInlineStart,\n isAppContentWhiteBackground,\n isSideNavCollapsed,\n isSideNavToggleHighlighted,\n odysseyDesignTokens,\n }) => ({\n // Side nav container styles\n backgroundColor: backgroundColor || odysseyDesignTokens.HueNeutralWhite,\n height: \"100%\",\n position: \"relative\",\n width: \"fit-content\",\n\n // Right-side vertical line shared\n \"&::before, &::after\": {\n content: \"''\",\n height: \"100%\",\n pointerEvents: \"none\",\n position: \"absolute\",\n right: `-${odysseyDesignTokens.BorderWidthMain}`,\n top: 0,\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain}, transform ${odysseyDesignTokens.TransitionDurationMain}, width ${odysseyDesignTokens.TransitionDurationMain}`,\n userSelect: \"none\",\n zIndex: UI_SHELL_OVERLAY_Z_INDEX,\n },\n\n // Right-side vertical line when open\n \"&::before\": {\n backgroundColor: isSideNavToggleHighlighted\n ? odysseyDesignTokens.BorderColorPrimaryControl\n : odysseyDesignTokens.HueNeutral100,\n opacity:\n isAppContentWhiteBackground ||\n (!isSideNavCollapsed && isSideNavToggleHighlighted)\n ? 1\n : 0,\n width: `calc(${odysseyDesignTokens.BorderWidthMain} * 2)`,\n },\n\n // Side nav vertical fill line when no neighboring content\n \"&::after\": {\n backgroundColor: odysseyDesignTokens.HueNeutral200,\n opacity: isSideNavCollapsed ? 1 : 0,\n transform:\n isSideNavCollapsed && !hasNeighbouringContentAtInlineStart\n ? isSideNavToggleHighlighted\n ? `translateX(calc(100% - (${odysseyDesignTokens.BorderWidthMain} * 2)))`\n : `translateX(calc(100% - ${SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED}px))`\n : \"translateX(0)\",\n width: hasNeighbouringContentAtInlineStart\n ? 0\n : `calc(${SIDE_NAV_TOGGLE_ICON_HALF_SIZE + SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED}px + ${odysseyDesignTokens.BorderWidthMain} * 2)`,\n\n // Right-side vertical line when collapsed\n ...((isSideNavCollapsed && isSideNavToggleHighlighted\n ? {\n borderRightColor: odysseyDesignTokens.BorderColorPrimaryControl,\n borderRightStyle:\n odysseyDesignTokens.BorderStyleMain as Property.BorderRightStyle,\n borderRightWidth: `calc(${odysseyDesignTokens.BorderWidthMain} * 2)`,\n }\n : {}) satisfies CSSProperties),\n },\n }),\n);\n\nconst StyledSideNavToggleButtonContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"hasNeighbouringContentAtInlineStart\" &&\n prop !== \"isSideNavCollapsed\" &&\n prop !== \"isSideNavToggleHighlighted\" &&\n prop !== \"odysseyDesignTokens\",\n})<{\n hasNeighbouringContentAtInlineStart: boolean;\n isSideNavCollapsed: boolean;\n isSideNavToggleHighlighted: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(\n ({\n hasNeighbouringContentAtInlineStart,\n isSideNavCollapsed,\n isSideNavToggleHighlighted,\n odysseyDesignTokens,\n }) => ({\n position: \"absolute\",\n right: `${SIDE_NAV_TOGGLE_ICON_HALF_SIZE}px`,\n top: SIDE_NAV_VISIBILITY_TOGGLE_ICON_POSITION,\n width: `${SIDE_NAV_TOGGLE_ICON_SIZE}px`,\n transform:\n isSideNavCollapsed && !hasNeighbouringContentAtInlineStart\n ? isSideNavToggleHighlighted\n ? `translate3d(calc(100% + ${SIDE_NAV_TOGGLE_ICON_HALF_SIZE + SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED}px), 0, 0)`\n : `translate3d(calc(100% + ${SIDE_NAV_TOGGLE_ICON_HALF_SIZE + SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED}px), 0, 0)`\n : \"translate3d(100%, 0, 0)\",\n transition: `transform ${odysseyDesignTokens.TransitionDurationMain}`,\n zIndex: UI_SHELL_OVERLAY_Z_INDEX + 1,\n }),\n);\n\nconst StyledSideNavHeaderContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"borderColor\" &&\n prop !== \"hasContentScrolled\" &&\n prop !== \"odysseyDesignTokens\",\n})<{\n borderColor: ContrastColors[\"fontColor\"];\n hasContentScrolled: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(({ borderColor, hasContentScrolled, odysseyDesignTokens }) => ({\n flexShrink: 0,\n // The bottom border should appear only if the scrollable region has been scrolled\n ...(hasContentScrolled &&\n ({\n borderBottomWidth: odysseyDesignTokens.BorderWidthMain,\n borderBottomStyle: odysseyDesignTokens.BorderStyleMain,\n borderBottomColor: odysseyDesignTokens.HueNeutral100,\n\n ...(borderColor &&\n ({\n borderBottomColor: borderColor.concat(\"15\"),\n } satisfies CSSProperties)),\n } as CSSProperties)),\n}));\n\nconst StyledSideNavListContainer = styled(\"ul\")(() => ({\n padding: 0,\n listStyle: \"none\",\n listStyleType: \"none\",\n margin: 0,\n width: \"100%\",\n}));\n\nconst StyledSideNavScrollableContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"hasBlockStartPadding\",\n})<{ hasBlockStartPadding?: boolean; odysseyDesignTokens: DesignTokens }>(\n ({ odysseyDesignTokens, hasBlockStartPadding }) => ({\n display: \"inline-grid\",\n gridTemplateRows: \"1fr max-content\",\n overflowY: \"auto\",\n paddingBlockStart: hasBlockStartPadding ? odysseyDesignTokens.Spacing2 : 0,\n paddingInline: odysseyDesignTokens.Spacing2,\n }),\n);\n\nconst StyledSectionHeaderContainer = styled(\"li\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"contrastFontColor\",\n})(\n ({\n contrastFontColor,\n odysseyDesignTokens,\n }: {\n contrastFontColor: ContrastColors[\"fontColor\"];\n odysseyDesignTokens: DesignTokens;\n }) => ({\n color: contrastFontColor || odysseyDesignTokens.HueNeutral600,\n marginBlock: `${odysseyDesignTokens.Spacing3}`,\n paddingBlock: odysseyDesignTokens.Spacing1,\n paddingInline: odysseyDesignTokens.Spacing4,\n }),\n);\n\nconst StyledSideNavFooter = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"sideNavBackgroundColor\",\n})(\n ({\n odysseyDesignTokens,\n sideNavBackgroundColor,\n }: {\n odysseyDesignTokens: DesignTokens;\n sideNavBackgroundColor?: UiShellColors[\"sideNavBackgroundColor\"];\n }) => ({\n backgroundColor: odysseyDesignTokens.HueNeutralWhite,\n flexShrink: 0,\n padding: odysseyDesignTokens.Spacing4,\n\n ...(sideNavBackgroundColor &&\n ({\n backgroundColor: sideNavBackgroundColor,\n } satisfies CSSProperties)),\n }),\n);\n\nconst StyledPersistentSideNavFooter = styled(StyledSideNavFooter, {\n shouldForwardProp: (prop) =>\n prop !== \"isContentScrollable\" &&\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"sideNavBackgroundColor\",\n})(\n ({\n isContentScrollable,\n odysseyDesignTokens,\n sideNavBackgroundColor,\n }: {\n isContentScrollable: boolean;\n odysseyDesignTokens: DesignTokens;\n sideNavBackgroundColor?: UiShellColors[\"sideNavBackgroundColor\"];\n }) => ({\n transitionProperty: \"box-shadow\",\n transitionDuration: odysseyDesignTokens.TransitionDurationMain,\n transitionTiming: odysseyDesignTokens.TransitionTimingMain,\n zIndex: UI_SHELL_BASE_Z_INDEX,\n\n // The box shadow should appear above the footer only if the scrollable region has overflow\n ...(isContentScrollable &&\n ({\n boxShadow: \"0px -8px 8px -8px rgba(39, 39, 39, 0.08)\",\n } satisfies CSSProperties)),\n\n ...(sideNavBackgroundColor &&\n ({\n backgroundColor: sideNavBackgroundColor,\n } satisfies CSSProperties)),\n }),\n);\n\nconst StyledSideNavFooterItemsContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"sideNavContrastColors\",\n})<{\n odysseyDesignTokens: DesignTokens;\n sideNavContrastColors: UiShellColors[\"sideNavContrastColors\"];\n}>(({ odysseyDesignTokens, sideNavContrastColors }) => ({\n display: \"flex\",\n flexWrap: \"wrap\",\n alignItems: \"center\",\n fontSize: odysseyDesignTokens.TypographySizeOverline,\n\n \"a, span\": {\n color: odysseyDesignTokens.HueNeutral600,\n transition: `color ${odysseyDesignTokens.TransitionDurationMain}`,\n\n \"&:visited\": {\n color: odysseyDesignTokens.HueNeutral600,\n\n ...(sideNavContrastColors?.fontColor &&\n ({\n color: sideNavContrastColors?.fontColor,\n } satisfies CSSProperties)),\n },\n\n \"&:hover\": {\n textDecoration: \"none\",\n color: odysseyDesignTokens.HueNeutral900,\n\n ...(sideNavContrastColors?.fontColor &&\n ({\n color: sideNavContrastColors?.fontColor,\n } satisfies CSSProperties)),\n },\n\n ...(sideNavContrastColors?.fontColor &&\n ({\n color: sideNavContrastColors?.fontColor,\n } satisfies CSSProperties)),\n },\n}));\n\nconst StyledLoadingItemContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n alignItems: \"center\",\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing2,\n paddingBlock: odysseyDesignTokens.Spacing2,\n paddingInline: odysseyDesignTokens.Spacing4,\n}));\n\nconst getHasScrollableContent = (scrollableContainer: HTMLElement) =>\n scrollableContainer.scrollHeight > scrollableContainer.clientHeight;\n\nconst LoadingItem = () => {\n const odysseyDesignTokens: DesignTokens = useOdysseyDesignTokens();\n return (\n <StyledLoadingItemContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Skeleton\n height={odysseyDesignTokens.Spacing4}\n variant=\"circular\"\n width={odysseyDesignTokens.Spacing4}\n />\n <Skeleton variant=\"rounded\" width=\"100%\" />\n </StyledLoadingItemContainer>\n );\n};\n\nconst SideNav = ({\n appName,\n footerComponent,\n footerItems,\n hasCustomFooter,\n hasSessionStorageState,\n isCollapsible,\n isCollapsed = false,\n isCompact,\n isLoading,\n isObtrusive,\n logoProps,\n leavesPaddingStart,\n onCollapse,\n onExpand,\n onSort,\n sideNavItems,\n}: SideNavProps) => {\n const [hasContentScrolled, setHasContentScrolled] = useState(false);\n const [isContentScrollable, setIsContentScrollable] = useState(false);\n const [isSideNavToggleHighlighted, setIsSideNavToggleHighlighted] =\n useState(false);\n const [sideNavItemsList, updateSideNavItemsList] = useState(\n sideNavItems || [],\n );\n\n const [isSideNavCollapsedLocalState, setIsSideNavCollapsedLocalState] =\n useState(isCollapsed);\n\n const {\n sessionState: isSideNavCollapsedSessionState,\n setSessionState: setIsSideNavCollapsedSessionState,\n } = useIsSideNavCollapsedSessionStorage(isCollapsed);\n\n const isSideNavCollapsed = hasSessionStorageState\n ? isSideNavCollapsedSessionState\n : isSideNavCollapsedLocalState;\n const setIsSideNavCollapsed = hasSessionStorageState\n ? setIsSideNavCollapsedSessionState\n : setIsSideNavCollapsedLocalState;\n\n const uiShellContext = useUiShellContext();\n const odysseyDesignTokens: DesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const scrollableContentRef = useRef<HTMLUListElement>(null);\n const resizeObserverRef = useRef<ResizeObserver | null>(null);\n const intersectionObserverRef = useRef<IntersectionObserver | null>(null);\n const sideNavRef = useRef<HTMLDivElement>(null);\n\n const { isAtContainerInlineStart } = useElementAtContainerEdge({\n element: sideNavRef.current,\n monitoringElement: sideNavRef.current?.parentElement?.parentElement,\n });\n\n const hasNeighbouringContentAtInlineStart = !isAtContainerInlineStart;\n\n const blankElement = useMemo(() => <div />, []);\n\n // The default value (sideNavItems) passed to useState is ONLY used by the useState hook for\n // the very first value. Subsequent updates to the prop (sideNavItems) need to cause the state\n // to update!\n useEffect(() => updateSideNavItemsList(sideNavItems || []), [sideNavItems]);\n\n // In the case that you can't control the side nav, then it should use whatever state was passed (app control) rather than what's stored in session storage (user control).\n const onMount = useCallback(() => {\n if (!isCollapsible) {\n setIsSideNavCollapsed(isCollapsed);\n }\n }, [isCollapsed, isCollapsible, setIsSideNavCollapsed]);\n\n const onUpdate = useCallback(() => {\n setIsSideNavCollapsed(isCollapsed);\n }, [isCollapsed, setIsSideNavCollapsed]);\n\n useMountLifecycleEffect({\n onMount,\n onUpdate,\n });\n\n useEffect(() => {\n // This is called directly in this effect AND perhaps as a result of the ResizeObserver\n const updateIsContentScrollable = () => {\n if (\n scrollableContentRef.current &&\n scrollableContentRef.current.parentElement\n ) {\n setIsContentScrollable(\n getHasScrollableContent(scrollableContentRef.current.parentElement),\n );\n }\n };\n\n // If the window is resized, we may need to re-determine if the scrollable container has overflow\n // Setup a ResizeObserver to know if the size of the scrollableContent changes\n let resizeObserverDebounceTimer: ReturnType<typeof requestAnimationFrame>;\n if (!resizeObserverRef.current) {\n resizeObserverRef.current = new ResizeObserver(() => {\n cancelAnimationFrame(resizeObserverDebounceTimer);\n resizeObserverDebounceTimer = requestAnimationFrame(\n updateIsContentScrollable,\n );\n });\n }\n\n if (resizeObserverRef.current && scrollableContentRef.current) {\n // Observe the <ul> itself (in case it changes size due to the content expanding)\n resizeObserverRef.current.observe(scrollableContentRef.current);\n if (scrollableContentRef.current.parentElement) {\n // ALSO observe the parent (<SideNavScrollableContainer>) in case the window resizes\n resizeObserverRef.current.observe(\n scrollableContentRef.current.parentElement,\n );\n }\n }\n\n // Determine if the scrollable container has overflow or not on load\n updateIsContentScrollable();\n\n // Finally, we only want to have the border on the bottom of the header iff the user has scrolled\n // the scrollable container\n if (!intersectionObserverRef.current && scrollableContentRef.current) {\n intersectionObserverRef.current = new IntersectionObserver(\n (entries) => {\n // If isIntersecting is true, then we're at the top of the scroll container\n // If isIntersecting is false, some scrolling has occurred.\n // The entries must be sorted by time and we only really need to look at the latest one\n const isIntersecting = entries\n .slice()\n .sort((a, b) => a.time - b.time)\n .at(0)?.isIntersecting;\n setHasContentScrolled(!isIntersecting);\n },\n {\n root: scrollableContentRef.current.parentElement,\n threshold: 1.0,\n },\n );\n }\n\n if (intersectionObserverRef.current && scrollableContentRef.current) {\n const ulElement = scrollableContentRef.current;\n const [liElement] = Array.from(ulElement?.children || []);\n\n if (liElement) {\n intersectionObserverRef.current.observe(liElement);\n }\n }\n\n // Cleanup when unmounted:\n return () => {\n if (resizeObserverRef.current) {\n resizeObserverRef.current.disconnect();\n resizeObserverRef.current = null;\n }\n if (intersectionObserverRef.current) {\n intersectionObserverRef.current.disconnect();\n intersectionObserverRef.current = null;\n }\n cancelAnimationFrame(resizeObserverDebounceTimer); // Ensure timer is cleared on component unmount\n };\n }, [sideNavItemsList]);\n\n const scrollIntoViewRef = useRef<HTMLLIElement>(null);\n /**\n * Look through the sideNavItems and determine which is the first node\n * with isSelected. This should be the node we set a ref on in order to\n * call scrollIntoView in the effect\n */\n const firstSideNavItemIdWithIsSelected = useMemo(() => {\n const flattenedItems = flattenNestedItems(sideNavItemsList);\n const firstItemWithIsSelected = flattenedItems.find(\n (sideNavItem) => sideNavItem.isSelected,\n );\n return firstItemWithIsSelected?.id;\n }, [sideNavItemsList]);\n /**\n * Once we've rendered and if we have an item to scroll to, do the scroll action.\n * This must rely on checking firstSideNavItemIdWithIsSelected or it will not run\n * once the actual ref is populated.\n */\n useEffect(() => {\n if (firstSideNavItemIdWithIsSelected && scrollIntoViewRef.current) {\n scrollIntoViewRef.current.scrollIntoView();\n }\n }, [firstSideNavItemIdWithIsSelected]);\n\n /**\n * We only want to put a ref on a node iff it is the first selected node.\n * This function returns the ref only if the ID provided matches the first\n * selected node, otherwise returns undefined (so that the node has no ref)\n */\n const getRefIfThisIsFirstNodeWithIsSelected = useCallback(\n (itemId: string) =>\n itemId === firstSideNavItemIdWithIsSelected\n ? scrollIntoViewRef\n : undefined,\n [firstSideNavItemIdWithIsSelected],\n );\n\n const setSelectedItem = useCallback(\n (selectedItemId: string) => {\n // Recursive function to update nested items\n const updateNestedSelection = (items: SideNavItem[]): SideNavItem[] => {\n return items.map((item) => {\n if (item.nestedNavItems) {\n return {\n ...item,\n isSelected: item.id === selectedItemId,\n nestedNavItems: updateNestedSelection(item.nestedNavItems),\n };\n }\n\n return {\n ...item,\n isSelected: item.id === selectedItemId,\n };\n });\n };\n\n const updatedSideNavItems = updateNestedSelection(sideNavItemsList);\n updateSideNavItemsList(updatedSideNavItems);\n\n if (isCollapsed || isObtrusive) {\n if (isCollapsible) {\n uiShellContext?.closeSideNavMenu();\n } else {\n onCollapse?.();\n }\n }\n },\n [\n isCollapsed,\n isCollapsible,\n isObtrusive,\n onCollapse,\n sideNavItemsList,\n uiShellContext,\n ],\n );\n\n const createAccordionContextValue = useCallback(\n (depth: number) => ({\n depth,\n }),\n [],\n );\n\n const createLeafItemContextValue = useCallback(\n (depth: number, isSortable?: boolean) => ({\n isCompact,\n depth,\n isSortable,\n absolutePaddingStart: leavesPaddingStart,\n }),\n [isCompact, leavesPaddingStart],\n );\n\n const renderSideNavItem = (item: SideNavItem, depth: number = 1) => {\n const {\n href,\n id,\n isDefaultExpanded,\n isDisabled,\n isExpanded,\n isSectionHeader,\n label,\n startIcon,\n nestedNavItems,\n isSortable,\n translate,\n } = item;\n\n if (isSectionHeader) {\n return (\n <ErrorBoundary fallback={blankElement} key={id}>\n <StyledSectionHeaderContainer\n contrastFontColor={uiShellContext?.sideNavContrastColors?.fontColor}\n id={id}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <Overline component=\"h3\">{label}</Overline>\n </StyledSectionHeaderContainer>\n </ErrorBoundary>\n );\n } else if (nestedNavItems && nestedNavItems.length > 0) {\n // Recursive case: item has nested children - ALWAYS render as accordion\n const nestedChildren = (\n <StyledSideNavListContainer role=\"presentation\">\n {isSortable ? (\n <SideNavSortableList\n depth={depth + 1}\n items={nestedNavItems}\n onChange={setSortedItems}\n parentId={item.id}\n processSideNavItems={processSideNavItems}\n />\n ) : (\n processSideNavItems(nestedNavItems, depth + 1).map(\n (item) => item.sortableItem.navItem,\n )\n )}\n </StyledSideNavListContainer>\n );\n\n return href ? (\n <ErrorBoundary fallback={blankElement} key={id}>\n <SideNavItemContent\n {...item}\n href={href}\n onItemSelected={setSelectedItem}\n scrollRef={getRefIfThisIsFirstNodeWithIsSelected(item.id)}\n startIcon={item.startIcon}\n />\n\n <StyledSideNavListItem\n aria-disabled={isDisabled}\n disabled={isDisabled}\n id={`${id}-items`}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {nestedChildren}\n </StyledSideNavListItem>\n </ErrorBoundary>\n ) : (\n <ErrorBoundary fallback={blankElement} key={id}>\n <StyledSideNavListItem\n aria-disabled={isDisabled}\n disabled={isDisabled}\n id={id}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <SideNavItemContentContext.Provider\n key={id}\n value={createAccordionContextValue(depth)}\n >\n <NavAccordion\n isCompact={isCompact}\n isDefaultExpanded={isDefaultExpanded}\n isDisabled={isDisabled}\n isExpanded={isExpanded}\n label={label}\n startIcon={startIcon}\n >\n {nestedChildren}\n </NavAccordion>\n </SideNavItemContentContext.Provider>\n </StyledSideNavListItem>\n </ErrorBoundary>\n );\n } else {\n // Base case: leaf item with no children\n return (\n <ErrorBoundary fallback={blankElement} key={id}>\n <SideNavItemContentContext.Provider\n key={id}\n value={createLeafItemContextValue(depth, isSortable)}\n >\n <SideNavItemContent\n {...item}\n onItemSelected={setSelectedItem}\n scrollRef={getRefIfThisIsFirstNodeWithIsSelected(id)}\n startIcon={startIcon}\n translate={translate}\n />\n </SideNavItemContentContext.Provider>\n </ErrorBoundary>\n );\n }\n };\n\n const processSideNavItems = (\n items: SideNavItem[],\n depth: number = 1,\n ): (SideNavItem & { sortableItem: BaseItem })[] => {\n return items?.map((item) => ({\n ...item,\n sortableItem: {\n id: item.id,\n isSelected: item.isSelected,\n isDisabled: item.isDisabled,\n isSortable: item.isSortable,\n navItem: renderSideNavItem(item, depth),\n },\n }));\n };\n\n const sideNavExpandClickHandler = useCallback(() => {\n setIsSideNavCollapsed((isSideNavCollapsed) => {\n if (isSideNavCollapsed) {\n onExpand?.();\n } else {\n onCollapse?.();\n }\n\n return !isSideNavCollapsed;\n });\n }, [onCollapse, onExpand, setIsSideNavCollapsed]);\n\n const sideNavExpandKeyHandler = useCallback<\n KeyboardEventHandler<HTMLButtonElement>\n >(\n (event) => {\n if (event?.key === \"Enter\" || event?.code === \"Space\") {\n event.preventDefault();\n sideNavExpandClickHandler();\n }\n },\n [sideNavExpandClickHandler],\n );\n\n useEffect(() => {\n const unsubscribe = uiShellContext?.subscribeToCloseSideNavMenu(() => {\n onCollapse?.();\n setIsSideNavCollapsed(true);\n });\n\n return () => {\n unsubscribe?.();\n };\n }, [onCollapse, setIsSideNavCollapsed, uiShellContext]);\n\n const setSortedItems = useCallback(\n (\n parentId: string,\n activeId: UniqueIdentifier,\n activeIndex: number,\n overIndex: number,\n ) => {\n const sortedSideNavItems = sideNavItemsList.map((item) =>\n item.id === parentId && item.nestedNavItems\n ? {\n ...item,\n nestedNavItems: arrayMove(\n item.nestedNavItems,\n activeIndex,\n overIndex,\n ),\n }\n : item,\n );\n updateSideNavItemsList(sortedSideNavItems);\n onSort?.(sortedSideNavItems, parentId, activeId, activeIndex, overIndex);\n },\n [onSort, sideNavItemsList],\n );\n\n const onSideNavToggleButtonHighlight = useCallback<\n NonNullable<SideNavToggleButtonProps[\"onHighlight\"]>\n >((isHighlighted) => {\n setIsSideNavToggleHighlighted(isHighlighted);\n }, []);\n\n return (\n <StyledSideNavContainer\n aria-label={t(\"navigation.label\")}\n backgroundColor={uiShellContext?.sideNavBackgroundColor}\n hasNeighbouringContentAtInlineStart={hasNeighbouringContentAtInlineStart}\n id=\"side-nav-expandable\"\n isAppContentWhiteBackground={\n uiShellContext?.appBackgroundColor ===\n odysseyDesignTokens.HueNeutralWhite\n }\n isSideNavCollapsed={isSideNavCollapsed}\n isSideNavToggleHighlighted={isSideNavToggleHighlighted}\n odysseyDesignTokens={odysseyDesignTokens}\n ref={sideNavRef}\n >\n {isCollapsible && (\n <StyledSideNavToggleButtonContainer\n hasNeighbouringContentAtInlineStart={\n hasNeighbouringContentAtInlineStart\n }\n isSideNavCollapsed={isSideNavCollapsed}\n isSideNavToggleHighlighted={isSideNavToggleHighlighted}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <SideNavToggleButton\n ariaControls=\"side-nav-expandable\"\n clickAreaPadding={\n isSideNavCollapsed && !hasNeighbouringContentAtInlineStart\n ? SIDE_NAV_TOGGLE_ICON_SIZE / 2\n : 0\n }\n isSideNavCollapsed={isSideNavCollapsed}\n onClick={sideNavExpandClickHandler}\n onHighlight={onSideNavToggleButtonHighlight}\n onKeyDown={sideNavExpandKeyHandler}\n />\n </StyledSideNavToggleButtonContainer>\n )}\n\n <OdysseyThemeProvider>\n <StyledCollapsibleContent\n data-se=\"collapsible-region\"\n isSideNavCollapsed={isSideNavCollapsed}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <StyledOpacityTransitionContainer\n isSideNavCollapsed={isSideNavCollapsed}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {appName || isLoading || logoProps ? (\n <StyledSideNavHeaderContainer\n borderColor={uiShellContext?.sideNavContrastColors?.fontColor}\n hasContentScrolled={hasContentScrolled}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {isLoading && !appName && !logoProps ? (\n <SideNavHeader isLoading={isLoading} />\n ) : (\n <SideNavHeader\n appName={appName}\n isLoading={isLoading}\n logoProps={logoProps}\n />\n )}\n </StyledSideNavHeaderContainer>\n ) : (\n <div />\n )}\n\n <StyledSideNavScrollableContainer\n data-se=\"scrollable-region\"\n hasBlockStartPadding={!appName}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <StyledSideNavListContainer\n ref={scrollableContentRef}\n role=\"none\"\n >\n {isLoading\n ? Array(6)\n .fill(null)\n .map((_, index) => <LoadingItem key={index} />)\n : processSideNavItems(sideNavItemsList).map(\n (item) => item.sortableItem.navItem,\n )}\n </StyledSideNavListContainer>\n {!isLoading && footerItems && !hasCustomFooter && (\n <StyledSideNavFooter\n odysseyDesignTokens={odysseyDesignTokens}\n sideNavBackgroundColor={\n uiShellContext?.sideNavBackgroundColor\n }\n >\n <StyledSideNavFooterItemsContainer\n odysseyDesignTokens={odysseyDesignTokens}\n sideNavContrastColors={\n uiShellContext?.sideNavContrastColors\n }\n >\n <SideNavFooterContent footerItems={footerItems} />\n </StyledSideNavFooterItemsContainer>\n </StyledSideNavFooter>\n )}\n </StyledSideNavScrollableContainer>\n {!isLoading && !footerItems && hasCustomFooter && (\n <StyledPersistentSideNavFooter\n isContentScrollable={isContentScrollable}\n odysseyDesignTokens={odysseyDesignTokens}\n sideNavBackgroundColor={uiShellContext?.sideNavBackgroundColor}\n >\n {footerComponent}\n </StyledPersistentSideNavFooter>\n )}\n </StyledOpacityTransitionContainer>\n </StyledCollapsibleContent>\n </OdysseyThemeProvider>\n </StyledSideNavContainer>\n );\n};\n\nconst MemoizedSideNav = memo(SideNav);\nMemoizedSideNav.displayName = \"SideNav\";\n\nexport { MemoizedSideNav as SideNav };\n"],"mappings":"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","ignoreList":[]}