Merge branch 'develop' into editor-color-palette

This commit is contained in:
IanDelMar 2023-10-10 10:19:33 +02:00
commit 76b5702482
63 changed files with 3145 additions and 6298 deletions

View File

@ -8,6 +8,12 @@
-
## Release 1.2.2 January 16th 2023
** Fixes **
- Updates WooCommerce templates as of 7.1.0
## Release 1.2.1 November 17th 2022
** Fixes **

View File

@ -5,10 +5,17 @@ on:
branches: [ develop ]
paths:
- '**.php'
- 'phpcs.xml.dist'
- 'phpmd.xml'
- 'phpstan.neon.dist'
pull_request:
branches: [ develop ]
paths:
- '**.php'
- 'phpcs.xml.dist'
- 'phpmd.xml'
- 'phpstan.neon.dist'
pull_request_target:
workflow_dispatch:
env:
@ -25,40 +32,40 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.head_ref }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.php-version }}
tools: composer, cs2pr
tools: cs2pr
coverage: none
env:
fail-fast: true
- name: Get Composer cache directory
id: composer-cache
- name: Cache PHPCS cache
uses: actions/cache@v3
with:
path: vendor
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
path: .phpcs-cache.json
key: ${{ runner.os }}-phpcs-cache-${{ hashFiles('**/composer.lock', 'phpcs.xml.dist') }}
- name: Install dependencies
if: steps.composer-cache.outputs.cache-hit != 'true'
run: composer install --prefer-dist --no-progress
- name: Install Composer dependencies
uses: "ramsey/composer-install@v2"
- name: Auto fix coding standards
run: composer phpcs-fix
continue-on-error: true
- name: Commit coding standards fixes
uses: stefanzweifel/git-auto-commit-action@v4
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: Fix coding standards with phpcbf
branch: ${{ github.head_ref }}
- name: Check coding standards
run: composer phpcs-ga | cs2pr
run: composer phpcs -- -q -n --report=checkstyle | cs2pr
php-lint:
@ -68,30 +75,19 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.php-version }}
tools: composer, cs2pr
tools: cs2pr, parallel-lint
coverage: none
- name: Get Composer cache directory
id: composer-cache
uses: actions/cache@v3
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- name: Install dependencies
if: steps.composer-cache.outputs.cache-hit != 'true'
run: composer install --prefer-dist --no-progress
env:
fail-fast: true
- name: Check syntax
run: composer php-lint
run: parallel-lint --checkstyle . | cs2pr
phpstan:
@ -101,29 +97,29 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.head_ref }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.php-version }}
tools: composer, cs2pr
coverage: none
env:
fail-fast: true
- name: Get Composer cache directory
id: composer-cache
- name: Cache PHPStan cache
uses: actions/cache@v3
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
path: .phpstan-cache
key: ${{ runner.os }}-phpstan-cache-${{ hashFiles('**/composer.lock', 'phpstan.neon.dist') }}
- name: Install dependencies
if: steps.composer-cache.outputs.cache-hit != 'true'
run: composer install --prefer-dist --no-progress
- name: Install Composer dependencies
uses: "ramsey/composer-install@v2"
- name: Static Analysis
- name: Analyse
id: phpstan
run: composer phpstan -- --error-format=github
@ -131,10 +127,9 @@ jobs:
run: composer phpstan-baseline
- name: Commit updated basefile
uses: stefanzweifel/git-auto-commit-action@v4
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: Update PHPStan basefile
branch: ${{ github.head_ref }}
phpmd:
@ -144,36 +139,27 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.head_ref }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.php-version }}
tools: composer, cs2pr
tools: phpmd
coverage: none
- name: Get Composer cache directory
id: composer-cache
uses: actions/cache@v3
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- name: Install dependencies
if: steps.composer-cache.outputs.cache-hit != 'true'
run: composer install --prefer-dist --no-progress
env:
fail-fast: true
- name: Detect mess
run: composer phpmd-ga
run: phpmd . github phpmd.xml
- name: Update basefile
run: composer phpmd-baseline
run: phpmd . ansi phpmd.xml --generate-baseline
- name: Commit updated basefile
uses: stefanzweifel/git-auto-commit-action@v4
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: Update PHPMD basefile
branch: ${{ github.head_ref }}

View File

