Merge branch 'develop' into fix-typos

This commit is contained in:
Viktor Szépe 2023-10-10 08:23:53 +02:00 committed by GitHub
commit 74aaddc0ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
40 changed files with 3049 additions and 6258 deletions

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,28 @@ 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

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;

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;
}

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

@ -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;
}

View File

@ -1,6 +1,6 @@
/*!
* Understrap v1.2.2 (https://understrap.com)
* Copyright 2013-2023 The UnderStrap Authors (https://github.com/understrap/understrap/graphs/contributors)
* 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.2 (https://understrap.com)
* Copyright 2013-2023 The UnderStrap Authors (https://github.com/understrap/understrap/graphs/contributors)
* 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

4
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

7593
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -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="./"/>
@ -89,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)