@okta/odyssey-react-mui 1.32.0 → 1.32.4

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 (458) hide show
  1. package/dist/cjs/theme/components.cjs +6 -0
  2. package/dist/cjs/theme/components.cjs.map +1 -1
  3. package/dist/cjs/ui-shell/SideNav/SideNav.cjs +2 -1
  4. package/dist/cjs/ui-shell/SideNav/SideNav.cjs.map +1 -1
  5. package/dist/cjs/ui-shell/SideNav/SideNavItemContent.cjs +36 -11
  6. package/dist/cjs/ui-shell/SideNav/SideNavItemContent.cjs.map +1 -1
  7. package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs +3 -1
  8. package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs.map +1 -1
  9. package/dist/cjs/ui-shell/SideNav/SideNavLogo.cjs +14 -2
  10. package/dist/cjs/ui-shell/SideNav/SideNavLogo.cjs.map +1 -1
  11. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs +1 -1
  12. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs.map +1 -1
  13. package/dist/cjs/ui-shell/SideNav/types.cjs.map +1 -1
  14. package/dist/cjs/ui-shell/UiShellContent.cjs +48 -32
  15. package/dist/cjs/ui-shell/UiShellContent.cjs.map +1 -1
  16. package/dist/cjs/ui-shell/index.cjs +9 -1
  17. package/dist/cjs/ui-shell/index.cjs.map +1 -1
  18. package/dist/cjs/useContrastMode.cjs +1 -1
  19. package/dist/cjs/useContrastMode.cjs.map +1 -1
  20. package/dist/esm/theme/components.js +6 -0
  21. package/dist/esm/theme/components.js.map +1 -1
  22. package/dist/esm/ui-shell/SideNav/SideNav.js +2 -1
  23. package/dist/esm/ui-shell/SideNav/SideNav.js.map +1 -1
  24. package/dist/esm/ui-shell/SideNav/SideNavItemContent.js +37 -12
  25. package/dist/esm/ui-shell/SideNav/SideNavItemContent.js.map +1 -1
  26. package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js +3 -1
  27. package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js.map +1 -1
  28. package/dist/esm/ui-shell/SideNav/SideNavLogo.js +14 -2
  29. package/dist/esm/ui-shell/SideNav/SideNavLogo.js.map +1 -1
  30. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js +1 -1
  31. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js.map +1 -1
  32. package/dist/esm/ui-shell/SideNav/types.js.map +1 -1
  33. package/dist/esm/ui-shell/UiShellContent.js +45 -31
  34. package/dist/esm/ui-shell/UiShellContent.js.map +1 -1
  35. package/dist/esm/ui-shell/index.js +1 -0
  36. package/dist/esm/ui-shell/index.js.map +1 -1
  37. package/dist/esm/useContrastMode.js +2 -2
  38. package/dist/esm/useContrastMode.js.map +1 -1
  39. package/dist/index.cjs +1 -1
  40. package/dist/index.mjs +1 -1
  41. package/dist/index.scss +1 -1
  42. package/dist/tsconfig.production.tsbuildinfo +1 -1
  43. package/dist/types/theme/components.d.ts.map +1 -1
  44. package/dist/types/ui-shell/SideNav/SideNav.d.ts.map +1 -1
  45. package/dist/types/ui-shell/SideNav/SideNavItemContent.d.ts +9 -7
  46. package/dist/types/ui-shell/SideNav/SideNavItemContent.d.ts.map +1 -1
  47. package/dist/types/ui-shell/SideNav/SideNavItemLinkContent.d.ts +1 -1
  48. package/dist/types/ui-shell/SideNav/SideNavItemLinkContent.d.ts.map +1 -1
  49. package/dist/types/ui-shell/SideNav/SideNavLogo.d.ts.map +1 -1
  50. package/dist/types/ui-shell/SideNav/types.d.ts +5 -1
  51. package/dist/types/ui-shell/SideNav/types.d.ts.map +1 -1
  52. package/dist/types/ui-shell/UiShellContent.d.ts +8 -2
  53. package/dist/types/ui-shell/UiShellContent.d.ts.map +1 -1
  54. package/dist/types/ui-shell/index.d.ts +1 -1
  55. package/dist/types/ui-shell/index.d.ts.map +1 -1
  56. package/package.json +4 -4
  57. package/.browserslistrc +0 -1
  58. package/.svgrrc.cjs +0 -13
  59. package/CHANGELOG.md +0 -1490
  60. package/babel.config.cjs +0 -112
  61. package/i18n.config.json +0 -10
  62. package/scripts/generateIconsIndex.ts +0 -49
  63. package/scripts/generateTestSelectorsJson.ts +0 -33
  64. package/scripts/properties-to-ts.ts +0 -111
  65. package/src/@types/i18next.d.ts +0 -24
  66. package/src/@types/properties.d.ts +0 -292
  67. package/src/@types/react-augment.d.ts +0 -22
  68. package/src/Accordion.tsx +0 -117
  69. package/src/Autocomplete.tsx +0 -321
  70. package/src/Badge.tsx +0 -112
  71. package/src/Banner.tsx +0 -112
  72. package/src/Box.tsx +0 -44
  73. package/src/Breadcrumbs.tsx +0 -221
  74. package/src/Buttons/BaseButton.tsx +0 -250
  75. package/src/Buttons/BaseMenuButton.tsx +0 -342
  76. package/src/Buttons/Button.tsx +0 -30
  77. package/src/Buttons/ButtonContext.tsx +0 -23
  78. package/src/Buttons/MenuButton.tsx +0 -33
  79. package/src/Buttons/MenuContext.ts +0 -25
  80. package/src/Buttons/MenuItem.tsx +0 -103
  81. package/src/Buttons/index.ts +0 -25
  82. package/src/Callout.tsx +0 -176
  83. package/src/Card.tsx +0 -186
  84. package/src/Checkbox.tsx +0 -261
  85. package/src/CheckboxGroup.tsx +0 -127
  86. package/src/CircularProgress.tsx +0 -42
  87. package/src/CssBaseline.tsx +0 -20
  88. package/src/DataTable/DataTable.tsx +0 -968
  89. package/src/DataTable/DataTableRowActions.tsx +0 -132
  90. package/src/DataTable/DataTableSettings.tsx +0 -136
  91. package/src/DataTable/constants.ts +0 -13
  92. package/src/DataTable/index.tsx +0 -28
  93. package/src/DataTable/reorderDataRowsLocally.tsx +0 -48
  94. package/src/DataTable/useRowReordering.tsx +0 -232
  95. package/src/DataTable/useScrollIndication.tsx +0 -125
  96. package/src/DatePickers/DateField.tsx +0 -267
  97. package/src/DatePickers/DateFieldActionBar.tsx +0 -65
  98. package/src/DatePickers/DateFieldLocalizationProvider.tsx +0 -46
  99. package/src/DatePickers/DatePicker.test.tsx +0 -66
  100. package/src/DatePickers/DatePicker.tsx +0 -299
  101. package/src/DatePickers/DatePicker.types.d.ts +0 -14
  102. package/src/DatePickers/TimeZonePicker.tsx +0 -59
  103. package/src/DatePickers/datePickerTheme.tsx +0 -377
  104. package/src/DatePickers/index.ts +0 -15
  105. package/src/DatePickers/useDateFieldsTranslations.ts +0 -94
  106. package/src/DatePickers/useOdysseyDateFields.ts +0 -303
  107. package/src/Dialog.tsx +0 -178
  108. package/src/Drawer.tsx +0 -255
  109. package/src/EmptyState.tsx +0 -79
  110. package/src/ErrorMessageList.tsx +0 -56
  111. package/src/Field.tsx +0 -189
  112. package/src/FieldComponentProps.ts +0 -66
  113. package/src/FieldError.tsx +0 -59
  114. package/src/FieldHint.tsx +0 -72
  115. package/src/FieldLabel.tsx +0 -67
  116. package/src/Fieldset.tsx +0 -116
  117. package/src/FieldsetContext.tsx +0 -23
  118. package/src/FileUploader/FileUploadIllustration.tsx +0 -66
  119. package/src/FileUploader/FileUploadPreview.tsx +0 -151
  120. package/src/FileUploader/FileUploader.tsx +0 -311
  121. package/src/FileUploader/index.ts +0 -13
  122. package/src/Form.tsx +0 -185
  123. package/src/FormCheckedProps.ts +0 -59
  124. package/src/HintLink.tsx +0 -28
  125. package/src/HtmlProps.ts +0 -112
  126. package/src/IconWithTooltip.tsx +0 -90
  127. package/src/Link.tsx +0 -115
  128. package/src/MuiPropsChild.tsx +0 -42
  129. package/src/MuiPropsContext.ts +0 -18
  130. package/src/NativeSelect.tsx +0 -249
  131. package/src/NullElement.tsx +0 -13
  132. package/src/OdysseyCacheProvider.test.tsx +0 -39
  133. package/src/OdysseyCacheProvider.tsx +0 -86
  134. package/src/OdysseyDesignTokensContext.tsx +0 -23
  135. package/src/OdysseyProvider.tsx +0 -92
  136. package/src/OdysseyThemeProvider.test.tsx +0 -211
  137. package/src/OdysseyThemeProvider.tsx +0 -109
  138. package/src/OdysseyTranslationProvider.test.tsx +0 -95
  139. package/src/OdysseyTranslationProvider.tsx +0 -77
  140. package/src/OdysseyTranslationProvider.types.ts +0 -47
  141. package/src/Pagination/Pagination.test.tsx +0 -327
  142. package/src/Pagination/Pagination.tsx +0 -417
  143. package/src/Pagination/constants.ts +0 -13
  144. package/src/Pagination/index.ts +0 -15
  145. package/src/Pagination/usePagination.ts +0 -45
  146. package/src/PasswordField.tsx +0 -253
  147. package/src/Radio.tsx +0 -199
  148. package/src/RadioGroup.tsx +0 -164
  149. package/src/ScreenReaderText.tsx +0 -53
  150. package/src/SearchField.tsx +0 -240
  151. package/src/Select.tsx +0 -576
  152. package/src/Stack.tsx +0 -56
  153. package/src/Status.tsx +0 -67
  154. package/src/Surface.tsx +0 -61
  155. package/src/SvgIcon.ts +0 -22
  156. package/src/Switch.tsx +0 -425
  157. package/src/Tabs.tsx +0 -259
  158. package/src/Tag.tsx +0 -317
  159. package/src/TagList.tsx +0 -55
  160. package/src/TagListContext.tsx +0 -23
  161. package/src/TextField.tsx +0 -298
  162. package/src/Toast.tsx +0 -151
  163. package/src/ToastStack.tsx +0 -43
  164. package/src/Tooltip.tsx +0 -61
  165. package/src/Typography.test.tsx +0 -26
  166. package/src/Typography.tsx +0 -474
  167. package/src/createContrastColors.ts +0 -112
  168. package/src/createUniqueAlphabeticalId.test.ts +0 -22
  169. package/src/createUniqueAlphabeticalId.ts +0 -17
  170. package/src/createUniqueId.test.ts +0 -22
  171. package/src/createUniqueId.ts +0 -17
  172. package/src/getTypedObjectKeys.ts +0 -15
  173. package/src/hexToRgb.ts +0 -40
  174. package/src/i18n.ts +0 -110
  175. package/src/icons.generated/Add.tsx +0 -44
  176. package/src/icons.generated/AddCircle.tsx +0 -46
  177. package/src/icons.generated/Apps.tsx +0 -44
  178. package/src/icons.generated/ArrowBottom.tsx +0 -46
  179. package/src/icons.generated/ArrowDown.tsx +0 -46
  180. package/src/icons.generated/ArrowLeft.tsx +0 -46
  181. package/src/icons.generated/ArrowLowerLeft.tsx +0 -46
  182. package/src/icons.generated/ArrowLowerRight.tsx +0 -46
  183. package/src/icons.generated/ArrowRight.tsx +0 -46
  184. package/src/icons.generated/ArrowTop.tsx +0 -46
  185. package/src/icons.generated/ArrowUnsorted.tsx +0 -46
  186. package/src/icons.generated/ArrowUp.tsx +0 -46
  187. package/src/icons.generated/ArrowUpperLeft.tsx +0 -46
  188. package/src/icons.generated/ArrowUpperRight.tsx +0 -46
  189. package/src/icons.generated/Bug.tsx +0 -44
  190. package/src/icons.generated/Calendar.tsx +0 -46
  191. package/src/icons.generated/Call.tsx +0 -44
  192. package/src/icons.generated/Chat.tsx +0 -44
  193. package/src/icons.generated/Check.tsx +0 -44
  194. package/src/icons.generated/CheckCircleFilled.tsx +0 -47
  195. package/src/icons.generated/ChevronDown.tsx +0 -46
  196. package/src/icons.generated/ChevronLeft.tsx +0 -46
  197. package/src/icons.generated/ChevronRight.tsx +0 -46
  198. package/src/icons.generated/ChevronUp.tsx +0 -46
  199. package/src/icons.generated/Clock.tsx +0 -44
  200. package/src/icons.generated/Close.tsx +0 -44
  201. package/src/icons.generated/CloseCircleFilled.tsx +0 -47
  202. package/src/icons.generated/CollapseLeft.tsx +0 -46
  203. package/src/icons.generated/CollapseRight.tsx +0 -46
  204. package/src/icons.generated/Copy.tsx +0 -44
  205. package/src/icons.generated/Custom.tsx +0 -50
  206. package/src/icons.generated/DangerDiamond.tsx +0 -46
  207. package/src/icons.generated/DangerDiamondFilled.tsx +0 -47
  208. package/src/icons.generated/Delete.tsx +0 -44
  209. package/src/icons.generated/Deny.tsx +0 -44
  210. package/src/icons.generated/Devices.tsx +0 -46
  211. package/src/icons.generated/Directory.tsx +0 -46
  212. package/src/icons.generated/Documentation.tsx +0 -46
  213. package/src/icons.generated/Download.tsx +0 -46
  214. package/src/icons.generated/DragIndicator.tsx +0 -46
  215. package/src/icons.generated/Duo.tsx +0 -62
  216. package/src/icons.generated/Edit.tsx +0 -44
  217. package/src/icons.generated/Email.tsx +0 -49
  218. package/src/icons.generated/ExpandLeft.tsx +0 -46
  219. package/src/icons.generated/ExpandRight.tsx +0 -46
  220. package/src/icons.generated/ExternalLink.tsx +0 -44
  221. package/src/icons.generated/Fido2.tsx +0 -72
  222. package/src/icons.generated/Filter.tsx +0 -44
  223. package/src/icons.generated/Folder.tsx +0 -44
  224. package/src/icons.generated/Globe.tsx +0 -44
  225. package/src/icons.generated/GoogleAuth.tsx +0 -70
  226. package/src/icons.generated/Grid.tsx +0 -47
  227. package/src/icons.generated/Group.tsx +0 -44
  228. package/src/icons.generated/Hide.tsx +0 -44
  229. package/src/icons.generated/Home.tsx +0 -44
  230. package/src/icons.generated/Idp.tsx +0 -54
  231. package/src/icons.generated/InformationCircle.tsx +0 -47
  232. package/src/icons.generated/InformationCircleFilled.tsx +0 -47
  233. package/src/icons.generated/Link.tsx +0 -44
  234. package/src/icons.generated/List.tsx +0 -44
  235. package/src/icons.generated/Lock.tsx +0 -44
  236. package/src/icons.generated/More.tsx +0 -44
  237. package/src/icons.generated/Notification.tsx +0 -46
  238. package/src/icons.generated/OktaVerify.tsx +0 -46
  239. package/src/icons.generated/OnPremMfa.tsx +0 -52
  240. package/src/icons.generated/OneTimePassword.tsx +0 -65
  241. package/src/icons.generated/Password.tsx +0 -80
  242. package/src/icons.generated/Pause.tsx +0 -44
  243. package/src/icons.generated/QuestionCircle.tsx +0 -46
  244. package/src/icons.generated/QuestionCircleFilled.tsx +0 -47
  245. package/src/icons.generated/Refresh.tsx +0 -46
  246. package/src/icons.generated/Reset.tsx +0 -44
  247. package/src/icons.generated/Resume.tsx +0 -44
  248. package/src/icons.generated/Search.tsx +0 -44
  249. package/src/icons.generated/SecurityQuestion.tsx +0 -51
  250. package/src/icons.generated/Server.tsx +0 -44
  251. package/src/icons.generated/Settings.tsx +0 -46
  252. package/src/icons.generated/Show.tsx +0 -44
  253. package/src/icons.generated/SmartCard.tsx +0 -65
  254. package/src/icons.generated/Sms.tsx +0 -55
  255. package/src/icons.generated/Subtract.tsx +0 -46
  256. package/src/icons.generated/SymantecVip.tsx +0 -52
  257. package/src/icons.generated/Sync.tsx +0 -44
  258. package/src/icons.generated/ThumbsDown.tsx +0 -46
  259. package/src/icons.generated/ThumbsUp.tsx +0 -46
  260. package/src/icons.generated/Unlock.tsx +0 -44
  261. package/src/icons.generated/Upload.tsx +0 -44
  262. package/src/icons.generated/User.tsx +0 -44
  263. package/src/icons.generated/Video.tsx +0 -44
  264. package/src/icons.generated/VoiceCall.tsx +0 -62
  265. package/src/icons.generated/Warning.tsx +0 -46
  266. package/src/icons.generated/WarningFilled.tsx +0 -46
  267. package/src/icons.generated/Yubikey.tsx +0 -44
  268. package/src/icons.generated/index.ts +0 -107
  269. package/src/index.ts +0 -118
  270. package/src/inputUtils.ts +0 -80
  271. package/src/labs/AppTile.tsx +0 -421
  272. package/src/labs/DataFilters.tsx +0 -871
  273. package/src/labs/DataTable.tsx +0 -877
  274. package/src/labs/DataTablePagination.tsx +0 -88
  275. package/src/labs/DataView/BulkActionsMenu.tsx +0 -98
  276. package/src/labs/DataView/CardLayoutContent.tsx +0 -272
  277. package/src/labs/DataView/DataCard.tsx +0 -357
  278. package/src/labs/DataView/DataTable.tsx +0 -128
  279. package/src/labs/DataView/DataView.test.tsx +0 -1168
  280. package/src/labs/DataView/DataView.tsx +0 -504
  281. package/src/labs/DataView/DetailPanel.tsx +0 -31
  282. package/src/labs/DataView/LayoutSwitcher.tsx +0 -72
  283. package/src/labs/DataView/RowActions.tsx +0 -125
  284. package/src/labs/DataView/TableLayoutContent.tsx +0 -500
  285. package/src/labs/DataView/TableSettings.tsx +0 -144
  286. package/src/labs/DataView/componentTypes.ts +0 -129
  287. package/src/labs/DataView/constants.tsx +0 -28
  288. package/src/labs/DataView/dataTypes.ts +0 -83
  289. package/src/labs/DataView/fetchData.ts +0 -49
  290. package/src/labs/DataView/index.ts +0 -19
  291. package/src/labs/DataView/tableConstants.tsx +0 -137
  292. package/src/labs/DataView/testSupportData.tsx +0 -301
  293. package/src/labs/DataView/useFilterConversion.ts +0 -88
  294. package/src/labs/DatePickers/DateTimeField.tsx +0 -267
  295. package/src/labs/DatePickers/DateTimePicker.test.tsx +0 -70
  296. package/src/labs/DatePickers/DateTimePicker.tsx +0 -303
  297. package/src/labs/DatePickers/dateTimePickerTheme.ts +0 -216
  298. package/src/labs/DatePickers/index.ts +0 -13
  299. package/src/labs/GroupPicker.tsx +0 -261
  300. package/src/labs/OdysseyPickers/ComposablePicker.test.tsx +0 -32
  301. package/src/labs/OdysseyPickers/ComposablePicker.tsx +0 -188
  302. package/src/labs/OdysseyPickers/Picker.tsx +0 -381
  303. package/src/labs/OdysseyPickers/PickerVirtualizationListBox.tsx +0 -192
  304. package/src/labs/OdysseyPickers/PickerWithOptionAdornment.tsx +0 -429
  305. package/src/labs/OdysseyPickers/index.ts +0 -15
  306. package/src/labs/PageTemplate/Layout.tsx +0 -85
  307. package/src/labs/PageTemplate/PageTemplate.tsx +0 -234
  308. package/src/labs/PageTemplate/index.ts +0 -14
  309. package/src/labs/PaginatedTable.tsx +0 -290
  310. package/src/labs/README.md +0 -46
  311. package/src/labs/StaticTable.tsx +0 -131
  312. package/src/labs/UserProfile.tsx +0 -104
  313. package/src/labs/UserProfileMenuButton.tsx +0 -86
  314. package/src/labs/index.ts +0 -47
  315. package/src/labs/materialReactTableTypes.tsx +0 -19
  316. package/src/properties/odyssey-react-mui.properties +0 -140
  317. package/src/properties/translations/odyssey-react-mui_cs.properties +0 -140
  318. package/src/properties/translations/odyssey-react-mui_da.properties +0 -140
  319. package/src/properties/translations/odyssey-react-mui_de.properties +0 -140
  320. package/src/properties/translations/odyssey-react-mui_el.properties +0 -140
  321. package/src/properties/translations/odyssey-react-mui_es.properties +0 -140
  322. package/src/properties/translations/odyssey-react-mui_fi.properties +0 -140
  323. package/src/properties/translations/odyssey-react-mui_fr.properties +0 -140
  324. package/src/properties/translations/odyssey-react-mui_ht.properties +0 -140
  325. package/src/properties/translations/odyssey-react-mui_hu.properties +0 -140
  326. package/src/properties/translations/odyssey-react-mui_id.properties +0 -140
  327. package/src/properties/translations/odyssey-react-mui_it.properties +0 -140
  328. package/src/properties/translations/odyssey-react-mui_ja.properties +0 -140
  329. package/src/properties/translations/odyssey-react-mui_ko.properties +0 -140
  330. package/src/properties/translations/odyssey-react-mui_ms.properties +0 -140
  331. package/src/properties/translations/odyssey-react-mui_nb.properties +0 -140
  332. package/src/properties/translations/odyssey-react-mui_nl_NL.properties +0 -140
  333. package/src/properties/translations/odyssey-react-mui_ok_PL.properties +0 -126
  334. package/src/properties/translations/odyssey-react-mui_ok_SK.properties +0 -126
  335. package/src/properties/translations/odyssey-react-mui_pl.properties +0 -140
  336. package/src/properties/translations/odyssey-react-mui_pt_BR.properties +0 -140
  337. package/src/properties/translations/odyssey-react-mui_ro.properties +0 -140
  338. package/src/properties/translations/odyssey-react-mui_ru.properties +0 -140
  339. package/src/properties/translations/odyssey-react-mui_sv.properties +0 -140
  340. package/src/properties/translations/odyssey-react-mui_th.properties +0 -140
  341. package/src/properties/translations/odyssey-react-mui_tr.properties +0 -140
  342. package/src/properties/translations/odyssey-react-mui_uk.properties +0 -140
  343. package/src/properties/translations/odyssey-react-mui_vi.properties +0 -140
  344. package/src/properties/translations/odyssey-react-mui_zh_CN.properties +0 -140
  345. package/src/properties/translations/odyssey-react-mui_zh_TW.properties +0 -140
  346. package/src/properties/ts/odyssey-react-mui.ts +0 -1
  347. package/src/properties/ts/odyssey-react-mui_cs.ts +0 -1
  348. package/src/properties/ts/odyssey-react-mui_da.ts +0 -1
  349. package/src/properties/ts/odyssey-react-mui_de.ts +0 -1
  350. package/src/properties/ts/odyssey-react-mui_el.ts +0 -1
  351. package/src/properties/ts/odyssey-react-mui_es.ts +0 -1
  352. package/src/properties/ts/odyssey-react-mui_fi.ts +0 -1
  353. package/src/properties/ts/odyssey-react-mui_fr.ts +0 -1
  354. package/src/properties/ts/odyssey-react-mui_ht.ts +0 -1
  355. package/src/properties/ts/odyssey-react-mui_hu.ts +0 -1
  356. package/src/properties/ts/odyssey-react-mui_id.ts +0 -1
  357. package/src/properties/ts/odyssey-react-mui_it.ts +0 -1
  358. package/src/properties/ts/odyssey-react-mui_ja.ts +0 -1
  359. package/src/properties/ts/odyssey-react-mui_ko.ts +0 -1
  360. package/src/properties/ts/odyssey-react-mui_ms.ts +0 -1
  361. package/src/properties/ts/odyssey-react-mui_nb.ts +0 -1
  362. package/src/properties/ts/odyssey-react-mui_nl_NL.ts +0 -1
  363. package/src/properties/ts/odyssey-react-mui_ok_PL.ts +0 -1
  364. package/src/properties/ts/odyssey-react-mui_ok_SK.ts +0 -1
  365. package/src/properties/ts/odyssey-react-mui_pl.ts +0 -1
  366. package/src/properties/ts/odyssey-react-mui_pt_BR.ts +0 -1
  367. package/src/properties/ts/odyssey-react-mui_ro.ts +0 -1
  368. package/src/properties/ts/odyssey-react-mui_ru.ts +0 -1
  369. package/src/properties/ts/odyssey-react-mui_sv.ts +0 -1
  370. package/src/properties/ts/odyssey-react-mui_th.ts +0 -1
  371. package/src/properties/ts/odyssey-react-mui_tr.ts +0 -1
  372. package/src/properties/ts/odyssey-react-mui_uk.ts +0 -1
  373. package/src/properties/ts/odyssey-react-mui_vi.ts +0 -1
  374. package/src/properties/ts/odyssey-react-mui_zh_CN.ts +0 -1
  375. package/src/properties/ts/odyssey-react-mui_zh_TW.ts +0 -1
  376. package/src/remUtils.ts +0 -27
  377. package/src/shadow-dom/index.ts +0 -13
  378. package/src/shadow-dom/shadow-dom.test.ts +0 -24
  379. package/src/shadow-dom/shadow-dom.ts +0 -54
  380. package/src/test-selectors/getByQuerySelector.ts +0 -176
  381. package/src/test-selectors/getComputedAccessibleErrorMessageText.ts +0 -52
  382. package/src/test-selectors/getComputedAccessibleText.ts +0 -36
  383. package/src/test-selectors/index.ts +0 -15
  384. package/src/test-selectors/interpolateString.ts +0 -41
  385. package/src/test-selectors/linkedHtmlSelectors.ts +0 -73
  386. package/src/test-selectors/queryOdysseySelector.ts +0 -36
  387. package/src/test-selectors/querySelector.ts +0 -249
  388. package/src/test-selectors/sanityChecks.ts +0 -53
  389. package/src/test-selectors/testSelector.ts +0 -143
  390. package/src/theme/components.tsx +0 -3275
  391. package/src/theme/components.types.ts +0 -111
  392. package/src/theme/createOdysseyMuiTheme.ts +0 -54
  393. package/src/theme/index.ts +0 -13
  394. package/src/theme/mixins.ts +0 -29
  395. package/src/theme/mixins.types.ts +0 -31
  396. package/src/theme/palette.ts +0 -112
  397. package/src/theme/palette.types.ts +0 -24
  398. package/src/theme/shape.ts +0 -31
  399. package/src/theme/spacing.ts +0 -34
  400. package/src/theme/theme.ts +0 -13
  401. package/src/theme/typography.ts +0 -137
  402. package/src/theme/typography.types.ts +0 -41
  403. package/src/theme/useContrastMode.test.tsx +0 -504
  404. package/src/ui-shell/AppSwitcher/AppSwitcher.tsx +0 -94
  405. package/src/ui-shell/AppSwitcher/AppSwitcherApp.tsx +0 -146
  406. package/src/ui-shell/AppSwitcher/OktaAura.tsx +0 -50
  407. package/src/ui-shell/AppSwitcher/index.ts +0 -13
  408. package/src/ui-shell/SideNav/CollapseIcon.tsx +0 -34
  409. package/src/ui-shell/SideNav/HandleIcon.tsx +0 -35
  410. package/src/ui-shell/SideNav/NavAccordion.tsx +0 -243
  411. package/src/ui-shell/SideNav/OktaLogo.tsx +0 -34
  412. package/src/ui-shell/SideNav/SideNav.test.tsx +0 -326
  413. package/src/ui-shell/SideNav/SideNav.tsx +0 -810
  414. package/src/ui-shell/SideNav/SideNavFooterContent.tsx +0 -85
  415. package/src/ui-shell/SideNav/SideNavHeader.tsx +0 -134
  416. package/src/ui-shell/SideNav/SideNavItemContent.tsx +0 -402
  417. package/src/ui-shell/SideNav/SideNavItemContentContext.tsx +0 -29
  418. package/src/ui-shell/SideNav/SideNavItemLinkContent.tsx +0 -90
  419. package/src/ui-shell/SideNav/SideNavLogo.tsx +0 -65
  420. package/src/ui-shell/SideNav/SideNavToggleButton.tsx +0 -272
  421. package/src/ui-shell/SideNav/SortableList/SortableItem.tsx +0 -237
  422. package/src/ui-shell/SideNav/SortableList/SortableList.tsx +0 -132
  423. package/src/ui-shell/SideNav/SortableList/SortableOverlay.tsx +0 -34
  424. package/src/ui-shell/SideNav/index.ts +0 -16
  425. package/src/ui-shell/SideNav/types.ts +0 -224
  426. package/src/ui-shell/TopNav/TopNav.tsx +0 -109
  427. package/src/ui-shell/TopNav/TopNavLinksList.tsx +0 -68
  428. package/src/ui-shell/TopNav/TopNavListItem.tsx +0 -209
  429. package/src/ui-shell/TopNav/index.ts +0 -13
  430. package/src/ui-shell/UiShell.test.tsx +0 -366
  431. package/src/ui-shell/UiShell.tsx +0 -153
  432. package/src/ui-shell/UiShellContent.tsx +0 -350
  433. package/src/ui-shell/UiShellProvider.tsx +0 -103
  434. package/src/ui-shell/bufferLatest.test.ts +0 -79
  435. package/src/ui-shell/bufferLatest.ts +0 -64
  436. package/src/ui-shell/createMessageBus.test.ts +0 -115
  437. package/src/ui-shell/createMessageBus.ts +0 -53
  438. package/src/ui-shell/createStore.test.ts +0 -103
  439. package/src/ui-shell/createStore.ts +0 -37
  440. package/src/ui-shell/index.ts +0 -21
  441. package/src/ui-shell/renderUiShell.test.tsx +0 -203
  442. package/src/ui-shell/renderUiShell.tsx +0 -158
  443. package/src/ui-shell/useHasUiShell.ts +0 -25
  444. package/src/ui-shell/useScrollState.ts +0 -59
  445. package/src/useAutocomplete.tsx +0 -184
  446. package/src/useContrastMode.tsx +0 -143
  447. package/src/useNormalizedKey.ts +0 -17
  448. package/src/useUniqueAlphabeticalId.ts +0 -21
  449. package/src/useUniqueId.ts +0 -21
  450. package/src/web-component/createReactRootElements.test.ts +0 -40
  451. package/src/web-component/createReactRootElements.ts +0 -39
  452. package/src/web-component/index.ts +0 -13
  453. package/src/web-component/renderReactInWebComponent.test.tsx +0 -128
  454. package/src/web-component/renderReactInWebComponent.ts +0 -135
  455. package/tsconfig.json +0 -16
  456. package/tsconfig.production.json +0 -13
  457. package/vitest.config.ts +0 -36
  458. package/vitest.setup.ts +0 -32
