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" >