@ -17,35 +17,42 @@
}
],
"require": {
"php": ">=5.6"
"php": "^7.4 || ^8.0"
},
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^1.0",
"php-parallel-lint/php-parallel-lint": "^1.3.2",
"phpcompatibility/phpcompatibility-wp": "^2.1.4",
"phpmd/phpmd": "^2.13.0",
"phpstan/phpstan": "^1.9.0",
"roave/security-advisories": "dev-master",
"squizlabs/php_codesniffer": "^3.7.1",
"szepeviktor/phpstan-wordpress": "^1.1.3",
"phpmd/phpmd": "^2.14.1",
"phpstan/phpstan": "^1.10.38",
"roave/security-advisories": "dev-latest",
"squizlabs/php_codesniffer": "^3.7.2",
"szepeviktor/phpstan-wordpress": "^1.3.0",
"wp-coding-standards/wpcs": "^2.3.0",
"wptrt/wpthemereview": "^0.2.1"
},
"scripts": {
"php-lint": "@php ./vendor/php-parallel-lint/php-parallel-lint/parallel-lint --exclude vendor --exclude node_modules --exclude dist --exclude .git --exclude .phpstan-cache .",
"phpcs": "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs -p",
"phpcs-ga": "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs -n --report=checkstyle",
"phpcs-fix": "@php ./vendor/squizlabs/php_codesniffer/bin/phpcbf",
"phpcs-config-set" : "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs --config-set installed_paths ../../phpcompatibility/php-compatibility,../../phpcompatibility/phpcompatibility-paragonie,../../phpcompatibility/phpcompatibility-wp,../../wp-coding-standards/wpcs,../../wptrt/wpthemereview",
"phpmd": "@php ./vendor/phpmd/phpmd/src/bin/phpmd . ansi phpmd.xml",
"phpmd-baseline": "@phpmd -- --generate-baseline",
"phpmd-ga": "@php ./vendor/phpmd/phpmd/src/bin/phpmd . github phpmd.xml",
"phpstan": "@php ./vendor/phpstan/phpstan/phpstan analyse -a src/phpstan/autoload.php",
"phpstan-baseline": "@php ./vendor/phpstan/phpstan/phpstan analyse -a src/phpstan/autoload.php --generate-baseline",
"post-install-cmd": "@phpcs-config-set",
"post-update-cmd": "@phpcs-config-set"
"php-lint": "parallel-lint --exclude vendor --exclude node_modules --exclude dist --exclude .git --exclude .phpstan-cache .",
"phpcs": "phpcs -p",
"phpcs-fix": "phpcbf",
"phpmd": "phpmd . ansi phpmd.xml",
"phpmd-baseline": "@phpmd --generate-baseline",
"phpstan": "phpstan analyse",
"phpstan-baseline": "@phpstan --generate-baseline --allow-empty-baseline"
},
"support": {
"issues": "https://github.com/understrap/understrap/issues",
"source": "https://github.com/understrap/understrap"
},
"config": {
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"Understrap\\PHPStan\\": "src/phpstan"
}
}
}