package/src/HtmlProps.ts DELETED
@@ -1,112 +0,0 @@
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 { HTMLAttributes } from "react";
14
-
15
- export type HtmlProps = {
16
- /**
17
- * Used in [ARIA live regions](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions), the global aria-busy state indicates an element is being modified and that assistive technologies may want to wait until the changes are complete before informing the user about the update.
18
- */
19
- ariaBusy?: HTMLAttributes<HTMLElement>["aria-busy"];
20
- /**
21
- * The `aria-checked` attribute indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
22
- *
23
- * NOTE: Where possible use an HTML `<input>` element with `type="checkbox"` and `type="radio"` as these have built in semantics and do not require ARIA attributes.
24
- */
25
- ariaChecked?: HTMLAttributes<HTMLElement>["aria-checked"];
26
- /**
27
- * The global `aria-controls` property identifies the element (or elements) whose contents or presence are controlled by the element on which this attribute is set.
28
- *
29
- * Value: A space-separated list of one or more ID values referencing the elements being controlled by the current element
30
- */
31
- ariaControls?: HTMLAttributes<HTMLElement>["aria-controls"];
32
- /**
33
- * A non-null aria-current state on an element indicates that this element represents the current item within a container or set of related elements.
34
- *
35
- * Value:
36
- *
37
- * `page`
38
- Represents the current page within a set of pages such as the link to the current document in a breadcrumb.
39
-
40
- `step`
41
- Represents the current step within a process such as the current step in an enumerated multi step checkout flow.
42
-
43
- `location`
44
- Represents the current location within an environment or context such as the image that is visually highlighted as the current component of a flow chart.
45
-
46
- `date`
47
- Represents the current date within a collection of dates such as the current date within a calendar.
48
-
49
- `time`
50
- Represents the current time within a set of times such as the current time within a timetable.
51
-
52
- `true`
53
- Represents the current item within a set.
54
-
55
- `false` (default)
56
- Does not represent the current item within a set.
57
- */
58
- ariaCurrent?: HTMLAttributes<HTMLElement>["aria-current"];
59
- /**
60
- * The global `aria-describedby` attribute identifies the element (or elements) that describes the element on which the attribute is set.
61
- *
62
- * Value: The id or space-separated list of element ids that describe the current element.
63
- *
64
- * Note: The `aria-describedby` attribute is not designed to reference descriptions from external resources. It must reference elements in the same DOM document.
65
- */
66
- ariaDescribedBy?: HTMLAttributes<HTMLElement>["aria-describedby"];
67
- /**
68
- * The `aria-errormessage` attribute on an object identifies the element that provides an error message for that object.
69
- *
70
- * Value: The value of the id of the element containing the error message for the current element
71
- */
72
- ariaErrorMessage?: HTMLAttributes<HTMLElement>["aria-errormessage"];
73
- /**
74
- * The `aria-expanded` attribute is set on an element to indicate if a control is expanded or collapsed, and whether or not the controlled elements are displayed or hidden.
75
- */
76
- ariaExpanded?: HTMLAttributes<HTMLElement>["aria-expanded"];
77
- /**
78
- * The `aria-haspopup` attribute indicates the availability and type of interactive popup element that can be triggered by the element on which the attribute is set.
79
- */
80
- ariaHasPopup?: HTMLAttributes<HTMLElement>["aria-haspopup"];
81
- ariaHidden?: HTMLAttributes<HTMLElement>["aria-hidden"];
82
- /**
83
- * The `aria-label` attribute defines a string value that labels an interactive element.
84
- */
85
- ariaLabel?: HTMLAttributes<HTMLElement>["aria-label"];
86
- /**
87
- * The `aria-labelledby` attribute identifies the element (or elements) that labels the element it is applied to.
88
- *
89
- * Value: Space separated list of one or more ID values referencing the elements that label the current element.
90
- */
91
- ariaLabelledBy?: HTMLAttributes<HTMLElement>["aria-labelledby"];
92
- /**
93
- * The `aria-pressed` attribute indicates the current "pressed" state of a toggle button.
94
- */
95
- ariaPressed?: HTMLAttributes<HTMLElement>["aria-pressed"];
96
- /**
97
- * The `tabindex` global attribute allows developers to make HTML elements focusable, allow or prevent them from being sequentially focusable
98
- *
99
- * Note: Manipulating the natural tab order is generally advised against
100
- */
101
- tabIndex?: HTMLAttributes<HTMLElement>["tabIndex"];
102
- /**
103
- * This prop puts a `data` attribute on an HTML element in this component with the value provided.
104
- *
105
- * @deprecated **WARNING:** You should be using Semantic Selectors instead of this property. This is a temporary measure for backwards compatibility with existing Selenium tests.
106
- */
107
- testId?: string;
108
- /**
109
- * This prop puts a `translate` attribute on an HTML element. It should be used to indicate whether text within the element should be translated.
110
- */
111
- translate?: "yes" | "no";
112
- };
@@ -1,90 +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 { memo, ReactNode } from "react";
14
- import styled from "@emotion/styled";
15
- import { Tooltip as MuiTooltip } from "@mui/material";
16
- import type { TooltipProps as MuiTooltipProps } from "@mui/material";
17
-
18
- import { HtmlProps } from "./HtmlProps.js";
19
- import { InformationCircleIcon } from "./icons.generated/index.js";
20
- import { useMuiProps } from "./MuiPropsContext.js";
21
- import {
22
- useOdysseyDesignTokens,
23
- DesignTokens,
24
- } from "./OdysseyDesignTokensContext.js";
25
-
26
- const IconContainer = styled.span<{
27
- odysseyDesignTokens: DesignTokens;
28
- }>(({ odysseyDesignTokens }) => ({
29
- display: "inline-flex",
30
- transitionProperty: "border-color, box-shadow, outline",
31
- transitionDuration: odysseyDesignTokens.TransitionDurationMain,
32
- border: "1px solid transparent",
33
-
34
- "&:focus, &:focus-visible": {
35
- borderColor: odysseyDesignTokens.FocusOutlineColorPrimary,
36
- boxShadow: `0 0 0 1px ${odysseyDesignTokens.FocusOutlineColorPrimary}`,
37
- outline: `${odysseyDesignTokens.FocusOutlineWidthMain} ${odysseyDesignTokens.FocusOutlineStyle} transparent`,
38
- outlineOffset: odysseyDesignTokens.FocusOutlineOffsetTight,
39
- },
40
-
41
- svg: {
42
- display: "flex",
43
- },
44
- }));
45
-
46
- export type IconWithTooltipProps = {
47
- /**
48
- * The icon to render. Defaults to `InformationCircleIcon`
49
- */
50
- IconComponent?: ReactNode;
51
- /**
52
- * The placement of the Tooltip
53
- */
54
- placement?: MuiTooltipProps["placement"];
55
- /**
56
- * The text to display in the Tooltip
57
- */
58
- tooltipText: string;
59
- } & Pick<HtmlProps, "testId" | "translate">;
60
-
61
- const IconWithTooltip = ({
62
- IconComponent = <InformationCircleIcon />,
63
- placement = "right",
64
- testId,
65
- tooltipText,
66
- translate,
67
- }: IconWithTooltipProps) => {
68
- const muiProps = useMuiProps();
69
- const odysseyDesignTokens = useOdysseyDesignTokens();
70
-
71
- return (
72
- <MuiTooltip
73
- data-se={testId}
74
- describeChild
75
- placement={placement}
76
- tabIndex={0}
77
- title={tooltipText}
78
- translate={translate}
79
- >
80
- <IconContainer odysseyDesignTokens={odysseyDesignTokens} {...muiProps}>
81
- {IconComponent}
82
- </IconContainer>
83
- </MuiTooltip>
84
- );
85
- };
86
-
87
- const MemoizedIconWithTooltip = memo(IconWithTooltip);
88
- MemoizedIconWithTooltip.displayName = "IconWithTooltip";
89
-
90
- export { MemoizedIconWithTooltip as IconWithTooltip };
package/src/Link.tsx DELETED
@@ -1,115 +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 { memo, ReactElement, useImperativeHandle, useRef } from "react";
14
- import { ExternalLinkIcon } from "./icons.generated/index.js";
15
- import type { HtmlProps } from "./HtmlProps.js";
16
- import { FocusHandle } from "./inputUtils.js";
17
-
18
- import { Link as MuiLink, LinkProps as MuiLinkProps } from "@mui/material";
19
-
20
- export const linkVariantValues = ["default", "monochrome"] as const;
21
-
22
- export type LinkProps = {
23
- /**
24
- * The content within the Link
25
- */
26
- children: React.ReactNode;
27
- /**
28
- * The Link destination
29
- */
30
- href: string;
31
- /**
32
- * An optional Icon component at the start of the Link
33
- */
34
- icon?: ReactElement;
35
- /**
36
- * The ref forwarded to the TextField
37
- */
38
- linkRef?: React.RefObject<FocusHandle>;
39
- /**
40
- * The click event handler for the Link
41
- */
42
- onClick?: MuiLinkProps["onClick"];
43
- /**
44
- * The rel attribute defines the relationship between a linked resource and the current document
45
- *
46
- * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel
47
- */
48
- rel?: string;
49
- /**
50
- * The HTML `target` attribute for the Link
51
- */
52
- target?:
53
- | "_self"
54
- | "_blank"
55
- | "_parent"
56
- | "_top"
57
- | (string & NonNullable<unknown>);
58
- /**
59
- * The visual presentation of the Link (default or monochrome)
60
- */
61
- variant?: (typeof linkVariantValues)[number];
62
- } & Pick<HtmlProps, "ariaLabel" | "testId" | "translate">;
63
-
64
- const Link = ({
65
- ariaLabel,
66
- children,
67
- href,
68
- icon,
69
- linkRef,
70
- rel,
71
- target,
72
- testId,
73
- translate,
74
- variant,
75
- onClick,
76
- }: LinkProps) => {
77
- const localLinkRef = useRef<HTMLAnchorElement>(null);
78
- useImperativeHandle(linkRef, () => {
79
- return {
80
- focus: () => {
81
- localLinkRef.current?.focus();
82
- },
83
- };
84
- }, []);
85
-
86
- return (
87
- <MuiLink
88
- aria-label={ariaLabel}
89
- data-se={testId}
90
- href={href}
91
- ref={localLinkRef}
92
- rel={rel}
93
- target={target}
94
- translate={translate}
95
- variant={variant}
96
- onClick={onClick}
97
- >
98
- {icon && <span className="Link-icon">{icon}</span>}
99
-
100
- {children}
101
-
102
- {target === "_blank" && (
103
- <span className="Link-indicator" role="presentation">
104
- <ExternalLinkIcon />
105
- </span>
106
- )}
107
- </MuiLink>
108
- );
109
- };
110
-
111
- const MemoizedLink = memo(Link);
112
-
113
- MemoizedLink.displayName = "Link";
114
-
115
- export { MemoizedLink as Link };
@@ -1,42 +0,0 @@
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 { forwardRef, memo, ReactNode, useMemo } from "react";
14
-
15
- import { MuiPropsContext, MuiPropsContextType } from "./MuiPropsContext.js";
16
-
17
- export type MuiPropsChildProps = {
18
- children: ReactNode;
19
- };
20
-
21
- const MuiPropsChild = forwardRef<HTMLElement, MuiPropsChildProps>(
22
- ({ children, ...muiProps }, ref) => {
23
- const providerValue = useMemo<MuiPropsContextType>(
24
- () => ({
25
- ...muiProps,
26
- ref,
27
- }),
28
- [muiProps, ref],
29
- );
30
-
31
- return (
32
- <MuiPropsContext.Provider value={providerValue}>
33
- {children}
34
- </MuiPropsContext.Provider>
35
- );
36
- },
37
- );
38
-
39
- const MemoizedMuiPropsChild = memo(MuiPropsChild);
40
- MemoizedMuiPropsChild.displayName = "MuiPropsChild";
41
-
42
- export { MemoizedMuiPropsChild as MuiPropsChild };
@@ -1,18 +0,0 @@
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 { createContext, useContext } from "react";
14
-
15
- export type MuiPropsContextType = Record<string, unknown>;
16
- export const MuiPropsContext = createContext<MuiPropsContextType>({});
17
-
18
- export const useMuiProps = () => useContext(MuiPropsContext);
@@ -1,249 +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 React, {
14
- InputHTMLAttributes,
15
- ReactElement,
16
- forwardRef,
17
- memo,
18
- useCallback,
19
- useImperativeHandle,
20
- useMemo,
21
- useRef,
22
- } from "react";
23
- import {
24
- Select as MuiSelect,
25
- SelectProps as MuiSelectProps,
26
- } from "@mui/material";
27
- import { Field } from "./Field.js";
28
- import {
29
- FieldComponentProps,
30
- FieldComponentRenderProps,
31
- } from "./FieldComponentProps.js";
32
- import type { HtmlProps } from "./HtmlProps.js";
33
- import { FocusHandle, getControlState, useInputValues } from "./inputUtils.js";
34
-
35
- export type NativeSelectOption = {
36
- text: string;
37
- value?: string;
38
- type?: "heading" | "option";
39
- };
40
-
41
- export type NativeSelectValueType<HasMultipleChoices> =
42
- HasMultipleChoices extends true ? string[] : string;
43
-
44
- export type NativeSelectProps<
45
- Value extends NativeSelectValueType<HasMultipleChoices>,
46
- HasMultipleChoices extends boolean,
47
- > = {
48
- /**
49
- * This prop helps users to fill forms faster, especially on mobile devices.
50
- * The name can be confusing, as it's more like an autofill.
51
- * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill
52
- */
53
- autoCompleteType?: InputHTMLAttributes<HTMLInputElement>["autoComplete"];
54
- /**
55
- * The options or optgroup elements within the NativeSelect
56
- */
57
- children?: ReactElement<"option"> | ReactElement<"optgroup">;
58
- /**
59
- * The default value of the NativeSelect. Use when component is uncontrolled
60
- */
61
- defaultValue?: Value;
62
- /**
63
- * If `true`, the Select allows multiple selections
64
- */
65
- hasMultipleChoices?: HasMultipleChoices;
66
- /**
67
- * The ref forwarded to the NativeSelect
68
- */
69
- inputRef?: React.RefObject<FocusHandle>;
70
- /**
71
- * @deprecated Use `hasMultipleChoices` instead
72
- */
73
- /** **Deprecated:** use `hasMultipleChoices` */
74
- isMultiSelect?: HasMultipleChoices;
75
- /**
76
- * The label text for the NativeSelect
77
- */
78
- label: string;
79
- /**
80
- * Callback fired when the NativeSelect loses focus
81
- */
82
- onBlur?: MuiSelectProps<Value>["onBlur"];
83
- /**
84
- * Callback fired when the value of the NativeSelect changes
85
- */
86
- onChange?: MuiSelectProps<Value>["onChange"];
87
- /**
88
- * Callback fired when the NativeSelect gains focus
89
- */
90
- onFocus?: MuiSelectProps<Value>["onFocus"];
91
- options: Value;
92
- /**
93
- * The value or values selected in the NativeSelect. Use when component is controlled
94
- */
95
- value?: Value;
96
- } & Pick<
97
- FieldComponentProps,
98
- | "errorMessage"
99
- | "errorMessageList"
100
- | "hint"
101
- | "HintLinkComponent"
102
- | "id"
103
- | "isDisabled"
104
- | "isFullWidth"
105
- | "isOptional"
106
- > &
107
- Pick<HtmlProps, "ariaDescribedBy" | "testId" | "translate">;
108
-
109
- type NativeSelectRenderProps = Partial<
110
- Pick<FieldComponentRenderProps, "ariaDescribedBy" | "errorMessageElementId">
111
- > &
112
- Pick<FieldComponentRenderProps, "labelElementId">;
113
-
114
- const NativeSelect = forwardRef(
115
- <
116
- Value extends NativeSelectValueType<HasMultipleChoices>,
117
- HasMultipleChoices extends boolean,
118
- >(
119
- {
120
- ariaDescribedBy,
121
- autoCompleteType,
122
- defaultValue,
123
- errorMessage,
124
- errorMessageList,
125
- hasMultipleChoices: hasMultipleChoicesProp,
126
- hint,
127
- HintLinkComponent,
128
- id: idOverride,
129
- inputRef,
130
- isDisabled = false,
131
- isFullWidth = false,
132
- isMultiSelect,
133
- isOptional = false,
134
- label,
135
- onBlur,
136
- onChange: onChangeProp,
137
- onFocus,
138
- testId,
139
- translate,
140
- value,
141
- children,
142
- }: NativeSelectProps<Value, HasMultipleChoices>,
143
- ref?: React.Ref<ReactElement>,
144
- ) => {
145
- const controlledStateRef = useRef(
146
- getControlState({
147
- controlledValue: value,
148
- uncontrolledValue: defaultValue,
149
- }),
150
- );
151
- const localInputRef = useRef<HTMLSelectElement>(null);
152
-
153
- useImperativeHandle(inputRef, () => {
154
- return {
155
- focus: () => {
156
- localInputRef.current?.focus();
157
- },
158
- };
159
- }, []);
160
-
161
- const inputValues = useInputValues({
162
- defaultValue,
163
- value,
164
- controlState: controlledStateRef.current,
165
- });
166
-
167
- const onChange = useCallback<
168
- NonNullable<MuiSelectProps<Value>["onChange"]>
169
- >(
170
- (event, child) => {
171
- onChangeProp?.(event, child);
172
- },
173
- [onChangeProp],
174
- );
175
-
176
- const hasMultipleChoices = useMemo(
177
- () =>
178
- hasMultipleChoicesProp === undefined
179
- ? isMultiSelect
180
- : hasMultipleChoicesProp,
181
- [hasMultipleChoicesProp, isMultiSelect],
182
- );
183
- const renderFieldComponent = useCallback(
184
- ({
185
- ariaDescribedBy,
186
- errorMessageElementId,
187
- labelElementId,
188
- }: NativeSelectRenderProps) => (
189
- <MuiSelect
190
- {...inputValues}
191
- aria-describedby={ariaDescribedBy}
192
- autoComplete={autoCompleteType}
193
- children={children}
194
- id={idOverride}
195
- inputProps={{
196
- "aria-errormessage": errorMessageElementId,
197
- "aria-labelledby": labelElementId,
198
- "data-se": testId,
199
- }}
200
- inputRef={localInputRef}
201
- name={idOverride}
202
- multiple={hasMultipleChoices}
203
- native={true}
204
- onBlur={onBlur}
205
- onChange={onChange}
206
- onFocus={onFocus}
207
- ref={ref}
208
- translate={translate}
209
- />
210
- ),
211
- [
212
- autoCompleteType,
213
- children,
214
- idOverride,
215
- inputValues,
216
- hasMultipleChoices,
217
- onBlur,
218
- onChange,
219
- onFocus,
220
- ref,
221
- testId,
222
- translate,
223
- ],
224
- );
225
-
226
- return (
227
- <Field
228
- ariaDescribedBy={ariaDescribedBy}
229
- errorMessage={errorMessage}
230
- errorMessageList={errorMessageList}
231
- fieldType="single"
232
- hasVisibleLabel
233
- hint={hint}
234
- HintLinkComponent={HintLinkComponent}
235
- id={idOverride}
236
- isDisabled={isDisabled}
237
- isFullWidth={isFullWidth}
238
- isOptional={isOptional}
239
- label={label}
240
- renderFieldComponent={renderFieldComponent}
241
- />
242
- );
243
- },
244
- );
245
-
246
- const MemoizedNativeSelect = memo(NativeSelect);
247
- MemoizedNativeSelect.displayName = "NativeSelect";
248
-
249
- export { MemoizedNativeSelect as NativeSelect };
@@ -1,13 +0,0 @@
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
- export type NullElement = false | null | undefined;
@@ -1,39 +0,0 @@
1
- /*!
2
- * Copyright (c) 2021-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 { render, screen } from "@testing-library/react";
14
- import "@testing-library/jest-dom";
15
- import { Button } from "./index.js";
16
- import { OdysseyCacheProvider } from "./OdysseyCacheProvider.js";
17
-
18
- // This component needs to be tested, even if it doesn't make much sense, because it can't be loaded by Storybook; therefore, any issues will only be seen by consumers of Odyssey.
19
- describe("OdysseyCacheProvider", () => {
20
- it("renders without crashing the app", () => {
21
- expect(() =>
22
- render(
23
- <OdysseyCacheProvider>
24
- <div />
25
- </OdysseyCacheProvider>,
26
- ),
27
- ).not.toThrow();
28
- });
29
-
30
- it("themes a Button", () => {
31
- render(
32
- <OdysseyCacheProvider>
33
- <Button label="text" variant="primary" />
34
- </OdysseyCacheProvider>,
35
- );
36
-
37
- expect(screen.queryByRole("button")).toHaveTextContent("text");
38
- });
39
- });