@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/Drawer.tsx DELETED
@@ -1,255 +0,0 @@
1
- /*!
2
- * Copyright (c) 2024-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 {
14
- memo,
15
- ReactElement,
16
- ReactNode,
17
- useEffect,
18
- useMemo,
19
- useRef,
20
- useState,
21
- } from "react";
22
-
23
- import { Drawer as MuiDrawer } from "@mui/material";
24
- import styled from "@emotion/styled";
25
- import { useTranslation } from "react-i18next";
26
-
27
- import { Button } from "./Buttons/index.js";
28
- import { CloseIcon } from "./icons.generated/index.js";
29
- import {
30
- DesignTokens,
31
- useOdysseyDesignTokens,
32
- } from "./OdysseyDesignTokensContext.js";
33
- import { Heading5 } from "./Typography.js";
34
- import type { HtmlProps } from "./HtmlProps.js";
35
-
36
- export const variantValues = ["temporary", "persistent"] as const;
37
-
38
- export type DrawerProps = {
39
- /**
40
- * An optional Button object to be situated in the Drawerfooter. Should almost always be of variant `primary`.
41
- */
42
- primaryCallToActionComponent?: ReactElement<typeof Button>;
43
- /**
44
- * An optional Button object to be situated in the Drawer footer, alongside the `callToActionPrimaryComponent`.
45
- */
46
- secondaryCallToActionComponent?: ReactElement<typeof Button>;
47
- /**
48
- * An optional Button object to be situated in the Drawer footer, alongside the other two `callToAction` components.
49
- */
50
- tertiaryCallToActionComponent?: ReactElement<typeof Button>;
51
- /**
52
- * The content of the Drawer. May be a `string` or any other `ReactNode` or array of `ReactNode`s.
53
- */
54
- children?: ReactNode;
55
- /**
56
- * When set to `true`, the Drawer will be visible.
57
- */
58
- isOpen?: boolean;
59
- /**
60
- * Callback that controls what happens when the Drawer is dismissed
61
- */
62
- onClose: () => void;
63
- /**
64
- * Shows divider lines separating header, content, and footer (if using action buttons)
65
- */
66
- showDividers: boolean;
67
- /**
68
- * The title of the Drawer
69
- */
70
- title?: string;
71
- /**
72
- * Type of Drawer
73
- */
74
- variant?: (typeof variantValues)[number];
75
- } & Pick<HtmlProps, "ariaLabel" | "testId" | "translate">;
76
-
77
- interface DrawerStyleProps {
78
- odysseyDesignTokens: DesignTokens;
79
- showDividers: boolean;
80
- }
81
- const DrawerHeader = styled("div", {
82
- shouldForwardProp: (prop) => prop !== "odysseyDesignTokens",
83
- })<DrawerStyleProps>`
84
- position: sticky;
85
- top: 0;
86
- display: flex;
87
- justify-content: space-between;
88
- align-items: center;
89
- margin: 0;
90
- padding: ${({ odysseyDesignTokens }) => odysseyDesignTokens.Spacing4}
91
- ${({ odysseyDesignTokens }) => odysseyDesignTokens.Spacing5};
92
- color: ${({ odysseyDesignTokens }) => odysseyDesignTokens.HueNeutral900};
93
- background-color: ${({ odysseyDesignTokens }) =>
94
- odysseyDesignTokens.HueNeutralWhite};
95
- border-bottom: ${({ showDividers, odysseyDesignTokens }) =>
96
- showDividers ? `1px solid ${odysseyDesignTokens.HueNeutral200}` : "none"};
97
- `;
98
-
99
- const DrawerContentWrapper = styled("div", {
100
- shouldForwardProp: (prop) => prop !== "odysseyDesignTokens",
101
- })<{
102
- odysseyDesignTokens: DesignTokens;
103
- }>`
104
- overflow-y: auto;
105
- `;
106
-
107
- const DrawerContent = styled("div", {
108
- shouldForwardProp: (prop) => prop !== "odysseyDesignTokens",
109
- })<DrawerStyleProps>`
110
- padding: ${({ showDividers, odysseyDesignTokens }) =>
111
- showDividers
112
- ? `${odysseyDesignTokens.Spacing5}`
113
- : `0 ${odysseyDesignTokens.Spacing5}`};
114
- `;
115
-
116
- const DrawerFooter = styled("div", {
117
- shouldForwardProp: (prop) => prop !== "odysseyDesignTokens",
118
- })<DrawerStyleProps>`
119
- position: sticky;
120
- bottom: 0;
121
- display: flex;
122
- justify-content: flex-end;
123
- align-items: center;
124
- align-content: center;
125
- padding: ${({ odysseyDesignTokens }) => odysseyDesignTokens.Spacing4};
126
- border-top: ${({ showDividers, odysseyDesignTokens }) =>
127
- showDividers ? `1px solid ${odysseyDesignTokens.HueNeutral200}` : "none"};
128
- background-color: ${({ odysseyDesignTokens }) =>
129
- odysseyDesignTokens.HueNeutralWhite};
130
- `;
131
-
132
- const Drawer = ({
133
- ariaLabel,
134
- children,
135
- isOpen,
136
- onClose,
137
- primaryCallToActionComponent,
138
- secondaryCallToActionComponent,
139
- showDividers = false,
140
- tertiaryCallToActionComponent,
141
- testId,
142
- title,
143
- translate,
144
- variant = "temporary",
145
- }: DrawerProps) => {
146
- const [isContentScrollable, setIsContentScrollable] = useState(false);
147
- const drawerContentRef = useRef<HTMLDivElement>(null);
148
- const odysseyDesignTokens = useOdysseyDesignTokens();
149
-
150
- //If RTL is set in the theme, align the drawer on the left side of the screen, uses right by default.
151
- const { i18n } = useTranslation();
152
- const anchorDirection = i18n.dir() === "rtl" ? "left" : "right";
153
-
154
- useEffect(() => {
155
- let frameId: number;
156
-
157
- const handleContentScroll = () => {
158
- const drawerContentElement = drawerContentRef.current;
159
- if (drawerContentElement) {
160
- cancelAnimationFrame(frameId);
161
- setIsContentScrollable(
162
- drawerContentElement.scrollHeight > drawerContentElement.clientHeight,
163
- );
164
- }
165
- frameId = requestAnimationFrame(handleContentScroll);
166
- };
167
-
168
- if (isOpen) {
169
- frameId = requestAnimationFrame(handleContentScroll);
170
- }
171
-
172
- return () => {
173
- cancelAnimationFrame(frameId);
174
- };
175
- }, [isOpen]);
176
-
177
- const dividersVisible = useMemo(() => {
178
- return showDividers || isContentScrollable;
179
- }, [showDividers, isContentScrollable]);
180
-
181
- const hasFooter = useMemo(
182
- () =>
183
- primaryCallToActionComponent ||
184
- secondaryCallToActionComponent ||
185
- tertiaryCallToActionComponent,
186
- [
187
- primaryCallToActionComponent,
188
- secondaryCallToActionComponent,
189
- tertiaryCallToActionComponent,
190
- ],
191
- );
192
-
193
- return (
194
- <MuiDrawer
195
- data-se={testId}
196
- anchor={anchorDirection}
197
- open={isOpen}
198
- onClose={onClose}
199
- variant={variant}
200
- sx={{
201
- //Overrides defualt MUI inline style
202
- ...(variant === "persistent" && {
203
- "& .MuiDrawer-paper": {
204
- transition: "none",
205
- },
206
- }),
207
- }}
208
- >
209
- <DrawerContentWrapper
210
- {...(isContentScrollable && {
211
- //Sets tabIndex on content element if scrollable so content is easier to navigate with the keyboard
212
- tabIndex: 0,
213
- })}
214
- odysseyDesignTokens={odysseyDesignTokens}
215
- ref={drawerContentRef}
216
- >
217
- <DrawerHeader
218
- translate={translate}
219
- odysseyDesignTokens={odysseyDesignTokens}
220
- showDividers={dividersVisible}
221
- >
222
- <Heading5>{title}</Heading5>
223
- <Button
224
- ariaLabel={ariaLabel}
225
- onClick={onClose}
226
- size="small"
227
- startIcon={<CloseIcon />}
228
- variant="floating"
229
- />
230
- </DrawerHeader>
231
- <DrawerContent
232
- showDividers={dividersVisible}
233
- odysseyDesignTokens={odysseyDesignTokens}
234
- >
235
- {children}
236
- </DrawerContent>
237
- </DrawerContentWrapper>
238
- {hasFooter && (
239
- <DrawerFooter
240
- odysseyDesignTokens={odysseyDesignTokens}
241
- showDividers={dividersVisible}
242
- >
243
- {tertiaryCallToActionComponent}
244
- {secondaryCallToActionComponent}
245
- {primaryCallToActionComponent}
246
- </DrawerFooter>
247
- )}
248
- </MuiDrawer>
249
- );
250
- };
251
-
252
- const MemoizedDrawer = memo(Drawer);
253
- MemoizedDrawer.displayName = "Drawer";
254
-
255
- export { MemoizedDrawer as Drawer };
@@ -1,79 +0,0 @@
1
- /*!
2
- * Copyright (c) 2024-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 { ReactNode, memo } from "react";
14
- import { Heading4, Paragraph } from "./Typography.js";
15
- import { Box } from "./Box.js";
16
- import styled from "@emotion/styled";
17
- import {
18
- useOdysseyDesignTokens,
19
- DesignTokens,
20
- } from "./OdysseyDesignTokensContext.js";
21
-
22
- const EmptyContainer = styled("div", {
23
- shouldForwardProp: (prop) => prop !== "odysseyDesignTokens",
24
- })<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({
25
- display: "flex",
26
- flexDirection: "column",
27
- marginBlock: odysseyDesignTokens.Spacing9,
28
- padding: odysseyDesignTokens.Spacing5,
29
- textAlign: "center",
30
- width: "100%",
31
- alignItems: "center",
32
- }));
33
-
34
- export type EmptyStateProps = {
35
- /**
36
- * Main heading of the empty state
37
- */
38
- heading: string;
39
- /**
40
- * A descriptive text explaining more context as to why we don't have data.
41
- */
42
- description: string;
43
- /**
44
- * Primary call to action
45
- */
46
- PrimaryCallToActionComponent?: ReactNode;
47
- /**
48
- * Secondary call to action
49
- */
50
- SecondaryCallToActionComponent?: ReactNode;
51
- };
52
-
53
- const EmptyState = ({
54
- heading,
55
- description,
56
- PrimaryCallToActionComponent,
57
- SecondaryCallToActionComponent,
58
- }: EmptyStateProps) => {
59
- const odysseyDesignTokens = useOdysseyDesignTokens();
60
-
61
- return (
62
- <EmptyContainer odysseyDesignTokens={odysseyDesignTokens}>
63
- <Heading4>{heading}</Heading4>
64
- <Paragraph>{description}</Paragraph>
65
- {(PrimaryCallToActionComponent || SecondaryCallToActionComponent) && (
66
- <Box sx={{ marginBlockStart: 5 }}>
67
- {SecondaryCallToActionComponent}
68
- {PrimaryCallToActionComponent}
69
- </Box>
70
- )}
71
- </EmptyContainer>
72
- );
73
- };
74
-
75
- const MemoizedEmptyState = memo(EmptyState);
76
- MemoizedEmptyState.displayName = "EmptyState";
77
-
78
- export { MemoizedEmptyState as EmptyState };
79
- export { MemoizedEmptyState as DataTableEmptyState };
@@ -1,56 +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 { List as MuiList, ListItem as MuiListItem } from "@mui/material";
14
- import { useOdysseyDesignTokens } from "./OdysseyDesignTokensContext.js";
15
- import { memo, useMemo } from "react";
16
-
17
- export type ErrorMessageListProps = {
18
- errorMessages: string[];
19
- };
20
-
21
- const listItemStyles = {
22
- display: "list-item",
23
- paddingInlineStart: 0,
24
- };
25
-
26
- const ErrorMessageList = ({ errorMessages }: ErrorMessageListProps) => {
27
- const odysseyDesignTokens = useOdysseyDesignTokens();
28
-
29
- const listStyles = useMemo(
30
- () => ({
31
- listStyle: "disc",
32
- paddingInlineStart: odysseyDesignTokens.Spacing4,
33
- }),
34
- [odysseyDesignTokens],
35
- );
36
-
37
- return (
38
- <MuiList disablePadding dense sx={listStyles}>
39
- {errorMessages.map((errorMessage) => (
40
- <MuiListItem
41
- key={errorMessage}
42
- disablePadding
43
- dense
44
- sx={listItemStyles}
45
- >
46
- {errorMessage}
47
- </MuiListItem>
48
- ))}
49
- </MuiList>
50
- );
51
- };
52
-
53
- const MemoizedErrorMessageList = memo(ErrorMessageList);
54
- MemoizedErrorMessageList.displayName = "ErrorMessageList";
55
-
56
- export { MemoizedErrorMessageList as ErrorMessageList };
package/src/Field.tsx DELETED
@@ -1,189 +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, useMemo } from "react";
14
- import {
15
- FormControl as MuiFormControl,
16
- FormLabel as MuiFormLabel,
17
- } from "@mui/material";
18
- import { FieldComponentProps } from "./FieldComponentProps.js";
19
- import { FieldError } from "./FieldError.js";
20
- import { FieldHint } from "./FieldHint.js";
21
- import { FieldLabel } from "./FieldLabel.js";
22
- import { HtmlProps } from "./HtmlProps.js";
23
- import { Typography } from "./Typography.js";
24
- import { useFieldset } from "./FieldsetContext.js";
25
- import { useTranslation } from "react-i18next";
26
- import { useUniqueId } from "./useUniqueId.js";
27
-
28
- export const fieldTypeValues = ["single", "group"] as const;
29
-
30
- export type RenderFieldComponentProps = {
31
- ariaDescribedBy?: string;
32
- dataSe?: string;
33
- errorMessageElementId?: string;
34
- id: string;
35
- labelElementId: string;
36
- isReadOnly?: boolean;
37
- };
38
-
39
- export type FieldProps = {
40
- /**
41
- * If `error` is not undefined, the `input` will indicate an error.
42
- */
43
- errorMessageList?: string[];
44
- /**
45
- * The field type determines how ARIA components are setup. It's important to use this to denote if you expect only one component (like a text field) or multiple (like a radio group).
46
- */
47
- fieldType: (typeof fieldTypeValues)[number];
48
- /**
49
- * If `true`, the Field label will be shown
50
- */
51
- hasVisibleLabel: boolean;
52
- /**
53
- * Important for narrowing down the `fieldset` role to "radiogroup".
54
- */
55
- isRadioGroup?: boolean;
56
- /**
57
- * Important for determining if children inherit error state
58
- */
59
- isCheckboxGroup?: boolean;
60
- /**
61
- * The label for the `input` element.
62
- */
63
- label: string;
64
- /**
65
- * The short hint displayed in the `input` before the user enters a value.
66
- */
67
- placeholder?: string;
68
- /**
69
- * Render-props function that sends back ARIA props to your field component.
70
- */
71
- renderFieldComponent: ({
72
- ariaDescribedBy,
73
- dataSe,
74
- errorMessageElementId,
75
- id,
76
- labelElementId,
77
- isReadOnly,
78
- }: RenderFieldComponentProps) => ReactElement;
79
- };
80
-
81
- const Field = ({
82
- ariaDescribedBy,
83
- errorMessage,
84
- errorMessageList,
85
- fieldType,
86
- hasVisibleLabel,
87
- hint,
88
- HintLinkComponent,
89
- id: idOverride,
90
- isDisabled: isDisabledProp = false,
91
- isFullWidth = false,
92
- isRadioGroup = false,
93
- isOptional = false,
94
- isReadOnly = false,
95
- label,
96
- renderFieldComponent,
97
- }: FieldProps &
98
- Pick<
99
- FieldComponentProps,
100
- | "errorMessage"
101
- | "errorMessageList"
102
- | "hint"
103
- | "HintLinkComponent"
104
- | "id"
105
- | "isDisabled"
106
- | "isFullWidth"
107
- | "isOptional"
108
- | "isReadOnly"
109
- > &
110
- Pick<HtmlProps, "ariaDescribedBy">) => {
111
- const { t } = useTranslation();
112
-
113
- const id = useUniqueId(idOverride);
114
- const hintId = hint ? `${id}-hint` : undefined;
115
- const errorMessageElementId =
116
- errorMessage || errorMessageList ? `${id}-error` : undefined;
117
- const labelElementId = `${id}-label`;
118
-
119
- const localAriaDescribedBy = useMemo(
120
- () =>
121
- [hintId, errorMessageElementId, ariaDescribedBy].join(" ").trim() ||
122
- undefined,
123
- [ariaDescribedBy, errorMessageElementId, hintId],
124
- );
125
-
126
- const { isDisabled: isFieldsetDisabled } = useFieldset();
127
-
128
- const isDisabled = useMemo(
129
- () => isDisabledProp || isFieldsetDisabled,
130
- [isDisabledProp, isFieldsetDisabled],
131
- );
132
-
133
- return (
134
- <MuiFormControl
135
- component={fieldType === "group" ? "fieldset" : "div"}
136
- disabled={isDisabled}
137
- error={
138
- Boolean(errorMessage) ||
139
- (Array.isArray(errorMessageList) && errorMessageList.length > 0)
140
- }
141
- role={isRadioGroup ? "radiogroup" : undefined}
142
- fullWidth={isFullWidth}
143
- >
144
- {fieldType === "group" ? (
145
- <MuiFormLabel component="legend" id={labelElementId}>
146
- {label}{" "}
147
- {isOptional && label && (
148
- <Typography component="span" color="textSecondary">
149
- ({t("fieldlabel.optional.text")})
150
- </Typography>
151
- )}
152
- </MuiFormLabel>
153
- ) : (
154
- <FieldLabel
155
- hasVisibleLabel={hasVisibleLabel}
156
- id={labelElementId}
157
- inputId={id}
158
- isOptional={isOptional}
159
- text={label}
160
- />
161
- )}
162
-
163
- {hint && (
164
- <FieldHint id={hintId} LinkComponent={HintLinkComponent} text={hint} />
165
- )}
166
-
167
- {renderFieldComponent({
168
- ariaDescribedBy: localAriaDescribedBy,
169
- errorMessageElementId,
170
- id,
171
- labelElementId,
172
- isReadOnly,
173
- })}
174
-
175
- {(errorMessage || errorMessageList) && (
176
- <FieldError
177
- id={errorMessageElementId}
178
- message={errorMessage}
179
- messageList={errorMessageList}
180
- />
181
- )}
182
- </MuiFormControl>
183
- );
184
- };
185
-
186
- const MemoizedField = memo(Field);
187
- MemoizedField.displayName = "Field";
188
-
189
- export { MemoizedField as Field };
@@ -1,66 +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 { ReactElement } from "react";
14
-
15
- import { HintLink } from "./HintLink.js";
16
-
17
- export type FieldComponentProps = {
18
- /**
19
- * If `error` is not undefined, the `input` will indicate an error.
20
- */
21
- errorMessage?: string;
22
- /**
23
- * If `error` is not undefined, the `input` will indicate multiple errors.
24
- */
25
- errorMessageList?: string[];
26
- /**
27
- * The helper text content.
28
- */
29
- hint?: string;
30
- /**
31
- * A `Link` component to provide greater context that is rendered at the end of the `hint` text
32
- */
33
- HintLinkComponent?: ReactElement<typeof HintLink>;
34
- /**
35
- * The id of the `input` element.
36
- */
37
- id?: string;
38
- /**
39
- * If `true`, the component is disabled.
40
- */
41
- isDisabled?: boolean;
42
- /**
43
- * If `true`, the component can stretch to fill the width of the container.
44
- */
45
- isFullWidth?: boolean;
46
- /**
47
- * If `true`, the `input` element is not required.
48
- */
49
- isOptional?: boolean;
50
- /**
51
- * It prevents the user from changing the value of the field
52
- */
53
- isReadOnly?: boolean;
54
- /**
55
- * The name of the `input` element. Defaults to the `id` if not set.
56
- */
57
- name?: string;
58
- };
59
-
60
- export type FieldComponentRenderProps = {
61
- ariaDescribedBy: string;
62
- dataSe: string;
63
- errorMessageElementId: string;
64
- id: string;
65
- labelElementId: string;
66
- };
@@ -1,59 +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 { memo } from "react";
14
- import { FormHelperText } from "@mui/material";
15
- import { useTranslation } from "react-i18next";
16
-
17
- import { Box } from "./Box.js";
18
- import { ErrorMessageList } from "./ErrorMessageList.js";
19
- import type { HtmlProps } from "./HtmlProps.js";
20
- import { ScreenReaderText } from "./ScreenReaderText.js";
21
-
22
- export type FieldErrorProps = {
23
- id?: string;
24
- message?: string;
25
- messageList?: string[];
26
- } & Pick<HtmlProps, "testId" | "translate">;
27
-
28
- const FieldError = ({
29
- id,
30
- message,
31
- messageList,
32
- testId,
33
- translate,
34
- }: FieldErrorProps) => {
35
- const { t } = useTranslation();
36
-
37
- return (
38
- <FormHelperText
39
- component="div"
40
- data-se={testId}
41
- error
42
- id={id}
43
- translate={translate}
44
- >
45
- <ScreenReaderText translate={translate}>{`${t(
46
- "fielderror.screenreader.text",
47
- )}:`}</ScreenReaderText>
48
- <Box>
49
- {message}
50
- {messageList && <ErrorMessageList errorMessages={messageList} />}
51
- </Box>
52
- </FormHelperText>
53
- );
54
- };
55
-
56
- const MemoizedFieldError = memo(FieldError);
57
- MemoizedFieldError.displayName = "FieldError";
58
-
59
- export { MemoizedFieldError as FieldError };