@okta/odyssey-react-mui 1.25.0 → 1.26.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 (491) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/Autocomplete.js +30 -191
  3. package/dist/Autocomplete.js.map +1 -1
  4. package/dist/Box.js +2 -0
  5. package/dist/Box.js.map +1 -1
  6. package/dist/Card.js +1 -0
  7. package/dist/Card.js.map +1 -1
  8. package/dist/OdysseyDesignTokensContext.js +3 -2
  9. package/dist/OdysseyDesignTokensContext.js.map +1 -1
  10. package/dist/OdysseyProvider.js +9 -7
  11. package/dist/OdysseyProvider.js.map +1 -1
  12. package/dist/OdysseyThemeProvider.js +33 -13
  13. package/dist/OdysseyThemeProvider.js.map +1 -1
  14. package/dist/Pagination/Pagination.js +46 -14
  15. package/dist/Pagination/Pagination.js.map +1 -1
  16. package/dist/Surface.js +4 -1
  17. package/dist/Surface.js.map +1 -1
  18. package/dist/Tag.js +42 -27
  19. package/dist/Tag.js.map +1 -1
  20. package/dist/index.js +6 -7
  21. package/dist/index.js.map +1 -1
  22. package/dist/index.scss +1 -1
  23. package/dist/labs/AppTile.js +137 -39
  24. package/dist/labs/AppTile.js.map +1 -1
  25. package/dist/labs/DataView/CardLayoutContent.js +7 -8
  26. package/dist/labs/DataView/CardLayoutContent.js.map +1 -1
  27. package/dist/labs/DataView/DataCard.js +96 -43
  28. package/dist/labs/DataView/DataCard.js.map +1 -1
  29. package/dist/labs/DataView/TableLayoutContent.js +3 -2
  30. package/dist/labs/DataView/TableLayoutContent.js.map +1 -1
  31. package/dist/labs/DataView/componentTypes.js.map +1 -1
  32. package/dist/labs/DataView/index.js.map +1 -1
  33. package/dist/labs/OdysseyPickers/ComposablePicker.js +113 -0
  34. package/dist/labs/OdysseyPickers/ComposablePicker.js.map +1 -0
  35. package/dist/labs/OdysseyPickers/Picker.js +261 -0
  36. package/dist/labs/OdysseyPickers/Picker.js.map +1 -0
  37. package/dist/labs/OdysseyPickers/PickerVirtualizationListBox.js +132 -0
  38. package/dist/labs/OdysseyPickers/PickerVirtualizationListBox.js.map +1 -0
  39. package/dist/labs/OdysseyPickers/PickerWithOptionAdornment.js +291 -0
  40. package/dist/labs/OdysseyPickers/PickerWithOptionAdornment.js.map +1 -0
  41. package/dist/{src/createShadowDomElements.d.ts → labs/OdysseyPickers/index.js} +4 -7
  42. package/dist/labs/OdysseyPickers/index.js.map +1 -0
  43. package/dist/labs/PageTemplate.js +14 -10
  44. package/dist/labs/PageTemplate.js.map +1 -1
  45. package/dist/labs/SideNav/CollapseIcon.js +11 -25
  46. package/dist/labs/SideNav/CollapseIcon.js.map +1 -1
  47. package/dist/labs/SideNav/HandleIcon.js +32 -0
  48. package/dist/labs/SideNav/HandleIcon.js.map +1 -0
  49. package/dist/labs/{NavAccordion.js → SideNav/NavAccordion.js} +35 -6
  50. package/dist/labs/SideNav/NavAccordion.js.map +1 -0
  51. package/dist/labs/SideNav/OktaAura.js +32 -0
  52. package/dist/labs/SideNav/OktaAura.js.map +1 -0
  53. package/dist/labs/SideNav/OktaLogo.js +6 -9
  54. package/dist/labs/SideNav/OktaLogo.js.map +1 -1
  55. package/dist/labs/SideNav/SideNav.js +239 -169
  56. package/dist/labs/SideNav/SideNav.js.map +1 -1
  57. package/dist/labs/SideNav/SideNavFooterContent.js +32 -18
  58. package/dist/labs/SideNav/SideNavFooterContent.js.map +1 -1
  59. package/dist/labs/SideNav/SideNavHeader.js +48 -37
  60. package/dist/labs/SideNav/SideNavHeader.js.map +1 -1
  61. package/dist/labs/SideNav/SideNavItemContent.js +100 -58
  62. package/dist/labs/SideNav/SideNavItemContent.js.map +1 -1
  63. package/dist/labs/SideNav/SideNavItemContentContext.js +19 -0
  64. package/dist/labs/SideNav/SideNavItemContentContext.js.map +1 -0
  65. package/dist/labs/SideNav/SideNavItemLinkContent.js +14 -13
  66. package/dist/labs/SideNav/SideNavItemLinkContent.js.map +1 -1
  67. package/dist/labs/SideNav/SideNavLogo.js +42 -0
  68. package/dist/labs/SideNav/SideNavLogo.js.map +1 -0
  69. package/dist/labs/SideNav/SideNavToggleButton.js +170 -0
  70. package/dist/labs/SideNav/SideNavToggleButton.js.map +1 -0
  71. package/dist/labs/SideNav/types.js.map +1 -1
  72. package/dist/labs/TopNav/TopNav.js +65 -0
  73. package/dist/labs/TopNav/TopNav.js.map +1 -0
  74. package/dist/labs/TopNav/TopNavLinksList.js +38 -0
  75. package/dist/labs/TopNav/TopNavLinksList.js.map +1 -0
  76. package/dist/labs/TopNav/TopNavListItem.js +132 -0
  77. package/dist/labs/TopNav/TopNavListItem.js.map +1 -0
  78. package/dist/labs/TopNav/UserProfile.js +65 -0
  79. package/dist/labs/TopNav/UserProfile.js.map +1 -0
  80. package/dist/labs/TopNav/index.js +14 -0
  81. package/dist/labs/TopNav/index.js.map +1 -0
  82. package/dist/labs/UiShell/UiShell.js +68 -0
  83. package/dist/labs/UiShell/UiShell.js.map +1 -0
  84. package/dist/labs/UiShell/UiShellContent.js +114 -0
  85. package/dist/labs/UiShell/UiShellContent.js.map +1 -0
  86. package/dist/labs/UiShell/bufferLatest.js +37 -0
  87. package/dist/labs/UiShell/bufferLatest.js.map +1 -0
  88. package/dist/labs/UiShell/createMessageBus.js +30 -0
  89. package/dist/labs/UiShell/createMessageBus.js.map +1 -0
  90. package/dist/labs/UiShell/createStore.js +24 -0
  91. package/dist/labs/UiShell/createStore.js.map +1 -0
  92. package/dist/labs/UiShell/index.js +15 -0
  93. package/dist/labs/UiShell/index.js.map +1 -0
  94. package/dist/labs/UiShell/renderUiShell.js +78 -0
  95. package/dist/labs/UiShell/renderUiShell.js.map +1 -0
  96. package/dist/labs/UiShell/useHasUiShell.js +22 -0
  97. package/dist/labs/UiShell/useHasUiShell.js.map +1 -0
  98. package/dist/labs/UiShell/useScrollState.js +41 -0
  99. package/dist/labs/UiShell/useScrollState.js.map +1 -0
  100. package/dist/labs/index.js +5 -3
  101. package/dist/labs/index.js.map +1 -1
  102. package/dist/properties/ts/odyssey-react-mui.js +7 -1
  103. package/dist/properties/ts/odyssey-react-mui.js.map +1 -1
  104. package/dist/properties/ts/odyssey-react-mui_cs.js +3 -1
  105. package/dist/properties/ts/odyssey-react-mui_cs.js.map +1 -1
  106. package/dist/properties/ts/odyssey-react-mui_da.js +3 -1
  107. package/dist/properties/ts/odyssey-react-mui_da.js.map +1 -1
  108. package/dist/properties/ts/odyssey-react-mui_de.js +3 -1
  109. package/dist/properties/ts/odyssey-react-mui_de.js.map +1 -1
  110. package/dist/properties/ts/odyssey-react-mui_el.js +3 -1
  111. package/dist/properties/ts/odyssey-react-mui_el.js.map +1 -1
  112. package/dist/properties/ts/odyssey-react-mui_es.js +3 -1
  113. package/dist/properties/ts/odyssey-react-mui_es.js.map +1 -1
  114. package/dist/properties/ts/odyssey-react-mui_fi.js +3 -1
  115. package/dist/properties/ts/odyssey-react-mui_fi.js.map +1 -1
  116. package/dist/properties/ts/odyssey-react-mui_fr.js +5 -3
  117. package/dist/properties/ts/odyssey-react-mui_fr.js.map +1 -1
  118. package/dist/properties/ts/odyssey-react-mui_ht.js +3 -1
  119. package/dist/properties/ts/odyssey-react-mui_ht.js.map +1 -1
  120. package/dist/properties/ts/odyssey-react-mui_hu.js +3 -1
  121. package/dist/properties/ts/odyssey-react-mui_hu.js.map +1 -1
  122. package/dist/properties/ts/odyssey-react-mui_id.js +3 -1
  123. package/dist/properties/ts/odyssey-react-mui_id.js.map +1 -1
  124. package/dist/properties/ts/odyssey-react-mui_it.js +4 -2
  125. package/dist/properties/ts/odyssey-react-mui_it.js.map +1 -1
  126. package/dist/properties/ts/odyssey-react-mui_ja.js +9 -7
  127. package/dist/properties/ts/odyssey-react-mui_ja.js.map +1 -1
  128. package/dist/properties/ts/odyssey-react-mui_ko.js +3 -1
  129. package/dist/properties/ts/odyssey-react-mui_ko.js.map +1 -1
  130. package/dist/properties/ts/odyssey-react-mui_ms.js +3 -1
  131. package/dist/properties/ts/odyssey-react-mui_ms.js.map +1 -1
  132. package/dist/properties/ts/odyssey-react-mui_nb.js +3 -1
  133. package/dist/properties/ts/odyssey-react-mui_nb.js.map +1 -1
  134. package/dist/properties/ts/odyssey-react-mui_nl_NL.js +3 -1
  135. package/dist/properties/ts/odyssey-react-mui_nl_NL.js.map +1 -1
  136. package/dist/properties/ts/odyssey-react-mui_pl.js +3 -1
  137. package/dist/properties/ts/odyssey-react-mui_pl.js.map +1 -1
  138. package/dist/properties/ts/odyssey-react-mui_pt_BR.js +3 -1
  139. package/dist/properties/ts/odyssey-react-mui_pt_BR.js.map +1 -1
  140. package/dist/properties/ts/odyssey-react-mui_ro.js +3 -1
  141. package/dist/properties/ts/odyssey-react-mui_ro.js.map +1 -1
  142. package/dist/properties/ts/odyssey-react-mui_ru.js +3 -1
  143. package/dist/properties/ts/odyssey-react-mui_ru.js.map +1 -1
  144. package/dist/properties/ts/odyssey-react-mui_sv.js +3 -1
  145. package/dist/properties/ts/odyssey-react-mui_sv.js.map +1 -1
  146. package/dist/properties/ts/odyssey-react-mui_th.js +3 -1
  147. package/dist/properties/ts/odyssey-react-mui_th.js.map +1 -1
  148. package/dist/properties/ts/odyssey-react-mui_tr.js +4 -2
  149. package/dist/properties/ts/odyssey-react-mui_tr.js.map +1 -1
  150. package/dist/properties/ts/odyssey-react-mui_uk.js +3 -1
  151. package/dist/properties/ts/odyssey-react-mui_uk.js.map +1 -1
  152. package/dist/properties/ts/odyssey-react-mui_vi.js +3 -1
  153. package/dist/properties/ts/odyssey-react-mui_vi.js.map +1 -1
  154. package/dist/properties/ts/odyssey-react-mui_zh_CN.js +3 -1
  155. package/dist/properties/ts/odyssey-react-mui_zh_CN.js.map +1 -1
  156. package/dist/properties/ts/odyssey-react-mui_zh_TW.js +3 -1
  157. package/dist/properties/ts/odyssey-react-mui_zh_TW.js.map +1 -1
  158. package/dist/src/Autocomplete.d.ts +21 -22
  159. package/dist/src/Autocomplete.d.ts.map +1 -1
  160. package/dist/src/Box.d.ts +3 -1
  161. package/dist/src/Box.d.ts.map +1 -1
  162. package/dist/src/Card.d.ts.map +1 -1
  163. package/dist/src/OdysseyDesignTokensContext.d.ts +5 -4
  164. package/dist/src/OdysseyDesignTokensContext.d.ts.map +1 -1
  165. package/dist/src/OdysseyProvider.d.ts +3 -3
  166. package/dist/src/OdysseyProvider.d.ts.map +1 -1
  167. package/dist/src/OdysseyThemeProvider.d.ts +10 -12
  168. package/dist/src/OdysseyThemeProvider.d.ts.map +1 -1
  169. package/dist/src/OdysseyTranslationProvider.d.ts +1 -1
  170. package/dist/src/OdysseyTranslationProvider.d.ts.map +1 -1
  171. package/dist/src/Pagination/Pagination.d.ts +21 -7
  172. package/dist/src/Pagination/Pagination.d.ts.map +1 -1
  173. package/dist/src/Surface.d.ts.map +1 -1
  174. package/dist/src/Tag.d.ts +5 -2
  175. package/dist/src/Tag.d.ts.map +1 -1
  176. package/dist/src/index.d.ts +6 -7
  177. package/dist/src/index.d.ts.map +1 -1
  178. package/dist/src/labs/AppTile.d.ts +3 -1
  179. package/dist/src/labs/AppTile.d.ts.map +1 -1
  180. package/dist/src/labs/DataView/CardLayoutContent.d.ts.map +1 -1
  181. package/dist/src/labs/DataView/DataCard.d.ts +9 -3
  182. package/dist/src/labs/DataView/DataCard.d.ts.map +1 -1
  183. package/dist/src/labs/DataView/TableLayoutContent.d.ts.map +1 -1
  184. package/dist/src/labs/DataView/componentTypes.d.ts +1 -1
  185. package/dist/src/labs/DataView/componentTypes.d.ts.map +1 -1
  186. package/dist/src/labs/DataView/index.d.ts +1 -0
  187. package/dist/src/labs/DataView/index.d.ts.map +1 -1
  188. package/dist/src/labs/OdysseyPickers/ComposablePicker.d.ts +33 -0
  189. package/dist/src/labs/OdysseyPickers/ComposablePicker.d.ts.map +1 -0
  190. package/dist/src/labs/OdysseyPickers/Picker.d.ts +98 -0
  191. package/dist/src/labs/OdysseyPickers/Picker.d.ts.map +1 -0
  192. package/dist/src/labs/OdysseyPickers/PickerVirtualizationListBox.d.ts +17 -0
  193. package/dist/src/labs/OdysseyPickers/PickerVirtualizationListBox.d.ts.map +1 -0
  194. package/dist/src/labs/OdysseyPickers/PickerWithOptionAdornment.d.ts +26 -0
  195. package/dist/src/labs/OdysseyPickers/PickerWithOptionAdornment.d.ts.map +1 -0
  196. package/dist/src/labs/OdysseyPickers/index.d.ts +15 -0
  197. package/dist/src/labs/OdysseyPickers/index.d.ts.map +1 -0
  198. package/dist/src/labs/PageTemplate.d.ts +1 -1
  199. package/dist/src/labs/PageTemplate.d.ts.map +1 -1
  200. package/dist/src/labs/SideNav/CollapseIcon.d.ts +1 -4
  201. package/dist/src/labs/SideNav/CollapseIcon.d.ts.map +1 -1
  202. package/dist/src/labs/SideNav/HandleIcon.d.ts +14 -0
  203. package/dist/src/labs/SideNav/HandleIcon.d.ts.map +1 -0
  204. package/dist/src/labs/{NavAccordion.d.ts → SideNav/NavAccordion.d.ts} +6 -2
  205. package/dist/src/labs/SideNav/NavAccordion.d.ts.map +1 -0
  206. package/dist/src/labs/SideNav/OktaAura.d.ts +14 -0
  207. package/dist/src/labs/SideNav/OktaAura.d.ts.map +1 -0
  208. package/dist/src/labs/SideNav/OktaLogo.d.ts.map +1 -1
  209. package/dist/src/labs/SideNav/SideNav.d.ts +2 -1
  210. package/dist/src/labs/SideNav/SideNav.d.ts.map +1 -1
  211. package/dist/src/labs/SideNav/SideNavFooterContent.d.ts +1 -1
  212. package/dist/src/labs/SideNav/SideNavFooterContent.d.ts.map +1 -1
  213. package/dist/src/labs/SideNav/SideNavHeader.d.ts +12 -3
  214. package/dist/src/labs/SideNav/SideNavHeader.d.ts.map +1 -1
  215. package/dist/src/labs/SideNav/SideNavItemContent.d.ts +2 -3
  216. package/dist/src/labs/SideNav/SideNavItemContent.d.ts.map +1 -1
  217. package/dist/src/labs/SideNav/SideNavItemContentContext.d.ts +18 -0
  218. package/dist/src/labs/SideNav/SideNavItemContentContext.d.ts.map +1 -0
  219. package/dist/src/labs/SideNav/SideNavItemLinkContent.d.ts +1 -1
  220. package/dist/src/labs/SideNav/SideNavItemLinkContent.d.ts.map +1 -1
  221. package/dist/src/labs/SideNav/SideNavLogo.d.ts +15 -0
  222. package/dist/src/labs/SideNav/SideNavLogo.d.ts.map +1 -0
  223. package/dist/src/labs/SideNav/SideNavToggleButton.d.ts +38 -0
  224. package/dist/src/labs/SideNav/SideNavToggleButton.d.ts.map +1 -0
  225. package/dist/src/labs/SideNav/types.d.ts +67 -33
  226. package/dist/src/labs/SideNav/types.d.ts.map +1 -1
  227. package/dist/src/labs/TopNav/TopNav.d.ts +31 -0
  228. package/dist/src/labs/TopNav/TopNav.d.ts.map +1 -0
  229. package/dist/src/labs/TopNav/TopNavLinksList.d.ts +44 -0
  230. package/dist/src/labs/TopNav/TopNavLinksList.d.ts.map +1 -0
  231. package/dist/src/labs/TopNav/TopNavListItem.d.ts +42 -0
  232. package/dist/src/labs/TopNav/TopNavListItem.d.ts.map +1 -0
  233. package/dist/src/labs/TopNav/UserProfile.d.ts +29 -0
  234. package/dist/src/labs/TopNav/UserProfile.d.ts.map +1 -0
  235. package/dist/src/labs/TopNav/index.d.ts +14 -0
  236. package/dist/src/labs/TopNav/index.d.ts.map +1 -0
  237. package/dist/src/labs/UiShell/UiShell.d.ts +33 -0
  238. package/dist/src/labs/UiShell/UiShell.d.ts.map +1 -0
  239. package/dist/src/labs/UiShell/UiShellContent.d.ts +47 -0
  240. package/dist/src/labs/UiShell/UiShellContent.d.ts.map +1 -0
  241. package/dist/src/labs/UiShell/bufferLatest.d.ts +31 -0
  242. package/dist/src/labs/UiShell/bufferLatest.d.ts.map +1 -0
  243. package/dist/src/labs/UiShell/createMessageBus.d.ts +24 -0
  244. package/dist/src/labs/UiShell/createMessageBus.d.ts.map +1 -0
  245. package/dist/src/labs/UiShell/createStore.d.ts +22 -0
  246. package/dist/src/labs/UiShell/createStore.d.ts.map +1 -0
  247. package/dist/src/labs/UiShell/index.d.ts +16 -0
  248. package/dist/src/labs/UiShell/index.d.ts.map +1 -0
  249. package/dist/src/labs/UiShell/renderUiShell.d.ts +45 -0
  250. package/dist/src/labs/UiShell/renderUiShell.d.ts.map +1 -0
  251. package/dist/src/labs/UiShell/useHasUiShell.d.ts +13 -0
  252. package/dist/src/labs/UiShell/useHasUiShell.d.ts.map +1 -0
  253. package/dist/src/labs/UiShell/useScrollState.d.ts +16 -0
  254. package/dist/src/labs/UiShell/useScrollState.d.ts.map +1 -0
  255. package/dist/src/labs/index.d.ts +6 -2
  256. package/dist/src/labs/index.d.ts.map +1 -1
  257. package/dist/src/properties/ts/odyssey-react-mui.d.ts +6 -0
  258. package/dist/src/properties/ts/odyssey-react-mui.d.ts.map +1 -1
  259. package/dist/src/properties/ts/odyssey-react-mui_cs.d.ts +2 -0
  260. package/dist/src/properties/ts/odyssey-react-mui_cs.d.ts.map +1 -1
  261. package/dist/src/properties/ts/odyssey-react-mui_da.d.ts +2 -0
  262. package/dist/src/properties/ts/odyssey-react-mui_da.d.ts.map +1 -1
  263. package/dist/src/properties/ts/odyssey-react-mui_de.d.ts +2 -0
  264. package/dist/src/properties/ts/odyssey-react-mui_de.d.ts.map +1 -1
  265. package/dist/src/properties/ts/odyssey-react-mui_el.d.ts +2 -0
  266. package/dist/src/properties/ts/odyssey-react-mui_el.d.ts.map +1 -1
  267. package/dist/src/properties/ts/odyssey-react-mui_es.d.ts +2 -0
  268. package/dist/src/properties/ts/odyssey-react-mui_es.d.ts.map +1 -1
  269. package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts +2 -0
  270. package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts.map +1 -1
  271. package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts +2 -0
  272. package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts.map +1 -1
  273. package/dist/src/properties/ts/odyssey-react-mui_ht.d.ts +2 -0
  274. package/dist/src/properties/ts/odyssey-react-mui_ht.d.ts.map +1 -1
  275. package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts +2 -0
  276. package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts.map +1 -1
  277. package/dist/src/properties/ts/odyssey-react-mui_id.d.ts +2 -0
  278. package/dist/src/properties/ts/odyssey-react-mui_id.d.ts.map +1 -1
  279. package/dist/src/properties/ts/odyssey-react-mui_it.d.ts +2 -0
  280. package/dist/src/properties/ts/odyssey-react-mui_it.d.ts.map +1 -1
  281. package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts +2 -0
  282. package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts.map +1 -1
  283. package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts +2 -0
  284. package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts.map +1 -1
  285. package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts +2 -0
  286. package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts.map +1 -1
  287. package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts +2 -0
  288. package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts.map +1 -1
  289. package/dist/src/properties/ts/odyssey-react-mui_nl_NL.d.ts +2 -0
  290. package/dist/src/properties/ts/odyssey-react-mui_nl_NL.d.ts.map +1 -1
  291. package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts +2 -0
  292. package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts.map +1 -1
  293. package/dist/src/properties/ts/odyssey-react-mui_pt_BR.d.ts +2 -0
  294. package/dist/src/properties/ts/odyssey-react-mui_pt_BR.d.ts.map +1 -1
  295. package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts +2 -0
  296. package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts.map +1 -1
  297. package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts +2 -0
  298. package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts.map +1 -1
  299. package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts +2 -0
  300. package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts.map +1 -1
  301. package/dist/src/properties/ts/odyssey-react-mui_th.d.ts +2 -0
  302. package/dist/src/properties/ts/odyssey-react-mui_th.d.ts.map +1 -1
  303. package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts +2 -0
  304. package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts.map +1 -1
  305. package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts +2 -0
  306. package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts.map +1 -1
  307. package/dist/src/properties/ts/odyssey-react-mui_vi.d.ts +2 -0
  308. package/dist/src/properties/ts/odyssey-react-mui_vi.d.ts.map +1 -1
  309. package/dist/src/properties/ts/odyssey-react-mui_zh_CN.d.ts +2 -0
  310. package/dist/src/properties/ts/odyssey-react-mui_zh_CN.d.ts.map +1 -1
  311. package/dist/src/properties/ts/odyssey-react-mui_zh_TW.d.ts +2 -0
  312. package/dist/src/properties/ts/odyssey-react-mui_zh_TW.d.ts.map +1 -1
  313. package/dist/src/test-selectors/querySelector.d.ts +2 -2
  314. package/dist/src/theme/components.d.ts +3 -1
  315. package/dist/src/theme/components.d.ts.map +1 -1
  316. package/dist/src/theme/createOdysseyMuiTheme.d.ts +2 -1
  317. package/dist/src/theme/createOdysseyMuiTheme.d.ts.map +1 -1
  318. package/dist/src/useAutocomplete.d.ts +29 -0
  319. package/dist/src/useAutocomplete.d.ts.map +1 -0
  320. package/dist/src/useContrastMode.d.ts +46 -0
  321. package/dist/src/useContrastMode.d.ts.map +1 -0
  322. package/dist/src/web-component/index.d.ts +14 -0
  323. package/dist/src/web-component/index.d.ts.map +1 -0
  324. package/dist/src/web-component/renderReactInWebComponent.d.ts +76 -0
  325. package/dist/src/web-component/renderReactInWebComponent.d.ts.map +1 -0
  326. package/dist/src/web-component/shadow-dom.d.ts +23 -0
  327. package/dist/src/web-component/shadow-dom.d.ts.map +1 -0
  328. package/dist/test-selectors/querySelector.js.map +1 -1
  329. package/dist/theme/components.js +36 -32
  330. package/dist/theme/components.js.map +1 -1
  331. package/dist/theme/createOdysseyMuiTheme.js +3 -2
  332. package/dist/theme/createOdysseyMuiTheme.js.map +1 -1
  333. package/dist/tsconfig.production.tsbuildinfo +1 -1
  334. package/dist/tsconfig.tsbuildinfo +1 -1
  335. package/dist/useAutocomplete.js +105 -0
  336. package/dist/useAutocomplete.js.map +1 -0
  337. package/dist/useContrastMode.js +93 -0
  338. package/dist/useContrastMode.js.map +1 -0
  339. package/dist/web-component/index.js +14 -0
  340. package/dist/web-component/index.js.map +1 -0
  341. package/dist/web-component/renderReactInWebComponent.js +72 -0
  342. package/dist/web-component/renderReactInWebComponent.js.map +1 -0
  343. package/dist/{createShadowDomElements.js → web-component/shadow-dom.js} +10 -12
  344. package/dist/web-component/shadow-dom.js.map +1 -0
  345. package/jest.config.cjs +1 -1
  346. package/jest.setup.js +0 -3
  347. package/package.json +4 -3
  348. package/src/Autocomplete.tsx +40 -330
  349. package/src/Box.tsx +4 -2
  350. package/src/Card.tsx +1 -0
  351. package/src/OdysseyDesignTokensContext.tsx +6 -3
  352. package/src/OdysseyProvider.tsx +13 -8
  353. package/src/OdysseyThemeProvider.test.tsx +209 -0
  354. package/src/OdysseyThemeProvider.tsx +42 -26
  355. package/src/Pagination/Pagination.test.tsx +305 -0
  356. package/src/Pagination/Pagination.tsx +86 -38
  357. package/src/Surface.tsx +2 -1
  358. package/src/Tag.tsx +64 -39
  359. package/src/createUniqueAlphabeticalId.test.ts +1 -1
  360. package/src/createUniqueId.test.ts +1 -1
  361. package/src/index.ts +6 -7
  362. package/src/labs/AppTile.tsx +169 -40
  363. package/src/labs/DataView/CardLayoutContent.tsx +12 -14
  364. package/src/labs/DataView/DataCard.tsx +137 -69
  365. package/src/labs/DataView/DataView.test.tsx +6 -4
  366. package/src/labs/DataView/TableLayoutContent.tsx +6 -2
  367. package/src/labs/DataView/componentTypes.ts +1 -1
  368. package/src/labs/DataView/index.tsx +1 -0
  369. package/src/labs/OdysseyPickers/ComposablePicker.test.tsx +29 -0
  370. package/src/labs/OdysseyPickers/ComposablePicker.tsx +188 -0
  371. package/src/labs/OdysseyPickers/Picker.tsx +381 -0
  372. package/src/labs/OdysseyPickers/PickerVirtualizationListBox.tsx +191 -0
  373. package/src/labs/OdysseyPickers/PickerWithOptionAdornment.tsx +429 -0
  374. package/src/labs/OdysseyPickers/index.ts +15 -0
  375. package/src/labs/PageTemplate.tsx +18 -10
  376. package/src/labs/SideNav/CollapseIcon.tsx +14 -28
  377. package/src/labs/SideNav/HandleIcon.tsx +35 -0
  378. package/src/labs/{NavAccordion.tsx → SideNav/NavAccordion.tsx} +48 -8
  379. package/src/labs/SideNav/OktaAura.tsx +35 -0
  380. package/src/labs/SideNav/OktaLogo.tsx +5 -10
  381. package/src/labs/SideNav/SideNav.test.tsx +323 -0
  382. package/src/labs/SideNav/SideNav.tsx +291 -204
  383. package/src/labs/SideNav/SideNavFooterContent.tsx +36 -28
  384. package/src/labs/SideNav/SideNavHeader.tsx +62 -45
  385. package/src/labs/SideNav/SideNavItemContent.tsx +142 -62
  386. package/src/labs/SideNav/SideNavItemContentContext.tsx +27 -0
  387. package/src/labs/SideNav/SideNavItemLinkContent.tsx +17 -14
  388. package/src/labs/SideNav/SideNavLogo.tsx +41 -0
  389. package/src/labs/SideNav/SideNavToggleButton.tsx +249 -0
  390. package/src/labs/SideNav/types.ts +72 -33
  391. package/src/labs/TopNav/TopNav.tsx +95 -0
  392. package/src/labs/TopNav/TopNavLinksList.tsx +68 -0
  393. package/src/labs/TopNav/TopNavListItem.tsx +209 -0
  394. package/src/labs/TopNav/UserProfile.tsx +79 -0
  395. package/src/labs/TopNav/index.ts +14 -0
  396. package/src/labs/UiShell/UiShell.test.tsx +284 -0
  397. package/src/labs/UiShell/UiShell.tsx +109 -0
  398. package/src/labs/UiShell/UiShellContent.tsx +170 -0
  399. package/src/labs/UiShell/bufferLatest.test.ts +79 -0
  400. package/src/labs/UiShell/bufferLatest.ts +64 -0
  401. package/src/labs/UiShell/createMessageBus.test.ts +115 -0
  402. package/src/labs/UiShell/createMessageBus.ts +53 -0
  403. package/src/labs/UiShell/createStore.test.ts +103 -0
  404. package/src/labs/UiShell/createStore.ts +37 -0
  405. package/src/labs/UiShell/index.ts +17 -0
  406. package/src/labs/UiShell/renderUiShell.test.tsx +197 -0
  407. package/src/labs/UiShell/renderUiShell.tsx +132 -0
  408. package/src/labs/UiShell/useHasUiShell.ts +25 -0
  409. package/src/labs/UiShell/useScrollState.ts +56 -0
  410. package/src/labs/index.ts +10 -3
  411. package/src/properties/odyssey-react-mui.properties +7 -0
  412. package/src/properties/translations/odyssey-react-mui_cs.properties +2 -1
  413. package/src/properties/translations/odyssey-react-mui_da.properties +2 -1
  414. package/src/properties/translations/odyssey-react-mui_de.properties +2 -1
  415. package/src/properties/translations/odyssey-react-mui_el.properties +2 -1
  416. package/src/properties/translations/odyssey-react-mui_es.properties +2 -1
  417. package/src/properties/translations/odyssey-react-mui_fi.properties +2 -1
  418. package/src/properties/translations/odyssey-react-mui_fr.properties +4 -3
  419. package/src/properties/translations/odyssey-react-mui_ht.properties +2 -1
  420. package/src/properties/translations/odyssey-react-mui_hu.properties +2 -1
  421. package/src/properties/translations/odyssey-react-mui_id.properties +2 -1
  422. package/src/properties/translations/odyssey-react-mui_it.properties +3 -2
  423. package/src/properties/translations/odyssey-react-mui_ja.properties +8 -7
  424. package/src/properties/translations/odyssey-react-mui_ko.properties +2 -1
  425. package/src/properties/translations/odyssey-react-mui_ms.properties +2 -1
  426. package/src/properties/translations/odyssey-react-mui_nb.properties +2 -1
  427. package/src/properties/translations/odyssey-react-mui_nl_NL.properties +2 -1
  428. package/src/properties/translations/odyssey-react-mui_pl.properties +2 -1
  429. package/src/properties/translations/odyssey-react-mui_pt_BR.properties +2 -1
  430. package/src/properties/translations/odyssey-react-mui_ro.properties +2 -1
  431. package/src/properties/translations/odyssey-react-mui_ru.properties +2 -1
  432. package/src/properties/translations/odyssey-react-mui_sv.properties +2 -1
  433. package/src/properties/translations/odyssey-react-mui_th.properties +2 -1
  434. package/src/properties/translations/odyssey-react-mui_tr.properties +3 -2
  435. package/src/properties/translations/odyssey-react-mui_uk.properties +2 -1
  436. package/src/properties/translations/odyssey-react-mui_vi.properties +2 -1
  437. package/src/properties/translations/odyssey-react-mui_zh_CN.properties +2 -1
  438. package/src/properties/translations/odyssey-react-mui_zh_TW.properties +2 -1
  439. package/src/properties/ts/odyssey-react-mui.ts +1 -1
  440. package/src/properties/ts/odyssey-react-mui_cs.ts +1 -1
  441. package/src/properties/ts/odyssey-react-mui_da.ts +1 -1
  442. package/src/properties/ts/odyssey-react-mui_de.ts +1 -1
  443. package/src/properties/ts/odyssey-react-mui_el.ts +1 -1
  444. package/src/properties/ts/odyssey-react-mui_es.ts +1 -1
  445. package/src/properties/ts/odyssey-react-mui_fi.ts +1 -1
  446. package/src/properties/ts/odyssey-react-mui_fr.ts +1 -1
  447. package/src/properties/ts/odyssey-react-mui_ht.ts +1 -1
  448. package/src/properties/ts/odyssey-react-mui_hu.ts +1 -1
  449. package/src/properties/ts/odyssey-react-mui_id.ts +1 -1
  450. package/src/properties/ts/odyssey-react-mui_it.ts +1 -1
  451. package/src/properties/ts/odyssey-react-mui_ja.ts +1 -1
  452. package/src/properties/ts/odyssey-react-mui_ko.ts +1 -1
  453. package/src/properties/ts/odyssey-react-mui_ms.ts +1 -1
  454. package/src/properties/ts/odyssey-react-mui_nb.ts +1 -1
  455. package/src/properties/ts/odyssey-react-mui_nl_NL.ts +1 -1
  456. package/src/properties/ts/odyssey-react-mui_pl.ts +1 -1
  457. package/src/properties/ts/odyssey-react-mui_pt_BR.ts +1 -1
  458. package/src/properties/ts/odyssey-react-mui_ro.ts +1 -1
  459. package/src/properties/ts/odyssey-react-mui_ru.ts +1 -1
  460. package/src/properties/ts/odyssey-react-mui_sv.ts +1 -1
  461. package/src/properties/ts/odyssey-react-mui_th.ts +1 -1
  462. package/src/properties/ts/odyssey-react-mui_tr.ts +1 -1
  463. package/src/properties/ts/odyssey-react-mui_uk.ts +1 -1
  464. package/src/properties/ts/odyssey-react-mui_vi.ts +1 -1
  465. package/src/properties/ts/odyssey-react-mui_zh_CN.ts +1 -1
  466. package/src/properties/ts/odyssey-react-mui_zh_TW.ts +1 -1
  467. package/src/test-selectors/querySelector.ts +1 -1
  468. package/src/theme/components.tsx +50 -33
  469. package/src/theme/createOdysseyMuiTheme.ts +4 -3
  470. package/src/theme/useContrastMode.test.tsx +503 -0
  471. package/src/useAutocomplete.tsx +183 -0
  472. package/src/useContrastMode.tsx +149 -0
  473. package/src/web-component/index.ts +14 -0
  474. package/src/web-component/renderReactInWebComponent.test.tsx +156 -0
  475. package/src/web-component/renderReactInWebComponent.ts +153 -0
  476. package/src/web-component/shadow-dom.test.ts +24 -0
  477. package/src/{createShadowDomElements.ts → web-component/shadow-dom.ts} +15 -14
  478. package/dist/ContrastModeProvider.js +0 -86
  479. package/dist/ContrastModeProvider.js.map +0 -1
  480. package/dist/createShadowDomElements.js.map +0 -1
  481. package/dist/labs/NavAccordion.js.map +0 -1
  482. package/dist/labs/TopNav.js +0 -281
  483. package/dist/labs/TopNav.js.map +0 -1
  484. package/dist/src/ContrastModeProvider.d.ts +0 -34
  485. package/dist/src/ContrastModeProvider.d.ts.map +0 -1
  486. package/dist/src/createShadowDomElements.d.ts.map +0 -1
  487. package/dist/src/labs/NavAccordion.d.ts.map +0 -1
  488. package/dist/src/labs/TopNav.d.ts +0 -78
  489. package/dist/src/labs/TopNav.d.ts.map +0 -1
  490. package/src/ContrastModeProvider.tsx +0 -131
  491. package/src/labs/TopNav.tsx +0 -396
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposablePicker.js","names":["memo","useTranslation","PickerVirtualizationListBox","useAutocomplete","jsx","_jsx","adornmentSizeValues","ComposablePicker","ariaDescribedBy","defaultValue","errorMessage","errorMessageList","getIsOptionEqualToValue","getOptionLabel","groupOptionsBy","hasMultipleChoices","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","hint","HintLinkComponent","label","name","nameOverride","onBlur","onChange","onInputChange","onFocus","options","renderOption","renderTags","value","testId","translate","t","inputValueProp","isVirtualizedRef","renderInput","valueProps","_Autocomplete","current","ListboxComponent","clearText","closeText","disableCloseOnSelect","disabled","freeSolo","filterSelectedOptions","fullWidth","groupBy","isOptionEqualToValue","loading","multiple","readOnly","MemoizedComposablePicker","displayName"],"sources":["../../../src/labs/OdysseyPickers/ComposablePicker.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-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 { memo, ReactNode } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n Autocomplete as MuiAutocomplete,\n AutocompleteProps as MuiAutocompleteProps,\n} from \"@mui/material\";\n\nimport { AutocompleteProps } from \"../../Autocomplete\";\nimport { PickerVirtualizationListBox } from \"./PickerVirtualizationListBox\";\nimport { useAutocomplete } from \"../../useAutocomplete\";\n\nexport const adornmentSizeValues = [\"small\", \"large\"] as const;\nexport type AdornmentSize = (typeof adornmentSizeValues)[number];\n\nexport type BasePickerProps<\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = AutocompleteProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n adornmentSize?: AdornmentSize;\n groupOptionsBy?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"groupBy\"];\n};\n\nexport type BasePickerType = {\n displayName: string;\n <\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: BasePickerProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactNode;\n};\n\nexport type ComposablePickerProps<\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n getOptionLabel?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"getOptionLabel\"];\n\n renderOption: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderOption\"];\n\n renderTags?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderTags\"];\n};\n\nconst ComposablePicker = <\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n ariaDescribedBy,\n defaultValue,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n getOptionLabel,\n groupOptionsBy,\n hasMultipleChoices,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange,\n onInputChange,\n onFocus,\n options,\n renderOption,\n renderTags,\n value,\n testId,\n translate,\n}: ComposablePickerProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n>) => {\n const { t } = useTranslation();\n const { inputValueProp, isVirtualizedRef, renderInput, valueProps } =\n useAutocomplete<OptionType, HasMultipleChoices, IsCustomValueAllowed>({\n ariaDescribedBy,\n defaultValue,\n errorMessage,\n errorMessageList,\n hasMultipleChoices,\n hint,\n HintLinkComponent,\n inputValue,\n isFullWidth,\n isOptional,\n isVirtualized,\n label,\n name: nameOverride,\n testId,\n value,\n });\n\n return (\n <MuiAutocomplete\n {...valueProps}\n {...inputValueProp}\n // conditionally provide the ListboxComponent if this needs to be virtualized\n {...(isVirtualizedRef.current && {\n ListboxComponent: PickerVirtualizationListBox,\n })}\n // AutoComplete is wrapped in a div within MUI which does not get the disabled attr. So this aria-disabled gets set in the div\n aria-disabled={isDisabled}\n clearText={t(\"clear.text\")}\n closeText={t(\"close.text\")}\n disableCloseOnSelect={hasMultipleChoices}\n disabled={isDisabled}\n freeSolo={isCustomValueAllowed}\n filterSelectedOptions={true}\n fullWidth={isFullWidth}\n getOptionLabel={getOptionLabel}\n groupBy={groupOptionsBy}\n id={idOverride}\n isOptionEqualToValue={getIsOptionEqualToValue}\n loading={isLoading}\n multiple={hasMultipleChoices}\n onBlur={onBlur}\n onChange={onChange}\n onInputChange={onInputChange}\n onFocus={onFocus}\n options={options}\n readOnly={isReadOnly}\n renderInput={renderInput}\n renderOption={renderOption}\n renderTags={renderTags}\n translate={translate}\n />\n );\n};\n\n// Need the `typeof ComposablePicker` because generics don't get passed through\nconst MemoizedComposablePicker = memo(\n ComposablePicker,\n) as typeof ComposablePicker;\n// @ts-expect-error displayName is expected to not be on `typeof ComposablePicker`\nMemoizedComposablePicker.displayName = \"ComposablePicker\";\n\nexport { MemoizedComposablePicker as ComposablePicker };\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,QAAmB,OAAO;AACvC,SAASC,cAAc,QAAQ,eAAe;AAAC,SAOtCC,2BAA2B;AAAA,SAC3BC,eAAe;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAExB,OAAO,MAAMC,mBAAmB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU;AA2D9D,MAAMC,gBAAgB,GAAGA,CAIvB;EACAC,eAAe;EACfC,YAAY;EACZC,YAAY;EACZC,gBAAgB;EAChBC,uBAAuB;EACvBC,cAAc;EACdC,cAAc;EACdC,kBAAkB;EAClBC,EAAE,EAAEC,UAAU;EACdC,UAAU;EACVC,oBAAoB;EACpBC,UAAU;EACVC,WAAW,GAAG,KAAK;EACnBC,SAAS;EACTC,UAAU,GAAG,KAAK;EAClBC,UAAU;EACVC,aAAa,GAAG,KAAK;EACrBC,IAAI;EACJC,iBAAiB;EACjBC,KAAK;EACLC,IAAI,EAAEC,YAAY;EAClBC,MAAM;EACNC,QAAQ;EACRC,aAAa;EACbC,OAAO;EACPC,OAAO;EACPC,YAAY;EACZC,UAAU;EACVC,KAAK;EACLC,MAAM;EACNC;AAKF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAE,CAAC,GAAGxC,cAAc,CAAC,CAAC;EAC9B,MAAM;IAAEyC,cAAc;IAAEC,gBAAgB;IAAEC,WAAW;IAAEC;EAAW,CAAC,GACjE1C,eAAe,CAAuD;IACpEK,eAAe;IACfC,YAAY;IACZC,YAAY;IACZC,gBAAgB;IAChBI,kBAAkB;IAClBW,IAAI;IACJC,iBAAiB;IACjBT,UAAU;IACVG,WAAW;IACXE,UAAU;IACVE,aAAa;IACbG,KAAK;IACLC,IAAI,EAAEC,YAAY;IAClBS,MAAM;IACND;EACF,CAAC,CAAC;EAEJ,OACEjC,IAAA,CAAAyC,aAAA;IAAA,GACMD,UAAU;IAAA,GACVH,cAAc;IAAA,IAEbC,gBAAgB,CAACI,OAAO,IAAI;MAC/BC,gBAAgB,EAAE9C;IACpB,CAAC;IAED,iBAAekB,UAAW;IAC1B6B,SAAS,EAAER,CAAC,CAAC,YAAY,CAAE;IAC3BS,SAAS,EAAET,CAAC,CAAC,YAAY,CAAE;IAC3BU,oBAAoB,EAAEpC,kBAAmB;IACzCqC,QAAQ,EAAEhC,UAAW;IACrBiC,QAAQ,EAAElC,oBAAqB;IAC/BmC,qBAAqB,EAAE,IAAK;IAC5BC,SAAS,EAAElC,WAAY;IACvBR,cAAc,EAAEA,cAAe;IAC/B2C,OAAO,EAAE1C,cAAe;IACxBE,EAAE,EAAEC,UAAW;IACfwC,oBAAoB,EAAE7C,uBAAwB;IAC9C8C,OAAO,EAAEpC,SAAU;IACnBqC,QAAQ,EAAE5C,kBAAmB;IAC7BgB,MAAM,EAAEA,MAAO;IACfC,QAAQ,EAAEA,QAAS;IACnBC,aAAa,EAAEA,aAAc;IAC7BC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjByB,QAAQ,EAAEpC,UAAW;IACrBoB,WAAW,EAAEA,WAAY;IACzBR,YAAY,EAAEA,YAAa;IAC3BC,UAAU,EAAEA,UAAW;IACvBG,SAAS,EAAEA;EAAU,CACtB,CAAC;AAEN,CAAC;AAGD,MAAMqB,wBAAwB,GAAG7D,IAAI,CACnCO,gBACF,CAA4B;AAE5BsD,wBAAwB,CAACC,WAAW,GAAG,kBAAkB;AAEzD,SAASD,wBAAwB,IAAItD,gBAAgB"}
@@ -0,0 +1,261 @@
1
+ /*!
2
+ * Copyright (c) 2023-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 { memo, useCallback } from "react";
14
+ import styled from "@emotion/styled";
15
+ import { ComposablePicker } from "./ComposablePicker.js";
16
+ import { useOdysseyDesignTokens } from "../../OdysseyDesignTokensContext.js";
17
+ import { Heading6, Paragraph } from "../../Typography.js";
18
+ import { createElement as _createElement } from "react";
19
+ import { jsxs as _jsxs } from "react/jsx-runtime";
20
+ import { jsx as _jsx } from "react/jsx-runtime";
21
+ export const StyledOption = styled.li(({
22
+ hasAdornment
23
+ }) => ({
24
+ ...(!hasAdornment && {
25
+ display: "block !important"
26
+ })
27
+ }));
28
+ export const OptionLabelContainer = styled("div", {
29
+ shouldForwardProp: prop => prop !== "odysseyDesignTokens"
30
+ })(({}) => ({
31
+ p: {
32
+ margin: 0
33
+ }
34
+ }));
35
+ export const OptionDescription = styled("p", {
36
+ shouldForwardProp: prop => prop !== "odysseyDesignTokens"
37
+ })(({
38
+ odysseyDesignTokens
39
+ }) => ({
40
+ margin: `${odysseyDesignTokens.Spacing1} 0 0 !important`,
41
+ color: odysseyDesignTokens.TypographyColorSubordinate
42
+ }));
43
+ export const OptionDetails = styled("div", {
44
+ shouldForwardProp: prop => prop !== "odysseyDesignTokens"
45
+ })(({
46
+ odysseyDesignTokens
47
+ }) => ({
48
+ display: "flex",
49
+ gap: odysseyDesignTokens.Spacing3,
50
+ marginBlockStart: odysseyDesignTokens.Spacing2
51
+ }));
52
+ export const OptionDetail = styled("div", {
53
+ shouldForwardProp: prop => prop !== "odysseyDesignTokens"
54
+ })(({
55
+ odysseyDesignTokens
56
+ }) => ({
57
+ display: "flex",
58
+ alignItems: "center",
59
+ gap: odysseyDesignTokens.Spacing1,
60
+ svg: {
61
+ width: odysseyDesignTokens.Spacing4,
62
+ color: odysseyDesignTokens.HueNeutral400
63
+ }
64
+ }));
65
+ export const Option = ({
66
+ children,
67
+ hasAdornment = false,
68
+ key,
69
+ muiProps
70
+ }) => _createElement(StyledOption, {
71
+ ...muiProps,
72
+ hasAdornment: hasAdornment,
73
+ key: key
74
+ }, children);
75
+ export const OptionMetadataComponent = ({
76
+ metaData,
77
+ odysseyDesignTokens
78
+ }) => {
79
+ return _jsx(OptionDetails, {
80
+ odysseyDesignTokens: odysseyDesignTokens,
81
+ children: metaData.map((meta, index) => {
82
+ const {
83
+ detailText,
84
+ icon
85
+ } = meta;
86
+ return _jsxs(OptionDetail, {
87
+ odysseyDesignTokens: odysseyDesignTokens,
88
+ children: [icon, detailText]
89
+ }, `${index}-${detailText}`);
90
+ })
91
+ });
92
+ };
93
+ export const OptionDescriptionComponent = ({
94
+ description,
95
+ odysseyDesignTokens
96
+ }) => {
97
+ return description && _jsx(OptionDescription, {
98
+ odysseyDesignTokens: odysseyDesignTokens,
99
+ children: description
100
+ });
101
+ };
102
+ export const OptionLabelOnlyComponent = ({
103
+ muiProps,
104
+ odysseyDesignTokens,
105
+ option
106
+ }) => {
107
+ const {
108
+ label,
109
+ value
110
+ } = option;
111
+ return _jsx(Option, {
112
+ muiProps: muiProps,
113
+ children: _jsx(OptionLabelContainer, {
114
+ odysseyDesignTokens: odysseyDesignTokens,
115
+ children: _jsx(Paragraph, {
116
+ children: label
117
+ })
118
+ })
119
+ }, value);
120
+ };
121
+ const OptionLabelDescription = ({
122
+ muiProps,
123
+ odysseyDesignTokens,
124
+ option
125
+ }) => {
126
+ const {
127
+ description,
128
+ label,
129
+ value
130
+ } = option;
131
+ return _jsx(Option, {
132
+ muiProps: muiProps,
133
+ children: _jsxs(OptionLabelContainer, {
134
+ odysseyDesignTokens: odysseyDesignTokens,
135
+ children: [_jsx(Heading6, {
136
+ component: "p",
137
+ children: label
138
+ }), _jsx(OptionDescriptionComponent, {
139
+ description: description,
140
+ odysseyDesignTokens: odysseyDesignTokens
141
+ })]
142
+ })
143
+ }, value);
144
+ };
145
+ const OptionLabelDescriptionMetadata = ({
146
+ muiProps,
147
+ odysseyDesignTokens,
148
+ option
149
+ }) => {
150
+ const {
151
+ description,
152
+ label,
153
+ metaData,
154
+ value
155
+ } = option;
156
+ return _jsxs(Option, {
157
+ muiProps: muiProps,
158
+ children: [_jsxs(OptionLabelContainer, {
159
+ odysseyDesignTokens: odysseyDesignTokens,
160
+ children: [_jsx(Heading6, {
161
+ component: "p",
162
+ children: label
163
+ }), _jsx(OptionDescriptionComponent, {
164
+ description: description,
165
+ odysseyDesignTokens: odysseyDesignTokens
166
+ })]
167
+ }), _jsx(OptionMetadataComponent, {
168
+ metaData: metaData,
169
+ odysseyDesignTokens: odysseyDesignTokens
170
+ })]
171
+ }, value);
172
+ };
173
+ const Picker = ({
174
+ ariaDescribedBy,
175
+ defaultValue,
176
+ errorMessage,
177
+ errorMessageList,
178
+ getIsOptionEqualToValue,
179
+ hasMultipleChoices,
180
+ id: idOverride,
181
+ inputValue,
182
+ isCustomValueAllowed,
183
+ isDisabled,
184
+ isFullWidth = false,
185
+ isLoading,
186
+ isOptional = false,
187
+ isReadOnly,
188
+ isVirtualized: isVirtualizedProp = false,
189
+ hint,
190
+ HintLinkComponent,
191
+ label,
192
+ name: nameOverride,
193
+ onBlur,
194
+ onChange: onChangeProp,
195
+ onInputChange: onInputChangeProp,
196
+ onFocus,
197
+ options,
198
+ value,
199
+ testId,
200
+ translate
201
+ }) => {
202
+ const odysseyDesignTokens = useOdysseyDesignTokens();
203
+ const customOptionRender = useCallback((muiProps, option) => {
204
+ const hasDescription = "description" in option && option.description;
205
+ const hasMetadata = "metaData" in option && option.metaData;
206
+ const isLabelOnly = !hasMetadata && !hasDescription;
207
+ if (isLabelOnly) {
208
+ return _jsx(OptionLabelOnlyComponent, {
209
+ muiProps: muiProps,
210
+ odysseyDesignTokens: odysseyDesignTokens,
211
+ option: option
212
+ });
213
+ }
214
+ if (hasMetadata) {
215
+ return _jsx(OptionLabelDescriptionMetadata, {
216
+ muiProps: muiProps,
217
+ odysseyDesignTokens: odysseyDesignTokens,
218
+ option: option
219
+ });
220
+ }
221
+ return _jsx(OptionLabelDescription, {
222
+ muiProps: muiProps,
223
+ odysseyDesignTokens: odysseyDesignTokens,
224
+ option: option
225
+ });
226
+ }, [odysseyDesignTokens]);
227
+ return _jsx(ComposablePicker, {
228
+ ariaDescribedBy: ariaDescribedBy,
229
+ defaultValue: defaultValue,
230
+ errorMessage: errorMessage,
231
+ errorMessageList: errorMessageList,
232
+ getIsOptionEqualToValue: getIsOptionEqualToValue,
233
+ hasMultipleChoices: hasMultipleChoices,
234
+ id: idOverride,
235
+ inputValue: inputValue,
236
+ isCustomValueAllowed: isCustomValueAllowed,
237
+ isDisabled: isDisabled,
238
+ isFullWidth: isFullWidth,
239
+ isLoading: isLoading,
240
+ isOptional: isOptional,
241
+ isReadOnly: isReadOnly,
242
+ isVirtualized: isVirtualizedProp,
243
+ hint: hint,
244
+ HintLinkComponent: HintLinkComponent,
245
+ label: label,
246
+ name: nameOverride,
247
+ onBlur: onBlur,
248
+ onChange: onChangeProp,
249
+ onInputChange: onInputChangeProp,
250
+ onFocus: onFocus,
251
+ options: options,
252
+ renderOption: customOptionRender,
253
+ value: value,
254
+ testId: testId,
255
+ translate: translate
256
+ });
257
+ };
258
+ const MemoizedPicker = memo(Picker);
259
+ MemoizedPicker.displayName = "Picker";
260
+ export { MemoizedPicker as Picker };
261
+ //# sourceMappingURL=Picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Picker.js","names":["memo","useCallback","styled","ComposablePicker","useOdysseyDesignTokens","Heading6","Paragraph","createElement","_createElement","jsxs","_jsxs","jsx","_jsx","StyledOption","li","hasAdornment","display","OptionLabelContainer","shouldForwardProp","prop","p","margin","OptionDescription","odysseyDesignTokens","Spacing1","color","TypographyColorSubordinate","OptionDetails","gap","Spacing3","marginBlockStart","Spacing2","OptionDetail","alignItems","svg","width","Spacing4","HueNeutral400","Option","children","key","muiProps","OptionMetadataComponent","metaData","map","meta","index","detailText","icon","OptionDescriptionComponent","description","OptionLabelOnlyComponent","option","label","value","OptionLabelDescription","component","OptionLabelDescriptionMetadata","Picker","ariaDescribedBy","defaultValue","errorMessage","errorMessageList","getIsOptionEqualToValue","hasMultipleChoices","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","isVirtualizedProp","hint","HintLinkComponent","name","nameOverride","onBlur","onChange","onChangeProp","onInputChange","onInputChangeProp","onFocus","options","testId","translate","customOptionRender","hasDescription","hasMetadata","isLabelOnly","renderOption","MemoizedPicker","displayName"],"sources":["../../../src/labs/OdysseyPickers/Picker.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-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 {\n HTMLAttributes,\n memo,\n PropsWithChildren,\n ReactElement,\n ReactNode,\n useCallback,\n} from \"react\";\nimport styled from \"@emotion/styled\";\n\nimport {\n ComposablePicker,\n type BasePickerProps,\n type BasePickerType,\n} from \"./ComposablePicker\";\nimport {\n useOdysseyDesignTokens,\n DesignTokens,\n} from \"../../OdysseyDesignTokensContext\";\nimport { Heading6, Paragraph } from \"../../Typography\";\n\nexport const StyledOption = styled.li<{ hasAdornment?: boolean }>(\n ({ hasAdornment }) => ({\n ...(!hasAdornment && {\n display: \"block !important\",\n }),\n }),\n);\n\nexport const OptionLabelContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({}) => ({\n p: {\n margin: 0,\n },\n}));\n\nexport const OptionDescription = styled(\"p\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n margin: `${odysseyDesignTokens.Spacing1} 0 0 !important`,\n color: odysseyDesignTokens.TypographyColorSubordinate,\n}));\n\nexport const OptionDetails = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing3,\n marginBlockStart: odysseyDesignTokens.Spacing2,\n}));\n\nexport const OptionDetail = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing1,\n\n svg: {\n width: odysseyDesignTokens.Spacing4,\n color: odysseyDesignTokens.HueNeutral400,\n },\n}));\n\nexport type BaseOptionProps = {\n muiProps: HTMLAttributes<HTMLLIElement>;\n odysseyDesignTokens: DesignTokens;\n};\n\ntype OptionComponentProps = {\n hasAdornment?: boolean;\n key: string | number;\n muiProps: BaseOptionProps[\"muiProps\"];\n};\n\nexport const Option = ({\n children,\n hasAdornment = false,\n key,\n muiProps,\n}: PropsWithChildren<OptionComponentProps>) => (\n <StyledOption {...muiProps} hasAdornment={hasAdornment} key={key}>\n {children}\n </StyledOption>\n);\n\nexport const OptionMetadataComponent = ({\n metaData,\n odysseyDesignTokens,\n}: {\n metaData: OptionMetadata[];\n odysseyDesignTokens: DesignTokens;\n}) => {\n return (\n <OptionDetails odysseyDesignTokens={odysseyDesignTokens}>\n {metaData.map((meta: OptionMetadata, index: number) => {\n const { detailText, icon } = meta;\n\n return (\n <OptionDetail\n key={`${index}-${detailText}`}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {icon}\n {detailText}\n </OptionDetail>\n );\n })}\n </OptionDetails>\n );\n};\n\nexport const OptionDescriptionComponent = ({\n description,\n odysseyDesignTokens,\n}: {\n description?: LabelDescription[\"description\"];\n odysseyDesignTokens: DesignTokens;\n}) => {\n return (\n description && (\n <OptionDescription odysseyDesignTokens={odysseyDesignTokens}>\n {description}\n </OptionDescription>\n )\n );\n};\n\nexport type OptionProps<OptionType> = {\n option: OptionType;\n};\n\nexport const OptionLabelOnlyComponent = <OptionType extends OptionLabelOnly>({\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps & OptionProps<OptionType>) => {\n const { label, value } = option;\n\n return (\n <Option muiProps={muiProps} key={value}>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Paragraph>{label}</Paragraph>\n </OptionLabelContainer>\n </Option>\n );\n};\n\nconst OptionLabelDescription = <OptionType extends LabelDescription>({\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps & OptionProps<OptionType>) => {\n const { description, label, value } = option;\n\n return (\n <Option muiProps={muiProps} key={value}>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n </Option>\n );\n};\n\nconst OptionLabelDescriptionMetadata = <\n OptionType extends LabelDescriptionMetadata,\n>({\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps & OptionProps<OptionType>) => {\n const { description, label, metaData, value } = option;\n\n return (\n <Option key={value} muiProps={muiProps}>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n <OptionMetadataComponent\n metaData={metaData}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </Option>\n );\n};\n\nexport type OptionMetadata = {\n icon: ReactElement;\n detailText: string | number;\n};\n\nexport type OptionGroupType = { group?: string };\nexport type OptionValueType = { value: string | number };\nexport type OptionLabelType = { label: string };\nexport type BaseOptionType = OptionValueType &\n OptionGroupType &\n OptionLabelType;\nexport type Metadata = {\n metaData: OptionMetadata[];\n};\n\nexport type OptionLabelOnly = BaseOptionType;\nexport type LabelDescription = BaseOptionType & { description?: string };\nexport type LabelDescriptionMetadata = LabelDescription & Metadata;\n\nexport type PickerProps<\n OptionType extends LabelDescription | LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>;\n\nexport type PickerComponentType = {\n <\n OptionType extends OptionLabelOnly,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactElement;\n <\n OptionType extends LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactElement;\n <\n OptionType extends LabelDescription,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactElement;\n <\n OptionType extends LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactElement;\n};\n\nconst Picker: PickerComponentType = <\n OptionType extends\n | OptionLabelOnly\n | LabelDescription\n | LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n ariaDescribedBy,\n defaultValue,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n hasMultipleChoices,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized: isVirtualizedProp = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n onFocus,\n options,\n value,\n testId,\n translate,\n}: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const customOptionRender = useCallback<\n (props: HTMLAttributes<HTMLLIElement>, option: OptionType) => ReactNode\n >(\n (muiProps, option) => {\n const hasDescription = \"description\" in option && option.description;\n const hasMetadata = \"metaData\" in option && option.metaData;\n const isLabelOnly = !hasMetadata && !hasDescription;\n\n if (isLabelOnly) {\n return (\n <OptionLabelOnlyComponent\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n );\n }\n\n if (hasMetadata) {\n return (\n <OptionLabelDescriptionMetadata\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n );\n }\n\n return (\n <OptionLabelDescription\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n );\n },\n [odysseyDesignTokens],\n );\n\n return (\n <ComposablePicker<OptionType, HasMultipleChoices, IsCustomValueAllowed>\n ariaDescribedBy={ariaDescribedBy}\n defaultValue={defaultValue}\n errorMessage={errorMessage}\n errorMessageList={errorMessageList}\n getIsOptionEqualToValue={getIsOptionEqualToValue}\n // getOptionLabel={// getOptionLabel}\n hasMultipleChoices={hasMultipleChoices}\n id={idOverride}\n inputValue={inputValue}\n isCustomValueAllowed={isCustomValueAllowed}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isLoading={isLoading}\n isOptional={isOptional}\n isReadOnly={isReadOnly}\n isVirtualized={isVirtualizedProp}\n hint={hint}\n HintLinkComponent={HintLinkComponent}\n label={label}\n name={nameOverride}\n onBlur={onBlur}\n onChange={onChangeProp}\n onInputChange={onInputChangeProp}\n onFocus={onFocus}\n options={options}\n renderOption={customOptionRender}\n value={value}\n testId={testId}\n translate={translate}\n />\n );\n};\n\n// Need the `as BasePickerType` because generics don't get passed through\nconst MemoizedPicker = memo(Picker) as BasePickerType;\n\nMemoizedPicker.displayName = \"Picker\";\n\nexport { MemoizedPicker as Picker };\n"],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ /*!
2
+ * Copyright (c) 2023-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 { Children, createContext, forwardRef, memo, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
14
+ import { VariableSizeList } from "react-window";
15
+ import styled from "@emotion/styled";
16
+ import { createElement as _createElement } from "react";
17
+ import { jsx as _jsx } from "react/jsx-runtime";
18
+ const ListboxContainer = styled.div({
19
+ width: "100%",
20
+ height: "100%"
21
+ });
22
+ const Row = ({
23
+ data,
24
+ index,
25
+ setItemSize,
26
+ style
27
+ }) => {
28
+ const rowRef = useRef(null);
29
+ useEffect(() => {
30
+ if (rowRef.current) {
31
+ const firstChild = rowRef.current.firstElementChild;
32
+ const height = firstChild ? firstChild.clientHeight : rowRef.current.clientHeight;
33
+ setItemSize(height);
34
+ }
35
+ }, [index, rowRef, setItemSize]);
36
+ const baseOption = data[index];
37
+ const {
38
+ key,
39
+ props
40
+ } = baseOption;
41
+ const styles = useMemo(() => ({
42
+ ...style,
43
+ height: "auto"
44
+ }), [style]);
45
+ return _jsx("div", {
46
+ ref: rowRef,
47
+ children: _createElement("li", {
48
+ ...props,
49
+ key: key,
50
+ style: styles
51
+ })
52
+ });
53
+ };
54
+ const OuterListboxContext = createContext({});
55
+ const OuterListboxElementType = forwardRef((props, ref) => {
56
+ const outerProps = useContext(OuterListboxContext);
57
+ return _jsx("div", {
58
+ ref: ref,
59
+ ...props,
60
+ ...outerProps
61
+ });
62
+ });
63
+ const useResetCache = length => {
64
+ const resetCacheRef = useRef(null);
65
+ useEffect(() => {
66
+ if (resetCacheRef.current) {
67
+ resetCacheRef.current.resetAfterIndex(0, true);
68
+ }
69
+ }, [length]);
70
+ return resetCacheRef;
71
+ };
72
+ const PickerVirtualizationListBox = forwardRef((props = {}, ref) => {
73
+ const [listHeight, setListHeight] = useState(0);
74
+ const {
75
+ children,
76
+ ...other
77
+ } = props;
78
+ const itemData = Children.toArray(children).flatMap(child => typeof child === "number" || typeof child === "string" ? [child] : [child].concat("children" in child ? Children.toArray(children) : []));
79
+ const sizeMapRef = useRef([]);
80
+ const getListBoxHeight = useCallback(() => {
81
+ const COMBINED_LISTBOX_PADDING = 16;
82
+ if (itemData.length > OVERSCAN_ROW_COUNT) {
83
+ return 9999;
84
+ } else {
85
+ const itemsHeightCalculated = sizeMapRef.current.slice(0, itemData.length - 1).map((_, index) => sizeMapRef.current[index] || 0).reduce((prevItemHeight, nextItemHeight) => prevItemHeight + nextItemHeight, 0);
86
+ return COMBINED_LISTBOX_PADDING + itemsHeightCalculated;
87
+ }
88
+ }, [itemData, sizeMapRef]);
89
+ useEffect(() => {
90
+ if (sizeMapRef.current.length && itemData.length) {
91
+ setListHeight(getListBoxHeight());
92
+ }
93
+ }, [getListBoxHeight, itemData, sizeMapRef]);
94
+ const OVERSCAN_ROW_COUNT = 8;
95
+ const gridRef = useResetCache(itemData.length);
96
+ const setItemSize = useCallback(size => {
97
+ gridRef?.current?.resetAfterIndex(0, true);
98
+ sizeMapRef.current = sizeMapRef.current.concat(size);
99
+ }, [gridRef, sizeMapRef]);
100
+ const getItemSize = useCallback(index => sizeMapRef.current[index] || 45, [sizeMapRef]);
101
+ return _jsx(ListboxContainer, {
102
+ ref: ref,
103
+ children: _jsx(OuterListboxContext.Provider, {
104
+ value: other,
105
+ children: _jsx(VariableSizeList, {
106
+ innerElementType: "ul",
107
+ itemData: itemData,
108
+ itemCount: itemData.length,
109
+ itemSize: getItemSize,
110
+ height: listHeight,
111
+ width: "100%",
112
+ ref: gridRef,
113
+ outerElementType: OuterListboxElementType,
114
+ overscanCount: OVERSCAN_ROW_COUNT,
115
+ children: ({
116
+ data,
117
+ index,
118
+ style
119
+ }) => _jsx(Row, {
120
+ data: data,
121
+ index: index,
122
+ style: style,
123
+ setItemSize: setItemSize
124
+ })
125
+ })
126
+ })
127
+ });
128
+ });
129
+ const MemoizedPickerVirtualizationListBox = memo(PickerVirtualizationListBox);
130
+ MemoizedPickerVirtualizationListBox.displayName = "PickerVirtualizationListBox";
131
+ export { MemoizedPickerVirtualizationListBox as PickerVirtualizationListBox };
132
+ //# sourceMappingURL=PickerVirtualizationListBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PickerVirtualizationListBox.js","names":["Children","createContext","forwardRef","memo","useCallback","useContext","useEffect","useMemo","useRef","useState","VariableSizeList","styled","createElement","_createElement","jsx","_jsx","ListboxContainer","div","width","height","Row","data","index","setItemSize","style","rowRef","current","firstChild","firstElementChild","clientHeight","baseOption","key","props","styles","ref","children","OuterListboxContext","OuterListboxElementType","outerProps","useResetCache","length","resetCacheRef","resetAfterIndex","PickerVirtualizationListBox","listHeight","setListHeight","other","itemData","toArray","flatMap","child","concat","sizeMapRef","getListBoxHeight","COMBINED_LISTBOX_PADDING","OVERSCAN_ROW_COUNT","itemsHeightCalculated","slice","map","_","reduce","prevItemHeight","nextItemHeight","gridRef","size","getItemSize","Provider","value","innerElementType","itemCount","itemSize","outerElementType","overscanCount","MemoizedPickerVirtualizationListBox","displayName"],"sources":["../../../src/labs/OdysseyPickers/PickerVirtualizationListBox.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-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 {\n Children,\n createContext,\n forwardRef,\n memo,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { VariableSizeList, ListChildComponentProps } from \"react-window\";\nimport styled from \"@emotion/styled\";\nimport { AutocompleteProps } from \"@mui/material\";\n\ntype SetItemSize = (size: number) => void;\n\nconst ListboxContainer = styled.div({\n width: \"100%\",\n height: \"100%\",\n});\n\nconst Row = ({\n data,\n index,\n setItemSize,\n style,\n}: ListChildComponentProps & { setItemSize: SetItemSize }) => {\n const rowRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (rowRef.current) {\n /**\n * Checking for child height to workaround a bug where the clientHeight of the row isn't updated correctly\n * @see here if you need to know more: https://github.com/bvaughn/react-window/issues/582#issuecomment-1883074908\n */\n const firstChild = rowRef.current.firstElementChild;\n const height = firstChild\n ? firstChild.clientHeight\n : rowRef.current.clientHeight;\n\n setItemSize(height);\n }\n }, [index, rowRef, setItemSize]);\n\n const baseOption = data[index];\n const { key, props } = baseOption;\n\n /**\n * react-window calculates the absolute positions of the list items, via an inline style, so\n * we need to add it to each list item that is being rendered in the viewable list window.\n * @see here if you need to know more: https://github.com/bvaughn/react-window?tab=readme-ov-file#why-is-my-list-blank-when-i-scroll\n */\n const styles = useMemo(\n () => ({\n ...style,\n height: \"auto\",\n }),\n [style],\n );\n\n return (\n <div ref={rowRef}>\n <li {...props} key={key} style={styles} />\n </div>\n );\n};\n\nconst OuterListboxContext = createContext({});\n\nconst OuterListboxElementType = forwardRef<HTMLDivElement>((props, ref) => {\n const outerProps = useContext(OuterListboxContext);\n return <div ref={ref} {...props} {...outerProps} />;\n});\n\nconst useResetCache = (length: number) => {\n const resetCacheRef = useRef<VariableSizeList>(null);\n useEffect(() => {\n if (resetCacheRef.current) {\n resetCacheRef.current.resetAfterIndex(0, true);\n }\n }, [length]);\n return resetCacheRef;\n};\n\nconst PickerVirtualizationListBox = forwardRef<\n HTMLDivElement,\n AutocompleteProps<undefined, undefined, undefined, undefined>[\"ListboxProps\"]\n>((props = {}, ref) => {\n const [listHeight, setListHeight] = useState(0);\n\n const { children, ...other } = props;\n\n const itemData = Children.toArray(children).flatMap<typeof children>(\n (child) =>\n typeof child === \"number\" || typeof child === \"string\"\n ? [child]\n : [child].concat(\"children\" in child ? Children.toArray(children) : []),\n );\n\n const sizeMapRef = useRef<number[]>([]);\n\n const getListBoxHeight = useCallback(() => {\n // 8px of padding top/bottom applied by MUI\n const COMBINED_LISTBOX_PADDING = 16;\n\n if (itemData.length > OVERSCAN_ROW_COUNT) {\n // has a max-height of 40vh set in CSS. This is only set because height needs to be a number\n return 9999;\n } else {\n const itemsHeightCalculated = sizeMapRef.current\n .slice(0, itemData.length - 1)\n .map((_, index) => sizeMapRef.current[index] || 0)\n .reduce(\n (prevItemHeight, nextItemHeight) => prevItemHeight + nextItemHeight,\n 0,\n );\n return COMBINED_LISTBOX_PADDING + itemsHeightCalculated;\n }\n }, [itemData, sizeMapRef]);\n\n useEffect(() => {\n if (sizeMapRef.current.length && itemData.length) {\n setListHeight(getListBoxHeight());\n }\n }, [getListBoxHeight, itemData, sizeMapRef]);\n\n // The number of items (rows or columns) to render outside of the visible area for performance and scrolling reasons\n const OVERSCAN_ROW_COUNT = 8;\n\n const gridRef = useResetCache(itemData.length);\n\n const setItemSize = useCallback<SetItemSize>(\n (size) => {\n gridRef?.current?.resetAfterIndex(0, true);\n sizeMapRef.current = sizeMapRef.current.concat(size);\n },\n [gridRef, sizeMapRef],\n );\n const getItemSize = useCallback(\n // using 45px as a sane default here to avoid a lot of content shift on repaint\n (index: number) => sizeMapRef.current[index] || 45,\n [sizeMapRef],\n );\n\n return (\n <ListboxContainer ref={ref}>\n <OuterListboxContext.Provider value={other}>\n <VariableSizeList\n innerElementType=\"ul\"\n itemData={itemData}\n itemCount={itemData.length}\n itemSize={getItemSize}\n height={listHeight}\n width=\"100%\"\n ref={gridRef}\n outerElementType={OuterListboxElementType}\n overscanCount={OVERSCAN_ROW_COUNT}\n >\n {({ data, index, style }) => (\n <Row\n data={data}\n index={index}\n style={style}\n setItemSize={setItemSize}\n />\n )}\n </VariableSizeList>\n </OuterListboxContext.Provider>\n </ListboxContainer>\n );\n});\n\nconst MemoizedPickerVirtualizationListBox = memo(PickerVirtualizationListBox);\n\nMemoizedPickerVirtualizationListBox.displayName = \"PickerVirtualizationListBox\";\n\nexport { MemoizedPickerVirtualizationListBox as PickerVirtualizationListBox };\n"],"mappings":"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"}