1002
composer.lock generated

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -846,11 +846,80 @@ progress {
}
/*!
* Bootstrap Utilities v5.2.2 (https://getbootstrap.com/)
* Bootstrap Utilities v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
:root {
--bs-blue: #0d6efd;
--bs-indigo: #6610f2;
--bs-purple: #5533ff;
--bs-pink: #d63384;
--bs-red: #dc3545;
--bs-orange: #fd7e14;
--bs-yellow: #ffc107;
--bs-green: #198754;
--bs-teal: #20c997;
--bs-cyan: #0dcaf0;
--bs-black: #000;
--bs-white: #fff;
--bs-gray: #6c757d;
--bs-gray-dark: #343a40;
--bs-gray-100: #f8f9fa;
--bs-gray-200: #e9ecef;
--bs-gray-300: #dee2e6;
--bs-gray-400: #ced4da;
--bs-gray-500: #adb5bd;
--bs-gray-600: #6c757d;
--bs-gray-700: #495057;
--bs-gray-800: #343a40;
--bs-gray-900: #212529;
--bs-primary: #5533ff;
--bs-secondary: #6c757d;
--bs-success: #198754;
--bs-info: #0dcaf0;
--bs-warning: #ffc107;
--bs-danger: #dc3545;
--bs-light: #f8f9fa;
--bs-dark: #212529;
--bs-primary-rgb: 85, 51, 255;
--bs-secondary-rgb: 108, 117, 125;
--bs-success-rgb: 25, 135, 84;
--bs-info-rgb: 13, 202, 240;
--bs-warning-rgb: 255, 193, 7;
--bs-danger-rgb: 220, 53, 69;
--bs-light-rgb: 248, 249, 250;
--bs-dark-rgb: 33, 37, 41;
--bs-white-rgb: 255, 255, 255;
--bs-black-rgb: 0, 0, 0;
--bs-body-color-rgb: 33, 37, 41;
--bs-body-bg-rgb: 255, 255, 255;
--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
--bs-body-font-family: var(--bs-font-sans-serif);
--bs-body-font-size: 1rem;
--bs-body-font-weight: 400;
--bs-body-line-height: 1.5;
--bs-body-color: #212529;
--bs-body-bg: #fff;
--bs-border-width: 1px;
--bs-border-style: solid;
--bs-border-color: #dee2e6;
--bs-border-color-translucent: rgba(0, 0, 0, 0.175);
--bs-border-radius: 0.375rem;
--bs-border-radius-sm: 0.25rem;
--bs-border-radius-lg: 0.5rem;
--bs-border-radius-xl: 1rem;
--bs-border-radius-2xl: 2rem;
--bs-border-radius-pill: 50rem;
--bs-link-color: #5533ff;
--bs-link-hover-color: #4429cc;
--bs-code-color: #d63384;
--bs-highlight-bg: #fff3cd;
}
.clearfix::after {
display: block;
clear: both;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -3750,7 +3750,13 @@ input[type=button].btn-block {
.woocommerce-notices-wrapper .woocommerce-message .btn-group-toggle > a.button input[type=checkbox],
.wpcf7 .btn-group-toggle > input[type=submit] input[type=checkbox],
.btn-group-toggle > .btn-group > .btn input[type=radio],
.btn-group-toggle > .btn-group > .btn input[type=checkbox] {
.woocommerce-info .btn-group-toggle > .btn-group > a.button input[type=radio],
.woocommerce-notices-wrapper .woocommerce-message .btn-group-toggle > .btn-group > a.button input[type=radio],
.wpcf7 .btn-group-toggle > .btn-group > input[type=submit] input[type=radio],
.btn-group-toggle > .btn-group > .btn input[type=checkbox],
.woocommerce-info .btn-group-toggle > .btn-group > a.button input[type=checkbox],
.woocommerce-notices-wrapper .woocommerce-message .btn-group-toggle > .btn-group > a.button input[type=checkbox],
.wpcf7 .btn-group-toggle > .btn-group > input[type=submit] input[type=checkbox] {
position: absolute;
clip: rect(0, 0, 0, 0);
pointer-events: none;
@ -8757,7 +8763,7 @@ button.bg-dark:focus {
}
}
.sr-only, a.skip-link {
.sr-only {
position: absolute;
width: 1px;
height: 1px;
@ -8769,7 +8775,7 @@ button.bg-dark:focus {
border: 0;
}
.sr-only-focusable:active, a.skip-link:active, .sr-only-focusable:focus, a.skip-link:focus {
.sr-only-focusable:active, .sr-only-focusable:focus {
position: static;
width: auto;
height: auto;
@ -11086,6 +11092,26 @@ article img,
height: auto;
}
a.skip-link {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
a.skip-link:active, a.skip-link:focus {
position: static;
width: auto;
height: auto;
overflow: visible;
clip: auto;
white-space: normal;
}
.navbar-dark .navbar-nav .dropdown-menu .nav-link {
display: block;
width: 100%;
@ -14669,7 +14695,7 @@ figure.woocommerce-product-gallery__wrapper {
content: "\f2e0";
}
.sr-only, a.skip-link {
.sr-only {
position: absolute;
width: 1px;
height: 1px;
@ -14680,7 +14706,7 @@ figure.woocommerce-product-gallery__wrapper {
border: 0;
}
.sr-only-focusable:active, a.skip-link:active, .sr-only-focusable:focus, a.skip-link:focus {
.sr-only-focusable:active, .sr-only-focusable:focus {
position: static;
width: auto;
height: auto;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
@charset "UTF-8";
/*!
* Bootstrap v5.2.2 (https://getbootstrap.com/)
* Bootstrap v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@ -6672,7 +6672,6 @@ textarea.form-control-lg {
display: block;
}
/* rtl:begin:ignore */
.carousel-item-next:not(.carousel-item-start),
.active.carousel-item-end {
transform: translateX(100%);
@ -6683,7 +6682,6 @@ textarea.form-control-lg {
transform: translateX(-100%);
}
/* rtl:end:ignore */
.carousel-fade .carousel-item {
opacity: 0;
transition-property: opacity;
@ -6942,8 +6940,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
}
@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-end {
top: 0;
right: 0;
@ -6951,8 +6947,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
}
@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-top {
top: 0;
right: 0;
@ -6962,8 +6956,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
}
@media (max-width: 575.98px) {
.offcanvas-sm.offcanvas-bottom {
right: 0;
left: 0;
@ -6972,13 +6964,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
}
@media (max-width: 575.98px) {
.offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {
transform: none;
}
}
@media (max-width: 575.98px) {
.offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {
visibility: visible;
}
@ -7030,8 +7018,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
}
@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-end {
top: 0;
right: 0;
@ -7039,8 +7025,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
}
@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-top {
top: 0;
right: 0;
@ -7050,8 +7034,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
}
@media (max-width: 767.98px) {
.offcanvas-md.offcanvas-bottom {
right: 0;
left: 0;
@ -7060,13 +7042,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
}
@media (max-width: 767.98px) {
.offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {
transform: none;
}
}
@media (max-width: 767.98px) {
.offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {
visibility: visible;
}
@ -7118,8 +7096,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
}
@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-end {
top: 0;
right: 0;
@ -7127,8 +7103,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
}
@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-top {
top: 0;
right: 0;
@ -7138,8 +7112,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
}
@media (max-width: 991.98px) {
.offcanvas-lg.offcanvas-bottom {
right: 0;
left: 0;
@ -7148,13 +7120,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
}
@media (max-width: 991.98px) {
.offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {
transform: none;
}
}
@media (max-width: 991.98px) {
.offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {
visibility: visible;
}
@ -7206,8 +7174,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
}
@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-end {
top: 0;
right: 0;
@ -7215,8 +7181,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
}
@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-top {
top: 0;
right: 0;
@ -7226,8 +7190,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
}
@media (max-width: 1199.98px) {
.offcanvas-xl.offcanvas-bottom {
right: 0;
left: 0;
@ -7236,13 +7198,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
}
@media (max-width: 1199.98px) {
.offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {
transform: none;
}
}
@media (max-width: 1199.98px) {
.offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {
visibility: visible;
}
@ -7294,8 +7252,6 @@ textarea.form-control-lg {
border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(-100%);
}
}
@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-end {
top: 0;
right: 0;
@ -7303,8 +7259,6 @@ textarea.form-control-lg {
border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateX(100%);
}
}
@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-top {
top: 0;
right: 0;
@ -7314,8 +7268,6 @@ textarea.form-control-lg {
border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(-100%);
}
}
@media (max-width: 1399.98px) {
.offcanvas-xxl.offcanvas-bottom {
right: 0;
left: 0;
@ -7324,13 +7276,9 @@ textarea.form-control-lg {
border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
transform: translateY(100%);
}
}
@media (max-width: 1399.98px) {
.offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {
transform: none;
}
}
@media (max-width: 1399.98px) {
.offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {
visibility: visible;
}
@ -7748,8 +7696,7 @@ textarea.form-control-lg {
}
.visually-hidden,
.visually-hidden-focusable:not(:focus):not(:focus-within),
a.skip-link:not(:focus):not(:focus-within) {
.visually-hidden-focusable:not(:focus):not(:focus-within) {
position: absolute !important;
width: 1px !important;
height: 1px !important;
@ -11794,6 +11741,18 @@ article img,
height: auto;
}
a.skip-link:not(:focus):not(:focus-within) {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}
.navbar-dark .navbar-nav .dropdown-menu .nav-link {
display: block;
width: 100%;

File diff suppressed because one or more lines are too long

4
css/theme.min.css vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -29,7 +29,9 @@ $navbar_type = get_theme_mod( 'understrap_navbar_type', 'collapse' );
<!-- ******************* The Navbar Area ******************* -->
<header id="wrapper-navbar">
<a class="skip-link" href="#content"><?php esc_html_e( 'Skip to content', 'understrap' ); ?></a>
<a class="skip-link <?php echo understrap_get_screen_reader_class( true ); ?>" href="#content">
<?php esc_html_e( 'Skip to content', 'understrap' ); ?>
</a>
<?php get_template_part( 'global-templates/navbar', $navbar_type . '-' . $bootstrap_version ); ?>

View File

@ -1 +1 @@
{"--bs-blue":"#0d6efd","--bs-indigo":"#6610f2","--bs-purple":"#5533ff","--bs-pink":"#d63384","--bs-red":"#dc3545","--bs-orange":"#fd7e14","--bs-yellow":"#ffc107","--bs-green":"#198754","--bs-teal":"#20c997","--bs-cyan":"#0dcaf0","--bs-white":"#fff","--bs-gray":"#6c757d","--bs-gray-dark":"#343a40"}
{"--blue":"#007bff","--indigo":"#6610f2","--purple":"#5533ff","--pink":"#e83e8c","--red":"#dc3545","--orange":"#fd7e14","--yellow":"#ffc107","--green":"#28a745","--teal":"#20c997","--cyan":"#17a2b8","--white":"#fff","--gray":"#6c757d","--gray-dark":"#343a40"}

View File

@ -82,6 +82,18 @@ if ( ! function_exists( 'understrap_tiny_mce_before_init' ) ) {
}
$settings['style_formats'] = wp_json_encode( $style_formats );
/*
* Fix TinyMCE editor body margin that is set to 0 by Bootstrap's
* _reboot.scss (v4 & v5). `margin: 9px 10px` is the value used by WP's
* TinyMCE skin (/wp-includes/js/tinymce/skins/wordpress/wp-content.css).
*/
if ( isset( $settings['content_style'] ) ) {
$settings['content_style'] .= ' body#tinymce { margin: 9px 10px; }';
} else {
$settings['content_style'] = 'body#tinymce { margin: 9px 10px; }';
}
return $settings;
}
}

View File

@ -27,7 +27,7 @@ if ( ! function_exists( 'understrap_scripts' ) ) {
$theme_scripts = "/js/theme-bootstrap4{$suffix}.js";
}
$css_version = $theme_version . '.' . filemtime( get_template_directory() . $theme_styles ); // @phpstan-ignore-line -- file exists
$css_version = $theme_version . '.' . filemtime( get_template_directory() . $theme_styles );
wp_enqueue_style( 'understrap-styles', get_template_directory_uri() . $theme_styles, array(), $css_version );
// Fix that the offcanvas close icon is hidden behind the admin bar.
@ -37,7 +37,7 @@ if ( ! function_exists( 'understrap_scripts' ) ) {
wp_enqueue_script( 'jquery' );
$js_version = $theme_version . '.' . filemtime( get_template_directory() . $theme_scripts ); // @phpstan-ignore-line -- file exists
$js_version = $theme_version . '.' . filemtime( get_template_directory() . $theme_scripts );
wp_enqueue_script( 'understrap-scripts', get_template_directory_uri() . $theme_scripts, array(), $js_version, true );
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );

View File

@ -36,13 +36,13 @@ if ( ! function_exists( 'understrap_add_site_info' ) ) {
sprintf(
/* translators: 1: Theme name, 2: Theme author */
esc_html__( 'Theme: %1$s by %2$s.', 'understrap' ),
$the_theme->get( 'Name' ), // @phpstan-ignore-line -- theme exists
$the_theme->get( 'Name' ),
'<a href="' . esc_url( __( 'https://understrap.com', 'understrap' ) ) . '">understrap.com</a>'
),
sprintf(
/* translators: Theme version */
esc_html__( 'Version: %s', 'understrap' ),
$the_theme->get( 'Version' ) // @phpstan-ignore-line -- theme exists
$the_theme->get( 'Version' )
)
);

View File

@ -204,7 +204,7 @@ if ( ! function_exists( 'understrap_body_attributes' ) ) {
* @param array $atts An associative array of attributes.
*/
$atts = array_unique( apply_filters( 'understrap_body_attributes', $atts = array() ) );
if ( ! is_array( $atts ) || empty( $atts ) ) {
if ( empty( $atts ) ) {
return;
}
@ -371,3 +371,20 @@ if ( ! function_exists( 'understrap_get_list_item_separator' ) ) {
return esc_html__( ', ', 'understrap' );
}
}
if ( ! function_exists( 'understrap_get_screen_reader_class' ) ) {
/**
* Retrieves Bootstrap's screen reader text class.
*
* @param bool $focusable (Optional) Whether to make the screen reader text
* visually focusable. Default: false.
* @return string Bootstrap's screen reader text class.
*/
function understrap_get_screen_reader_class( $focusable = false ) {
$bootstrap_version = get_theme_mod( 'understrap_bootstrap_version', 'bootstrap4' );
if ( 'bootstrap4' === $bootstrap_version ) {
return $focusable ? 'sr-only sr-only-focusable' : 'sr-only';
}
return $focusable ? 'visually-hidden-focusable' : 'visually-hidden';
}
}

View File

@ -1,6 +1,6 @@
/*!
* Understrap v1.2.1 (https://understrap.com)
* Copyright 2013-2022 The UnderStrap Authors (https://github.com/understrap/understrap/graphs/contributors)
* Understrap v1.2.2 (https://understrap.com)
* Copyright 2013-2023 The Understrap Authors (https://github.com/understrap/understrap/graphs/contributors)
* Licensed under GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
*/
(function (global, factory) {
@ -16,6 +16,7 @@
* --------------------------------------------------------------------------
*/
/**
* Private TransitionEnd Helpers
*/
@ -176,6 +177,7 @@
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -303,6 +305,7 @@
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -475,6 +478,7 @@
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -952,6 +956,7 @@
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -3696,6 +3701,7 @@
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -4116,6 +4122,7 @@
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -4716,6 +4723,7 @@
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -5302,6 +5310,7 @@
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -5445,6 +5454,7 @@
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -5676,6 +5686,7 @@
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -5865,6 +5876,7 @@
* --------------------------------------------------------------------------
*/
/**
* Constants
*/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
/*!
* Understrap v1.2.1 (https://understrap.com)
* Copyright 2013-2022 The UnderStrap Authors (https://github.com/understrap/understrap/graphs/contributors)
* Understrap v1.2.2 (https://understrap.com)
* Copyright 2013-2023 The Understrap Authors (https://github.com/understrap/understrap/graphs/contributors)
* Licensed under GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
*/
(function (global, factory) {
@ -11,7 +11,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): util/index.js
* Bootstrap (v5.2.3): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@ -279,11 +279,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): dom/event-handler.js
* Bootstrap (v5.2.3): dom/event-handler.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -503,7 +504,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): dom/data.js
* Bootstrap (v5.2.3): dom/data.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@ -551,7 +552,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): dom/manipulator.js
* Bootstrap (v5.2.3): dom/manipulator.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@ -608,11 +609,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): util/config.js
* Bootstrap (v5.2.3): util/config.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Class definition
*/
@ -661,16 +663,17 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): base-component.js
* Bootstrap (v5.2.3): base-component.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
const VERSION = '5.2.2';
const VERSION = '5.2.3';
/**
* Class definition
@ -729,10 +732,11 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): util/component-functions.js
* Bootstrap (v5.2.3): util/component-functions.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
const enableDismissTrigger = (component, method = 'hide') => {
const clickEvent = `click.dismiss${component.EVENT_KEY}`;
const name = component.NAME;
@ -753,11 +757,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): alert.js
* Bootstrap (v5.2.3): alert.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -827,11 +832,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): button.js
* Bootstrap (v5.2.3): button.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -890,11 +896,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): dom/selector-engine.js
* Bootstrap (v5.2.3): dom/selector-engine.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -947,11 +954,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): util/swipe.js
* Bootstrap (v5.2.3): util/swipe.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -1066,11 +1074,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): carousel.js
* Bootstrap (v5.2.3): carousel.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -1438,11 +1447,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): collapse.js
* Bootstrap (v5.2.3): collapse.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -1821,7 +1831,7 @@
function getUAString() {
var uaData = navigator.userAgentData;
if (uaData != null && uaData.brands) {
if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {
return uaData.brands.map(function (item) {
return item.brand + "/" + item.version;
}).join(' ');
@ -2108,10 +2118,9 @@
// Zooming can change the DPR, but it seems to report a value that will
// cleanly divide the values into the appropriate subpixels.
function roundOffsetsByDPR(_ref) {
function roundOffsetsByDPR(_ref, win) {
var x = _ref.x,
y = _ref.y;
var win = window;
var dpr = win.devicePixelRatio || 1;
return {
x: round(x * dpr) / dpr || 0,
@ -2184,7 +2193,7 @@
var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
x: x,
y: y
}) : {
}, getWindow(popper)) : {
x: x,
y: y
};
@ -3169,7 +3178,7 @@
state.orderedModifiers = orderedModifiers.filter(function (m) {
return m.enabled;
}); // Validate the provided modifiers so that the consumer will get warned
});
runModifierEffects();
return instance.update();
},
@ -3257,11 +3266,11 @@
// one.
function runModifierEffects() {
state.orderedModifiers.forEach(function (_ref3) {
var name = _ref3.name,
_ref3$options = _ref3.options,
options = _ref3$options === void 0 ? {} : _ref3$options,
effect = _ref3.effect;
state.orderedModifiers.forEach(function (_ref) {
var name = _ref.name,
_ref$options = _ref.options,
options = _ref$options === void 0 ? {} : _ref$options,
effect = _ref.effect;
if (typeof effect === 'function') {
var cleanupFn = effect({
state: state,
@ -3297,53 +3306,54 @@
var Popper = /*#__PURE__*/Object.freeze({
__proto__: null,
popperGenerator: popperGenerator,
detectOverflow: detectOverflow,
createPopperBase: createPopper$2,
createPopper: createPopper,
createPopperLite: createPopper$1,
top: top,
bottom: bottom,
right: right,
left: left,
auto: auto,
basePlacements: basePlacements,
start: start,
end: end,
clippingParents: clippingParents,
viewport: viewport,
popper: popper,
reference: reference,
variationPlacements: variationPlacements,
placements: placements,
beforeRead: beforeRead,
read: read,
afterRead: afterRead,
beforeMain: beforeMain,
main: main,
afterMain: afterMain,
beforeWrite: beforeWrite,
write: write,
afterRead: afterRead,
afterWrite: afterWrite,
modifierPhases: modifierPhases,
applyStyles: applyStyles$1,
arrow: arrow$1,
auto: auto,
basePlacements: basePlacements,
beforeMain: beforeMain,
beforeRead: beforeRead,
beforeWrite: beforeWrite,
bottom: bottom,
clippingParents: clippingParents,
computeStyles: computeStyles$1,
createPopper: createPopper,
createPopperBase: createPopper$2,
createPopperLite: createPopper$1,
detectOverflow: detectOverflow,
end: end,
eventListeners: eventListeners,
flip: flip$1,
hide: hide$1,
left: left,
main: main,
modifierPhases: modifierPhases,
offset: offset$1,
placements: placements,
popper: popper,
popperGenerator: popperGenerator,
popperOffsets: popperOffsets$1,
preventOverflow: preventOverflow$1
preventOverflow: preventOverflow$1,
read: read,
reference: reference,
right: right,
start: start,
top: top,
variationPlacements: variationPlacements,
viewport: viewport,
write: write
});
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): dropdown.js
* Bootstrap (v5.2.3): dropdown.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -3706,11 +3716,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): util/scrollBar.js
* Bootstrap (v5.2.3): util/scrollBar.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -3803,11 +3814,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): util/backdrop.js
* Bootstrap (v5.2.3): util/backdrop.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -3927,11 +3939,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): util/focustrap.js
* Bootstrap (v5.2.3): util/focustrap.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -4025,11 +4038,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): modal.js
* Bootstrap (v5.2.3): modal.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -4331,11 +4345,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): offcanvas.js
* Bootstrap (v5.2.3): offcanvas.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -4561,7 +4576,7 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): util/sanitizer.js
* Bootstrap (v5.2.3): util/sanitizer.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
@ -4656,11 +4671,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): util/template-factory.js
* Bootstrap (v5.2.3): util/template-factory.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -4791,11 +4807,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): tooltip.js
* Bootstrap (v5.2.3): tooltip.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -4931,9 +4948,6 @@
dispose() {
clearTimeout(this._timeout);
EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
if (this.tip) {
this.tip.remove();
}
if (this._element.getAttribute('data-bs-original-title')) {
this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));
}
@ -4955,10 +4969,7 @@
}
// todo v6 remove this OR make it optional
if (this.tip) {
this.tip.remove();
this.tip = null;
}
this._disposePopper();
const tip = this._getTipElement();
this._element.setAttribute('aria-describedby', tip.getAttribute('id'));
const {
@ -4968,11 +4979,7 @@
container.append(tip);
EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));
}
if (this._popper) {
this._popper.update();
} else {
this._popper = this._createPopper(tip);
}
this._popper = this._createPopper(tip);
tip.classList.add(CLASS_NAME_SHOW$2);
// If this is a touch-enabled device we add extra
@ -5021,11 +5028,10 @@
return;
}
if (!this._isHovered) {
tip.remove();
this._disposePopper();
}
this._element.removeAttribute('aria-describedby');
EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));
this._disposePopper();
};
this._queueCallback(complete, this.tip, this._isAnimated());
}
@ -5284,6 +5290,10 @@
this._popper.destroy();
this._popper = null;
}
if (this.tip) {
this.tip.remove();
this.tip = null;
}
}
// Static
@ -5309,11 +5319,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): popover.js
* Bootstrap (v5.2.3): popover.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -5389,11 +5400,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): scrollspy.js
* Bootstrap (v5.2.3): scrollspy.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -5648,11 +5660,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): tab.js
* Bootstrap (v5.2.3): tab.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
@ -5909,11 +5922,12 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.2.2): toast.js
* Bootstrap (v5.2.3): toast.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/

