@okta/odyssey-contribution-tooling 1.47.1 → 1.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (694) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/dist/assets/{Accordion-BUumLSm9.js → Accordion-BNJn0pfW.js} +1 -1
  3. package/dist/assets/{Accordion.stories-CaMgAnYN.js → Accordion.stories-DZIjfE-o.js} +3 -3
  4. package/dist/assets/{AccordionSummary-0jrOTJTD.js → AccordionSummary-BjqT0nEb.js} +1 -1
  5. package/dist/assets/{AlertTitle-BbBpDTwd.js → AlertTitle-q6ff_Zkl.js} +1 -1
  6. package/dist/assets/{AppSwitcher-B7j0xavZ.js → AppSwitcher-cyyPttJv.js} +1 -1
  7. package/dist/assets/{AppSwitcher.stories-BqeExztr.js → AppSwitcher.stories--8DVDaS1.js} +3 -3
  8. package/dist/assets/AppTile _labs_.stories-D9W_XD90.js +136 -0
  9. package/dist/assets/{ArrowDropDown-LYMnJjPD.js → ArrowDropDown-DdemyKZU.js} +1 -1
  10. package/dist/assets/{ArrowRight-Bi2Pswgc.js → ArrowRight-ChWYjNny.js} +1 -1
  11. package/dist/assets/{Autocomplete-DD8JT6Eb.js → Autocomplete-Cpi_kUVA.js} +1 -1
  12. package/dist/assets/Autocomplete-CxtGbb8j.js +1 -0
  13. package/dist/assets/{Autocomplete.stories-DjkuAafz.js → Autocomplete.stories-CQuaZrwN.js} +3 -3
  14. package/dist/assets/{Badge-C6SBtLt7.js → Badge-BO7bTIEa.js} +1 -1
  15. package/dist/assets/{Banner-itG3HAaL.js → Banner-K7AM0SJj.js} +1 -1
  16. package/dist/assets/{Banner.stories-o2KYQ49p.js → Banner.stories-BRQINNIu.js} +3 -3
  17. package/dist/assets/{BaseButton-COF38VLB.js → BaseButton-DYZHKnV3.js} +1 -1
  18. package/dist/assets/{BaseMenuButton-pigMBOEp.js → BaseMenuButton-BIietjUB.js} +1 -1
  19. package/dist/assets/{Box-BGpAHVQV.js → Box-1mvP3NLW.js} +1 -1
  20. package/dist/assets/Box-BcMTQ_R2.js +1 -0
  21. package/dist/assets/Box-DXoV5_ch.js +11 -0
  22. package/dist/assets/{Box.stories-Bl1v2MtQ.js → Box.stories-C8EeKXhb.js} +1 -1
  23. package/dist/assets/Breadcrumbs-Bp-jt6t5.js +6 -0
  24. package/dist/assets/Breadcrumbs.stories-B_3snTWA.js +79 -0
  25. package/dist/assets/{Bug-CF8uTmAI.js → Bug-CQIUmZ-N.js} +1 -1
  26. package/dist/assets/{Button-DGmXZ3jw.js → Button-BEA5U6Tg.js} +1 -1
  27. package/dist/assets/{Button-CdPi1pZc.js → Button-BzIwUmSM.js} +1 -1
  28. package/dist/assets/{Button.stories-DDHyMQ1_.js → Button.stories-S7v-663i.js} +2 -2
  29. package/dist/assets/ButtonBase-BNqa2TMD.js +74 -0
  30. package/dist/assets/{Calendar-DjJqG0qe.js → Calendar-_GPHtaRa.js} +1 -1
  31. package/dist/assets/{Callout-DyDdgWdc.js → Callout-FZxPpigF.js} +1 -1
  32. package/dist/assets/Callout.stories-CODSBn6K.js +105 -0
  33. package/dist/assets/Card-C0RGIer3.js +1 -0
  34. package/dist/assets/Card-CBiqCoFv.js +8 -0
  35. package/dist/assets/{Card.stories-B_l3D6T0.js → Card.stories-Cp5cSsvN.js} +1 -1
  36. package/dist/assets/{CardActionArea-BTMPt80M.js → CardActionArea-DWrXZntI.js} +1 -1
  37. package/dist/assets/CardActions-BQdq7Bn0.js +1 -0
  38. package/dist/assets/Checkbox-DPv3Q9UW.js +1 -0
  39. package/dist/assets/{Checkbox-BVTNXOF7.js → Checkbox-vZwuXtzm.js} +1 -1
  40. package/dist/assets/Checkbox.stories-9dZS0JMC.js +96 -0
  41. package/dist/assets/{CheckboxGroup-D-ykWUnV.js → CheckboxGroup-Be66QML5.js} +1 -1
  42. package/dist/assets/CheckboxGroup.stories-Cx6CsE7C.js +92 -0
  43. package/dist/assets/{ChevronRight-DkL07pJu.js → ChevronRight-C12ToI7Y.js} +1 -1
  44. package/dist/assets/{ChevronUp-DBzjQ0Vq.js → ChevronUp-CfT7Bz8X.js} +1 -1
  45. package/dist/assets/Chip-CXnMieIl.js +1 -0
  46. package/dist/assets/{CircularProgress-Dfpt5LAz.js → CircularProgress-DPxwxglU.js} +1 -1
  47. package/dist/assets/{CircularProgress-B5_VbcVt.js → CircularProgress-HbIdZLBB.js} +4 -4
  48. package/dist/assets/{CircularProgress.stories-Daf0R9vA.js → CircularProgress.stories-BCClfpJw.js} +1 -1
  49. package/dist/assets/{Clock-Cs7_WjUp.js → Clock-17ua7UAW.js} +1 -1
  50. package/dist/assets/{Close-ATS01D1v.js → Close-OXBt1nIe.js} +1 -1
  51. package/dist/assets/{Code Styling Guidelines-KEouIK7B.js → Code Styling Guidelines-CVbofGQK.js } +1 -1
  52. package/dist/assets/{Collapse-COoe3Qtd.js → Collapse-DfdoVIdP.js} +1 -1
  53. package/dist/assets/{Color-YHDXOIA2-DQdRRXzu.js → Color-YHDXOIA2-DT4T6TnK.js} +1 -1
  54. package/dist/assets/{CssBaseline-D-vAj66q.js → CssBaseline-DpDXOHEK.js} +1 -1
  55. package/dist/assets/{CssBaseline.stories-BOhXBF5h.js → CssBaseline.stories-DeSEyTd-.js} +1 -1
  56. package/dist/assets/{Custom Theming-DmPtfg8b.js → Custom Theming-CmbOHtP1.js } +5 -6
  57. package/dist/assets/Custom Theming.stories-CxVTbjdx.js +95 -0
  58. package/dist/assets/{DataFilters _labs_-blW_3eFm.js → DataFilters _labs_-DvUVhC-g.js } +2 -2
  59. package/dist/assets/{DataFilters _labs_.stories-D2qt9BDz.js → DataFilters _labs_.stories-Ca9tvzkv.js } +1 -1
  60. package/dist/assets/{DataFilters-49CUFFBF.js → DataFilters-BnT_U3-o.js} +1 -1
  61. package/dist/assets/DataTable _labs_-DL8Jc4Hl.js +41 -0
  62. package/dist/assets/{DataTable _labs_.stories-DrwT0H9g.js → DataTable _labs_.stories-C9Tljg4U.js } +2 -2
  63. package/dist/assets/{DataTable-Ka-SCcOh.js → DataTable-S0xhd1LQ.js} +2 -2
  64. package/dist/assets/{DataTable-DeujVhYp.js → DataTable-XayRBHyP.js} +3 -3
  65. package/dist/assets/{DataTable.stories-CaSfkouk.js → DataTable.stories-tcZyd507.js} +1 -1
  66. package/dist/assets/{DataView _labs_-CqZlEyu1.js → DataView _labs_-oQPoSKgb.js } +2 -2
  67. package/dist/assets/{DataView _labs_.stories-CXjSXDeF.js → DataView _labs_.stories-C_xQt04_.js } +1 -1
  68. package/dist/assets/{DataView-CYkwjPzk.js → DataView-C5rMFmwA.js} +7 -7
  69. package/dist/assets/{DataView.stories-DT0ROHOs.js → DataView.stories-oJRHGPAN.js} +148 -65
  70. package/dist/assets/DatePicker-BwDkz3WT.js +1 -0
  71. package/dist/assets/{DatePicker-C9sNy4fj.js → DatePicker-CaivHe9y.js} +2 -2
  72. package/dist/assets/DatePicker.stories-DbwO66Pf.js +133 -0
  73. package/dist/assets/DateTimePicker-B7a9bgL6.js +1 -0
  74. package/dist/assets/{DateTimePicker.stories-B2SaI9OL.js → DateTimePicker.stories-DL2oaP7L.js} +9 -9
  75. package/dist/assets/Design Tokens-CLnoritM.js +4 -0
  76. package/dist/assets/Dialog-CR4TUjlJ.js +1 -0
  77. package/dist/assets/Dialog.stories-2q37jV4r.js +201 -0
  78. package/dist/assets/{DialogContent-_oGbCJT8.js → DialogContent-Cwn-I-C_.js} +1 -1
  79. package/dist/assets/DialogTitle-C-K7jEio.js +1 -0
  80. package/dist/assets/{Divider-DsFAYUeD.js → Divider-Ln3VaO81.js} +1 -1
  81. package/dist/assets/{DocsRenderer-CFRXHY34-IKzmQUB4.js → DocsRenderer-CFRXHY34-CCeAz_jE.js} +1 -1
  82. package/dist/assets/{Documentation-BrTRsPbe.js → Documentation-DF3oo39e.js} +1 -1
  83. package/dist/assets/{Download-CnpAgqy2.js → Download-Zlhupksh.js} +1 -1
  84. package/dist/assets/Drawer-CXQ3piJR.js +33 -0
  85. package/dist/assets/Drawer.stories-Dlkg74m1.js +95 -0
  86. package/dist/assets/{EmptyState-9pxLjmqH.js → EmptyState-CpBEzmap.js} +2 -2
  87. package/dist/assets/EmptyState.stories-Dl57LvdY.js +11 -0
  88. package/dist/assets/ExampleButton.stories-Bbj5W6A-.js +320 -0
  89. package/dist/assets/{Extending Translations-DW0F3Xxk.js → Extending Translations-D38KR8Kn.js } +1 -1
  90. package/dist/assets/{ExternalLink-BZ-Yczsk.js → ExternalLink-D0l1c5Cz.js} +1 -1
  91. package/dist/assets/Fade-dUgBN8rJ.js +1 -0
  92. package/dist/assets/{Field-lyECanzU.js → Field-DH3L8v09.js} +2 -2
  93. package/dist/assets/{FieldHint-C3tXb7u4.js → FieldHint-B3Jif_Up.js} +1 -1
  94. package/dist/assets/{Fieldset-C2nSfkpl.js → Fieldset-D7_59eeI.js} +2 -2
  95. package/dist/assets/Fieldset.stories-B-NXKKP-.js +15 -0
  96. package/dist/assets/{FileUploader.stories-C8jSeElw.js → FileUploader.stories-C9ua336t.js} +8 -8
  97. package/dist/assets/{Filter-Dx8z3DNi.js → Filter-DsDJ7si-.js} +1 -1
  98. package/dist/assets/{Folder-BfxqGqvt.js → Folder-e-po0U54.js} +1 -1
  99. package/dist/assets/{Form Field Accessibility-Bk715sxq.js → Form Field Accessibility-D5GmQTjo.js } +1 -1
  100. package/dist/assets/{Form-BFqw21k4.js → Form-iTx8DKdm.js} +1 -1
  101. package/dist/assets/Form.stories-CKX8F-HV.js +69 -0
  102. package/dist/assets/{FormControlLabel-BKhSSavj.js → FormControlLabel-0BBemR80.js} +1 -1
  103. package/dist/assets/{FormGroup-Cuk9jkbL.js → FormGroup-HFkGZ983.js} +1 -1
  104. package/dist/assets/{FormHelperText-qF3DX-zz.js → FormHelperText-CsNAE1E3.js} +1 -1
  105. package/dist/assets/{FormLabel-BLj3hKkg.js → FormLabel-CiGre9wK.js} +1 -1
  106. package/dist/assets/{FullScreenOverlay-D_QtB3Yt.js → FullScreenOverlay-BTMDlJhE.js} +1 -1
  107. package/dist/assets/{Generating Icons-DU5C85Nu.js → Generating Icons-B_lqn7WI.js } +1 -1
  108. package/dist/assets/{Globe-Brrqdlv8.js → Globe-B83Xmd05.js} +1 -1
  109. package/dist/assets/{Grid-CZMVE6qU.js → Grid-EpV3TL4a.js} +1 -1
  110. package/dist/assets/{Group-B6q-i_C2.js → Group-mTVRC79V.js} +1 -1
  111. package/dist/assets/GroupPicker _labs_.stories-rRod3ZIj.js +33 -0
  112. package/dist/assets/Grow-C8kUeGCY.js +1 -0
  113. package/dist/assets/{Hide-DlEWsxsn.js → Hide-TKfOHglI.js} +1 -1
  114. package/dist/assets/Hint-DoJneNg9.js +11 -0
  115. package/dist/assets/{Home-BiP4Mg1h.js → Home-la7Lmt_L.js} +1 -1
  116. package/dist/assets/Icon _icons_.stories-BmisOf4s.js +16 -0
  117. package/dist/assets/{IconButton-OY9nJWpv.js → IconButton-5qShmnSr.js} +1 -1
  118. package/dist/assets/IconWithTooltip _icons_.stories-C86MVO5n.js +19 -0
  119. package/dist/assets/{InformationCircle-CE8ruoYu.js → InformationCircle-a2jMUKfL.js} +1 -1
  120. package/dist/assets/{InputAdornment-D4SsBOPe.js → InputAdornment-CdR3XT6f.js} +1 -1
  121. package/dist/assets/{InputBase-DSZ9ZgyW.js → InputBase-DeB4_faH.js} +2 -2
  122. package/dist/assets/{Installing odyssey-react-mui-XtugTFlz.js → Installing odyssey-react-mui-BlZZYALn.js } +24 -3
  123. package/dist/assets/{Introduction-Bt8Bd0mz.js → Introduction-D6814AO1.js} +6 -6
  124. package/dist/assets/{Layout-BduWITqf.js → Layout-DGOs1275.js} +1 -1
  125. package/dist/assets/{Layout.stories-BaeIV62G.js → Layout.stories-DE3l510g.js} +2 -2
  126. package/dist/assets/{Legacy Migrations-DZ-fx_Jl.js → Legacy Migrations-B9gOEz-l.js } +1 -1
  127. package/dist/assets/{Link-DI6v1ROk.js → Link-BDoLypER.js} +1 -1
  128. package/dist/assets/{Link-BnBknBcu.js → Link-DNIf0luC.js} +1 -1
  129. package/dist/assets/Link-dX7EI1Ct.js +11 -0
  130. package/dist/assets/{Link.stories-BY0xRfX5.js → Link.stories-DnkjU-5y.js} +1 -1
  131. package/dist/assets/{List-Be7fhh4_.js → List-CmjR1pNu.js} +1 -1
  132. package/dist/assets/{List-DsAZFSEg.js → List-UlX1tusJ.js} +1 -1
  133. package/dist/assets/{ListItem-C8ebNPnP.js → ListItem-C0ExFtXb.js} +1 -1
  134. package/dist/assets/{ListSubheader-Bwc0JItn.js → ListSubheader-CQJAAOsd.js} +1 -1
  135. package/dist/assets/Menu-K9lpVvDG.js +1 -0
  136. package/dist/assets/{MenuButton-Dr4RJoKG.js → MenuButton-B3T7c15t.js} +1 -1
  137. package/dist/assets/MenuButton-hdFGv_9Z.js +9 -0
  138. package/dist/assets/{MenuButton.stories-B5Ron3HG.js → MenuButton.stories-BRHUGqba.js} +1 -1
  139. package/dist/assets/{MenuItem-n-UKDxiu.js → MenuItem-CmSG6PNu.js} +1 -1
  140. package/dist/assets/{MenuItem-B0_vCuIq.js → MenuItem-vhp8G-Nb.js} +1 -1
  141. package/dist/assets/MenuItem.stories-dOOOz3KO.js +29 -0
  142. package/dist/assets/{MenuList-CW8ri5AI.js → MenuList-BMOesnfs.js} +1 -1
  143. package/dist/assets/Modal-CSDyCVCf.js +1 -0
  144. package/dist/assets/{More-D1qrtSvt.js → More-DLQ2RjWn.js} +1 -1
  145. package/dist/assets/NativeSelect.stories-DHgms1GM.js +173 -0
  146. package/dist/assets/{OdysseyProvider-2xjMTEu6.js → OdysseyProvider-qIn9QVYS.js} +5 -5
  147. package/dist/assets/{OdysseyStorybookThemeDecorator-BRjYVaUu.js → OdysseyStorybookThemeDecorator-BuDiOG2V.js} +1 -1
  148. package/dist/assets/{OdysseyThemeProvider-BBwjgzn2.js → OdysseyThemeProvider-Bh0Bu-2o.js} +1 -1
  149. package/dist/assets/{PageHeader.stories-q0-kxFNT.js → PageHeader.stories-MDEEjM1g.js} +2 -2
  150. package/dist/assets/PageHeader.stories-eACdVWYK.js +57 -0
  151. package/dist/assets/PageTemplate _labs_-BuvgCua7.js +8 -0
  152. package/dist/assets/{PageTemplate _labs_.stories-DtJtMC5B.js → PageTemplate _labs_.stories-C8RdfTqi.js } +1 -1
  153. package/dist/assets/{PageTemplate-mNUP99LO.js → PageTemplate-D-EQlTUx.js} +2 -2
  154. package/dist/assets/PageTemplate.stories-BzgC-WCT.js +197 -0
  155. package/dist/assets/{PaginatedTable _labs_.stories--9YveFu7.js → PaginatedTable _labs_.stories-CvpuSFlt.js } +3 -3
  156. package/dist/assets/{Pagination-D6myvUfo.js → Pagination-CB1wBW8Q.js} +2 -2
  157. package/dist/assets/Pagination.stories-RoH8O-RA.js +17 -0
  158. package/dist/assets/{Paper-XsV8SWR9.js → Paper-D-_O-EjU.js} +1 -1
  159. package/dist/assets/PasswordField.stories-BUOy4gYe.js +129 -0
  160. package/dist/assets/Picker _labs_.stories-BIZmrH82.js +18 -0
  161. package/dist/assets/{PickerWithOptionAdornment _labs_.stories-DZ_mcN9y.js → PickerWithOptionAdornment _labs_.stories-CQYX6Af7.js } +3 -3
  162. package/dist/assets/Popper-BARIxJrI.js +1 -0
  163. package/dist/assets/Portal-C6D59xAE.js +1 -0
  164. package/dist/assets/ProgressBar.stories-Dyp9UXSp.js +311 -0
  165. package/dist/assets/{Radio-BimAm2in.js → Radio-B4gVvwps.js} +1 -1
  166. package/dist/assets/Radio-BdNnpooK.js +1 -0
  167. package/dist/assets/{Radio.stories-BIH7UBMO.js → Radio.stories-BtiaRnXY.js} +3 -3
  168. package/dist/assets/{RadioGroup-DhVJQTpS.js → RadioGroup-BYJZ378_.js} +1 -1
  169. package/dist/assets/RadioGroup-CtUWSbQc.js +1 -0
  170. package/dist/assets/RadioGroup-D1k5iqEQ.js +10 -0
  171. package/dist/assets/RadioGroup.stories-kfMrpCQ4.js +138 -0
  172. package/dist/assets/{Refresh-GVzSl4pN.js → Refresh-DexPEklu.js} +1 -1
  173. package/dist/assets/ResourceAccessPolicyComponentsStorybookThemeDecorator-Bo_QNpfC.js +212 -0
  174. package/dist/assets/{Right-to-Left (RTL)-DyJ58shp.js → Right-to-Left (RTL)-BHFSR1q8.js } +1 -1
  175. package/dist/assets/{ScreenReaderText-CM78bF1y.js → ScreenReaderText-CebALBsG.js} +1 -1
  176. package/dist/assets/{ScreenReaderText-CqMaDm6f.js → ScreenReaderText-DkVEZTIb.js} +2 -2
  177. package/dist/assets/ScreenReaderText.stories-BuS5WxvE.js +8 -0
  178. package/dist/assets/{Search-CkfJXFe5.js → Search-C5TVrLyE.js} +1 -1
  179. package/dist/assets/{SearchDropdown _labs_.stories-BQPhsSku.js → SearchDropdown _labs_.stories-Bq7Qapoa.js } +3 -3
  180. package/dist/assets/{SearchField-CYM6nbh5.js → SearchField-BdnOrhVM.js} +1 -1
  181. package/dist/assets/SearchField.stories-IB3f7QOK.js +37 -0
  182. package/dist/assets/Select-DZTigpTO.js +1 -0
  183. package/dist/assets/{Select-DJ071lNE.js → Select-KZvejALm.js} +2 -2
  184. package/dist/assets/{Select.stories-Dv7mWYvh.js → Select.stories-5trfU4Ma.js} +2 -2
  185. package/dist/assets/{Server-DjXPiVgb.js → Server-Ch5aeRtt.js} +1 -1
  186. package/dist/assets/{Settings-CjXK8-N1.js → Settings-2rTKyez8.js} +1 -1
  187. package/dist/assets/{Setup-C5eWg4Hp.js → Setup-BDM9nDVO.js} +1 -1
  188. package/dist/assets/{Shadow DOM-CwtnF89G.js → Shadow DOM-DHECKIzr.js } +1 -1
  189. package/dist/assets/{Show-BmUFIvXd.js → Show-BnmQFsN6.js} +1 -1
  190. package/dist/assets/{SideNav-CJ4qafJJ.js → SideNav-5pMdKSEl.js} +13 -13
  191. package/dist/assets/{SideNav-Bks9RS2j.js → SideNav-bhdOFKbL.js} +3 -3
  192. package/dist/assets/{SideNav.stories-C1fpy9wN.js → SideNav.stories-ciX1pArE.js} +1 -1
  193. package/dist/assets/{Skeleton-dfR0DjWP.js → Skeleton-BPjIT6NG.js} +5 -5
  194. package/dist/assets/Snackbar-BM0ZOC4Y.js +1 -0
  195. package/dist/assets/{Stack-DKhviX3e.js → Stack-B7OGvu7C.js} +1 -1
  196. package/dist/assets/{Stack.stories-BDHo9eFa.js → Stack.stories-CYylNLHT.js} +1 -1
  197. package/dist/assets/{StaticTable _labs_.stories-Dxpy5sLd.js → StaticTable _labs_.stories-ChL0Cwn4.js } +3 -3
  198. package/dist/assets/{Status-BpzpxYZ-.js → Status-BlOUycBm.js} +1 -1
  199. package/dist/assets/{Status.stories-DLINjRQE.js → Status.stories-Dv4b1Z5X.js} +2 -2
  200. package/dist/assets/{Surface-3Y97A1O8.js → Surface-DTngmQRF.js} +1 -1
  201. package/dist/assets/{Switch.stories-pYIYfkr3.js → Switch.stories-hjVvL7UR.js} +5 -5
  202. package/dist/assets/{SwitchBase-D-uzeIbM.js → SwitchBase-CefEM0OA.js} +1 -1
  203. package/dist/assets/{Sync-DFFNrTTV.js → Sync-BbqTDeWk.js} +1 -1
  204. package/dist/assets/Tabs-CQz87GHd.js +1 -0
  205. package/dist/assets/{Tabs-SRLNy8_X.js → Tabs-gXh7YFSu.js} +6 -6
  206. package/dist/assets/Tabs.stories-CRJgQA20.js +100 -0
  207. package/dist/assets/{Tag-BgjQI7VM.js → Tag-DwH0t814.js} +1 -1
  208. package/dist/assets/Tag.stories-CoLnXBke.js +96 -0
  209. package/dist/assets/{TagList-DGN86KvF.js → TagList-BZGEhGXn.js} +1 -1
  210. package/dist/assets/{TextField-BuwBI2RX.js → TextField-BhK0y2Zt.js} +1 -1
  211. package/dist/assets/{TextField.stories-DL7enA3k.js → TextField.stories-DYOK0z5b.js} +2 -2
  212. package/dist/assets/Toast.stories-BipAY3GN.js +134 -0
  213. package/dist/assets/ToastManager.stories-BWZvSWGT.js +196 -0
  214. package/dist/assets/Tooltip-Cq2rQGbD.js +1 -0
  215. package/dist/assets/{Tooltip-XQJL1Byd.js → Tooltip-CsVWtVfL.js} +1 -1
  216. package/dist/assets/Tooltip.stories-B6wyATg5.js +68 -0
  217. package/dist/assets/{TopNav-dZWiR_bv.js → TopNav-DEIYDz6v.js} +1 -1
  218. package/dist/assets/TopNav.stories-DJNZEi08.js +13 -0
  219. package/dist/assets/TransitionGroupContext-DAL84N7p.js +1 -0
  220. package/dist/assets/{Typography-CORddEdk.js → Typography-CkeEfKaM.js} +1 -1
  221. package/dist/assets/{Typography-Yf1Zkad_.js → Typography-ClQ35Rr-.js} +1 -1
  222. package/dist/assets/{Typography-DfSdXC7o.js → Typography-Cz6D417Y.js} +1 -1
  223. package/dist/assets/Typography-r6MlG5YM.js +1 -0
  224. package/dist/assets/Typography.stories-93RlEwpU.js +73 -0
  225. package/dist/assets/{Typography.stories-D-TscJaP.js → Typography.stories-DRUYEGzH.js} +1 -1
  226. package/dist/assets/{UiShell.stories-BRpnZ7zi.js → UiShell.stories-HV8yGvd3.js} +3 -3
  227. package/dist/assets/{UiShellProvider-BOM87LOZ.js → UiShellProvider-BEcD16AU.js} +1 -1
  228. package/dist/assets/{Upload-CXJBKzcC.js → Upload-CfzP_Muq.js} +1 -1
  229. package/dist/assets/{User-D6db-Gy0.js → User-CyxEAfVT.js} +1 -1
  230. package/dist/assets/{UserProfile-DqokqHU1.js → UserProfile-B6GSEZPs.js} +1 -1
  231. package/dist/assets/UserProfile.stories-Cx9GmLsV.js +14 -0
  232. package/dist/assets/{UserProfileMenuButton.stories-CKErfTVM.js → UserProfileMenuButton.stories-BjxJHNWm.js} +3 -3
  233. package/dist/assets/{Video-B1Csvrbu.js → Video-DWT3WylB.js} +1 -1
  234. package/dist/assets/WorkflowsComponentsStorybookThemeDecorator-CxOFxh0W.js +197 -0
  235. package/dist/assets/assertThisInitialized-B9jnkVVz.js +1 -0
  236. package/dist/assets/{colorManipulator-CjGkpVfF.js → colorManipulator-DKifQsuo.js} +1 -1
  237. package/dist/assets/createBox-Dxawkfow.js +1 -0
  238. package/dist/assets/{createStyled-D0LG5-qz.js → createStyled-D6bTcpHC.js} +1 -1
  239. package/dist/assets/{createSvgIcon-DsUj6UQo.js → createSvgIcon-ClUWwDzL.js} +1 -1
  240. package/dist/assets/{dialogActionsClasses-BWrWITLY.js → dialogActionsClasses-ZEPlxVw-.js} +1 -1
  241. package/dist/assets/emotion-react-jsx-runtime.browser.esm-DL0BDwaj.js +1 -0
  242. package/dist/assets/{entry-preview-CklzQ6bB.js → entry-preview-BxxndF3a.js} +1 -1
  243. package/dist/assets/getReactElementRef-DsIevm5t.js +1 -0
  244. package/dist/assets/i18next-7SyOfhCu.js +1 -0
  245. package/dist/assets/{iconUtils-B6sV00nC.js → iconUtils-BII10A1q.js} +1 -1
  246. package/dist/assets/{iframe-CXLAql3E.js → iframe-Cf-Lpz6Y.js} +2 -2
  247. package/dist/assets/{index-Dj8r1U9U.js → index-DB8HwIVZ.js} +1 -1
  248. package/dist/assets/{index-BqmbiZ7T.js → index-DLgQDw3r.js} +3 -3
  249. package/dist/assets/{index-DRboDwvZ.js → index-Ml2UeFXJ.js} +1 -1
  250. package/dist/assets/index-_dyfSX8u.js +1 -0
  251. package/dist/assets/index.esm-CBOWgn41.js +1 -0
  252. package/dist/assets/{index.esm-CaIA2ztV.js → index.esm-DTxqsiYY.js} +1 -1
  253. package/dist/assets/inheritsLoose-CJ6Ie9dp.js +1 -0
  254. package/dist/assets/{personData-zrA1iJih.js → personData-BYPP3apv.js} +1 -1
  255. package/dist/assets/{personData-vW3mumD1.js → personData-CRkmqebZ.js} +1 -1
  256. package/dist/assets/{pickerComponentPropsMetadata-P9x80E4R.js → pickerComponentPropsMetadata-D10GkMIO.js} +3 -3
  257. package/dist/assets/popper-BVOCD5jc.js +1 -0
  258. package/dist/assets/{preview-BprB3Yzd.js → preview-D06dtFvI.js} +2 -2
  259. package/dist/assets/{preview-_inBJXZG.js → preview-Dk8DzNBz.js} +1 -1
  260. package/dist/assets/renderUiShell.stories-CAw-IOS4.js +866 -0
  261. package/dist/assets/{resolveComponentProps-BzfJewMt.js → resolveComponentProps-DXQ8X87i.js} +1 -1
  262. package/dist/assets/{tableSortLabelClasses-DtOYtU1J.js → tableSortLabelClasses-CkKrbp1R.js} +1 -1
  263. package/dist/assets/{useAutocomplete-DwWveFvJ.js → useAutocomplete-BRetTkpF.js} +1 -1
  264. package/dist/assets/{useMobilePicker-5I3ooa1D.js → useMobilePicker-DZhX9dEQ.js} +1 -1
  265. package/dist/assets/useOdysseyDateFields-DPSkeXJj.js +61 -0
  266. package/dist/assets/{useScrollIndication-C4t86M0g.js → useScrollIndication-mYI-g6xa.js} +3 -3
  267. package/dist/assets/{useSlot-CaOQD_17.js → useSlot-CvpE2t6D.js} +1 -1
  268. package/dist/assets/useThemeProps-BPvYx-mf.js +1 -0
  269. package/dist/assets/useThemeProps-DwvbKxez.js +1 -0
  270. package/dist/assets/utils-kUZVaD1e.js +1 -0
  271. package/dist/cjs/DataTable/DataTable.cjs +18 -16
  272. package/dist/cjs/DataTable/DataTable.cjs.map +1 -1
  273. package/dist/cjs/DataTable/DataTableRowActions.cjs +13 -12
  274. package/dist/cjs/DataTable/DataTableRowActions.cjs.map +1 -1
  275. package/dist/cjs/DataTable/DataTableSettings.cjs +9 -8
  276. package/dist/cjs/DataTable/DataTableSettings.cjs.map +1 -1
  277. package/dist/cjs/DatePickers/DateFieldActionBar.cjs +3 -3
  278. package/dist/cjs/DatePickers/DateFieldActionBar.cjs.map +1 -1
  279. package/dist/cjs/DatePickers/DatePicker.cjs +2 -2
  280. package/dist/cjs/DatePickers/DatePicker.cjs.map +1 -1
  281. package/dist/cjs/DatePickers/datePickerTheme.cjs +2 -2
  282. package/dist/cjs/DatePickers/datePickerTheme.cjs.map +1 -1
  283. package/dist/cjs/Dialog.cjs +4 -4
  284. package/dist/cjs/Dialog.cjs.map +1 -1
  285. package/dist/cjs/Drawer.cjs +29 -18
  286. package/dist/cjs/Drawer.cjs.map +1 -1
  287. package/dist/cjs/{Checkbox.cjs → Fields/Checkbox.cjs} +7 -16
  288. package/dist/cjs/Fields/Checkbox.cjs.map +1 -0
  289. package/dist/cjs/{CheckboxGroup.cjs → Fields/CheckboxGroup.cjs} +1 -1
  290. package/dist/cjs/Fields/CheckboxGroup.cjs.map +1 -0
  291. package/dist/cjs/Fields/Hint.cjs +31 -0
  292. package/dist/cjs/Fields/Hint.cjs.map +1 -0
  293. package/dist/cjs/{Radio.cjs → Fields/Radio.cjs} +5 -14
  294. package/dist/cjs/Fields/Radio.cjs.map +1 -0
  295. package/dist/cjs/{RadioGroup.cjs → Fields/RadioGroup.cjs} +2 -2
  296. package/dist/cjs/Fields/RadioGroup.cjs.map +1 -0
  297. package/dist/cjs/FileUploader/FileUploader.cjs +6 -6
  298. package/dist/cjs/FileUploader/FileUploader.cjs.map +1 -1
  299. package/dist/cjs/Form.cjs.map +1 -1
  300. package/dist/cjs/OdysseyThemeProvider.cjs +2 -2
  301. package/dist/cjs/OdysseyThemeProvider.cjs.map +1 -1
  302. package/dist/cjs/OdysseyThemeProviderPropsContext.cjs.map +1 -1
  303. package/dist/cjs/Pagination/Pagination.cjs +7 -7
  304. package/dist/cjs/Pagination/Pagination.cjs.map +1 -1
  305. package/dist/cjs/Toast.cjs +4 -4
  306. package/dist/cjs/Toast.cjs.map +1 -1
  307. package/dist/cjs/__internal.cjs +143 -0
  308. package/dist/cjs/__internal.cjs.map +1 -1
  309. package/dist/cjs/index.cjs +685 -613
  310. package/dist/cjs/index.cjs.map +1 -1
  311. package/dist/cjs/labs/AppTile.cjs +2 -2
  312. package/dist/cjs/labs/AppTile.cjs.map +1 -1
  313. package/dist/cjs/labs/DataFilters.cjs +16 -16
  314. package/dist/cjs/labs/DataFilters.cjs.map +1 -1
  315. package/dist/cjs/labs/DataTablePagination.cjs +7 -7
  316. package/dist/cjs/labs/DataTablePagination.cjs.map +1 -1
  317. package/dist/cjs/labs/DataView/BulkActionsMenu.cjs +7 -6
  318. package/dist/cjs/labs/DataView/BulkActionsMenu.cjs.map +1 -1
  319. package/dist/cjs/labs/DataView/DataView.cjs +8 -7
  320. package/dist/cjs/labs/DataView/DataView.cjs.map +1 -1
  321. package/dist/cjs/labs/DataView/LayoutSwitcher.cjs +4 -3
  322. package/dist/cjs/labs/DataView/LayoutSwitcher.cjs.map +1 -1
  323. package/dist/cjs/labs/DataView/RowActions.cjs +10 -10
  324. package/dist/cjs/labs/DataView/RowActions.cjs.map +1 -1
  325. package/dist/cjs/labs/DataView/TableLayoutContent.cjs +11 -10
  326. package/dist/cjs/labs/DataView/TableLayoutContent.cjs.map +1 -1
  327. package/dist/cjs/labs/DataView/TableSettings.cjs +9 -8
  328. package/dist/cjs/labs/DataView/TableSettings.cjs.map +1 -1
  329. package/dist/cjs/labs/DataView/componentTypes.cjs.map +1 -1
  330. package/dist/cjs/labs/DataView/useFilterConversion.cjs.map +1 -1
  331. package/dist/cjs/labs/DatePickers/DateTimePicker.cjs +7 -7
  332. package/dist/cjs/labs/DatePickers/DateTimePicker.cjs.map +1 -1
  333. package/dist/cjs/labs/DatePickers/dateTimePickerTheme.cjs +3 -3
  334. package/dist/cjs/labs/DatePickers/dateTimePickerTheme.cjs.map +1 -1
  335. package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs +2 -2
  336. package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs.map +1 -1
  337. package/dist/cjs/labs/index.cjs +156 -28
  338. package/dist/cjs/labs/index.cjs.map +1 -1
  339. package/dist/cjs/ui-shell/SideNav/NavAccordion.cjs +2 -0
  340. package/dist/cjs/ui-shell/SideNav/NavAccordion.cjs.map +1 -1
  341. package/dist/cjs/ui-shell/SideNav/SideNav.cjs +5 -3
  342. package/dist/cjs/ui-shell/SideNav/SideNav.cjs.map +1 -1
  343. package/dist/cjs/ui-shell/SideNav/types.cjs.map +1 -1
  344. package/dist/cjs/ui-shell/WideUiShellContent.cjs +9 -9
  345. package/dist/cjs/ui-shell/WideUiShellContent.cjs.map +1 -1
  346. package/dist/cjs/ui-shell/index.cjs +24 -12
  347. package/dist/cjs/ui-shell/index.cjs.map +1 -1
  348. package/dist/cjs/ui-shell/renderUiShell.cjs +4 -2
  349. package/dist/cjs/ui-shell/renderUiShell.cjs.map +1 -1
  350. package/dist/cjs/web-component/createShadowDomElements.cjs +2 -2
  351. package/dist/cjs/web-component/createShadowDomElements.cjs.map +1 -1
  352. package/dist/cjs/web-component/{removeGlobalStylesFromShadowDom.cjs → encapsulateShadowDomFromGlobalStyles.cjs} +4 -4
  353. package/dist/cjs/web-component/encapsulateShadowDomFromGlobalStyles.cjs.map +1 -0
  354. package/dist/cjs/web-component/index.cjs +4 -4
  355. package/dist/cjs/web-component/index.cjs.map +1 -1
  356. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs +1 -1
  357. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs.map +1 -1
  358. package/dist/cjs/web-component/renderReactInWebComponent.cjs +12 -8
  359. package/dist/cjs/web-component/renderReactInWebComponent.cjs.map +1 -1
  360. package/dist/esm/DataTable/DataTable.js +4 -2
  361. package/dist/esm/DataTable/DataTable.js.map +1 -1
  362. package/dist/esm/DataTable/DataTableRowActions.js +2 -1
  363. package/dist/esm/DataTable/DataTableRowActions.js.map +1 -1
  364. package/dist/esm/DataTable/DataTableSettings.js +2 -1
  365. package/dist/esm/DataTable/DataTableSettings.js.map +1 -1
  366. package/dist/esm/DatePickers/DateFieldActionBar.js +1 -1
  367. package/dist/esm/DatePickers/DateFieldActionBar.js.map +1 -1
  368. package/dist/esm/DatePickers/DatePicker.js +1 -1
  369. package/dist/esm/DatePickers/DatePicker.js.map +1 -1
  370. package/dist/esm/DatePickers/datePickerTheme.js +1 -1
  371. package/dist/esm/DatePickers/datePickerTheme.js.map +1 -1
  372. package/dist/esm/Dialog.js +1 -1
  373. package/dist/esm/Dialog.js.map +1 -1
  374. package/dist/esm/Drawer.js +26 -15
  375. package/dist/esm/Drawer.js.map +1 -1
  376. package/dist/esm/{Checkbox.js → Fields/Checkbox.js} +6 -16
  377. package/dist/esm/Fields/Checkbox.js.map +1 -0
  378. package/dist/esm/{CheckboxGroup.js → Fields/CheckboxGroup.js} +1 -1
  379. package/dist/esm/Fields/CheckboxGroup.js.map +1 -0
  380. package/dist/esm/Fields/Hint.js +24 -0
  381. package/dist/esm/Fields/Hint.js.map +1 -0
  382. package/dist/esm/{Radio.js → Fields/Radio.js} +4 -14
  383. package/dist/esm/Fields/Radio.js.map +1 -0
  384. package/dist/esm/{RadioGroup.js → Fields/RadioGroup.js} +2 -2
  385. package/dist/esm/Fields/RadioGroup.js.map +1 -0
  386. package/dist/esm/FileUploader/FileUploader.js +2 -3
  387. package/dist/esm/FileUploader/FileUploader.js.map +1 -1
  388. package/dist/esm/Form.js.map +1 -1
  389. package/dist/esm/OdysseyThemeProvider.js +1 -1
  390. package/dist/esm/OdysseyThemeProvider.js.map +1 -1
  391. package/dist/esm/OdysseyThemeProviderPropsContext.js.map +1 -1
  392. package/dist/esm/Pagination/Pagination.js +1 -1
  393. package/dist/esm/Pagination/Pagination.js.map +1 -1
  394. package/dist/esm/Toast.js +1 -1
  395. package/dist/esm/Toast.js.map +1 -1
  396. package/dist/esm/__internal.js +13 -0
  397. package/dist/esm/__internal.js.map +1 -1
  398. package/dist/esm/index.js +62 -54
  399. package/dist/esm/index.js.map +1 -1
  400. package/dist/esm/labs/AppTile.js +1 -1
  401. package/dist/esm/labs/AppTile.js.map +1 -1
  402. package/dist/esm/labs/DataFilters.js +5 -5
  403. package/dist/esm/labs/DataFilters.js.map +1 -1
  404. package/dist/esm/labs/DataTablePagination.js +1 -1
  405. package/dist/esm/labs/DataTablePagination.js.map +1 -1
  406. package/dist/esm/labs/DataView/BulkActionsMenu.js +2 -1
  407. package/dist/esm/labs/DataView/BulkActionsMenu.js.map +1 -1
  408. package/dist/esm/labs/DataView/DataView.js +3 -2
  409. package/dist/esm/labs/DataView/DataView.js.map +1 -1
  410. package/dist/esm/labs/DataView/LayoutSwitcher.js +2 -1
  411. package/dist/esm/labs/DataView/LayoutSwitcher.js.map +1 -1
  412. package/dist/esm/labs/DataView/RowActions.js +1 -1
  413. package/dist/esm/labs/DataView/RowActions.js.map +1 -1
  414. package/dist/esm/labs/DataView/TableLayoutContent.js +2 -1
  415. package/dist/esm/labs/DataView/TableLayoutContent.js.map +1 -1
  416. package/dist/esm/labs/DataView/TableSettings.js +2 -1
  417. package/dist/esm/labs/DataView/TableSettings.js.map +1 -1
  418. package/dist/esm/labs/DataView/componentTypes.js.map +1 -1
  419. package/dist/esm/labs/DataView/useFilterConversion.js.map +1 -1
  420. package/dist/esm/labs/DatePickers/DateTimePicker.js +2 -2
  421. package/dist/esm/labs/DatePickers/DateTimePicker.js.map +1 -1
  422. package/dist/esm/labs/DatePickers/dateTimePickerTheme.js +1 -1
  423. package/dist/esm/labs/DatePickers/dateTimePickerTheme.js.map +1 -1
  424. package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js +1 -1
  425. package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js.map +1 -1
  426. package/dist/esm/labs/index.js +18 -7
  427. package/dist/esm/labs/index.js.map +1 -1
  428. package/dist/esm/ui-shell/SideNav/NavAccordion.js +2 -0
  429. package/dist/esm/ui-shell/SideNav/NavAccordion.js.map +1 -1
  430. package/dist/esm/ui-shell/SideNav/SideNav.js +4 -2
  431. package/dist/esm/ui-shell/SideNav/SideNav.js.map +1 -1
  432. package/dist/esm/ui-shell/SideNav/types.js.map +1 -1
  433. package/dist/esm/ui-shell/WideUiShellContent.js +3 -3
  434. package/dist/esm/ui-shell/WideUiShellContent.js.map +1 -1
  435. package/dist/esm/ui-shell/index.js +4 -3
  436. package/dist/esm/ui-shell/index.js.map +1 -1
  437. package/dist/esm/ui-shell/renderUiShell.js +4 -2
  438. package/dist/esm/ui-shell/renderUiShell.js.map +1 -1
  439. package/dist/esm/web-component/createShadowDomElements.js +2 -2
  440. package/dist/esm/web-component/createShadowDomElements.js.map +1 -1
  441. package/dist/esm/web-component/{removeGlobalStylesFromShadowDom.js → encapsulateShadowDomFromGlobalStyles.js} +2 -2
  442. package/dist/esm/web-component/encapsulateShadowDomFromGlobalStyles.js.map +1 -0
  443. package/dist/esm/web-component/index.js +1 -1
  444. package/dist/esm/web-component/index.js.map +1 -1
  445. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js +1 -1
  446. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js.map +1 -1
  447. package/dist/esm/web-component/renderReactInWebComponent.js +12 -8
  448. package/dist/esm/web-component/renderReactInWebComponent.js.map +1 -1
  449. package/dist/iframe.html +1 -1
  450. package/dist/index.d.ts +21 -232
  451. package/dist/index.json +1 -1
  452. package/dist/project.json +1 -1
  453. package/dist/sb-addons/storybook-13/manager-bundle.js +1 -1
  454. package/dist/tsconfig.production.tsbuildinfo +1 -1
  455. package/dist/tsconfig.tsbuildinfo +1 -1
  456. package/dist/types/DataTable/DataTable.d.ts +3 -3
  457. package/dist/types/DataTable/DataTable.d.ts.map +1 -1
  458. package/dist/types/DataTable/DataTableRowActions.d.ts +2 -1
  459. package/dist/types/DataTable/DataTableRowActions.d.ts.map +1 -1
  460. package/dist/types/DataTable/DataTableSettings.d.ts.map +1 -1
  461. package/dist/types/Dialog.d.ts +1 -1
  462. package/dist/types/Dialog.d.ts.map +1 -1
  463. package/dist/types/Drawer.d.ts +1 -1
  464. package/dist/types/Drawer.d.ts.map +1 -1
  465. package/dist/types/{Checkbox.d.ts → Fields/Checkbox.d.ts} +4 -4
  466. package/dist/types/Fields/Checkbox.d.ts.map +1 -0
  467. package/dist/types/{CheckboxGroup.d.ts → Fields/CheckboxGroup.d.ts} +2 -2
  468. package/dist/types/Fields/CheckboxGroup.d.ts.map +1 -0
  469. package/dist/{esm/DatePickers/index.js → types/Fields/Hint.d.ts} +9 -6
  470. package/dist/types/Fields/Hint.d.ts.map +1 -0
  471. package/dist/types/{Radio.d.ts → Fields/Radio.d.ts} +3 -3
  472. package/dist/types/Fields/Radio.d.ts.map +1 -0
  473. package/dist/types/{RadioGroup.d.ts → Fields/RadioGroup.d.ts} +2 -2
  474. package/dist/types/Fields/RadioGroup.d.ts.map +1 -0
  475. package/dist/types/FileUploader/FileUploader.d.ts +1 -2
  476. package/dist/types/FileUploader/FileUploader.d.ts.map +1 -1
  477. package/dist/types/Form.d.ts +1 -1
  478. package/dist/types/Form.d.ts.map +1 -1
  479. package/dist/types/OdysseyThemeProviderPropsContext.d.ts +1 -1
  480. package/dist/types/__internal.d.ts +13 -0
  481. package/dist/types/__internal.d.ts.map +1 -1
  482. package/dist/types/index.d.ts.map +1 -1
  483. package/dist/types/labs/DataView/BulkActionsMenu.d.ts.map +1 -1
  484. package/dist/types/labs/DataView/DataView.d.ts.map +1 -1
  485. package/dist/types/labs/DataView/LayoutSwitcher.d.ts.map +1 -1
  486. package/dist/types/labs/DataView/RowActions.d.ts +2 -1
  487. package/dist/types/labs/DataView/RowActions.d.ts.map +1 -1
  488. package/dist/types/labs/DataView/TableLayoutContent.d.ts.map +1 -1
  489. package/dist/types/labs/DataView/TableSettings.d.ts.map +1 -1
  490. package/dist/types/labs/DataView/componentTypes.d.ts +1 -1
  491. package/dist/types/labs/DataView/componentTypes.d.ts.map +1 -1
  492. package/dist/types/labs/index.d.ts +19 -7
  493. package/dist/types/labs/index.d.ts.map +1 -1
  494. package/dist/types/tsconfig.tsbuildinfo +1 -1
  495. package/dist/types/ui-shell/SideNav/NavAccordion.d.ts +1 -1
  496. package/dist/types/ui-shell/SideNav/NavAccordion.d.ts.map +1 -1
  497. package/dist/types/ui-shell/SideNav/SideNav.d.ts +0 -2
  498. package/dist/types/ui-shell/SideNav/SideNav.d.ts.map +1 -1
  499. package/dist/types/ui-shell/SideNav/types.d.ts +4 -0
  500. package/dist/types/ui-shell/SideNav/types.d.ts.map +1 -1
  501. package/dist/types/ui-shell/index.d.ts +4 -3
  502. package/dist/types/ui-shell/index.d.ts.map +1 -1
  503. package/dist/types/ui-shell/renderUiShell.d.ts +5 -1
  504. package/dist/types/ui-shell/renderUiShell.d.ts.map +1 -1
  505. package/dist/types/web-component/{removeGlobalStylesFromShadowDom.d.ts → encapsulateShadowDomFromGlobalStyles.d.ts} +2 -2
  506. package/dist/types/web-component/encapsulateShadowDomFromGlobalStyles.d.ts.map +1 -0
  507. package/dist/types/web-component/index.d.ts +1 -1
  508. package/dist/types/web-component/index.d.ts.map +1 -1
  509. package/dist/types/web-component/odysseyWebComponentVersion.generated.d.ts +1 -1
  510. package/dist/types/web-component/renderReactInWebComponent.d.ts +8 -2
  511. package/dist/types/web-component/renderReactInWebComponent.d.ts.map +1 -1
  512. package/package.json +3 -3
  513. package/dist/assets/AdapterLuxon-0NB_ajTr.js +0 -1
  514. package/dist/assets/AppTile _labs_.stories-uDhyBCfD.js +0 -136
  515. package/dist/assets/Autocomplete-CXy6JKKy.js +0 -1
  516. package/dist/assets/Box-CWTB5xfE.js +0 -1
  517. package/dist/assets/Box-D2NdOYc2.js +0 -11
  518. package/dist/assets/Breadcrumbs-6BEAV_iX.js +0 -1
  519. package/dist/assets/Breadcrumbs-C2ZpdmyC.js +0 -6
  520. package/dist/assets/Breadcrumbs.stories-WwSpw0c-.js +0 -79
  521. package/dist/assets/Button-B6KDXfay.js +0 -41
  522. package/dist/assets/ButtonBase-BAQsCgRq.js +0 -74
  523. package/dist/assets/Callout.stories-nPexHuaO.js +0 -105
  524. package/dist/assets/Card-2fiTHibU.js +0 -8
  525. package/dist/assets/Card-CaY-V3Lt.js +0 -1
  526. package/dist/assets/CardActions-X5bUcMdJ.js +0 -1
  527. package/dist/assets/Checkbox-BCh8HZ37.js +0 -1
  528. package/dist/assets/Checkbox.stories-CQ5I8O9l.js +0 -96
  529. package/dist/assets/CheckboxGroup.stories-B4ljyQRV.js +0 -81
  530. package/dist/assets/Chip-DXaMeATb.js +0 -1
  531. package/dist/assets/Custom Theming.stories-t0y6qbUN.js +0 -95
  532. package/dist/assets/DataTable _labs_-CJnucUaL.js +0 -41
  533. package/dist/assets/DatePicker-txjKmLSi.js +0 -1
  534. package/dist/assets/DatePicker.stories-VLeccVga.js +0 -133
  535. package/dist/assets/DateTimePicker-LSjVE-IM.js +0 -1
  536. package/dist/assets/Design Tokens-DrLUPXCc.js +0 -4
  537. package/dist/assets/Dialog-CRuld07G.js +0 -1
  538. package/dist/assets/Dialog.stories-Bm_j9j63.js +0 -201
  539. package/dist/assets/DialogContentText-DU3-VV7L.js +0 -1
  540. package/dist/assets/DialogTitle-DyO9kr6R.js +0 -1
  541. package/dist/assets/Drawer-CwxKxBTE.js +0 -27
  542. package/dist/assets/Drawer-DEqB4KYp.js +0 -1
  543. package/dist/assets/Drawer.stories-Dvgnp9yd.js +0 -95
  544. package/dist/assets/EmptyState.stories-DK1ZE36w.js +0 -11
  545. package/dist/assets/ExampleButton.stories-C51QbMy5.js +0 -11
  546. package/dist/assets/Fade-CVbWKXvx.js +0 -1
  547. package/dist/assets/Fieldset.stories-BU8d3fia.js +0 -15
  548. package/dist/assets/Form.stories-Clfikd2x.js +0 -69
  549. package/dist/assets/GroupPicker _labs_.stories-CFJvoMQP.js +0 -33
  550. package/dist/assets/Grow-DacPmog-.js +0 -1
  551. package/dist/assets/Icon _icons_.stories-BQr18gG9.js +0 -16
  552. package/dist/assets/IconWithTooltip _icons_.stories-Ct7hQD2g.js +0 -19
  553. package/dist/assets/IgaComponentsLegacyOdysseyDecorator-28myx5I9.js +0 -175
  554. package/dist/assets/Link-BH0CiguI.js +0 -11
  555. package/dist/assets/Menu-CHod3UUY.js +0 -1
  556. package/dist/assets/MenuButton-CMGgaZPh.js +0 -9
  557. package/dist/assets/MenuItem.stories-YEtPNOwc.js +0 -29
  558. package/dist/assets/Modal-B1-40kNg.js +0 -1
  559. package/dist/assets/NativeSelect.stories-BIRwQlHa.js +0 -173
  560. package/dist/assets/OdysseyProvider-CLb8psrs.js +0 -197
  561. package/dist/assets/PageHeader.stories-fXDR4T37.js +0 -17
  562. package/dist/assets/PageTemplate _labs_-D3SkGEbG.js +0 -8
  563. package/dist/assets/PageTemplate.stories-H4WnNBj4.js +0 -487
  564. package/dist/assets/Pagination.stories-CB4pOr9i.js +0 -17
  565. package/dist/assets/PasswordField.stories-D5ZRplSl.js +0 -129
  566. package/dist/assets/Picker _labs_.stories-CyZs7sOo.js +0 -18
  567. package/dist/assets/Popper-DjhYeJJy.js +0 -1
  568. package/dist/assets/Portal-GAJY6Au9.js +0 -1
  569. package/dist/assets/Radio-tkNaA8vy.js +0 -1
  570. package/dist/assets/RadioGroup-DP-BtKDw.js +0 -10
  571. package/dist/assets/RadioGroup-DRNCKA-f.js +0 -1
  572. package/dist/assets/RadioGroup.stories-DRXPUU0H.js +0 -127
  573. package/dist/assets/ResourceAccessPolicyComponentsStorybookThemeDecorator-IgdZHick.js +0 -1
  574. package/dist/assets/ScreenReaderText.stories-CpsTRHeF.js +0 -8
  575. package/dist/assets/SearchField.stories-C95LqZ5d.js +0 -37
  576. package/dist/assets/Select-9yKLDVKS.js +0 -1
  577. package/dist/assets/Snackbar-Cn_gMSEK.js +0 -1
  578. package/dist/assets/TabPanel-XF64c5rR.js +0 -1
  579. package/dist/assets/Tabs-DzeBYjfY.js +0 -1
  580. package/dist/assets/Tabs.stories-Dtlm8Y9N.js +0 -100
  581. package/dist/assets/Tag.stories-DIlHCDGk.js +0 -96
  582. package/dist/assets/Toast.stories-DO1V8pyh.js +0 -134
  583. package/dist/assets/ToastManager.stories-CmZGqHye.js +0 -22
  584. package/dist/assets/Tooltip-D4AWrTBw.js +0 -1
  585. package/dist/assets/Tooltip.stories-s36iDmFy.js +0 -68
  586. package/dist/assets/TopNav.stories-Dg27-0zA.js +0 -13
  587. package/dist/assets/TransitionGroupContext-DLI0IzWy.js +0 -1
  588. package/dist/assets/Typography-D01yctPx.js +0 -607
  589. package/dist/assets/Typography.stories-Cr7YbFxb.js +0 -73
  590. package/dist/assets/UserProfile.stories-BbvzhbPD.js +0 -14
  591. package/dist/assets/WorkflowsComponentsStorybookThemeDecorator-COYvO4K8.js +0 -1
  592. package/dist/assets/emotion-react-jsx-runtime.browser.esm-DcYOMKFp.js +0 -1
  593. package/dist/assets/index-BsDcV5Kh.js +0 -1
  594. package/dist/assets/index.esm-HelN6IAt.js +0 -1
  595. package/dist/assets/renderUiShell.stories-ILWjsAQY.js +0 -854
  596. package/dist/assets/useOdysseyDateFields-Cq2BZNiB.js +0 -61
  597. package/dist/assets/useThemeProps-Bfa1XAV-.js +0 -1
  598. package/dist/assets/useThemeProps-D4857Xca.js +0 -1
  599. package/dist/assets/utils-DkZjDCLm.js +0 -1
  600. package/dist/cjs/Buttons/index.cjs +0 -93
  601. package/dist/cjs/Buttons/index.cjs.map +0 -1
  602. package/dist/cjs/Checkbox.cjs.map +0 -1
  603. package/dist/cjs/CheckboxGroup.cjs.map +0 -1
  604. package/dist/cjs/DataTable/index.cjs +0 -20
  605. package/dist/cjs/DataTable/index.cjs.map +0 -1
  606. package/dist/cjs/DatePickers/index.cjs +0 -39
  607. package/dist/cjs/DatePickers/index.cjs.map +0 -1
  608. package/dist/cjs/FileUploader/index.cjs +0 -17
  609. package/dist/cjs/FileUploader/index.cjs.map +0 -1
  610. package/dist/cjs/Pagination/index.cjs +0 -36
  611. package/dist/cjs/Pagination/index.cjs.map +0 -1
  612. package/dist/cjs/Radio.cjs.map +0 -1
  613. package/dist/cjs/RadioGroup.cjs.map +0 -1
  614. package/dist/cjs/labs/DataView/index.cjs +0 -60
  615. package/dist/cjs/labs/DataView/index.cjs.map +0 -1
  616. package/dist/cjs/labs/DatePickers/index.cjs +0 -17
  617. package/dist/cjs/labs/DatePickers/index.cjs.map +0 -1
  618. package/dist/cjs/labs/OdysseyPickers/index.cjs +0 -48
  619. package/dist/cjs/labs/OdysseyPickers/index.cjs.map +0 -1
  620. package/dist/cjs/labs/PageTemplate/index.cjs +0 -28
  621. package/dist/cjs/labs/PageTemplate/index.cjs.map +0 -1
  622. package/dist/cjs/theme/index.cjs +0 -17
  623. package/dist/cjs/theme/index.cjs.map +0 -1
  624. package/dist/cjs/ui-shell/AppSwitcher/index.cjs +0 -17
  625. package/dist/cjs/ui-shell/AppSwitcher/index.cjs.map +0 -1
  626. package/dist/cjs/ui-shell/SideNav/index.cjs +0 -40
  627. package/dist/cjs/ui-shell/SideNav/index.cjs.map +0 -1
  628. package/dist/cjs/ui-shell/TopNav/index.cjs +0 -17
  629. package/dist/cjs/ui-shell/TopNav/index.cjs.map +0 -1
  630. package/dist/cjs/web-component/removeGlobalStylesFromShadowDom.cjs.map +0 -1
  631. package/dist/esm/Buttons/index.js +0 -19
  632. package/dist/esm/Buttons/index.js.map +0 -1
  633. package/dist/esm/Checkbox.js.map +0 -1
  634. package/dist/esm/CheckboxGroup.js.map +0 -1
  635. package/dist/esm/DataTable/index.js +0 -15
  636. package/dist/esm/DataTable/index.js.map +0 -1
  637. package/dist/esm/DatePickers/index.js.map +0 -1
  638. package/dist/esm/FileUploader/index.js +0 -14
  639. package/dist/esm/FileUploader/index.js.map +0 -1
  640. package/dist/esm/Pagination/index.js +0 -16
  641. package/dist/esm/Pagination/index.js.map +0 -1
  642. package/dist/esm/Radio.js.map +0 -1
  643. package/dist/esm/RadioGroup.js.map +0 -1
  644. package/dist/esm/labs/DataView/index.js +0 -18
  645. package/dist/esm/labs/DataView/index.js.map +0 -1
  646. package/dist/esm/labs/DatePickers/index.js +0 -14
  647. package/dist/esm/labs/DatePickers/index.js.map +0 -1
  648. package/dist/esm/labs/OdysseyPickers/index.js +0 -17
  649. package/dist/esm/labs/OdysseyPickers/index.js.map +0 -1
  650. package/dist/esm/labs/PageTemplate/index.js +0 -15
  651. package/dist/esm/labs/PageTemplate/index.js.map +0 -1
  652. package/dist/esm/theme/index.js +0 -14
  653. package/dist/esm/theme/index.js.map +0 -1
  654. package/dist/esm/ui-shell/AppSwitcher/index.js +0 -14
  655. package/dist/esm/ui-shell/AppSwitcher/index.js.map +0 -1
  656. package/dist/esm/ui-shell/SideNav/index.js +0 -16
  657. package/dist/esm/ui-shell/SideNav/index.js.map +0 -1
  658. package/dist/esm/ui-shell/TopNav/index.js +0 -14
  659. package/dist/esm/ui-shell/TopNav/index.js.map +0 -1
  660. package/dist/esm/web-component/removeGlobalStylesFromShadowDom.js.map +0 -1
  661. package/dist/index.cjs +0 -231
  662. package/dist/index.mjs +0 -229
  663. package/dist/index.scss +0 -549
  664. package/dist/types/Buttons/index.d.ts +0 -18
  665. package/dist/types/Buttons/index.d.ts.map +0 -1
  666. package/dist/types/Checkbox.d.ts.map +0 -1
  667. package/dist/types/CheckboxGroup.d.ts.map +0 -1
  668. package/dist/types/DataTable/index.d.ts +0 -15
  669. package/dist/types/DataTable/index.d.ts.map +0 -1
  670. package/dist/types/DatePickers/index.d.ts +0 -15
  671. package/dist/types/DatePickers/index.d.ts.map +0 -1
  672. package/dist/types/FileUploader/index.d.ts +0 -13
  673. package/dist/types/FileUploader/index.d.ts.map +0 -1
  674. package/dist/types/Pagination/index.d.ts +0 -15
  675. package/dist/types/Pagination/index.d.ts.map +0 -1
  676. package/dist/types/Radio.d.ts.map +0 -1
  677. package/dist/types/RadioGroup.d.ts.map +0 -1
  678. package/dist/types/labs/DataView/index.d.ts +0 -18
  679. package/dist/types/labs/DataView/index.d.ts.map +0 -1
  680. package/dist/types/labs/DatePickers/index.d.ts +0 -13
  681. package/dist/types/labs/DatePickers/index.d.ts.map +0 -1
  682. package/dist/types/labs/OdysseyPickers/index.d.ts +0 -16
  683. package/dist/types/labs/OdysseyPickers/index.d.ts.map +0 -1
  684. package/dist/types/labs/PageTemplate/index.d.ts +0 -14
  685. package/dist/types/labs/PageTemplate/index.d.ts.map +0 -1
  686. package/dist/types/theme/index.d.ts +0 -13
  687. package/dist/types/theme/index.d.ts.map +0 -1
  688. package/dist/types/ui-shell/AppSwitcher/index.d.ts +0 -13
  689. package/dist/types/ui-shell/AppSwitcher/index.d.ts.map +0 -1
  690. package/dist/types/ui-shell/SideNav/index.d.ts +0 -15
  691. package/dist/types/ui-shell/SideNav/index.d.ts.map +0 -1
  692. package/dist/types/ui-shell/TopNav/index.d.ts +0 -13
  693. package/dist/types/ui-shell/TopNav/index.d.ts.map +0 -1
  694. package/dist/types/web-component/removeGlobalStylesFromShadowDom.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SideNav.cjs","names":["_sortable","require","_styled","_interopRequireDefault","_react","_reactErrorBoundary","_i18n","_OdysseyDesignTokensContext","_OdysseyThemeProvider","_Typography","_UiShellProvider","_useMountLifecycleEffect","_uiShellSharedConstants","_useElementAtContainerEdge","_NavAccordion","_SideNavFooterContent","_SideNavHeader","_SideNavItemContent","_SideNavItemContentContext","_SideNavSortableList","_SideNavToggleButton","_useIsSideNavCollapsedSessionStorage","_jsxRuntime","e","__esModule","default","SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED","exports","SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED","flattenNestedItems","items","flatMap","item","nestedNavItems","StyledCollapsibleContent","styled","shouldForwardProp","prop","odysseyDesignTokens","isSideNavCollapsed","position","display","gridTemplateColumns","SIDE_NAV_WIDTH","height","transition","TransitionDurationMain","transitionTimingFunction","TransitionTimingMain","overflow","opacity","StyledOpacityTransitionContainer","gridTemplateRows","StyledSideNavContainer","backgroundColor","hasNeighbouringContentAtInlineStart","isAppContentWhiteBackground","isSideNavToggleHighlighted","HueNeutralWhite","width","content","pointerEvents","right","BorderWidthMain","top","userSelect","zIndex","UI_SHELL_OVERLAY_Z_INDEX","BorderColorPrimaryControl","HueNeutral100","HueNeutral200","transform","SIDE_NAV_TOGGLE_ICON_HALF_SIZE","borderRightColor","borderRightStyle","BorderStyleMain","borderRightWidth","StyledSideNavToggleButtonContainer","SIDE_NAV_VISIBILITY_TOGGLE_ICON_POSITION","SIDE_NAV_TOGGLE_ICON_SIZE","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","UI_SHELL_BASE_Z_INDEX","boxShadow","StyledSideNavFooterItemsContainer","sideNavContrastColors","flexWrap","alignItems","fontSize","TypographySizeOverline","fontColor","textDecoration","HueNeutral900","StyledLoadingItemContainer","gap","getHasScrollableContent","scrollableContainer","scrollHeight","clientHeight","LoadingItem","useOdysseyDesignTokens","jsxs","children","jsx","_Skeleton2","variant","SideNav","appName","footerComponent","footerItems","hasCustomFooter","hasSessionStorageState","isCollapsible","isCollapsed","isCompact","isLoading","isObtrusive","logoProps","leavesPaddingStart","onCollapse","onExpand","onSort","sideNavItems","setHasContentScrolled","useState","setIsContentScrollable","setIsSideNavToggleHighlighted","sideNavItemsList","updateSideNavItemsList","isSideNavCollapsedLocalState","setIsSideNavCollapsedLocalState","sessionState","isSideNavCollapsedSessionState","setSessionState","setIsSideNavCollapsedSessionState","useIsSideNavCollapsedSessionStorage","setIsSideNavCollapsed","uiShellContext","useUiShellContext","t","useTranslation","scrollableContentRef","useRef","resizeObserverRef","intersectionObserverRef","sideNavRef","isAtContainerInlineStart","useElementAtContainerEdge","element","current","monitoringElement","parentElement","blankElement","useMemo","useEffect","onMount","useCallback","onUpdate","useMountLifecycleEffect","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","ErrorBoundary","fallback","Overline","component","length","nestedChildren","role","SideNavSortableList","onChange","setSortedItems","parentId","processSideNavItems","sortableItem","navItem","SideNavItemContent","onItemSelected","scrollRef","StyledSideNavListItem","disabled","SideNavItemContentContext","Provider","value","NavAccordion","sideNavExpandClickHandler","sideNavExpandKeyHandler","event","key","code","preventDefault","unsubscribe","subscribeToCloseSideNavMenu","activeId","activeIndex","overIndex","sortedSideNavItems","arrayMove","onSideNavToggleButtonHighlight","isHighlighted","appBackgroundColor","ref","SideNavToggleButton","ariaControls","clickAreaPadding","onClick","onHighlight","onKeyDown","OdysseyThemeProvider","SideNavHeader","fill","_","index","SideNavFooterContent","MemoizedSideNav","memo","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":[]}
