@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.
- package/README.md +5 -5
- package/dist/css/fonts.css +172 -0
- package/dist/css/okta-sign-in.next.css +1 -240
- package/dist/css/okta-sign-in.next.css.map +1 -1
- package/dist/esm/src/config/config.json.js +1 -1
- package/dist/js/okta-sign-in.classic.js +1 -1
- package/dist/js/okta-sign-in.classic.min.js +1 -1
- package/dist/js/okta-sign-in.js +1 -1
- package/dist/js/okta-sign-in.min.js +1 -1
- package/dist/js/okta-sign-in.next.js +61 -19
- package/dist/js/okta-sign-in.next.js.map +1 -1
- package/dist/js/okta-sign-in.next.no-polyfill.js +60 -18
- package/dist/js/okta-sign-in.next.no-polyfill.js.map +1 -1
- package/dist/js/okta-sign-in.no-polyfill.min.js +1 -1
- package/dist/js/okta-sign-in.oie.js +1 -1
- package/dist/js/okta-sign-in.oie.min.js +1 -1
- package/package.json +10 -5
- package/src/config/config.json +1 -1
- package/src/v3/components/AuthCoin/AuthCoin.tsx +15 -17
- package/src/v3/components/AuthContainer/AuthContainer.tsx +11 -17
- package/src/v3/components/AuthContent/AuthContent.tsx +21 -16
- package/src/v3/components/AuthHeader/AuthHeader.tsx +18 -19
- package/src/v3/components/AuthenticatorButton/AuthenticatorButton.tsx +116 -77
- package/src/v3/components/AuthenticatorButton/AuthenticatorButtonList.tsx +9 -3
- package/src/v3/components/Button/Button.tsx +16 -20
- package/src/v3/components/CaptchaContainer/CaptchaContainer.tsx +1 -1
- package/src/v3/components/Checkbox/Checkbox.tsx +33 -82
- package/src/v3/components/ConsentHeader/ConsentHeader.tsx +23 -23
- package/src/v3/components/Divider/Divider.tsx +2 -2
- package/src/v3/components/Form/Accordion.tsx +15 -36
- package/src/v3/components/Form/ElementContainer.tsx +6 -3
- package/src/v3/components/Form/Form.tsx +2 -4
- package/src/v3/components/Form/Layout.tsx +1 -1
- package/src/v3/components/Form/LayoutContainer.tsx +4 -2
- package/src/v3/components/Heading/Heading.tsx +7 -5
- package/src/v3/components/Icon/CustomAppIcon.tsx +13 -15
- package/src/v3/components/Icon/CustomOTPIcon.tsx +5 -10
- package/src/v3/components/Icon/DuoIcon.tsx +5 -10
- package/src/v3/components/Icon/EmailIcon.tsx +5 -10
- package/src/v3/components/Icon/GoogleOTPIcon.tsx +5 -10
- package/src/v3/components/Icon/IDPIcon.tsx +5 -10
- package/src/v3/components/Icon/OktaVerifyIcon.tsx +0 -7
- package/src/v3/components/Icon/OnPremMFAIcon.tsx +5 -10
- package/src/v3/components/Icon/PasswordIcon.tsx +5 -10
- package/src/v3/components/Icon/PhoneIcon.tsx +5 -10
- package/src/v3/components/Icon/RSAIcon.tsx +6 -11
- package/src/v3/components/Icon/SecurityKeyOrBiometricsIcon.tsx +5 -10
- package/src/v3/components/Icon/SecurityQuestionIcon.tsx +5 -10
- package/src/v3/components/Icon/SmartCardIcon.tsx +5 -10
- package/src/v3/components/Icon/SymantecIcon.tsx +5 -10
- package/src/v3/components/Icon/YubiKeyIcon.tsx +5 -10
- package/src/v3/components/Icon/index.tsx +0 -2
- package/src/v3/components/IdentifierContainer/IdentifierContainer.tsx +31 -47
- package/src/v3/components/Image/Image.tsx +42 -0
- package/src/v3/{src/components/CustomPluginsOdysseyCacheProvider → components/Image}/index.tsx +2 -2
- package/src/v3/components/ImageWithText/ImageWithText.tsx +7 -4
- package/src/v3/components/Images/AppIcon.tsx +16 -46
- package/src/v3/components/Images/DeviceIcon.tsx +16 -32
- package/src/v3/components/Images/LocationIcon.tsx +16 -26
- package/src/v3/components/Images/PhoneIcon.tsx +34 -29
- package/src/v3/components/Images/YubikeyDemoImage.tsx +32 -27
- package/src/v3/components/Images/index.tsx +0 -1
- package/src/v3/components/InfoBox/InfoBox.tsx +12 -12
- package/src/v3/components/InfoSection/InfoSection.tsx +20 -14
- package/src/v3/components/InformationalText/InformationalText.tsx +16 -6
- package/src/v3/components/InputPassword/InputPassword.tsx +31 -164
- package/src/v3/components/InputText/InputText.tsx +27 -103
- package/src/v3/components/LaunchAuthenticatorButton/LaunchAuthenticatorButton.tsx +14 -26
- package/src/v3/components/Link/Link.tsx +8 -20
- package/src/v3/components/List/List.tsx +16 -12
- package/src/v3/components/PIVButton/PIVButton.tsx +10 -8
- package/src/v3/components/PasswordRequirements/Icon.tsx +17 -23
- package/src/v3/components/PasswordRequirements/PasswordMatches.tsx +9 -2
- package/src/v3/components/PasswordRequirements/PasswordRequirementListItem.tsx +6 -5
- package/src/v3/components/PasswordRequirements/PasswordRequirements.tsx +5 -3
- package/src/v3/components/PhoneAuthenticator/PhoneAuthenticator.tsx +53 -137
- package/src/v3/components/QRCode/QRCode.tsx +27 -20
- package/src/v3/components/Radio/Radio.tsx +31 -93
- package/src/v3/components/ReminderPrompt/ReminderPrompt.tsx +9 -12
- package/src/v3/components/Select/Select.tsx +45 -92
- package/src/v3/components/Spinner/Spinner.tsx +6 -8
- package/src/v3/components/StepperButton/StepperButton.tsx +6 -10
- package/src/v3/components/StepperLink/StepperLink.tsx +1 -1
- package/src/v3/components/StepperRadio/StepperRadio.tsx +22 -43
- package/src/v3/components/TextWithActionLink/TextWithActionLink.tsx +1 -1
- package/src/v3/components/Title/Title.tsx +5 -9
- package/src/v3/components/WebAuthNSubmitButton/WebAuthNSubmitButton.tsx +10 -9
- package/src/v3/components/Widget/GlobalStyles.tsx +16 -21
- package/src/v3/components/Widget/index.tsx +51 -36
- package/src/v3/components/Widget/style.scss +295 -0
- package/src/v3/components/WidgetMessageContainer/WidgetMessageContainer.tsx +11 -8
- package/src/v3/components/hocs/withFormValidationState.tsx +2 -5
- package/src/v3/jest.config.js +1 -0
- package/src/v3/jest.setup.js +1 -0
- package/src/v3/package.json +11 -7
- package/src/v3/screenshots/base/UI_demo/UI_demo_RTL_VRT.png +0 -0
- package/src/v3/screenshots/base/UI_demo/UI_demo_VRT.png +0 -0
- package/src/v3/src/components/AuthCoin/AuthCoin.tsx +15 -17
- package/src/v3/src/components/AuthCoin/__snapshots__/AuthCoin.test.tsx.snap +20 -47
- package/src/v3/src/components/AuthContainer/AuthContainer.tsx +11 -17
- package/src/v3/src/components/AuthContent/AuthContent.tsx +21 -16
- package/src/v3/src/components/AuthHeader/AuthHeader.tsx +18 -19
- package/src/v3/src/components/AuthenticatorButton/AuthenticatorButton.tsx +116 -77
- package/src/v3/src/components/AuthenticatorButton/AuthenticatorButtonList.tsx +9 -3
- package/src/v3/src/components/Button/Button.tsx +16 -20
- package/src/v3/src/components/CaptchaContainer/CaptchaContainer.tsx +1 -1
- package/src/v3/src/components/Checkbox/Checkbox.tsx +33 -82
- package/src/v3/src/components/ConsentHeader/ConsentHeader.tsx +23 -23
- package/src/v3/src/components/Divider/Divider.tsx +2 -2
- package/src/v3/src/components/Form/Accordion.tsx +15 -36
- package/src/v3/src/components/Form/ElementContainer.tsx +6 -3
- package/src/v3/src/components/Form/Form.tsx +2 -4
- package/src/v3/src/components/Form/Layout.tsx +1 -1
- package/src/v3/src/components/Form/LayoutContainer.tsx +4 -2
- package/src/v3/src/components/Heading/Heading.tsx +7 -5
- package/src/v3/src/components/Icon/CustomAppIcon.tsx +13 -15
- package/src/v3/src/components/Icon/CustomOTPIcon.tsx +5 -10
- package/src/v3/src/components/Icon/DuoIcon.tsx +5 -10
- package/src/v3/src/components/Icon/EmailIcon.tsx +5 -10
- package/src/v3/src/components/Icon/GoogleOTPIcon.tsx +5 -10
- package/src/v3/src/components/Icon/IDPIcon.tsx +5 -10
- package/src/v3/src/components/Icon/OktaVerifyIcon.tsx +0 -7
- package/src/v3/src/components/Icon/OnPremMFAIcon.tsx +5 -10
- package/src/v3/src/components/Icon/PasswordIcon.tsx +5 -10
- package/src/v3/src/components/Icon/PhoneIcon.tsx +5 -10
- package/src/v3/src/components/Icon/RSAIcon.tsx +6 -11
- package/src/v3/src/components/Icon/SecurityKeyOrBiometricsIcon.tsx +5 -10
- package/src/v3/src/components/Icon/SecurityQuestionIcon.tsx +5 -10
- package/src/v3/src/components/Icon/SmartCardIcon.tsx +5 -10
- package/src/v3/src/components/Icon/SymantecIcon.tsx +5 -10
- package/src/v3/src/components/Icon/YubiKeyIcon.tsx +5 -10
- package/src/v3/src/components/Icon/index.tsx +0 -2
- package/src/v3/src/components/IdentifierContainer/IdentifierContainer.tsx +31 -47
- package/src/v3/src/components/Image/Image.tsx +42 -0
- package/src/v3/{components/CustomPluginsOdysseyCacheProvider → src/components/Image}/index.tsx +2 -2
- package/src/v3/src/components/ImageWithText/ImageWithText.tsx +7 -4
- package/src/v3/src/components/Images/AppIcon.tsx +16 -46
- package/src/v3/src/components/Images/DeviceIcon.tsx +16 -32
- package/src/v3/src/components/Images/LocationIcon.tsx +16 -26
- package/src/v3/src/components/Images/PhoneIcon.tsx +34 -29
- package/src/v3/src/components/Images/YubikeyDemoImage.tsx +32 -27
- package/src/v3/src/components/Images/index.tsx +0 -1
- package/src/v3/src/components/InfoBox/InfoBox.tsx +12 -12
- package/src/v3/src/components/InfoSection/InfoSection.tsx +20 -14
- package/src/v3/src/components/InformationalText/InformationalText.tsx +16 -6
- package/src/v3/src/components/InputPassword/InputPassword.tsx +31 -164
- package/src/v3/src/components/InputText/InputText.tsx +27 -103
- package/src/v3/src/components/LaunchAuthenticatorButton/LaunchAuthenticatorButton.tsx +14 -26
- package/src/v3/src/components/Link/Link.tsx +8 -20
- package/src/v3/src/components/List/List.tsx +16 -12
- package/src/v3/src/components/PIVButton/PIVButton.tsx +10 -8
- package/src/v3/src/components/PasswordRequirements/Icon.tsx +17 -23
- package/src/v3/src/components/PasswordRequirements/PasswordMatches.tsx +9 -2
- package/src/v3/src/components/PasswordRequirements/PasswordRequirementListItem.tsx +6 -5
- package/src/v3/src/components/PasswordRequirements/PasswordRequirements.tsx +5 -3
- package/src/v3/src/components/PhoneAuthenticator/PhoneAuthenticator.tsx +53 -137
- package/src/v3/src/components/QRCode/QRCode.tsx +27 -20
- package/src/v3/src/components/Radio/Radio.tsx +31 -93
- package/src/v3/src/components/ReminderPrompt/ReminderPrompt.tsx +9 -12
- package/src/v3/src/components/ReminderPrompt/__snapshots__/ReminderPrompt.test.tsx.snap +37 -17
- package/src/v3/src/components/Select/Select.tsx +45 -92
- package/src/v3/src/components/Spinner/Spinner.tsx +6 -8
- package/src/v3/src/components/StepperButton/StepperButton.tsx +6 -10
- package/src/v3/src/components/StepperLink/StepperLink.tsx +1 -1
- package/src/v3/src/components/StepperRadio/StepperRadio.tsx +22 -43
- package/src/v3/src/components/TextWithActionLink/TextWithActionLink.tsx +1 -1
- package/src/v3/src/components/Title/Title.tsx +5 -9
- package/src/v3/src/components/WebAuthNSubmitButton/WebAuthNSubmitButton.tsx +10 -9
- package/src/v3/src/components/Widget/GlobalStyles.tsx +16 -21
- package/src/v3/src/components/Widget/index.tsx +51 -36
- package/src/v3/src/components/Widget/style.scss +295 -0
- package/src/v3/src/components/WidgetMessageContainer/WidgetMessageContainer.tsx +11 -8
- package/src/v3/src/components/hocs/withFormValidationState.tsx +2 -5
- package/src/v3/src/transformer/button/__snapshots__/transformIDPButtons.test.ts.snap +0 -2
- package/src/v3/src/transformer/i18n/__snapshots__/transformAuthenticatorButton.test.ts.snap +4 -4
- package/src/v3/src/transformer/i18n/transformAuthenticatorButton.test.ts +3 -3
- package/src/v3/src/transformer/i18n/transformAuthenticatorButton.ts +18 -2
- package/src/v3/src/transformer/layout/development/transformEnumerateComponents.ts +72 -5
- package/src/v3/src/transformer/layout/idp/__snapshots__/transformIdpRedirect.test.ts.snap +4 -4
- package/src/v3/src/transformer/selectAuthenticator/__snapshots__/transformSelectAuthenticatorVerify.test.ts.snap +0 -3
- package/src/v3/src/transformer/selectAuthenticator/__snapshots__/transformSelectOVCustomAppMethodVerify.test.ts.snap +0 -1
- package/src/v3/src/transformer/selectAuthenticator/__snapshots__/utils.test.ts.snap +163 -42
- package/src/v3/src/transformer/selectAuthenticator/transformSelectAuthenticatorEnroll.ts +7 -1
- package/src/v3/src/transformer/selectAuthenticator/transformSelectAuthenticatorVerify.ts +0 -1
- package/src/v3/src/transformer/selectAuthenticator/transformSelectOVCustomAppMethodVerify.ts +0 -1
- package/src/v3/src/transformer/selectAuthenticator/utils.test.ts +117 -39
- package/src/v3/src/transformer/selectAuthenticator/utils.ts +102 -58
- package/src/v3/src/transformer/terminal/transformEmailMagicLinkOTPOnlyElements.ts +1 -3
- package/src/v3/src/transformer/uischema/transform.test.ts +0 -6
- package/src/v3/src/transformer/uischema/transform.ts +0 -2
- package/src/v3/src/{components/FieldLevelMessageContainer/index.tsx → types/image.ts} +10 -3
- package/src/v3/src/types/index.ts +1 -0
- package/src/v3/src/types/schema.ts +2 -1
- package/src/v3/src/types/widget.ts +3 -3
- package/src/v3/src/util/buildFieldLevelErrorMessages.ts +48 -0
- package/src/v3/src/util/formUtils.ts +5 -17
- package/src/v3/src/util/htmlContentParserUtils.tsx +3 -1
- package/src/v3/src/util/index.ts +2 -0
- package/src/v3/src/util/isLtrField.ts +22 -0
- package/src/v3/src/util/languageUtils.ts +14 -0
- package/src/v3/src/util/leonardo.d.ts +571 -0
- package/src/v3/src/util/mergeThemes.test.tsx +20 -7
- package/src/v3/src/util/mergeThemes.ts +32 -1
- package/src/v3/src/util/stylisPlugins.ts +21 -0
- package/src/v3/src/util/theme.test.ts +63 -187
- package/src/v3/src/util/theme.ts +274 -247
- package/src/v3/svgo.config.js +0 -6
- package/src/v3/transformer/i18n/transformAuthenticatorButton.ts +18 -2
- package/src/v3/transformer/layout/development/transformEnumerateComponents.ts +72 -5
- package/src/v3/transformer/selectAuthenticator/transformSelectAuthenticatorEnroll.ts +7 -1
- package/src/v3/transformer/selectAuthenticator/transformSelectAuthenticatorVerify.ts +0 -1
- package/src/v3/transformer/selectAuthenticator/transformSelectOVCustomAppMethodVerify.ts +0 -1
- package/src/v3/transformer/selectAuthenticator/utils.ts +102 -58
- package/src/v3/transformer/terminal/transformEmailMagicLinkOTPOnlyElements.ts +1 -3
- package/src/v3/transformer/uischema/transform.ts +0 -2
- package/src/v3/tsconfig.base.json +3 -0
- package/src/v3/{components/FieldLevelMessageContainer/index.tsx → types/image.ts} +10 -3
- package/src/v3/types/index.ts +1 -0
- package/src/v3/types/schema.ts +2 -1
- package/src/v3/types/widget.ts +3 -3
- package/src/v3/util/buildFieldLevelErrorMessages.ts +48 -0
- package/src/v3/util/formUtils.ts +5 -17
- package/src/v3/util/htmlContentParserUtils.tsx +3 -1
- package/src/v3/util/index.ts +2 -0
- package/src/v3/util/isLtrField.ts +22 -0
- package/src/v3/util/languageUtils.ts +14 -0
- package/src/v3/util/leonardo.d.ts +571 -0
- package/src/v3/util/mergeThemes.ts +32 -1
- package/src/v3/util/stylisPlugins.ts +21 -0
- package/src/v3/util/theme.ts +274 -247
- package/src/v3/components/CustomPluginsOdysseyCacheProvider/CustomPluginsOdysseyCacheProvider.tsx +0 -66
- package/src/v3/components/FieldLevelMessageContainer/FieldLevelMessageContainer.tsx +0 -55
- package/src/v3/components/Icon/CheckCircle.tsx +0 -30
- package/src/v3/components/Icon/RightArrowIcon.tsx +0 -30
- package/src/v3/components/Images/MobileDeviceIcon.tsx +0 -38
- package/src/v3/components/Widget/style.css +0 -181
- package/src/v3/src/components/CustomPluginsOdysseyCacheProvider/CustomPluginsOdysseyCacheProvider.tsx +0 -66
- package/src/v3/src/components/FieldLevelMessageContainer/FieldLevelMessageContainer.tsx +0 -55
- package/src/v3/src/components/Icon/CheckCircle.tsx +0 -30
- package/src/v3/src/components/Icon/RightArrowIcon.tsx +0 -30
- package/src/v3/src/components/Images/MobileDeviceIcon.tsx +0 -38
- package/src/v3/src/components/Widget/style.css +0 -181
- package/src/v3/src/transformer/uischema/setLtrFields.ts +0 -41
- package/src/v3/src/util/designTokens.ts +0 -249
- package/src/v3/transformer/uischema/setLtrFields.ts +0 -41
- package/src/v3/util/designTokens.ts +0 -249
|
@@ -21,7 +21,6 @@ import { createIdentifierContainer } from './createIdentifierContainer';
|
|
|
21
21
|
import { createTextElementKeys } from './createTextElementKeys';
|
|
22
22
|
import { overwriteAutocomplete } from './overwriteAutocomplete';
|
|
23
23
|
import { setFocusOnFirstElement } from './setFocusOnFirstElement';
|
|
24
|
-
import { setLtrFields } from './setLtrFields';
|
|
25
24
|
import { updateCustomFields } from './updateCustomFields';
|
|
26
25
|
import { updateElementKeys } from './updateElementKeys';
|
|
27
26
|
import { updatePasswordDescribedByValue } from './updatePasswordDescribedByValue';
|
|
@@ -36,7 +35,6 @@ export const transformUISchema: TransformStepFnWithOptions = (
|
|
|
36
35
|
updateElementKeys(options),
|
|
37
36
|
addIdToElements,
|
|
38
37
|
updatePasswordDescribedByValue,
|
|
39
|
-
setLtrFields,
|
|
40
38
|
overwriteAutocomplete(options),
|
|
41
39
|
// OKTA-586475: Please keep this as the last function to be executed since we want to ensure
|
|
42
40
|
// that the identifier container is always positioned at the top of a view
|
|
@@ -10,6 +10,13 @@
|
|
|
10
10
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
export type ImageProps = {
|
|
14
|
+
src: string;
|
|
15
|
+
alt: string;
|
|
16
|
+
width?: string | number;
|
|
17
|
+
height?: string | number;
|
|
18
|
+
maxWidth?: string | number;
|
|
19
|
+
maxHeight?: string | number;
|
|
20
|
+
testId?: string;
|
|
21
|
+
ariaHidden?: boolean;
|
|
22
|
+
};
|
|
@@ -310,7 +310,6 @@ export interface ButtonElement extends UISchemaElement {
|
|
|
310
310
|
dataSe?: string;
|
|
311
311
|
stepToRender?: string;
|
|
312
312
|
ariaLabel?: string;
|
|
313
|
-
classes?: string;
|
|
314
313
|
disabled?: boolean;
|
|
315
314
|
Icon?: FunctionComponent | string;
|
|
316
315
|
iconAlt?: string;
|
|
@@ -325,6 +324,8 @@ export interface AuthenticatorButtonElement extends UISchemaElement {
|
|
|
325
324
|
key: string;
|
|
326
325
|
ariaLabel: string;
|
|
327
326
|
authenticator?: IdxAuthenticator;
|
|
327
|
+
isEnroll?: boolean;
|
|
328
|
+
isAdditionalEnroll?: boolean;
|
|
328
329
|
ctaLabel: string;
|
|
329
330
|
description?: string;
|
|
330
331
|
nickname?: string;
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
+
import { DesignTokensOverride } from '@okta/odyssey-react-mui';
|
|
13
14
|
import {
|
|
14
15
|
FlowIdentifier,
|
|
15
16
|
IdxActionParams,
|
|
@@ -34,7 +35,6 @@ import {
|
|
|
34
35
|
UserOperation,
|
|
35
36
|
} from '../../../types';
|
|
36
37
|
import { InterstitialRedirectView } from '../constants';
|
|
37
|
-
import { DesignTokensType } from '../util/designTokens';
|
|
38
38
|
import { WidgetHooks } from '../util/widgetHooks';
|
|
39
39
|
import { OktaSignInAPI } from './api';
|
|
40
40
|
import { JsonObject } from './json';
|
|
@@ -119,7 +119,7 @@ export type WidgetOptions = {
|
|
|
119
119
|
brandColors?: BrandColors;
|
|
120
120
|
|
|
121
121
|
// theme
|
|
122
|
-
theme?: { tokens:
|
|
122
|
+
theme?: { tokens: DesignTokensOverride }; // & ThemeOptions;
|
|
123
123
|
|
|
124
124
|
// hooks
|
|
125
125
|
hooks?: HooksOptions; // object in options
|
|
@@ -285,7 +285,7 @@ interface ProxyIdxResponse {
|
|
|
285
285
|
|
|
286
286
|
type CustomButton = {
|
|
287
287
|
title: string;
|
|
288
|
-
className
|
|
288
|
+
className?: string;
|
|
289
289
|
i18nKey: string;
|
|
290
290
|
dataAttr?: string;
|
|
291
291
|
click: { (): void }
|
|
@@ -0,0 +1,48 @@
|
|
|
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 { WidgetMessage } from '../types';
|
|
14
|
+
|
|
15
|
+
type FieldLevelErrorMessages = {
|
|
16
|
+
errorMessage?: string;
|
|
17
|
+
errorMessageList?: string[];
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const buildFieldLevelErrorMessages = (
|
|
21
|
+
errors: WidgetMessage[] | undefined,
|
|
22
|
+
) : FieldLevelErrorMessages => {
|
|
23
|
+
const hasErrors = typeof errors !== 'undefined' && errors.length > 0;
|
|
24
|
+
|
|
25
|
+
if (hasErrors) {
|
|
26
|
+
if (errors.length === 1) {
|
|
27
|
+
const error = errors[0];
|
|
28
|
+
// Covers nested messages, e.g. password requirements not met
|
|
29
|
+
// The SIW does not have messages nested more than once
|
|
30
|
+
if (Array.isArray(error.message)) {
|
|
31
|
+
return {
|
|
32
|
+
errorMessage: error.description,
|
|
33
|
+
errorMessageList: error.message
|
|
34
|
+
.filter((msg) => typeof msg.message === 'string')
|
|
35
|
+
.map((msg) => msg.message as string),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return { errorMessage: error.message };
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
errorMessageList: errors
|
|
42
|
+
.filter((error) => typeof error.message === 'string')
|
|
43
|
+
.map((error) => error.message as string),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return {};
|
|
48
|
+
};
|
|
@@ -14,7 +14,6 @@ import {
|
|
|
14
14
|
IdxAuthenticator,
|
|
15
15
|
IdxMessage, IdxRemediation, IdxTransaction, NextStep,
|
|
16
16
|
} from '@okta/okta-auth-js';
|
|
17
|
-
import classNames from 'classnames';
|
|
18
17
|
|
|
19
18
|
import IDP from '../../../util/IDP';
|
|
20
19
|
import Util from '../../../util/Util';
|
|
@@ -77,8 +76,7 @@ export const getCustomButtonElements = (widgetProps: WidgetProps): ButtonElement
|
|
|
77
76
|
options: {
|
|
78
77
|
type: ButtonType.BUTTON,
|
|
79
78
|
step: '',
|
|
80
|
-
dataSe: customButton.dataAttr,
|
|
81
|
-
classes: classNames(customButton.className, 'default-custom-button'),
|
|
79
|
+
dataSe: customButton.dataAttr ?? 'custom-button',
|
|
82
80
|
variant: 'secondary',
|
|
83
81
|
onClick: customButton.click,
|
|
84
82
|
},
|
|
@@ -105,8 +103,7 @@ const getPIVButtonElement = (
|
|
|
105
103
|
options: {
|
|
106
104
|
type: ButtonType.BUTTON,
|
|
107
105
|
step: IDX_STEP.PIV_IDP,
|
|
108
|
-
dataSe:
|
|
109
|
-
classes: `${piv?.className || ''} piv-button`,
|
|
106
|
+
dataSe: `piv-card-button${piv?.className ? ` ${piv.className}` : ''}`,
|
|
110
107
|
variant: 'secondary',
|
|
111
108
|
Icon: SmartCardIconSvg,
|
|
112
109
|
iconAlt: loc('piv.card', 'login'),
|
|
@@ -189,10 +186,6 @@ const getConfigIdpButtonRemediations = (
|
|
|
189
186
|
name: idpConfig.text,
|
|
190
187
|
};
|
|
191
188
|
const redirectUri = `${baseUrl}/sso/idps/${idpConfig.id}?stateToken=${stateHandle}`;
|
|
192
|
-
if (idpConfig.className) {
|
|
193
|
-
// @ts-expect-error OKTA-609464 - className missing from IdpConfig type
|
|
194
|
-
idp.className = idpConfig.className;
|
|
195
|
-
}
|
|
196
189
|
return {
|
|
197
190
|
name: IDX_STEP.REDIRECT_IDP,
|
|
198
191
|
type: idpConfig.type,
|
|
@@ -249,17 +242,12 @@ export const getIdpButtonElements = (
|
|
|
249
242
|
return {
|
|
250
243
|
type: 'Button',
|
|
251
244
|
label: displayName,
|
|
245
|
+
noTranslate: type === 'general-idp',
|
|
252
246
|
options: {
|
|
253
247
|
type: ButtonType.BUTTON,
|
|
254
248
|
step: IDX_STEP.PIV_IDP,
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
'social-auth-button',
|
|
258
|
-
`social-auth-${type}-button`,
|
|
259
|
-
// @ts-expect-error OKTA-609464 - className missing from IdpConfig type
|
|
260
|
-
idpObject.idp?.className,
|
|
261
|
-
{ 'no-translate': type === 'general-idp' },
|
|
262
|
-
),
|
|
249
|
+
// @ts-expect-error OKTA-609464 - className missing from IdpConfig type
|
|
250
|
+
dataSe: `piv-card-button ${idpObject.idp?.className || `social-auth-${type}-button`}`,
|
|
263
251
|
variant: 'secondary',
|
|
264
252
|
Icon: idpIconMap[type],
|
|
265
253
|
iconAlt: '',
|
|
@@ -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 { Link, Typography } from '@
|
|
13
|
+
import { Link, Typography } from '@mui/material';
|
|
14
14
|
import {
|
|
15
15
|
attributesToProps,
|
|
16
16
|
DOMNode,
|
|
@@ -78,3 +78,5 @@ export const getHeadingReplacerFn = (
|
|
|
78
78
|
return undefined;
|
|
79
79
|
}
|
|
80
80
|
);
|
|
81
|
+
|
|
82
|
+
export const wrapInTranslateNo = (string: string): string => `<span translate="no">${string}</span>`;
|
package/src/v3/src/util/index.ts
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
export * from './browserUtils';
|
|
14
14
|
export * from './buildErrorMessageIds';
|
|
15
|
+
export * from './buildFieldLevelErrorMessages';
|
|
15
16
|
export * from './buildPasswordRequirementNotMetErrorList';
|
|
16
17
|
export * from './clipboard';
|
|
17
18
|
export * from './configuredFlowUtils';
|
|
@@ -35,6 +36,7 @@ export * from './htmlContentParserUtils';
|
|
|
35
36
|
export * from './idpIconMap';
|
|
36
37
|
export * from './idxUtils';
|
|
37
38
|
export * from './isInteractiveElement';
|
|
39
|
+
export * from './isLtrField';
|
|
38
40
|
export * from './isPasswordRecovery';
|
|
39
41
|
export * from './isPollingStep';
|
|
40
42
|
export * from './languageUtils';
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
// fields with these names should stay LTR by default
|
|
14
|
+
const ltrOnlyFieldNames = [
|
|
15
|
+
'credentials.passcode',
|
|
16
|
+
'identifier',
|
|
17
|
+
'credentials.newPassword',
|
|
18
|
+
'confirmPassword',
|
|
19
|
+
'extension',
|
|
20
|
+
];
|
|
21
|
+
|
|
22
|
+
export const isLtrField = (fieldName: string) => ltrOnlyFieldNames.includes(fieldName) || fieldName.endsWith('phoneNumber');
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
+
import { OdysseyI18nResourceKeys, odysseyI18nResourceKeysList } from '@okta/odyssey-react-mui';
|
|
14
|
+
|
|
13
15
|
import Bundles from '../../../util/Bundles';
|
|
14
16
|
import { WidgetProps } from '../types';
|
|
15
17
|
import { getLanguageCode, getSupportedLanguages } from './settingsUtils';
|
|
@@ -24,3 +26,15 @@ export const loadLanguage = async (widgetProps: WidgetProps): Promise<void> => {
|
|
|
24
26
|
rewrite: rewrite ?? ((val) => val),
|
|
25
27
|
}, supportedLanguages);
|
|
26
28
|
};
|
|
29
|
+
|
|
30
|
+
export const getOdysseyTranslationOverrides = (): Partial<OdysseyI18nResourceKeys> => (
|
|
31
|
+
odysseyI18nResourceKeysList
|
|
32
|
+
.reduce((overrides: Partial<OdysseyI18nResourceKeys>,
|
|
33
|
+
key: typeof odysseyI18nResourceKeysList[number]) => {
|
|
34
|
+
const updatedOverrides = { ...overrides };
|
|
35
|
+
if (Bundles.login && Object.prototype.hasOwnProperty.call(Bundles.login, key)) {
|
|
36
|
+
updatedOverrides[key] = (Bundles.login as Partial<OdysseyI18nResourceKeys>)[key];
|
|
37
|
+
}
|
|
38
|
+
return updatedOverrides;
|
|
39
|
+
}, {})
|
|
40
|
+
);
|