File diff suppressed because one or more lines are too long

6
js/theme.min.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

7597
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "understrap",
"version": "1.2.1",
"version": "1.2.2",
"description": "WordPress Theme framework",
"main": "index.js",
"scripts": {
@ -32,7 +32,8 @@
"extends": "./src/build/babel.config.js"
},
"engines": {
"node": ">=16"
"node": ">=18",
"npm": ">=8.6.0"
},
"repository": {
"type": "git",
@ -45,7 +46,7 @@
"bootstrap",
"underscores"
],
"author": "The UnderStrap Authors (https://github.com/understrap/understrap/graphs/contributors)",
"author": "The Understrap Authors (https://github.com/understrap/understrap/graphs/contributors)",
"license": "GPL-3.0",
"licenseUrl": "https://www.gnu.org/licenses/gpl-3.0.html",
"bugs": {
@ -53,30 +54,30 @@
},
"homepage": "https://understrap.com",
"devDependencies": {
"@babel/core": "^7.19.6",
"@babel/preset-env": "^7.19.4",
"@popperjs/core": "^2.11.6",
"@rollup/plugin-babel": "^6.0.2",
"@rollup/plugin-commonjs": "^23.0.2",
"@rollup/plugin-multi-entry": "^6.0.0",
"@rollup/plugin-node-resolve": "^15.0.1",
"@rollup/plugin-replace": "^5.0.1",
"autoprefixer": "^10.4.13",
"bootstrap": "^5.2.2",
"@babel/core": "^7.23.0",
"@babel/preset-env": "^7.22.20",
"@popperjs/core": "^2.11.8",
"@rollup/plugin-babel": "^6.0.4",
"@rollup/plugin-commonjs": "^25.0.5",
"@rollup/plugin-multi-entry": "^6.0.1",
"@rollup/plugin-node-resolve": "^15.2.3",
"@rollup/plugin-replace": "^5.0.3",
"autoprefixer": "^10.4.16",
"bootstrap": "~5.2.3",
"bootstrap4": "npm:bootstrap@^4.6.2",
"browser-sync": "^2.27.10",
"browserslist": "^4.21.4",
"caniuse-lite": "^1.0.30001430",
"clean-css-cli": "^5.6.1",
"browser-sync": "^2.29.3",
"browserslist": "^4.22.1",
"caniuse-lite": "^1.0.30001546",
"clean-css-cli": "^5.6.2",
"font-awesome": "^4.7.0",
"nodemon": "^2.0.20",
"nodemon": "^3.0.1",
"npm-run-all": "^4.1.5",
"popper.js": "^1.16.1",
"postcss": "^8.4.18",
"postcss-cli": "^10.0.0",
"postcss": "^8.4.31",
"postcss-cli": "^10.1.0",
"postcss-understrap-palette-generator": "git+https://github.com/understrap/postcss-understrap-palette-generator.git",
"rollup": "^3.2.5",
"sass": "^1.56.0",
"terser": "^5.15.1"
"rollup": "^4.0.2",
"sass": "^1.69.0",
"terser": "^5.21.0"
}
}

