Merge branch 'develop' into fix-typos
This commit is contained in:
commit
74aaddc0ba
|
|
@ -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 }}
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -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
|
|
@ -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
|
|
@ -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
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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' );
|
||||
|
|
|
|||
|
|
@ -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' )
|
||||
)
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
174
js/theme.js
174
js/theme.js
|
|
@ -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
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 it is too large
Load Diff
45
package.json
45
package.json
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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" />
|
||||
|
||||
|
|
|
|||
|
|
@ -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.#'
|
||||
|
|
|
|||
|
|
@ -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 -->
|
||||
|
|
|
|||
|
|
@ -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 -->
|
||||
|
|
|
|||
|
|
@ -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 -->
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Load PHPStan extensions
|
||||
*
|
||||
* @package Understrap
|
||||
*/
|
||||
|
||||
require_once __DIR__ . '/GetThemeModReturnType.php';
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@
|
|||
@import "mixins";
|
||||
@import "utilities";
|
||||
|
||||
// Layout & components
|
||||
@import "root";
|
||||
|
||||
// Helpers
|
||||
@import "helpers";
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue