@okta/odyssey-react-mui 1.32.0 → 1.33.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 (759) hide show
  1. package/dist/cjs/Autocomplete.cjs +1 -1
  2. package/dist/cjs/Autocomplete.cjs.map +1 -1
  3. package/dist/cjs/Breadcrumbs.cjs +23 -7
  4. package/dist/cjs/Breadcrumbs.cjs.map +1 -1
  5. package/dist/cjs/DatePickers/datePickerTheme.cjs +1 -1
  6. package/dist/cjs/DatePickers/datePickerTheme.cjs.map +1 -1
  7. package/dist/cjs/OdysseyProvider.cjs +2 -2
  8. package/dist/cjs/OdysseyProvider.cjs.map +1 -1
  9. package/dist/cjs/OdysseyThemeProvider.cjs +2 -2
  10. package/dist/cjs/OdysseyThemeProvider.cjs.map +1 -1
  11. package/dist/cjs/hexToRgb.cjs.map +1 -1
  12. package/dist/cjs/properties/ts/odyssey-react-mui.cjs +1 -0
  13. package/dist/cjs/properties/ts/odyssey-react-mui.cjs.map +1 -1
  14. package/dist/cjs/properties/ts/odyssey-react-mui_cs.cjs +1 -0
  15. package/dist/cjs/properties/ts/odyssey-react-mui_cs.cjs.map +1 -1
  16. package/dist/cjs/properties/ts/odyssey-react-mui_da.cjs +1 -0
  17. package/dist/cjs/properties/ts/odyssey-react-mui_da.cjs.map +1 -1
  18. package/dist/cjs/properties/ts/odyssey-react-mui_de.cjs +1 -0
  19. package/dist/cjs/properties/ts/odyssey-react-mui_de.cjs.map +1 -1
  20. package/dist/cjs/properties/ts/odyssey-react-mui_el.cjs +1 -0
  21. package/dist/cjs/properties/ts/odyssey-react-mui_el.cjs.map +1 -1
  22. package/dist/cjs/properties/ts/odyssey-react-mui_es.cjs +1 -0
  23. package/dist/cjs/properties/ts/odyssey-react-mui_es.cjs.map +1 -1
  24. package/dist/cjs/properties/ts/odyssey-react-mui_fi.cjs +1 -0
  25. package/dist/cjs/properties/ts/odyssey-react-mui_fi.cjs.map +1 -1
  26. package/dist/cjs/properties/ts/odyssey-react-mui_fr.cjs +1 -0
  27. package/dist/cjs/properties/ts/odyssey-react-mui_fr.cjs.map +1 -1
  28. package/dist/cjs/properties/ts/odyssey-react-mui_ht.cjs +1 -0
  29. package/dist/cjs/properties/ts/odyssey-react-mui_ht.cjs.map +1 -1
  30. package/dist/cjs/properties/ts/odyssey-react-mui_hu.cjs +1 -0
  31. package/dist/cjs/properties/ts/odyssey-react-mui_hu.cjs.map +1 -1
  32. package/dist/cjs/properties/ts/odyssey-react-mui_id.cjs +1 -0
  33. package/dist/cjs/properties/ts/odyssey-react-mui_id.cjs.map +1 -1
  34. package/dist/cjs/properties/ts/odyssey-react-mui_it.cjs +1 -0
  35. package/dist/cjs/properties/ts/odyssey-react-mui_it.cjs.map +1 -1
  36. package/dist/cjs/properties/ts/odyssey-react-mui_ja.cjs +1 -0
  37. package/dist/cjs/properties/ts/odyssey-react-mui_ja.cjs.map +1 -1
  38. package/dist/cjs/properties/ts/odyssey-react-mui_ko.cjs +1 -0
  39. package/dist/cjs/properties/ts/odyssey-react-mui_ko.cjs.map +1 -1
  40. package/dist/cjs/properties/ts/odyssey-react-mui_ms.cjs +1 -0
  41. package/dist/cjs/properties/ts/odyssey-react-mui_ms.cjs.map +1 -1
  42. package/dist/cjs/properties/ts/odyssey-react-mui_nb.cjs +1 -0
  43. package/dist/cjs/properties/ts/odyssey-react-mui_nb.cjs.map +1 -1
  44. package/dist/cjs/properties/ts/odyssey-react-mui_nl_NL.cjs +1 -0
  45. package/dist/cjs/properties/ts/odyssey-react-mui_nl_NL.cjs.map +1 -1
  46. package/dist/cjs/properties/ts/odyssey-react-mui_pl.cjs +1 -0
  47. package/dist/cjs/properties/ts/odyssey-react-mui_pl.cjs.map +1 -1
  48. package/dist/cjs/properties/ts/odyssey-react-mui_pt_BR.cjs +1 -0
  49. package/dist/cjs/properties/ts/odyssey-react-mui_pt_BR.cjs.map +1 -1
  50. package/dist/cjs/properties/ts/odyssey-react-mui_ro.cjs +1 -0
  51. package/dist/cjs/properties/ts/odyssey-react-mui_ro.cjs.map +1 -1
  52. package/dist/cjs/properties/ts/odyssey-react-mui_ru.cjs +1 -0
  53. package/dist/cjs/properties/ts/odyssey-react-mui_ru.cjs.map +1 -1
  54. package/dist/cjs/properties/ts/odyssey-react-mui_sv.cjs +1 -0
  55. package/dist/cjs/properties/ts/odyssey-react-mui_sv.cjs.map +1 -1
  56. package/dist/cjs/properties/ts/odyssey-react-mui_th.cjs +1 -0
  57. package/dist/cjs/properties/ts/odyssey-react-mui_th.cjs.map +1 -1
  58. package/dist/cjs/properties/ts/odyssey-react-mui_tr.cjs +1 -0
  59. package/dist/cjs/properties/ts/odyssey-react-mui_tr.cjs.map +1 -1
  60. package/dist/cjs/properties/ts/odyssey-react-mui_uk.cjs +1 -0
  61. package/dist/cjs/properties/ts/odyssey-react-mui_uk.cjs.map +1 -1
  62. package/dist/cjs/properties/ts/odyssey-react-mui_vi.cjs +1 -0
  63. package/dist/cjs/properties/ts/odyssey-react-mui_vi.cjs.map +1 -1
  64. package/dist/cjs/properties/ts/odyssey-react-mui_zh_CN.cjs +1 -0
  65. package/dist/cjs/properties/ts/odyssey-react-mui_zh_CN.cjs.map +1 -1
  66. package/dist/cjs/properties/ts/odyssey-react-mui_zh_TW.cjs +1 -0
  67. package/dist/cjs/properties/ts/odyssey-react-mui_zh_TW.cjs.map +1 -1
  68. package/dist/cjs/theme/components.cjs +6 -0
  69. package/dist/cjs/theme/components.cjs.map +1 -1
  70. package/{src/theme/palette.types.ts → dist/cjs/theme/pxToRem.cjs} +10 -13
  71. package/dist/cjs/theme/pxToRem.cjs.map +1 -0
  72. package/dist/cjs/theme/theme.cjs +22 -0
  73. package/dist/cjs/theme/theme.cjs.map +1 -1
  74. package/dist/cjs/theme/useMediaQuery.cjs +34 -0
  75. package/dist/cjs/theme/useMediaQuery.cjs.map +1 -0
  76. package/dist/cjs/ui-shell/AppSwitcher/AppSwitcher.cjs +3 -3
  77. package/dist/cjs/ui-shell/AppSwitcher/AppSwitcher.cjs.map +1 -1
  78. package/dist/cjs/ui-shell/NarrowUiShellContent.cjs +340 -0
  79. package/dist/cjs/ui-shell/NarrowUiShellContent.cjs.map +1 -0
  80. package/dist/cjs/ui-shell/SideNav/SideNav.cjs +64 -45
  81. package/dist/cjs/ui-shell/SideNav/SideNav.cjs.map +1 -1
  82. package/dist/cjs/ui-shell/SideNav/SideNavHeader.cjs +8 -5
  83. package/dist/cjs/ui-shell/SideNav/SideNavHeader.cjs.map +1 -1
  84. package/dist/cjs/ui-shell/SideNav/SideNavItemContent.cjs +39 -11
  85. package/dist/cjs/ui-shell/SideNav/SideNavItemContent.cjs.map +1 -1
  86. package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs +3 -1
  87. package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs.map +1 -1
  88. package/dist/cjs/ui-shell/SideNav/SideNavLogo.cjs +14 -2
  89. package/dist/cjs/ui-shell/SideNav/SideNavLogo.cjs.map +1 -1
  90. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs +2 -1
  91. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs.map +1 -1
  92. package/dist/cjs/ui-shell/SideNav/types.cjs.map +1 -1
  93. package/dist/cjs/ui-shell/TopNav/HamburgerMenuIcon.cjs +37 -0
  94. package/dist/cjs/ui-shell/TopNav/HamburgerMenuIcon.cjs.map +1 -0
  95. package/dist/cjs/ui-shell/TopNav/TopNav.cjs +5 -5
  96. package/dist/cjs/ui-shell/TopNav/TopNav.cjs.map +1 -1
  97. package/dist/cjs/ui-shell/UiShell.cjs +37 -18
  98. package/dist/cjs/ui-shell/UiShell.cjs.map +1 -1
  99. package/dist/cjs/ui-shell/UiShellProvider.cjs +10 -3
  100. package/dist/cjs/ui-shell/UiShellProvider.cjs.map +1 -1
  101. package/dist/cjs/ui-shell/WideUiShellContent.cjs +171 -0
  102. package/dist/cjs/ui-shell/WideUiShellContent.cjs.map +1 -0
  103. package/dist/cjs/ui-shell/index.cjs +36 -0
  104. package/dist/cjs/ui-shell/index.cjs.map +1 -1
  105. package/dist/cjs/ui-shell/renderUiShell.cjs +19 -20
  106. package/dist/cjs/ui-shell/renderUiShell.cjs.map +1 -1
  107. package/{src/TagListContext.tsx → dist/cjs/ui-shell/uiShellContentTypes.cjs} +9 -12
  108. package/dist/cjs/ui-shell/uiShellContentTypes.cjs.map +1 -0
  109. package/dist/cjs/ui-shell/uiShellSharedConstants.cjs +22 -0
  110. package/dist/cjs/ui-shell/uiShellSharedConstants.cjs.map +1 -0
  111. package/dist/cjs/ui-shell/useMatchAppElementToUiShellAppArea.cjs +108 -0
  112. package/dist/cjs/ui-shell/useMatchAppElementToUiShellAppArea.cjs.map +1 -0
  113. package/dist/cjs/ui-shell/useScrollState.cjs +2 -4
  114. package/dist/cjs/ui-shell/useScrollState.cjs.map +1 -1
  115. package/dist/cjs/ui-shell/useUiShellBreakpoints.cjs +41 -0
  116. package/dist/cjs/ui-shell/useUiShellBreakpoints.cjs.map +1 -0
  117. package/dist/cjs/useContrastMode.cjs +1 -1
  118. package/dist/cjs/useContrastMode.cjs.map +1 -1
  119. package/dist/cjs/web-component/createReactRootElements.cjs.map +1 -1
  120. package/dist/cjs/web-component/renderReactInWebComponent.cjs +6 -1
  121. package/dist/cjs/web-component/renderReactInWebComponent.cjs.map +1 -1
  122. package/dist/esm/Autocomplete.js +1 -1
  123. package/dist/esm/Autocomplete.js.map +1 -1
  124. package/dist/esm/Breadcrumbs.js +23 -7
  125. package/dist/esm/Breadcrumbs.js.map +1 -1
  126. package/dist/esm/DatePickers/datePickerTheme.js +1 -1
  127. package/dist/esm/DatePickers/datePickerTheme.js.map +1 -1
  128. package/dist/esm/OdysseyProvider.js +2 -2
  129. package/dist/esm/OdysseyProvider.js.map +1 -1
  130. package/dist/esm/OdysseyThemeProvider.js +2 -2
  131. package/dist/esm/OdysseyThemeProvider.js.map +1 -1
  132. package/dist/esm/hexToRgb.js.map +1 -1
  133. package/dist/esm/properties/ts/odyssey-react-mui.js +1 -0
  134. package/dist/esm/properties/ts/odyssey-react-mui.js.map +1 -1
  135. package/dist/esm/properties/ts/odyssey-react-mui_cs.js +1 -0
  136. package/dist/esm/properties/ts/odyssey-react-mui_cs.js.map +1 -1
  137. package/dist/esm/properties/ts/odyssey-react-mui_da.js +1 -0
  138. package/dist/esm/properties/ts/odyssey-react-mui_da.js.map +1 -1
  139. package/dist/esm/properties/ts/odyssey-react-mui_de.js +1 -0
  140. package/dist/esm/properties/ts/odyssey-react-mui_de.js.map +1 -1
  141. package/dist/esm/properties/ts/odyssey-react-mui_el.js +1 -0
  142. package/dist/esm/properties/ts/odyssey-react-mui_el.js.map +1 -1
  143. package/dist/esm/properties/ts/odyssey-react-mui_es.js +1 -0
  144. package/dist/esm/properties/ts/odyssey-react-mui_es.js.map +1 -1
  145. package/dist/esm/properties/ts/odyssey-react-mui_fi.js +1 -0
  146. package/dist/esm/properties/ts/odyssey-react-mui_fi.js.map +1 -1
  147. package/dist/esm/properties/ts/odyssey-react-mui_fr.js +1 -0
  148. package/dist/esm/properties/ts/odyssey-react-mui_fr.js.map +1 -1
  149. package/dist/esm/properties/ts/odyssey-react-mui_ht.js +1 -0
  150. package/dist/esm/properties/ts/odyssey-react-mui_ht.js.map +1 -1
  151. package/dist/esm/properties/ts/odyssey-react-mui_hu.js +1 -0
  152. package/dist/esm/properties/ts/odyssey-react-mui_hu.js.map +1 -1
  153. package/dist/esm/properties/ts/odyssey-react-mui_id.js +1 -0
  154. package/dist/esm/properties/ts/odyssey-react-mui_id.js.map +1 -1
  155. package/dist/esm/properties/ts/odyssey-react-mui_it.js +1 -0
  156. package/dist/esm/properties/ts/odyssey-react-mui_it.js.map +1 -1
  157. package/dist/esm/properties/ts/odyssey-react-mui_ja.js +1 -0
  158. package/dist/esm/properties/ts/odyssey-react-mui_ja.js.map +1 -1
  159. package/dist/esm/properties/ts/odyssey-react-mui_ko.js +1 -0
  160. package/dist/esm/properties/ts/odyssey-react-mui_ko.js.map +1 -1
  161. package/dist/esm/properties/ts/odyssey-react-mui_ms.js +1 -0
  162. package/dist/esm/properties/ts/odyssey-react-mui_ms.js.map +1 -1
  163. package/dist/esm/properties/ts/odyssey-react-mui_nb.js +1 -0
  164. package/dist/esm/properties/ts/odyssey-react-mui_nb.js.map +1 -1
  165. package/dist/esm/properties/ts/odyssey-react-mui_nl_NL.js +1 -0
  166. package/dist/esm/properties/ts/odyssey-react-mui_nl_NL.js.map +1 -1
  167. package/dist/esm/properties/ts/odyssey-react-mui_pl.js +1 -0
  168. package/dist/esm/properties/ts/odyssey-react-mui_pl.js.map +1 -1
  169. package/dist/esm/properties/ts/odyssey-react-mui_pt_BR.js +1 -0
  170. package/dist/esm/properties/ts/odyssey-react-mui_pt_BR.js.map +1 -1
  171. package/dist/esm/properties/ts/odyssey-react-mui_ro.js +1 -0
  172. package/dist/esm/properties/ts/odyssey-react-mui_ro.js.map +1 -1
  173. package/dist/esm/properties/ts/odyssey-react-mui_ru.js +1 -0
  174. package/dist/esm/properties/ts/odyssey-react-mui_ru.js.map +1 -1
  175. package/dist/esm/properties/ts/odyssey-react-mui_sv.js +1 -0
  176. package/dist/esm/properties/ts/odyssey-react-mui_sv.js.map +1 -1
  177. package/dist/esm/properties/ts/odyssey-react-mui_th.js +1 -0
  178. package/dist/esm/properties/ts/odyssey-react-mui_th.js.map +1 -1
  179. package/dist/esm/properties/ts/odyssey-react-mui_tr.js +1 -0
  180. package/dist/esm/properties/ts/odyssey-react-mui_tr.js.map +1 -1
  181. package/dist/esm/properties/ts/odyssey-react-mui_uk.js +1 -0
  182. package/dist/esm/properties/ts/odyssey-react-mui_uk.js.map +1 -1
  183. package/dist/esm/properties/ts/odyssey-react-mui_vi.js +1 -0
  184. package/dist/esm/properties/ts/odyssey-react-mui_vi.js.map +1 -1
  185. package/dist/esm/properties/ts/odyssey-react-mui_zh_CN.js +1 -0
  186. package/dist/esm/properties/ts/odyssey-react-mui_zh_CN.js.map +1 -1
  187. package/dist/esm/properties/ts/odyssey-react-mui_zh_TW.js +1 -0
  188. package/dist/esm/properties/ts/odyssey-react-mui_zh_TW.js.map +1 -1
  189. package/dist/esm/theme/components.js +6 -0
  190. package/dist/esm/theme/components.js.map +1 -1
  191. package/{src/shadow-dom/index.ts → dist/esm/theme/pxToRem.js} +2 -1
  192. package/dist/esm/theme/pxToRem.js.map +1 -0
  193. package/dist/esm/theme/theme.js +2 -0
  194. package/dist/esm/theme/theme.js.map +1 -1
  195. package/{src/ui-shell/useHasUiShell.ts → dist/esm/theme/useMediaQuery.js} +13 -11
  196. package/dist/esm/theme/useMediaQuery.js.map +1 -0
  197. package/dist/esm/ui-shell/AppSwitcher/AppSwitcher.js +2 -2
  198. package/dist/esm/ui-shell/AppSwitcher/AppSwitcher.js.map +1 -1
  199. package/dist/esm/ui-shell/NarrowUiShellContent.js +334 -0
  200. package/dist/esm/ui-shell/NarrowUiShellContent.js.map +1 -0
  201. package/dist/esm/ui-shell/SideNav/SideNav.js +63 -44
  202. package/dist/esm/ui-shell/SideNav/SideNav.js.map +1 -1
  203. package/dist/esm/ui-shell/SideNav/SideNavHeader.js +7 -4
  204. package/dist/esm/ui-shell/SideNav/SideNavHeader.js.map +1 -1
  205. package/dist/esm/ui-shell/SideNav/SideNavItemContent.js +40 -12
  206. package/dist/esm/ui-shell/SideNav/SideNavItemContent.js.map +1 -1
  207. package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js +3 -1
  208. package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js.map +1 -1
  209. package/dist/esm/ui-shell/SideNav/SideNavLogo.js +14 -2
  210. package/dist/esm/ui-shell/SideNav/SideNavLogo.js.map +1 -1
  211. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js +2 -1
  212. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js.map +1 -1
  213. package/dist/esm/ui-shell/SideNav/types.js.map +1 -1
  214. package/dist/esm/ui-shell/TopNav/HamburgerMenuIcon.js +32 -0
  215. package/dist/esm/ui-shell/TopNav/HamburgerMenuIcon.js.map +1 -0
  216. package/dist/esm/ui-shell/TopNav/TopNav.js +2 -2
  217. package/dist/esm/ui-shell/TopNav/TopNav.js.map +1 -1
  218. package/dist/esm/ui-shell/UiShell.js +37 -18
  219. package/dist/esm/ui-shell/UiShell.js.map +1 -1
  220. package/dist/esm/ui-shell/UiShellProvider.js +10 -3
  221. package/dist/esm/ui-shell/UiShellProvider.js.map +1 -1
  222. package/dist/esm/ui-shell/WideUiShellContent.js +165 -0
  223. package/dist/esm/ui-shell/WideUiShellContent.js.map +1 -0
  224. package/dist/esm/ui-shell/index.js +3 -0
  225. package/dist/esm/ui-shell/index.js.map +1 -1
  226. package/dist/esm/ui-shell/renderUiShell.js +19 -20
  227. package/dist/esm/ui-shell/renderUiShell.js.map +1 -1
  228. package/{src/DataTable/constants.ts → dist/esm/ui-shell/uiShellContentTypes.js} +3 -2
  229. package/dist/esm/ui-shell/uiShellContentTypes.js.map +1 -0
  230. package/{src/CssBaseline.tsx → dist/esm/ui-shell/uiShellSharedConstants.js} +7 -11
  231. package/dist/esm/ui-shell/uiShellSharedConstants.js.map +1 -0
  232. package/dist/esm/ui-shell/useMatchAppElementToUiShellAppArea.js +99 -0
  233. package/dist/esm/ui-shell/useMatchAppElementToUiShellAppArea.js.map +1 -0
  234. package/dist/esm/ui-shell/useScrollState.js +3 -5
  235. package/dist/esm/ui-shell/useScrollState.js.map +1 -1
  236. package/dist/esm/ui-shell/useUiShellBreakpoints.js +34 -0
  237. package/dist/esm/ui-shell/useUiShellBreakpoints.js.map +1 -0
  238. package/dist/esm/useContrastMode.js +2 -2
  239. package/dist/esm/useContrastMode.js.map +1 -1
  240. package/dist/esm/web-component/createReactRootElements.js.map +1 -1
  241. package/dist/esm/web-component/renderReactInWebComponent.js +6 -1
  242. package/dist/esm/web-component/renderReactInWebComponent.js.map +1 -1
  243. package/dist/index.cjs +1 -1
  244. package/dist/index.mjs +1 -1
  245. package/dist/index.scss +1 -1
  246. package/dist/tsconfig.production.tsbuildinfo +1 -1
  247. package/dist/types/Autocomplete.d.ts +1 -1
  248. package/dist/types/Breadcrumbs.d.ts +4 -3
  249. package/dist/types/Breadcrumbs.d.ts.map +1 -1
  250. package/dist/types/OdysseyProvider.d.ts +1 -1
  251. package/dist/types/OdysseyProvider.d.ts.map +1 -1
  252. package/dist/types/OdysseyThemeProvider.d.ts.map +1 -1
  253. package/dist/types/OdysseyTranslationProvider.d.ts +1 -1
  254. package/dist/types/OdysseyTranslationProvider.d.ts.map +1 -1
  255. package/dist/types/hexToRgb.d.ts.map +1 -1
  256. package/dist/types/i18n.d.ts +28 -0
  257. package/dist/types/i18n.d.ts.map +1 -1
  258. package/dist/types/properties/ts/odyssey-react-mui.d.ts +1 -0
  259. package/dist/types/properties/ts/odyssey-react-mui.d.ts.map +1 -1
  260. package/dist/types/properties/ts/odyssey-react-mui_cs.d.ts +1 -0
  261. package/dist/types/properties/ts/odyssey-react-mui_cs.d.ts.map +1 -1
  262. package/dist/types/properties/ts/odyssey-react-mui_da.d.ts +1 -0
  263. package/dist/types/properties/ts/odyssey-react-mui_da.d.ts.map +1 -1
  264. package/dist/types/properties/ts/odyssey-react-mui_de.d.ts +1 -0
  265. package/dist/types/properties/ts/odyssey-react-mui_de.d.ts.map +1 -1
  266. package/dist/types/properties/ts/odyssey-react-mui_el.d.ts +1 -0
  267. package/dist/types/properties/ts/odyssey-react-mui_el.d.ts.map +1 -1
  268. package/dist/types/properties/ts/odyssey-react-mui_es.d.ts +1 -0
  269. package/dist/types/properties/ts/odyssey-react-mui_es.d.ts.map +1 -1
  270. package/dist/types/properties/ts/odyssey-react-mui_fi.d.ts +1 -0
  271. package/dist/types/properties/ts/odyssey-react-mui_fi.d.ts.map +1 -1
  272. package/dist/types/properties/ts/odyssey-react-mui_fr.d.ts +1 -0
  273. package/dist/types/properties/ts/odyssey-react-mui_fr.d.ts.map +1 -1
  274. package/dist/types/properties/ts/odyssey-react-mui_ht.d.ts +1 -0
  275. package/dist/types/properties/ts/odyssey-react-mui_ht.d.ts.map +1 -1
  276. package/dist/types/properties/ts/odyssey-react-mui_hu.d.ts +1 -0
  277. package/dist/types/properties/ts/odyssey-react-mui_hu.d.ts.map +1 -1
  278. package/dist/types/properties/ts/odyssey-react-mui_id.d.ts +1 -0
  279. package/dist/types/properties/ts/odyssey-react-mui_id.d.ts.map +1 -1
  280. package/dist/types/properties/ts/odyssey-react-mui_it.d.ts +1 -0
  281. package/dist/types/properties/ts/odyssey-react-mui_it.d.ts.map +1 -1
  282. package/dist/types/properties/ts/odyssey-react-mui_ja.d.ts +1 -0
  283. package/dist/types/properties/ts/odyssey-react-mui_ja.d.ts.map +1 -1
  284. package/dist/types/properties/ts/odyssey-react-mui_ko.d.ts +1 -0
  285. package/dist/types/properties/ts/odyssey-react-mui_ko.d.ts.map +1 -1
  286. package/dist/types/properties/ts/odyssey-react-mui_ms.d.ts +1 -0
  287. package/dist/types/properties/ts/odyssey-react-mui_ms.d.ts.map +1 -1
  288. package/dist/types/properties/ts/odyssey-react-mui_nb.d.ts +1 -0
  289. package/dist/types/properties/ts/odyssey-react-mui_nb.d.ts.map +1 -1
  290. package/dist/types/properties/ts/odyssey-react-mui_nl_NL.d.ts +1 -0
  291. package/dist/types/properties/ts/odyssey-react-mui_nl_NL.d.ts.map +1 -1
  292. package/dist/types/properties/ts/odyssey-react-mui_pl.d.ts +1 -0
  293. package/dist/types/properties/ts/odyssey-react-mui_pl.d.ts.map +1 -1
  294. package/dist/types/properties/ts/odyssey-react-mui_pt_BR.d.ts +1 -0
  295. package/dist/types/properties/ts/odyssey-react-mui_pt_BR.d.ts.map +1 -1
  296. package/dist/types/properties/ts/odyssey-react-mui_ro.d.ts +1 -0
  297. package/dist/types/properties/ts/odyssey-react-mui_ro.d.ts.map +1 -1
  298. package/dist/types/properties/ts/odyssey-react-mui_ru.d.ts +1 -0
  299. package/dist/types/properties/ts/odyssey-react-mui_ru.d.ts.map +1 -1
  300. package/dist/types/properties/ts/odyssey-react-mui_sv.d.ts +1 -0
  301. package/dist/types/properties/ts/odyssey-react-mui_sv.d.ts.map +1 -1
  302. package/dist/types/properties/ts/odyssey-react-mui_th.d.ts +1 -0
  303. package/dist/types/properties/ts/odyssey-react-mui_th.d.ts.map +1 -1
  304. package/dist/types/properties/ts/odyssey-react-mui_tr.d.ts +1 -0
  305. package/dist/types/properties/ts/odyssey-react-mui_tr.d.ts.map +1 -1
  306. package/dist/types/properties/ts/odyssey-react-mui_uk.d.ts +1 -0
  307. package/dist/types/properties/ts/odyssey-react-mui_uk.d.ts.map +1 -1
  308. package/dist/types/properties/ts/odyssey-react-mui_vi.d.ts +1 -0
  309. package/dist/types/properties/ts/odyssey-react-mui_vi.d.ts.map +1 -1
  310. package/dist/types/properties/ts/odyssey-react-mui_zh_CN.d.ts +1 -0
  311. package/dist/types/properties/ts/odyssey-react-mui_zh_CN.d.ts.map +1 -1
  312. package/dist/types/properties/ts/odyssey-react-mui_zh_TW.d.ts +1 -0
  313. package/dist/types/properties/ts/odyssey-react-mui_zh_TW.d.ts.map +1 -1
  314. package/dist/types/theme/components.d.ts.map +1 -1
  315. package/{src/DatePickers/index.ts → dist/types/theme/pxToRem.d.ts} +3 -5
  316. package/dist/types/theme/pxToRem.d.ts.map +1 -0
  317. package/dist/types/theme/theme.d.ts +2 -0
  318. package/dist/types/theme/theme.d.ts.map +1 -1
  319. package/{src/web-component/index.ts → dist/types/theme/useMediaQuery.d.ts} +2 -2
  320. package/dist/types/theme/useMediaQuery.d.ts.map +1 -0
  321. package/dist/types/ui-shell/AppSwitcher/AppSwitcher.d.ts.map +1 -1
  322. package/dist/types/ui-shell/NarrowUiShellContent.d.ts +17 -0
  323. package/dist/types/ui-shell/NarrowUiShellContent.d.ts.map +1 -0
  324. package/dist/types/ui-shell/SideNav/SideNav.d.ts +1 -3
  325. package/dist/types/ui-shell/SideNav/SideNav.d.ts.map +1 -1
  326. package/dist/types/ui-shell/SideNav/SideNavHeader.d.ts.map +1 -1
  327. package/dist/types/ui-shell/SideNav/SideNavItemContent.d.ts +9 -7
  328. package/dist/types/ui-shell/SideNav/SideNavItemContent.d.ts.map +1 -1
  329. package/dist/types/ui-shell/SideNav/SideNavItemLinkContent.d.ts +1 -1
  330. package/dist/types/ui-shell/SideNav/SideNavItemLinkContent.d.ts.map +1 -1
  331. package/dist/types/ui-shell/SideNav/SideNavLogo.d.ts.map +1 -1
  332. package/dist/types/ui-shell/SideNav/SideNavToggleButton.d.ts.map +1 -1
  333. package/dist/types/ui-shell/SideNav/types.d.ts +12 -2
  334. package/dist/types/ui-shell/SideNav/types.d.ts.map +1 -1
  335. package/{src/Buttons/ButtonContext.tsx → dist/types/ui-shell/TopNav/HamburgerMenuIcon.d.ts} +5 -12
  336. package/dist/types/ui-shell/TopNav/HamburgerMenuIcon.d.ts.map +1 -0
  337. package/dist/types/ui-shell/TopNav/TopNav.d.ts +0 -1
  338. package/dist/types/ui-shell/TopNav/TopNav.d.ts.map +1 -1
  339. package/dist/types/ui-shell/UiShell.d.ts +20 -7
  340. package/dist/types/ui-shell/UiShell.d.ts.map +1 -1
  341. package/dist/types/ui-shell/UiShellProvider.d.ts +8 -6
  342. package/dist/types/ui-shell/UiShellProvider.d.ts.map +1 -1
  343. package/{src/Buttons/index.ts → dist/types/ui-shell/WideUiShellContent.d.ts} +5 -14
  344. package/dist/types/ui-shell/WideUiShellContent.d.ts.map +1 -0
  345. package/dist/types/ui-shell/index.d.ts +3 -1
  346. package/dist/types/ui-shell/index.d.ts.map +1 -1
  347. package/dist/types/ui-shell/renderUiShell.d.ts +7 -11
  348. package/dist/types/ui-shell/renderUiShell.d.ts.map +1 -1
  349. package/dist/types/ui-shell/uiShellContentTypes.d.ts +96 -0
  350. package/dist/types/ui-shell/uiShellContentTypes.d.ts.map +1 -0
  351. package/{src/@types/i18next.d.ts → dist/types/ui-shell/uiShellSharedConstants.d.ts} +7 -14
  352. package/dist/types/ui-shell/uiShellSharedConstants.d.ts.map +1 -0
  353. package/dist/types/ui-shell/useMatchAppElementToUiShellAppArea.d.ts +38 -0
  354. package/dist/types/ui-shell/useMatchAppElementToUiShellAppArea.d.ts.map +1 -0
  355. package/dist/types/ui-shell/useScrollState.d.ts +0 -1
  356. package/dist/types/ui-shell/useScrollState.d.ts.map +1 -1
  357. package/{src/FieldsetContext.tsx → dist/types/ui-shell/useUiShellBreakpoints.d.ts} +7 -12
  358. package/dist/types/ui-shell/useUiShellBreakpoints.d.ts.map +1 -0
  359. package/dist/types/web-component/createReactRootElements.d.ts +6 -4
  360. package/dist/types/web-component/createReactRootElements.d.ts.map +1 -1
  361. package/dist/types/web-component/renderReactInWebComponent.d.ts +12 -5
  362. package/dist/types/web-component/renderReactInWebComponent.d.ts.map +1 -1
  363. package/package.json +4 -4
  364. package/.browserslistrc +0 -1
  365. package/.svgrrc.cjs +0 -13
  366. package/CHANGELOG.md +0 -1490
  367. package/babel.config.cjs +0 -112
  368. package/dist/cjs/ui-shell/UiShellContent.cjs +0 -226
  369. package/dist/cjs/ui-shell/UiShellContent.cjs.map +0 -1
  370. package/dist/esm/ui-shell/UiShellContent.js +0 -220
  371. package/dist/esm/ui-shell/UiShellContent.js.map +0 -1
  372. package/dist/types/ui-shell/UiShellContent.d.ts +0 -76
  373. package/dist/types/ui-shell/UiShellContent.d.ts.map +0 -1
  374. package/i18n.config.json +0 -10
  375. package/scripts/generateIconsIndex.ts +0 -49
  376. package/scripts/generateTestSelectorsJson.ts +0 -33
  377. package/scripts/properties-to-ts.ts +0 -111
  378. package/src/@types/properties.d.ts +0 -292
  379. package/src/@types/react-augment.d.ts +0 -22
  380. package/src/Accordion.tsx +0 -117
  381. package/src/Autocomplete.tsx +0 -321
  382. package/src/Badge.tsx +0 -112
  383. package/src/Banner.tsx +0 -112
  384. package/src/Box.tsx +0 -44
  385. package/src/Breadcrumbs.tsx +0 -221
  386. package/src/Buttons/BaseButton.tsx +0 -250
  387. package/src/Buttons/BaseMenuButton.tsx +0 -342
  388. package/src/Buttons/Button.tsx +0 -30
  389. package/src/Buttons/MenuButton.tsx +0 -33
  390. package/src/Buttons/MenuContext.ts +0 -25
  391. package/src/Buttons/MenuItem.tsx +0 -103
  392. package/src/Callout.tsx +0 -176
  393. package/src/Card.tsx +0 -186
  394. package/src/Checkbox.tsx +0 -261
  395. package/src/CheckboxGroup.tsx +0 -127
  396. package/src/CircularProgress.tsx +0 -42
  397. package/src/DataTable/DataTable.tsx +0 -968
  398. package/src/DataTable/DataTableRowActions.tsx +0 -132
  399. package/src/DataTable/DataTableSettings.tsx +0 -136
  400. package/src/DataTable/index.tsx +0 -28
  401. package/src/DataTable/reorderDataRowsLocally.tsx +0 -48
  402. package/src/DataTable/useRowReordering.tsx +0 -232
  403. package/src/DataTable/useScrollIndication.tsx +0 -125
  404. package/src/DatePickers/DateField.tsx +0 -267
  405. package/src/DatePickers/DateFieldActionBar.tsx +0 -65
  406. package/src/DatePickers/DateFieldLocalizationProvider.tsx +0 -46
  407. package/src/DatePickers/DatePicker.test.tsx +0 -66
  408. package/src/DatePickers/DatePicker.tsx +0 -299
  409. package/src/DatePickers/DatePicker.types.d.ts +0 -14
  410. package/src/DatePickers/TimeZonePicker.tsx +0 -59
  411. package/src/DatePickers/datePickerTheme.tsx +0 -377
  412. package/src/DatePickers/useDateFieldsTranslations.ts +0 -94
  413. package/src/DatePickers/useOdysseyDateFields.ts +0 -303
  414. package/src/Dialog.tsx +0 -178
  415. package/src/Drawer.tsx +0 -255
  416. package/src/EmptyState.tsx +0 -79
  417. package/src/ErrorMessageList.tsx +0 -56
  418. package/src/Field.tsx +0 -189
  419. package/src/FieldComponentProps.ts +0 -66
  420. package/src/FieldError.tsx +0 -59
  421. package/src/FieldHint.tsx +0 -72
  422. package/src/FieldLabel.tsx +0 -67
  423. package/src/Fieldset.tsx +0 -116
  424. package/src/FileUploader/FileUploadIllustration.tsx +0 -66
  425. package/src/FileUploader/FileUploadPreview.tsx +0 -151
  426. package/src/FileUploader/FileUploader.tsx +0 -311
  427. package/src/FileUploader/index.ts +0 -13
  428. package/src/Form.tsx +0 -185
  429. package/src/FormCheckedProps.ts +0 -59
  430. package/src/HintLink.tsx +0 -28
  431. package/src/HtmlProps.ts +0 -112
  432. package/src/IconWithTooltip.tsx +0 -90
  433. package/src/Link.tsx +0 -115
  434. package/src/MuiPropsChild.tsx +0 -42
  435. package/src/MuiPropsContext.ts +0 -18
  436. package/src/NativeSelect.tsx +0 -249
  437. package/src/NullElement.tsx +0 -13
  438. package/src/OdysseyCacheProvider.test.tsx +0 -39
  439. package/src/OdysseyCacheProvider.tsx +0 -86
  440. package/src/OdysseyDesignTokensContext.tsx +0 -23
  441. package/src/OdysseyProvider.tsx +0 -92
  442. package/src/OdysseyThemeProvider.test.tsx +0 -211
  443. package/src/OdysseyThemeProvider.tsx +0 -109
  444. package/src/OdysseyTranslationProvider.test.tsx +0 -95
  445. package/src/OdysseyTranslationProvider.tsx +0 -77
  446. package/src/OdysseyTranslationProvider.types.ts +0 -47
  447. package/src/Pagination/Pagination.test.tsx +0 -327
  448. package/src/Pagination/Pagination.tsx +0 -417
  449. package/src/Pagination/constants.ts +0 -13
  450. package/src/Pagination/index.ts +0 -15
  451. package/src/Pagination/usePagination.ts +0 -45
  452. package/src/PasswordField.tsx +0 -253
  453. package/src/Radio.tsx +0 -199
  454. package/src/RadioGroup.tsx +0 -164
  455. package/src/ScreenReaderText.tsx +0 -53
  456. package/src/SearchField.tsx +0 -240
  457. package/src/Select.tsx +0 -576
  458. package/src/Stack.tsx +0 -56
  459. package/src/Status.tsx +0 -67
  460. package/src/Surface.tsx +0 -61
  461. package/src/SvgIcon.ts +0 -22
  462. package/src/Switch.tsx +0 -425
  463. package/src/Tabs.tsx +0 -259
  464. package/src/Tag.tsx +0 -317
  465. package/src/TagList.tsx +0 -55
  466. package/src/TextField.tsx +0 -298
  467. package/src/Toast.tsx +0 -151
  468. package/src/ToastStack.tsx +0 -43
  469. package/src/Tooltip.tsx +0 -61
  470. package/src/Typography.test.tsx +0 -26
  471. package/src/Typography.tsx +0 -474
  472. package/src/createContrastColors.ts +0 -112
  473. package/src/createUniqueAlphabeticalId.test.ts +0 -22
  474. package/src/createUniqueAlphabeticalId.ts +0 -17
  475. package/src/createUniqueId.test.ts +0 -22
  476. package/src/createUniqueId.ts +0 -17
  477. package/src/getTypedObjectKeys.ts +0 -15
  478. package/src/hexToRgb.ts +0 -40
  479. package/src/i18n.ts +0 -110
  480. package/src/icons.generated/Add.tsx +0 -44
  481. package/src/icons.generated/AddCircle.tsx +0 -46
  482. package/src/icons.generated/Apps.tsx +0 -44
  483. package/src/icons.generated/ArrowBottom.tsx +0 -46
  484. package/src/icons.generated/ArrowDown.tsx +0 -46
  485. package/src/icons.generated/ArrowLeft.tsx +0 -46
  486. package/src/icons.generated/ArrowLowerLeft.tsx +0 -46
  487. package/src/icons.generated/ArrowLowerRight.tsx +0 -46
  488. package/src/icons.generated/ArrowRight.tsx +0 -46
  489. package/src/icons.generated/ArrowTop.tsx +0 -46
  490. package/src/icons.generated/ArrowUnsorted.tsx +0 -46
  491. package/src/icons.generated/ArrowUp.tsx +0 -46
  492. package/src/icons.generated/ArrowUpperLeft.tsx +0 -46
  493. package/src/icons.generated/ArrowUpperRight.tsx +0 -46
  494. package/src/icons.generated/Bug.tsx +0 -44
  495. package/src/icons.generated/Calendar.tsx +0 -46
  496. package/src/icons.generated/Call.tsx +0 -44
  497. package/src/icons.generated/Chat.tsx +0 -44
  498. package/src/icons.generated/Check.tsx +0 -44
  499. package/src/icons.generated/CheckCircleFilled.tsx +0 -47
  500. package/src/icons.generated/ChevronDown.tsx +0 -46
  501. package/src/icons.generated/ChevronLeft.tsx +0 -46
  502. package/src/icons.generated/ChevronRight.tsx +0 -46
  503. package/src/icons.generated/ChevronUp.tsx +0 -46
  504. package/src/icons.generated/Clock.tsx +0 -44
  505. package/src/icons.generated/Close.tsx +0 -44
  506. package/src/icons.generated/CloseCircleFilled.tsx +0 -47
  507. package/src/icons.generated/CollapseLeft.tsx +0 -46
  508. package/src/icons.generated/CollapseRight.tsx +0 -46
  509. package/src/icons.generated/Copy.tsx +0 -44
  510. package/src/icons.generated/Custom.tsx +0 -50
  511. package/src/icons.generated/DangerDiamond.tsx +0 -46
  512. package/src/icons.generated/DangerDiamondFilled.tsx +0 -47
  513. package/src/icons.generated/Delete.tsx +0 -44
  514. package/src/icons.generated/Deny.tsx +0 -44
  515. package/src/icons.generated/Devices.tsx +0 -46
  516. package/src/icons.generated/Directory.tsx +0 -46
  517. package/src/icons.generated/Documentation.tsx +0 -46
  518. package/src/icons.generated/Download.tsx +0 -46
  519. package/src/icons.generated/DragIndicator.tsx +0 -46
  520. package/src/icons.generated/Duo.tsx +0 -62
  521. package/src/icons.generated/Edit.tsx +0 -44
  522. package/src/icons.generated/Email.tsx +0 -49
  523. package/src/icons.generated/ExpandLeft.tsx +0 -46
  524. package/src/icons.generated/ExpandRight.tsx +0 -46
  525. package/src/icons.generated/ExternalLink.tsx +0 -44
  526. package/src/icons.generated/Fido2.tsx +0 -72
  527. package/src/icons.generated/Filter.tsx +0 -44
  528. package/src/icons.generated/Folder.tsx +0 -44
  529. package/src/icons.generated/Globe.tsx +0 -44
  530. package/src/icons.generated/GoogleAuth.tsx +0 -70
  531. package/src/icons.generated/Grid.tsx +0 -47
  532. package/src/icons.generated/Group.tsx +0 -44
  533. package/src/icons.generated/Hide.tsx +0 -44
  534. package/src/icons.generated/Home.tsx +0 -44
  535. package/src/icons.generated/Idp.tsx +0 -54
  536. package/src/icons.generated/InformationCircle.tsx +0 -47
  537. package/src/icons.generated/InformationCircleFilled.tsx +0 -47
  538. package/src/icons.generated/Link.tsx +0 -44
  539. package/src/icons.generated/List.tsx +0 -44
  540. package/src/icons.generated/Lock.tsx +0 -44
  541. package/src/icons.generated/More.tsx +0 -44
  542. package/src/icons.generated/Notification.tsx +0 -46
  543. package/src/icons.generated/OktaVerify.tsx +0 -46
  544. package/src/icons.generated/OnPremMfa.tsx +0 -52
  545. package/src/icons.generated/OneTimePassword.tsx +0 -65
  546. package/src/icons.generated/Password.tsx +0 -80
  547. package/src/icons.generated/Pause.tsx +0 -44
  548. package/src/icons.generated/QuestionCircle.tsx +0 -46
  549. package/src/icons.generated/QuestionCircleFilled.tsx +0 -47
  550. package/src/icons.generated/Refresh.tsx +0 -46
  551. package/src/icons.generated/Reset.tsx +0 -44
  552. package/src/icons.generated/Resume.tsx +0 -44
  553. package/src/icons.generated/Search.tsx +0 -44
  554. package/src/icons.generated/SecurityQuestion.tsx +0 -51
  555. package/src/icons.generated/Server.tsx +0 -44
  556. package/src/icons.generated/Settings.tsx +0 -46
  557. package/src/icons.generated/Show.tsx +0 -44
  558. package/src/icons.generated/SmartCard.tsx +0 -65
  559. package/src/icons.generated/Sms.tsx +0 -55
  560. package/src/icons.generated/Subtract.tsx +0 -46
  561. package/src/icons.generated/SymantecVip.tsx +0 -52
  562. package/src/icons.generated/Sync.tsx +0 -44
  563. package/src/icons.generated/ThumbsDown.tsx +0 -46
  564. package/src/icons.generated/ThumbsUp.tsx +0 -46
  565. package/src/icons.generated/Unlock.tsx +0 -44
  566. package/src/icons.generated/Upload.tsx +0 -44
  567. package/src/icons.generated/User.tsx +0 -44
  568. package/src/icons.generated/Video.tsx +0 -44
  569. package/src/icons.generated/VoiceCall.tsx +0 -62
  570. package/src/icons.generated/Warning.tsx +0 -46
  571. package/src/icons.generated/WarningFilled.tsx +0 -46
  572. package/src/icons.generated/Yubikey.tsx +0 -44
  573. package/src/icons.generated/index.ts +0 -107
  574. package/src/index.ts +0 -118
  575. package/src/inputUtils.ts +0 -80
  576. package/src/labs/AppTile.tsx +0 -421
  577. package/src/labs/DataFilters.tsx +0 -871
  578. package/src/labs/DataTable.tsx +0 -877
  579. package/src/labs/DataTablePagination.tsx +0 -88
  580. package/src/labs/DataView/BulkActionsMenu.tsx +0 -98
  581. package/src/labs/DataView/CardLayoutContent.tsx +0 -272
  582. package/src/labs/DataView/DataCard.tsx +0 -357
  583. package/src/labs/DataView/DataTable.tsx +0 -128
  584. package/src/labs/DataView/DataView.test.tsx +0 -1168
  585. package/src/labs/DataView/DataView.tsx +0 -504
  586. package/src/labs/DataView/DetailPanel.tsx +0 -31
  587. package/src/labs/DataView/LayoutSwitcher.tsx +0 -72
  588. package/src/labs/DataView/RowActions.tsx +0 -125
  589. package/src/labs/DataView/TableLayoutContent.tsx +0 -500
  590. package/src/labs/DataView/TableSettings.tsx +0 -144
  591. package/src/labs/DataView/componentTypes.ts +0 -129
  592. package/src/labs/DataView/constants.tsx +0 -28
  593. package/src/labs/DataView/dataTypes.ts +0 -83
  594. package/src/labs/DataView/fetchData.ts +0 -49
  595. package/src/labs/DataView/index.ts +0 -19
  596. package/src/labs/DataView/tableConstants.tsx +0 -137
  597. package/src/labs/DataView/testSupportData.tsx +0 -301
  598. package/src/labs/DataView/useFilterConversion.ts +0 -88
  599. package/src/labs/DatePickers/DateTimeField.tsx +0 -267
  600. package/src/labs/DatePickers/DateTimePicker.test.tsx +0 -70
  601. package/src/labs/DatePickers/DateTimePicker.tsx +0 -303
  602. package/src/labs/DatePickers/dateTimePickerTheme.ts +0 -216
  603. package/src/labs/DatePickers/index.ts +0 -13
  604. package/src/labs/GroupPicker.tsx +0 -261
  605. package/src/labs/OdysseyPickers/ComposablePicker.test.tsx +0 -32
  606. package/src/labs/OdysseyPickers/ComposablePicker.tsx +0 -188
  607. package/src/labs/OdysseyPickers/Picker.tsx +0 -381
  608. package/src/labs/OdysseyPickers/PickerVirtualizationListBox.tsx +0 -192
  609. package/src/labs/OdysseyPickers/PickerWithOptionAdornment.tsx +0 -429
  610. package/src/labs/OdysseyPickers/index.ts +0 -15
  611. package/src/labs/PageTemplate/Layout.tsx +0 -85
  612. package/src/labs/PageTemplate/PageTemplate.tsx +0 -234
  613. package/src/labs/PageTemplate/index.ts +0 -14
  614. package/src/labs/PaginatedTable.tsx +0 -290
  615. package/src/labs/README.md +0 -46
  616. package/src/labs/StaticTable.tsx +0 -131
  617. package/src/labs/UserProfile.tsx +0 -104
  618. package/src/labs/UserProfileMenuButton.tsx +0 -86
  619. package/src/labs/index.ts +0 -47
  620. package/src/labs/materialReactTableTypes.tsx +0 -19
  621. package/src/properties/odyssey-react-mui.properties +0 -140
  622. package/src/properties/translations/odyssey-react-mui_cs.properties +0 -140
  623. package/src/properties/translations/odyssey-react-mui_da.properties +0 -140
  624. package/src/properties/translations/odyssey-react-mui_de.properties +0 -140
  625. package/src/properties/translations/odyssey-react-mui_el.properties +0 -140
  626. package/src/properties/translations/odyssey-react-mui_es.properties +0 -140
  627. package/src/properties/translations/odyssey-react-mui_fi.properties +0 -140
  628. package/src/properties/translations/odyssey-react-mui_fr.properties +0 -140
  629. package/src/properties/translations/odyssey-react-mui_ht.properties +0 -140
  630. package/src/properties/translations/odyssey-react-mui_hu.properties +0 -140
  631. package/src/properties/translations/odyssey-react-mui_id.properties +0 -140
  632. package/src/properties/translations/odyssey-react-mui_it.properties +0 -140
  633. package/src/properties/translations/odyssey-react-mui_ja.properties +0 -140
  634. package/src/properties/translations/odyssey-react-mui_ko.properties +0 -140
  635. package/src/properties/translations/odyssey-react-mui_ms.properties +0 -140
  636. package/src/properties/translations/odyssey-react-mui_nb.properties +0 -140
  637. package/src/properties/translations/odyssey-react-mui_nl_NL.properties +0 -140
  638. package/src/properties/translations/odyssey-react-mui_ok_PL.properties +0 -126
  639. package/src/properties/translations/odyssey-react-mui_ok_SK.properties +0 -126
  640. package/src/properties/translations/odyssey-react-mui_pl.properties +0 -140
  641. package/src/properties/translations/odyssey-react-mui_pt_BR.properties +0 -140
  642. package/src/properties/translations/odyssey-react-mui_ro.properties +0 -140
  643. package/src/properties/translations/odyssey-react-mui_ru.properties +0 -140
  644. package/src/properties/translations/odyssey-react-mui_sv.properties +0 -140
  645. package/src/properties/translations/odyssey-react-mui_th.properties +0 -140
  646. package/src/properties/translations/odyssey-react-mui_tr.properties +0 -140
  647. package/src/properties/translations/odyssey-react-mui_uk.properties +0 -140
  648. package/src/properties/translations/odyssey-react-mui_vi.properties +0 -140
  649. package/src/properties/translations/odyssey-react-mui_zh_CN.properties +0 -140
  650. package/src/properties/translations/odyssey-react-mui_zh_TW.properties +0 -140
  651. package/src/properties/ts/odyssey-react-mui.ts +0 -1
  652. package/src/properties/ts/odyssey-react-mui_cs.ts +0 -1
  653. package/src/properties/ts/odyssey-react-mui_da.ts +0 -1
  654. package/src/properties/ts/odyssey-react-mui_de.ts +0 -1
  655. package/src/properties/ts/odyssey-react-mui_el.ts +0 -1
  656. package/src/properties/ts/odyssey-react-mui_es.ts +0 -1
  657. package/src/properties/ts/odyssey-react-mui_fi.ts +0 -1
  658. package/src/properties/ts/odyssey-react-mui_fr.ts +0 -1
  659. package/src/properties/ts/odyssey-react-mui_ht.ts +0 -1
  660. package/src/properties/ts/odyssey-react-mui_hu.ts +0 -1
  661. package/src/properties/ts/odyssey-react-mui_id.ts +0 -1
  662. package/src/properties/ts/odyssey-react-mui_it.ts +0 -1
  663. package/src/properties/ts/odyssey-react-mui_ja.ts +0 -1
  664. package/src/properties/ts/odyssey-react-mui_ko.ts +0 -1
  665. package/src/properties/ts/odyssey-react-mui_ms.ts +0 -1
  666. package/src/properties/ts/odyssey-react-mui_nb.ts +0 -1
  667. package/src/properties/ts/odyssey-react-mui_nl_NL.ts +0 -1
  668. package/src/properties/ts/odyssey-react-mui_ok_PL.ts +0 -1
  669. package/src/properties/ts/odyssey-react-mui_ok_SK.ts +0 -1
  670. package/src/properties/ts/odyssey-react-mui_pl.ts +0 -1
  671. package/src/properties/ts/odyssey-react-mui_pt_BR.ts +0 -1
  672. package/src/properties/ts/odyssey-react-mui_ro.ts +0 -1
  673. package/src/properties/ts/odyssey-react-mui_ru.ts +0 -1
  674. package/src/properties/ts/odyssey-react-mui_sv.ts +0 -1
  675. package/src/properties/ts/odyssey-react-mui_th.ts +0 -1
  676. package/src/properties/ts/odyssey-react-mui_tr.ts +0 -1
  677. package/src/properties/ts/odyssey-react-mui_uk.ts +0 -1
  678. package/src/properties/ts/odyssey-react-mui_vi.ts +0 -1
  679. package/src/properties/ts/odyssey-react-mui_zh_CN.ts +0 -1
  680. package/src/properties/ts/odyssey-react-mui_zh_TW.ts +0 -1
  681. package/src/remUtils.ts +0 -27
  682. package/src/shadow-dom/shadow-dom.test.ts +0 -24
  683. package/src/shadow-dom/shadow-dom.ts +0 -54
  684. package/src/test-selectors/getByQuerySelector.ts +0 -176
  685. package/src/test-selectors/getComputedAccessibleErrorMessageText.ts +0 -52
  686. package/src/test-selectors/getComputedAccessibleText.ts +0 -36
  687. package/src/test-selectors/index.ts +0 -15
  688. package/src/test-selectors/interpolateString.ts +0 -41
  689. package/src/test-selectors/linkedHtmlSelectors.ts +0 -73
  690. package/src/test-selectors/queryOdysseySelector.ts +0 -36
  691. package/src/test-selectors/querySelector.ts +0 -249
  692. package/src/test-selectors/sanityChecks.ts +0 -53
  693. package/src/test-selectors/testSelector.ts +0 -143
  694. package/src/theme/components.tsx +0 -3275
  695. package/src/theme/components.types.ts +0 -111
  696. package/src/theme/createOdysseyMuiTheme.ts +0 -54
  697. package/src/theme/index.ts +0 -13
  698. package/src/theme/mixins.ts +0 -29
  699. package/src/theme/mixins.types.ts +0 -31
  700. package/src/theme/palette.ts +0 -112
  701. package/src/theme/shape.ts +0 -31
  702. package/src/theme/spacing.ts +0 -34
  703. package/src/theme/theme.ts +0 -13
  704. package/src/theme/typography.ts +0 -137
  705. package/src/theme/typography.types.ts +0 -41
  706. package/src/theme/useContrastMode.test.tsx +0 -504
  707. package/src/ui-shell/AppSwitcher/AppSwitcher.tsx +0 -94
  708. package/src/ui-shell/AppSwitcher/AppSwitcherApp.tsx +0 -146
  709. package/src/ui-shell/AppSwitcher/OktaAura.tsx +0 -50
  710. package/src/ui-shell/AppSwitcher/index.ts +0 -13
  711. package/src/ui-shell/SideNav/CollapseIcon.tsx +0 -34
  712. package/src/ui-shell/SideNav/HandleIcon.tsx +0 -35
  713. package/src/ui-shell/SideNav/NavAccordion.tsx +0 -243
  714. package/src/ui-shell/SideNav/OktaLogo.tsx +0 -34
  715. package/src/ui-shell/SideNav/SideNav.test.tsx +0 -326
  716. package/src/ui-shell/SideNav/SideNav.tsx +0 -810
  717. package/src/ui-shell/SideNav/SideNavFooterContent.tsx +0 -85
  718. package/src/ui-shell/SideNav/SideNavHeader.tsx +0 -134
  719. package/src/ui-shell/SideNav/SideNavItemContent.tsx +0 -402
  720. package/src/ui-shell/SideNav/SideNavItemContentContext.tsx +0 -29
  721. package/src/ui-shell/SideNav/SideNavItemLinkContent.tsx +0 -90
  722. package/src/ui-shell/SideNav/SideNavLogo.tsx +0 -65
  723. package/src/ui-shell/SideNav/SideNavToggleButton.tsx +0 -272
  724. package/src/ui-shell/SideNav/SortableList/SortableItem.tsx +0 -237
  725. package/src/ui-shell/SideNav/SortableList/SortableList.tsx +0 -132
  726. package/src/ui-shell/SideNav/SortableList/SortableOverlay.tsx +0 -34
  727. package/src/ui-shell/SideNav/index.ts +0 -16
  728. package/src/ui-shell/SideNav/types.ts +0 -224
  729. package/src/ui-shell/TopNav/TopNav.tsx +0 -109
  730. package/src/ui-shell/TopNav/TopNavLinksList.tsx +0 -68
  731. package/src/ui-shell/TopNav/TopNavListItem.tsx +0 -209
  732. package/src/ui-shell/TopNav/index.ts +0 -13
  733. package/src/ui-shell/UiShell.test.tsx +0 -366
  734. package/src/ui-shell/UiShell.tsx +0 -153
  735. package/src/ui-shell/UiShellContent.tsx +0 -350
  736. package/src/ui-shell/UiShellProvider.tsx +0 -103
  737. package/src/ui-shell/bufferLatest.test.ts +0 -79
  738. package/src/ui-shell/bufferLatest.ts +0 -64
  739. package/src/ui-shell/createMessageBus.test.ts +0 -115
  740. package/src/ui-shell/createMessageBus.ts +0 -53
  741. package/src/ui-shell/createStore.test.ts +0 -103
  742. package/src/ui-shell/createStore.ts +0 -37
  743. package/src/ui-shell/index.ts +0 -21
  744. package/src/ui-shell/renderUiShell.test.tsx +0 -203
  745. package/src/ui-shell/renderUiShell.tsx +0 -158
  746. package/src/ui-shell/useScrollState.ts +0 -59
  747. package/src/useAutocomplete.tsx +0 -184
  748. package/src/useContrastMode.tsx +0 -143
  749. package/src/useNormalizedKey.ts +0 -17
  750. package/src/useUniqueAlphabeticalId.ts +0 -21
  751. package/src/useUniqueId.ts +0 -21
  752. package/src/web-component/createReactRootElements.test.ts +0 -40
  753. package/src/web-component/createReactRootElements.ts +0 -39
  754. package/src/web-component/renderReactInWebComponent.test.tsx +0 -128
  755. package/src/web-component/renderReactInWebComponent.ts +0 -135
  756. package/tsconfig.json +0 -16
  757. package/tsconfig.production.json +0 -13
  758. package/vitest.config.ts +0 -36
  759. package/vitest.setup.ts +0 -32
@@ -1,810 +0,0 @@
1
- /*!
2
- * Copyright (c) 2022-present, Okta, Inc. and/or its affiliates. All rights reserved.
3
- * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
4
- *
5
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
6
- * Unless required by applicable law or agreed to in writing, software
7
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
8
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
- *
10
- * See the License for the specific language governing permissions and limitations under the License.
11
- */
12
-
13
- import styled from "@emotion/styled";
14
- import {
15
- memo,
16
- useMemo,
17
- useState,
18
- useCallback,
19
- useRef,
20
- useEffect,
21
- KeyboardEventHandler,
22
- } from "react";
23
- import { Skeleton } from "@mui/material";
24
- import { useTranslation } from "react-i18next";
25
- import { arrayMove } from "@dnd-kit/sortable";
26
- import { UniqueIdentifier } from "@dnd-kit/core";
27
- import { ErrorBoundary } from "react-error-boundary";
28
- import { Property } from "csstype";
29
-
30
- import { ContrastColors } from "../../createContrastColors.js";
31
- import { NavAccordion } from "./NavAccordion.js";
32
- import {
33
- DesignTokens,
34
- useOdysseyDesignTokens,
35
- } from "../../OdysseyDesignTokensContext.js";
36
- import { OdysseyThemeProvider } from "../../OdysseyThemeProvider.js";
37
- import type { SideNavProps } from "./types.js";
38
- import { SideNavHeader } from "./SideNavHeader.js";
39
- import {
40
- SideNavItemContent,
41
- StyledSideNavListItem,
42
- } from "./SideNavItemContent.js";
43
- import { SideNavFooterContent } from "./SideNavFooterContent.js";
44
- import { SideNavItemContentContext } from "./SideNavItemContentContext.js";
45
- import { SideNavToggleButton } from "./SideNavToggleButton.js";
46
- import { SortableList } from "./SortableList/SortableList.js";
47
- import { Overline } from "../../Typography.js";
48
- import {
49
- UiShellColors,
50
- useUiShellContext,
51
- } from "../../ui-shell/UiShellProvider.js";
52
-
53
- export const DEFAULT_SIDE_NAV_WIDTH = "300px";
54
-
55
- // The side nav collapse icon is placed absolutely from the top (Logo container + nav header height)
56
- // to align it in the middle of the nav header text
57
- export const SIDENAV_COLLAPSE_ICON_POSITION = "77px";
58
-
59
- const StyledCollapsibleContent = styled("div", {
60
- shouldForwardProp: (prop) =>
61
- prop !== "odysseyDesignTokens" && prop !== "isSideNavCollapsed",
62
- })<{
63
- odysseyDesignTokens: DesignTokens;
64
- isSideNavCollapsed: boolean;
65
- }>(({ odysseyDesignTokens, isSideNavCollapsed }) => ({
66
- position: "relative",
67
- display: "inline-grid",
68
- gridTemplateColumns: DEFAULT_SIDE_NAV_WIDTH,
69
- height: "100%",
70
- transition: `grid-template-columns ${odysseyDesignTokens.TransitionDurationMain}, opacity 300ms`,
71
- transitionTimingFunction: odysseyDesignTokens.TransitionTimingMain,
72
- overflow: "hidden",
73
-
74
- ...(isSideNavCollapsed && {
75
- gridTemplateColumns: 0,
76
- opacity: 0,
77
- }),
78
- }));
79
-
80
- const StyledOpacityTransitionContainer = styled("div", {
81
- shouldForwardProp: (prop) =>
82
- prop !== "odysseyDesignTokens" && prop !== "isSideNavCollapsed",
83
- })(
84
- ({
85
- odysseyDesignTokens,
86
- isSideNavCollapsed,
87
- }: {
88
- odysseyDesignTokens: DesignTokens;
89
- isSideNavCollapsed: boolean;
90
- }) => ({
91
- display: "inline-grid",
92
- gridTemplateRows: "max-content 1fr max-content",
93
- height: "100%",
94
- transition: `opacity 50ms`,
95
- transitionTimingFunction: odysseyDesignTokens.TransitionTimingMain,
96
- overflow: "hidden",
97
-
98
- ...(isSideNavCollapsed && {
99
- opacity: 0,
100
- }),
101
- }),
102
- );
103
-
104
- const StyledSideNav = styled("nav", {
105
- shouldForwardProp: (prop) =>
106
- prop !== "backgroundColor" &&
107
- prop !== "odysseyDesignTokens" &&
108
- prop !== "isAppContentWhiteBackground" &&
109
- prop !== "isSideNavCollapsed",
110
- })<{
111
- isAppContentWhiteBackground: boolean;
112
- backgroundColor?: UiShellColors["sideNavBackgroundColor"];
113
- isSideNavCollapsed: boolean;
114
- odysseyDesignTokens: DesignTokens;
115
- }>(
116
- ({
117
- backgroundColor,
118
- isAppContentWhiteBackground,
119
- isSideNavCollapsed,
120
- odysseyDesignTokens,
121
- }) => ({
122
- position: "relative",
123
- display: "inline-block",
124
- height: "100%",
125
- backgroundColor: backgroundColor || odysseyDesignTokens.HueNeutralWhite,
126
-
127
- ...(isAppContentWhiteBackground && {
128
- borderRightWidth: odysseyDesignTokens.BorderWidthMain,
129
- borderRightStyle:
130
- odysseyDesignTokens.BorderStyleMain as Property.BorderRightStyle,
131
- borderRightColor: odysseyDesignTokens.HueNeutral100,
132
- }),
133
-
134
- "&::after": {
135
- backgroundColor: odysseyDesignTokens.HueNeutral200,
136
- content: "''",
137
- height: "100%",
138
- opacity: 0,
139
- position: "absolute",
140
- right: 0,
141
- top: 0,
142
- transform: `translateX(0)`,
143
- transition: `opacity ${odysseyDesignTokens.TransitionDurationMain}, transform ${odysseyDesignTokens.TransitionDurationMain}`,
144
- width: odysseyDesignTokens.Spacing2,
145
- zIndex: 2,
146
- },
147
-
148
- "&:has([data-sidenav-toggle='true']:hover), &:has([data-sidenav-toggle='true']:focus-visible)":
149
- {
150
- ...(isSideNavCollapsed && {
151
- "&::after": {
152
- opacity: 1,
153
- transform: `translateX(100%)`,
154
- },
155
-
156
- "[data-sidenav-toggle='true']": {
157
- transform: `translate3d(calc(100% + ${odysseyDesignTokens.Spacing3}), 0, 0)`,
158
- },
159
- }),
160
- },
161
-
162
- "[data-sidenav-toggle='true']": {
163
- position: "absolute",
164
- top: SIDENAV_COLLAPSE_ICON_POSITION,
165
- right: 0,
166
- transition: `transform ${odysseyDesignTokens.TransitionDurationMain}`,
167
- transform: `translate3d(100%, 0, 0)`,
168
- },
169
- }),
170
- );
171
-
172
- const SideNavHeaderContainer = styled("div", {
173
- shouldForwardProp: (prop) =>
174
- prop !== "borderColor" &&
175
- prop !== "hasContentScrolled" &&
176
- prop !== "odysseyDesignTokens",
177
- })(
178
- ({
179
- borderColor,
180
- hasContentScrolled,
181
- odysseyDesignTokens,
182
- }: {
183
- borderColor: ContrastColors["fontColor"];
184
- hasContentScrolled: boolean;
185
- odysseyDesignTokens: DesignTokens;
186
- }) => ({
187
- flexShrink: 0,
188
- // The bottom border should appear only if the scrollable region has been scrolled
189
- ...(hasContentScrolled && {
190
- borderBottomWidth: odysseyDesignTokens.BorderWidthMain,
191
- borderBottomStyle:
192
- odysseyDesignTokens.BorderStyleMain as Property.BorderBottomStyle,
193
- borderBottomColor: odysseyDesignTokens.HueNeutral100,
194
-
195
- ...(borderColor && {
196
- borderBottomColor: borderColor.concat("15"),
197
- }),
198
- }),
199
- }),
200
- );
201
-
202
- const SideNavListContainer = styled("ul")(() => ({
203
- padding: 0,
204
- listStyle: "none",
205
- listStyleType: "none",
206
- margin: 0,
207
- }));
208
-
209
- const SideNavScrollableContainer = styled("div", {
210
- shouldForwardProp: (prop) => prop !== "odysseyDesignTokens",
211
- })<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({
212
- display: "grid",
213
- gridTemplateRows: "1fr max-content",
214
- flex: "1 1 100%",
215
- overflowY: "auto",
216
- paddingInline: odysseyDesignTokens.Spacing2,
217
- }));
218
-
219
- const SectionHeaderContainer = styled("li", {
220
- shouldForwardProp: (prop) =>
221
- prop !== "odysseyDesignTokens" && prop !== "contrastFontColor",
222
- })(
223
- ({
224
- contrastFontColor,
225
- odysseyDesignTokens,
226
- }: {
227
- contrastFontColor: ContrastColors["fontColor"];
228
- odysseyDesignTokens: DesignTokens;
229
- }) => ({
230
- paddingBlock: odysseyDesignTokens.Spacing1,
231
- paddingInline: odysseyDesignTokens.Spacing4,
232
- marginBlock: `${odysseyDesignTokens.Spacing3}`,
233
- color: contrastFontColor || odysseyDesignTokens.HueNeutral600,
234
- }),
235
- );
236
-
237
- const SideNavFooter = styled("div", {
238
- shouldForwardProp: (prop) =>
239
- prop !== "odysseyDesignTokens" && prop !== "sideNavBackgroundColor",
240
- })(
241
- ({
242
- odysseyDesignTokens,
243
- sideNavBackgroundColor,
244
- }: {
245
- odysseyDesignTokens: DesignTokens;
246
- sideNavBackgroundColor?: UiShellColors["sideNavBackgroundColor"];
247
- }) => ({
248
- flexShrink: 0,
249
- padding: odysseyDesignTokens.Spacing4,
250
- backgroundColor: odysseyDesignTokens.HueNeutralWhite,
251
-
252
- ...(sideNavBackgroundColor && {
253
- backgroundColor: sideNavBackgroundColor,
254
- }),
255
- }),
256
- );
257
-
258
- const PersistentSideNavFooter = styled(SideNavFooter, {
259
- shouldForwardProp: (prop) =>
260
- prop !== "isContentScrollable" &&
261
- prop !== "odysseyDesignTokens" &&
262
- prop !== "sideNavBackgroundColor",
263
- })(
264
- ({
265
- isContentScrollable,
266
- odysseyDesignTokens,
267
- sideNavBackgroundColor,
268
- }: {
269
- isContentScrollable: boolean;
270
- odysseyDesignTokens: DesignTokens;
271
- sideNavBackgroundColor?: UiShellColors["sideNavBackgroundColor"];
272
- }) => ({
273
- transitionProperty: "box-shadow",
274
- transitionDuration: odysseyDesignTokens.TransitionDurationMain,
275
- transitionTiming: odysseyDesignTokens.TransitionTimingMain,
276
- zIndex: 2,
277
- // The box shadow should appear above the footer only if the scrollable region has overflow
278
- ...(isContentScrollable && {
279
- boxShadow: "0px -8px 8px -8px rgba(39, 39, 39, 0.08)",
280
- }),
281
- ...(sideNavBackgroundColor && {
282
- backgroundColor: sideNavBackgroundColor,
283
- }),
284
- }),
285
- );
286
-
287
- const SideNavFooterItemsContainer = styled("div", {
288
- shouldForwardProp: (prop) =>
289
- prop !== "odysseyDesignTokens" && prop !== "sideNavContrastColors",
290
- })<{
291
- odysseyDesignTokens: DesignTokens;
292
- sideNavContrastColors: UiShellColors["sideNavContrastColors"];
293
- }>(({ odysseyDesignTokens, sideNavContrastColors }) => ({
294
- display: "flex",
295
- flexWrap: "wrap",
296
- alignItems: "center",
297
- fontSize: odysseyDesignTokens.TypographySizeOverline,
298
-
299
- "a, span": {
300
- color: odysseyDesignTokens.HueNeutral600,
301
- transition: `color ${odysseyDesignTokens.TransitionDurationMain}`,
302
-
303
- "&:visited": {
304
- color: odysseyDesignTokens.HueNeutral600,
305
-
306
- ...(sideNavContrastColors?.fontColor && {
307
- color: sideNavContrastColors?.fontColor,
308
- }),
309
- },
310
-
311
- "&:hover": {
312
- textDecoration: "none",
313
- color: odysseyDesignTokens.HueNeutral900,
314
-
315
- ...(sideNavContrastColors?.fontColor && {
316
- color: sideNavContrastColors?.fontColor,
317
- }),
318
- },
319
-
320
- ...(sideNavContrastColors?.fontColor && {
321
- color: sideNavContrastColors?.fontColor,
322
- }),
323
- },
324
- }));
325
-
326
- const LoadingItemContainer = styled("div", {
327
- shouldForwardProp: (prop) => prop !== "odysseyDesignTokens",
328
- })<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({
329
- alignItems: "center",
330
- display: "flex",
331
- gap: odysseyDesignTokens.Spacing2,
332
- paddingBlock: odysseyDesignTokens.Spacing2,
333
- paddingInline: odysseyDesignTokens.Spacing4,
334
- }));
335
-
336
- const getHasScrollableContent = (scrollableContainer: HTMLElement) =>
337
- scrollableContainer.scrollHeight > scrollableContainer.clientHeight;
338
-
339
- const LoadingItem = () => {
340
- const odysseyDesignTokens: DesignTokens = useOdysseyDesignTokens();
341
- return (
342
- <LoadingItemContainer odysseyDesignTokens={odysseyDesignTokens}>
343
- <Skeleton
344
- variant="circular"
345
- width={odysseyDesignTokens.Spacing4}
346
- height={odysseyDesignTokens.Spacing4}
347
- />
348
- <Skeleton variant="rounded" width="100%" />
349
- </LoadingItemContainer>
350
- );
351
- };
352
-
353
- const SideNav = ({
354
- appName,
355
- footerComponent,
356
- footerItems,
357
- hasCustomFooter,
358
- isCollapsible,
359
- isCollapsed = false,
360
- isCompact,
361
- isLoading,
362
- logoProps,
363
- onCollapse,
364
- onExpand,
365
- onSort,
366
- sideNavItems,
367
- }: SideNavProps) => {
368
- const [isSideNavCollapsed, setSideNavCollapsed] = useState(isCollapsed);
369
- const [hasContentScrolled, setHasContentScrolled] = useState(false);
370
- const [isContentScrollable, setIsContentScrollable] = useState(false);
371
- const [sideNavItemsList, updateSideNavItemsList] = useState(sideNavItems);
372
-
373
- const uiShellContext = useUiShellContext();
374
- const odysseyDesignTokens: DesignTokens = useOdysseyDesignTokens();
375
- const { t } = useTranslation();
376
-
377
- const scrollableContentRef = useRef<HTMLUListElement>(null);
378
- const resizeObserverRef = useRef<ResizeObserver | null>(null);
379
- const intersectionObserverRef = useRef<IntersectionObserver | null>(null);
380
-
381
- const blankElement = useMemo(() => <div />, []);
382
-
383
- // The default value (sideNavItems) passed to useState is ONLY used by the useState hook for
384
- // the very first value. Subsequent updates to the prop (sideNavItems) need to cause the state
385
- // to update!
386
- useEffect(() => updateSideNavItemsList(sideNavItems), [sideNavItems]);
387
-
388
- // update sidenav collapse status
389
- useEffect(() => setSideNavCollapsed(isCollapsed), [isCollapsed]);
390
-
391
- useEffect(() => {
392
- // This is called directly in this effect AND perhaps as a result of the ResizeObserver
393
- const updateIsContentScrollable = () => {
394
- if (
395
- scrollableContentRef.current &&
396
- scrollableContentRef.current.parentElement
397
- ) {
398
- setIsContentScrollable(
399
- getHasScrollableContent(scrollableContentRef.current.parentElement),
400
- );
401
- }
402
- };
403
-
404
- // If the window is resized, we may need to re-determine if the scrollable container has overflow
405
- // Setup a ResizeObserver to know if the size of the scrollableContent changes
406
- let resizeObserverDebounceTimer: ReturnType<typeof requestAnimationFrame>;
407
- if (!resizeObserverRef.current) {
408
- resizeObserverRef.current = new ResizeObserver(() => {
409
- cancelAnimationFrame(resizeObserverDebounceTimer);
410
- resizeObserverDebounceTimer = requestAnimationFrame(
411
- updateIsContentScrollable,
412
- );
413
- });
414
- }
415
-
416
- if (resizeObserverRef.current && scrollableContentRef.current) {
417
- // Observe the <ul> itself (in case it changes size due to the content expanding)
418
- resizeObserverRef.current.observe(scrollableContentRef.current);
419
- if (scrollableContentRef.current.parentElement) {
420
- // ALSO observe the parent (<SideNavScrollableContainer>) in case the window resizes
421
- resizeObserverRef.current.observe(
422
- scrollableContentRef.current.parentElement,
423
- );
424
- }
425
- }
426
-
427
- // Determine if the scrollable container has overflow or not on load
428
- updateIsContentScrollable();
429
-
430
- // Finally, we only want to have the border on the bottom of the header iff the user has scrolled
431
- // the scrollable container
432
- if (!intersectionObserverRef.current && scrollableContentRef.current) {
433
- intersectionObserverRef.current = new IntersectionObserver(
434
- (entries) => {
435
- // If isIntersecting is true, then we're at the top of the scroll container
436
- // If isIntersecting is false, some scrolling has occurred.
437
- // The entries must be sorted by time and we only really need to look at the latest one
438
- const isIntersecting = entries
439
- .slice()
440
- .sort((a, b) => a.time - b.time)
441
- .at(0)?.isIntersecting;
442
- setHasContentScrolled(!isIntersecting);
443
- },
444
- {
445
- root: scrollableContentRef.current.parentElement,
446
- threshold: 1.0,
447
- },
448
- );
449
- }
450
-
451
- if (intersectionObserverRef.current && scrollableContentRef.current) {
452
- const ulElement = scrollableContentRef.current;
453
- const [liElement] = Array.from(ulElement?.children || []);
454
-
455
- if (liElement) {
456
- intersectionObserverRef.current.observe(liElement);
457
- }
458
- }
459
-
460
- // Cleanup when unmounted:
461
- return () => {
462
- if (resizeObserverRef.current) {
463
- resizeObserverRef.current.disconnect();
464
- resizeObserverRef.current = null;
465
- }
466
- if (intersectionObserverRef.current) {
467
- intersectionObserverRef.current.disconnect();
468
- intersectionObserverRef.current = null;
469
- }
470
- cancelAnimationFrame(resizeObserverDebounceTimer); // Ensure timer is cleared on component unmount
471
- };
472
- }, [sideNavItemsList]);
473
-
474
- const scrollIntoViewRef = useRef<HTMLLIElement>(null);
475
- /**
476
- * Look through the sideNavItems and determine which is the first node
477
- * with isSelected. This should be the node we set a ref on in order to
478
- * call scrollIntoView in the effect
479
- */
480
- const firstSideNavItemIdWithIsSelected = useMemo(() => {
481
- const flattenedItems = sideNavItemsList.flatMap((sideNavItem) =>
482
- sideNavItem.nestedNavItems
483
- ? [sideNavItem, ...sideNavItem.nestedNavItems]
484
- : sideNavItem,
485
- );
486
- const firstItemWithIsSelected = flattenedItems.find(
487
- (sideNavItem) => sideNavItem.isSelected,
488
- );
489
- return firstItemWithIsSelected?.id;
490
- }, [sideNavItemsList]);
491
- /**
492
- * Once we've rendered and if we have an item to scroll to, do the scroll action.
493
- * This must rely on checking firstSideNavItemIdWithIsSelected or it will not run
494
- * once the actual ref is populated.
495
- */
496
- useEffect(() => {
497
- if (firstSideNavItemIdWithIsSelected && scrollIntoViewRef.current) {
498
- scrollIntoViewRef.current.scrollIntoView();
499
- }
500
- }, [firstSideNavItemIdWithIsSelected]);
501
-
502
- /**
503
- * We only want to put a ref on a node iff it is the first selected node.
504
- * This function returns the ref only if the ID provided matches the first
505
- * selected node, otherwise returns undefined (so that the node has no ref)
506
- */
507
- const getRefIfThisIsFirstNodeWithIsSelected = useCallback(
508
- (itemId: string) =>
509
- itemId === firstSideNavItemIdWithIsSelected
510
- ? scrollIntoViewRef
511
- : undefined,
512
- [firstSideNavItemIdWithIsSelected],
513
- );
514
-
515
- const sideNavItemContentProviderValue = useMemo(
516
- () => ({ isCompact, depth: 1 }),
517
- [isCompact],
518
- );
519
-
520
- const setSelectedItem = useCallback(
521
- (selectedItemId: string) => {
522
- const updatedSideNavItems = sideNavItemsList.map((item) => {
523
- if (item.id === selectedItemId) {
524
- item.isSelected = true;
525
- } else if (item.isSelected) {
526
- delete item.isSelected;
527
- }
528
-
529
- return item.nestedNavItems
530
- ? {
531
- ...item,
532
- nestedNavItems: item.nestedNavItems.map((childItem) => {
533
- if (childItem.id === selectedItemId) {
534
- childItem.isSelected = true;
535
- } else if (childItem.isSelected) {
536
- delete childItem.isSelected;
537
- }
538
- return childItem;
539
- }),
540
- }
541
- : item;
542
- });
543
- updateSideNavItemsList(updatedSideNavItems);
544
- },
545
- [sideNavItemsList],
546
- );
547
-
548
- const processedSideNavItems = useMemo(() => {
549
- return sideNavItemsList?.map((item) => ({
550
- ...item,
551
- childNavItems: item.nestedNavItems?.map((childProps) => {
552
- return {
553
- id: childProps.id,
554
- isSelected: childProps.isSelected,
555
- isDisabled: childProps.isDisabled,
556
- isSortable: childProps.isSortable,
557
- navItem: (
558
- <SideNavItemContentContext.Provider
559
- value={{
560
- ...sideNavItemContentProviderValue,
561
- depth: 2,
562
- isSortable: item.isSortable,
563
- }}
564
- key={childProps.id}
565
- >
566
- <SideNavItemContent
567
- {...childProps}
568
- scrollRef={getRefIfThisIsFirstNodeWithIsSelected(childProps.id)}
569
- onItemSelected={setSelectedItem}
570
- />
571
- </SideNavItemContentContext.Provider>
572
- ),
573
- };
574
- }),
575
- }));
576
- }, [
577
- getRefIfThisIsFirstNodeWithIsSelected,
578
- sideNavItemsList,
579
- sideNavItemContentProviderValue,
580
- setSelectedItem,
581
- ]);
582
-
583
- const sideNavExpandClickHandler = useCallback(() => {
584
- if (isSideNavCollapsed) {
585
- onExpand?.();
586
- } else {
587
- onCollapse?.();
588
- }
589
-
590
- setSideNavCollapsed(!isSideNavCollapsed);
591
- }, [isSideNavCollapsed, setSideNavCollapsed, onExpand, onCollapse]);
592
-
593
- const sideNavExpandKeyHandler = useCallback<
594
- KeyboardEventHandler<HTMLButtonElement>
595
- >(
596
- (event) => {
597
- if (event?.key === "Enter" || event?.code === "Space") {
598
- event.preventDefault();
599
- sideNavExpandClickHandler();
600
- }
601
- },
602
- [sideNavExpandClickHandler],
603
- );
604
-
605
- const setSortedItems = useCallback(
606
- (
607
- parentId: string,
608
- activeId: UniqueIdentifier,
609
- activeIndex: number,
610
- overIndex: number,
611
- ) => {
612
- const sortedSideNavItems = sideNavItemsList.map((item) =>
613
- item.id === parentId && item.nestedNavItems
614
- ? {
615
- ...item,
616
- nestedNavItems: arrayMove(
617
- item.nestedNavItems,
618
- activeIndex,
619
- overIndex,
620
- ),
621
- }
622
- : item,
623
- );
624
- updateSideNavItemsList(sortedSideNavItems);
625
- onSort?.(sortedSideNavItems, parentId, activeId, activeIndex, overIndex);
626
- },
627
- [onSort, sideNavItemsList],
628
- );
629
-
630
- return (
631
- <StyledSideNav
632
- aria-label={t("navigation.label")}
633
- backgroundColor={uiShellContext?.sideNavBackgroundColor}
634
- id="side-nav-expandable"
635
- isAppContentWhiteBackground={
636
- uiShellContext?.appBackgroundColor ===
637
- odysseyDesignTokens.HueNeutralWhite
638
- }
639
- isSideNavCollapsed={isSideNavCollapsed}
640
- odysseyDesignTokens={odysseyDesignTokens}
641
- >
642
- {isCollapsible && (
643
- <SideNavToggleButton
644
- ariaControls="side-nav-expandable"
645
- isSideNavCollapsed={isSideNavCollapsed}
646
- onClick={sideNavExpandClickHandler}
647
- onKeyDown={sideNavExpandKeyHandler}
648
- />
649
- )}
650
- <OdysseyThemeProvider>
651
- <StyledCollapsibleContent
652
- data-se="collapsible-region"
653
- isSideNavCollapsed={isSideNavCollapsed}
654
- odysseyDesignTokens={odysseyDesignTokens}
655
- >
656
- <StyledOpacityTransitionContainer
657
- isSideNavCollapsed={isSideNavCollapsed}
658
- odysseyDesignTokens={odysseyDesignTokens}
659
- >
660
- <SideNavHeaderContainer
661
- hasContentScrolled={hasContentScrolled}
662
- odysseyDesignTokens={odysseyDesignTokens}
663
- borderColor={uiShellContext?.sideNavContrastColors?.fontColor}
664
- >
665
- <SideNavHeader
666
- appName={appName}
667
- isLoading={isLoading}
668
- logoProps={logoProps}
669
- />
670
- </SideNavHeaderContainer>
671
- <SideNavScrollableContainer
672
- odysseyDesignTokens={odysseyDesignTokens}
673
- data-se="scrollable-region"
674
- >
675
- <SideNavListContainer role="none" ref={scrollableContentRef}>
676
- {isLoading
677
- ? Array(6)
678
- .fill(null)
679
- .map((_, index) => <LoadingItem key={index} />)
680
- : processedSideNavItems?.map((item) => {
681
- const {
682
- id,
683
- label,
684
- isSectionHeader,
685
- startIcon,
686
- childNavItems,
687
- isSortable,
688
- isDefaultExpanded,
689
- isDisabled,
690
- isExpanded,
691
- } = item;
692
-
693
- if (isSectionHeader) {
694
- return (
695
- <ErrorBoundary fallback={blankElement}>
696
- <SectionHeaderContainer
697
- contrastFontColor={
698
- uiShellContext?.sideNavContrastColors?.fontColor
699
- }
700
- id={id}
701
- key={id}
702
- odysseyDesignTokens={odysseyDesignTokens}
703
- >
704
- <Overline component="h3">{label}</Overline>
705
- </SectionHeaderContainer>
706
- </ErrorBoundary>
707
- );
708
- } else if (childNavItems) {
709
- return (
710
- <ErrorBoundary fallback={blankElement}>
711
- <StyledSideNavListItem
712
- id={id}
713
- key={id}
714
- odysseyDesignTokens={odysseyDesignTokens}
715
- disabled={isDisabled}
716
- aria-disabled={isDisabled}
717
- >
718
- <NavAccordion
719
- label={label}
720
- isCompact={isCompact}
721
- isDefaultExpanded={isDefaultExpanded}
722
- isExpanded={isExpanded}
723
- startIcon={startIcon}
724
- isDisabled={isDisabled}
725
- >
726
- <SideNavListContainer role="none">
727
- {isSortable ? (
728
- <SortableList
729
- parentId={item.id}
730
- items={childNavItems}
731
- onChange={setSortedItems}
732
- renderItem={(sortableItem) => (
733
- <SortableList.Item
734
- id={sortableItem.id}
735
- isDisabled={sortableItem.isDisabled}
736
- isSelected={sortableItem.isSelected}
737
- isSortable={sortableItem.isSortable}
738
- >
739
- {sortableItem.navItem}
740
- </SortableList.Item>
741
- )}
742
- />
743
- ) : (
744
- childNavItems.map((item) => item.navItem)
745
- )}
746
- </SideNavListContainer>
747
- </NavAccordion>
748
- </StyledSideNavListItem>
749
- </ErrorBoundary>
750
- );
751
- } else {
752
- return (
753
- <ErrorBoundary fallback={blankElement}>
754
- <SideNavItemContentContext.Provider
755
- key={item.id}
756
- value={sideNavItemContentProviderValue}
757
- >
758
- <SideNavItemContent
759
- {...item}
760
- key={item.id}
761
- onItemSelected={setSelectedItem}
762
- scrollRef={getRefIfThisIsFirstNodeWithIsSelected(
763
- item.id,
764
- )}
765
- startIcon={item.startIcon}
766
- />
767
- </SideNavItemContentContext.Provider>
768
- </ErrorBoundary>
769
- );
770
- }
771
- })}
772
- </SideNavListContainer>
773
- {!isLoading && footerItems && !hasCustomFooter && (
774
- <SideNavFooter
775
- odysseyDesignTokens={odysseyDesignTokens}
776
- sideNavBackgroundColor={
777
- uiShellContext?.sideNavBackgroundColor
778
- }
779
- >
780
- <SideNavFooterItemsContainer
781
- odysseyDesignTokens={odysseyDesignTokens}
782
- sideNavContrastColors={
783
- uiShellContext?.sideNavContrastColors
784
- }
785
- >
786
- <SideNavFooterContent footerItems={footerItems} />
787
- </SideNavFooterItemsContainer>
788
- </SideNavFooter>
789
- )}
790
- </SideNavScrollableContainer>
791
- {!isLoading && !footerItems && hasCustomFooter && (
792
- <PersistentSideNavFooter
793
- isContentScrollable={isContentScrollable}
794
- odysseyDesignTokens={odysseyDesignTokens}
795
- sideNavBackgroundColor={uiShellContext?.sideNavBackgroundColor}
796
- >
797
- {footerComponent}
798
- </PersistentSideNavFooter>
799
- )}
800
- </StyledOpacityTransitionContainer>
801
- </StyledCollapsibleContent>
802
- </OdysseyThemeProvider>
803
- </StyledSideNav>
804
- );
805
- };
806
-
807
- const MemoizedSideNav = memo(SideNav);
808
- MemoizedSideNav.displayName = "SideNav";
809
-
810
- export { MemoizedSideNav as SideNav };