View File

@ -4,7 +4,7 @@
<description>Apply WordPress Coding Standards to Understrap</description>
<!-- Whenever possible, cache the scan results and re-use those for unchanged files on the next scan. -->
<arg name="cache" value=".phpcs-cache"/>
<arg name="cache" value=".phpcs-cache.json"/>
<!-- Strip the filepaths down to the relevant bit. -->
<arg name="basepath" value="./"/>
@ -76,6 +76,7 @@
<element value="get_the_archive_title"/>
<element value="get_the_archive_description"/>
<element value="understrap_get_list_item_separator"/>
<element value="understrap_get_screen_reader_class"/>
</property>
</properties>
</rule>
@ -88,6 +89,11 @@
<exclude phpcs-only="true" name="Generic.Files.LineEndings"/>
</rule>
<!-- Ignore mixed line-endings warnings -->
<rule ref="Internal.LineEndings.Mixed">
<severity>0</severity>
</rule>
<!-- Use the WPThemeReview Ruleset -->
<rule ref="WPThemeReview" />

View File

@ -55,3 +55,5 @@ parameters:
- '#Function understrap_tags_list\(\) has no return type specified.#'
- '#Function understrap_comments_popup_link\(\) has no return type specified.#'
- '#Function understrap_offcanvas_admin_bar_inline_styles\(\) has no return type specified.#'
# temorary:
- '#Parameter \#2 ...\$values of function sprintf expects bool\|float\|int\|string\|null, string\|void given.#'

