INSR-7760: Mostly updates for HOP styling

This commit is contained in:
Alex Humphries 2026-02-25 09:34:49 -05:00
parent 4c3b4ca72c
commit f49ea6673d
7 changed files with 424 additions and 344 deletions

View file

@ -7,17 +7,19 @@ body {
font-family: Urbanist, Roboto, Arial, sans-serif; font-family: Urbanist, Roboto, Arial, sans-serif;
font-weight: 400; font-weight: 400;
letter-spacing: 0.03em; letter-spacing: 0.03em;
color: #000; color: #4d4e53;
margin: 0; margin: 0;
background-color: white; background-color: white;
padding: 8px; margin-bottom: 1rem;
font-size: 1rem;
} }
body .validation-info { body .validation-info {
display: none; color: #db0020;
} }
body .italicSmall { body .italicSmall {
font-style: normal; font-weight: normal;
font-size: 14px; font-style: italic;
font-size: 12px;
} }
body span { body span {
line-height: 24px; line-height: 24px;
@ -26,74 +28,67 @@ body a {
color: #0070D1; color: #0070D1;
text-decoration: none; text-decoration: none;
} }
body a:hover {
text-decoration: underline;
color: #167cac;
}
body .form-group { body .form-group {
display: flex; display: block;
flex-direction: column; position: relative;
}
body .headerlinecontainer {
color: #000;
} }
body .headerlinecontainer .headerline1 { body .headerlinecontainer .headerline1 {
font-size: 20px; margin-bottom: 0.75rem;
line-height: 32px; margin-top: 0rem;
font-weight: 400; font-weight: 600;
margin: 24px 0; font-size: 1.25rem;
text-align: center; line-height: 1.375rem;
} }
body input, body .headerlinecontainer .headerline5v2 {
body select { display: block;
margin-top: 4px; padding: 0.75rem 0;
color: #db0020;
font-style: italic;
font-size: 12px;
} }
body input, body input,
body select { body select {
height: 2.8125rem;
border: solid 1px #b3b4b5;
border-radius: 4px; border-radius: 4px;
border: 1px solid #8E9292; box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.2);
padding: 16px; color: #525656;
font-size: 16px;
font-family: inherit; font-family: inherit;
letter-spacing: inherit; font-weight: normal;
color: #000; font-style: normal;
background-color: #fff; font-stretch: normal;
font-size: 16px;
line-height: 1.56;
padding: 10px;
width: 100%;
} }
body input:focus, body input:focus-visible, body input:focus, body input:focus-visible,
body select:focus, body select:focus,
body select:focus-visible { body select:focus-visible {
box-shadow: 0 0 0 2.5px #1574a1; border: solid 2.5px #0070d1;
border: 1px solid transparent;
outline: none; outline: none;
} }
body input:disabled, body input.disabled,
body select:disabled,
body select.disabled {
background-color: #f5f5f5;
filter: grayscale(100%);
}
body input:disabled:hover, body input.disabled:hover,
body select:disabled:hover,
body select.disabled:hover {
box-shadow: 0 0 0 4px transparent;
border: 1px solid #8e9292;
}
body input:hover,
body select:hover {
border: 1px solid #8e9292;
box-shadow: 0 0 0 4px #9fcee6;
}
body select { body select {
border-radius: 4px; border-radius: 4px;
border: 1px solid #8E9292; background: url(/icons/select.png) no-repeat 98% #ffffff;
padding: 16px; background-size: 10px 17px;
width: 100%;
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 8.89' xml:space='preserve'%3e%3cpath d='M8 8.89c-.24 0-.46-.09-.63-.26L.26 1.53a.901.901 0 0 1 0-1.27C.43.1.66 0 .9 0s.47.1.64.26L8 6.74 14.47.27c.17-.17.4-.27.64-.27s.47.1.63.27c.17.17.26.4.26.64s-.1.47-.27.63l-7.1 7.09a.86.86 0 0 1-.63.26z' fill='%231474a2'/%3e%3c/svg%3e");
background-repeat: no-repeat;
background-position: 95% 50%;
background-size: 15px 9px;
appearance: none; appearance: none;
font-size: 16px; font-size: 16px;
color: #000; color: #000;
} }
body .creditCardSpecific div { body h3 {
padding: 8px 0; font-size: 1rem;
} font-weight: 600;
body .creditCardSpecific div .headerlinecontainer { margin-top: 1.375rem;
display: none; margin-bottom: 0.6875rem;
color: #000;
} }
body .creditCardSpecific div label { body .creditCardSpecific div label {
font-weight: 500; font-weight: 500;
@ -124,82 +119,59 @@ body #cardExpirationContainer {
body .optional-label span { body .optional-label span {
display: none; display: none;
} }
body .optional-label:after { body .buttonContainer #sghopcancelbutton {
content: " (optional)"; float: left;
font-weight: 300;
font-style: normal;
font-size: 15px;
} }
body .buttonContainer { body .buttonContainer #sghopsubmitbutton {
height: 48px; float: right;
} }
body .buttonContainer button { body .buttonContainer #sghopsubmitbutton.creditCardSpecific {
position: relative; float: right;
background: linear-gradient(270deg, #1574a1 0%, #003d58 100%);
border: none;
border-radius: 8px;
color: #fff;
justify-content: center;
font-weight: 500;
font-size: 16px;
font-family: inherit;
letter-spacing: inherit;
height: 48px;
} }
@media (hover: hover) { @media (max-width: 500px) {
body .buttonContainer button { body .buttonContainer #sghopsubmitbutton.creditCardSpecific {
background: linear-gradient(270deg, #1574a1 0%, #003d58 100%); float: left;
cursor: pointer; width: 100%;
} }
} }
body .buttonContainer button:focus { body .buttonContainer #selectPaymentTypeButton {
box-shadow: 0 0 0 3px, 0 0 0 5.5px #06577c; float: right;
} }
body .buttonContainer button:focus, body .buttonContainer button:focus-visible { @media (max-width: 500px) {
outline: none; body .buttonContainer #selectPaymentTypeButton {
box-shadow: 0 0 0 3px, 0 0 0 5.5px #06577c; float: left;
color: #fff; width: 100%;
background: linear-gradient(270deg, rgb(6, 87, 124) 0%, rgb(6, 87, 124) 100%); }
} }
body .buttonContainer button:disabled { body .buttonContainer .btn-success {
background: #e3e4e4 !important; width: 99%;
background: linear-gradient(270deg, #e3e4e4 0%, #e3e4e4 100%) !important; height: 45px;
color: #4d5151 !important;
font-weight: 400;
height: 48px;
border: none; border: none;
border-radius: 8px; border-radius: 22.5px;
font-size: 16px;
line-height: 0.94;
font-weight: 600;
color: #ffffff;
background-color: #0c7e47;
border-color: #0a673a;
font-family: Urbanist;
cursor: pointer; cursor: pointer;
pointer-events: all;
} }
body .buttonContainer button.has-loader { body .buttonContainer .btn-success:hover {
color: #fff; background-color: #084f2d;
background: #06577c;
box-shadow: 0 0 0 3px, 0 0 0 5.5px #06577c;
pointer-events: auto;
} }
body .buttonContainer button.delay { body .buttonContainer .btn-success:focus, body .buttonContainer .btn-success:active {
transition: background 0s 0s ease-in-out; outline: none;
background-color: #0c7e47;
box-shadow: 0 0 0 3px #ffffff, 0 0 0 5.5px #0c7e47;
} }
body .has-error input, body .has-error input,
body .has-error select { body .has-error select {
border: 1px solid #d4281c; border-color: #db0020;
}
body .has-error input:focus,
body .has-error select:focus {
box-shadow: 0 0 0 2.5px #fcbfbb;
}
body .has-error input:hover,
body .has-error select:hover {
border: 1px solid #d4281c;
box-shadow: 0 0 0 4px #fcbfbb;
} }
body .has-error select { body .has-error select {
border: 1px solid #d4281c; background: url(/icons/select-error.png) no-repeat 98% #ffffff;
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 8.89' xml:space='preserve'%3e%3cpath d='M8 8.89c-.24 0-.46-.09-.63-.26L.26 1.53a.901.901 0 0 1 0-1.27C.43.1.66 0 .9 0s.47.1.64.26L8 6.74 14.47.27c.17-.17.4-.27.64-.27s.47.1.63.27c.17.17.26.4.26.64s-.1.47-.27.63l-7.1 7.09a.86.86 0 0 1-.63.26z' fill='%23d4281c'/%3e%3c/svg%3e"); background-size: 10px 17px;
background-repeat: no-repeat;
background-position: 95% 50%;
background-size: 15px 9px;
appearance: none; appearance: none;
} }
body .has-error small { body .has-error small {
@ -212,14 +184,17 @@ body .cc-error-container #alert-message {
} }
#fmg-checkout-shared .form-group .list-group.radio .list-group-item { #fmg-checkout-shared .form-group .list-group.radio .list-group-item {
border-radius: 10px; border-radius: 5px;
}
#fmg-checkout-shared .form-group .list-group.radio .list-group-item.active {
box-shadow: 0 0 0 5px #b9d7e6;
} }
#fmg-checkout-shared .form-group .list-group.radio .list-group-item label { #fmg-checkout-shared .form-group .list-group.radio .list-group-item label {
padding: 12px 20px; padding: 12px 20px;
} }
#fmg-checkout-shared #applepay-and-paypal-container { #fmg-checkout-shared #applepay-and-paypal-container {
display: inline-flex; display: inline-flex;
width: 100%; width: 80%;
justify-content: space-between; justify-content: space-between;
} }
#fmg-checkout-shared #applepay-and-paypal-container #paypalParentDiv { #fmg-checkout-shared #applepay-and-paypal-container #paypalParentDiv {
@ -227,38 +202,31 @@ body .cc-error-container #alert-message {
} }
#fmg-checkout-shared #applepay-and-paypal-container .form-group { #fmg-checkout-shared #applepay-and-paypal-container .form-group {
margin: 0; margin: 0;
width: 100%; width: 48%;
} }
#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection #applepayParentLink { #fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection .list-group-item {
border-radius: 35px;
}
#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection .list-group-item#applepayParentLink {
margin: 0; margin: 0;
padding: 10px 0; border: none;
background-color: #000000; box-shadow: none;
} }
#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection #applepayParentLink label { #fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection .list-group-item#applepayParentLink label {
padding: 0; padding: 0;
} }
#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection #applepayParentLink label apple-pay-button { #fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection .list-group-item#applepayParentLink label apple-pay-button {
width: 100%;
vertical-align: middle; vertical-align: middle;
} --apple-pay-button-height: 47px;
#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection #applepayParentLink.list-group-item { --apple-pay-button-border-radius: 35px;
box-shadow: none; --apple-pay-button-padding: 2px 0;
border-radius: 10px;
border: 1px solid #8E9292;
}
#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group.paymentSelection #applepayParentLink:host {
--apple-pay-button-width: auto;
} }
#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group #paypalParentLink { #fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group #paypalParentLink {
margin: 0; margin: 0;
padding: 2px 0;
} }
#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group #paypalParentLink #paypalImage { #fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group #paypalParentLink #paypalImage {
max-width: 50%; max-width: 90px;
}
#fmg-checkout-shared #applepay-and-paypal-container .form-group .list-group #paypalParentLink.list-group-item {
box-shadow: none;
border-radius: 10px;
border: 1px solid #8E9292;
} }
#fmg-checkout-shared #applepay-and-paypal-container.no-applepay .form-group { #fmg-checkout-shared #applepay-and-paypal-container.no-applepay .form-group {
width: 100%; width: 100%;
@ -273,15 +241,19 @@ body .cc-error-container #alert-message {
width: 100%; width: 100%;
} }
#fmg-checkout-shared #applepay-and-paypal-container.no-applepay .form-group .list-group #paypalParentLink #paypalImage { #fmg-checkout-shared #applepay-and-paypal-container.no-applepay .form-group .list-group #paypalParentLink #paypalImage {
max-width: 25%; max-width: 5.3125rem;
} }
#fmg-checkout-shared #other-payments-container label { #fmg-checkout-shared #other-payments-container label {
display: inline-flex; display: block;
text-align: left; text-align: left;
align-items: flex-start; align-items: flex-start;
justify-content: space-between; justify-content: space-between;
font-size: 16px; font-size: 16px;
font-weight: 500; font-weight: 600;
line-height: 1.56;
}
#fmg-checkout-shared #other-payments-container label.control-label {
justify-content: start;
} }
#fmg-checkout-shared #other-payments-container label span.paymentOptionText { #fmg-checkout-shared #other-payments-container label span.paymentOptionText {
margin: auto 0; margin: auto 0;
@ -294,35 +266,56 @@ body .cc-error-container #alert-message {
#fmg-checkout-shared #other-payments-container #afterpayParentLink label > span:last-of-type { #fmg-checkout-shared #other-payments-container #afterpayParentLink label > span:last-of-type {
width: 0; width: 0;
} }
#fmg-checkout-shared #other-payments-container #creditCardParentDiv #creditCardParentLink {
margin-bottom: 0;
}
@media (max-width: 33.9em) {
#fmg-checkout-shared #other-payments-container #creditCardParentDiv #creditCardParentLink {
min-height: 3.5rem;
}
}
#fmg-checkout-shared #other-payments-container #creditCardParentDiv #creditCardParentLink label {
display: flex;
}
#fmg-checkout-shared #other-payments-container #creditCardParentDiv #creditCardParentLink label .paymentOptionText {
text-align: left;
}
#fmg-checkout-shared #other-payments-container #creditCardParentDiv.active { #fmg-checkout-shared #other-payments-container #creditCardParentDiv.active {
margin-bottom: 32px; padding-bottom: 10px;
border: 1px solid #0070D1; border: 1px solid #0070D1;
border-radius: 10px; border-radius: 5px;
} }
#fmg-checkout-shared #other-payments-container #creditCardParentDiv.active > .paymentSelection #creditCardParentLink { #fmg-checkout-shared #other-payments-container #creditCardParentDiv.active > .paymentSelection #creditCardParentLink {
border-width: 0 0 2px 0; min-height: unset;
border-bottom-color: #0070D1; border-bottom-color: #0070D1;
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
} }
#fmg-checkout-shared #other-payments-container #creditCardParentDiv .paymentSelection #creditCardImages { #fmg-checkout-shared #other-payments-container #creditCardParentDiv .paymentSelection #creditCardImages {
display: flex;
flex-direction: row;
width: 50%; width: 50%;
text-align: right; justify-content: flex-end;
} }
#fmg-checkout-shared #other-payments-container #creditCardParentDiv .paymentSelection #creditCardImages > img { #fmg-checkout-shared #other-payments-container #creditCardParentDiv .paymentSelection #creditCardImages img {
width: 20%; max-width: fit-content;
width: 25%;
}
#fmg-checkout-shared #other-payments-container #creditCardParentDiv .paymentSelection #creditCardImages img:not(:last-of-type) {
margin-right: 1%;
} }
#fmg-checkout-shared #other-payments-container #creditCardParentDiv .creditCardSpecific { #fmg-checkout-shared #other-payments-container #creditCardParentDiv .creditCardSpecific {
padding: 0 16px; padding: 0 2%;
} }
#fmg-checkout-shared #other-payments-container #creditCardParentDiv .creditCardSpecific > .form-group { #fmg-checkout-shared #other-payments-container #creditCardParentDiv .creditCardSpecific > .form-group {
width: 100%; width: 100%;
margin-bottom: 0.5rem;
} }
#fmg-checkout-shared #other-payments-container .italicSmall { #fmg-checkout-shared #other-payments-container .italicSmall {
margin-top: 10px; margin-top: 10px;
} }
#fmg-checkout-shared #other-payments-container .disclaimerContainerv2 { #fmg-checkout-shared #other-payments-container .disclaimerContainerv2 {
margin-bottom: 32px; margin: 1rem 0;
} }
@media only screen and (max-device-width: 767px) { @media only screen and (max-device-width: 767px) {
#fmg-checkout-shared #applepay-and-paypal-container { #fmg-checkout-shared #applepay-and-paypal-container {
@ -332,3 +325,36 @@ body .cc-error-container #alert-message {
width: 100%; width: 100%;
} }
} }
.glyphicon {
position: relative;
top: 1px;
display: inline-block;
font-family: Glyphicons Halflings;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
}
.form-control-feedback {
position: absolute;
top: 0;
right: 0;
z-index: 2;
display: block;
width: 38px;
height: 38px;
line-height: 38px;
text-align: center;
pointer-events: none;
top: 27px;
}
.glyphicon-remove:before {
content: "\e014";
}
.glyphicon-ok:before {
content: "\e013";
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
public/icons/select.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -7,18 +7,20 @@ body {
font-family: Urbanist, Roboto, Arial, sans-serif; font-family: Urbanist, Roboto, Arial, sans-serif;
font-weight: 400; font-weight: 400;
letter-spacing: .03em; letter-spacing: .03em;
color: #000; color: #4d4e53;
margin: 0; margin: 0;
background-color: white; background-color: white;
padding: 8px; margin-bottom: 1rem;
font-size: 1rem;
.validation-info { .validation-info {
display: none; color: #db0020
} }
.italicSmall { .italicSmall {
font-style: normal; font-weight: normal;
font-size: 14px; font-style: italic;
font-size: 12px;
} }
span { span {
@ -28,79 +30,76 @@ body {
a { a {
color: #0070D1; color: #0070D1;
text-decoration: none; text-decoration: none;
&:hover {
text-decoration: underline;
color: #167cac;
}
} }
.form-group { .form-group {
display: flex; display: block;
flex-direction: column; position: relative;
} }
.headerlinecontainer { .headerlinecontainer {
color: #000;
.headerline1 { .headerline1 {
font-size: 20px; margin-bottom: .75rem;
line-height: 32px; margin-top: 0rem;
font-weight: 400; font-weight: 600;
margin: 24px 0; font-size: 1.25rem;
text-align: center; line-height: 1.375rem;
}
.headerline5v2 {
display: block;
padding: .75rem 0;
color: #db0020;
font-style: italic;
font-size: 12px;
} }
} }
input, input,
select { select {
margin-top: 4px; height: 2.8125rem;
} border: solid 1px #b3b4b5;
input,
select {
border-radius: 4px; border-radius: 4px;
border: 1px solid #8E9292; box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.2);
padding: 16px; color: #525656;
font-size: 16px;
font-family: inherit; font-family: inherit;
letter-spacing: inherit; font-weight: normal;
color: #000; font-style: normal;
background-color: #fff; font-stretch: normal;
font-size: 16px;
line-height: 1.56;
padding: 10px;
width: 100%;
&:focus, &:focus,
&:focus-visible { &:focus-visible {
box-shadow: 0 0 0 2.5px #1574a1; border: solid 2.5px #0070d1;
border: 1px solid transparent;
outline: none; outline: none;
} }
&:disabled,
&.disabled {
background-color: #f5f5f5;
filter: grayscale(100%);
&:hover {
box-shadow: 0 0 0 4px transparent;
border: 1px solid #8e9292;
}
}
&:hover {
border: 1px solid #8e9292;
box-shadow: 0 0 0 4px #9fcee6;
}
} }
select { select {
border-radius: 4px; border-radius: 4px;
border: 1px solid #8E9292; background: url(/icons/select.png) no-repeat 98% #ffffff;;
padding: 16px; background-size: 10px 17px;
width: 100%;
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 8.89' xml:space='preserve'%3e%3cpath d='M8 8.89c-.24 0-.46-.09-.63-.26L.26 1.53a.901.901 0 0 1 0-1.27C.43.1.66 0 .9 0s.47.1.64.26L8 6.74 14.47.27c.17-.17.4-.27.64-.27s.47.1.63.27c.17.17.26.4.26.64s-.1.47-.27.63l-7.1 7.09a.86.86 0 0 1-.63.26z' fill='%231474a2'/%3e%3c/svg%3e");
background-repeat: no-repeat;
background-position: 95% 50%;
background-size: 15px 9px;
appearance: none; appearance: none;
font-size: 16px; font-size: 16px;
color: #000; color: #000;
} }
h3 {
font-size: 1rem;
font-weight: 600;
margin-top: 1.375rem;
margin-bottom: .6875rem;
color: #000;
}
.creditCardSpecific { .creditCardSpecific {
div { div {
padding: 8px 0;
.headerlinecontainer {
display: none;
}
label { label {
font-weight: 500; font-weight: 500;
} }
@ -133,63 +132,57 @@ body {
span { span {
display: none; display: none;
} }
&:after {
content: " (optional)";
font-weight: 300;
font-style: normal;
font-size: 15px;
}
} }
.buttonContainer { .buttonContainer {
height: 48px;
button { #sghopcancelbutton {
position: relative; float: left;
background: linear-gradient(270deg, #1574a1 0%, #003d58 100%); }
#sghopsubmitbutton {
float: right;
}
#sghopsubmitbutton.creditCardSpecific {
float: right;
@media(max-width: 500px) {
float: left;
width: 100%;
}
}
#selectPaymentTypeButton {
float: right;
@media(max-width: 500px) {
float: left;
width: 100%;
}
}
.btn-success {
width: 99%;
height: 45px;
border: none; border: none;
border-radius: 8px; border-radius: 22.5px;
color: #fff;
justify-content: center;
font-weight: 500;
font-size: 16px; font-size: 16px;
font-family: inherit; line-height: 0.94;
letter-spacing: inherit; font-weight: 600;
height: 48px; color: #ffffff;
@media (hover: hover) { background-color: #0c7e47;
background: linear-gradient(270deg, #1574a1 0%, #003d58 100%); border-color: #0a673a;
cursor: pointer; font-family: Urbanist;
cursor: pointer;
&:hover {
background-color: #084f2d;
} }
&:focus { &:focus,
box-shadow: 0 0 0 3px, 0 0 0 5.5px #06577c; &:active {
}
&:focus, // Mouse, touch, stylus focus
&:focus-visible {
// Keyboard focus for accessibility
outline: none; outline: none;
box-shadow: 0 0 0 3px, 0 0 0 5.5px #06577c; background-color: #0c7e47;
color: #fff; box-shadow: 0 0 0 3px #ffffff, 0 0 0 5.5px #0c7e47;
background: linear-gradient(270deg, rgba(6, 87, 124, 1) 0%, rgba(6, 87, 124, 1) 100%);
}
&:disabled {
background: #e3e4e4 !important;
background: linear-gradient(270deg, #e3e4e4 0%, #e3e4e4 100%) !important;
color: #4d5151 !important;
font-weight: 400;
height: 48px;
border: none;
border-radius: 8px;
cursor: pointer;
pointer-events: all;
}
&.has-loader {
color: #fff;
background: #06577c;
box-shadow: 0 0 0 3px, 0 0 0 5.5px #06577c;
pointer-events: auto;
}
&.delay {
// fixes flicker while transitioning between states
transition: background 0s 0s ease-in-out;
} }
} }
} }
@ -198,21 +191,11 @@ body {
.has-error { .has-error {
input, input,
select { select {
border: 1px solid #d4281c; border-color: #db0020;
&:focus {
box-shadow: 0 0 0 2.5px #fcbfbb;
}
&:hover {
border: 1px solid #d4281c;
box-shadow: 0 0 0 4px #fcbfbb;
}
} }
select { select {
border: 1px solid #d4281c; background: url(/icons/select-error.png) no-repeat 98% #ffffff;;
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 8.89' xml:space='preserve'%3e%3cpath d='M8 8.89c-.24 0-.46-.09-.63-.26L.26 1.53a.901.901 0 0 1 0-1.27C.43.1.66 0 .9 0s.47.1.64.26L8 6.74 14.47.27c.17-.17.4-.27.64-.27s.47.1.63.27c.17.17.26.4.26.64s-.1.47-.27.63l-7.1 7.09a.86.86 0 0 1-.63.26z' fill='%23d4281c'/%3e%3c/svg%3e"); background-size: 10px 17px;
background-repeat: no-repeat;
background-position: 95% 50%;
background-size: 15px 9px;
appearance: none; appearance: none;
} }
small { small {
@ -234,7 +217,11 @@ body {
.list-group { .list-group {
&.radio { &.radio {
.list-group-item { .list-group-item {
border-radius: 10px; border-radius: 5px;
&.active {
box-shadow: 0 0 0 5px #b9d7e6;
}
label { label {
padding: 12px 20px; padding: 12px 20px;
@ -246,8 +233,7 @@ body {
#applepay-and-paypal-container { #applepay-and-paypal-container {
display: inline-flex; display: inline-flex;
width: 100%; width: 80%;
justify-content: space-between; justify-content: space-between;
#paypalParentDiv { #paypalParentDiv {
@ -256,49 +242,38 @@ body {
.form-group { .form-group {
margin: 0; margin: 0;
width: 100%; width: 48%;
.list-group { .list-group {
&.paymentSelection { &.paymentSelection {
.list-group-item {
border-radius: 35px;
#applepayParentLink { &#applepayParentLink {
margin: 0;
margin: 0; border: none;
padding: 10px 0;
background-color: #000000;
label {
padding: 0;
apple-pay-button {
vertical-align: middle;
}
}
&.list-group-item {
box-shadow: none; box-shadow: none;
border-radius: 10px;
border: 1px solid #8E9292;
}
&:host { label {
--apple-pay-button-width: auto; padding: 0;
apple-pay-button {
width: 100%;
vertical-align: middle;
--apple-pay-button-height: 47px;
--apple-pay-button-border-radius: 35px;
--apple-pay-button-padding: 2px 0;
}
}
} }
} }
} }
#paypalParentLink { #paypalParentLink {
margin: 0; margin: 0;
padding: 2px 0;
#paypalImage { #paypalImage {
max-width: 50%; max-width: 90px;
}
&.list-group-item {
box-shadow: none;
border-radius: 10px;
border: 1px solid #8E9292;
} }
} }
} }
@ -324,7 +299,7 @@ body {
#paypalParentLink { #paypalParentLink {
#paypalImage { #paypalImage {
max-width: 25%; max-width: 5.3125rem;
} }
} }
} }
@ -334,14 +309,19 @@ body {
#other-payments-container { #other-payments-container {
label { label {
display: inline-flex; display: block;
text-align: left; text-align: left;
align-items: flex-start; align-items: flex-start;
justify-content: space-between; justify-content: space-between;
font-size: 16px; font-size: 16px;
font-weight: 500; font-weight: 600;
line-height: 1.56;
&.control-label {
justify-content: start;
}
span { span {
&.paymentOptionText { &.paymentOptionText {
@ -367,14 +347,28 @@ body {
} }
#creditCardParentDiv { #creditCardParentDiv {
#creditCardParentLink {
margin-bottom: 0;
@media (max-width: 33.9em) {
min-height: 3.5rem;
}
label {
display: flex;
.paymentOptionText {
text-align: left;
}
}
}
&.active { &.active {
margin-bottom: 32px; padding-bottom: 10px;
border: 1px solid #0070D1; border: 1px solid #0070D1;
border-radius: 10px; border-radius: 5px;
> .paymentSelection { > .paymentSelection {
#creditCardParentLink { #creditCardParentLink {
border-width: 0 0 2px 0; min-height: unset;
border-bottom-color: #0070D1; border-bottom-color: #0070D1;
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
@ -384,20 +378,28 @@ body {
.paymentSelection { .paymentSelection {
#creditCardImages { #creditCardImages {
display: flex;
flex-direction: row;
width: 50%; width: 50%;
text-align: right; justify-content: flex-end;
> img { img {
width: 20%; max-width: fit-content;
width: 25%;
&:not(:last-of-type) {
margin-right: 1%;
}
} }
} }
} }
.creditCardSpecific { .creditCardSpecific {
padding: 0 16px; padding: 0 2%;
> .form-group { > .form-group {
width: 100%; width: 100%;
margin-bottom: .5rem;
} }
} }
} }
@ -407,7 +409,7 @@ body {
} }
.disclaimerContainerv2 { .disclaimerContainerv2 {
margin-bottom: 32px; margin: 1rem 0;
} }
} }
@ -422,4 +424,35 @@ body {
} }
} }
} }
}
.glyphicon {
position: relative;
top: 1px;
display: inline-block;
font-family: Glyphicons Halflings;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
}
.form-control-feedback {
position: absolute;
top: 0;
right: 0;
z-index: 2;
display: block;
width: 38px;
height: 38px;
line-height: 38px;
text-align: center;
pointer-events: none;
top: 27px;
}
.glyphicon-remove:before {
content: "\e014";
}
.glyphicon-ok:before {
content: "\e013";
} }

View file

@ -4,26 +4,25 @@
<div class="justify-content-center"> <div class="justify-content-center">
<siteHeader cmsWidgetName="SiteHeaderWidget" /> <siteHeader cmsWidgetName="SiteHeaderWidget" />
</div> </div>
<div class="iss-heritage-container-width"> <div class="iss-heritage-container-width payment-page-container">
<div class="payment-page-container iss-heritage-content-container-width"> <div id="card-container" class="row">
<alert <div class="col-lg-8">
v-if="displayPayInAdvanceCreditCardAlert" <alert
name="payInAdvanceCreditCardErrorAlert" v-if="displayPayInAdvanceCreditCardAlert"
class="my-4" name="payInAdvanceCreditCardErrorAlert"
cmsWidgetName="PayInAdvanceCreditCardErrorAlertWidget" class="my-4"
alertClass="alert-danger" cmsWidgetName="PayInAdvanceCreditCardErrorAlertWidget"
:isDismissible="false" alertClass="alert-danger"
@textLinkClicked="paymentFailedPayLater" /> :isDismissible="false"
<alert @textLinkClicked="paymentFailedPayLater" />
v-if="displayPayInAdvanceAfterPayAlert" <alert
name="payInAdvanceAfterPayErrorAlert" v-if="displayPayInAdvanceAfterPayAlert"
class="my-4" name="payInAdvanceAfterPayErrorAlert"
cmsWidgetName="PayInAdvanceAfterpayErrorAlertWidget" class="my-4"
alertClass="alert-danger" cmsWidgetName="PayInAdvanceAfterpayErrorAlertWidget"
:isDismissible="false" alertClass="alert-danger"
@textLinkClicked="paymentFailedPayLater" /> :isDismissible="false"
@textLinkClicked="paymentFailedPayLater" />
<div id="card-container">
<iframe <iframe
id="card-frame" id="card-frame"
ref="paymentFrame" ref="paymentFrame"
@ -32,23 +31,23 @@
name="card-frame" name="card-frame"
seamless seamless
scrolling="no" scrolling="no"
allow="payment *; microphone *; geolocation *;"> allow="payment *; microphone *; geolocation *; loopback-network *">
</iframe> </iframe>
</div> </div>
<div class="col-lg-4 col-md-10 col-xs-12">
<div <div>
class="px-2"> <cartDropdown
<hr :class="{'my-0': isCreditCard}"> ref="cart"
<cartDropdown :readOnly="true"
ref="cart" :showAsPaid="false"
:readOnly="true" recyclingModalCmsWidgetName="RecycleModal"
:showAsPaid="false" servicePackageTitleWidgetName="ServicePackageTitle" />
recyclingModalCmsWidgetName="RecycleModal" </div>
servicePackageTitleWidgetName="ServicePackageTitle" />
<hr class="my-0">
</div> </div>
</div>
<div class="col-xs-12">
<siteFooter <siteFooter
class="footer-component"
ref="siteFooter" ref="siteFooter"
cmsWidgetName="SiteFooterWidget" cmsWidgetName="SiteFooterWidget"
:isForwardActionDisabled="true" :isForwardActionDisabled="true"
@ -70,6 +69,7 @@
:target="isPaypal ? '_top' : 'card-frame'" :target="isPaypal ? '_top' : 'card-frame'"
method="POST" method="POST"
:action="checkoutUrl"> :action="checkoutUrl">
<input type="hidden" name="paymentType" :value="paymentType" />
<input <input
type="hidden" type="hidden"
name="sgSessionId" name="sgSessionId"
@ -197,7 +197,7 @@
<input <input
type="hidden" type="hidden"
name="billTo_postalCode" name="billTo_postalCode"
value="" /> :value="zipCode" />
<input <input
type="hidden" type="hidden"
name="billTo_postalCodeShow" name="billTo_postalCodeShow"
@ -408,6 +408,7 @@ import alert from '@/ux-components/alert/alert.vue';
import cartDropdown from '@/iss-components/cart-dropdown/cart-dropdown.vue'; import cartDropdown from '@/iss-components/cart-dropdown/cart-dropdown.vue';
import { formatAmountInDollars } from '@/helpers/text-helper'; import { formatAmountInDollars } from '@/helpers/text-helper';
import showIssLoadingModal from '@/helpers/loading-modal-helper'; import showIssLoadingModal from '@/helpers/loading-modal-helper';
import { supportsApplePay } from '@/helpers/browser-helper';
export default { export default {
name: 'payment-page', name: 'payment-page',
@ -432,6 +433,11 @@ export default {
}, },
mixins: [BaseFormMixin], mixins: [BaseFormMixin],
async beforeRouteEnter(to, from, next) { async beforeRouteEnter(to, from, next) {
const paymentType = useMainStore().order.payment.paymentMethod;
if (paymentType === paymentMethods.PAYPAL) {
useMainStore().savePaymentMethodChoice(paymentMethods.CREDIT_CARD);
}
// Call APIs // Call APIs
const cmsContentPromise = fetchCmsContentForPage(to.query.issPage); const cmsContentPromise = fetchCmsContentForPage(to.query.issPage);
@ -540,6 +546,9 @@ export default {
isAfterPay() { isAfterPay() {
return this.paymentType === paymentMethods.AFTERPAY; return this.paymentType === paymentMethods.AFTERPAY;
}, },
isPayNow() {
return this.paymentType === paymentMethods.PayNow;
},
displayPayInAdvanceCreditCardAlert() { displayPayInAdvanceCreditCardAlert() {
return this.displayPayInAdvanceAlert(paymentMethods.CREDIT_CARD); return this.displayPayInAdvanceAlert(paymentMethods.CREDIT_CARD);
}, },
@ -651,7 +660,8 @@ export default {
}, },
getZipCode() { getZipCode() {
return ( return (
useMainStore().order.serviceLocation.zipCode useMainStore().order.customer.address.zipCode
?? useMainStore().order.serviceLocation.zipCode
?? useMainStore().order.serviceLocation.provider.address.zipCode ?? useMainStore().order.serviceLocation.provider.address.zipCode
); );
}, },
@ -703,7 +713,11 @@ export default {
if (iframe) { if (iframe) {
iframe.onload = () => { iframe.onload = () => {
if (iframe.contentWindow) { if (iframe.contentWindow) {
iframe.contentWindow.postMessage('hybrid', '*'); if (supportsApplePay()) {
iframe.contentWindow.postMessage("hybrid-with-applepay", "*");
} else {
iframe.contentWindow.postMessage('hybrid', '*');
}
if (this.isAfterPay) { if (this.isAfterPay) {
iframe.contentWindow.postMessage('afterpay', '*'); iframe.contentWindow.postMessage('afterpay', '*');
@ -783,12 +797,19 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.iss-heritage-container-width { .iss-heritage-container-width.payment-page-container {
.payment-page-container { padding: 0 .9375rem;
position: relative;
min-height: 1px; #card-container {
padding-left: .9375rem; padding-top: 1.375rem;
padding-right: .9375rem; margin: 0;
> * {
padding: 0 .9375rem;
}
}
.footer-component:deep(.footer) {
margin: 0;
} }
} }