diff --git a/modules/ppcp-settings/images/icon-arrow-down.svg b/modules/ppcp-settings/images/icon-arrow-down.svg new file mode 100644 index 000000000..3adce0c2e --- /dev/null +++ b/modules/ppcp-settings/images/icon-arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/modules/ppcp-settings/images/icon-close.svg b/modules/ppcp-settings/images/icon-close.svg new file mode 100644 index 000000000..cfb1aef48 --- /dev/null +++ b/modules/ppcp-settings/images/icon-close.svg @@ -0,0 +1,3 @@ + diff --git a/modules/ppcp-settings/images/icon-dashboard-list.svg b/modules/ppcp-settings/images/icon-dashboard-list.svg new file mode 100644 index 000000000..a9dcb265d --- /dev/null +++ b/modules/ppcp-settings/images/icon-dashboard-list.svg @@ -0,0 +1,9 @@ + diff --git a/modules/ppcp-settings/images/icon-dashboard-status.svg b/modules/ppcp-settings/images/icon-dashboard-status.svg new file mode 100644 index 000000000..38a142a4c --- /dev/null +++ b/modules/ppcp-settings/images/icon-dashboard-status.svg @@ -0,0 +1,6 @@ + diff --git a/modules/ppcp-settings/images/icon-dashboard-support.svg b/modules/ppcp-settings/images/icon-dashboard-support.svg new file mode 100644 index 000000000..b1dc452c4 --- /dev/null +++ b/modules/ppcp-settings/images/icon-dashboard-support.svg @@ -0,0 +1,9 @@ + diff --git a/modules/ppcp-settings/images/icon-refresh.svg b/modules/ppcp-settings/images/icon-refresh.svg new file mode 100644 index 000000000..6a7c9f262 --- /dev/null +++ b/modules/ppcp-settings/images/icon-refresh.svg @@ -0,0 +1,4 @@ + diff --git a/modules/ppcp-settings/resources/css/_variables.scss b/modules/ppcp-settings/resources/css/_variables.scss index 69d1912e1..2c14894d3 100644 --- a/modules/ppcp-settings/resources/css/_variables.scss +++ b/modules/ppcp-settings/resources/css/_variables.scss @@ -1,4 +1,5 @@ $color-white: #fff; +$color-black: #000; $color-blue: #1D35B4; $color-blueberry: #3858E9; $color-gray-900: #1E1E1E; diff --git a/modules/ppcp-settings/resources/css/components/reusable-components/_button.scss b/modules/ppcp-settings/resources/css/components/reusable-components/_button.scss index be4174a0a..d084ce4d7 100644 --- a/modules/ppcp-settings/resources/css/components/reusable-components/_button.scss +++ b/modules/ppcp-settings/resources/css/components/reusable-components/_button.scss @@ -1,4 +1,4 @@ -button.components-button { +button.components-button, a.components-button { &.is-primary, &.is-secondary { &:not(:disabled) { background-color: $color-blueberry; @@ -22,13 +22,17 @@ button.components-button { &.is-primary { @include font(13, 16, 500); + color:$color-white; } - &.is-secondary { - padding: 6px 12px; - @include font(13, 20, 500); - color: $color-white; - border: none; + &.is-secondary:not(:disabled) { + border-color:$color-blueberry; + background-color:$color-white; + color:$color-blueberry; + &:hover{ + background-color:$color-white; + background:none; + } } &.is-tertiary { diff --git a/modules/ppcp-settings/resources/css/components/reusable-components/_fields.scss b/modules/ppcp-settings/resources/css/components/reusable-components/_fields.scss new file mode 100644 index 000000000..9f6274085 --- /dev/null +++ b/modules/ppcp-settings/resources/css/components/reusable-components/_fields.scss @@ -0,0 +1,43 @@ +.ppcp-r { + + &__radio-value { + @include hide-input-field; + + &:checked { + + .ppcp-r__radio-presentation { + background: $color-white; + width: 20px; + height: 20px; + border: 6px solid $color-blueberry; + } + } + } + + &__checkbox-value { + @include hide-input-field; + + &:not(:checked) + .ppcp-r__checkbox-presentation img { + display: none; + } + + &:checked { + + .ppcp-r__checkbox-presentation { + width: 20px; + height: 20px; + border: none; + + img { + border-radius: 2px; + } + } + } + } + + &__radio-presentation { + @include fake-input-field(20px); + } + + &__checkbox-presentation { + @include fake-input-field(2px); + } +} diff --git a/modules/ppcp-settings/resources/css/components/reusable-components/_settings-wrapper.scss b/modules/ppcp-settings/resources/css/components/reusable-components/_settings-wrapper.scss index 6c20b8646..b83a1a94f 100644 --- a/modules/ppcp-settings/resources/css/components/reusable-components/_settings-wrapper.scss +++ b/modules/ppcp-settings/resources/css/components/reusable-components/_settings-wrapper.scss @@ -4,7 +4,7 @@ width: 652px; max-width: 100%; margin: 0 auto; - padding:0 16px; + padding: 0 16px; box-sizing: border-box; } @@ -16,4 +16,36 @@ box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.15); background-color: $color-white; } + + &-settings-card { + background-color: $color-white; + padding: 48px; + border-radius: 8px; + box-shadow: 0 2px 4px 0 #0000001A; + @media screen and (max-width: 480px) { + padding: 24px; + } + + &__header { + display: flex; + align-items: center; + gap: 18px; + padding-bottom: 18px; + border-bottom: 2px solid $color-gray-700; + margin-bottom: 32px; + } + + &__title { + @include font(16, 24, 600); + color: $color-blueberry; + margin: 0 0 4px 0; + display: block; + } + + &__description { + @include font(14, 20, 400); + color: $color-gray-800; + margin: 0; + } + } } diff --git a/modules/ppcp-settings/resources/css/components/reusable-components/_tabs.scss b/modules/ppcp-settings/resources/css/components/reusable-components/_tabs.scss new file mode 100644 index 000000000..5eaa4fb56 --- /dev/null +++ b/modules/ppcp-settings/resources/css/components/reusable-components/_tabs.scss @@ -0,0 +1,27 @@ +.components-tab-panel__tabs { + width: 100%; + position: relative; + margin:0 0 48px 0; + &::after { + content: ''; + position: absolute; + display: block; + width: 100%; + height: 1px; + background-color: $color-gray-400; + bottom: 0; + left: 0; + z-index: -1; + } + + button { + padding: 16px 20px; + @include font(13, 16, 400); + color: $color-gray-900; + + &.active-tab { + font-weight: 600; + box-shadow: 0px -4px 0px 0px $color-blueberry inset; + } + } +} diff --git a/modules/ppcp-settings/resources/css/components/reusable-components/_title-badge.scss b/modules/ppcp-settings/resources/css/components/reusable-components/_title-badge.scss new file mode 100644 index 000000000..2490f67e8 --- /dev/null +++ b/modules/ppcp-settings/resources/css/components/reusable-components/_title-badge.scss @@ -0,0 +1,15 @@ +.ppcp-r-title-badge{ + @include font(12, 16, 400); + margin-left:12px; + padding:4px 8px; + border-radius: 2px; + white-space: nowrap; + &--positive{ + color:#005C12; + background-color: #EDFAEF; + } + &--negative{ + color:#5c0000; + background-color: #faeded; + } +} diff --git a/modules/ppcp-settings/resources/css/components/screens/dashboard/_tab-dashboard.scss b/modules/ppcp-settings/resources/css/components/screens/dashboard/_tab-dashboard.scss new file mode 100644 index 000000000..f9ac41a0d --- /dev/null +++ b/modules/ppcp-settings/resources/css/components/screens/dashboard/_tab-dashboard.scss @@ -0,0 +1,182 @@ +.ppcp-r-tab-dashboard-todo { + margin: 0 0 48px 0; +} + +.ppcp-r-todo-item { + position: relative; + display: flex; + align-items: center; + gap: 18px; + width: 100%; + + &:not(:last-child) { + border-bottom: 1px solid $color-gray-400; + padding-bottom: 24px; + } + + &:not(:first-child) { + padding-top: 24px; + } + + p { + @include font(14, 20, 400); + } + + &__inner { + position: relative; + display: flex; + align-items: center; + gap: 18px; + } + + &__close { + margin-left: auto; + + &:hover { + cursor: pointer; + color: $color-blueberry; + } + } +} + +.ppcp-r-feature-item { + padding-top: 32px; + border-top: 1px solid $color-gray-400; + + &__title { + @include font(16, 20, 600); + color: $color-black; + display: block; + margin: 0 0 8px 0; + } + + &__description { + @include font(14, 20, 400); + color: $color-gray-800; + margin: 0 0 18px 0; + } + + &:not(:last-child) { + padding-bottom: 32px; + } + + &__buttons { + display: flex; + gap: 18px; + } + + &__notes { + display: flex; + flex-direction: column; + + span { + font-weight: 500; + } + } +} + +.ppcp-r-connection-status { + display: flex; + gap: 32px; + padding-bottom: 48px; + margin-bottom: 48px; + border-bottom: 2px solid $color-gray-500; + + &__status-status { + margin: 0 0 8px 0; + + strong { + @include font(14, 20, 700); + color: $color-black; + } + } + + &__show-all-data { + margin-left: 12px; + + &:hover { + cursor: pointer; + opacity: 0.8; + } + } + + &__status-label { + span { + @include font(12, 16, 400); + color: $color-gray-700; + } + } + + &__data { + display: flex; + flex-direction: column; + gap: 12px; + } + + &__status-row { + display: flex; + align-items: center; + + strong { + @include font(14, 20, 600); + color: $color-gray-800; + margin-right: 12px; + white-space: nowrap; + } + + span { + @include font(14, 20, 400); + color: $color-gray-800; + } + } + + @media screen and (max-width: 767px) { + flex-wrap: wrap; + &__status { + width: 100%; + } + &__status-row { + flex-wrap: wrap; + strong{ + width: 100%; + } + span{ + word-break:break-all; + } + } + } +} + +.ppcp-r-feature-refresh { + display: flex; + gap: 12px; + margin-bottom: 24px; + + &__row { + display: flex; + align-items: center; + } + + &__content { + width: 100%; + + &-title { + @include font(16, 20, 700); + color: $color-black; + display: block; + margin: 0 0 4px 0; + } + + p { + @include font(12, 20, 400); + color: $color-gray-700; + margin: 0; + } + } + + button { + display: flex; + gap: 4px; + @include font(13, 20, 400); + } +} diff --git a/modules/ppcp-settings/resources/css/components/screens/onboarding/_step-welcome.scss b/modules/ppcp-settings/resources/css/components/screens/onboarding/_step-welcome.scss index e9861b900..c37822b41 100644 --- a/modules/ppcp-settings/resources/css/components/screens/onboarding/_step-welcome.scss +++ b/modules/ppcp-settings/resources/css/components/screens/onboarding/_step-welcome.scss @@ -34,6 +34,12 @@ .components-base-control__field { margin: 0 0 24px 0; } + .ppcp-r-toggle-block__toggled-content > button{ + padding: 6px 12px; + @include font(13, 20, 500); + color: $color-white; + border: none; + } } .ppcp-r-welcome-features { @@ -81,3 +87,4 @@ } } } + diff --git a/modules/ppcp-settings/resources/css/style.scss b/modules/ppcp-settings/resources/css/style.scss index a6ce1cb76..822d24f48 100644 --- a/modules/ppcp-settings/resources/css/style.scss +++ b/modules/ppcp-settings/resources/css/style.scss @@ -13,5 +13,8 @@ @import './components/reusable-components/select-box'; @import './components/reusable-components/tab-navigation'; @import './components/reusable-components/navigation'; + @import './components/reusable-components/fields'; + @import './components/reusable-components/title-badge'; @import './components/screens/onboarding'; + @import './components/screens/dashboard/tab-dashboard'; } diff --git a/modules/ppcp-settings/resources/js/Components/ReusableComponents/Container.js b/modules/ppcp-settings/resources/js/Components/ReusableComponents/Container.js index b52058d79..e6b83e691 100644 --- a/modules/ppcp-settings/resources/js/Components/ReusableComponents/Container.js +++ b/modules/ppcp-settings/resources/js/Components/ReusableComponents/Container.js @@ -1,5 +1,18 @@ -const Container = ( props ) => { - return
+ { props.description } +
++ { __( + 'After making changes to your PayPal account, click Refresh to update your store features.', + 'woocommerce-paypal-payments' + ) } +
+{ props.description }
++ { feature.description } + { printNotes() } +
+