View File

@ -8,27 +8,25 @@
// Exit if accessed directly.
defined( 'ABSPATH' ) || exit;
$container = get_theme_mod( 'understrap_container_type' );
if ( ! is_active_sidebar( 'footerfull' ) ) {
return;
}
$container = get_theme_mod( 'understrap_container_type' );
?>
<?php if ( is_active_sidebar( 'footerfull' ) ) : ?>
<!-- ******************* The Footer Full-width Widget Area ******************* -->
<!-- ******************* The Footer Full-width Widget Area ******************* -->
<div class="wrapper" id="wrapper-footer-full" role="complementary">
<div class="wrapper" id="wrapper-footer-full" role="complementary">
<div class="<?php echo esc_attr( $container ); ?>" id="footer-full-content" tabindex="-1">
<div class="<?php echo esc_attr( $container ); ?>" id="footer-full-content" tabindex="-1">
<div class="row">
<div class="row">
<?php dynamic_sidebar( 'footerfull' ); ?>
</div>
<?php dynamic_sidebar( 'footerfull' ); ?>
</div>
</div><!-- #wrapper-footer-full -->
</div>
<?php
endif;
</div><!-- #wrapper-footer-full -->

View File

@ -7,37 +7,36 @@
// Exit if accessed directly.
defined( 'ABSPATH' ) || exit;
if ( ! is_active_sidebar( 'hero' ) ) {
return;
}
?>
<?php if ( is_active_sidebar( 'hero' ) ) : ?>
<!-- ******************* The Hero Widget Area ******************* -->
<!-- ******************* The Hero Widget Area ******************* -->
<div id="carouselExampleControls" class="carousel slide" data-interval="false" data-bs-ride="false">
<div id="carouselExampleControls" class="carousel slide" data-interval="false" data-bs-ride="false">
<div class="carousel-inner">
<div class="carousel-inner">
<?php dynamic_sidebar( 'hero' ); ?>
<?php dynamic_sidebar( 'hero' ); ?>
</div>
</div>
<a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev" data-bs-slide="prev">
<a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="screen-reader-text"><?php echo esc_html_x( 'Previous', 'carousel control', 'understrap' ); ?></span>
<span class="screen-reader-text"><?php echo esc_html_x( 'Previous', 'carousel control', 'understrap' ); ?></span>
</a>
</a>
<a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next" data-bs-slide="next">
<a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="screen-reader-text"><?php echo esc_html_x( 'Next', 'carousel control', 'understrap' ); ?></span>
<span class="screen-reader-text"><?php echo esc_html_x( 'Next', 'carousel control', 'understrap' ); ?></span>
</a>
</a>
</div><!-- .carousel -->
<?php
endif;
</div><!-- .carousel -->

