@okta/okta-signin-widget 7.16.0 → 7.16.1

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 (246) hide show
  1. package/README.md +5 -5
  2. package/dist/css/fonts.css +172 -0
  3. package/dist/css/okta-sign-in.next.css +1 -240
  4. package/dist/css/okta-sign-in.next.css.map +1 -1
  5. package/dist/esm/src/config/config.json.js +1 -1
  6. package/dist/js/okta-sign-in.classic.js +1 -1
  7. package/dist/js/okta-sign-in.classic.min.js +1 -1
  8. package/dist/js/okta-sign-in.js +1 -1
  9. package/dist/js/okta-sign-in.min.js +1 -1
  10. package/dist/js/okta-sign-in.next.js +61 -19
  11. package/dist/js/okta-sign-in.next.js.map +1 -1
  12. package/dist/js/okta-sign-in.next.no-polyfill.js +60 -18
  13. package/dist/js/okta-sign-in.next.no-polyfill.js.map +1 -1
  14. package/dist/js/okta-sign-in.no-polyfill.min.js +1 -1
  15. package/dist/js/okta-sign-in.oie.js +1 -1
  16. package/dist/js/okta-sign-in.oie.min.js +1 -1
  17. package/package.json +10 -5
  18. package/src/config/config.json +1 -1
  19. package/src/v3/components/AuthCoin/AuthCoin.tsx +15 -17
  20. package/src/v3/components/AuthContainer/AuthContainer.tsx +11 -17
  21. package/src/v3/components/AuthContent/AuthContent.tsx +21 -16
  22. package/src/v3/components/AuthHeader/AuthHeader.tsx +18 -19
  23. package/src/v3/components/AuthenticatorButton/AuthenticatorButton.tsx +116 -77
  24. package/src/v3/components/AuthenticatorButton/AuthenticatorButtonList.tsx +9 -3
  25. package/src/v3/components/Button/Button.tsx +16 -20
  26. package/src/v3/components/CaptchaContainer/CaptchaContainer.tsx +1 -1
  27. package/src/v3/components/Checkbox/Checkbox.tsx +33 -82
  28. package/src/v3/components/ConsentHeader/ConsentHeader.tsx +23 -23
  29. package/src/v3/components/Divider/Divider.tsx +2 -2
  30. package/src/v3/components/Form/Accordion.tsx +15 -36
  31. package/src/v3/components/Form/ElementContainer.tsx +6 -3
  32. package/src/v3/components/Form/Form.tsx +2 -4
  33. package/src/v3/components/Form/Layout.tsx +1 -1
  34. package/src/v3/components/Form/LayoutContainer.tsx +4 -2
  35. package/src/v3/components/Heading/Heading.tsx +7 -5
  36. package/src/v3/components/Icon/CustomAppIcon.tsx +13 -15
  37. package/src/v3/components/Icon/CustomOTPIcon.tsx +5 -10
  38. package/src/v3/components/Icon/DuoIcon.tsx +5 -10
  39. package/src/v3/components/Icon/EmailIcon.tsx +5 -10
  40. package/src/v3/components/Icon/GoogleOTPIcon.tsx +5 -10
  41. package/src/v3/components/Icon/IDPIcon.tsx +5 -10
  42. package/src/v3/components/Icon/OktaVerifyIcon.tsx +0 -7
  43. package/src/v3/components/Icon/OnPremMFAIcon.tsx +5 -10
  44. package/src/v3/components/Icon/PasswordIcon.tsx +5 -10
  45. package/src/v3/components/Icon/PhoneIcon.tsx +5 -10
  46. package/src/v3/components/Icon/RSAIcon.tsx +6 -11
  47. package/src/v3/components/Icon/SecurityKeyOrBiometricsIcon.tsx +5 -10
  48. package/src/v3/components/Icon/SecurityQuestionIcon.tsx +5 -10
  49. package/src/v3/components/Icon/SmartCardIcon.tsx +5 -10
  50. package/src/v3/components/Icon/SymantecIcon.tsx +5 -10
  51. package/src/v3/components/Icon/YubiKeyIcon.tsx +5 -10
  52. package/src/v3/components/Icon/index.tsx +0 -2
  53. package/src/v3/components/IdentifierContainer/IdentifierContainer.tsx +31 -47
  54. package/src/v3/components/Image/Image.tsx +42 -0
  55. package/src/v3/{src/components/CustomPluginsOdysseyCacheProvider → components/Image}/index.tsx +2 -2
  56. package/src/v3/components/ImageWithText/ImageWithText.tsx +7 -4
  57. package/src/v3/components/Images/AppIcon.tsx +16 -46
  58. package/src/v3/components/Images/DeviceIcon.tsx +16 -32
  59. package/src/v3/components/Images/LocationIcon.tsx +16 -26
  60. package/src/v3/components/Images/PhoneIcon.tsx +34 -29
  61. package/src/v3/components/Images/YubikeyDemoImage.tsx +32 -27
  62. package/src/v3/components/Images/index.tsx +0 -1
  63. package/src/v3/components/InfoBox/InfoBox.tsx +12 -12
  64. package/src/v3/components/InfoSection/InfoSection.tsx +20 -14
  65. package/src/v3/components/InformationalText/InformationalText.tsx +16 -6
  66. package/src/v3/components/InputPassword/InputPassword.tsx +31 -164
  67. package/src/v3/components/InputText/InputText.tsx +27 -103
  68. package/src/v3/components/LaunchAuthenticatorButton/LaunchAuthenticatorButton.tsx +14 -26
  69. package/src/v3/components/Link/Link.tsx +8 -20
  70. package/src/v3/components/List/List.tsx +16 -12
  71. package/src/v3/components/PIVButton/PIVButton.tsx +10 -8
  72. package/src/v3/components/PasswordRequirements/Icon.tsx +17 -23
  73. package/src/v3/components/PasswordRequirements/PasswordMatches.tsx +9 -2
  74. package/src/v3/components/PasswordRequirements/PasswordRequirementListItem.tsx +6 -5
  75. package/src/v3/components/PasswordRequirements/PasswordRequirements.tsx +5 -3
  76. package/src/v3/components/PhoneAuthenticator/PhoneAuthenticator.tsx +53 -137
  77. package/src/v3/components/QRCode/QRCode.tsx +27 -20
  78. package/src/v3/components/Radio/Radio.tsx +31 -93
  79. package/src/v3/components/ReminderPrompt/ReminderPrompt.tsx +9 -12
  80. package/src/v3/components/Select/Select.tsx +45 -92
  81. package/src/v3/components/Spinner/Spinner.tsx +6 -8
  82. package/src/v3/components/StepperButton/StepperButton.tsx +6 -10
  83. package/src/v3/components/StepperLink/StepperLink.tsx +1 -1
  84. package/src/v3/components/StepperRadio/StepperRadio.tsx +22 -43
  85. package/src/v3/components/TextWithActionLink/TextWithActionLink.tsx +1 -1
  86. package/src/v3/components/Title/Title.tsx +5 -9
  87. package/src/v3/components/WebAuthNSubmitButton/WebAuthNSubmitButton.tsx +10 -9
  88. package/src/v3/components/Widget/GlobalStyles.tsx +16 -21
  89. package/src/v3/components/Widget/index.tsx +51 -36
  90. package/src/v3/components/Widget/style.scss +295 -0
  91. package/src/v3/components/WidgetMessageContainer/WidgetMessageContainer.tsx +11 -8
  92. package/src/v3/components/hocs/withFormValidationState.tsx +2 -5
  93. package/src/v3/jest.config.js +1 -0
  94. package/src/v3/jest.setup.js +1 -0
  95. package/src/v3/package.json +11 -7
  96. package/src/v3/screenshots/base/UI_demo/UI_demo_RTL_VRT.png +0 -0
  97. package/src/v3/screenshots/base/UI_demo/UI_demo_VRT.png +0 -0
  98. package/src/v3/src/components/AuthCoin/AuthCoin.tsx +15 -17
  99. package/src/v3/src/components/AuthCoin/__snapshots__/AuthCoin.test.tsx.snap +20 -47
  100. package/src/v3/src/components/AuthContainer/AuthContainer.tsx +11 -17
  101. package/src/v3/src/components/AuthContent/AuthContent.tsx +21 -16
  102. package/src/v3/src/components/AuthHeader/AuthHeader.tsx +18 -19
  103. package/src/v3/src/components/AuthenticatorButton/AuthenticatorButton.tsx +116 -77
  104. package/src/v3/src/components/AuthenticatorButton/AuthenticatorButtonList.tsx +9 -3
  105. package/src/v3/src/components/Button/Button.tsx +16 -20
  106. package/src/v3/src/components/CaptchaContainer/CaptchaContainer.tsx +1 -1
  107. package/src/v3/src/components/Checkbox/Checkbox.tsx +33 -82
  108. package/src/v3/src/components/ConsentHeader/ConsentHeader.tsx +23 -23
  109. package/src/v3/src/components/Divider/Divider.tsx +2 -2
  110. package/src/v3/src/components/Form/Accordion.tsx +15 -36
  111. package/src/v3/src/components/Form/ElementContainer.tsx +6 -3
  112. package/src/v3/src/components/Form/Form.tsx +2 -4
  113. package/src/v3/src/components/Form/Layout.tsx +1 -1
  114. package/src/v3/src/components/Form/LayoutContainer.tsx +4 -2
  115. package/src/v3/src/components/Heading/Heading.tsx +7 -5
  116. package/src/v3/src/components/Icon/CustomAppIcon.tsx +13 -15
  117. package/src/v3/src/components/Icon/CustomOTPIcon.tsx +5 -10
  118. package/src/v3/src/components/Icon/DuoIcon.tsx +5 -10
  119. package/src/v3/src/components/Icon/EmailIcon.tsx +5 -10
  120. package/src/v3/src/components/Icon/GoogleOTPIcon.tsx +5 -10
  121. package/src/v3/src/components/Icon/IDPIcon.tsx +5 -10
  122. package/src/v3/src/components/Icon/OktaVerifyIcon.tsx +0 -7
  123. package/src/v3/src/components/Icon/OnPremMFAIcon.tsx +5 -10
  124. package/src/v3/src/components/Icon/PasswordIcon.tsx +5 -10
  125. package/src/v3/src/components/Icon/PhoneIcon.tsx +5 -10
  126. package/src/v3/src/components/Icon/RSAIcon.tsx +6 -11
  127. package/src/v3/src/components/Icon/SecurityKeyOrBiometricsIcon.tsx +5 -10
  128. package/src/v3/src/components/Icon/SecurityQuestionIcon.tsx +5 -10
  129. package/src/v3/src/components/Icon/SmartCardIcon.tsx +5 -10
  130. package/src/v3/src/components/Icon/SymantecIcon.tsx +5 -10
  131. package/src/v3/src/components/Icon/YubiKeyIcon.tsx +5 -10
  132. package/src/v3/src/components/Icon/index.tsx +0 -2
  133. package/src/v3/src/components/IdentifierContainer/IdentifierContainer.tsx +31 -47
  134. package/src/v3/src/components/Image/Image.tsx +42 -0
  135. package/src/v3/{components/CustomPluginsOdysseyCacheProvider → src/components/Image}/index.tsx +2 -2
  136. package/src/v3/src/components/ImageWithText/ImageWithText.tsx +7 -4
  137. package/src/v3/src/components/Images/AppIcon.tsx +16 -46
  138. package/src/v3/src/components/Images/DeviceIcon.tsx +16 -32
  139. package/src/v3/src/components/Images/LocationIcon.tsx +16 -26
  140. package/src/v3/src/components/Images/PhoneIcon.tsx +34 -29
  141. package/src/v3/src/components/Images/YubikeyDemoImage.tsx +32 -27
  142. package/src/v3/src/components/Images/index.tsx +0 -1
  143. package/src/v3/src/components/InfoBox/InfoBox.tsx +12 -12
  144. package/src/v3/src/components/InfoSection/InfoSection.tsx +20 -14
  145. package/src/v3/src/components/InformationalText/InformationalText.tsx +16 -6
  146. package/src/v3/src/components/InputPassword/InputPassword.tsx +31 -164
  147. package/src/v3/src/components/InputText/InputText.tsx +27 -103
  148. package/src/v3/src/components/LaunchAuthenticatorButton/LaunchAuthenticatorButton.tsx +14 -26
  149. package/src/v3/src/components/Link/Link.tsx +8 -20
  150. package/src/v3/src/components/List/List.tsx +16 -12
  151. package/src/v3/src/components/PIVButton/PIVButton.tsx +10 -8
  152. package/src/v3/src/components/PasswordRequirements/Icon.tsx +17 -23
  153. package/src/v3/src/components/PasswordRequirements/PasswordMatches.tsx +9 -2
  154. package/src/v3/src/components/PasswordRequirements/PasswordRequirementListItem.tsx +6 -5
  155. package/src/v3/src/components/PasswordRequirements/PasswordRequirements.tsx +5 -3
  156. package/src/v3/src/components/PhoneAuthenticator/PhoneAuthenticator.tsx +53 -137
  157. package/src/v3/src/components/QRCode/QRCode.tsx +27 -20
  158. package/src/v3/src/components/Radio/Radio.tsx +31 -93
  159. package/src/v3/src/components/ReminderPrompt/ReminderPrompt.tsx +9 -12
  160. package/src/v3/src/components/ReminderPrompt/__snapshots__/ReminderPrompt.test.tsx.snap +37 -17
  161. package/src/v3/src/components/Select/Select.tsx +45 -92
  162. package/src/v3/src/components/Spinner/Spinner.tsx +6 -8
  163. package/src/v3/src/components/StepperButton/StepperButton.tsx +6 -10
  164. package/src/v3/src/components/StepperLink/StepperLink.tsx +1 -1
  165. package/src/v3/src/components/StepperRadio/StepperRadio.tsx +22 -43
  166. package/src/v3/src/components/TextWithActionLink/TextWithActionLink.tsx +1 -1
  167. package/src/v3/src/components/Title/Title.tsx +5 -9
  168. package/src/v3/src/components/WebAuthNSubmitButton/WebAuthNSubmitButton.tsx +10 -9
  169. package/src/v3/src/components/Widget/GlobalStyles.tsx +16 -21
  170. package/src/v3/src/components/Widget/index.tsx +51 -36
  171. package/src/v3/src/components/Widget/style.scss +295 -0
  172. package/src/v3/src/components/WidgetMessageContainer/WidgetMessageContainer.tsx +11 -8
  173. package/src/v3/src/components/hocs/withFormValidationState.tsx +2 -5
  174. package/src/v3/src/transformer/button/__snapshots__/transformIDPButtons.test.ts.snap +0 -2
  175. package/src/v3/src/transformer/i18n/__snapshots__/transformAuthenticatorButton.test.ts.snap +4 -4
  176. package/src/v3/src/transformer/i18n/transformAuthenticatorButton.test.ts +3 -3
  177. package/src/v3/src/transformer/i18n/transformAuthenticatorButton.ts +18 -2
  178. package/src/v3/src/transformer/layout/development/transformEnumerateComponents.ts +72 -5
  179. package/src/v3/src/transformer/layout/idp/__snapshots__/transformIdpRedirect.test.ts.snap +4 -4
  180. package/src/v3/src/transformer/selectAuthenticator/__snapshots__/transformSelectAuthenticatorVerify.test.ts.snap +0 -3
  181. package/src/v3/src/transformer/selectAuthenticator/__snapshots__/transformSelectOVCustomAppMethodVerify.test.ts.snap +0 -1
  182. package/src/v3/src/transformer/selectAuthenticator/__snapshots__/utils.test.ts.snap +163 -42
  183. package/src/v3/src/transformer/selectAuthenticator/transformSelectAuthenticatorEnroll.ts +7 -1
  184. package/src/v3/src/transformer/selectAuthenticator/transformSelectAuthenticatorVerify.ts +0 -1
  185. package/src/v3/src/transformer/selectAuthenticator/transformSelectOVCustomAppMethodVerify.ts +0 -1
  186. package/src/v3/src/transformer/selectAuthenticator/utils.test.ts +117 -39
  187. package/src/v3/src/transformer/selectAuthenticator/utils.ts +102 -58
  188. package/src/v3/src/transformer/terminal/transformEmailMagicLinkOTPOnlyElements.ts +1 -3
  189. package/src/v3/src/transformer/uischema/transform.test.ts +0 -6
  190. package/src/v3/src/transformer/uischema/transform.ts +0 -2
  191. package/src/v3/src/{components/FieldLevelMessageContainer/index.tsx → types/image.ts} +10 -3
  192. package/src/v3/src/types/index.ts +1 -0
  193. package/src/v3/src/types/schema.ts +2 -1
  194. package/src/v3/src/types/widget.ts +3 -3
  195. package/src/v3/src/util/buildFieldLevelErrorMessages.ts +48 -0
  196. package/src/v3/src/util/formUtils.ts +5 -17
  197. package/src/v3/src/util/htmlContentParserUtils.tsx +3 -1
  198. package/src/v3/src/util/index.ts +2 -0
  199. package/src/v3/src/util/isLtrField.ts +22 -0
  200. package/src/v3/src/util/languageUtils.ts +14 -0
  201. package/src/v3/src/util/leonardo.d.ts +571 -0
  202. package/src/v3/src/util/mergeThemes.test.tsx +20 -7
  203. package/src/v3/src/util/mergeThemes.ts +32 -1
  204. package/src/v3/src/util/stylisPlugins.ts +21 -0
  205. package/src/v3/src/util/theme.test.ts +63 -187
  206. package/src/v3/src/util/theme.ts +274 -247
  207. package/src/v3/svgo.config.js +0 -6
  208. package/src/v3/transformer/i18n/transformAuthenticatorButton.ts +18 -2
  209. package/src/v3/transformer/layout/development/transformEnumerateComponents.ts +72 -5
  210. package/src/v3/transformer/selectAuthenticator/transformSelectAuthenticatorEnroll.ts +7 -1
  211. package/src/v3/transformer/selectAuthenticator/transformSelectAuthenticatorVerify.ts +0 -1
  212. package/src/v3/transformer/selectAuthenticator/transformSelectOVCustomAppMethodVerify.ts +0 -1
  213. package/src/v3/transformer/selectAuthenticator/utils.ts +102 -58
  214. package/src/v3/transformer/terminal/transformEmailMagicLinkOTPOnlyElements.ts +1 -3
  215. package/src/v3/transformer/uischema/transform.ts +0 -2
  216. package/src/v3/tsconfig.base.json +3 -0
  217. package/src/v3/{components/FieldLevelMessageContainer/index.tsx → types/image.ts} +10 -3
  218. package/src/v3/types/index.ts +1 -0
  219. package/src/v3/types/schema.ts +2 -1
  220. package/src/v3/types/widget.ts +3 -3
  221. package/src/v3/util/buildFieldLevelErrorMessages.ts +48 -0
  222. package/src/v3/util/formUtils.ts +5 -17
  223. package/src/v3/util/htmlContentParserUtils.tsx +3 -1
  224. package/src/v3/util/index.ts +2 -0
  225. package/src/v3/util/isLtrField.ts +22 -0
  226. package/src/v3/util/languageUtils.ts +14 -0
  227. package/src/v3/util/leonardo.d.ts +571 -0
  228. package/src/v3/util/mergeThemes.ts +32 -1
  229. package/src/v3/util/stylisPlugins.ts +21 -0
  230. package/src/v3/util/theme.ts +274 -247
  231. package/src/v3/components/CustomPluginsOdysseyCacheProvider/CustomPluginsOdysseyCacheProvider.tsx +0 -66
  232. package/src/v3/components/FieldLevelMessageContainer/FieldLevelMessageContainer.tsx +0 -55
  233. package/src/v3/components/Icon/CheckCircle.tsx +0 -30
  234. package/src/v3/components/Icon/RightArrowIcon.tsx +0 -30
  235. package/src/v3/components/Images/MobileDeviceIcon.tsx +0 -38
  236. package/src/v3/components/Widget/style.css +0 -181
  237. package/src/v3/src/components/CustomPluginsOdysseyCacheProvider/CustomPluginsOdysseyCacheProvider.tsx +0 -66
  238. package/src/v3/src/components/FieldLevelMessageContainer/FieldLevelMessageContainer.tsx +0 -55
  239. package/src/v3/src/components/Icon/CheckCircle.tsx +0 -30
  240. package/src/v3/src/components/Icon/RightArrowIcon.tsx +0 -30
  241. package/src/v3/src/components/Images/MobileDeviceIcon.tsx +0 -38
  242. package/src/v3/src/components/Widget/style.css +0 -181
  243. package/src/v3/src/transformer/uischema/setLtrFields.ts +0 -41
  244. package/src/v3/src/util/designTokens.ts +0 -249
  245. package/src/v3/transformer/uischema/setLtrFields.ts +0 -41
  246. package/src/v3/util/designTokens.ts +0 -249
