diff --git a/package-lock.json b/package-lock.json
index c833280b..b8be729c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3924,9 +3924,9 @@
}
},
"@edx/paragon": {
- "version": "13.16.1",
- "resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-13.16.1.tgz",
- "integrity": "sha512-8GxeS0OQLKJKrkqUa6HRk+wi/96IvhuY6JjjQYIf4+SA6TXLu57SwvtsQN6sLuB3PTxnW64WQF3MepvpNo9VpQ==",
+ "version": "13.17.5",
+ "resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-13.17.5.tgz",
+ "integrity": "sha512-ZLgZU/8kQBfHT3gd1s3w6AQZIOfufqMU4hItB4dSaqVcCX8ECmtE/AAMdwasTNxyhGCzfITuVe8xB9wYOnU/Xw==",
"requires": {
"@fortawesome/fontawesome-svg-core": "^1.2.30",
"@fortawesome/free-solid-svg-icons": "^5.14.0",
@@ -20980,9 +20980,9 @@
}
},
"react-popper": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.2.4.tgz",
- "integrity": "sha512-NacOu4zWupdQjVXq02XpTD3yFPSfg5a7fex0wa3uGKVkFK7UN6LvVxgcb+xYr56UCuWiNPMH20tntdVdJRwYew==",
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.2.5.tgz",
+ "integrity": "sha512-kxGkS80eQGtLl18+uig1UIf9MKixFSyPxglsgLBxlYnyDf65BiY9B3nZSc6C9XUNDgStROB0fMQlTEz1KxGddw==",
"requires": {
"react-fast-compare": "^3.0.1",
"warning": "^4.0.2"
diff --git a/package.json b/package.json
index 37d4fc4b..2f84164d 100644
--- a/package.json
+++ b/package.json
@@ -38,7 +38,7 @@
"@edx/frontend-component-cookie-policy-banner": "2.1.12",
"@edx/frontend-component-header": "2.2.5",
"@edx/frontend-platform": "1.8.4",
- "@edx/paragon": "13.16.1",
+ "@edx/paragon": "13.17.5",
"@fortawesome/fontawesome-svg-core": "1.2.32",
"@fortawesome/free-brands-svg-icons": "5.15.1",
"@fortawesome/free-regular-svg-icons": "5.15.1",
diff --git a/src/common-components/tests/AuthnValidationFormGroup.test.jsx b/src/common-components/tests/AuthnValidationFormGroup.test.jsx
index e7e77895..0c765e54 100644
--- a/src/common-components/tests/AuthnValidationFormGroup.test.jsx
+++ b/src/common-components/tests/AuthnValidationFormGroup.test.jsx
@@ -15,14 +15,14 @@ describe('AuthnCustomValidationFormGroup', () => {
it('should show label in place of placeholder when field is empty', () => {
const validationFormGroup = mount();
- expect(validationFormGroup.find('label').prop('className')).toEqual('pt-10 focus-out form-label');
+ expect(validationFormGroup.find('label').prop('className')).toEqual('pgn__form-label pt-10 focus-out');
});
it('should show label on top of field when field is focused in', () => {
const validationFormGroup = mount();
validationFormGroup.find('input').simulate('focus');
- expect(validationFormGroup.find('label').prop('className')).toEqual('pt-10 focus-out form-label');
+ expect(validationFormGroup.find('label').prop('className')).toEqual('pgn__form-label pt-10 h6');
});
it('should keep label hidden for checkbox field', () => {
@@ -32,7 +32,7 @@ describe('AuthnCustomValidationFormGroup', () => {
optionalFieldCheckbox: true,
};
const validationFormGroup = mount();
- expect(validationFormGroup.find('label').prop('className')).toEqual('sr-only form-label');
+ expect(validationFormGroup.find('label').prop('className')).toEqual('pgn__form-label sr-only');
});
it('should keep label hidden when input field is not empty', () => {
@@ -41,6 +41,6 @@ describe('AuthnCustomValidationFormGroup', () => {
value: 'test',
};
const validationFormGroup = mount();
- expect(validationFormGroup.find('label').prop('className')).toEqual('sr-only form-label');
+ expect(validationFormGroup.find('label').prop('className')).toEqual('pgn__form-label sr-only');
});
});
diff --git a/src/forgot-password/tests/__snapshots__/ForgotPasswordPage.test.jsx.snap b/src/forgot-password/tests/__snapshots__/ForgotPasswordPage.test.jsx.snap
index 3e4d3052..244a95f9 100644
--- a/src/forgot-password/tests/__snapshots__/ForgotPasswordPage.test.jsx.snap
+++ b/src/forgot-password/tests/__snapshots__/ForgotPasswordPage.test.jsx.snap
@@ -24,8 +24,7 @@ exports[`ForgotPasswordPage should match default section snapshot 1`] = `
className="form-group mb-0 w-100"
>
@@ -147,8 +146,7 @@ exports[`ForgotPasswordPage should match forbidden section snapshot 1`] = `
className="form-group mb-0 w-100"
>
@@ -255,8 +253,7 @@ exports[`ForgotPasswordPage should match pending section snapshot 1`] = `
className="form-group mb-0 w-100"
>
diff --git a/src/login/tests/__snapshots__/LoginPage.test.jsx.snap b/src/login/tests/__snapshots__/LoginPage.test.jsx.snap
index af6eb999..226f0a54 100644
--- a/src/login/tests/__snapshots__/LoginPage.test.jsx.snap
+++ b/src/login/tests/__snapshots__/LoginPage.test.jsx.snap
@@ -37,8 +37,7 @@ exports[`LoginPage should match TPA provider snapshot 1`] = `
className="form-group"
>
@@ -63,8 +62,7 @@ exports[`LoginPage should match TPA provider snapshot 1`] = `
className="form-group"
>
@@ -234,8 +232,7 @@ exports[`LoginPage should match default section snapshot 1`] = `
className="form-group"
>
@@ -260,8 +257,7 @@ exports[`LoginPage should match default section snapshot 1`] = `
className="form-group"
>
@@ -430,8 +426,7 @@ exports[`LoginPage should match forget password alert message snapshot 1`] = `
className="form-group"
>
@@ -456,8 +451,7 @@ exports[`LoginPage should match forget password alert message snapshot 1`] = `
className="form-group"
>
@@ -586,8 +580,7 @@ exports[`LoginPage should match pending button state snapshot 1`] = `
className="form-group"
>
@@ -612,8 +605,7 @@ exports[`LoginPage should match pending button state snapshot 1`] = `
className="form-group"
>
@@ -779,8 +771,7 @@ exports[`LoginPage should show error message 1`] = `
className="form-group"
>
@@ -805,8 +796,7 @@ exports[`LoginPage should show error message 1`] = `
className="form-group"
>
diff --git a/src/register/OptionalFields.jsx b/src/register/OptionalFields.jsx
index 13545847..d4f0250f 100644
--- a/src/register/OptionalFields.jsx
+++ b/src/register/OptionalFields.jsx
@@ -2,87 +2,86 @@ import React from 'react';
import PropTypes from 'prop-types';
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
+import { Form, Icon } from '@edx/paragon';
+import { ExpandMore } from '@edx/paragon/icons';
import { EDUCATION_LEVELS, GENDER_OPTIONS, YEAR_OF_BIRTH_OPTIONS } from './data/constants';
import messages from './messages';
-import { AuthnValidationFormGroup } from '../common-components';
-
const OptionalFields = (props) => {
const {
intl, optionalFields, onChangeHandler, values,
} = props;
const getOptions = () => ({
- yearOfBirthOptions: [{
- value: '',
- label: intl.formatMessage(messages['registration.year.of.birth.label']),
- }].concat(YEAR_OF_BIRTH_OPTIONS),
- educationLevelOptions: EDUCATION_LEVELS.map(key => ({
- value: key,
- label: intl.formatMessage(messages[`registration.field.education.levels.${key || 'label'}`]),
- })),
- genderOptions: GENDER_OPTIONS.map(key => ({
- value: key,
- label: intl.formatMessage(messages[`registration.field.gender.options.${key || 'label'}`]),
- })),
+ yearOfBirthOptions: YEAR_OF_BIRTH_OPTIONS.map(({ value, label }) => (
+
+ )),
+ educationLevelOptions: EDUCATION_LEVELS.map(key => (
+
+ )),
+ genderOptions: GENDER_OPTIONS.map(key => (
+
+ )),
});
return (
- <>
+
{optionalFields.includes('gender') && (
-
onChangeHandler('gender', e.target.value)}
- selectOptions={getOptions().genderOptions}
- />
+
+ onChangeHandler('gender', e.target.value)}
+ trailingElement={}
+ floatingLabel={intl.formatMessage(messages['registration.field.gender.options.label'])}
+ >
+ {getOptions().genderOptions}
+
+
)}
{optionalFields.includes('yearOfBirth') && (
- onChangeHandler('yearOfBirth', e.target.value)}
- selectOptions={getOptions().yearOfBirthOptions}
- />
+
+ onChangeHandler('yearOfBirth', e.target.value)}
+ trailingElement={}
+ floatingLabel={intl.formatMessage(messages['registration.year.of.birth.label'])}
+ >
+
+ {getOptions().yearOfBirthOptions}
+
+
)}
{optionalFields.includes('levelOfEducation') && (
- onChangeHandler('levelOfEducation', e.target.value)}
- selectOptions={getOptions().educationLevelOptions}
- />
+
+ onChangeHandler('levelOfEducation', e.target.value)}
+ trailingElement={}
+ floatingLabel={intl.formatMessage(messages['registration.field.education.levels.label'])}
+ >
+ {getOptions().educationLevelOptions}
+
+
)}
{optionalFields.includes('goals') && (
- onChangeHandler('goals', e.target.value)}
- inputFieldStyle="border-gray-600"
- />
+
+ onChangeHandler('goals', e.target.value)}
+ floatingLabel={intl.formatMessage(messages['registration.goals.label'])}
+ />
+
)}
- >
+
);
};
diff --git a/src/register/tests/__snapshots__/RegistrationPage.test.jsx.snap b/src/register/tests/__snapshots__/RegistrationPage.test.jsx.snap
index 2f176e7d..517cb765 100644
--- a/src/register/tests/__snapshots__/RegistrationPage.test.jsx.snap
+++ b/src/register/tests/__snapshots__/RegistrationPage.test.jsx.snap
@@ -36,8 +36,7 @@ exports[`RegistrationPageTests should match TPA provider snapshot 1`] = `
className="form-group"
>
@@ -62,8 +61,7 @@ exports[`RegistrationPageTests should match TPA provider snapshot 1`] = `
className="form-group data-hj-suppress"
>
@@ -88,8 +86,7 @@ exports[`RegistrationPageTests should match TPA provider snapshot 1`] = `
className="form-group data-hj-suppress"
>
@@ -114,8 +111,7 @@ exports[`RegistrationPageTests should match TPA provider snapshot 1`] = `
className="form-group"
>
@@ -140,8 +136,7 @@ exports[`RegistrationPageTests should match TPA provider snapshot 1`] = `
className="form-group mb-0 data-hj-suppress"
>
@@ -1471,8 +1466,7 @@ exports[`RegistrationPageTests should match TPA provider snapshot 1`] = `
className="form-group custom-control pt-10 mb-0"
>
@@ -1604,8 +1598,7 @@ exports[`RegistrationPageTests should match default section snapshot 1`] = `
className="form-group"
>
@@ -1630,8 +1623,7 @@ exports[`RegistrationPageTests should match default section snapshot 1`] = `
className="form-group data-hj-suppress"
>
@@ -1656,8 +1648,7 @@ exports[`RegistrationPageTests should match default section snapshot 1`] = `
className="form-group data-hj-suppress"
>
@@ -1682,8 +1673,7 @@ exports[`RegistrationPageTests should match default section snapshot 1`] = `
className="form-group"
>
@@ -1708,8 +1698,7 @@ exports[`RegistrationPageTests should match default section snapshot 1`] = `
className="form-group mb-0 data-hj-suppress"
>
@@ -3039,8 +3028,7 @@ exports[`RegistrationPageTests should match default section snapshot 1`] = `
className="form-group custom-control pt-10 mb-0"
>
@@ -3128,8 +3116,7 @@ exports[`RegistrationPageTests should match pending button state snapshot 1`] =
className="form-group"
>
@@ -3154,8 +3141,7 @@ exports[`RegistrationPageTests should match pending button state snapshot 1`] =
className="form-group data-hj-suppress"
>
@@ -3180,8 +3166,7 @@ exports[`RegistrationPageTests should match pending button state snapshot 1`] =
className="form-group data-hj-suppress"
>
@@ -3206,8 +3191,7 @@ exports[`RegistrationPageTests should match pending button state snapshot 1`] =
className="form-group"
>
@@ -3232,8 +3216,7 @@ exports[`RegistrationPageTests should match pending button state snapshot 1`] =
className="form-group mb-0 data-hj-suppress"
>
@@ -4563,8 +4546,7 @@ exports[`RegistrationPageTests should match pending button state snapshot 1`] =
className="form-group custom-control pt-10 mb-0"
>
diff --git a/src/reset-password/tests/__snapshots__/ResetPasswordPage.test.jsx.snap b/src/reset-password/tests/__snapshots__/ResetPasswordPage.test.jsx.snap
index fcb2f904..a59cf3f4 100644
--- a/src/reset-password/tests/__snapshots__/ResetPasswordPage.test.jsx.snap
+++ b/src/reset-password/tests/__snapshots__/ResetPasswordPage.test.jsx.snap
@@ -25,8 +25,7 @@ exports[`ResetPasswordPage should match invalid token message section snapshot 1
className="form-group w-100"
>
@@ -51,8 +50,7 @@ exports[`ResetPasswordPage should match invalid token message section snapshot 1
className="form-group w-100"
>
@@ -126,8 +124,7 @@ exports[`ResetPasswordPage should match pending reset message section snapshot 1
className="form-group w-100"
>
@@ -152,8 +149,7 @@ exports[`ResetPasswordPage should match pending reset message section snapshot 1
className="form-group w-100"
>
@@ -248,8 +244,7 @@ exports[`ResetPasswordPage should match reset password default section snapshot
className="form-group w-100"
>
@@ -274,8 +269,7 @@ exports[`ResetPasswordPage should match reset password default section snapshot
className="form-group w-100"
>
@@ -387,8 +381,7 @@ exports[`ResetPasswordPage show spinner component during token validation 1`] =
className="form-group w-100"
>
@@ -413,8 +406,7 @@ exports[`ResetPasswordPage show spinner component during token validation 1`] =
className="form-group w-100"
>