View File

@ -8,26 +8,25 @@
// Exit if accessed directly.
defined( 'ABSPATH' ) || exit;
if ( ! is_active_sidebar( 'statichero' ) ) {
return;
}
$container = get_theme_mod( 'understrap_container_type' );
?>
<?php if ( is_active_sidebar( 'statichero' ) ) : ?>
<!-- ******************* The Hero Widget Area ******************* -->
<!-- ******************* The Hero Widget Area ******************* -->
<div class="wrapper" id="wrapper-static-hero">
<div class="wrapper" id="wrapper-static-hero">
<div class="<?php echo esc_attr( $container ); ?>" id="wrapper-static-content" tabindex="-1">
<div class="<?php echo esc_attr( $container ); ?>" id="wrapper-static-content" tabindex="-1">
<div class="row">
<div class="row">
<?php dynamic_sidebar( 'statichero' ); ?>
</div>
<?php dynamic_sidebar( 'statichero' ); ?>
</div>
</div><!-- #wrapper-static-hero -->
</div>
<?php
endif;
</div><!-- #wrapper-static-hero -->

View File

@ -11,7 +11,6 @@ use PhpParser\Node\Expr\FuncCall;
use PHPStan\Analyser\Scope;
use PHPStan\Reflection\FunctionReflection;
use PHPStan\Reflection\ParametersAcceptorSelector;
use PHPStan\Type\Constant\ConstantStringType;
use PHPStan\Type\DynamicFunctionReturnTypeExtension;
use PHPStan\Type\MixedType;
use PHPStan\Type\StringType;
@ -54,14 +53,20 @@ class GetThemeModReturnType implements DynamicFunctionReturnTypeExtension {
$functionReflection->getVariants()
)->getReturnType();
if (!$argType instanceof ConstantStringType) {
return $defaultType;
if (count($argType->getConstantStrings()) === 0) {
return null;
}
// Return the default value if it is not an Understrap specific theme mod.
if (!in_array($argType->getValue(), self::$themeMods, true)) {
return $defaultType;
$returnType = [];
foreach ($argType->getConstantStrings() as $constantString) {
if (in_array($constantString->getValue(), self::$themeMods, true)) {
$returnType[] = new StringType();
} else {
$returnType[] = $defaultType;
}
}
$returnType = TypeCombinator::union(...$returnType);
// Without second argument the default value is false, but can be filtered.
$defaultType = new MixedType();
@ -69,6 +74,6 @@ class GetThemeModReturnType implements DynamicFunctionReturnTypeExtension {
$defaultType = $scope->getType($functionCall->getArgs()[1]->value);
}
return TypeCombinator::union(new StringType(), $defaultType);
return TypeCombinator::union($returnType, $defaultType);
}
}