1
+ {"version":3,"file":"SideNav.cjs","names":["_sortable","require","_styled","_interopRequireDefault","_react","_reactErrorBoundary","_i18n","_OdysseyDesignTokensContext","_OdysseyThemeProvider","_Typography","_UiShellProvider","_useMountLifecycleEffect","_uiShellSharedConstants","_useElementAtContainerEdge","_NavAccordion","_SideNavFooterContent","_SideNavHeader","_SideNavItemContent","_SideNavItemContentContext","_SideNavSortableList","_SideNavToggleButton","_useIsSideNavCollapsedSessionStorage","_jsxRuntime","e","__esModule","default","SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED","SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED","flattenNestedItems","items","flatMap","item","nestedNavItems","StyledCollapsibleContent","styled","shouldForwardProp","prop","odysseyDesignTokens","isSideNavCollapsed","position","display","gridTemplateColumns","SIDE_NAV_WIDTH","height","transition","TransitionDurationMain","transitionTimingFunction","TransitionTimingMain","overflow","opacity","StyledOpacityTransitionContainer","gridTemplateRows","StyledSideNavContainer","backgroundColor","hasNeighbouringContentAtInlineStart","isAppContentWhiteBackground","isSideNavToggleHighlighted","HueNeutralWhite","width","content","pointerEvents","right","BorderWidthMain","top","userSelect","zIndex","UI_SHELL_OVERLAY_Z_INDEX","BorderColorPrimaryControl","HueNeutral100","HueNeutral200","transform","SIDE_NAV_TOGGLE_ICON_HALF_SIZE","borderRightColor","borderRightStyle","BorderStyleMain","borderRightWidth","StyledSideNavToggleButtonContainer","SIDE_NAV_VISIBILITY_TOGGLE_ICON_POSITION","SIDE_NAV_TOGGLE_ICON_SIZE","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","UI_SHELL_BASE_Z_INDEX","boxShadow","StyledSideNavFooterItemsContainer","sideNavContrastColors","flexWrap","alignItems","fontSize","TypographySizeOverline","fontColor","textDecoration","HueNeutral900","StyledLoadingItemContainer","gap","getHasScrollableContent","scrollableContainer","scrollHeight","clientHeight","LoadingItem","useOdysseyDesignTokens","jsxs","children","jsx","_Skeleton2","variant","SideNav","appName","footerComponent","footerItems","hasCustomFooter","hasSessionStorageState","isCollapsible","isCollapsed","isCompact","isLoading","isObtrusive","logoProps","leavesPaddingStart","onCollapse","onExpand","onSort","sideNavItems","setHasContentScrolled","useState","setIsContentScrollable","setIsSideNavToggleHighlighted","sideNavItemsList","updateSideNavItemsList","isSideNavCollapsedLocalState","setIsSideNavCollapsedLocalState","sessionState","isSideNavCollapsedSessionState","setSessionState","setIsSideNavCollapsedSessionState","useIsSideNavCollapsedSessionStorage","setIsSideNavCollapsed","uiShellContext","useUiShellContext","t","useTranslation","scrollableContentRef","useRef","resizeObserverRef","intersectionObserverRef","sideNavRef","isAtContainerInlineStart","useElementAtContainerEdge","element","current","monitoringElement","parentElement","blankElement","useMemo","useEffect","onMount","useCallback","onUpdate","useMountLifecycleEffect","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","onChange","translate","ErrorBoundary","fallback","Overline","component","length","nestedChildren","role","SideNavSortableList","setSortedItems","parentId","processSideNavItems","sortableItem","navItem","SideNavItemContent","onItemSelected","scrollRef","StyledSideNavListItem","disabled","SideNavItemContentContext","Provider","value","NavAccordion","sideNavExpandClickHandler","sideNavExpandKeyHandler","event","key","code","preventDefault","unsubscribe","subscribeToCloseSideNavMenu","activeId","activeIndex","overIndex","sortedSideNavItems","arrayMove","onSideNavToggleButtonHighlight","isHighlighted","appBackgroundColor","ref","SideNavToggleButton","ariaControls","clickAreaPadding","onClick","onHighlight","onKeyDown","OdysseyThemeProvider","SideNavHeader","fill","_","index","SideNavFooterContent","MemoizedSideNav","exports","memo","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\nconst SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED = 12;\nconst 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 onChange,\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 onChange={onChange}\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":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","names":[],"sources":["../../../../src/ui-shell/SideNav/types.ts"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport type { ReactElement, SyntheticEvent } from \"react\";\n\nimport { UniqueIdentifier } from \"@dnd-kit/core\";\n\nimport type { HtmlProps } from \"../../HtmlProps.js\";\nimport type { DesignTokens } from \"../../OdysseyDesignTokensContext.js\";\nimport type { statusSeverityValues } from \"../../Status.js\";\n\n/**\n * Type representing spacing values from the design tokens.\n * odysseyDesignTokens.Spacing0, odysseyDesignTokens.Spacing1, etc.\n */\nexport type OdysseySpacingValue = DesignTokens[keyof Pick<\n DesignTokens,\n | \"Spacing0\"\n | \"Spacing1\"\n | \"Spacing2\"\n | \"Spacing3\"\n | \"Spacing4\"\n | \"Spacing5\"\n | \"Spacing6\"\n | \"Spacing7\"\n | \"Spacing8\"\n | \"Spacing9\"\n>];\n\ntype LogoWithLink = {\n ariaLabel: string;\n href: string;\n};\ntype LogoWithNoLink = {\n ariaLabel?: never;\n href?: never;\n};\n\nexport type SideNavLogoProps = {\n isSameBackgroundAsMain?: boolean;\n /**\n * Event fired when the logo is clicked\n */\n onClick?: (event: SyntheticEvent) => void;\n} & (LogoWithLink | LogoWithNoLink) &\n (\n | {\n imageAltText?: never;\n imageUrl?: never;\n /**\n * a component to render as the logo\n */\n logoComponent: ReactElement;\n }\n | {\n /**\n * alt text for the img logo\n */\n imageAltText: string;\n /**\n * The src url to render in an `img` tag\n */\n imageUrl: string;\n logoComponent?: never;\n }\n | {\n /**\n * alt text for the img logo\n */\n imageAltText?: never;\n /**\n * The src url to render in an `img` tag\n */\n imageUrl?: never;\n logoComponent?: never;\n }\n );\n\nexport type SideNavProps = {\n /**\n * Side Nav header text that is usually reserved to show the App name\n */\n appName?: string;\n /**\n * If we want the collapse state to be based on session storage, then this needs to be `true`.\n */\n hasSessionStorageState?: boolean;\n /**\n * Determines whether the side nav is collapsed by default. When `true`, side nav also closes once and item is clicked.\n */\n isCollapsed?: boolean;\n /**\n * Determines whether the side nav is collapsible\n */\n isCollapsible?: boolean;\n /**\n * Determines whether the side nav items use compact layout\n */\n isCompact?: boolean;\n /**\n * Before the side nav has items, it will be in a loading state.\n */\n isLoading?: boolean;\n /**\n * If the side nav is up too much screen real estate. For instance, if you're in a narrower view, and it displays next to the content.\n *\n * When `true`, side nav will close itself after nav items are clicked.\n */\n isObtrusive?: boolean;\n /**\n * Optional padding to apply to the start of the leaves (items which are not expanded).\n * Should be one of the Odyssey design token spacing values (e.g., odysseyDesignTokens.Spacing1, odysseyDesignTokens.Spacing2, etc.)\n */\n leavesPaddingStart?: OdysseySpacingValue;\n /**\n * An optional logo component or src string for an img to display in the header. If not provided, will default to the Okta logo\n */\n logoProps?: SideNavLogoProps;\n /**\n * Triggers when the side nav is collapsed\n */\n onCollapse?: () => void;\n /**\n * Triggers when the side nav is expanded\n */\n onExpand?: () => void;\n /**\n * Triggers when the item is reordered\n */\n onSort?: (\n reorderedItems: SideNavItem[],\n parentId: string,\n activeId: UniqueIdentifier,\n activeIndex: number,\n overIndex: number,\n ) => void;\n /**\n * Nav items in the side nav\n */\n sideNavItems?: SideNavItem[];\n} & (\n | {\n /**\n * The component to display as the footer; if present the `footerItems` are ignored and not rendered.\n */\n footerComponent?: ReactElement;\n footerItems?: never;\n hasCustomFooter: true;\n }\n | {\n footerComponent?: never;\n /**\n * Footer items in the side nav\n */\n footerItems?: SideNavFooterItem[];\n hasCustomFooter?: false;\n }\n) &\n Pick<HtmlProps, \"testId\">;\n\nexport type SideNavItem = {\n /**\n * The number to display as a count alongside the nav item\n */\n count?: number;\n /**\n * The icon element to display after the nav item text. Only use this with images that don't have React context. Even the official Odyssey Icons use MUI which references the MUI theme in context and will error when rendered in Unified UI Shell.\n */\n endIcon?: ReactElement;\n id: string;\n /**\n * Whether the item is disabled. When set to true the nav item is set to Disabled color,\n * the link/item is not clickable, and item with nestedNavItems is not expandable.\n */\n isDisabled?: boolean;\n /**\n * Whether the item is active/selected\n */\n isSelected?: boolean;\n /**\n * Whether the item is sortable within a sortable list\n */\n isSortable?: boolean;\n label: string;\n /**\n * Event fired when the nav item is clicked\n */\n onClick?: (event: SyntheticEvent) => void;\n /**\n * The status element to display after the label\n */\n severity?: (typeof statusSeverityValues)[number];\n /**\n * The icon element to display before the nav item text. Only use this with images that don't have React context. Even the official Odyssey Icons use MUI which references the MUI theme in context and will error when rendered in Unified UI Shell.\n */\n startIcon?: ReactElement;\n /**\n * The label to display inside the status\n */\n statusLabel?: string;\n /**\n * The link target prop. e.g., \"_blank\"\n */\n target?: string;\n} & (\n | {\n href?: never;\n isDefaultExpanded?: never;\n isExpanded?: never;\n /**\n * Determines if the side nav item is a section header\n */\n isSectionHeader: true;\n nestedNavItems?: never;\n }\n | {\n /**\n * link added to the nav item. if it is undefined, static text will be displayed.\n * fires onClick event when it is passed\n */\n href?: string;\n isDefaultExpanded?: never;\n isExpanded?: never;\n isSectionHeader?: never;\n nestedNavItems?: never;\n }\n | {\n href?: never;\n /**\n * Whether the accordion (nav item with nestedNavItems) is expanded by default\n */\n isDefaultExpanded?: boolean;\n /**\n * If true, expands the accordion, otherwise collapse it.\n * Setting this prop enables control over the accordion.\n */\n isExpanded?: boolean;\n /**\n * If true, enables sorting for the accordion items\n */\n isSectionHeader?: never;\n /**\n * An array of side nav items to be displayed as nestedNavItems within Accordion\n */\n nestedNavItems: Array<SideNavItem>;\n }\n | {\n href: string;\n isDefaultExpanded?: never;\n isExpanded?: never;\n isSectionHeader?: never;\n /**\n * An array of side nav items to be displayed as nestedNavItems within Accordion\n */\n nestedNavItems: Array<SideNavItem>;\n }\n) &\n Pick<HtmlProps, \"translate\">;\n\nexport type SideNavFooterItem = {\n href?: string;\n id: string;\n label: string;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.cjs","names":[],"sources":["../../../../src/ui-shell/SideNav/types.ts"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport type { ReactElement, SyntheticEvent } from \"react\";\n\nimport { UniqueIdentifier } from \"@dnd-kit/core\";\n\nimport type { HtmlProps } from \"../../HtmlProps.js\";\nimport type { DesignTokens } from \"../../OdysseyDesignTokensContext.js\";\nimport type { statusSeverityValues } from \"../../Status.js\";\n\n/**\n * Type representing spacing values from the design tokens.\n * odysseyDesignTokens.Spacing0, odysseyDesignTokens.Spacing1, etc.\n */\nexport type OdysseySpacingValue = DesignTokens[keyof Pick<\n DesignTokens,\n | \"Spacing0\"\n | \"Spacing1\"\n | \"Spacing2\"\n | \"Spacing3\"\n | \"Spacing4\"\n | \"Spacing5\"\n | \"Spacing6\"\n | \"Spacing7\"\n | \"Spacing8\"\n | \"Spacing9\"\n>];\n\ntype LogoWithLink = {\n ariaLabel: string;\n href: string;\n};\ntype LogoWithNoLink = {\n ariaLabel?: never;\n href?: never;\n};\n\nexport type SideNavLogoProps = {\n isSameBackgroundAsMain?: boolean;\n /**\n * Event fired when the logo is clicked\n */\n onClick?: (event: SyntheticEvent) => void;\n} & (LogoWithLink | LogoWithNoLink) &\n (\n | {\n imageAltText?: never;\n imageUrl?: never;\n /**\n * a component to render as the logo\n */\n logoComponent: ReactElement;\n }\n | {\n /**\n * alt text for the img logo\n */\n imageAltText: string;\n /**\n * The src url to render in an `img` tag\n */\n imageUrl: string;\n logoComponent?: never;\n }\n | {\n /**\n * alt text for the img logo\n */\n imageAltText?: never;\n /**\n * The src url to render in an `img` tag\n */\n imageUrl?: never;\n logoComponent?: never;\n }\n );\n\nexport type SideNavProps = {\n /**\n * Side Nav header text that is usually reserved to show the App name\n */\n appName?: string;\n /**\n * If we want the collapse state to be based on session storage, then this needs to be `true`.\n */\n hasSessionStorageState?: boolean;\n /**\n * Determines whether the side nav is collapsed by default. When `true`, side nav also closes once and item is clicked.\n */\n isCollapsed?: boolean;\n /**\n * Determines whether the side nav is collapsible\n */\n isCollapsible?: boolean;\n /**\n * Determines whether the side nav items use compact layout\n */\n isCompact?: boolean;\n /**\n * Before the side nav has items, it will be in a loading state.\n */\n isLoading?: boolean;\n /**\n * If the side nav is up too much screen real estate. For instance, if you're in a narrower view, and it displays next to the content.\n *\n * When `true`, side nav will close itself after nav items are clicked.\n */\n isObtrusive?: boolean;\n /**\n * Optional padding to apply to the start of the leaves (items which are not expanded).\n * Should be one of the Odyssey design token spacing values (e.g., odysseyDesignTokens.Spacing1, odysseyDesignTokens.Spacing2, etc.)\n */\n leavesPaddingStart?: OdysseySpacingValue;\n /**\n * An optional logo component or src string for an img to display in the header. If not provided, will default to the Okta logo\n */\n logoProps?: SideNavLogoProps;\n /**\n * Triggers when the side nav is collapsed\n */\n onCollapse?: () => void;\n /**\n * Triggers when the side nav is expanded\n */\n onExpand?: () => void;\n /**\n * Triggers when the item is reordered\n */\n onSort?: (\n reorderedItems: SideNavItem[],\n parentId: string,\n activeId: UniqueIdentifier,\n activeIndex: number,\n overIndex: number,\n ) => void;\n /**\n * Nav items in the side nav\n */\n sideNavItems?: SideNavItem[];\n} & (\n | {\n /**\n * The component to display as the footer; if present the `footerItems` are ignored and not rendered.\n */\n footerComponent?: ReactElement;\n footerItems?: never;\n hasCustomFooter: true;\n }\n | {\n footerComponent?: never;\n /**\n * Footer items in the side nav\n */\n footerItems?: SideNavFooterItem[];\n hasCustomFooter?: false;\n }\n) &\n Pick<HtmlProps, \"testId\">;\n\nexport type SideNavItem = {\n /**\n * The number to display as a count alongside the nav item\n */\n count?: number;\n /**\n * The icon element to display after the nav item text. Only use this with images that don't have React context. Even the official Odyssey Icons use MUI which references the MUI theme in context and will error when rendered in Unified UI Shell.\n */\n endIcon?: ReactElement;\n id: string;\n /**\n * Whether the item is disabled. When set to true the nav item is set to Disabled color,\n * the link/item is not clickable, and item with nestedNavItems is not expandable.\n */\n isDisabled?: boolean;\n /**\n * Whether the item is active/selected\n */\n isSelected?: boolean;\n /**\n * Whether the item is sortable within a sortable list\n */\n isSortable?: boolean;\n label: string;\n /**\n * Event fired when the nav item is changed (for instance, capturing clicks on Accordion)\n */\n onChange?: (event: SyntheticEvent) => void;\n /**\n * Event fired when the nav item is clicked\n */\n onClick?: (event: SyntheticEvent) => void;\n /**\n * The status element to display after the label\n */\n severity?: (typeof statusSeverityValues)[number];\n /**\n * The icon element to display before the nav item text. Only use this with images that don't have React context. Even the official Odyssey Icons use MUI which references the MUI theme in context and will error when rendered in Unified UI Shell.\n */\n startIcon?: ReactElement;\n /**\n * The label to display inside the status\n */\n statusLabel?: string;\n /**\n * The link target prop. e.g., \"_blank\"\n */\n target?: string;\n} & (\n | {\n href?: never;\n isDefaultExpanded?: never;\n isExpanded?: never;\n /**\n * Determines if the side nav item is a section header\n */\n isSectionHeader: true;\n nestedNavItems?: never;\n }\n | {\n /**\n * link added to the nav item. if it is undefined, static text will be displayed.\n * fires onClick event when it is passed\n */\n href?: string;\n isDefaultExpanded?: never;\n isExpanded?: never;\n isSectionHeader?: never;\n nestedNavItems?: never;\n }\n | {\n href?: never;\n /**\n * Whether the accordion (nav item with nestedNavItems) is expanded by default\n */\n isDefaultExpanded?: boolean;\n /**\n * If true, expands the accordion, otherwise collapse it.\n * Setting this prop enables control over the accordion.\n */\n isExpanded?: boolean;\n /**\n * If true, enables sorting for the accordion items\n */\n isSectionHeader?: never;\n /**\n * An array of side nav items to be displayed as nestedNavItems within Accordion\n */\n nestedNavItems: Array<SideNavItem>;\n }\n | {\n href: string;\n isDefaultExpanded?: never;\n isExpanded?: never;\n isSectionHeader?: never;\n /**\n * An array of side nav items to be displayed as nestedNavItems within Accordion\n */\n nestedNavItems: Array<SideNavItem>;\n }\n) &\n Pick<HtmlProps, \"translate\">;\n\nexport type SideNavFooterItem = {\n href?: string;\n id: string;\n label: string;\n};\n"],"mappings":"","ignoreList":[]}
@@ -8,10 +8,10 @@ var _styled = _interopRequireDefault(require("@emotion/styled"));
8
8
  var _react = require("react");
9
9
  var _reactErrorBoundary = require("react-error-boundary");
10
10
  var _OdysseyDesignTokensContext = require("../OdysseyDesignTokensContext.cjs");
11
- var _index = require("./AppSwitcher/index.cjs");
11
+ var _AppSwitcher = require("./AppSwitcher/AppSwitcher.cjs");
12
12
  var _InnerAppContainer = require("./InnerAppContainer.cjs");
13
- var _index2 = require("./SideNav/index.cjs");
14
- var _index3 = require("./TopNav/index.cjs");
13
+ var _SideNav = require("./SideNav/SideNav.cjs");
14
+ var _TopNav = require("./TopNav/TopNav.cjs");
15
15
  var _uiShellContentTypes = require("./uiShellContentTypes.cjs");
16
16
  var _UiShellProvider = require("./UiShellProvider.cjs");
17
17
  var _uiShellSharedConstants = require("./uiShellSharedConstants.cjs");
@@ -109,7 +109,7 @@ const WideUiShellContent = ({
109
109
  children: [initialVisibleSections?.includes("AppSwitcher") && !appSwitcherProps && (0, _jsxRuntime.jsx)(_reactErrorBoundary.ErrorBoundary, {
110
110
  fallback: null,
111
111
  onError: onError,
112
- children: (0, _jsxRuntime.jsx)(_index.AppSwitcher, {
112
+ children: (0, _jsxRuntime.jsx)(_AppSwitcher.AppSwitcher, {
113
113
  appIcons: appSwitcherDefaultAppIcons,
114
114
  isLoading: true,
115
115
  selectedAppName: ""
@@ -117,7 +117,7 @@ const WideUiShellContent = ({
117
117
  }), appSwitcherProps && appSwitcherProps !== _uiShellContentTypes.TURN_OFF_APP_SWITCHER && (0, _jsxRuntime.jsx)(_reactErrorBoundary.ErrorBoundary, {
118
118
  fallback: null,
119
119
  onError: onError,
120
- children: (0, _jsxRuntime.jsx)(_index.AppSwitcher, {
120
+ children: (0, _jsxRuntime.jsx)(_AppSwitcher.AppSwitcher, {
121
121
  ...appSwitcherProps
122
122
  })
123
123
  })]
@@ -126,14 +126,14 @@ const WideUiShellContent = ({
126
126
  children: [initialVisibleSections?.includes("SideNav") && !hasSideNavProps && (0, _jsxRuntime.jsx)(_reactErrorBoundary.ErrorBoundary, {
127
127
  fallback: null,
128
128
  onError: onError,
129
- children: (0, _jsxRuntime.jsx)(_index2.SideNav, {
129
+ children: (0, _jsxRuntime.jsx)(_SideNav.SideNav, {
130
130
  isLoading: true,
131
131
  sideNavItems: _uiShellSharedConstants.emptySideNavItems
132
132
  })
133
133
  }), hasSideNavProps && sideNavProps && (0, _jsxRuntime.jsx)(_reactErrorBoundary.ErrorBoundary, {
134
134
  fallback: null,
135
135
  onError: onError,
136
- children: (0, _jsxRuntime.jsx)(_index2.SideNav, {
136
+ children: (0, _jsxRuntime.jsx)(_SideNav.SideNav, {
137
137
  ...sideNavProps,
138
138
  ...(sideNavProps.hasCustomFooter && optionalComponents?.sideNavFooter ? {
139
139
  footerComponent: optionalComponents.sideNavFooter,
@@ -150,14 +150,14 @@ const WideUiShellContent = ({
150
150
  children: [initialVisibleSections?.includes("TopNav") && topNavProps === undefined && (0, _jsxRuntime.jsx)(_reactErrorBoundary.ErrorBoundary, {
151
151
  fallback: null,
152
152
  onError: onError,
153
- children: (0, _jsxRuntime.jsx)(_index3.TopNav, {
153
+ children: (0, _jsxRuntime.jsx)(_TopNav.TopNav, {
154
154
  leftSideComponent: optionalComponents?.topNavLeftSide,
155
155
  rightSideComponent: optionalComponents?.topNavRightSide
156
156
  })
157
157
  }), topNavProps && (0, _jsxRuntime.jsx)(_reactErrorBoundary.ErrorBoundary, {
158
158
  fallback: null,
159
159
  onError: onError,
160
- children: (0, _jsxRuntime.jsx)(_index3.TopNav, {
160
+ children: (0, _jsxRuntime.jsx)(_TopNav.TopNav, {
161
161
  ...topNavProps,
162
162
  leftSideComponent: optionalComponents?.topNavLeftSide,
163
163
  rightSideComponent: optionalComponents?.topNavRightSide
@@ -1 +1 @@
1
- {"version":3,"file":"WideUiShellContent.cjs","names":["_styled","_interopRequireDefault","require","_react","_reactErrorBoundary","_OdysseyDesignTokensContext","_index","_InnerAppContainer","_index2","_index3","_uiShellContentTypes","_UiShellProvider","_uiShellSharedConstants","_useMatchAppElementToUiShellAppArea","_useScrollState","_jsxRuntime","e","__esModule","default","appSwitcherDefaultAppIcons","StyledAppContainer","styled","shouldForwardProp","prop","appBackgroundColor","backgroundColor","gridArea","position","StyledAppSwitcherContainer","StyledBannersContainer","StyledSideNavContainer","StyledShellContainer","odysseyDesignTokens","HueNeutral50","display","gridGap","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","height","width","StyledTopNavContainer","WideUiShellContent","appElement","appElementScrollingMode","appSwitcherProps","hasStandardAppContentPadding","hasSideNavProps","initialVisibleSections","onError","console","error","optionalComponents","sideNavProps","topNavProps","useOdysseyDesignTokens","uiShellContext","useUiShellContext","isContentScrolled","useScrollState","sideNavContainerRef","useRef","topNavContainerRef","uiShellAppAreaRef","parentContainerRef","useMatchAppElementToUiShellAppArea","paddingMode","uiShellResizableRefs","jsxs","ref","children","jsx","banners","includes","ErrorBoundary","fallback","AppSwitcher","appIcons","isLoading","selectedAppName","TURN_OFF_APP_SWITCHER","SideNav","sideNavItems","emptySideNavItems","hasCustomFooter","sideNavFooter","footerComponent","footerItems","undefined","TopNav","leftSideComponent","topNavLeftSide","rightSideComponent","topNavRightSide","tabIndex","InnerAppContainer","MemoizedWideUiShellContent","exports","memo","displayName"],"sources":["../../../src/ui-shell/WideUiShellContent.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport { memo, useRef } from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\n\nimport {\n type DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext.js\";\nimport { AppSwitcherAppIconData } from \"./AppSwitcher/AppSwitcherApp.js\";\nimport { AppSwitcher } from \"./AppSwitcher/index.js\";\nimport { InnerAppContainer } from \"./InnerAppContainer.js\";\nimport { SideNav } from \"./SideNav/index.js\";\nimport { TopNav } from \"./TopNav/index.js\";\nimport {\n TURN_OFF_APP_SWITCHER,\n UiShellContentProps,\n UiShellNavComponentProps,\n} from \"./uiShellContentTypes.js\";\nimport { UiShellColors, useUiShellContext } from \"./UiShellProvider.js\";\nimport { emptySideNavItems } from \"./uiShellSharedConstants.js\";\nimport { useMatchAppElementToUiShellAppArea } from \"./useMatchAppElementToUiShellAppArea.js\";\nimport { useScrollState } from \"./useScrollState.js\";\n\nconst appSwitcherDefaultAppIcons = [] satisfies AppSwitcherAppIconData[];\n\nconst StyledAppContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"appBackgroundColor\" && prop !== \"odysseyDesignTokens\",\n})<{\n appBackgroundColor?: UiShellColors[\"appBackgroundColor\"];\n}>(({ appBackgroundColor }) => ({\n backgroundColor: appBackgroundColor,\n gridArea: \"app-content\",\n position: \"relative\",\n}));\n\nconst StyledAppSwitcherContainer = styled(\"div\")({\n gridArea: \"app-switcher\",\n});\n\nconst StyledBannersContainer = styled(\"div\")({\n gridArea: \"banners\",\n});\n\nconst StyledSideNavContainer = styled(\"div\")({\n gridArea: \"side-nav\",\n});\n\nconst StyledShellContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n backgroundColor: odysseyDesignTokens.HueNeutral50,\n display: \"grid\",\n gridGap: 0,\n gridTemplateAreas: `\n \"banners banners banners\"\n \"app-switcher side-nav top-nav\"\n \"app-switcher side-nav app-content\"\n `,\n gridTemplateColumns: \"auto auto 1fr\",\n gridTemplateRows: \"auto auto 1fr\",\n height: \"100vh\",\n width: \"100vw\",\n}));\n\nconst StyledTopNavContainer = styled(\"div\")({\n gridArea: \"top-nav\",\n});\n\nexport type WideUiShellContentProps = UiShellNavComponentProps &\n UiShellContentProps;\n\n/**\n * Our new Unified Platform UI Shell.\n *\n * This includes the top and side navigation as well as the footer and provides a spot for your app to render into.\n *\n * If an error occurs, this will revert to only showing the app.\n */\nconst WideUiShellContent = ({\n appElement,\n appElementScrollingMode,\n appSwitcherProps,\n hasStandardAppContentPadding = true,\n hasSideNavProps,\n initialVisibleSections = [\"TopNav\", \"SideNav\", \"AppSwitcher\"],\n onError = console.error,\n optionalComponents,\n sideNavProps,\n topNavProps,\n}: WideUiShellContentProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const uiShellContext = useUiShellContext();\n\n const { isContentScrolled } = useScrollState(appElement);\n\n const sideNavContainerRef = useRef<HTMLDivElement>(null);\n const topNavContainerRef = useRef<HTMLDivElement>(null);\n const uiShellAppAreaRef = useRef<HTMLDivElement>(null);\n\n const { parentContainerRef } = useMatchAppElementToUiShellAppArea({\n appElement,\n appElementScrollingMode,\n paddingMode: hasStandardAppContentPadding ? \"comfortable\" : \"none\",\n uiShellAppAreaRef,\n uiShellResizableRefs: [\n sideNavContainerRef,\n topNavContainerRef,\n uiShellAppAreaRef,\n ],\n });\n\n return (\n <StyledShellContainer\n odysseyDesignTokens={odysseyDesignTokens}\n ref={parentContainerRef}\n >\n <StyledBannersContainer>\n {optionalComponents?.banners}\n </StyledBannersContainer>\n\n <StyledAppSwitcherContainer>\n {\n /* If AppSwitcher should be initially visible and we have not yet received props, render AppSwitcher in the loading state */\n initialVisibleSections?.includes(\"AppSwitcher\") &&\n !appSwitcherProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <AppSwitcher\n appIcons={appSwitcherDefaultAppIcons}\n isLoading\n selectedAppName=\"\"\n />\n </ErrorBoundary>\n )\n }\n\n {appSwitcherProps && appSwitcherProps !== TURN_OFF_APP_SWITCHER && (\n <ErrorBoundary fallback={null} onError={onError}>\n <AppSwitcher {...appSwitcherProps} />\n </ErrorBoundary>\n )}\n </StyledAppSwitcherContainer>\n\n <StyledSideNavContainer ref={sideNavContainerRef}>\n {\n /* If SideNav should be initially visible and we have not yet received props, render SideNav with minimal inputs */\n initialVisibleSections?.includes(\"SideNav\") && !hasSideNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <SideNav isLoading sideNavItems={emptySideNavItems} />\n </ErrorBoundary>\n )\n }\n\n {hasSideNavProps && sideNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <SideNav\n {...{\n ...sideNavProps,\n ...(sideNavProps.hasCustomFooter &&\n optionalComponents?.sideNavFooter\n ? {\n footerComponent: optionalComponents.sideNavFooter,\n footerItems: undefined,\n hasCustomFooter: sideNavProps.hasCustomFooter,\n }\n : {\n footerItems: sideNavProps.footerItems,\n hasCustomFooter: false,\n }),\n }}\n />\n </ErrorBoundary>\n )}\n </StyledSideNavContainer>\n\n <StyledTopNavContainer ref={topNavContainerRef}>\n {\n /* If TopNav should be initially visible and we have not yet received props, render Topnav with minimal inputs */\n initialVisibleSections?.includes(\"TopNav\") &&\n topNavProps === undefined && (\n <ErrorBoundary fallback={null} onError={onError}>\n <TopNav\n leftSideComponent={optionalComponents?.topNavLeftSide}\n rightSideComponent={optionalComponents?.topNavRightSide}\n />\n </ErrorBoundary>\n )\n }\n\n {topNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <TopNav\n {...topNavProps}\n leftSideComponent={optionalComponents?.topNavLeftSide}\n rightSideComponent={optionalComponents?.topNavRightSide}\n />\n </ErrorBoundary>\n )}\n </StyledTopNavContainer>\n\n <StyledAppContainer\n appBackgroundColor={uiShellContext?.appBackgroundColor}\n ref={uiShellAppAreaRef}\n tabIndex={0}\n >\n <InnerAppContainer isContentScrolled={isContentScrolled} />\n </StyledAppContainer>\n </StyledShellContainer>\n );\n};\n\nconst MemoizedWideUiShellContent = memo(WideUiShellContent);\nMemoizedWideUiShellContent.displayName = \"WideUiShellContent\";\n\nexport { MemoizedWideUiShellContent as WideUiShellContent };\n"],"mappings":";;;;;;AAYA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AAEA,IAAAG,2BAAA,GAAAH,OAAA;AAKA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,oBAAA,GAAAR,OAAA;AAKA,IAAAS,gBAAA,GAAAT,OAAA;AACA,IAAAU,uBAAA,GAAAV,OAAA;AACA,IAAAW,mCAAA,GAAAX,OAAA;AACA,IAAAY,eAAA,GAAAZ,OAAA;AAAqD,IAAAa,WAAA,GAAAb,OAAA;AAAA,SAAAD,uBAAAe,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAjCrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAyBA,MAAMG,0BAA0B,GAAG,EAAqC;AAExE,MAAMC,kBAAkB,GAAG,IAAAC,eAAM,EAAC,KAAK,EAAE;EACvCC,iBAAiB,EAAGC,IAAI,IACtBA,IAAI,KAAK,oBAAoB,IAAIA,IAAI,KAAK;AAC9C,CAAC,CAAC,CAEC,CAAC;EAAEC;AAAmB,CAAC,MAAM;EAC9BC,eAAe,EAAED,kBAAkB;EACnCE,QAAQ,EAAE,aAAa;EACvBC,QAAQ,EAAE;AACZ,CAAC,CAAC,CAAC;AAEH,MAAMC,0BAA0B,GAAG,IAAAP,eAAM,EAAC,KAAK,CAAC,CAAC;EAC/CK,QAAQ,EAAE;AACZ,CAAC,CAAC;AAEF,MAAMG,sBAAsB,GAAG,IAAAR,eAAM,EAAC,KAAK,CAAC,CAAC;EAC3CK,QAAQ,EAAE;AACZ,CAAC,CAAC;AAEF,MAAMI,sBAAsB,GAAG,IAAAT,eAAM,EAAC,KAAK,CAAC,CAAC;EAC3CK,QAAQ,EAAE;AACZ,CAAC,CAAC;AAEF,MAAMK,oBAAoB,GAAG,IAAAV,eAAM,EAAC,KAAK,EAAE;EACzCC,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAEC,CAAC;EAAES;AAAoB,CAAC,MAAM;EAC/BP,eAAe,EAAEO,mBAAmB,CAACC,YAAY;EACjDC,OAAO,EAAE,MAAM;EACfC,OAAO,EAAE,CAAC;EACVC,iBAAiB,EAAE;AACrB;AACA;AACA;AACA,GAAG;EACDC,mBAAmB,EAAE,eAAe;EACpCC,gBAAgB,EAAE,eAAe;EACjCC,MAAM,EAAE,OAAO;EACfC,KAAK,EAAE;AACT,CAAC,CAAC,CAAC;AAEH,MAAMC,qBAAqB,GAAG,IAAApB,eAAM,EAAC,KAAK,CAAC,CAAC;EAC1CK,QAAQ,EAAE;AACZ,CAAC,CAAC;AAYF,MAAMgB,kBAAkB,GAAGA,CAAC;EAC1BC,UAAU;EACVC,uBAAuB;EACvBC,gBAAgB;EAChBC,4BAA4B,GAAG,IAAI;EACnCC,eAAe;EACfC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC;EAC7DC,OAAO,GAAGC,OAAO,CAACC,KAAK;EACvBC,kBAAkB;EAClBC,YAAY;EACZC;AACuB,CAAC,KAAK;EAC7B,MAAMtB,mBAAmB,GAAG,IAAAuB,kDAAsB,EAAC,CAAC;EACpD,MAAMC,cAAc,GAAG,IAAAC,kCAAiB,EAAC,CAAC;EAE1C,MAAM;IAAEC;EAAkB,CAAC,GAAG,IAAAC,8BAAc,EAAChB,UAAU,CAAC;EAExD,MAAMiB,mBAAmB,GAAG,IAAAC,aAAM,EAAiB,IAAI,CAAC;EACxD,MAAMC,kBAAkB,GAAG,IAAAD,aAAM,EAAiB,IAAI,CAAC;EACvD,MAAME,iBAAiB,GAAG,IAAAF,aAAM,EAAiB,IAAI,CAAC;EAEtD,MAAM;IAAEG;EAAmB,CAAC,GAAG,IAAAC,sEAAkC,EAAC;IAChEtB,UAAU;IACVC,uBAAuB;IACvBsB,WAAW,EAAEpB,4BAA4B,GAAG,aAAa,GAAG,MAAM;IAClEiB,iBAAiB;IACjBI,oBAAoB,EAAE,CACpBP,mBAAmB,EACnBE,kBAAkB,EAClBC,iBAAiB;EAErB,CAAC,CAAC;EAEF,OACE,IAAAhD,WAAA,CAAAqD,IAAA,EAACrC,oBAAoB;IACnBC,mBAAmB,EAAEA,mBAAoB;IACzCqC,GAAG,EAAEL,kBAAmB;IAAAM,QAAA,GAExB,IAAAvD,WAAA,CAAAwD,GAAA,EAAC1C,sBAAsB;MAAAyC,QAAA,EACpBlB,kBAAkB,EAAEoB;IAAO,CACN,CAAC,EAEzB,IAAAzD,WAAA,CAAAqD,IAAA,EAACxC,0BAA0B;MAAA0C,QAAA,GAGvBtB,sBAAsB,EAAEyB,QAAQ,CAAC,aAAa,CAAC,IAC7C,CAAC5B,gBAAgB,IACf,IAAA9B,WAAA,CAAAwD,GAAA,EAACnE,mBAAA,CAAAsE,aAAa;QAACC,QAAQ,EAAE,IAAK;QAAC1B,OAAO,EAAEA,OAAQ;QAAAqB,QAAA,EAC9C,IAAAvD,WAAA,CAAAwD,GAAA,EAACjE,MAAA,CAAAsE,WAAW;UACVC,QAAQ,EAAE1D,0BAA2B;UACrC2D,SAAS;UACTC,eAAe,EAAC;QAAE,CACnB;MAAC,CACW,CAChB,EAGJlC,gBAAgB,IAAIA,gBAAgB,KAAKmC,0CAAqB,IAC7D,IAAAjE,WAAA,CAAAwD,GAAA,EAACnE,mBAAA,CAAAsE,aAAa;QAACC,QAAQ,EAAE,IAAK;QAAC1B,OAAO,EAAEA,OAAQ;QAAAqB,QAAA,EAC9C,IAAAvD,WAAA,CAAAwD,GAAA,EAACjE,MAAA,CAAAsE,WAAW;UAAA,GAAK/B;QAAgB,CAAG;MAAC,CACxB,CAChB;IAAA,CACyB,CAAC,EAE7B,IAAA9B,WAAA,CAAAqD,IAAA,EAACtC,sBAAsB;MAACuC,GAAG,EAAET,mBAAoB;MAAAU,QAAA,GAG7CtB,sBAAsB,EAAEyB,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC1B,eAAe,IAC7D,IAAAhC,WAAA,CAAAwD,GAAA,EAACnE,mBAAA,CAAAsE,aAAa;QAACC,QAAQ,EAAE,IAAK;QAAC1B,OAAO,EAAEA,OAAQ;QAAAqB,QAAA,EAC9C,IAAAvD,WAAA,CAAAwD,GAAA,EAAC/D,OAAA,CAAAyE,OAAO;UAACH,SAAS;UAACI,YAAY,EAAEC;QAAkB,CAAE;MAAC,CACzC,CAChB,EAGFpC,eAAe,IAAIM,YAAY,IAC9B,IAAAtC,WAAA,CAAAwD,GAAA,EAACnE,mBAAA,CAAAsE,aAAa;QAACC,QAAQ,EAAE,IAAK;QAAC1B,OAAO,EAAEA,OAAQ;QAAAqB,QAAA,EAC9C,IAAAvD,WAAA,CAAAwD,GAAA,EAAC/D,OAAA,CAAAyE,OAAO;UAEJ,GAAG5B,YAAY;UACf,IAAIA,YAAY,CAAC+B,eAAe,IAChChC,kBAAkB,EAAEiC,aAAa,GAC7B;YACEC,eAAe,EAAElC,kBAAkB,CAACiC,aAAa;YACjDE,WAAW,EAAEC,SAAS;YACtBJ,eAAe,EAAE/B,YAAY,CAAC+B;UAChC,CAAC,GACD;YACEG,WAAW,EAAElC,YAAY,CAACkC,WAAW;YACrCH,eAAe,EAAE;UACnB,CAAC;QAAC,CAET;MAAC,CACW,CAChB;IAAA,CACqB,CAAC,EAEzB,IAAArE,WAAA,CAAAqD,IAAA,EAAC3B,qBAAqB;MAAC4B,GAAG,EAAEP,kBAAmB;MAAAQ,QAAA,GAG3CtB,sBAAsB,EAAEyB,QAAQ,CAAC,QAAQ,CAAC,IACxCnB,WAAW,KAAKkC,SAAS,IACvB,IAAAzE,WAAA,CAAAwD,GAAA,EAACnE,mBAAA,CAAAsE,aAAa;QAACC,QAAQ,EAAE,IAAK;QAAC1B,OAAO,EAAEA,OAAQ;QAAAqB,QAAA,EAC9C,IAAAvD,WAAA,CAAAwD,GAAA,EAAC9D,OAAA,CAAAgF,MAAM;UACLC,iBAAiB,EAAEtC,kBAAkB,EAAEuC,cAAe;UACtDC,kBAAkB,EAAExC,kBAAkB,EAAEyC;QAAgB,CACzD;MAAC,CACW,CAChB,EAGJvC,WAAW,IACV,IAAAvC,WAAA,CAAAwD,GAAA,EAACnE,mBAAA,CAAAsE,aAAa;QAACC,QAAQ,EAAE,IAAK;QAAC1B,OAAO,EAAEA,OAAQ;QAAAqB,QAAA,EAC9C,IAAAvD,WAAA,CAAAwD,GAAA,EAAC9D,OAAA,CAAAgF,MAAM;UAAA,GACDnC,WAAW;UACfoC,iBAAiB,EAAEtC,kBAAkB,EAAEuC,cAAe;UACtDC,kBAAkB,EAAExC,kBAAkB,EAAEyC;QAAgB,CACzD;MAAC,CACW,CAChB;IAAA,CACoB,CAAC,EAExB,IAAA9E,WAAA,CAAAwD,GAAA,EAACnD,kBAAkB;MACjBI,kBAAkB,EAAEgC,cAAc,EAAEhC,kBAAmB;MACvD6C,GAAG,EAAEN,iBAAkB;MACvB+B,QAAQ,EAAE,CAAE;MAAAxB,QAAA,EAEZ,IAAAvD,WAAA,CAAAwD,GAAA,EAAChE,kBAAA,CAAAwF,iBAAiB;QAACrC,iBAAiB,EAAEA;MAAkB,CAAE;IAAC,CACzC,CAAC;EAAA,CACD,CAAC;AAE3B,CAAC;AAED,MAAMsC,0BAA0B,GAAAC,OAAA,CAAAvD,kBAAA,GAAG,IAAAwD,WAAI,EAACxD,kBAAkB,CAAC;AAC3DsD,0BAA0B,CAACG,WAAW,GAAG,oBAAoB","ignoreList":[]}
1
+ {"version":3,"file":"WideUiShellContent.cjs","names":["_styled","_interopRequireDefault","require","_react","_reactErrorBoundary","_OdysseyDesignTokensContext","_AppSwitcher","_InnerAppContainer","_SideNav","_TopNav","_uiShellContentTypes","_UiShellProvider","_uiShellSharedConstants","_useMatchAppElementToUiShellAppArea","_useScrollState","_jsxRuntime","e","__esModule","default","appSwitcherDefaultAppIcons","StyledAppContainer","styled","shouldForwardProp","prop","appBackgroundColor","backgroundColor","gridArea","position","StyledAppSwitcherContainer","StyledBannersContainer","StyledSideNavContainer","StyledShellContainer","odysseyDesignTokens","HueNeutral50","display","gridGap","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","height","width","StyledTopNavContainer","WideUiShellContent","appElement","appElementScrollingMode","appSwitcherProps","hasStandardAppContentPadding","hasSideNavProps","initialVisibleSections","onError","console","error","optionalComponents","sideNavProps","topNavProps","useOdysseyDesignTokens","uiShellContext","useUiShellContext","isContentScrolled","useScrollState","sideNavContainerRef","useRef","topNavContainerRef","uiShellAppAreaRef","parentContainerRef","useMatchAppElementToUiShellAppArea","paddingMode","uiShellResizableRefs","jsxs","ref","children","jsx","banners","includes","ErrorBoundary","fallback","AppSwitcher","appIcons","isLoading","selectedAppName","TURN_OFF_APP_SWITCHER","SideNav","sideNavItems","emptySideNavItems","hasCustomFooter","sideNavFooter","footerComponent","footerItems","undefined","TopNav","leftSideComponent","topNavLeftSide","rightSideComponent","topNavRightSide","tabIndex","InnerAppContainer","MemoizedWideUiShellContent","exports","memo","displayName"],"sources":["../../../src/ui-shell/WideUiShellContent.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport { memo, useRef } from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\n\nimport {\n type DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext.js\";\nimport { AppSwitcher } from \"./AppSwitcher/AppSwitcher.js\";\nimport { AppSwitcherAppIconData } from \"./AppSwitcher/AppSwitcherApp.js\";\nimport { InnerAppContainer } from \"./InnerAppContainer.js\";\nimport { SideNav } from \"./SideNav/SideNav.js\";\nimport { TopNav } from \"./TopNav/TopNav.js\";\nimport {\n TURN_OFF_APP_SWITCHER,\n UiShellContentProps,\n UiShellNavComponentProps,\n} from \"./uiShellContentTypes.js\";\nimport { UiShellColors, useUiShellContext } from \"./UiShellProvider.js\";\nimport { emptySideNavItems } from \"./uiShellSharedConstants.js\";\nimport { useMatchAppElementToUiShellAppArea } from \"./useMatchAppElementToUiShellAppArea.js\";\nimport { useScrollState } from \"./useScrollState.js\";\n\nconst appSwitcherDefaultAppIcons = [] satisfies AppSwitcherAppIconData[];\n\nconst StyledAppContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"appBackgroundColor\" && prop !== \"odysseyDesignTokens\",\n})<{\n appBackgroundColor?: UiShellColors[\"appBackgroundColor\"];\n}>(({ appBackgroundColor }) => ({\n backgroundColor: appBackgroundColor,\n gridArea: \"app-content\",\n position: \"relative\",\n}));\n\nconst StyledAppSwitcherContainer = styled(\"div\")({\n gridArea: \"app-switcher\",\n});\n\nconst StyledBannersContainer = styled(\"div\")({\n gridArea: \"banners\",\n});\n\nconst StyledSideNavContainer = styled(\"div\")({\n gridArea: \"side-nav\",\n});\n\nconst StyledShellContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n backgroundColor: odysseyDesignTokens.HueNeutral50,\n display: \"grid\",\n gridGap: 0,\n gridTemplateAreas: `\n \"banners banners banners\"\n \"app-switcher side-nav top-nav\"\n \"app-switcher side-nav app-content\"\n `,\n gridTemplateColumns: \"auto auto 1fr\",\n gridTemplateRows: \"auto auto 1fr\",\n height: \"100vh\",\n width: \"100vw\",\n}));\n\nconst StyledTopNavContainer = styled(\"div\")({\n gridArea: \"top-nav\",\n});\n\nexport type WideUiShellContentProps = UiShellNavComponentProps &\n UiShellContentProps;\n\n/**\n * Our new Unified Platform UI Shell.\n *\n * This includes the top and side navigation as well as the footer and provides a spot for your app to render into.\n *\n * If an error occurs, this will revert to only showing the app.\n */\nconst WideUiShellContent = ({\n appElement,\n appElementScrollingMode,\n appSwitcherProps,\n hasStandardAppContentPadding = true,\n hasSideNavProps,\n initialVisibleSections = [\"TopNav\", \"SideNav\", \"AppSwitcher\"],\n onError = console.error,\n optionalComponents,\n sideNavProps,\n topNavProps,\n}: WideUiShellContentProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const uiShellContext = useUiShellContext();\n\n const { isContentScrolled } = useScrollState(appElement);\n\n const sideNavContainerRef = useRef<HTMLDivElement>(null);\n const topNavContainerRef = useRef<HTMLDivElement>(null);\n const uiShellAppAreaRef = useRef<HTMLDivElement>(null);\n\n const { parentContainerRef } = useMatchAppElementToUiShellAppArea({\n appElement,\n appElementScrollingMode,\n paddingMode: hasStandardAppContentPadding ? \"comfortable\" : \"none\",\n uiShellAppAreaRef,\n uiShellResizableRefs: [\n sideNavContainerRef,\n topNavContainerRef,\n uiShellAppAreaRef,\n ],\n });\n\n return (\n <StyledShellContainer\n odysseyDesignTokens={odysseyDesignTokens}\n ref={parentContainerRef}\n >\n <StyledBannersContainer>\n {optionalComponents?.banners}\n </StyledBannersContainer>\n\n <StyledAppSwitcherContainer>\n {\n /* If AppSwitcher should be initially visible and we have not yet received props, render AppSwitcher in the loading state */\n initialVisibleSections?.includes(\"AppSwitcher\") &&\n !appSwitcherProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <AppSwitcher\n appIcons={appSwitcherDefaultAppIcons}\n isLoading\n selectedAppName=\"\"\n />\n </ErrorBoundary>\n )\n }\n\n {appSwitcherProps && appSwitcherProps !== TURN_OFF_APP_SWITCHER && (\n <ErrorBoundary fallback={null} onError={onError}>\n <AppSwitcher {...appSwitcherProps} />\n </ErrorBoundary>\n )}\n </StyledAppSwitcherContainer>\n\n <StyledSideNavContainer ref={sideNavContainerRef}>\n {\n /* If SideNav should be initially visible and we have not yet received props, render SideNav with minimal inputs */\n initialVisibleSections?.includes(\"SideNav\") && !hasSideNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <SideNav isLoading sideNavItems={emptySideNavItems} />\n </ErrorBoundary>\n )\n }\n\n {hasSideNavProps && sideNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <SideNav\n {...{\n ...sideNavProps,\n ...(sideNavProps.hasCustomFooter &&\n optionalComponents?.sideNavFooter\n ? {\n footerComponent: optionalComponents.sideNavFooter,\n footerItems: undefined,\n hasCustomFooter: sideNavProps.hasCustomFooter,\n }\n : {\n footerItems: sideNavProps.footerItems,\n hasCustomFooter: false,\n }),\n }}\n />\n </ErrorBoundary>\n )}\n </StyledSideNavContainer>\n\n <StyledTopNavContainer ref={topNavContainerRef}>\n {\n /* If TopNav should be initially visible and we have not yet received props, render Topnav with minimal inputs */\n initialVisibleSections?.includes(\"TopNav\") &&\n topNavProps === undefined && (\n <ErrorBoundary fallback={null} onError={onError}>\n <TopNav\n leftSideComponent={optionalComponents?.topNavLeftSide}\n rightSideComponent={optionalComponents?.topNavRightSide}\n />\n </ErrorBoundary>\n )\n }\n\n {topNavProps && (\n <ErrorBoundary fallback={null} onError={onError}>\n <TopNav\n {...topNavProps}\n leftSideComponent={optionalComponents?.topNavLeftSide}\n rightSideComponent={optionalComponents?.topNavRightSide}\n />\n </ErrorBoundary>\n )}\n </StyledTopNavContainer>\n\n <StyledAppContainer\n appBackgroundColor={uiShellContext?.appBackgroundColor}\n ref={uiShellAppAreaRef}\n tabIndex={0}\n >\n <InnerAppContainer isContentScrolled={isContentScrolled} />\n </StyledAppContainer>\n </StyledShellContainer>\n );\n};\n\nconst MemoizedWideUiShellContent = memo(WideUiShellContent);\nMemoizedWideUiShellContent.displayName = \"WideUiShellContent\";\n\nexport { MemoizedWideUiShellContent as WideUiShellContent };\n"],"mappings":"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","ignoreList":[]}
@@ -26,15 +26,15 @@ Object.defineProperty(exports, "useUiShellBreakpoints", {
26
26
  return _useUiShellBreakpoints.useUiShellBreakpoints;
27
27
  }
28
28
  });
29
- var _index = require("./AppSwitcher/index.cjs");
30
- Object.keys(_index).forEach(function (key) {
29
+ var _AppSwitcher = require("./AppSwitcher/AppSwitcher.cjs");
30
+ Object.keys(_AppSwitcher).forEach(function (key) {
31
31
  if (key === "default" || key === "__esModule") return;
32
32
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
33
- if (key in exports && exports[key] === _index[key]) return;
33
+ if (key in exports && exports[key] === _AppSwitcher[key]) return;
34
34
  Object.defineProperty(exports, key, {
35
35
  enumerable: true,
36
36
  get: function () {
37
- return _index[key];
37
+ return _AppSwitcher[key];
38
38
  }
39
39
  });
40
40
  });
@@ -74,27 +74,39 @@ Object.keys(_renderUiShell).forEach(function (key) {
74
74
  }
75
75
  });
76
76
  });
77
- var _index2 = require("./SideNav/index.cjs");
78
- Object.keys(_index2).forEach(function (key) {
77
+ var _SideNav = require("./SideNav/SideNav.cjs");
78
+ Object.keys(_SideNav).forEach(function (key) {
79
79
  if (key === "default" || key === "__esModule") return;
80
80
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
81
- if (key in exports && exports[key] === _index2[key]) return;
81
+ if (key in exports && exports[key] === _SideNav[key]) return;
82
82
  Object.defineProperty(exports, key, {
83
83
  enumerable: true,
84
84
  get: function () {
85
- return _index2[key];
85
+ return _SideNav[key];
86
86
  }
87
87
  });
88
88
  });
89
- var _index3 = require("./TopNav/index.cjs");
90
- Object.keys(_index3).forEach(function (key) {
89
+ var _types = require("./SideNav/types.cjs");
90
+ Object.keys(_types).forEach(function (key) {
91
91
  if (key === "default" || key === "__esModule") return;
92
92
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
93
- if (key in exports && exports[key] === _index3[key]) return;
93
+ if (key in exports && exports[key] === _types[key]) return;
94
94
  Object.defineProperty(exports, key, {
95
95
  enumerable: true,
96
96
  get: function () {
97
- return _index3[key];
97
+ return _types[key];
98
+ }
99
+ });
100
+ });
101
+ var _TopNav = require("./TopNav/TopNav.cjs");
102
+ Object.keys(_TopNav).forEach(function (key) {
103
+ if (key === "default" || key === "__esModule") return;
104
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
105
+ if (key in exports && exports[key] === _TopNav[key]) return;
106
+ Object.defineProperty(exports, key, {
107
+ enumerable: true,
108
+ get: function () {
109
+ return _TopNav[key];
98
110
  }
99
111
  });
100
112
  });