@@ -10,7 +10,7 @@
10
10
  * See the License for the specific language governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- import { Box, Button as OdyButton } from '@okta/odyssey-react-mui';
13
+ import { Button as OdyButton, useOdysseyDesignTokens } from '@okta/odyssey-react-mui';
14
14
  import { h } from 'preact';
15
15
 
16
16
  import Util from '../../../../util/Util';
@@ -30,6 +30,7 @@ import { OktaVerifyIcon } from '../Icon';
30
30
  const LaunchAuthenticatorButton: UISchemaElementComponent<{
31
31
  uischema: LaunchAuthenticatorButtonElement
32
32
  }> = ({ uischema }) => {
33
+ const tokens = useOdysseyDesignTokens();
33
34
  const onSubmitHandler = useOnSubmit();
34
35
  const {
35
36
  translations = [],
@@ -79,32 +80,19 @@ const LaunchAuthenticatorButton: UISchemaElementComponent<{
79
80
  return (
80
81
  <OdyButton
81
82
  variant="secondary"
82
- fullWidth
83
+ isFullWidth
83
84
  onClick={handleClick}
84
- ref={focusRef}
85
- >
86
- <Box
87
- display="flex"
88
- alignItems="center"
89
- justifyContent="center"
90
- >
91
- <Box
92
- sx={{
93
- marginInlineEnd: '5px',
94
- // keep the icon from stretching the button vertically
95
- marginBlockEnd: '-3px',
96
- }}
97
- >
98
- <OktaVerifyIcon
99
- name="mfa-okta-verify"
100
- description={iconDescription}
101
- width={24}
102
- height={24}
103
- />
104
- </Box>
105
- {label}
106
- </Box>
107
- </OdyButton>
85
+ buttonRef={focusRef}
86
+ label={label || ''}
87
+ startIcon={(
88
+ <OktaVerifyIcon
89
+ name="mfa-okta-verify"
90
+ description={iconDescription}
91
+ width={tokens.Spacing5}
92
+ height={tokens.Spacing5}
93
+ />
94
+ )}
95
+ />
108
96
  );
109
97
  };
110
98
 
@@ -10,8 +10,8 @@
10
10
  * See the License for the specific language governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- // TODO: OKTA-564568 Link exported from ODY does not have the focus() function and breaks autofocus
14
- import { Link as LinkMui } from '@mui/material';
13
+ import { Link as MuiLink } from '@mui/material';
14
+ import { Link as OdyLink } from '@okta/odyssey-react-mui';
15
15
  import { h } from 'preact';
16
16
 
17
17
  import { useWidgetContext } from '../../contexts';
@@ -27,7 +27,6 @@ const Link: UISchemaElementComponent<{
27
27
  } = widgetContext;
28
28
  const {
29
29
  focus,
30
- ariaDescribedBy,
31
30
  options: {
32
31
  label,
33
32
  href,
@@ -63,38 +62,27 @@ const Link: UISchemaElementComponent<{
63
62
 
64
63
  return (
65
64
  typeof href === 'undefined' ? (
66
- <LinkMui
65
+ <MuiLink
67
66
  component="button"
68
- // Fixes OKTA-653788 (see comments) - Currently we treat all links as buttons
69
- type="button"
70
- variant="body1"
71
67
  role="link"
72
68
  onClick={onClick}
73
- aria-describedby={ariaDescribedBy}
74
69
  ref={focusRef}
75
70
  data-se={dataSe}
76
- sx={{
77
- '&:hover': {
78
- cursor: 'pointer',
79
- },
80
- verticalAlign: 'baseline',
81
- }}
82
71
  >
83
72
  {label}
84
- </LinkMui>
73
+ </MuiLink>
85
74
  )
86
75
  : (
87
- <LinkMui
76
+ <OdyLink
88
77
  href={href}
89
- ref={focusRef}
90
- aria-describedby={ariaDescribedBy}
91
- data-se={dataSe}
78
+ linkRef={focusRef}
79
+ testId={dataSe}
92
80
  target={target}
93
81
  // eslint-disable-next-line react/jsx-props-no-spreading
94
82
  {...(target === '_blank' && { rel: 'noopener noreferrer' })}
95
83
  >
96
84
  {label}
97
- </LinkMui>
85
+ </OdyLink>
98
86
  )
99
87
  );
100
88
  };
@@ -10,8 +10,8 @@
10
10
  * See the License for the specific language governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- import { List as ListMui, ListItem } from '@mui/material';
14
- import { Box, Typography } from '@okta/odyssey-react-mui';
13
+ import { Box, List as ListMui, ListItem } from '@mui/material';
14
+ import { Typography, useOdysseyDesignTokens } from '@okta/odyssey-react-mui';
15
15
  import { FunctionComponent, h } from 'preact';
16
16
 
17
17
  import Logger from '../../../../util/Logger';
@@ -28,14 +28,17 @@ import Button from '../Button';
28
28
  import InformationalText from '../InformationalText';
29
29
 
30
30
  const renderElement = (item: UISchemaElement) => {
31
- const Container: FunctionComponent = ({ children }) => (
32
- <Box
33
- // eslint-disable-next-line react/jsx-props-no-spreading
34
- {...(!(item).noMargin && { marginBlockEnd: 4 })}
35
- >
36
- {children}
37
- </Box>
38
- );
31
+ const Container: FunctionComponent = ({ children }) => {
32
+ const tokens = useOdysseyDesignTokens();
33
+ return (
34
+ <Box
35
+ // eslint-disable-next-line react/jsx-props-no-spreading
36
+ {...(!(item).noMargin && { marginBlockEnd: tokens.Spacing4 })}
37
+ >
38
+ {children}
39
+ </Box>
40
+ );
41
+ };
39
42
 
40
43
  switch (item.type) {
41
44
  case 'Button':
@@ -75,18 +78,19 @@ const List: UISchemaElementComponent<{
75
78
  uischema: ListElement
76
79
  }> = ({ uischema }) => {
77
80
  const { options } = uischema;
81
+ const tokens = useOdysseyDesignTokens();
78
82
 
79
83
  return options.items?.length ? (
80
84
  <Box
81
85
  display="flex"
82
86
  flexDirection="column"
83
87
  justifyContent="flex-start"
84
- marginBlockEnd={4}
88
+ marginBlockEnd={tokens.Spacing4}
85
89
  >
86
90
  { options.description && <Typography component="p">{options.description}</Typography> }
87
91
  <ListMui
88
92
  component={options.type}
89
- sx={{ listStyleType: options.type === 'ol' ? 'decimal' : 'disc', pl: 4 }}
93
+ sx={{ listStyleType: options.type === 'ol' ? 'decimal' : 'disc', pl: tokens.Spacing4 }}
90
94
  >
91
95
  {
92
96
  options.items.map((item: string | UISchemaLayout, index: number) => (
@@ -10,7 +10,8 @@
10
10
  * See the License for the specific language governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- import { Box, Button as OdyButton } from '@okta/odyssey-react-mui';
13
+ import { Box } from '@mui/material';
14
+ import { Button as OdyButton, useOdysseyDesignTokens } from '@okta/odyssey-react-mui';
14
15
  import { h } from 'preact';
15
16
  import { useEffect, useState } from 'preact/hooks';
16
17
 
@@ -37,6 +38,8 @@ const PIVButton: UISchemaElementComponent<{
37
38
 
38
39
  const showLoading = waiting || loading;
39
40
 
41
+ const tokens = useOdysseyDesignTokens();
42
+
40
43
  const initCertPrompt = () => {
41
44
  setWaiting(true);
42
45
  setMessage(undefined);
@@ -61,7 +64,7 @@ const PIVButton: UISchemaElementComponent<{
61
64
 
62
65
  return (
63
66
  <Box
64
- marginBlockEnd={4}
67
+ marginBlockEnd={tokens.Spacing4}
65
68
  display={showLoading ? 'flex' : undefined}
66
69
  justifyContent={showLoading ? 'center' : undefined}
67
70
  >
@@ -70,14 +73,13 @@ const PIVButton: UISchemaElementComponent<{
70
73
  ? <Spinner dataSe="okta-spinner" />
71
74
  : (
72
75
  <OdyButton
73
- data-se="button"
76
+ label={btnLabel || ''}
77
+ testId="button"
74
78
  onClick={handleClick}
75
79
  variant="primary"
76
- aria-describedby={ariaDescribedBy}
77
- fullWidth
78
- >
79
- {btnLabel}
80
- </OdyButton>
80
+ ariaDescribedBy={ariaDescribedBy}
81
+ isFullWidth
82
+ />
81
83
  )
82
84
  }
83
85
  </Box>
@@ -10,12 +10,12 @@
10
10
  * See the License for the specific language governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- import { Box, Icon as OdyIcon } from '@okta/odyssey-react-mui';
14
- import classNames from 'classnames';
13
+ import { Box } from '@mui/material';
14
+ import { useOdysseyDesignTokens } from '@okta/odyssey-react-mui';
15
+ import { CheckCircleFilledIcon, CloseIcon, InformationCircleIcon } from '@okta/odyssey-react-mui/icons';
15
16
  import { FunctionComponent, h } from 'preact';
16
17
 
17
18
  import { PasswordRequirementStatus } from '../../types';
18
- import { CheckCircle } from '../Icon';
19
19
 
20
20
  type PasswordRequirementIconProps = {
21
21
  status: PasswordRequirementStatus;
@@ -25,35 +25,29 @@ const Icon: FunctionComponent<PasswordRequirementIconProps> = (
25
25
  props,
26
26
  ) => {
27
27
  const { status } = props;
28
- const statusToIconProps = {
29
- incomplete: { name: 'close', color: 'grey.500' },
30
- complete: { name: 'check-circle-filled', color: 'success' },
31
- info: { name: 'information-circle', color: 'info' },
28
+ const tokens = useOdysseyDesignTokens();
29
+ const statusToIcon = {
30
+ incomplete: { component: CloseIcon, color: tokens.PaletteNeutralMain },
31
+ complete: { component: CheckCircleFilledIcon, color: tokens.PaletteSuccessMain },
32
+ info: { component: InformationCircleIcon, color: tokens.PalettePrimaryMain },
32
33
  };
33
- const iconClasses = classNames('passwordRequirementIcon', status);
34
+ const OdyIcon = statusToIcon[status].component;
34
35
 
35
36
  return (
36
37
  <Box
37
- className={iconClasses}
38
38
  data-se={`passwordRequirementIcon-${status}`}
39
- sx={(theme) => ({
40
- marginInlineEnd: theme.spacing(1),
39
+ sx={{
40
+ marginInlineEnd: tokens.Spacing2,
41
41
  // This is to force the icon align with the top of the text
42
42
  marginBlockStart: '2px',
43
- })}
43
+ }}
44
44
  aria-hidden
45
45
  >
46
- {
47
- // Using a custom Icon for the Success/Check Instead of default ODY Icon
48
- statusToIconProps[status].name === 'check-circle-filled' ? (
49
- <CheckCircle />
50
- ) : (
51
- <OdyIcon
52
- name={statusToIconProps[status].name}
53
- color={statusToIconProps[status].color}
54
- />
55
- )
56
- }
46
+ <OdyIcon
47
+ sx={{
48
+ color: statusToIcon[status].color,
49
+ }}
50
+ />
57
51
  </Box>
58
52
  );
59
53
  };
@@ -10,7 +10,8 @@
10
10
  * See the License for the specific language governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- import { Box } from '@okta/odyssey-react-mui';
13
+ import { Box } from '@mui/material';
14
+ import { useOdysseyDesignTokens } from '@okta/odyssey-react-mui';
14
15
  import debounce from 'lodash/debounce';
15
16
  import { h } from 'preact';
16
17
  import {
@@ -38,6 +39,7 @@ const PasswordMatches: UISchemaElementComponent<{
38
39
  const { confirmPassword } = data;
39
40
  const { translations = [] } = uischema;
40
41
  const label = getTranslation(translations, 'label');
42
+ const tokens = useOdysseyDesignTokens();
41
43
 
42
44
  const [isMatching, setIsMatching] = useState<boolean>(false);
43
45
 
@@ -60,7 +62,12 @@ const PasswordMatches: UISchemaElementComponent<{
60
62
  <Box
61
63
  component="ul"
62
64
  id="credentials.newPassword-list"
63
- sx={{ listStyle: 'none', padding: '0', marginBlockStart: '0' }}
65
+ sx={{
66
+ listStyle: 'none',
67
+ padding: '0',
68
+ marginBlockStart: '0',
69
+ marginBlockEnd: `-${tokens.Spacing3}`,
70
+ }}
64
71
  aria-hidden
65
72
  >
66
73
  <PasswordRequirementListItem
@@ -10,8 +10,8 @@
10
10
  * See the License for the specific language governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- import * as Tokens from '@okta/odyssey-design-tokens';
14
- import { Box, Typography } from '@okta/odyssey-react-mui';
13
+ import { Box } from '@mui/material';
14
+ import { Typography, useOdysseyDesignTokens } from '@okta/odyssey-react-mui';
15
15
  import { FunctionComponent, h } from 'preact';
16
16
 
17
17
  import { PasswordRequirementProps } from '../../types';
@@ -21,12 +21,13 @@ const PasswordRequirementListItem: FunctionComponent<PasswordRequirementProps> =
21
21
  props,
22
22
  ) => {
23
23
  const { status, label } = props;
24
+ const tokens = useOdysseyDesignTokens();
24
25
 
25
26
  return (
26
27
  <Box
27
28
  component="li"
28
- sx={{ marginBlockEnd: (theme) => theme.spacing(2) }}
29
- color={status === 'complete' ? Tokens.ColorPaletteGreen600 : undefined}
29
+ sx={{ marginBlockEnd: tokens.Spacing3 }}
30
+ color={status === 'complete' ? tokens.PaletteSuccessMain : undefined}
30
31
  >
31
32
  <Box
32
33
  display="flex"
@@ -38,7 +39,7 @@ const PasswordRequirementListItem: FunctionComponent<PasswordRequirementProps> =
38
39
  * of the icon. See: OKTA-586924
39
40
  * */}
40
41
  <Icon status={status} />
41
- <Box><Typography variant="body1">{label}</Typography></Box>
42
+ <Box><Typography variant="body">{label}</Typography></Box>
42
43
  </Box>
43
44
  </Box>
44
45
  );
@@ -10,7 +10,8 @@
10
10
  * See the License for the specific language governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- import { Box } from '@okta/odyssey-react-mui';
13
+ import { Box } from '@mui/material';
14
+ import { useOdysseyDesignTokens } from '@okta/odyssey-react-mui';
14
15
  import debounce from 'lodash/debounce';
15
16
  import { h } from 'preact';
16
17
  import {
@@ -48,6 +49,7 @@ const PasswordRequirements: UISchemaElementComponent<{
48
49
  : data['credentials.passcode'];
49
50
 
50
51
  const [passwordValidations, setPasswordValidations] = useState<PasswordValidation>({});
52
+ const tokens = useOdysseyDesignTokens();
51
53
 
52
54
  const getPasswordStatus = (
53
55
  ruleKey: string,
@@ -96,14 +98,14 @@ const PasswordRequirements: UISchemaElementComponent<{
96
98
  >
97
99
  <Box
98
100
  component="figcaption"
99
- className="password-authenticator--heading"
101
+ data-se="password-authenticator--heading"
100
102
  >
101
103
  {header}
102
104
  </Box>
103
105
  <Box
104
106
  component="ul"
105
107
  id={listId}
106
- sx={{ listStyle: 'none', padding: '0', marginBlockStart: (theme) => theme.spacing(2) }}
108
+ sx={{ listStyle: 'none', padding: '0', marginBlockStart: tokens.Spacing3 }}
107
109
  >
108
110
  {requirements.map(({ ruleKey, label }) => (
109
111
  <PasswordRequirementListItem