View File

@ -1,8 +0,0 @@
<?php
/**
* Load PHPStan extensions
*
* @package Understrap
*/
require_once __DIR__ . '/GetThemeModReturnType.php';

View File

@ -42,7 +42,6 @@
display: block;
}
/* rtl:begin:ignore */
.carousel-item-next:not(.carousel-item-start),
.active.carousel-item-end {
transform: translateX(100%);
@ -53,8 +52,6 @@
transform: translateX(-100%);
}
/* rtl:end:ignore */
//
// Alternate transitions

View File

@ -198,7 +198,7 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
// Return opaque color
// opaque(#fff, rgba(0, 0, 0, .5)) => #808080
@function opaque($background, $foreground) {
@return mix(rgba($foreground, 1), $background, opacity($foreground) * 100);
@return mix(rgba($foreground, 1), $background, opacity($foreground) * 100%);
}
// scss-docs-start color-functions

View File

@ -8,6 +8,9 @@
@import "mixins";
@import "utilities";
// Layout & components
@import "root";
// Helpers
@import "helpers";

View File

@ -1,6 +1,6 @@
@mixin bsBanner($file) {
/*!
* Bootstrap #{$file} v5.2.2 (https://getbootstrap.com/)
* Bootstrap #{$file} v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)

View File

@ -150,10 +150,10 @@ article img,
// Skip to content link
a.skip-link {
@if variable-exists('bootstrap4') {
@extend .sr-only;
@extend .sr-only-focusable;
@include sr-only();
@include sr-only-focusable();
} @else {
@extend .visually-hidden-focusable;
@include visually-hidden-focusable();
}
}

View File

@ -5,7 +5,7 @@ Author: Howard Development &amp; Consulting
Author URI: https://howarddc.com
GitHub Theme URI: https://github.com/understrap/understrap
Description: The renowned WordPress starter theme framework that combined Underscores and Bootstrap. Trusted by more than 100,000 developers for building handcrafted, custom WordPress sites.
Version: 1.2.1
Version: 1.2.2
Requires at least: 5.0
Tested up to: 6.1
Requires PHP: 5.2

View File

@ -12,7 +12,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.5.0
* @version 7.0.1
*/
defined( 'ABSPATH' ) || exit;

View File

@ -12,7 +12,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.8.0
* @version 7.0.1
*/
defined( 'ABSPATH' ) || exit;

View File

@ -14,7 +14,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 2.4.0
* @version 7.0.1
*/
// Exit if accessed directly.

View File

@ -12,7 +12,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.4.4
* @version 7.0.1
*/
defined( 'ABSPATH' ) || exit;

View File

@ -12,7 +12,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 5.2.0
* @version 7.0.1
*/
defined( 'ABSPATH' ) || exit;

View File

@ -12,7 +12,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.5.3
* @version 7.0.1
*/
defined( 'ABSPATH' ) || exit;

View File

@ -12,7 +12,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.6.0
* @version 7.1.0
*/
// Exit if accessed directly.
@ -35,7 +35,7 @@ if ( is_user_logged_in() ) {
</p>
<p class="form-row form-row-last">
<label for="password"><?php esc_html_e( 'Password', 'woocommerce' ); ?>&nbsp;<span class="required">*</span></label>
<input class="input-text form-control" type="password" name="password" id="password" autocomplete="current-password" />
<input class="input-text woocommerce-Input form-control" type="password" name="password" id="password" autocomplete="current-password" />
</p>
<div class="clear"></div>

View File

@ -12,7 +12,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.5.0
* @version 7.0.1
*/
defined( 'ABSPATH' ) || exit;

View File

@ -12,7 +12,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.6.0
* @version 7.0.1
*/
defined( 'ABSPATH' ) || exit;

View File

@ -12,7 +12,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 6.0.0
* @version 7.0.1
*/
if ( ! defined( 'ABSPATH' ) ) {

View File

@ -12,7 +12,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.5.2
* @version 7.0.1
*/
defined( 'ABSPATH' ) || exit;

View File

@ -12,7 +12,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.5.5
* @version 7.0.1
*/
defined( 'ABSPATH' ) || exit;

View File

@ -14,7 +14,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.7.0
* @version 7.0.1
*/
defined( 'ABSPATH' ) || exit;

View File

@ -12,7 +12,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.3.0
* @version 7.0.1
*/
if ( ! defined( 'ABSPATH' ) ) {

View File

@ -12,7 +12,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.4.0
* @version 7.0.1
*/
defined( 'ABSPATH' ) || exit;

View File

@ -4,7 +4,7 @@
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.4.0
* @version 7.0.1
*/
defined( 'ABSPATH' ) || exit;