diff --git a/react/assets/forus-platform/scss/_common/blocks/block-attachments-list.scss b/react/assets/forus-platform/scss/_common/blocks/block-attachments-list.scss new file mode 100644 index 000000000..6c506ebfe --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-attachments-list.scss @@ -0,0 +1,65 @@ +.block.block-attachments-list { + display: flex; + flex-direction: column; + gap: 10px; + + .attachment-item { + background: #fff; + display: flex; + border: 1px solid #d4d9dd; + flex-direction: row; + padding: 5px 15px 5px 10px; + border-radius: var(--border-radius); + gap: 10px; + + .attachment-icon { + display: flex; + flex-direction: row; + gap: 10px; + + .mdi { + font-size: 18px; + line-height: 25px; + color: #004195; + } + + .attachment-size { + color: #646f79; + font: 600 13px/24px var(--base-font); + flex: 1 0 60px; + } + } + + .attachment-name { + color: #262626; + font: 600 13px/24px var(--base-font); + flex: 1 1 auto; + min-width: 0; + word-wrap: break-word; + white-space: normal; + } + + .attachment-date { + font: 400 13px/24px var(--base-font); + } + + .attachment-preview { + display: flex; + flex-direction: row; + color: #262626; + font: 500 12px/24px var(--base-font); + gap: 5px; + + .mdi { + font-size: 16px; + line-height: 24px; + height: 24px; + color: #555; + + &:hover { + color: var(--color-primary); + } + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-request-clarification.scss b/react/assets/forus-platform/scss/_common/blocks/block-request-clarification.scss new file mode 100644 index 000000000..d510a765e --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-request-clarification.scss @@ -0,0 +1,199 @@ +.block.block-request-clarification { + display: flex; + flex-direction: column; + + .block-title { + font: 500 14px/26px var(--base-font); + color: #282b39; + margin-bottom: 10px; + } + + .clarification-item { + display: flex; + flex-direction: row; + margin-bottom: 15px; + + .clarification-item-nth { + width: 30px; + min-width: 30px; + height: 30px; + background: #fff; + border: 1px solid var(--border-color); + display: flex; + border-radius: 30px; + font: 600 13px/28px var(--base-font); + text-align: center; + justify-content: center; + margin-right: 10px; + } + + .clarification-item-details { + display: flex; + flex-direction: column; + border: 1px solid var(--border-color); + border-radius: var(--border-radius); + background: #fff; + box-shadow: 2px 4px 2px rgba($color: #000000, $alpha: 0.02); + flex-grow: 1; + + .clarification-item-section { + display: flex; + flex-direction: column; + border-bottom: 1px solid var(--border-color); + padding: 12px 15px; + gap: 10px; + + .clarification-item-section-header { + display: flex; + flex-direction: row; + gap: 5px; + + .clarification-item-section-header-label { + display: inline-flex; + gap: 4px; + border-radius: var(--border-radius); + padding: 0 3px; + font: 600 11px/20px var(--base-font); + align-items: center; + + .mdi { + font-size: 15px; + height: 20px; + line-height: 20px; + } + + &.clarification-item-section-header-label-question-pending { + color: #fff; + border: 1px solid #607d8b; + background: #607d8b; + } + + &.clarification-item-section-header-label-question-responded { + color: #fff; + border-color: 1px solid var(--color-primary); + background: var(--color-primary); + } + + &.clarification-item-section-header-label-answer-pending { + color: #151b26; + border: 1px solid #b0bec5; + + .mdi { + color: #646f79; + } + } + + &.clarification-item-section-header-label-answer-responded { + color: #151b26; + border: 1px solid #b0bec5; + + .mdi { + color: #2987fd; + } + } + } + + .clarification-item-section-header-title { + font: 600 12px/22px var(--base-font); + color: #646f79; + + strong { + color: #000; + } + } + } + + .clarification-item-section-body { + display: flex; + flex-direction: column; + padding-left: 22px; + gap: 10px; + + .clarification-item-section-body-group { + position: relative; + display: flex; + flex-direction: column; + gap: 4px; + + .clarification-item-section-body-group-title { + font: 600 12px/20px var(--base-font); + color: var(--color-primary); + } + + &:before { + content: ''; + left: -11px; + top: -10px; + bottom: 50%; + width: 1px; + background: var(--border-color); + transform: translate(-50%, 0); + border-radius: 5px; + position: absolute; + } + + &:after { + content: ''; + left: -11px; + top: 50%; + width: 5px; + height: 5px; + transform: translate(-50%, -50%); + background: var(--color-primary); + border-radius: 5px; + position: absolute; + } + + &.clarification-item-section-body-group-with-title { + &:before { + bottom: 0; + top: -10px; + height: auto; + } + + &:after { + top: 7.5px; + transform: translate(-50%, 0); + background: #2987fd; + } + + &:last-child { + &:before { + bottom: auto; + height: 20px; + } + } + } + } + + .clarification-item-section-body-bubble { + display: block; + padding: 6px 12px; + background: #f6f9fc; + border: 1px solid var(--border-color); + border-radius: 0 6px 6px 6px; + color: #000; + width: fit-content; + max-width: 100%; + font: 600 13px/22px var(--base-font); + + &.clarification-item-section-body-bubble-primary { + background: #2987fd; + border-color: #2987fd; + color: #fff; + } + } + } + + &:last-child { + border-bottom: none; + } + } + } + + &:last-child, + &:last-of-type { + margin-bottom: 0; + } + } +} diff --git a/react/assets/forus-platform/scss/_common/components/forms.scss b/react/assets/forus-platform/scss/_common/components/forms.scss index 7dca713c1..bfcc155bb 100644 --- a/react/assets/forus-platform/scss/_common/components/forms.scss +++ b/react/assets/forus-platform/scss/_common/components/forms.scss @@ -69,6 +69,10 @@ display: flex; flex-direction: column; gap: 10px; + + .form-group { + margin-bottom: 0; + } } &.form-pane-lg { diff --git a/react/assets/forus-platform/scss/_common/dashboard.scss b/react/assets/forus-platform/scss/_common/dashboard.scss index 7df870aa5..ec8fea1e8 100644 --- a/react/assets/forus-platform/scss/_common/dashboard.scss +++ b/react/assets/forus-platform/scss/_common/dashboard.scss @@ -99,6 +99,8 @@ @import 'blocks/block-label-tabs.scss'; @import 'blocks/block-translation-stats.scss'; @import 'blocks/block-provider-product-overview.scss'; +@import 'blocks/block-attachments-list.scss'; +@import 'blocks/block-request-clarification.scss'; // Select controls @import 'select-controls/select-control-funds'; @@ -3901,174 +3903,6 @@ body { } } - &.block-request-clarification { - display: flex; - flex-direction: column; - - .block-title { - font: 500 14px/26px var(--base-font); - color: #282b39; - margin-bottom: 10px; - } - - .clarification-item { - display: flex; - flex-direction: row; - margin-bottom: 15px; - - .clarification-item-nth { - width: 30px; - min-width: 30px; - height: 30px; - background: #fff; - border: 1px solid var(--border-color); - display: flex; - border-radius: 30px; - font: 600 13px/28px var(--base-font); - text-align: center; - justify-content: center; - margin-right: 10px; - } - - .clarification-item-details { - display: flex; - flex-direction: column; - border: 1px solid var(--border-color); - border-radius: var(--border-radius); - background: #fff; - box-shadow: 2px 4px 2px rgba($color: #000000, $alpha: 0.02); - flex-grow: 1; - - .clarification-item-icon { - position: absolute; - left: 15px; - top: 10px; - font-size: 16px; - line-height: 24px; - } - - .clarification-item-question, - .clarification-item-answer { - border-bottom: 1px solid var(--border-color); - padding: 10px 20px 10px 40px; - position: relative; - width: 100%; - - .clarification-item-text { - @include ellipsis(); - } - - &:last-child { - border-bottom: none; - } - } - - .clarification-item-attachments { - .block.block-attachments-list { - .block-attachments-inner { - margin-bottom: 0; - } - - .attachment-item { - border: none; - margin-bottom: 0; - } - } - } - } - - &:last-child, - &:last-of-type { - margin-bottom: 0; - } - } - } - - &.block-attachments-list { - @include cf(); - - .block-attachments-inner { - margin: 0 0 -10px; - width: 100%; - float: left; - } - - .attachment-item { - background: #fff; - display: flex; - max-width: 100%; - width: 100%; - border: 1px solid #d4d9dd; - flex-direction: row; - padding: 5px 15px; - border-radius: var(--border-radius); - float: left; - margin-bottom: 10px; - - .attachment-icon { - display: flex; - flex-direction: row; - - .mdi { - font-size: 18px; - line-height: 25px; - color: #004195; - margin-right: 10px; - } - - .attachment-size { - color: #646f79; - margin-right: 30px; - font: 500 12px/25px var(--base-font); - } - } - - .attachment-name { - @include ellipsis(); - color: #262626; - font: 500 12px/25px var(--base-font); - flex-grow: 1; - } - - .attachment-date { - font: 400 12px/25px var(--base-font); - margin-right: 20px; - } - - .attachment-preview { - display: flex; - @include ellipsis(); - color: #262626; - font: 500 12px/25px var(--base-font); - flex: unset; - - .mdi { - float: left; - font-size: 1.5em; - margin-right: 4px; - color: #555; - - &:hover { - color: var(--color-primary); - } - } - } - } - - &.block-attachments-list-half { - .block-attachments-inner { - margin: 0 0 -10px; - } - .attachment-item { - width: calc(50% - 10px); - - &:nth-child(odd) { - margin-right: 20px; - } - } - } - } - &.block-qr-code { .qr_code { width: 280px; diff --git a/react/assets/forus-webshop/resources/_webshop-common/assets/img/fund-request-pending.svg b/react/assets/forus-webshop/resources/_webshop-common/assets/img/fund-request-pending.svg new file mode 100644 index 000000000..c5fef19bb --- /dev/null +++ b/react/assets/forus-webshop/resources/_webshop-common/assets/img/fund-request-pending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/favicon.ico b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/favicon.ico new file mode 100644 index 000000000..03c5cf13e Binary files /dev/null and b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/favicon.ico differ diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/icon-app/app-store-android-dark.svg b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/icon-app/app-store-android-dark.svg new file mode 100644 index 000000000..7cfef6c7b --- /dev/null +++ b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/icon-app/app-store-android-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/icon-app/app-store-ios-dark.svg b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/icon-app/app-store-ios-dark.svg new file mode 100644 index 000000000..499ccb373 --- /dev/null +++ b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/icon-app/app-store-ios-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/logo-normal-mobile.svg b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/logo-normal-mobile.svg new file mode 100644 index 000000000..eca6f3563 --- /dev/null +++ b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/logo-normal-mobile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/logo-normal.svg b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/logo-normal.svg new file mode 100644 index 000000000..eca6f3563 --- /dev/null +++ b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/logo-normal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/fund-large.png b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/fund-large.png new file mode 100644 index 000000000..e28223c8b Binary files /dev/null and b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/fund-large.png differ diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/fund-thumbnail.png b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/fund-thumbnail.png new file mode 100644 index 000000000..1792f733a Binary files /dev/null and b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/fund-thumbnail.png differ diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/office-large.png b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/office-large.png new file mode 100644 index 000000000..85bc8d000 Binary files /dev/null and b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/office-large.png differ diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/office-thumbnail.png b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/office-thumbnail.png new file mode 100644 index 000000000..d92f087fb Binary files /dev/null and b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/office-thumbnail.png differ diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/organization-large.png b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/organization-large.png new file mode 100644 index 000000000..0d3bb893f Binary files /dev/null and b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/organization-large.png differ diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/organization-thumbnail.png b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/organization-thumbnail.png new file mode 100644 index 000000000..1d083453d Binary files /dev/null and b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/organization-thumbnail.png differ diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/payout.svg b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/payout.svg new file mode 100644 index 000000000..dad66850f --- /dev/null +++ b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/payout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/product-large.png b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/product-large.png new file mode 100644 index 000000000..d7e9d4026 Binary files /dev/null and b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/product-large.png differ diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/product-small.png b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/product-small.png new file mode 100644 index 000000000..e6660bed2 Binary files /dev/null and b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/product-small.png differ diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/product-thumbnail.png b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/product-thumbnail.png new file mode 100644 index 000000000..a89a81c81 Binary files /dev/null and b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/placeholders/product-thumbnail.png differ diff --git a/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/sprite-map.png b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/sprite-map.png new file mode 100644 index 000000000..2a7d176fd Binary files /dev/null and b/react/assets/forus-webshop/resources/webshop-schouwen_duiveland/assets/img/sprite-map.png differ diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-file-uploader.scss b/react/assets/forus-webshop/scss/includes/blocks/block-file-uploader.scss index 2d5a0eda5..d5192646f 100644 --- a/react/assets/forus-webshop/scss/includes/blocks/block-file-uploader.scss +++ b/react/assets/forus-webshop/scss/includes/blocks/block-file-uploader.scss @@ -245,6 +245,7 @@ font-size: 11px; font-weight: 400; line-height: 11px; + font-family: var(--base-font), serif; &::before { content: '*'; @@ -296,6 +297,7 @@ font-size: 11px; font-weight: 400; line-height: 11px; + font-family: var(--base-font), serif; &::before { content: '*'; diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-fund-request-clarifications.scss b/react/assets/forus-webshop/scss/includes/blocks/block-fund-request-clarifications.scss new file mode 100644 index 000000000..7c4dc3543 --- /dev/null +++ b/react/assets/forus-webshop/scss/includes/blocks/block-fund-request-clarifications.scss @@ -0,0 +1,73 @@ +.block.block-fund-request-clarifications { + display: flex; + flex-direction: column; + border: 1px solid var(--border-color); + border-radius: var(--border-radius); + background: #fff; + padding: 0 10px 0 15px; + box-shadow: var(--showcase-item-shadow); + margin: 0 0 20px; + + .clarification-item { + display: flex; + flex-direction: row; + padding: 10px 0; + border-bottom: 1px solid var(--border-color); + align-items: center; + gap: 15px; + + .clarification-item-icon { + display: flex; + justify-content: center; + background: #e5e5e5; + border-radius: 50%; + height: 28px; + line-height: 28px; + font-size: 15px; + flex: 0 0 28px; + + &.clarification-item-icon-primary { + color: #fff; + background: var(--color-primary); + } + } + + .clarification-item-content { + display: flex; + flex-direction: column; + flex: 1 1 auto; + + .clarification-item-content-title { + font: 700 16px/20px var(--base-font); + } + + .clarification-item-content-subtitle { + font: 400 13px/20px var(--base-font); + } + } + + .clarification-item-actions { + display: flex; + flex: 0 0 auto; + } + + &:last-child { + border-bottom: 0; + } + } + + @media screen and (max-width: 1000px) { + .clarification-item { + flex-wrap: wrap; + gap: 10px 15px; + + .clarification-item-actions { + width: 100%; + + .button { + width: 100%; + } + } + } + } +} diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-fund-request-conversations.scss b/react/assets/forus-webshop/scss/includes/blocks/block-fund-request-conversations.scss new file mode 100644 index 000000000..cbbc4a225 --- /dev/null +++ b/react/assets/forus-webshop/scss/includes/blocks/block-fund-request-conversations.scss @@ -0,0 +1,206 @@ +.block.block-fund-request-conversations { + width: 100%; + padding: 0 0 20px; + + .conversation-item { + padding: 15px 15px 10px 50px; + position: relative; + + .conversation-item-number { + display: flex; + width: 25px; + height: 25px; + flex-direction: column; + justify-content: center; + flex-shrink: 0; + background: #fff; + text-align: center; + font-size: 14px; + font-weight: 700; + border-radius: calc(var(--border-radius) / 2); + border: 1px solid var(--color-primary); + position: absolute; + top: 15px; + left: 15px; + font-family: var(--base-font), serif; + } + + .conversation-item-body { + border-radius: var(--border-radius); + border: 1px solid #848484; + background: #fff; + overflow: hidden; + + .conversation-item-section { + display: flex; + flex-direction: column; + padding: 15px 15px; + gap: 8px; + border-bottom: 1px solid var(--border-color); + + .conversation-item-section-header { + display: flex; + flex-direction: row; + align-items: center; + gap: 8px; + + .conversation-item-section-header-label { + display: flex; + align-items: center; + background: #282b39; + padding: 4px 7px 4px 4px; + border-radius: var(--border-radius); + font: 600 13px/17px var(--base-font); + color: #fff; + gap: 4px; + + .mdi { + font-size: 14px; + height: 17px; + line-height: 17px; + display: flex; + } + } + + .conversation-item-section-header-date { + display: flex; + flex: 1 1 auto; + color: #595959; + gap: 3px; + font: 500 13px/18px var(--base-font); + + strong { + font-weight: 700; + } + } + + .conversation-item-section-header-status { + font: 600 13px/18px var(--base-font); + gap: 4px; + display: flex; + align-items: center; + flex-direction: row; + + .mdi { + display: flex; + height: 18pxpx; + line-height: 18px; + font-size: 14px; + } + + .conversation-item-section-header-status-dot { + display: flex; + width: 6px; + height: 6px; + background: #f21010; + border-radius: 50%; + } + } + } + + .conversation-item-section-body { + display: flex; + flex-direction: column; + gap: 4px; + + .conversation-item-section-body-label { + display: flex; + color: #595959; + font: 600 12px/18px var(--base-font); + } + + .conversation-item-section-body-bubble { + border-radius: 2px 8px 8px 8px; + border: 1px solid var(--border-color); + overflow: hidden; + + .conversation-item-section-body-bubble-content { + display: flex; + padding: 12px; + font: 500 13px/18px var(--base-font); + background: #fff; + flex-direction: column; + border-bottom: 1px solid var(--border-color); + + &:last-child { + border-bottom: none; + } + } + + .conversation-item-section-body-bubble-files { + padding: 12px; + background: #fbfbfb; + } + } + } + + .conversation-item-section-info { + font: 600 12px/18px var(--base-font); + color: #353535; + + strong { + font-weight: 700; + } + } + + &.conversation-item-section-question { + background: #f4f5f7; + } + + &:last-child { + border-bottom: none; + } + } + + &.conversation-item-body-responded { + border-color: var(--border-color); + } + } + + &.conversation-item-new { + .conversation-item-number { + background: var(--color-primary); + color: #fff; + } + } + + &:before { + content: ''; + height: 100%; + border-right: 1px solid #d4d9dd; + position: absolute; + left: 27.5px; + top: 0; + } + + &:last-child { + padding: 15px 15px 0 50px; + + &:before { + height: 20px; + } + } + } + + @media screen and (max-width: 1000px) { + .conversation-item { + .conversation-item-body { + .conversation-item-section { + .conversation-item-section-header { + flex-wrap: wrap; + + .conversation-item-section-header-date { + order: 3; + width: 100%; + } + + .conversation-item-section-header-status { + flex: 1 1 auto; + justify-content: flex-end; + } + } + } + } + } + } +} diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-fund-request.scss b/react/assets/forus-webshop/scss/includes/blocks/block-fund-request.scss index 3b0a776a6..ed1080c22 100644 --- a/react/assets/forus-webshop/scss/includes/blocks/block-fund-request.scss +++ b/react/assets/forus-webshop/scss/includes/blocks/block-fund-request.scss @@ -1,637 +1,234 @@ .block.block-fund-request { - .card { - border: 1px solid var(--border-color); - - &.card-fund-request-conversation { - cursor: default; - margin-bottom: 15px; - border: 1px solid var(--border-color); - border-radius: var(--border-radius); - - .card-header { - padding: 15px; - - .card-header-wrapper { - gap: 10px; - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; - flex: 1 0 0; - align-self: stretch; - - .card-header-icon { - display: block; - width: 36px; - height: 36px; - line-height: 36px; - text-align: center; - align-items: center; - border-radius: calc(var(--border-radius) / 2); - background: #f4f5f7; - transition: color .4s, background-color .4s; - } - - .card-heading-wrapper { - display: flex; - flex-grow: 1; - flex-direction: column; - - .card-heading { - margin-bottom: 0; - - span { - padding: 0 5px; - color: #d4d9dd; - } - } - } - - .card-header-date { - font: 400 13px/18px var(--base-font); - color: #646f79; - } - - .card-header-view { - font: 600 13px/18px var(--base-font); - color: #282b39; - display: flex; - align-items: center; - white-space: nowrap; - cursor: pointer; - - .card-header-view-arrow { - transform: rotate(-90deg); - color: #dbdcdb; - font-size: 25px; - line-height: 25px; - transition: all 0.3s; - } - } - } - - .label { - &:not(:last-child):not(:last-of-type) { - margin: 0; - } - - .label-text { - display: inline-block; - } - } - } - - .card-section { - padding: 0 0 15px 0; - } - - &.open { - .card-header { - .card-header-icon { - background: var(--color-primary); - color: #fff; - } - - .card-header-view { - .card-header-view-arrow { - transform: rotate(0deg); - } - } - } - } - } + .fund-request-records { + display: flex; + flex-direction: column; + gap: 15px; } - .fund-request-section { - display: flex; - flex-direction: row; - margin-bottom: 30px; - width: 100%; + .fund-request-record { + cursor: default; + border: var(--showcase-item-border); + border-radius: var(--border-radius); + box-shadow: var(--showcase-item-shadow); + margin: 0 0; - .fund-request-props { + .fund-request-record-header { display: flex; - flex-direction: column; - justify-content: flex-start; - flex-basis: 60%; - flex-grow: 1; - padding: 20px; - align-items: flex-start; - gap: 10px; - align-self: stretch; - border-radius: var(--border-radius); - background: #f4f5f7; + flex-direction: row; + padding: 15px; + align-items: center; + border-bottom: 1px solid var(--border-color); - .fund-request-prop { + .fund-request-record-header-main { + gap: 10px; display: flex; flex-direction: row; - gap: 5px; - width: 100%; + align-items: center; + justify-content: space-between; + flex: 1 0 0; + align-self: stretch; - .fund-request-prop-label, - .fund-request-prop-value { + .fund-request-record-header-icon { display: block; - font: 600 14px/24px var(--base-font); - } - - .fund-request-prop-label { - width: 50%; - max-width: 210px; - color: #646f79; - } - - .fund-request-prop-value { - color: #303030; - width: auto; - flex: 1 0 0; - } - } - } - - .fund-request-conversations { - width: 100%; - - .fund-request-chat { - padding: 15px 15px 10px 50px; - position: relative; - - .fund-request-chat-number { - display: flex; - width: 25px; - height: 25px; - flex-direction: column; - justify-content: center; - flex-shrink: 0; - background: #fff; + width: 36px; + height: 36px; + line-height: 36px; text-align: center; - font-size: 14px; - font-weight: 700; + align-items: center; border-radius: calc(var(--border-radius) / 2); - border: 1px solid var(--color-primary); - position: absolute; - top: 15px; - left: 15px; + background: #f4f5f7; + transition: + color 0.4s, + background-color 0.4s; } - .fund-request-chat-info { + .fund-request-record-header-content { display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 15px; - - .fund-request-chat-time { - color: #222; - font-size: 15px; - font-weight: 400; - line-height: 25px; - - .fund-request-chat-time-icon { - color: #848484; - font-size: 15px; - line-height: 15px; - margin-right: 3px; - } - } - - .fund-request-chat-status { - display: flex; - color: #222; - font-size: 15px; - font-weight: 600; - line-height: 25px; - - .fund-request-chat-status-icon { - font-size: 24px; - line-height: 25px; - position: relative; - } - } - } - - .fund-request-chat-conversation { - border-radius: var(--border-radius); - border: 1px solid var(--border-color); - background: #fff; - - .fund-request-chat-conversation-content { - padding: 15px; - gap: 15px; - display: flex; - flex-direction: column; - - .fund-request-chat-message { - width: 55%; - word-wrap: break-word; - - .fund-request-chat-message-time { - color: #595959; - font-size: 11px; - font-weight: 600; - line-height: 11px; - margin-bottom: 8px; - } - - .fund-request-chat-message-content { - display: flex; - align-items: flex-start; - font-size: 13px; - font-style: normal; - font-weight: 600; - line-height: 18px; - flex-direction: column; - - .fund-request-chat-message-text { - width: 100%; - padding: 12px; - - & + .fund-request-chat-message-file-uploader { - border-top: 1px solid #dbdcdb; - } - } - - .fund-request-chat-message-file-uploader { - width: 100%; - padding: 12px; - - .block-file-uploader { - .uploader-files { - margin: 0; - } - } - } - } - - &.fund-request-chat-message-in { - .fund-request-chat-message-content { - border-radius: calc(var(--border-radius) * 0.5) calc(var(--border-radius) * 1.5) - calc(var(--border-radius) * 1.5) calc(var(--border-radius) * 1.5); - border: 1px solid var(--color-primary); - background: #fff; - color: var(--tc); - } - } - - &.fund-request-chat-message-out { - align-self: flex-end; - - .fund-request-chat-message-content { - border: 1px solid var(--border-color); - background: #f4f5f7; - border-radius: calc(var(--border-radius) * 1.5) calc(var(--border-radius) * 0.5) - calc(var(--border-radius) * 1.5) calc(var(--border-radius) * 1.5); - } - - .fund-request-chat-message-time { - text-align: right; - } - } - } - } - - .fund-request-chat-conversation-reply { - padding: 15px; - } + flex: 1 1 auto; + flex-direction: column; - .fund-request-chat-conversation-answer { + .fund-request-record-header-title { display: flex; - padding: 15px; - flex-direction: column; - gap: 15px; - background: #fff; - box-shadow: 0 1px 0 0 #e5e5e5 inset; - border-radius: 0 0 var(--border-radius) var(--border-radius); - - .fund-request-chat-conversation-answer-box { - width: 100%; - margin: 0; - - textarea { - width: 100%; - } - } + flex: 1 1 auto; + flex-direction: row; + margin: 0 0; + font: 700 16px/20px var(--base-font); - .fund-request-chat-conversation-answer-options { - display: flex; - align-items: flex-start; - gap: 15px; - justify-content: space-between; + .fund-request-record-header-title-dot { + padding: 0 5px; + color: #d4d9dd; } } - &.fund-request-chat-answered { - background: #848484; - } - } - - &.fund-request-chat-new { - .fund-request-chat-info { - .fund-request-chat-status { - &:before { - content: '•'; - margin-right: 4px; - font-size: 24px; - color: #f21010; - } - } - } - - .fund-request-chat-number { - background: var(--color-primary); - color: #fff; + .fund-request-record-header-subtitle { + font: 400 13px/18px var(--base-font); + color: #595959; } } + } - &.fund-request-chat-answered { - .fund-request-chat-conversation { - .fund-request-chat-conversation-content { - background: #f4f5f7; - - .fund-request-chat-message.fund-request-chat-message-out { - .fund-request-chat-message-content { - background: #fff; - } - } - } + .fund-request-record-header-actions { + display: flex; + flex: 0 0 auto; + flex-direction: row; + gap: 10px; + align-items: center; + + .fund-request-record-header-view { + appearance: none; + padding: 0 0; + font: 600 13px/18px var(--base-font); + color: #282b39; + display: flex; + align-items: center; + white-space: nowrap; + cursor: pointer; + border: none; + background: none; + + .fund-request-record-header-view-arrow { + transform: rotate(-90deg); + color: #dbdcdb; + font-size: 25px; + line-height: 25px; + transition: all 0.3s; } } + } - &:before { - content: ''; - height: 100%; - border-right: 1px solid #d4d9dd; - position: absolute; - left: 27.5px; - top: 0; + .label { + &:not(:last-child):not(:last-of-type) { + margin: 0; } - &:last-child { - padding: 15px 15px 0px 50px; + .label-text { + display: inline-block; } } - } - &:last-child { - margin-bottom: 0; - } - } - - .block-payouts-list { - margin: 0 0 10px; - } - - @media screen and (max-width: 1000px) { - .card { - &.card-fund-request-conversation { - .card-header { - .card-header-wrapper { - flex-wrap: wrap; - - .card-heading-wrapper { - width: 80%; - } - } - } + &:last-child { + border-bottom: none; } } - .fund-request-section { + .fund-request-record-section { display: flex; flex-direction: column; - margin: 0 0 20px; - - .fund-request-props { - .fund-request-prop { - flex-direction: column; - gap: 0; + } - .fund-request-prop-label { - width: 100%; - } + &.fund-request-record-open { + border-color: #848484; - .fund-request-prop-value { - font-weight: 700; - } + .fund-request-record-header { + .fund-request-record-header-icon { + background: #282b39; + color: #fff; } - } - - .fund-request-conversations { - .fund-request-chat { - .fund-request-chat-conversation { - .fund-request-chat-conversation-answer { - .fund-request-chat-conversation-answer-options { - flex-wrap: wrap; - gap: 10px; - - .block { - &.block-file-uploader { - &.block-file-uploader-compact { - width: 100%; - - .uploader-droparea { - flex-direction: column; - gap: 10px; - - .droparea-button { - width: 100%; - - .button { - width: 100%; - - .mdi-paperclip { - float: none; - display: inline-block; - } - } - } - } - } - } - } - - .button-group { - width: 100%; - gap: 8px; - - .button { - flex-grow: 1; - justify-content: center; - margin: 0; - } - } - } - } - .fund-request-chat-conversation-content { - .fund-request-chat-message { - width: 80%; - } - } + .fund-request-record-header-view { + .fund-request-record-header-view-arrow { + transform: rotate(0deg); } } } } - } - - @media screen and (max-width: 767px) { - .card { - &.card-fund-request-conversation { - margin-bottom: 12px; - - .card-header { - .card-header-wrapper { - gap: 10px; - flex-wrap: nowrap; - - .card-header-icon { - width: 30px; - height: 30px; - line-height: 30px; - } - .card-heading-wrapper { - width: auto; + &.fund-request-record-inline { + border: none; + } + } - .card-heading { - font: 700 14px/16px var(--base-font); - margin: 0 0 4px; + .fund-request-props { + display: flex; + flex-direction: row; + align-items: flex-start; + gap: 10px; + width: 100%; - .label { - font: 600 10px/10px var(--base-font); - border-radius: 3px; - } - } - } + .fund-request-prop { + display: flex; + flex-direction: column; + gap: 5px; + flex: 0 0 33.33%; - .card-header-date { - font: 400 12px/10px var(--base-font); - } + .fund-request-prop-label, + .fund-request-prop-value { + display: block; + font: 600 14px/20px var(--base-font); + } - .card-header-view { - font: 600 12px/20px var(--base-font); + .fund-request-prop-label { + color: #646f79; + } - .card-header-view-arrow { - font-size: 18px; - line-height: 18px; - } - } - } + .fund-request-prop-value { + color: #303030; + } + } + } - .label { - line-height: 11px; - border-radius: 5px; + .block-payouts-list { + margin: 0 0 10px; + } - &.label-xl { - padding: 6px; - display: flex; - } + @media screen and (max-width: 1000px) { + .fund-request-record { + overflow: hidden; - .label-blink { - margin-right: 3px; - margin-left: 0px; - width: 5px; - font-size: 15px; - } + .fund-request-record-header { + padding: 0; + flex-direction: column; - .label-text { - display: none; - } - } + .fund-request-record-header-main { + padding: 15px; + border-bottom: 1px solid var(--border-color); } - } - .card-section, - .card-heading { - &:first-child { - margin-top: 0; + .fund-request-record-header-actions { + padding: 15px; + background: #fbfbfb; + width: 100%; + justify-content: space-between; } } - .card-section { - padding: 15px; - } - - .card-heading { - font: 700 14px/20px var(--base-font); - } - } - - .fund-request-section { - .fund-request-props { - padding: 12px; - gap: 16px; - - .fund-request-prop { - gap: 10px; - - .fund-request-prop-label { - font: 500 12px/1 var(--base-font); + &.fund-request-record-inline { + .fund-request-record-header { + .fund-request-record-header-main { + border-bottom: none; + padding-bottom: 10px; } - .fund-request-prop-value { - font: 600 13px/1 var(--base-font); + .fund-request-record-header-actions { + padding-top: 0; + padding-left: 65px; + background: transparent; } } } - .fund-request-conversations { - .fund-request-chat { - .fund-request-chat-number { - width: 22px; - height: 22px; - font-size: 13px; - top: 12px; - left: 17px; - } - - .fund-request-chat-info { - margin-bottom: 12px; - - .fund-request-chat-time { - font: 400 11px/19px var(--base-font); - - .fund-request-chat-time-icon { - font-size: 15px; - line-height: 15px; - margin-right: 2px; - } - } - - .fund-request-chat-status { - font: 600 12px/12px var(--base-font); + .label { + padding: 0 3px; + font-size: 11px; + font-weight: 600; + } + } - .fund-request-chat-status-icon { - font-size: 21px; - line-height: 11px; - } - } - } + .fund-request-props { + flex-direction: column; + } - .fund-request-chat-conversation { - .fund-request-chat-conversation-content { - padding: 12px; - gap: 12px; - - .fund-request-chat-message { - .fund-request-chat-message-content { - .fund-request-chat-message-text { - padding: 10px; - } - - .fund-request-chat-message-file-uploader { - padding: 10px; - } - } - } - } + .block.block-file-uploader.block-file-uploader-compact .uploader-droparea { + display: flex; + flex-direction: column; + width: 100%; + align-items: flex-start; - .fund-request-chat-conversation-reply { - padding: 10px 12px 12px; - border-top: 1px solid #dbdcdb; + .droparea-button { + width: 100%; - .button { - font: 600 11px/20px var(--base-font); - } - } - } + .button { + width: 100%; } } } diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-fund-requests.scss b/react/assets/forus-webshop/scss/includes/blocks/block-fund-requests.scss index fd4670977..8cbc3b5ce 100644 --- a/react/assets/forus-webshop/scss/includes/blocks/block-fund-requests.scss +++ b/react/assets/forus-webshop/scss/includes/blocks/block-fund-requests.scss @@ -7,11 +7,15 @@ background-color: #fff; border-radius: var(--border-radius); margin-bottom: 15px; - box-shadow: var(--box-shadow); position: relative; - transition: color .4s, background-color .4s; + transition: + color 0.4s, + background-color 0.4s; min-height: 135px; cursor: default; + overflow: hidden; + border: var(--showcase-item-border); + box-shadow: var(--showcase-item-shadow); .fund-request-image { display: flex; @@ -48,24 +52,24 @@ flex-grow: 1; overflow: hidden; word-wrap: break-word; - + .fund-request-name { font: 700 18px/27px var(--heading-font-family); margin: 0 0 5px; color: #282b39; } - + .fund-request-subtitle { font: 400 13px/18px var(--base-font); color: #222222; margin-bottom: 10px; - + span { font-weight: 600; } } } - + .fund-request-overview { display: flex; flex-direction: column; @@ -146,16 +150,16 @@ .fund-request-section { flex-direction: column-reverse; - + .fund-request-details { .fund-request-name { font: 700 14px/20px var(--heading-font-family); margin: 0 0 5px; } - + .fund-request-subtitle { font-size: 11px; - margin: 0 + margin: 0; } } } diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-products-list.scss b/react/assets/forus-webshop/scss/includes/blocks/block-products-list.scss index baead849f..c1d3512ca 100644 --- a/react/assets/forus-webshop/scss/includes/blocks/block-products-list.scss +++ b/react/assets/forus-webshop/scss/includes/blocks/block-products-list.scss @@ -93,11 +93,16 @@ margin: 0 0; max-width: 100%; word-wrap: break-word; - flex-direction: column; + flex-direction: row; color: var(--products-text-color); - font: 700 18px/24px var(--base-font); + font: 700 16px/24px var(--base-font); flex: 1 0 auto; - justify-content: flex-end; + align-items: flex-end; + gap: 5px; + + .mdi { + font-size: 18px; + } } .product-icons { diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-products.scss b/react/assets/forus-webshop/scss/includes/blocks/block-products.scss index cf3d6d9c4..bd0103e3c 100644 --- a/react/assets/forus-webshop/scss/includes/blocks/block-products.scss +++ b/react/assets/forus-webshop/scss/includes/blocks/block-products.scss @@ -82,14 +82,21 @@ .product-actions { background-color: #fbfbfb; - padding: 15px 20px; + padding: 15px 15px; display: flex; flex-direction: row; justify-content: space-between; align-items: center; .product-price { - font: 700 18px/24px var(--base-font); + display: inline-flex; + flex-direction: row; + gap: 5px; + font: 700 16px/24px var(--base-font); + + .mdi { + font-size: 18px; + } } .product-icons { diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-profile.scss b/react/assets/forus-webshop/scss/includes/blocks/block-profile.scss index a8927495c..7bb00bb81 100644 --- a/react/assets/forus-webshop/scss/includes/blocks/block-profile.scss +++ b/react/assets/forus-webshop/scss/includes/blocks/block-profile.scss @@ -122,6 +122,7 @@ font: 400 14px/22px var(--base-font); color: var(--tc); width: 100%; + margin: 0 0; } } diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss b/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss index 201b6c51c..852a6e528 100644 --- a/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss +++ b/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss @@ -227,7 +227,7 @@ &.sign_up-pane-heading-md { font: 700 20px/30px var(--base-font); - margin-bottom: 30px; + margin-bottom: 20px; } &.sign_up-pane-heading-lg { @@ -277,6 +277,11 @@ padding: 10px 0 0; border-bottom: 1px solid var(--border-color); margin: 0 0 30px; + + &.sign_up-pane-separator-sm { + padding: 5px 0 0; + margin: 0 0 15px; + } } .sign_up-privacy { @@ -1032,7 +1037,6 @@ } @media (max-width: 991px) { - margin: 0px -10px; padding: 10px 0 50px; .block-title { @@ -1069,6 +1073,10 @@ .sign_up-pane-heading { font: 700 14px/22px var(--base-font); + + &.sign_up-pane-heading-md { + font: 700 17px/26px var(--base-font); + } } .sign_up-pane-text { @@ -1077,7 +1085,8 @@ .sign_up-pane-list { li { - font: 500 16px/26px var(--base-font); + font: 500 14px/26px var(--base-font); + margin: 0 0 5px; .item-icon { margin-top: 3px; diff --git a/react/assets/forus-webshop/scss/includes/components/_label.scss b/react/assets/forus-webshop/scss/includes/components/_label.scss index 2070c0bea..4205ca465 100644 --- a/react/assets/forus-webshop/scss/includes/components/_label.scss +++ b/react/assets/forus-webshop/scss/includes/components/_label.scss @@ -1,30 +1,19 @@ .label { font: 600 11px/18px var(--base-font); - display: inline-block; + display: flex; padding: 0 7.5px; border-radius: var(--border-radius); cursor: default; height: fit-content; width: fit-content; border: 1px solid transparent; + gap: 4px; .mdi { - font-size: 1.4em; + display: flex; + font-size: 14px; line-height: inherit; - display: inline-block; - vertical-align: middle; - margin: -1px 0; cursor: inherit; - - &.icon-start { - margin-left: -2.5px; - margin-right: 2.5px; - } - - &.icon-end { - margin-left: 2.5px; - margin-right: -2.5px; - } } .label-blink { @@ -33,9 +22,6 @@ color: inherit; line-height: inherit; font-size: 20px; - float: left; - margin-left: -2px; - margin-right: 4px; text-align: center; &.label-blink-primary { @@ -97,6 +83,8 @@ &.label-xl { padding: 5px 10px; + font-weight: bold; + font-size: 12px; } &.label-round { diff --git a/react/assets/forus-webshop/scss/includes/includes/common.scss b/react/assets/forus-webshop/scss/includes/includes/common.scss index 733db6920..e9e70e340 100644 --- a/react/assets/forus-webshop/scss/includes/includes/common.scss +++ b/react/assets/forus-webshop/scss/includes/includes/common.scss @@ -38,6 +38,10 @@ img { justify-items: center !important; } +.flex-space-between { + justify-content: space-between !important; +} + .flex-gap-none { gap: 0 !important; } diff --git a/react/assets/forus-webshop/scss/style-webshop-schouwen_duiveland-vars.scss b/react/assets/forus-webshop/scss/style-webshop-schouwen_duiveland-vars.scss new file mode 100644 index 000000000..83aeeaf53 --- /dev/null +++ b/react/assets/forus-webshop/scss/style-webshop-schouwen_duiveland-vars.scss @@ -0,0 +1,368 @@ +@import "style-webshop-general-vars"; +@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap'); + +// do not use these scss variables outside this file +$primaryColor: #1B7A00; +$secondaryColor: #0373AB; +$primaryColorLight: #196005; + +:root { + --zoom: 100%; + --zoom-mobile: 100%; + + --border-color: #E5E5E5; + --border-radius: 0; + --box-shadow: none; + + --color-primary: #{$primaryColor}; + --color-primary-light: #{$primaryColorLight}; + + --color-default: #{$primaryColor}; + --color-default-light: #{$primaryColorLight}; + + --color-danger: #e63b3b; + + // navbar + --navbar-box-shadow: none; + + --navbar-menu-gap: 22px; + --navbar-menu-order: 1; + --navbar-menu-background: #F5F5F5; + + --navbar-search-gap: 20px; + --navbar-search-order: 2; + --navbar-search-padding: 20px 0px; + --navbar-search-background: #ffffff; + --navbar-search-border-bottom: 1px solid var(--border-color); + + --navbar-menu-item-font: 400 18px/21px var(--base-font); + --navbar-menu-item-color: #000; + --navbar-menu-item-color-hover: #{$primaryColor}; + --navbar-menu-item-padding: 16px 0; + --navbar-menu-item-background: transparent; + --navbar-menu-item-background-hover: transparent; + + --navbar-menu-separator-opacity: 1; + --navbar-menu-separator-background: #D8D9DB; + + --navbar-auth-font: 600 16px/20px var(--base-font); + --navbar-logo-height: 90px; + + // Nav item line position + --navbar-menu-item-line-position-top: 0; + --navbar-menu-item-line-position-bottom: auto; + + // wrapper + --wrapper-width: calc(1280px + 50px); + --wrapper-padding: 20px; + + // Outline + --focus-outline: 2px solid #315efd; + --focus-outline-offset: 2px; + --focus-box-shadow: 0 0 0 3px white; + + // navbar (auth) (default button) + --tc-auth-btn: #fff; + --btn-auth-bg: #{$secondaryColor}; + --btn-auth-border: #{$secondaryColor}; + + // navbar (start modal primary) + --tc-start-btn: #fff; + --btn-start-bg: #{$primaryColor}; + --btn-start-border: #{$primaryColor}; + + // base font + --base-font: 'Open Sans', arial, sans-serif; + + // text color + --tc: #353535; + --htc: var(--tc); + --tc-var: inherit; + --tc-link: inherit; + --tc-muted: #595959; + + // heading font + --heading-font-family: var(--base-font); + --heading-font: 700 40px/60px var(--heading-font-family); + --heading-color: var(--tc); + --heading-pane-font: 700 22px/30px var(--heading-font-family); + + // base color + --bc: #{$primaryColor}; + + // background color + --body-background: #fff; + + // footer color + --footer_padding: 0; + --footer_background: transparent; + --footer_color: #FFFFFF; + --footer_color_link: #FFFFFF; + + --footer_social_color: #FFFFFF; + --footer_social_background: transparent; + --footer_social_border_color: rgba(255, 255, 255, 0.20); + --footer_social_border_radius: 0; + + --footer-copyright-color: #fff; + --footer-copyright-font: 400 14px/30px var(--base-font); + --footer-copyright-background: #1D5276; + --footer-copyright-border-color: #1D5276; + --footer-copyright-padding: 45px; + + // not displayed + --footer_display: none; + + // product image + --product-image-padding: 10px 0 0 10px; + + // Markdown + --markdown-font: 400 16px/24px var(--base-font); + + // Forms + --form-control-color: #222222; + --form-control-background: #ffffff; + --form-control-border-color: #646464; + --form-control-border-color-focus: #282b39; + --form-control-placeholder-font: 400 13px/20px var(--base-font); + --form-control-placeholder-color: #535561; + --form-label-color: #595959; + --form-label-font: 700 11px/16px var(--base-font); + + // Search bar + --color-search-icon-medium: #0099CC; + --color-search-icon-dark: #{$secondaryColor}; + --color-search-icon-light: #81858B; + + --search-bar-point-color: #E5E5E5; + --search-bar-point-radius: 0; + + --search-bar-input-radius: 0; + --search-bar-input-border: 1px solid #C4C4C4; + --search-bar-input-background: #fff; + --search-bar-input-icon-color: #{$secondaryColor}; + + --search-bar-label-top: -7px; + --search-bar-label-left: 16px; + --search-bar-label-padding: 4px; + --search-bar-label-background: #ffffff; + + // Dropdowns + --dropdown-item-font: 500 13px/20px var(--base-font); + --dropdown-item-color: #282b39; + --dropdown-item-background: #ffffff; + --dropdown-item-hover-color: #000000; + --dropdown-item-hover-background: #e5e5e5; + + // Paginator + --paginator-border-radius: var(--border-radius); + --paginator-button-color: #282b39; + --paginator-button-border: #9e9e9e; + --paginator-button-background: #fff; + --paginator-button-hover-color: #fff; + --paginator-button-hover-background: #{rgba(#282B39, 0.8)}; + --paginator-button-active-color: #fff; + --paginator-button-active-background: #282B39; + --paginator-button-disabled-color: #535561; + --paginator-button-disabled-border: #e5e5e5; + --paginator-button-disabled-background: #f5f5f5; + + // Labels + --label-default-color: #fff; + --label-default-background: #595959; + + --label-primary-color: #fff; + --label-primary-background: var(--color-primary); + + --label-danger-color: #030304; + --label-danger-background: #d38c87; + + --label-success-color: #030304; + --label-success-background: #9bbfa1; + + // Label sets + --label-set-border-radius: var(--border-radius); + --label-set-border-color: #9e9e9e; + --label-set-color: #272525; + --label-set-background: #ffffff; + --label-set-active-color: #ffffff; + --label-set-active-background: #{$secondaryColor}; + --label-set-hover-color: #ffffff; + --label-set-hover-background: #1D5276; + --label-set-focus-color: #272525; + --label-set-focus-background: #f4f5f7; + --label-set-focus-border-color: #9e9e9e; + + // Buttons + --button-font: 700 16px/24px var(--base-font); + --button-color: #282b39; + --button-shadow: none; + --button-decoration: none; + --button-border-radius: 0; + --button-hover-shadow: 0 10px 20px rgba(0, 0, 0, 0.3); + --button-hover-decoration: none; + --button-disabled-color: #616161; + --button-disabled-background: #e5e5e5; + + --button-primary-color: #fff; + --button-primary-border: 1px solid var(--color-primary); + --button-primary-decoration: none; + --button-primary-background: #{$primaryColor}; + --button-primary-hover-color: #fff; + --button-primary-hover-border: 1px solid var(--color-primary-light); + --button-primary-hover-decoration: none; + --button-primary-hover-background: var(--color-primary-light); + + --button-primary-outline-color: var(--color-primary); + --button-primary-outline-border: 1px solid var(--color-primary); + --button-primary-outline-decoration: none; + --button-primary-outline-background: transparent; + --button-primary-outline-hover-color: #fff; + --button-primary-outline-hover-border: 1px solid var(--color-primary); + --button-primary-outline-hover-decoration: none; + --button-primary-outline-hover-background: var(--color-primary); + + --button-read_more-color: var(--button-primary-color); + --button-read_more-border: var(--button-primary-border); + --button-read_more-decoration: var(--button-primary-decoration); + --button-read_more-background: var(--button-primary-background); + --button-read_more-hover-color: var(--button-primary-hover-color); + --button-read_more-hover-border: var(--button-primary-hover-border); + --button-read_more-hover-decoration: var(--button-primary-hover-decoration); + --button-read_more-hover-background: var(--button-primary-hover-background); + + // Sign up + --sign_up_accent_color: #282b39; + --sign_up_accent_color_light: #bdcbff; + --sign_up_link_color: #e60003; + --sign_up_step_btns_color: var(--color-primary); + --sign_up_digid_btn_bkg: #e1e7ff; + --sign_up_digid_btn_text: #4b71ff; + --sign_up_digid_btn_border: none; + --sign_up_digid_btn_border_radius: 5px; + --sign_up_loader_icon_color: #282b39; + + //- Showcase + --showcase-aside-shadow: none; + --showcase-aside-padding: 20px; + --showcase-aside-background: #fff; + --showcase-aside-border: 1px solid #e5e5e5; + --showcase-aside-border-radius: var(--border-radius); + + --showcase-item-shadow: none; + --showcase-item-background: var(--showcase-aside-background); + --showcase-item-border: var(--showcase-aside-border); + --showcase-item-border-radius: var(--showcase-aside-border-radius); + --showcase-item-hover-shadow: none; + + --showcase-aside-button-color: var(--color-primary); + --showcase-aside-button-border: 1px solid var(--color-primary); + --showcase-aside-button-background: transparent; + --showcase-aside-button-hover-color: #fff; + --showcase-aside-button-hover-border: 1px solid var(--color-primary); + --showcase-aside-button-hover-background: var(--color-primary); + + --showcase-title-font: 600 18px/30px var(--heading-font-family); + --showcase-title-color: var(--tc); + + --showcase-title-count-color: #fff; + --showcase-title-count-background: #{$secondaryColor}; + --showcase-title-count-border-radius: 0; + + // Breadcrumbs + --breadcrumb-size: 16px; + --breadcrumb-color: var(--color-primary); + --breadcrumb-color-active: #353535; + --breadcrumb-padding: 20px; + + // Loader + --loader-background: #f5f5f5; + --loader-color: var(--color-primary); + + // Profile + --profile-menu-item-gap: 16px; + --profile-menu-item-color: var(--tc); + --profile-menu-item-color-icon: var(--profile-menu-item-color); + --profile-menu-item-shadow: none; + --profile-menu-item-background: #ffffff; + --profile-menu-item-border-color: var(--border-color); + --profile-menu-item-border-radius: var(--border-radius); + --profile-menu-item-hover-color: #fff; + --profile-menu-item-hover-shadow: var(--box-shadow); + --profile-menu-item-hover-background: var(--color-primary); + --profile-menu-item-hover-border-color: var(--color-primary); + --profile-menu-item-hover-border-radius: var(--border-radius); + + // Vouchers + --vouchers-label-color: #353535; + --vouchers-value-color: var(--tc); + --vouchers-organization-color: var(--tc); + + // Voucher card + --voucher-card-action-color: #{$primaryColor}; + --voucher-card-action-background: transparent; + --voucher-card-action-border-color: #{$primaryColor}; + --voucher-card-action-border-radius: 0; + --voucher-card-action-hover-color: #fff; + --voucher-card-action-hover-background: #{$primaryColor}; + --voucher-card-action-hover-border-color: #{$primaryColor}; + + // Products + --products-title-color: var(--tc); + --products-title-hover-color: var(--tc); + --products-text-color: var(--tc); + + // Product + --product-title-font: 700 22px/28px var(--heading-font-family); + --product-title-color: var(--tc); + + // Map + --map-title-color: #0B0E12; + --map-title-font: 700 40px var(--heading-font-family); + + // Sections + --section-padding: 0 0 30px; + --section-background: transparent; + + --section-title-font: 700 40px/60px var(--heading-font-family); + --section-title-align: center; + + --section-cms-padding: var(--section-padding); + --section-cms-background: var(--section-background); + --section-map-padding: var(--section-padding); + --section-map-background: var(--section-background); + --section-faq-padding: 30px 0; + --section-faq-background: var(--section-background); + --section-footer-padding: 70px 0; + --section-footer-background: #{$secondaryColor}; + --section-pre-check-padding: 0 0 30px; + --section-pre-check-background: var(--section-background); + --section-profile-padding: var(--section-padding); + --section-profile-background: var(--section-background); + --section-products-padding: var(--section-padding); + --section-products-background: var(--section-background); + --section-breadcrumbs-padding: 0; + --section-breadcrumbs-background: var(--section-background); + --section-voucher-details-padding: var(--section-padding); + --section-voucher-details-background: var(--section-background); + + // Search bar + --search-result-sidebar-item-active-color: #222; + --search-result-sidebar-item-active-background: #fff; + + // CMS funds + --cms-funds-title-font: 400 24px/36px var(--base-font); + --cms-funds-title-color: var(--htc); + --cms-funds-label-font-size: 11px; + --cms-funds-label-background: var(--color-primary); + + --cms-funds-compact-title-font: 400 24px/36px var(--base-font); + --cms-funds-compact-title-color: var(--htc); + + --cms-funds-link-color: var(--color-primary); + --cms-funds-link-font: 600 18px/20px var(--base-font); + + // Section order + --order-page-voucher-map: 0; + --order-page-voucher-products: 0; +} diff --git a/react/assets/forus-webshop/scss/webshop.scss b/react/assets/forus-webshop/scss/webshop.scss index ee00e7def..ba4f9a160 100644 --- a/react/assets/forus-webshop/scss/webshop.scss +++ b/react/assets/forus-webshop/scss/webshop.scss @@ -126,6 +126,8 @@ @import 'includes/blocks/block-pincode'; @import 'includes/blocks/block-fund-request'; @import 'includes/blocks/block-fund-requests'; +@import 'includes/blocks/block-fund-request-conversations'; +@import 'includes/blocks/block-fund-request-clarifications'; @import 'includes/blocks/block-products'; @import 'includes/blocks/block-products-list'; @import 'includes/blocks/block-products-icons-info'; diff --git a/react/src/dashboard/components/elements/forms/controls/DatePickerControl.tsx b/react/src/dashboard/components/elements/forms/controls/DatePickerControl.tsx index 52bfdf51d..89c248afd 100644 --- a/react/src/dashboard/components/elements/forms/controls/DatePickerControl.tsx +++ b/react/src/dashboard/components/elements/forms/controls/DatePickerControl.tsx @@ -4,6 +4,7 @@ import { range } from 'lodash'; import ReactDatePicker from 'react-datepicker'; export default function DatePickerControl({ + id, value, onChange, disabled, @@ -15,6 +16,7 @@ export default function DatePickerControl({ dateMax, dateInitial = null, }: { + id?: string; value: Date | null; disabled?: boolean; onChange: (value: Date) => void; @@ -43,6 +45,7 @@ export default function DatePickerControl({ ]; return ( +
{children}
+ + ); +} diff --git a/react/src/dashboard/components/elements/forms/elements/FormGroup.tsx b/react/src/dashboard/components/elements/forms/elements/FormGroup.tsx index d49b1c27d..c3753d76e 100644 --- a/react/src/dashboard/components/elements/forms/elements/FormGroup.tsx +++ b/react/src/dashboard/components/elements/forms/elements/FormGroup.tsx @@ -2,12 +2,14 @@ import React, { useState } from 'react'; import FormError from '../errors/FormError'; import { uniqueId } from 'lodash'; import classNames from 'classnames'; +import FormGroupInfo from './FormGroupInfo'; export default function FormGroup({ id, error, label, input, + info, required, className = '', }: { @@ -15,6 +17,7 @@ export default function FormGroup({ error?: string | Array; label?: string | React.ReactElement | Array; input?: (input_id: string) => React.ReactElement; + info?: string | React.ReactElement | Array; required?: boolean; className?: string; }) { @@ -28,7 +31,7 @@ export default function FormGroup({ )} - {input && input(input_id)} + {info ? {input && input(input_id)} : input && input(input_id)} {error && } ); diff --git a/react/src/dashboard/components/elements/forms/elements/FormPane.tsx b/react/src/dashboard/components/elements/forms/elements/FormPane.tsx index e79bcf732..a151da421 100644 --- a/react/src/dashboard/components/elements/forms/elements/FormPane.tsx +++ b/react/src/dashboard/components/elements/forms/elements/FormPane.tsx @@ -3,12 +3,12 @@ import classNames from 'classnames'; export default function FormPane({ title, - children, large = false, + children, }: { title: string; - children: ReactNode | ReactNode[]; large?: boolean; + children: ReactNode | ReactNode[]; }) { return (
diff --git a/react/src/dashboard/components/elements/info-box/InfoBox.tsx b/react/src/dashboard/components/elements/info-box/InfoBox.tsx index 6b1625688..a127c4fe7 100644 --- a/react/src/dashboard/components/elements/info-box/InfoBox.tsx +++ b/react/src/dashboard/components/elements/info-box/InfoBox.tsx @@ -5,14 +5,12 @@ export default function InfoBox({ type = 'default', borderType = 'dashed', children, - iconColor = 'light', - iconPosition = 'center', + iconColor = 'primary', }: { type?: 'default' | 'primary' | 'warning'; borderType?: 'dashed' | 'none'; children: ReactNode; - iconColor?: 'light' | 'primary' | 'warning'; - iconPosition?: 'top' | 'center'; + iconColor?: 'primary' | 'warning'; }) { return (
diff --git a/react/src/dashboard/components/elements/key-value/KeyValueItem.tsx b/react/src/dashboard/components/elements/key-value/KeyValueItem.tsx index 4d196c82b..af35688ea 100644 --- a/react/src/dashboard/components/elements/key-value/KeyValueItem.tsx +++ b/react/src/dashboard/components/elements/key-value/KeyValueItem.tsx @@ -31,7 +31,7 @@ export default function KeyValueItem({
- {showInfoBlock && {infoBlock}} + {showInfoBlock && {infoBlock}} ) : ( {children || } diff --git a/react/src/dashboard/components/modals/ModalFundProviderProductConfig.tsx b/react/src/dashboard/components/modals/ModalFundProviderProductConfig.tsx index 515863a87..cc29c88e2 100644 --- a/react/src/dashboard/components/modals/ModalFundProviderProductConfig.tsx +++ b/react/src/dashboard/components/modals/ModalFundProviderProductConfig.tsx @@ -52,6 +52,10 @@ export default function ModalFundProviderProductConfig({ [product.stock_amount, product.unlimited_stock], ); + const isInformationalProduct = useMemo(() => { + return product.price_type === 'informational'; + }, [product.price_type]); + const form = useFormBuilder<{ expire_at?: string; expires_with_fund?: 0 | 1; @@ -119,9 +123,9 @@ export default function ModalFundProviderProductConfig({ amount: payment_type === 'budget' ? null : gratis ? product.price : amount, expire_at: expires_with_fund ? null : expire_at, allow_scanning: allow_scanning, - limit_total: limit_total_unlimited ? null : limit_total, + limit_total: limit_total_unlimited || isInformationalProduct ? null : limit_total, limit_total_unlimited, - limit_per_identity: limit_per_identity_unlimited ? null : limit_per_identity, + limit_per_identity: limit_total_unlimited || isInformationalProduct ? null : limit_per_identity, limit_per_identity_unlimited, }; @@ -199,7 +203,9 @@ export default function ModalFundProviderProductConfig({ onChange={(payment_type: 'budget' | 'subsidy') => form.update({ payment_type })} options={[ { key: 'budget', label: 'Budget' }, - fund?.show_subsidies ? { key: 'subsidy', label: 'Subsidie' } : null, + fund?.show_subsidies && !isInformationalProduct + ? { key: 'subsidy', label: 'Subsidie' } + : null, ].filter((item) => item)} /> @@ -361,7 +367,7 @@ export default function ModalFundProviderProductConfig({ )} - {fund.show_requester_limits && ( + {fund.show_requester_limits && !isInformationalProduct && (
diff --git a/react/src/dashboard/components/modals/ModalFundRequestClarify.tsx b/react/src/dashboard/components/modals/ModalFundRequestClarify.tsx index 9b8c81af5..18b068593 100644 --- a/react/src/dashboard/components/modals/ModalFundRequestClarify.tsx +++ b/react/src/dashboard/components/modals/ModalFundRequestClarify.tsx @@ -1,7 +1,6 @@ import React from 'react'; import { ModalState } from '../../modules/modals/context/ModalContext'; import useFormBuilder from '../../hooks/useFormBuilder'; -import FormError from '../elements/forms/errors/FormError'; import { ResponseError } from '../../props/ApiResponses'; import useSetProgress from '../../hooks/useSetProgress'; import FundRequest from '../../props/models/FundRequest'; @@ -9,6 +8,12 @@ import { useFundRequestValidatorService } from '../../services/FundRequestValida import Organization from '../../props/models/Organization'; import FundRequestRecord from '../../props/models/FundRequestRecord'; import classNames from 'classnames'; +import FormGroup from '../elements/forms/elements/FormGroup'; +import FormPane from '../elements/forms/elements/FormPane'; +import InfoBox from '../elements/info-box/InfoBox'; +import SelectControl from '../elements/select-control/SelectControl'; + +type Requirement = 'no' | 'optional' | 'required'; export default function ModalFundRequestClarify({ modal, @@ -28,32 +33,43 @@ export default function ModalFundRequestClarify({ const setProgress = useSetProgress(); const fundRequestService = useFundRequestValidatorService(); - const form = useFormBuilder({ question: '' }, async () => { - setProgress(0); + const form = useFormBuilder<{ + text_requirement: Requirement; + files_requirement: Requirement; + question: string; + }>( + { + text_requirement: 'required', + files_requirement: 'required', + question: '', + }, + async () => { + setProgress(0); - return fundRequestService - .requestRecordClarification( - organization.id, - fundRequestRecord.fund_request_id, - fundRequestRecord.id, - form.values.question, - ) - .then(() => { - modal.close(); - onSubmitted(); - }) - .catch((err: ResponseError) => { - form.setIsLocked(false); + return fundRequestService + .requestRecordClarification(organization.id, fundRequestRecord.fund_request_id, { + fund_request_record_id: fundRequestRecord.id, + text_requirement: form.values.text_requirement, + files_requirement: form.values.files_requirement, + question: form.values.question, + }) + .then(() => { + modal.close(); + onSubmitted(); + }) + .catch((err: ResponseError) => { + form.setIsLocked(false); - if (err.status === 422) { - return form.setErrors(err.data.errors); - } + if (err.status === 422) { + return form.setErrors(err.data.errors); + } - modal.close(); - onSubmitted(err); - }) - .finally(() => setProgress(100)); - }); + modal.close(); + onSubmitted(err); + }) + .finally(() => setProgress(100)); + }, + ); return (
@@ -66,7 +82,7 @@ export default function ModalFundRequestClarify({
-
+
Aanvullingsverzoek
@@ -74,16 +90,74 @@ export default function ModalFundRequestClarify({ Voeg een bericht toe aan dit verzoek.
-
-
Bericht
-