@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
@@ -14,24 +14,19 @@ import { FunctionComponent, h } from 'preact';
14
14
 
15
15
  import { IconProps } from '../../types';
16
16
 
17
- export const CustomOTPIcon: FunctionComponent<IconProps> = ({ name, description }) => (
17
+ export const CustomOTPIcon: FunctionComponent<IconProps> = ({
18
+ name, description, width, height,
19
+ }) => (
18
20
  <svg
19
21
  xmlns="http://www.w3.org/2000/svg"
20
- width="48"
21
- height="48"
22
+ width={width || 48}
23
+ height={height || 48}
22
24
  fill="none"
23
25
  aria-labelledby={name}
24
26
  role="img"
25
27
  viewBox="0 0 48 48"
26
28
  >
27
29
  <title id={name}>{description}</title>
28
- <path
29
- fill="#F5F5F6"
30
- fillRule="evenodd"
31
- d="M24 48c13.255 0 24-10.745 24-24S37.255 0 24 0 0 10.745 0 24s10.745 24 24 24Z"
32
- class="siwFillBg"
33
- clipRule="evenodd"
34
- />
35
30
  <path
36
31
  fill="#A7B5EC"
37
32
  d="M28 23h-6v-6h1v5h5v1Z"
@@ -14,24 +14,19 @@ import { FunctionComponent, h } from 'preact';
14
14
 
15
15
  import { IconProps } from '../../types';
16
16
 
17
- export const DuoIcon: FunctionComponent<IconProps> = ({ name, description }) => (
17
+ export const DuoIcon: FunctionComponent<IconProps> = ({
18
+ name, description, width, height,
19
+ }) => (
18
20
  <svg
19
21
  xmlns="http://www.w3.org/2000/svg"
20
- width="48"
21
- height="48"
22
+ width={width || 48}
23
+ height={height || 48}
22
24
  fill="none"
23
25
  aria-labelledby={name}
24
26
  role="img"
25
27
  viewBox="0 0 48 48"
26
28
  >
27
29
  <title id={name}>{description}</title>
28
- <path
29
- fill="#F5F5F6"
30
- fillRule="evenodd"
31
- d="M24 48c13.255 0 24-10.745 24-24S37.255 0 24 0 0 10.745 0 24s10.745 24 24 24Z"
32
- class="siwFillBg"
33
- clipRule="evenodd"
34
- />
35
30
  <path
36
31
  fill="#77AF54"
37
32
  fillRule="evenodd"
@@ -14,24 +14,19 @@ import { FunctionComponent, h } from 'preact';
14
14
 
15
15
  import { IconProps } from '../../types';
16
16
 
17
- export const EmailIcon: FunctionComponent<IconProps> = ({ name, description }) => (
17
+ export const EmailIcon: FunctionComponent<IconProps> = ({
18
+ name, description, width, height,
19
+ }) => (
18
20
  <svg
19
21
  xmlns="http://www.w3.org/2000/svg"
20
- width="48"
21
- height="48"
22
+ width={width || 48}
23
+ height={height || 48}
22
24
  fill="none"
23
25
  aria-labelledby={name}
24
26
  role="img"
25
27
  viewBox="0 0 48 48"
26
28
  >
27
29
  <title id={name}>{description}</title>
28
- <circle
29
- cx="24"
30
- cy="24"
31
- r="24"
32
- fill="#F5F5F6"
33
- class="siwFillBg"
34
- />
35
30
  <path
36
31
  fill="#A7B5EC"
37
32
  d="M32 18v1h5.3L32 24.29v1.42l6-6.01v12.8a1.5 1.5 0 0 1-1.5 1.5h-17a1.5 1.5 0 0 1-1.5-1.5V31h-1v1.5a2.5 2.5 0 0 0 2.5 2.5h17a2.5 2.5 0 0 0 2.5-2.5V18h-7Z"
@@ -14,24 +14,19 @@ import { FunctionComponent, h } from 'preact';
14
14
 
15
15
  import { IconProps } from '../../types';
16
16
 
17
- export const GoogleOTPIcon: FunctionComponent<IconProps> = ({ name, description }) => (
17
+ export const GoogleOTPIcon: FunctionComponent<IconProps> = ({
18
+ name, description, width, height,
19
+ }) => (
18
20
  <svg
19
21
  xmlns="http://www.w3.org/2000/svg"
20
- width="48"
21
- height="48"
22
+ width={width || 48}
23
+ height={height || 48}
22
24
  fill="none"
23
25
  aria-labelledby={name}
24
26
  role="img"
25
27
  viewBox="0 0 48 48"
26
28
  >
27
29
  <title id={name}>{description}</title>
28
- <path
29
- fillRule="evenodd"
30
- clipRule="evenodd"
31
- d="M24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48Z"
32
- fill="#F5F5F6"
33
- class="siwFillBg"
34
- />
35
30
  <path
36
31
  fillRule="evenodd"
37
32
  clipRule="evenodd"
@@ -14,24 +14,19 @@ import { FunctionComponent, h } from 'preact';
14
14
 
15
15
  import { IconProps } from '../../types';
16
16
 
17
- export const IDPIcon: FunctionComponent<IconProps> = ({ name, description }) => (
17
+ export const IDPIcon: FunctionComponent<IconProps> = ({
18
+ name, description, width, height,
19
+ }) => (
18
20
  <svg
19
21
  xmlns="http://www.w3.org/2000/svg"
20
- width="48"
21
- height="48"
22
+ width={width || 48}
23
+ height={height || 48}
22
24
  fill="none"
23
25
  aria-labelledby={name}
24
26
  role="img"
25
27
  viewBox="0 0 48 48"
26
28
  >
27
29
  <title id={name}>{description}</title>
28
- <path
29
- fill="#F5F5F6"
30
- fillRule="evenodd"
31
- d="M24 48c13.255 0 24-10.745 24-24S37.255 0 24 0 0 10.745 0 24s10.745 24 24 24Z"
32
- class="siwFillBg"
33
- clipRule="evenodd"
34
- />
35
30
  <path
36
31
  fill="#A7B5EC"
37
32
  d="M15 29.5a5 5 0 1 1 4.78-6.5h1.03a6 6 0 1 0 0 3h-1.03A5.013 5.013 0 0 1 15 29.5Z"
@@ -27,13 +27,6 @@ export const OktaVerifyIcon: FunctionComponent<IconProps> = ({
27
27
  viewBox="0 0 48 48"
28
28
  >
29
29
  <title id={name}>{description}</title>
30
- <circle
31
- cx="24"
32
- cy="24"
33
- r="24"
34
- fill="#F5F5F6"
35
- class="siwFillBg"
36
- />
37
30
  <path
38
31
  fill="#00297A"
39
32
  fillRule="evenodd"
@@ -14,24 +14,19 @@ import { FunctionComponent, h } from 'preact';
14
14
 
15
15
  import { IconProps } from '../../types';
16
16
 
17
- export const OnPremMFAIcon: FunctionComponent<IconProps> = ({ name, description }) => (
17
+ export const OnPremMFAIcon: FunctionComponent<IconProps> = ({
18
+ name, description, width, height,
19
+ }) => (
18
20
  <svg
19
21
  xmlns="http://www.w3.org/2000/svg"
20
- width="48"
21
- height="48"
22
+ width={width || 48}
23
+ height={height || 48}
22
24
  fill="none"
23
25
  aria-labelledby={name}
24
26
  role="img"
25
27
  viewBox="0 0 48 48"
26
28
  >
27
29
  <title id={name}>{description}</title>
28
- <path
29
- fill="#F5F5F6"
30
- fillRule="evenodd"
31
- d="M24 48c13.255 0 24-10.745 24-24S37.255 0 24 0 0 10.745 0 24s10.745 24 24 24Z"
32
- class="siwFillBg"
33
- clipRule="evenodd"
34
- />
35
30
  <path
36
31
  fill="#00297A"
37
32
  d="M39 20h-8v-3H16.5a7.5 7.5 0 0 0 0 15H31v-3h8v-9Zm-9 11H16.5a6.5 6.5 0 1 1 0-13H30v13Zm8-3h-7v-7h7v7Z"
@@ -14,24 +14,19 @@ import { FunctionComponent, h } from 'preact';
14
14
 
15
15
  import { IconProps } from '../../types';
16
16
 
17
- export const PasswordIcon: FunctionComponent<IconProps> = ({ name, description }) => (
17
+ export const PasswordIcon: FunctionComponent<IconProps> = ({
18
+ name, description, width, height,
19
+ }) => (
18
20
  <svg
19
21
  xmlns="http://www.w3.org/2000/svg"
20
- width="48"
21
- height="48"
22
+ width={width || 48}
23
+ height={height || 48}
22
24
  fill="none"
23
25
  aria-labelledby={name}
24
26
  role="img"
25
27
  viewBox="0 0 48 48"
26
28
  >
27
29
  <title id={name}>{description}</title>
28
- <circle
29
- cx="24"
30
- cy="24"
31
- r="24"
32
- fill="#F5F5F6"
33
- class="siwFillBg"
34
- />
35
30
  <path
36
31
  fill="#A7B5EC"
37
32
  d="M11 17h-1V9h8v1h-7v7Zm28 0h-1v-7h-7V9h8v8ZM18 39h-8v-8h1v7h7v1Zm21 0h-8v-1h7v-7h1v8Z"
@@ -14,24 +14,19 @@ import { FunctionComponent, h } from 'preact';
14
14
 
15
15
  import { IconProps } from '../../types';
16
16
 
17
- export const PhoneIcon: FunctionComponent<IconProps> = ({ name, description }) => (
17
+ export const PhoneIcon: FunctionComponent<IconProps> = ({
18
+ name, description, width, height,
19
+ }) => (
18
20
  <svg
19
21
  xmlns="http://www.w3.org/2000/svg"
20
- width="48"
21
- height="48"
22
+ width={width || 48}
23
+ height={height || 48}
22
24
  fill="none"
23
25
  aria-labelledby={name}
24
26
  role="img"
25
27
  viewBox="0 0 48 48"
26
28
  >
27
29
  <title id={name}>{description}</title>
28
- <circle
29
- cx="24"
30
- cy="24"
31
- r="24"
32
- fill="#F5F5F6"
33
- class="siwFillBg"
34
- />
35
30
  <path
36
31
  fill="#00297A"
37
32
  d="M21.5 37h-9a2.6 2.6 0 0 1-2.5-2.682V14.682A2.6 2.6 0 0 1 12.5 12h9a2.6 2.6 0 0 1 2.5 2.682v19.636A2.6 2.6 0 0 1 21.5 37Zm-9-24a1.6 1.6 0 0 0-1.5 1.682v19.636A1.6 1.6 0 0 0 12.5 36h9a1.6 1.6 0 0 0 1.5-1.682V14.682A1.6 1.6 0 0 0 21.5 13h-9Z"
@@ -14,10 +14,12 @@ import { FunctionComponent, h } from 'preact';
14
14
 
15
15
  import { IconProps } from '../../types';
16
16
 
17
- export const RSAIcon: FunctionComponent<IconProps> = ({ name, description }) => (
17
+ export const RSAIcon: FunctionComponent<IconProps> = ({
18
+ name, description, width, height,
19
+ }) => (
18
20
  <svg
19
- width="48"
20
- height="48"
21
+ width={width || 48}
22
+ height={height || 48}
21
23
  viewBox="0 0 48 48"
22
24
  fill="none"
23
25
  xmlns="http://www.w3.org/2000/svg"
@@ -26,14 +28,7 @@ export const RSAIcon: FunctionComponent<IconProps> = ({ name, description }) =>
26
28
  >
27
29
  <title id={name}>{description}</title>
28
30
  <path
29
- fillRule="evenodd"
30
- clipRule="evenodd"
31
- d="M24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48Z"
32
- fill="#F5F5F6"
33
- class="siwFillBg"
34
- />
35
- <path
36
- d="M42 30.3102H39.6261L35.3202 20.898L31.1912 30.3228H28.8046L34.2217 18.3024H36.4567L42 30.3102ZM15.584 21.8052C15.5461 19.6884 13.8036 18.2142 11.3413 18.2142H6.97229H6V30.2976H7.94458V19.9782H11.2276C12.3262 19.9782 13.5132 20.52 13.5258 21.8178C13.5384 22.977 12.6293 23.6952 11.0887 23.7582H11.0635L9.88916 23.7708L13.8036 30.3102H16.1017C16.1017 30.3102 14.2203 27.1476 13.0333 25.1694C14.7632 24.552 15.5966 23.1912 15.584 21.8052ZM23.2613 23.1786C21.2157 22.6368 20.4202 22.1706 20.4202 21.2382C20.4202 19.827 22.2511 19.6884 22.8951 19.6884C23.9306 19.6884 25.2311 20.016 26.0014 20.394L26.8348 18.8568C25.7867 18.3402 24.1831 18 22.8446 18C19.9909 18 18.2105 19.2348 18.2105 21.339C18.2105 23.7456 20.7233 24.426 22.6805 24.9426C24.7134 25.4844 25.4332 26.1018 25.4332 27.0468C25.4332 28.6092 23.7664 28.8486 22.731 28.8486C21.3167 28.8486 20.1424 28.4706 19.006 27.8028L18.0337 29.3652C19.4732 30.2094 20.9632 30.6 22.731 30.6C25.6731 30.6 27.6303 29.151 27.6303 26.9082C27.6429 24.4008 25.2564 23.7078 23.2613 23.1786Z"
31
+ d="M 42 30.01 L 39.626 30.01 L 35.32 20.598 L 31.191 30.023 L 28.804 30.023 L 34.221 18.003 L 36.456 18.003 L 42 30.01 Z M 15.584 21.505 C 15.546 19.389 13.803 17.914 11.341 17.914 L 6.972 17.914 L 6 17.914 L 6 29.998 L 7.944 29.998 L 7.944 19.678 L 11.227 19.678 C 12.326 19.678 13.513 20.22 13.525 21.518 C 13.538 22.677 12.629 23.395 11.088 23.458 L 11.063 23.458 L 9.889 23.471 L 13.803 30.01 L 16.101 30.01 C 16.101 30.01 14.22 26.848 13.033 24.87 C 14.763 24.252 15.596 22.891 15.584 21.505 Z M 23.261 22.879 C 21.215 22.337 20.42 21.871 20.42 20.938 C 20.42 19.527 22.251 19.389 22.895 19.389 C 23.93 19.389 25.231 19.716 26.001 20.094 L 26.834 18.557 C 25.786 18.04 24.183 17.7 22.844 17.7 C 19.991 17.7 18.21 18.935 18.21 21.039 C 18.21 23.446 20.723 24.126 22.68 24.643 C 24.713 25.185 25.433 25.802 25.433 26.747 C 25.433 28.309 23.766 28.549 22.731 28.549 C 21.316 28.549 20.142 28.171 19.006 27.503 L 18.033 29.065 C 19.473 29.91 20.963 30.3 22.731 30.3 C 25.673 30.3 27.63 28.851 27.63 26.608 C 27.643 24.101 25.256 23.408 23.261 22.879 Z"
37
32
  fill="#BE3A34"
38
33
  />
39
34
  </svg>
@@ -15,25 +15,20 @@ import { FunctionComponent, h } from 'preact';
15
15
  import { IconProps } from '../../types';
16
16
 
17
17
  export const SecurityKeyOrBiometricsIcon: FunctionComponent<IconProps> = (
18
- { name, description },
18
+ {
19
+ name, description, width, height,
20
+ },
19
21
  ) => (
20
22
  <svg
21
23
  xmlns="http://www.w3.org/2000/svg"
22
- width="48"
23
- height="48"
24
+ width={width || 48}
25
+ height={height || 48}
24
26
  fill="none"
25
27
  aria-labelledby={name}
26
28
  role="img"
27
29
  viewBox="0 0 48 48"
28
30
  >
29
31
  <title id={name}>{description}</title>
30
- <path
31
- fill="#F5F5F6"
32
- fillRule="evenodd"
33
- d="M24 48c13.255 0 24-10.745 24-24S37.255 0 24 0 0 10.745 0 24s10.745 24 24 24Z"
34
- class="siwFillBg"
35
- clipRule="evenodd"
36
- />
37
32
  <path
38
33
  fill="#00297A"
39
34
  d="M24 17V9h-9v8h-3v15.5a2.5 2.5 0 0 0 2.5 2.5h6.34a8.58 8.58 0 0 1-.38-1H14.5a1.5 1.5 0 0 1-1.5-1.5V18h13v3.84a8.58 8.58 0 0 1 1-.38V17h-3Zm-8 0v-7h7v7h-7Z"
@@ -14,24 +14,19 @@ import { FunctionComponent, h } from 'preact';
14
14
 
15
15
  import { IconProps } from '../../types';
16
16
 
17
- export const SecurityQuestionIcon: FunctionComponent<IconProps> = ({ name, description }) => (
17
+ export const SecurityQuestionIcon: FunctionComponent<IconProps> = ({
18
+ name, description, width, height,
19
+ }) => (
18
20
  <svg
19
21
  xmlns="http://www.w3.org/2000/svg"
20
- width="48"
21
- height="48"
22
+ width={width || 48}
23
+ height={height || 48}
22
24
  fill="none"
23
25
  aria-labelledby={name}
24
26
  role="img"
25
27
  viewBox="0 0 48 48"
26
28
  >
27
29
  <title id={name}>{description}</title>
28
- <circle
29
- cx="24"
30
- cy="24"
31
- r="24"
32
- fill="#F5F5F6"
33
- class="siwFillBg"
34
- />
35
30
  <path
36
31
  fill="#A7B5EC"
37
32
  d="m24.25 39.123-4.615-3.433a21.799 21.799 0 0 1-8.827-16.259l-.329-5.738 12.84-4.534a2.818 2.818 0 0 1 1.862 0l12.84 4.534-.329 5.738a21.8 21.8 0 0 1-8.827 16.259l-4.615 3.433ZM11.521 14.387l.285 4.987a20.811 20.811 0 0 0 8.425 15.514l4.019 2.989 4.019-2.989a20.81 20.81 0 0 0 8.425-15.514l.285-4.987L24.848 10.1a1.792 1.792 0 0 0-1.2 0l-12.127 4.287Z"
@@ -14,24 +14,19 @@ import { FunctionComponent, h } from 'preact';
14
14
 
15
15
  import { IconProps } from '../../types';
16
16
 
17
- export const SmartCardIcon: FunctionComponent<IconProps> = ({ name, description }) => (
17
+ export const SmartCardIcon: FunctionComponent<IconProps> = ({
18
+ name, description, width, height,
19
+ }) => (
18
20
  <svg
19
21
  xmlns="http://www.w3.org/2000/svg"
20
- width="48"
21
- height="48"
22
+ width={width || 48}
23
+ height={height || 48}
22
24
  fill="none"
23
25
  aria-labelledby={name}
24
26
  role="img"
25
27
  viewBox="0 0 48 48"
26
28
  >
27
29
  <title id={name}>{description}</title>
28
- <circle
29
- cx="24"
30
- cy="24"
31
- r="24"
32
- fill="#F5F5F6"
33
- class="siwFillBg"
34
- />
35
30
  <path
36
31
  fill="#00297A"
37
32
  fillRule="evenodd"
@@ -14,24 +14,19 @@ import { FunctionComponent, h } from 'preact';
14
14
 
15
15
  import { IconProps } from '../../types';
16
16
 
17
- export const SymantecIcon: FunctionComponent<IconProps> = ({ name, description }) => (
17
+ export const SymantecIcon: FunctionComponent<IconProps> = ({
18
+ name, description, width, height,
19
+ }) => (
18
20
  <svg
19
21
  xmlns="http://www.w3.org/2000/svg"
20
- width="48"
21
- height="48"
22
+ width={width || 48}
23
+ height={height || 48}
22
24
  fill="none"
23
25
  aria-labelledby={name}
24
26
  role="img"
25
27
  viewBox="0 0 48 48"
26
28
  >
27
29
  <title id={name}>{description}</title>
28
- <path
29
- fill="#F5F5F6"
30
- fillRule="evenodd"
31
- d="M24 48c13.255 0 24-10.745 24-24S37.255 0 24 0 0 10.745 0 24s10.745 24 24 24Z"
32
- class="siwFillBg"
33
- clipRule="evenodd"
34
- />
35
30
  <path
36
31
  fill="#FDB511"
37
32
  d="M40.92 5v1.046H42V5h-1.08Zm0 2.092v1.046H42V7.092h-1.08Zm-3.243 1.046v1.047h1.08V8.138h-1.08Zm-14.141.784C14.954 8.922 8 15.654 8 23.96 8 32.267 14.954 39 23.536 39c8.581 0 15.536-6.732 15.536-15.04 0-8.307-6.955-15.038-15.535-15.038h-.001Zm0 4.796c5.839 0 10.583 4.59 10.583 10.242 0 5.652-4.744 10.244-10.583 10.244-5.84 0-10.537-4.591-10.537-10.244 0-5.652 4.698-10.242 10.537-10.242Z"
@@ -14,24 +14,19 @@ import { FunctionComponent, h } from 'preact';
14
14
 
15
15
  import { IconProps } from '../../types';
16
16
 
17
- export const YubiKeyIcon: FunctionComponent<IconProps> = ({ name, description }) => (
17
+ export const YubiKeyIcon: FunctionComponent<IconProps> = ({
18
+ name, description, width, height,
19
+ }) => (
18
20
  <svg
19
21
  xmlns="http://www.w3.org/2000/svg"
20
- width="48"
21
- height="48"
22
+ width={width || 48}
23
+ height={height || 48}
22
24
  fill="none"
23
25
  aria-labelledby={name}
24
26
  role="img"
25
27
  viewBox="0 0 48 48"
26
28
  >
27
29
  <title id={name}>{description}</title>
28
- <path
29
- fill="#F5F5F6"
30
- fillRule="evenodd"
31
- d="M24 48c13.255 0 24-10.745 24-24S37.255 0 24 0 0 10.745 0 24s10.745 24 24 24Z"
32
- class="siwFillBg"
33
- clipRule="evenodd"
34
- />
35
30
  <circle
36
31
  cx="24"
37
32
  cy="24"
@@ -10,7 +10,6 @@
10
10
  * See the License for the specific language governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- export * from './CheckCircle';
14
13
  export * from './CustomAppIcon';
15
14
  export * from './CustomOTPIcon';
16
15
  export * from './DuoIcon';
@@ -21,7 +20,6 @@ export * from './OktaVerifyIcon';
21
20
  export * from './OnPremMFAIcon';
22
21
  export * from './PasswordIcon';
23
22
  export * from './PhoneIcon';
24
- export * from './RightArrowIcon';
25
23
  export * from './RSAIcon';
26
24
  export * from './SecurityKeyOrBiometricsIcon';
27
25
  export * from './SecurityQuestionIcon';
@@ -10,68 +10,52 @@
10
10
  * See the License for the specific language governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- import { Box, Icon } from '@okta/odyssey-react-mui';
14
- import classNames from 'classnames';
13
+ import { Box } from '@mui/material';
14
+ import { Tag, useOdysseyDesignTokens } from '@okta/odyssey-react-mui';
15
+ import { UserIcon } from '@okta/odyssey-react-mui/icons';
15
16
  import { h } from 'preact';
16
17
  import { IdentifierContainerElement, UISchemaElementComponent } from 'src/types';
17
18
 
19
+ import { loc } from '../../util';
20
+
18
21
  const IdentifierContainer: UISchemaElementComponent<{
19
22
  uischema: IdentifierContainerElement
20
23
  }> = ({ uischema }) => {
21
24
  const { options: { identifier } } = uischema;
22
-
23
- const mainContainerClasses = classNames('identifier-container');
24
- const identifierSpanClasses = classNames('identifier', 'no-translate');
25
+ const tokens = useOdysseyDesignTokens();
25
26
 
26
27
  return (
27
28
  <Box
28
29
  display="flex"
29
30
  justifyContent="center"
30
31
  alignItems="center"
31
- marginBlockEnd={4}
32
+ marginBlockEnd={tokens.Spacing4}
32
33
  maxWidth={1}
33
- className={mainContainerClasses}
34
+ title={identifier}
35
+ data-se="identifier-container"
34
36
  >
35
- <Box
36
- flex="auto"
37
- flexDirection="row"
38
- flexGrow="0"
39
- paddingX={4}
40
- paddingY={2}
41
- sx={(theme) => ({
42
- borderRadius: '36px',
43
- backgroundColor: theme.palette.grey[50],
44
- textOverflow: 'ellipsis',
45
- whiteSpace: 'nowrap',
46
- overflow: 'hidden',
47
- })}
48
- >
49
- <Box
50
- component="span"
51
- sx={(theme) => ({
52
- color: theme.palette.primary.main,
53
- verticalAlign: 'middle',
54
- })}
55
- >
56
- <Icon
57
- name="user"
58
- titleAccess="User"
59
- sx={{ width: '16px', height: '16px' }}
60
- />
61
- </Box>
62
- <Box
63
- component="span"
64
- className={identifierSpanClasses}
65
- data-se="identifier"
66
- title={identifier}
67
- sx={{
68
- marginInlineStart: '10px',
69
- }}
70
- aria-label={identifier}
71
- >
72
- {identifier}
73
- </Box>
74
- </Box>
37
+ <Tag
38
+ icon={(
39
+ <Box
40
+ sx={{
41
+ width: tokens.Spacing4,
42
+ height: tokens.Spacing4,
43
+ }}
44
+ >
45
+ <UserIcon
46
+ titleAccess={loc('identifier.icon.alt.text', 'login')}
47
+ sx={{
48
+ color: tokens.PalettePrimaryMain,
49
+ width: tokens.Spacing4,
50
+ height: tokens.Spacing4,
51
+ }}
52
+ />
53
+ </Box>
54
+ )}
55
+ label={identifier}
56
+ testId="identifier"
57
+ translate="no"
58
+ />
75
59
  </Box>
76
60
  );
77
61
  };
@@ -0,0 +1,42 @@
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 { Box } from '@mui/material';
14
+ import { FunctionComponent, h } from 'preact';
15
+
16
+ import { ImageProps } from '../../types';
17
+
18
+ const Image: FunctionComponent<ImageProps> = ({
19
+ src,
20
+ alt,
21
+ width,
22
+ height,
23
+ maxWidth,
24
+ maxHeight,
25
+ testId,
26
+ ariaHidden,
27
+ }) => (
28
+ <Box
29
+ component="img"
30
+ src={src}
31
+ alt={alt}
32
+ sx={{
33
+ width,
34
+ height,
35
+ maxInlineSize: maxWidth,
36
+ maxBlockSize: maxHeight,
37
+ }}
38
+ data-se={testId}
39
+ aria-hidden={ariaHidden}
40
+ />
41
+ );
42
+ export default Image;
@@ -10,6 +10,6 @@
10
10
  * See the License for the specific language governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- import { CustomPluginsOdysseyCacheProvider } from './CustomPluginsOdysseyCacheProvider';
13
+ import Image from './Image';
14
14
 
15
- export default CustomPluginsOdysseyCacheProvider;
15
+ export default Image;
@@ -10,13 +10,15 @@
10
10
  * See the License for the specific language governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- import { Box, Typography } from '@okta/odyssey-react-mui';
13
+ import { Box } from '@mui/material';
14
+ import { Typography, useOdysseyDesignTokens } from '@okta/odyssey-react-mui';
14
15
  import { h } from 'preact';
15
16
  import { ImageWithTextElement, UISchemaElementComponent } from 'src/types';
16
17
 
17
18
  const ImageWithText: UISchemaElementComponent<{
18
19
  uischema: ImageWithTextElement
19
20
  }> = ({ uischema }) => {
21
+ const tokens = useOdysseyDesignTokens();
20
22
  const Icon = uischema.options.SVGIcon;
21
23
  const { noTranslate } = uischema;
22
24
  const { textContent, alignment = 'flex-start' } = uischema.options;
@@ -30,8 +32,9 @@ const ImageWithText: UISchemaElementComponent<{
30
32
  flexWrap="wrap"
31
33
  >
32
34
  <Box
33
- marginInlineEnd={2}
35
+ marginInlineEnd={textContent ? tokens.Spacing2 : tokens.Spacing0}
34
36
  data-se={`icon-${uischema.options.id}`}
37
+ display="flex"
35
38
  >
36
39
  <Icon />
37
40
  </Box>
@@ -41,8 +44,8 @@ const ImageWithText: UISchemaElementComponent<{
41
44
  <Box>
42
45
  <Typography
43
46
  component="span"
44
- className={noTranslate ? 'no-translate' : undefined}
45
- data-se={`text-${uischema.options.id}`}
47
+ translate={noTranslate ? 'no' : undefined}
48
+ testId={`text-${uischema.options.id}`}
46
49
  >
47
50
  {textContent}
48
51
  </Typography>