diff --git a/.gitignore b/.gitignore
index fb39623..8f748ca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,6 +10,9 @@ vendor/
# Misc
*.log
-# Compiled files
-assets/
+# Archives
dist/
+*.zip
+*.tar
+*.gz
+*.tgz
diff --git a/.gulpconfig.js b/.gulpconfig.js
index 1525f00..9c0ec22 100644
--- a/.gulpconfig.js
+++ b/.gulpconfig.js
@@ -1,10 +1,45 @@
const pkg = require( './package.json' )
+const TerserPlugin = require( 'terser-webpack-plugin' )
const areas = {
constructWp: {
path: './plugins/construct-wp',
name: 'construct-wp',
title: 'ConstructWP',
- version: '0.1.0',
+ version: '0.2.0',
+ },
+}
+
+const translatePipes = {
+ checktextdomain: {
+ text_domain: 'text-domain',
+ keywords: [
+ '__:1,2d',
+ '_e:1,2d',
+ '_x:1,2c,3d',
+ '_ex:1,2c,3d',
+ '_n:1,2,4d',
+ '_nx:1,2,4c,5d',
+ '_n_noop:1,2,3d',
+ '_nx_noop:1,2,3c,4d',
+ 'esc_html__:1,2d',
+ 'esc_html_e:1,2d',
+ 'esc_html_x:1,2c,3d',
+ 'esc_attr__:1,2d',
+ 'esc_attr_e:1,2d',
+ 'esc_attr_x:1,2c,3d',
+ ],
+ report_missing: true,
+ report_success: false,
+ report_variable_domain: true,
+ correct_domain: true,
+ create_report_file: false,
+ force: false,
+ },
+ pot: {
+ domain: 'text-domain',
+ package: 'Package Name',
+ team: `${pkg.author.name} <${pkg.author.email}>`,
+ lastTranslator: `${pkg.author.name} <${pkg.author.email}>`,
},
}
@@ -15,7 +50,6 @@ module.exports = {
paths: [
`${areas.constructWp.path}/assets`,
`${areas.constructWp.path}/dist`,
- `${areas.constructWp.path}/languages`,
],
pipes: {
del: {
@@ -43,7 +77,7 @@ module.exports = {
src: {
allowEmpty: true,
base: `${areas.constructWp.path}/src/scss`,
- sourcemaps: process.env.NODE_ENV !== 'development',
+ sourcemaps: process.env.NODE_ENV === 'development',
},
dest: {
sourcemaps: '.',
@@ -103,6 +137,92 @@ module.exports = {
},
},
},
+ scripts: {
+ process: true,
+ watch: true,
+ logColor: 'magenta',
+ areas: [
+ {
+ paths: {
+ src: `${areas.constructWp.path}/src/js/**/*`,
+ watch: `${areas.constructWp.path}/src/js/**/*`,
+ dest: `${areas.constructWp.path}/assets/js`,
+ },
+ minify: {
+ process: process.env.NODE_ENV !== 'development',
+ separate: false,
+ },
+ pipes: {
+ // Put any pipe overrides here
+ src: {
+ allowEmpty: true,
+ base: `${areas.constructWp.path}/src/js`,
+ sourcemaps: process.env.NODE_ENV === 'development',
+ },
+ dest: {
+ sourcemaps: '.',
+ },
+ },
+ },
+ ],
+ pipes: {
+ filters: {
+ lint: [
+ '**/*.js',
+ ],
+ build: [
+ '**/*.js',
+ '!**/libs/**/*.js',
+ ],
+ },
+ watch: {
+ events: 'all',
+ },
+ eslint: {
+ // Overrides the version of eslint used
+ eslint: null,
+ formatter: 'stylish',
+ options: {
+ fix: false,
+ },
+ },
+ rollup: {
+ // Overrides the version of rollup used.
+ // Make sure to pass through the rollup function
+ // e.g. require( 'rollup' ).rollup
+ rollup: null,
+ input: {
+ plugins: [
+ require( '@rollup/plugin-babel' ).babel( {
+ exclude: 'node_modules/**',
+ babelHelpers: 'bundled',
+ } ),
+ require( '@rollup/plugin-node-resolve' ).nodeResolve(),
+ ],
+ treeshake: false,
+ onwarn( e ) {
+ if ( e.code === 'THIS_IS_UNDEFINED' ) {
+ return
+ }
+
+ console.warn( e.message )
+ },
+ },
+ output: {
+ file: 'scripts.js',
+ name: 'Scripts',
+ format: 'umd',
+ generatedCode: 'es2015',
+ globals: {},
+ },
+ },
+ uglify: {
+ output: {
+ comments: '/^!|@preserve|@license|@cc_on/i',
+ },
+ },
+ },
+ },
webpack: {
process: true,
watch: true,
@@ -123,7 +243,7 @@ module.exports = {
src: {
allowEmpty: true,
base: `${areas.constructWp.path}/src/gutenberg`,
- sourcemaps: process.env.NODE_ENV !== 'development',
+ sourcemaps: process.env.NODE_ENV === 'development',
},
dest: {
sourcemaps: '.',
@@ -192,7 +312,9 @@ module.exports = {
},
],
],
- plugins: [],
+ plugins: [
+ '@automattic/babel-plugin-preserve-i18n',
+ ],
},
},
},
@@ -201,8 +323,42 @@ module.exports = {
resolve: {
extensions: ['.js', '.jsx', '.json'],
},
- devtool: process.env.NODE_ENV == 'development' ? 'source-map' : false,
- mode: process.env.NODE_ENV == 'development' ? 'development' : 'production',
+ optimization: {
+ minimizer: [
+ new TerserPlugin( {
+ parallel: true,
+ terserOptions: {
+ output: {
+ comments: /translators:/i,
+ },
+ compress: {
+ passes: 2,
+ },
+ mangle: {
+ reserved: [
+ '__',
+ '_e',
+ '_x',
+ '_ex',
+ '_n',
+ '_nx',
+ '_n_noop',
+ '_nx_noop',
+ 'esc_html__',
+ 'esc_html_e',
+ 'esc_html_x',
+ 'esc_attr__',
+ 'esc_attr_e',
+ 'esc_attr_x',
+ ],
+ },
+ },
+ extractComments: false,
+ } ),
+ ],
+ },
+ devtool: process.env.NODE_ENV === 'development' ? 'source-map' : false,
+ mode: process.env.NODE_ENV === 'development' ? 'development' : 'production',
},
},
uglify: {
@@ -229,43 +385,59 @@ module.exports = {
allowEmpty: true,
},
dest: {},
+ checktextdomain: {
+ ...translatePipes.checktextdomain,
+ text_domain: areas.constructWp.name,
+ },
+ pot: {
+ ...translatePipes.pot,
+ domain: areas.constructWp.name,
+ package: areas.constructWp.title,
+ relativeTo: areas.constructWp.path,
+ },
},
},
- ],
- pipes: {
- checktextdomain: {
- text_domain: areas.constructWp.name,
- keywords: [
- '__:1,2d',
- '_e:1,2d',
- '_x:1,2c,3d',
- '_ex:1,2c,3d',
- '_n:1,2,4d',
- '_nx:1,2,4c,5d',
- '_n_noop:1,2,3d',
- '_nx_noop:1,2,3c,4d',
- 'esc_html__:1,2d',
- 'esc_html_e:1,2d',
- 'esc_html_x:1,2c,3d',
- 'esc_attr__:1,2d',
- 'esc_attr_e:1,2d',
- 'esc_attr_x:1,2c,3d',
- ],
- report_missing: true,
- report_success: false,
- report_variable_domain: true,
- correct_domain: true,
- create_report_file: false,
- force: false,
- },
- pot: {
- domain: areas.constructWp.name,
- package: areas.constructWp.title,
- lastTranslator: `${pkg.author.name} <${pkg.author.email}>`,
- headers: {
- 'Language-Team': `${pkg.author.name} <${pkg.author.email}>`,
+ {
+ paths: {
+ src: `${areas.constructWp.path}/assets/js/**/*.js`,
+ watch: `${areas.constructWp.path}/assets/js/**/*.js`,
+ dest: `${areas.constructWp.path}/languages/js/${areas.constructWp.name}.pot`,
+ },
+ pipes: {
+ // Put any pipe overrides here
+ src: {
+ allowEmpty: true,
+ },
+ dest: {},
+ checktextdomain: {
+ ...translatePipes.checktextdomain,
+ text_domain: areas.constructWp.name,
+ },
+ pot: {
+ ...translatePipes.pot,
+ domain: areas.constructWp.name,
+ package: areas.constructWp.title,
+ relativeTo: areas.constructWp.path,
+ parser: 'js',
+ parserOptions: {
+ ecmaVersion: 9,
+ },
+ },
},
},
+ ],
+ pipes: translatePipes,
+ },
+ po2json: {
+ process: true,
+ watch: true,
+ paths: [
+ `${areas.constructWp.path}/languages/**/*.po`,
+ ],
+ bin: 'vendor/bin/wp',
+ pretty: true,
+ execSync: {
+ shell: 'C:\\Program Files\\Git\\bin\\bash.exe',
},
},
browsersync: {
@@ -275,8 +447,9 @@ module.exports = {
port: 4000,
ui: false,
files: [
- '**/*',
- '!**/src/**/*'
+ 'plugins/**/*',
+ 'themes/**/*',
+ '!**/src/**/*',
],
ghostmode: false,
open: false,
diff --git a/.vscode/bookmarks.json b/.vscode/bookmarks.json
new file mode 100644
index 0000000..e717fab
--- /dev/null
+++ b/.vscode/bookmarks.json
@@ -0,0 +1,54 @@
+{
+ "files": [
+ {
+ "path": ".gulpconfig.js",
+ "bookmarks": [
+ {
+ "line": 7,
+ "column": 18,
+ "label": "Version number"
+ }
+ ]
+ },
+ {
+ "path": "plugins/construct-wp/construct-wp.php",
+ "bookmarks": [
+ {
+ "line": 5,
+ "column": 22,
+ "label": "Version number"
+ },
+ {
+ "line": 34,
+ "column": 24,
+ "label": "Version number"
+ }
+ ]
+ },
+ {
+ "path": "plugins/construct-wp/README.txt",
+ "bookmarks": [
+ {
+ "line": 6,
+ "column": 12,
+ "label": "Version number"
+ },
+ {
+ "line": 49,
+ "column": 0,
+ "label": "Changelog"
+ }
+ ]
+ },
+ {
+ "path": "README.md",
+ "bookmarks": [
+ {
+ "line": 37,
+ "column": 0,
+ "label": "Changelog"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vscode/terminals.json b/.vscode/terminals.json
index 1fe264a..5091f7f 100644
--- a/.vscode/terminals.json
+++ b/.vscode/terminals.json
@@ -7,9 +7,11 @@
"color": "terminal.ansiCyan"
},
{
- "name": "Plugin - Core",
- "cwd": "./plugins/construct-wp",
- "color": "terminal.ansiYellow"
+ "name": "PHPCS",
+ "color": "terminal.ansiYellow",
+ "command": "yarn phpcs:watch",
+ "execute": false,
+ "split": "Server"
}
]
}
\ No newline at end of file
diff --git a/README.md b/README.md
index b859169..5d3d620 100644
--- a/README.md
+++ b/README.md
@@ -37,8 +37,42 @@ Yes! Models and controllers can be auto-initiated if the class has a static meth
## Changelog
+### 0.2.0 - 2023-10-19
+
+#### Added
+
+* Allowed the assets to be committed
+* Custom menu item fields can now be hidden in screen options
+* Custom menu item fields can now be set in the customizer
+* Implemented setting to enable controllers
+* Implemented settings to enable auto-enqueue of scripts & styles
+* Implemented setting to control footer column count
+* Implemented JS translation functionality
+* Implemented settings for auto including & running theme classes
+* Implemented theme texdomain autoloading & accompanying setting
+
+#### Fixed
+
+* Fixed settings page not loading
+* Fixed PHP notice in widgets page caused by gutenberg js
+* Active class is now applied to the `a` tag in the navwalker
+
+#### Changed
+
+* Moved settings page ad main menu item
+* Moved settings pages from using tabs to working with multiple pages
+* Improved how custom white logo setting is declared
+* Moved both custom logos positions below site title & tagline
+* Pagination util can now have a `WP_Query` object passed through for use
+
+#### Removed
+
+* `CWP_THEME_SLUG` is no longer needed. Theme names are now retrieved from `get_template()` and `get_stylesheet()`
+
### 0.1.1 - 2023-10-10
+#### Fixed
+
* Fixed `the_logo` method in `CWP_Assets`
* Fixed theme models not being loaded correctly
* Fixed pagination not working
diff --git a/composer.json b/composer.json
index 260a3c0..91f79a2 100644
--- a/composer.json
+++ b/composer.json
@@ -52,7 +52,7 @@
"scripts": {
"phpcs-compat": "phpcs -p ./plugin --colors --report-file=phpcs-compat.log --report-width=150 --extensions=php --standard=PHPCompatibility --runtime-set testVersion 8.2",
"phpcs-setup": "phpcs --config-set installed_paths vendor/wp-coding-standards/wpcs",
- "phpcs": "phpcs -ps ./ --colors --report-file=phpcs.log --report-width=150 --extensions=php -d memory_limit=512M",
+ "phpcs": "phpcs -ps ./ --colors --report-file=phpcs.log --report-width=150 --extensions=php -d memory_limit=512M --runtime-set ignore_warnings_on_exit true --runtime-set ignore_errors_on_exit true",
"phpcs-config": "phpcs --config-show"
}
}
diff --git a/gulpfile.js b/gulpfile.js
index d6d0b4c..423d0a6 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -4,8 +4,37 @@ const gulp = require( 'gulp' )
require( '@ilabdev/clean' )( gulp )
require( '@ilabdev/styles' )( gulp )
+require( '@ilabdev/scripts' )( gulp )
require( '@ilabdev/webpack' )( gulp )
require( '@ilabdev/translate' )( gulp )
require( '@ilabdev/browsersync' )( gulp )
require( '@ilabdev/archive' )( gulp )
+
+const { glob } = require( 'glob' )
+const { execSync } = require( 'node:child_process' )
+const {
+ logger,
+} = require( '@ilabdev/utils' )
+const config = require( `${process.cwd()}/.gulpconfig.js` ).po2json
+const logColor = config.logColor || 'black'
+
+gulp.task( 'translate:json', ( cb ) => {
+ if ( config.process ) {
+ logger.log( 'Converting PO to JSON...', logColor )
+ }
+
+ let files = []
+
+ config.paths.forEach( ( dir ) => {
+ files = files.concat( glob( dir, { sync: true, stat: true, withFileTypes: true } ) )
+ } )
+
+ files.forEach( ( file ) => {
+ execSync( `${config.bin} i18n make-json ${file} --no-purge ${config.pretty ? '--pretty-print' : ''}`, config.execSync )
+ } )
+
+ logger.log( 'PO to JSON conversion complete!', logColor )
+ return cb()
+} )
+
require( '@ilabdev/default' )( gulp )
diff --git a/package.json b/package.json
index 0d824e1..52502a6 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
},
"main": "index.js",
"scripts": {
+ "postinstall": "patch-package",
"start": "gulp",
"build": "gulp build",
"watch": "gulp watch",
@@ -29,21 +30,28 @@
"translate": "gulp translate",
"translate:watch": "gulp translate:watch",
"browsersync": "gulp browsersync",
- "archive": "gulp archive"
+ "archive": "gulp archive",
+ "phpcs": "composer run-script phpcs",
+ "phpcs:watch": "nodemon --watch . -e php --ignore vendor/ --ignore node_modules/ --exec \"composer run-script phpcs\""
},
"dependencies": {
"@popperjs/core": "^2.11.8",
- "@wordpress/components": "^25.7.0",
- "@wordpress/edit-post": "^7.18.0",
- "@wordpress/element": "^5.18.0",
- "@wordpress/hooks": "^3.41.0",
- "@wordpress/i18n": "^4.41.0",
- "@wordpress/plugins": "^6.9.0",
+ "@wordpress/components": "^25.9.0",
+ "@wordpress/data": "^9.13.0",
+ "@wordpress/edit-post": "^7.20.0",
+ "@wordpress/element": "^5.20.0",
+ "@wordpress/hooks": "^3.43.0",
+ "@wordpress/i18n": "^4.43.0",
+ "@wordpress/notices": "^4.11.0",
+ "@wordpress/plugins": "^6.11.0",
"bootstrap": "^5.3.2",
+ "patch-package": "^8.0.0",
+ "postinstall-postinstall": "^2.1.0",
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
+ "@automattic/babel-plugin-preserve-i18n": "^1.0.0",
"@babel/core": "^7.23.0",
"@babel/preset-env": "^7.22.20",
"@babel/preset-react": "^7.22.15",
@@ -51,6 +59,7 @@
"@ilabdev/browsersync": "^1.0.0",
"@ilabdev/clean": "^1.0.0",
"@ilabdev/default": "^1.0.0",
+ "@ilabdev/scripts": "^1.0.0",
"@ilabdev/styles": "^1.0.0",
"@ilabdev/translate": "^1.0.0",
"@ilabdev/webpack": "^1.0.0",
@@ -65,10 +74,12 @@
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-unicorn": "^48.0.1",
"gulp": "^4.0.2",
+ "nodemon": "^3.0.1",
"postcss": "^8.4.31",
"stylelint": "^15.10.3",
"stylelint-config-twbs-bootstrap": "^11.0.1",
"stylelint-stylistic": "^0.4.3",
+ "terser-webpack-plugin": "^5.3.9",
"webpack": "^5.88.2"
}
}
diff --git a/patches/wp-pot+1.10.2.patch b/patches/wp-pot+1.10.2.patch
new file mode 100644
index 0000000..6c7787e
--- /dev/null
+++ b/patches/wp-pot+1.10.2.patch
@@ -0,0 +1,13 @@
+diff --git a/node_modules/wp-pot/src/parsers/js-parser.js b/node_modules/wp-pot/src/parsers/js-parser.js
+index 1762ed2..5e0f804 100644
+--- a/node_modules/wp-pot/src/parsers/js-parser.js
++++ b/node_modules/wp-pot/src/parsers/js-parser.js
+@@ -147,7 +147,7 @@ class JSParser {
+ * @return {string}
+ */
+ getDomain (translationNode) {
+- if (!translationNode.arguments.length) {
++ if (!translationNode.arguments || !translationNode.arguments.length) {
+ return '';
+ }
+
diff --git a/phpcs.xml b/phpcs.xml
index 9474e53..1bb1651 100644
--- a/phpcs.xml
+++ b/phpcs.xml
@@ -38,10 +38,6 @@
-
-
-
-
@@ -189,7 +185,6 @@
-
diff --git a/plugins/construct-wp/README.txt b/plugins/construct-wp/README.txt
index eebb8e5..831fe49 100644
--- a/plugins/construct-wp/README.txt
+++ b/plugins/construct-wp/README.txt
@@ -1,10 +1,10 @@
=== ConstructWP ===
Contributors: apalfrey
Tags: framework, system
-Requires at least: 5.4.0
-Tested up to: 6.3.1
+Requires at least: 5.4
+Tested up to: 6.3
Requires PHP: 7.4
-Stable tag: 0.1.0
+Stable tag: 0.2.0
License: GPL v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -49,6 +49,46 @@ Yes! Models and controllers can be auto-initiated if the class has a static meth
== Changelog ==
+= 0.2.0 - 2023-10-19 =
+
+#### Added
+
+* Allowed the assets to be committed
+* Custom menu item fields can now be hidden in screen options
+* Custom menu item fields can now be set in the customizer
+* Implemented setting to enable controllers
+* Implemented settings to enable auto-enqueue of scripts & styles
+* Implemented setting to control footer column count
+* Implemented JS translation functionality
+* Implemented settings for auto including & running theme classes
+* Implemented theme texdomain autoloading & accompanying setting
+
+#### Fixed
+
+* Fixed settings page not loading
+* Fixed PHP notice in widgets page caused by gutenberg js
+* Active class is now applied to the `a` tag in the navwalker
+
+#### Changed
+
+* Moved settings page ad main menu item
+* Moved settings pages from using tabs to working with multiple pages
+* Improved how custom white logo setting is declared
+* Moved both custom logos positions below site title & tagline
+* Pagination util can now have a `WP_Query` object passed through for use
+
+#### Removed
+
+* `CWP_THEME_SLUG` is no longer needed. Theme names are now retrieved from `get_template()` and `get_stylesheet()`
+
+= 0.1.1 - 2023-10-10 =
+
+#### Fixed
+
+* Fixed `the_logo` method in `CWP_Assets`
+* Fixed theme models not being loaded correctly
+* Fixed pagination not working
+
= 0.1.0 - 2023-09-26 =
* Initial version
\ No newline at end of file
diff --git a/plugins/construct-wp/assets/css/construct-wp-admin.css b/plugins/construct-wp/assets/css/construct-wp-admin.css
new file mode 100644
index 0000000..9d9f46a
--- /dev/null
+++ b/plugins/construct-wp/assets/css/construct-wp-admin.css
@@ -0,0 +1,41 @@
+.menu-item.menu-item-depth-0 .field-cwp-link_type {
+ display: none !important;
+}
+
+/* stylelint-disable-next-line selector-id-pattern */
+#toplevel_page_construct-wp .wp-first-item {
+ display: none;
+}
+
+.control-section-nav_menu .field-cwp-icon {
+ display: none;
+}
+
+.control-section-nav_menu.field-cwp-icon-active .field-cwp-icon {
+ display: block;
+}
+
+.control-section-nav_menu .field-cwp-visibility {
+ display: none;
+}
+
+.control-section-nav_menu.field-cwp-visibility-active .field-cwp-visibility {
+ display: block;
+}
+
+.control-section-nav_menu .field-cwp-logout_link {
+ display: none;
+}
+
+.control-section-nav_menu.field-cwp-logout_link-active .field-cwp-logout_link {
+ display: block;
+}
+
+.control-section-nav_menu .field-cwp-link_type {
+ display: none;
+}
+
+.control-section-nav_menu.field-cwp-link_type-active .field-cwp-link_type {
+ display: block;
+}
+/*# sourceMappingURL=construct-wp-admin.css.map */
\ No newline at end of file
diff --git a/plugins/construct-wp/assets/css/construct-wp-admin.css.map b/plugins/construct-wp/assets/css/construct-wp-admin.css.map
new file mode 100644
index 0000000..c9cfb71
--- /dev/null
+++ b/plugins/construct-wp/assets/css/construct-wp-admin.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["construct-wp-admin.scss","construct-wp-admin.css"],"names":[],"mappings":"AAEQ;EACI,wBAAA;ACDZ;;ADMA,oDAAA;AAEI;EACI,aAAA;ACJR;;ADWI;EACI,aAAA;ACRR;;ADWI;EACI,cAAA;ACRR;;ADGI;EACI,aAAA;ACAR;;ADGI;EACI,cAAA;ACAR;;ADLI;EACI,aAAA;ACQR;;ADLI;EACI,cAAA;ACQR;;ADbI;EACI,aAAA;ACgBR;;ADbI;EACI,cAAA;ACgBR","file":"construct-wp-admin.css","sourcesContent":[".menu-item {\n &.menu-item-depth-0 {\n .field-cwp-link_type {\n display: none !important;\n }\n }\n}\n\n/* stylelint-disable-next-line selector-id-pattern */\n#toplevel_page_construct-wp {\n .wp-first-item {\n display: none;\n }\n}\n\n$menu-fields: icon, visibility, logout_link, link_type;\n\n@each $field in $menu-fields {\n .control-section-nav_menu .field-cwp-#{$field} {\n display: none;\n }\n\n .control-section-nav_menu.field-cwp-#{$field}-active .field-cwp-#{$field} {\n display: block;\n }\n}\n",".menu-item.menu-item-depth-0 .field-cwp-link_type {\n display: none !important;\n}\n\n/* stylelint-disable-next-line selector-id-pattern */\n#toplevel_page_construct-wp .wp-first-item {\n display: none;\n}\n\n.control-section-nav_menu .field-cwp-icon {\n display: none;\n}\n\n.control-section-nav_menu.field-cwp-icon-active .field-cwp-icon {\n display: block;\n}\n\n.control-section-nav_menu .field-cwp-visibility {\n display: none;\n}\n\n.control-section-nav_menu.field-cwp-visibility-active .field-cwp-visibility {\n display: block;\n}\n\n.control-section-nav_menu .field-cwp-logout_link {\n display: none;\n}\n\n.control-section-nav_menu.field-cwp-logout_link-active .field-cwp-logout_link {\n display: block;\n}\n\n.control-section-nav_menu .field-cwp-link_type {\n display: none;\n}\n\n.control-section-nav_menu.field-cwp-link_type-active .field-cwp-link_type {\n display: block;\n}"]}
\ No newline at end of file
diff --git a/plugins/construct-wp/assets/css/construct-wp-gutenberg.css b/plugins/construct-wp/assets/css/construct-wp-gutenberg.css
new file mode 100644
index 0000000..4a9d051
--- /dev/null
+++ b/plugins/construct-wp/assets/css/construct-wp-gutenberg.css
@@ -0,0 +1,4 @@
+body {
+ cursor: default;
+}
+/*# sourceMappingURL=construct-wp-gutenberg.css.map */
\ No newline at end of file
diff --git a/plugins/construct-wp/assets/css/construct-wp-gutenberg.css.map b/plugins/construct-wp/assets/css/construct-wp-gutenberg.css.map
new file mode 100644
index 0000000..c1ab93d
--- /dev/null
+++ b/plugins/construct-wp/assets/css/construct-wp-gutenberg.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["construct-wp-gutenberg.scss","construct-wp-gutenberg.css"],"names":[],"mappings":"AAAA;EACI,eAAA;ACCJ","file":"construct-wp-gutenberg.css","sourcesContent":["body {\n cursor: default;\n}\n","body {\n cursor: default;\n}"]}
\ No newline at end of file
diff --git a/plugins/construct-wp/assets/css/construct-wp-settings.css b/plugins/construct-wp/assets/css/construct-wp-settings.css
new file mode 100644
index 0000000..2586f79
--- /dev/null
+++ b/plugins/construct-wp/assets/css/construct-wp-settings.css
@@ -0,0 +1,254 @@
+body {
+ background-color: #e9ecef;
+}
+
+#wpcontent {
+ padding-left: 0;
+}
+#wpcontent *,
+#wpcontent *::before,
+#wpcontent *::after {
+ box-sizing: border-box;
+}
+
+#construct-wp-settings {
+ --wp-components-color-accent: #11bd0b;
+ --wp-components-color-accent--rgb: 17, 189, 11;
+ --wp-components-color-accent-darker-10: #0faa0a;
+ --wp-components-color-accent-darker-10--rgb: 15, 170, 10;
+ --wp-components-color-accent-darker-20: #0e9709;
+ --wp-components-color-accent-darker-20--rgb: 14, 151, 9;
+ --wp-components-color-accent-inverted: #fff;
+ --wp-components-color-accent-inverted--rgb: 255, 255, 255;
+ --wp-components-color-accent-background: #fff;
+ --wp-components-color-accent-background--rgb: 255, 255, 255;
+ --wp-components-color-accent-foreground: #14143b;
+ --wp-components-color-accent-foreground--to-rgb: 20, 20, 59;
+ --wp-components-color-accent-foreground-inverted: #fff;
+ --wp-components-color-accent-foreground-inverted--to-rgb: 255, 255, 255;
+ color: var(--wp-components-color-accent-foreground);
+}
+#construct-wp-settings,
+#construct-wp-settings * {
+ font-size: 1rem;
+}
+#construct-wp-settings h1,
+#construct-wp-settings h2,
+#construct-wp-settings h3,
+#construct-wp-settings h4,
+#construct-wp-settings h5,
+#construct-wp-settings h6 {
+ margin-top: 0;
+ margin-bottom: 0.5rem;
+ font-weight: 400;
+ line-height: 1.2;
+ color: var(--wp-components-color-accent-foreground);
+}
+#construct-wp-settings h1 {
+ font-size: calc(1.375rem + 1.5vw);
+}
+@media (min-width: 1200px) {
+ #construct-wp-settings h1 {
+ font-size: 2.5rem;
+ }
+}
+#construct-wp-settings h2 {
+ margin-bottom: 1.5rem;
+ font-size: calc(1.325rem + 0.9vw);
+}
+@media (min-width: 1200px) {
+ #construct-wp-settings h2 {
+ font-size: 2rem;
+ }
+}
+#construct-wp-settings h3 {
+ font-size: calc(1.3rem + 0.6vw);
+}
+@media (min-width: 1200px) {
+ #construct-wp-settings h3 {
+ font-size: 1.75rem;
+ }
+}
+#construct-wp-settings h4 {
+ font-size: calc(1.275rem + 0.3vw);
+}
+@media (min-width: 1200px) {
+ #construct-wp-settings h4 {
+ font-size: 1.5rem;
+ }
+}
+#construct-wp-settings h5 {
+ font-size: 1.25rem;
+}
+#construct-wp-settings h6 {
+ font-size: 1rem;
+}
+#construct-wp-settings p {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+#construct-wp-settings label {
+ font-size: 1rem;
+}
+#construct-wp-settings hr {
+ margin: 1rem 0;
+ color: inherit;
+ border: 0;
+ border-top: 1px solid;
+ opacity: 0.25;
+}
+#construct-wp-settings .construct-wp__header,
+#construct-wp-settings .construct-wp__main {
+ background-color: var(--wp-components-color-accent-background);
+}
+#construct-wp-settings .construct-wp__header {
+ padding: 1rem 1.5rem 0;
+}
+#construct-wp-settings .construct-wp__header .construct-wp__title {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+}
+#construct-wp-settings .construct-wp__header .construct-wp__logo {
+ max-height: 50px;
+ margin-right: 1rem;
+}
+#construct-wp-settings .construct-wp__header .construct-wp__version-badge {
+ display: inline-block;
+ padding: 0.35em 0.65em;
+ font-size: 0.9rem;
+ line-height: 1;
+ color: var(--wp-components-color-accent-inverted);
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ background-color: var(--wp-components-color-accent);
+ border: 1px solid var(--wp-components-color-accent);
+ /* stylelint-disable-next-line property-disallowed-list */
+ border-radius: 0.375rem;
+}
+#construct-wp-settings .construct-wp__header .components-tab-panel__tabs {
+ margin-top: 1rem;
+}
+#construct-wp-settings .construct-wp__header .components-tab-panel__tabs-item {
+ padding-top: 0;
+}
+#construct-wp-settings .construct-wp__main {
+ padding: 1.25rem 2rem;
+ margin: 1rem;
+}
+#construct-wp-settings .construct-wp__container {
+ width: 100%;
+ margin-right: auto;
+ margin-left: auto;
+}
+@media (min-width: 576px) {
+ #construct-wp-settings .construct-wp__container {
+ max-width: 540px;
+ }
+}
+@media (min-width: 768px) {
+ #construct-wp-settings .construct-wp__container {
+ max-width: 720px;
+ }
+}
+@media (min-width: 992px) {
+ #construct-wp-settings .construct-wp__container {
+ max-width: 960px;
+ }
+}
+@media (min-width: 1200px) {
+ #construct-wp-settings .construct-wp__container {
+ max-width: 1140px;
+ }
+}
+@media (min-width: 1400px) {
+ #construct-wp-settings .construct-wp__container {
+ max-width: 1320px;
+ }
+}
+#construct-wp-settings .construct-wp__loading-spinner {
+ display: inline-block;
+ width: 2rem;
+ height: 2rem;
+ margin-top: 3rem;
+ margin-bottom: 3rem;
+ vertical-align: -0.125em;
+ border: 0.25em solid #ced4da;
+ border-right-color: var(--wp-components-color-accent);
+ border-radius: 50%;
+ animation: 0.75s linear infinite spinner-border;
+}
+#construct-wp-settings .construct-wp__checklist {
+ -moz-columns: auto 2;
+ columns: auto 2;
+ -moz-column-gap: 2rem;
+ column-gap: 2rem;
+}
+#construct-wp-settings .construct-wp__checklist .components-base-control__field {
+ margin-bottom: 0.5rem;
+}
+#construct-wp-settings .construct-wp__section {
+ margin-bottom: 1.5rem;
+}
+#construct-wp-settings .construct-wp__section:last-of-type {
+ margin-bottom: 0;
+}
+#construct-wp-settings .components-base-control .components-base-control__label {
+ font-weight: 400;
+ text-transform: none;
+}
+#construct-wp-settings .components-base-control .components-text-control__input,
+#construct-wp-settings .components-base-control .components-text-control__input [type=color],
+#construct-wp-settings .components-base-control .components-text-control__input [type=date],
+#construct-wp-settings .components-base-control .components-text-control__input [type=datetime-local],
+#construct-wp-settings .components-base-control .components-text-control__input [type=datetime],
+#construct-wp-settings .components-base-control .components-text-control__input [type=email],
+#construct-wp-settings .components-base-control .components-text-control__input [type=month],
+#construct-wp-settings .components-base-control .components-text-control__input [type=number],
+#construct-wp-settings .components-base-control .components-text-control__input [type=password],
+#construct-wp-settings .components-base-control .components-text-control__input [type=tel],
+#construct-wp-settings .components-base-control .components-text-control__input [type=text],
+#construct-wp-settings .components-base-control .components-text-control__input [type=time],
+#construct-wp-settings .components-base-control .components-text-control__input [type=url],
+#construct-wp-settings .components-base-control .components-text-control__input [type=week] {
+ display: block;
+ max-width: 500px;
+ border-radius: 0.375rem;
+}
+#construct-wp-settings .components-base-control .components-base-control__help {
+ color: rgb(var(--wp-components-color-accent-foreground--to-rgb), 0.675);
+}
+#construct-wp-settings .components-base-control:last-of-type .components-base-control__help {
+ margin-bottom: 0;
+}
+#construct-wp-settings .components-submit-button {
+ margin-top: 1.5rem;
+ margin-bottom: 1.5rem;
+}
+#construct-wp-settings .construct-wp__notices .components-snackbar {
+ position: fixed;
+ bottom: 0.5rem;
+ margin-left: 0.5rem;
+}
+#construct-wp-settings .construct-wp__notices .components-snackbar .components-snackbar__content-with-icon {
+ align-items: center;
+ margin-left: 0;
+}
+#construct-wp-settings .construct-wp__notices .components-snackbar .components-snackbar__icon {
+ position: static;
+ margin-right: 0.5rem;
+ /* stylelint-disable-next-line font-family-no-missing-generic-family-keyword */
+ font-family: dashicons;
+ font-size: 1.25rem;
+ font-style: normal;
+ line-height: 1;
+ vertical-align: top;
+}
+
+@keyframes spinner-border {
+ to {
+ transform: rotate(360deg);
+ }
+}
+/*# sourceMappingURL=construct-wp-settings.css.map */
\ No newline at end of file
diff --git a/plugins/construct-wp/assets/css/construct-wp-settings.css.map b/plugins/construct-wp/assets/css/construct-wp-settings.css.map
new file mode 100644
index 0000000..6e785e5
--- /dev/null
+++ b/plugins/construct-wp/assets/css/construct-wp-settings.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["construct-wp-settings.scss","construct-wp-settings.css","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss"],"names":[],"mappings":"AAaA;EACI,yBAAA;ACZJ;;ADeA;EACI,eAAA;ACZJ;ADcI;;;EAGI,sBAAA;ACZR;;ADgBA;EACI,qCAAA;EACA,8CAAA;EACA,+CAAA;EACA,wDAAA;EACA,+CAAA;EACA,uDAAA;EACA,2CAAA;EACA,yDAAA;EACA,6CAAA;EACA,2DAAA;EACA,gDAAA;EACA,2DAAA;EACA,sDAAA;EACA,uEAAA;EAEA,mDAAA;ACdJ;ADgBI;;EAEI,eAAA;ACdR;ADiBI;;;;;;EAMI,aAAA;EACA,qBAAA;EACA,gBAAA;EACA,gBAAA;EACA,mDAAA;ACfR;ADkBI;EACI,iCAAA;AChBR;ADkBQ;EAHJ;IAIQ,iBAAA;ECfV;AACF;ADkBI;EACI,qBAAA;EACA,iCAAA;AChBR;ADkBQ;EAJJ;IAKQ,eAAA;ECfV;AACF;ADkBI;EACI,+BAAA;AChBR;ADkBQ;EAHJ;IAIQ,kBAAA;ECfV;AACF;ADkBI;EACI,iCAAA;AChBR;ADkBQ;EAHJ;IAIQ,iBAAA;ECfV;AACF;ADkBI;EACI,kBAAA;AChBR;ADmBI;EACI,eAAA;ACjBR;ADoBI;EACI,aAAA;EACA,mBAAA;AClBR;ADqBI;EACI,eAAA;ACnBR;ADsBI;EACI,cAAA;EACA,cAAA;EACA,SAAA;EACA,qBAAA;EACA,aAAA;ACpBR;ADuBI;;EAEI,8DAAA;ACrBR;ADwBI;EACI,sBAAA;ACtBR;ADwBQ;EACI,aAAA;EACA,eAAA;EACA,mBAAA;ACtBZ;ADyBQ;EACI,gBAAA;EACA,kBAAA;ACvBZ;AD0BQ;EACI,qBAAA;EACA,sBAAA;EACA,iBAAA;EACA,cAAA;EACA,iDAAA;EACA,kBAAA;EACA,mBAAA;EACA,wBAAA;EACA,mDAAA;EACA,mDAAA;EACA,yDAAA;EACA,uBAAA;ACxBZ;AD2BQ;EACI,gBAAA;ACzBZ;AD2BQ;EACI,cAAA;ACzBZ;AD6BI;EACI,qBAAA;EACA,YAAA;AC3BR;AD8BI;EACI,WAAA;EACA,kBAAA;EACA,iBAAA;AC5BR;AD8BQ;EALJ;IAMQ,gBAAA;EC3BV;AACF;AD6BQ;EATJ;IAUQ,gBAAA;EC1BV;AACF;AD4BQ;EAbJ;IAcQ,gBAAA;ECzBV;AACF;AD2BQ;EAjBJ;IAkBQ,iBAAA;ECxBV;AACF;AD0BQ;EArBJ;IAsBQ,iBAAA;ECvBV;AACF;AD0BI;EACI,qBAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,mBAAA;EACA,wBAAA;EACA,4BAAA;EACA,qDAAA;EAEA,kBAAA;EACA,+CAAA;ACzBR;AD4BI;EACI,oBAAA;EAAA,eAAA;EACA,qBAAA;EAAA,gBAAA;AC1BR;AD4BQ;EACI,qBAAA;AC1BZ;AD8BI;EACI,qBAAA;AC5BR;AD8BQ;EACI,gBAAA;AC5BZ;ADiCQ;EACI,gBAAA;EACA,oBAAA;AC/BZ;ADmCY;;;;;;;;;;;;;;EAcI,cAAA;EACA,gBAAA;EEpOZ,uBAAA;ADoMJ;ADqCQ;EACI,uEAAA;ACnCZ;ADuCY;EACI,gBAAA;ACrChB;AD0CI;EACI,kBAAA;EACA,qBAAA;ACxCR;AD4CQ;EACI,eAAA;EACA,cAAA;EACA,mBAAA;AC1CZ;AD4CY;EACI,mBAAA;EACA,cAAA;AC1ChB;AD6CY;EACI,gBAAA;EACA,oBAAA;EACA,8EAAA;EACA,sBAAA;EACA,kBAAA;EACA,kBAAA;EACA,cAAA;EACA,mBAAA;AC3ChB;;ADiDA;EACI;IACI,yBAAA;EC9CN;AACF","file":"construct-wp-settings.css","sourcesContent":["// Bootstrap functions first to manipulate colors, SVGs, calc, etc\n@import \"node_modules/bootstrap/scss/functions\";\n// Remainder of the Bootstrap variables\n@import \"node_modules/bootstrap/scss/variables\";\n@import \"node_modules/bootstrap/scss/variables-dark\";\n\n// Remainder of required Bootstrap parts\n@import \"node_modules/bootstrap/scss/maps\";\n@import \"node_modules/bootstrap/scss/mixins\";\n\n$cwp-primary: #11bd0b;\n$cwp-secondary: #14143b;\n\nbody {\n background-color: #e9ecef;\n}\n\n#wpcontent {\n padding-left: 0;\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n}\n\n#construct-wp-settings {\n --wp-components-color-accent: #{$cwp-primary};\n --wp-components-color-accent--rgb: #{to-rgb($cwp-primary)};\n --wp-components-color-accent-darker-10: #{shade-color($cwp-primary, 10%)};\n --wp-components-color-accent-darker-10--rgb: #{to-rgb(shade-color($cwp-primary, 10%))};\n --wp-components-color-accent-darker-20: #{shade-color($cwp-primary, 20%)};\n --wp-components-color-accent-darker-20--rgb: #{to-rgb(shade-color($cwp-primary, 20%))};\n --wp-components-color-accent-inverted: #{$white};\n --wp-components-color-accent-inverted--rgb: #{to-rgb($white)};\n --wp-components-color-accent-background: #{$white};\n --wp-components-color-accent-background--rgb: #{to-rgb($white)};\n --wp-components-color-accent-foreground: #{$cwp-secondary};\n --wp-components-color-accent-foreground--to-rgb: #{to-rgb($cwp-secondary)};\n --wp-components-color-accent-foreground-inverted: #{$white};\n --wp-components-color-accent-foreground-inverted--to-rgb: #{to-rgb($white)};\n\n color: var(--wp-components-color-accent-foreground);\n\n &,\n * {\n font-size: 1rem;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-top: 0;\n margin-bottom: .5rem;\n font-weight: 400;\n line-height: 1.2;\n color: var(--wp-components-color-accent-foreground);\n }\n\n h1 {\n font-size: calc(1.375rem + 1.5vw);\n\n @media (min-width: 1200px) {\n font-size: 2.5rem;\n }\n }\n\n h2 {\n margin-bottom: 1.5rem;\n font-size: calc(1.325rem + .9vw);\n\n @media (min-width: 1200px) {\n font-size: 2rem;\n }\n }\n\n h3 {\n font-size: calc(1.3rem + .6vw);\n\n @media (min-width: 1200px) {\n font-size: 1.75rem;\n }\n }\n\n h4 {\n font-size: calc(1.275rem + .3vw);\n\n @media (min-width: 1200px) {\n font-size: 1.5rem;\n }\n }\n\n h5 {\n font-size: 1.25rem;\n }\n\n h6 {\n font-size: 1rem;\n }\n\n p {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n\n label {\n font-size: 1rem;\n }\n\n hr {\n margin: 1rem 0;\n color: inherit;\n border: 0;\n border-top: 1px solid;\n opacity: .25;\n }\n\n .construct-wp__header,\n .construct-wp__main {\n background-color: var(--wp-components-color-accent-background);\n }\n\n .construct-wp__header {\n padding: 1rem 1.5rem 0;\n\n .construct-wp__title {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n }\n\n .construct-wp__logo {\n max-height: 50px;\n margin-right: 1rem;\n }\n\n .construct-wp__version-badge {\n display: inline-block;\n padding: .35em .65em;\n font-size: .9rem;\n line-height: 1;\n color: var(--wp-components-color-accent-inverted);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: var(--wp-components-color-accent);\n border: 1px solid var(--wp-components-color-accent);\n /* stylelint-disable-next-line property-disallowed-list */\n border-radius: .375rem;\n }\n\n .components-tab-panel__tabs {\n margin-top: 1rem;\n }\n .components-tab-panel__tabs-item {\n padding-top: 0;\n }\n }\n\n .construct-wp__main {\n padding: 1.25rem 2rem;\n margin: 1rem;\n }\n\n .construct-wp__container {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n\n @media (min-width: 576px) {\n max-width: 540px;\n }\n\n @media (min-width: 768px) {\n max-width: 720px;\n }\n\n @media (min-width: 992px) {\n max-width: 960px;\n }\n\n @media (min-width: 1200px) {\n max-width: 1140px;\n }\n\n @media (min-width: 1400px) {\n max-width: 1320px;\n }\n }\n\n .construct-wp__loading-spinner {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n margin-top: 3rem;\n margin-bottom: 3rem;\n vertical-align: -.125em;\n border: .25em solid #ced4da;\n border-right-color: var(--wp-components-color-accent);\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n animation: .75s linear infinite spinner-border;\n }\n\n .construct-wp__checklist {\n columns: auto 2;\n column-gap: 2rem;\n\n .components-base-control__field {\n margin-bottom: .5rem;\n }\n }\n\n .construct-wp__section {\n margin-bottom: 1.5rem;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n }\n\n .components-base-control {\n .components-base-control__label {\n font-weight: 400;\n text-transform: none;\n }\n\n .components-text-control__input {\n &,\n [type=\"color\"],\n [type=\"date\"],\n [type=\"datetime-local\"],\n [type=\"datetime\"],\n [type=\"email\"],\n [type=\"month\"],\n [type=\"number\"],\n [type=\"password\"],\n [type=\"tel\"],\n [type=\"text\"],\n [type=\"time\"],\n [type=\"url\"],\n [type=\"week\"] {\n display: block;\n max-width: 500px;\n @include border-radius($border-radius);\n }\n }\n\n .components-base-control__help {\n color: rgb(var(--wp-components-color-accent-foreground--to-rgb), .675);\n }\n\n &:last-of-type {\n .components-base-control__help {\n margin-bottom: 0;\n }\n }\n }\n\n .components-submit-button {\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n }\n\n .construct-wp__notices {\n .components-snackbar {\n position: fixed;\n bottom: .5rem;\n margin-left: .5rem;\n\n .components-snackbar__content-with-icon {\n align-items: center;\n margin-left: 0;\n }\n\n .components-snackbar__icon {\n position: static;\n margin-right: .5rem;\n /* stylelint-disable-next-line font-family-no-missing-generic-family-keyword */\n font-family: dashicons;\n font-size: 1.25rem;\n font-style: normal;\n line-height: 1;\n vertical-align: top;\n }\n }\n }\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n","body {\n background-color: #e9ecef;\n}\n\n#wpcontent {\n padding-left: 0;\n}\n#wpcontent *,\n#wpcontent *::before,\n#wpcontent *::after {\n box-sizing: border-box;\n}\n\n#construct-wp-settings {\n --wp-components-color-accent: #11bd0b;\n --wp-components-color-accent--rgb: 17, 189, 11;\n --wp-components-color-accent-darker-10: #0faa0a;\n --wp-components-color-accent-darker-10--rgb: 15, 170, 10;\n --wp-components-color-accent-darker-20: #0e9709;\n --wp-components-color-accent-darker-20--rgb: 14, 151, 9;\n --wp-components-color-accent-inverted: #fff;\n --wp-components-color-accent-inverted--rgb: 255, 255, 255;\n --wp-components-color-accent-background: #fff;\n --wp-components-color-accent-background--rgb: 255, 255, 255;\n --wp-components-color-accent-foreground: #14143b;\n --wp-components-color-accent-foreground--to-rgb: 20, 20, 59;\n --wp-components-color-accent-foreground-inverted: #fff;\n --wp-components-color-accent-foreground-inverted--to-rgb: 255, 255, 255;\n color: var(--wp-components-color-accent-foreground);\n}\n#construct-wp-settings,\n#construct-wp-settings * {\n font-size: 1rem;\n}\n#construct-wp-settings h1,\n#construct-wp-settings h2,\n#construct-wp-settings h3,\n#construct-wp-settings h4,\n#construct-wp-settings h5,\n#construct-wp-settings h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n font-weight: 400;\n line-height: 1.2;\n color: var(--wp-components-color-accent-foreground);\n}\n#construct-wp-settings h1 {\n font-size: calc(1.375rem + 1.5vw);\n}\n@media (min-width: 1200px) {\n #construct-wp-settings h1 {\n font-size: 2.5rem;\n }\n}\n#construct-wp-settings h2 {\n margin-bottom: 1.5rem;\n font-size: calc(1.325rem + 0.9vw);\n}\n@media (min-width: 1200px) {\n #construct-wp-settings h2 {\n font-size: 2rem;\n }\n}\n#construct-wp-settings h3 {\n font-size: calc(1.3rem + 0.6vw);\n}\n@media (min-width: 1200px) {\n #construct-wp-settings h3 {\n font-size: 1.75rem;\n }\n}\n#construct-wp-settings h4 {\n font-size: calc(1.275rem + 0.3vw);\n}\n@media (min-width: 1200px) {\n #construct-wp-settings h4 {\n font-size: 1.5rem;\n }\n}\n#construct-wp-settings h5 {\n font-size: 1.25rem;\n}\n#construct-wp-settings h6 {\n font-size: 1rem;\n}\n#construct-wp-settings p {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n#construct-wp-settings label {\n font-size: 1rem;\n}\n#construct-wp-settings hr {\n margin: 1rem 0;\n color: inherit;\n border: 0;\n border-top: 1px solid;\n opacity: 0.25;\n}\n#construct-wp-settings .construct-wp__header,\n#construct-wp-settings .construct-wp__main {\n background-color: var(--wp-components-color-accent-background);\n}\n#construct-wp-settings .construct-wp__header {\n padding: 1rem 1.5rem 0;\n}\n#construct-wp-settings .construct-wp__header .construct-wp__title {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n#construct-wp-settings .construct-wp__header .construct-wp__logo {\n max-height: 50px;\n margin-right: 1rem;\n}\n#construct-wp-settings .construct-wp__header .construct-wp__version-badge {\n display: inline-block;\n padding: 0.35em 0.65em;\n font-size: 0.9rem;\n line-height: 1;\n color: var(--wp-components-color-accent-inverted);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: var(--wp-components-color-accent);\n border: 1px solid var(--wp-components-color-accent);\n /* stylelint-disable-next-line property-disallowed-list */\n border-radius: 0.375rem;\n}\n#construct-wp-settings .construct-wp__header .components-tab-panel__tabs {\n margin-top: 1rem;\n}\n#construct-wp-settings .construct-wp__header .components-tab-panel__tabs-item {\n padding-top: 0;\n}\n#construct-wp-settings .construct-wp__main {\n padding: 1.25rem 2rem;\n margin: 1rem;\n}\n#construct-wp-settings .construct-wp__container {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 576px) {\n #construct-wp-settings .construct-wp__container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n #construct-wp-settings .construct-wp__container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n #construct-wp-settings .construct-wp__container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n #construct-wp-settings .construct-wp__container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n #construct-wp-settings .construct-wp__container {\n max-width: 1320px;\n }\n}\n#construct-wp-settings .construct-wp__loading-spinner {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n margin-top: 3rem;\n margin-bottom: 3rem;\n vertical-align: -0.125em;\n border: 0.25em solid #ced4da;\n border-right-color: var(--wp-components-color-accent);\n border-radius: 50%;\n animation: 0.75s linear infinite spinner-border;\n}\n#construct-wp-settings .construct-wp__checklist {\n columns: auto 2;\n column-gap: 2rem;\n}\n#construct-wp-settings .construct-wp__checklist .components-base-control__field {\n margin-bottom: 0.5rem;\n}\n#construct-wp-settings .construct-wp__section {\n margin-bottom: 1.5rem;\n}\n#construct-wp-settings .construct-wp__section:last-of-type {\n margin-bottom: 0;\n}\n#construct-wp-settings .components-base-control .components-base-control__label {\n font-weight: 400;\n text-transform: none;\n}\n#construct-wp-settings .components-base-control .components-text-control__input,\n#construct-wp-settings .components-base-control .components-text-control__input [type=color],\n#construct-wp-settings .components-base-control .components-text-control__input [type=date],\n#construct-wp-settings .components-base-control .components-text-control__input [type=datetime-local],\n#construct-wp-settings .components-base-control .components-text-control__input [type=datetime],\n#construct-wp-settings .components-base-control .components-text-control__input [type=email],\n#construct-wp-settings .components-base-control .components-text-control__input [type=month],\n#construct-wp-settings .components-base-control .components-text-control__input [type=number],\n#construct-wp-settings .components-base-control .components-text-control__input [type=password],\n#construct-wp-settings .components-base-control .components-text-control__input [type=tel],\n#construct-wp-settings .components-base-control .components-text-control__input [type=text],\n#construct-wp-settings .components-base-control .components-text-control__input [type=time],\n#construct-wp-settings .components-base-control .components-text-control__input [type=url],\n#construct-wp-settings .components-base-control .components-text-control__input [type=week] {\n display: block;\n max-width: 500px;\n border-radius: 0.375rem;\n}\n#construct-wp-settings .components-base-control .components-base-control__help {\n color: rgb(var(--wp-components-color-accent-foreground--to-rgb), 0.675);\n}\n#construct-wp-settings .components-base-control:last-of-type .components-base-control__help {\n margin-bottom: 0;\n}\n#construct-wp-settings .components-submit-button {\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n}\n#construct-wp-settings .construct-wp__notices .components-snackbar {\n position: fixed;\n bottom: 0.5rem;\n margin-left: 0.5rem;\n}\n#construct-wp-settings .construct-wp__notices .components-snackbar .components-snackbar__content-with-icon {\n align-items: center;\n margin-left: 0;\n}\n#construct-wp-settings .construct-wp__notices .components-snackbar .components-snackbar__icon {\n position: static;\n margin-right: 0.5rem;\n /* stylelint-disable-next-line font-family-no-missing-generic-family-keyword */\n font-family: dashicons;\n font-size: 1.25rem;\n font-style: normal;\n line-height: 1;\n vertical-align: top;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}","// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if type-of($value) == number {\n $return: append($return, max($value, 0));\n } @else {\n $return: append($return, $value);\n }\n }\n @return $return;\n}\n\n// scss-docs-start border-radius-mixins\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-end-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-start-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-start-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-end-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-end-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-start-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n// scss-docs-end border-radius-mixins\n"]}
\ No newline at end of file
diff --git a/plugins/construct-wp/assets/css/email.css b/plugins/construct-wp/assets/css/email.css
new file mode 100644
index 0000000..f0c42f3
--- /dev/null
+++ b/plugins/construct-wp/assets/css/email.css
@@ -0,0 +1,91 @@
+h6, h5, h4, h3, h2, h1 {
+ margin-top: 0;
+ margin-bottom: 0.5rem;
+ font-weight: 500;
+ line-height: 1.2;
+}
+
+h1 {
+ font-size: calc(1.375rem + 1.5vw);
+}
+@media (min-width: 1200px) {
+ h1 {
+ font-size: 2.5rem;
+ }
+}
+
+h2 {
+ font-size: calc(1.325rem + 0.9vw);
+}
+@media (min-width: 1200px) {
+ h2 {
+ font-size: 2rem;
+ }
+}
+
+h3 {
+ font-size: calc(1.3rem + 0.6vw);
+}
+@media (min-width: 1200px) {
+ h3 {
+ font-size: 1.75rem;
+ }
+}
+
+h4 {
+ font-size: calc(1.275rem + 0.3vw);
+}
+@media (min-width: 1200px) {
+ h4 {
+ font-size: 1.5rem;
+ }
+}
+
+h5 {
+ font-size: 1.25rem;
+}
+
+h6 {
+ font-size: 1rem;
+}
+
+p {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+
+.container {
+ box-sizing: border-box;
+ width: 100%;
+ padding-right: 0.75rem;
+ padding-left: 0.75rem;
+ margin-right: auto;
+ margin-left: auto;
+}
+
+@media (min-width: 576px) {
+ .container {
+ max-width: 540px;
+ }
+}
+@media (min-width: 768px) {
+ .container {
+ max-width: 720px;
+ }
+}
+@media (min-width: 992px) {
+ .container {
+ max-width: 960px;
+ }
+}
+@media (min-width: 1200px) {
+ .container {
+ max-width: 1140px;
+ }
+}
+@media (min-width: 1400px) {
+ .container {
+ max-width: 1320px;
+ }
+}
+/*# sourceMappingURL=email.css.map */
\ No newline at end of file
diff --git a/plugins/construct-wp/assets/css/email.css.map b/plugins/construct-wp/assets/css/email.css.map
new file mode 100644
index 0000000..c308d46
--- /dev/null
+++ b/plugins/construct-wp/assets/css/email.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["email.scss","../../../../node_modules/bootstrap/scss/_variables.scss","email.css","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss"],"names":[],"mappings":"AAWA;EACI,aAAA;EACA,qBC+nB0B;ED5nB1B,gBC+nB0B;ED9nB1B,gBC+nB0B;AC3oB9B;;AFeA;EG+QQ,iCAAA;AD1RR;AC8HI;EHnHJ;IGsRQ,iBAAA;ED7RN;AACF;;AFWA;EG0QQ,iCAAA;ADjRR;ACqHI;EH9GJ;IGiRQ,eAAA;EDpRN;AACF;;AFOA;EGqQQ,+BAAA;ADxQR;AC4GI;EHzGJ;IG4QQ,kBAAA;ED3QN;AACF;;AFGA;EGgQQ,iCAAA;AD/PR;ACmGI;EHpGJ;IGuQQ,iBAAA;EDlQN;AACF;;AFDA;EGuPM,kBALI;AD7OV;;AFAA;EGkPM,eALI;ADzOV;;AFEA;EACI,aAAA;EACA,mBCqawB;ACpa5B;;AFEA;EACI,sBAAA;EACA,WAAA;EACA,sBAAA;EACA,qBAAA;EACA,kBAAA;EACA,iBAAA;AECJ;;AFEA;EACI;IACI,gBAAA;EECN;AACF;AFEA;EACI;IACI,gBAAA;EEAN;AACF;AFGA;EACI;IACI,gBAAA;EEDN;AACF;AFIA;EACI;IACI,iBAAA;EEFN;AACF;AFKA;EACI;IACI,iBAAA;EEHN;AACF","file":"email.css","sourcesContent":["// Bootstrap functions first to manipulate colors, SVGs, calc, etc\n@import \"node_modules/bootstrap/scss/functions\";\n// Remainder of the Bootstrap variables\n@import \"node_modules/bootstrap/scss/variables\";\n@import \"node_modules/bootstrap/scss/variables-dark\";\n\n// Remainder of required Bootstrap parts\n@import \"node_modules/bootstrap/scss/maps\";\n@import \"node_modules/bootstrap/scss/mixins\";\n\n// Email styling\n%heading {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n.container {\n box-sizing: border-box;\n width: 100%;\n padding-right: .75rem;\n padding-left: .75rem;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n@media (min-width: 1400px) {\n .container {\n max-width: 1320px;\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n// scss-docs-start gray-color-variables\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n// scss-docs-end gray-color-variables\n\n// fusv-disable\n// scss-docs-start gray-colors-map\n$grays: (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n) !default;\n// scss-docs-end gray-colors-map\n// fusv-enable\n\n// scss-docs-start color-variables\n$blue: #0d6efd !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #d63384 !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #198754 !default;\n$teal: #20c997 !default;\n$cyan: #0dcaf0 !default;\n// scss-docs-end color-variables\n\n// scss-docs-start colors-map\n$colors: (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"black\": $black,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n) !default;\n// scss-docs-end colors-map\n\n// The contrast ratio to reach against white, to determine if color changes from \"light\" to \"dark\". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.\n// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast\n$min-contrast-ratio: 4.5 !default;\n\n// Customize the light and dark text colors for use in our color contrast function.\n$color-contrast-dark: $black !default;\n$color-contrast-light: $white !default;\n\n// fusv-disable\n$blue-100: tint-color($blue, 80%) !default;\n$blue-200: tint-color($blue, 60%) !default;\n$blue-300: tint-color($blue, 40%) !default;\n$blue-400: tint-color($blue, 20%) !default;\n$blue-500: $blue !default;\n$blue-600: shade-color($blue, 20%) !default;\n$blue-700: shade-color($blue, 40%) !default;\n$blue-800: shade-color($blue, 60%) !default;\n$blue-900: shade-color($blue, 80%) !default;\n\n$indigo-100: tint-color($indigo, 80%) !default;\n$indigo-200: tint-color($indigo, 60%) !default;\n$indigo-300: tint-color($indigo, 40%) !default;\n$indigo-400: tint-color($indigo, 20%) !default;\n$indigo-500: $indigo !default;\n$indigo-600: shade-color($indigo, 20%) !default;\n$indigo-700: shade-color($indigo, 40%) !default;\n$indigo-800: shade-color($indigo, 60%) !default;\n$indigo-900: shade-color($indigo, 80%) !default;\n\n$purple-100: tint-color($purple, 80%) !default;\n$purple-200: tint-color($purple, 60%) !default;\n$purple-300: tint-color($purple, 40%) !default;\n$purple-400: tint-color($purple, 20%) !default;\n$purple-500: $purple !default;\n$purple-600: shade-color($purple, 20%) !default;\n$purple-700: shade-color($purple, 40%) !default;\n$purple-800: shade-color($purple, 60%) !default;\n$purple-900: shade-color($purple, 80%) !default;\n\n$pink-100: tint-color($pink, 80%) !default;\n$pink-200: tint-color($pink, 60%) !default;\n$pink-300: tint-color($pink, 40%) !default;\n$pink-400: tint-color($pink, 20%) !default;\n$pink-500: $pink !default;\n$pink-600: shade-color($pink, 20%) !default;\n$pink-700: shade-color($pink, 40%) !default;\n$pink-800: shade-color($pink, 60%) !default;\n$pink-900: shade-color($pink, 80%) !default;\n\n$red-100: tint-color($red, 80%) !default;\n$red-200: tint-color($red, 60%) !default;\n$red-300: tint-color($red, 40%) !default;\n$red-400: tint-color($red, 20%) !default;\n$red-500: $red !default;\n$red-600: shade-color($red, 20%) !default;\n$red-700: shade-color($red, 40%) !default;\n$red-800: shade-color($red, 60%) !default;\n$red-900: shade-color($red, 80%) !default;\n\n$orange-100: tint-color($orange, 80%) !default;\n$orange-200: tint-color($orange, 60%) !default;\n$orange-300: tint-color($orange, 40%) !default;\n$orange-400: tint-color($orange, 20%) !default;\n$orange-500: $orange !default;\n$orange-600: shade-color($orange, 20%) !default;\n$orange-700: shade-color($orange, 40%) !default;\n$orange-800: shade-color($orange, 60%) !default;\n$orange-900: shade-color($orange, 80%) !default;\n\n$yellow-100: tint-color($yellow, 80%) !default;\n$yellow-200: tint-color($yellow, 60%) !default;\n$yellow-300: tint-color($yellow, 40%) !default;\n$yellow-400: tint-color($yellow, 20%) !default;\n$yellow-500: $yellow !default;\n$yellow-600: shade-color($yellow, 20%) !default;\n$yellow-700: shade-color($yellow, 40%) !default;\n$yellow-800: shade-color($yellow, 60%) !default;\n$yellow-900: shade-color($yellow, 80%) !default;\n\n$green-100: tint-color($green, 80%) !default;\n$green-200: tint-color($green, 60%) !default;\n$green-300: tint-color($green, 40%) !default;\n$green-400: tint-color($green, 20%) !default;\n$green-500: $green !default;\n$green-600: shade-color($green, 20%) !default;\n$green-700: shade-color($green, 40%) !default;\n$green-800: shade-color($green, 60%) !default;\n$green-900: shade-color($green, 80%) !default;\n\n$teal-100: tint-color($teal, 80%) !default;\n$teal-200: tint-color($teal, 60%) !default;\n$teal-300: tint-color($teal, 40%) !default;\n$teal-400: tint-color($teal, 20%) !default;\n$teal-500: $teal !default;\n$teal-600: shade-color($teal, 20%) !default;\n$teal-700: shade-color($teal, 40%) !default;\n$teal-800: shade-color($teal, 60%) !default;\n$teal-900: shade-color($teal, 80%) !default;\n\n$cyan-100: tint-color($cyan, 80%) !default;\n$cyan-200: tint-color($cyan, 60%) !default;\n$cyan-300: tint-color($cyan, 40%) !default;\n$cyan-400: tint-color($cyan, 20%) !default;\n$cyan-500: $cyan !default;\n$cyan-600: shade-color($cyan, 20%) !default;\n$cyan-700: shade-color($cyan, 40%) !default;\n$cyan-800: shade-color($cyan, 60%) !default;\n$cyan-900: shade-color($cyan, 80%) !default;\n\n$blues: (\n \"blue-100\": $blue-100,\n \"blue-200\": $blue-200,\n \"blue-300\": $blue-300,\n \"blue-400\": $blue-400,\n \"blue-500\": $blue-500,\n \"blue-600\": $blue-600,\n \"blue-700\": $blue-700,\n \"blue-800\": $blue-800,\n \"blue-900\": $blue-900\n) !default;\n\n$indigos: (\n \"indigo-100\": $indigo-100,\n \"indigo-200\": $indigo-200,\n \"indigo-300\": $indigo-300,\n \"indigo-400\": $indigo-400,\n \"indigo-500\": $indigo-500,\n \"indigo-600\": $indigo-600,\n \"indigo-700\": $indigo-700,\n \"indigo-800\": $indigo-800,\n \"indigo-900\": $indigo-900\n) !default;\n\n$purples: (\n \"purple-100\": $purple-100,\n \"purple-200\": $purple-200,\n \"purple-300\": $purple-300,\n \"purple-400\": $purple-400,\n \"purple-500\": $purple-500,\n \"purple-600\": $purple-600,\n \"purple-700\": $purple-700,\n \"purple-800\": $purple-800,\n \"purple-900\": $purple-900\n) !default;\n\n$pinks: (\n \"pink-100\": $pink-100,\n \"pink-200\": $pink-200,\n \"pink-300\": $pink-300,\n \"pink-400\": $pink-400,\n \"pink-500\": $pink-500,\n \"pink-600\": $pink-600,\n \"pink-700\": $pink-700,\n \"pink-800\": $pink-800,\n \"pink-900\": $pink-900\n) !default;\n\n$reds: (\n \"red-100\": $red-100,\n \"red-200\": $red-200,\n \"red-300\": $red-300,\n \"red-400\": $red-400,\n \"red-500\": $red-500,\n \"red-600\": $red-600,\n \"red-700\": $red-700,\n \"red-800\": $red-800,\n \"red-900\": $red-900\n) !default;\n\n$oranges: (\n \"orange-100\": $orange-100,\n \"orange-200\": $orange-200,\n \"orange-300\": $orange-300,\n \"orange-400\": $orange-400,\n \"orange-500\": $orange-500,\n \"orange-600\": $orange-600,\n \"orange-700\": $orange-700,\n \"orange-800\": $orange-800,\n \"orange-900\": $orange-900\n) !default;\n\n$yellows: (\n \"yellow-100\": $yellow-100,\n \"yellow-200\": $yellow-200,\n \"yellow-300\": $yellow-300,\n \"yellow-400\": $yellow-400,\n \"yellow-500\": $yellow-500,\n \"yellow-600\": $yellow-600,\n \"yellow-700\": $yellow-700,\n \"yellow-800\": $yellow-800,\n \"yellow-900\": $yellow-900\n) !default;\n\n$greens: (\n \"green-100\": $green-100,\n \"green-200\": $green-200,\n \"green-300\": $green-300,\n \"green-400\": $green-400,\n \"green-500\": $green-500,\n \"green-600\": $green-600,\n \"green-700\": $green-700,\n \"green-800\": $green-800,\n \"green-900\": $green-900\n) !default;\n\n$teals: (\n \"teal-100\": $teal-100,\n \"teal-200\": $teal-200,\n \"teal-300\": $teal-300,\n \"teal-400\": $teal-400,\n \"teal-500\": $teal-500,\n \"teal-600\": $teal-600,\n \"teal-700\": $teal-700,\n \"teal-800\": $teal-800,\n \"teal-900\": $teal-900\n) !default;\n\n$cyans: (\n \"cyan-100\": $cyan-100,\n \"cyan-200\": $cyan-200,\n \"cyan-300\": $cyan-300,\n \"cyan-400\": $cyan-400,\n \"cyan-500\": $cyan-500,\n \"cyan-600\": $cyan-600,\n \"cyan-700\": $cyan-700,\n \"cyan-800\": $cyan-800,\n \"cyan-900\": $cyan-900\n) !default;\n// fusv-enable\n\n// scss-docs-start theme-color-variables\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-900 !default;\n// scss-docs-end theme-color-variables\n\n// scss-docs-start theme-colors-map\n$theme-colors: (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n) !default;\n// scss-docs-end theme-colors-map\n\n// scss-docs-start theme-text-variables\n$primary-text-emphasis: shade-color($primary, 60%) !default;\n$secondary-text-emphasis: shade-color($secondary, 60%) !default;\n$success-text-emphasis: shade-color($success, 60%) !default;\n$info-text-emphasis: shade-color($info, 60%) !default;\n$warning-text-emphasis: shade-color($warning, 60%) !default;\n$danger-text-emphasis: shade-color($danger, 60%) !default;\n$light-text-emphasis: $gray-700 !default;\n$dark-text-emphasis: $gray-700 !default;\n// scss-docs-end theme-text-variables\n\n// scss-docs-start theme-bg-subtle-variables\n$primary-bg-subtle: tint-color($primary, 80%) !default;\n$secondary-bg-subtle: tint-color($secondary, 80%) !default;\n$success-bg-subtle: tint-color($success, 80%) !default;\n$info-bg-subtle: tint-color($info, 80%) !default;\n$warning-bg-subtle: tint-color($warning, 80%) !default;\n$danger-bg-subtle: tint-color($danger, 80%) !default;\n$light-bg-subtle: mix($gray-100, $white) !default;\n$dark-bg-subtle: $gray-400 !default;\n// scss-docs-end theme-bg-subtle-variables\n\n// scss-docs-start theme-border-subtle-variables\n$primary-border-subtle: tint-color($primary, 60%) !default;\n$secondary-border-subtle: tint-color($secondary, 60%) !default;\n$success-border-subtle: tint-color($success, 60%) !default;\n$info-border-subtle: tint-color($info, 60%) !default;\n$warning-border-subtle: tint-color($warning, 60%) !default;\n$danger-border-subtle: tint-color($danger, 60%) !default;\n$light-border-subtle: $gray-200 !default;\n$dark-border-subtle: $gray-500 !default;\n// scss-docs-end theme-border-subtle-variables\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: true !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: false !default;\n$enable-button-pointers: true !default;\n$enable-rfs: true !default;\n$enable-validation-icons: true !default;\n$enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n$enable-important-utilities: true !default;\n\n$enable-dark-mode: true !default;\n$color-mode-type: data !default; // `data` or `media-query`\n\n// Prefix for :root CSS variables\n\n$variable-prefix: bs- !default; // Deprecated in v5.2.0 for the shorter `$prefix`\n$prefix: $variable-prefix !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;\n// scss-docs-end variable-gradient\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer,\n 4: $spacer * 1.5,\n 5: $spacer * 3,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Body\n//\n// Settings for the `
` element.\n\n$body-text-align: null !default;\n$body-color: $gray-900 !default;\n$body-bg: $white !default;\n\n$body-secondary-color: rgba($body-color, .75) !default;\n$body-secondary-bg: $gray-200 !default;\n\n$body-tertiary-color: rgba($body-color, .5) !default;\n$body-tertiary-bg: $gray-100 !default;\n\n$body-emphasis-color: $black !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: $primary !default;\n$link-decoration: underline !default;\n$link-shade-percentage: 20% !default;\n$link-hover-color: shift-color($link-color, $link-shade-percentage) !default;\n$link-hover-decoration: null !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start grid-breakpoints\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px,\n xxl: 1400px\n) !default;\n// scss-docs-end grid-breakpoints\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px,\n xxl: 1320px\n) !default;\n// scss-docs-end container-max-widths\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 1.5rem !default;\n$grid-row-columns: 6 !default;\n\n// Container padding\n\n$container-padding-x: $grid-gutter-width !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: $gray-300 !default;\n$border-color-translucent: rgba($black, .175) !default;\n// scss-docs-end border-variables\n\n// scss-docs-start border-radius-variables\n$border-radius: .375rem !default;\n$border-radius-sm: .25rem !default;\n$border-radius-lg: .5rem !default;\n$border-radius-xl: 1rem !default;\n$border-radius-xxl: 2rem !default;\n$border-radius-pill: 50rem !default;\n// scss-docs-end border-radius-variables\n// fusv-disable\n$border-radius-2xl: $border-radius-xxl !default; // Deprecated in v5.3.0\n// fusv-enable\n\n// scss-docs-start box-shadow-variables\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default;\n// scss-docs-end box-shadow-variables\n\n$component-active-color: $white !default;\n$component-active-bg: $primary !default;\n\n// scss-docs-start focus-ring-variables\n$focus-ring-width: .25rem !default;\n$focus-ring-opacity: .25 !default;\n$focus-ring-color: rgba($primary, $focus-ring-opacity) !default;\n$focus-ring-blur: 0 !default;\n$focus-ring-box-shadow: 0 0 $focus-ring-blur $focus-ring-width $focus-ring-color !default;\n// scss-docs-end focus-ring-variables\n\n// scss-docs-start caret-variables\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n// scss-docs-end caret-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// stylelint-disable function-disallowed-list\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"1x1\": 100%,\n \"4x3\": calc(3 / 4 * 100%),\n \"16x9\": calc(9 / 16 * 100%),\n \"21x9\": calc(9 / 21 * 100%)\n) !default;\n// scss-docs-end aspect-ratios\n// stylelint-enable function-disallowed-list\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n// stylelint-disable value-keyword-case\n$font-family-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\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n// stylelint-enable value-keyword-case\n$font-family-base: var(--#{$prefix}font-sans-serif) !default;\n$font-family-code: var(--#{$prefix}font-monospace) !default;\n\n// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins\n// $font-size-base affects the font size of the body text\n$font-size-root: null !default;\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-sm: $font-size-base * .875 !default;\n$font-size-lg: $font-size-base * 1.25 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: (\n 1: $h1-font-size,\n 2: $h2-font-size,\n 3: $h3-font-size,\n 4: $h4-font-size,\n 5: $h5-font-size,\n 6: $h6-font-size\n) !default;\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: $spacer * .5 !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start display-headings\n$display-font-sizes: (\n 1: 5rem,\n 2: 4.5rem,\n 3: 4rem,\n 4: 3.5rem,\n 5: 3rem,\n 6: 2.5rem\n) !default;\n\n$display-font-family: null !default;\n$display-font-style: null !default;\n$display-font-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n// scss-docs-end display-headings\n\n// scss-docs-start type-variables\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: .875em !default;\n\n$sub-sup-font-size: .75em !default;\n\n// fusv-disable\n$text-muted: var(--#{$prefix}secondary-color) !default; // Deprecated in 5.3.0\n// fusv-enable\n\n$initialism-font-size: $small-font-size !default;\n\n$blockquote-margin-y: $spacer !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n$blockquote-footer-color: $gray-600 !default;\n$blockquote-footer-font-size: $small-font-size !default;\n\n$hr-margin-y: $spacer !default;\n$hr-color: inherit !default;\n\n// fusv-disable\n$hr-bg-color: null !default; // Deprecated in v5.2.0\n$hr-height: null !default; // Deprecated in v5.2.0\n// fusv-enable\n\n$hr-border-color: null !default; // Allows for inherited colors\n$hr-border-width: var(--#{$prefix}border-width) !default;\n$hr-opacity: .25 !default;\n\n// scss-docs-start vr-variables\n$vr-border-width: var(--#{$prefix}border-width) !default;\n// scss-docs-end vr-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-padding: .1875em !default;\n$mark-color: $body-color !default;\n$mark-bg: $yellow-100 !default;\n// scss-docs-end type-variables\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n// scss-docs-start table-variables\n$table-cell-padding-y: .5rem !default;\n$table-cell-padding-x: .5rem !default;\n$table-cell-padding-y-sm: .25rem !default;\n$table-cell-padding-x-sm: .25rem !default;\n\n$table-cell-vertical-align: top !default;\n\n$table-color: var(--#{$prefix}emphasis-color) !default;\n$table-bg: var(--#{$prefix}body-bg) !default;\n$table-accent-bg: transparent !default;\n\n$table-th-font-weight: null !default;\n\n$table-striped-color: $table-color !default;\n$table-striped-bg-factor: .05 !default;\n$table-striped-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-striped-bg-factor) !default;\n\n$table-active-color: $table-color !default;\n$table-active-bg-factor: .1 !default;\n$table-active-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-active-bg-factor) !default;\n\n$table-hover-color: $table-color !default;\n$table-hover-bg-factor: .075 !default;\n$table-hover-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-hover-bg-factor) !default;\n\n$table-border-factor: .2 !default;\n$table-border-width: var(--#{$prefix}border-width) !default;\n$table-border-color: var(--#{$prefix}border-color) !default;\n\n$table-striped-order: odd !default;\n$table-striped-columns-order: even !default;\n\n$table-group-separator-color: currentcolor !default;\n\n$table-caption-color: var(--#{$prefix}secondary-color) !default;\n\n$table-bg-scale: -80% !default;\n// scss-docs-end table-variables\n\n// scss-docs-start table-loop\n$table-variants: (\n \"primary\": shift-color($primary, $table-bg-scale),\n \"secondary\": shift-color($secondary, $table-bg-scale),\n \"success\": shift-color($success, $table-bg-scale),\n \"info\": shift-color($info, $table-bg-scale),\n \"warning\": shift-color($warning, $table-bg-scale),\n \"danger\": shift-color($danger, $table-bg-scale),\n \"light\": $light,\n \"dark\": $dark,\n) !default;\n// scss-docs-end table-loop\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n// scss-docs-start input-btn-variables\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: $focus-ring-width !default;\n$input-btn-focus-color-opacity: $focus-ring-opacity !default;\n$input-btn-focus-color: $focus-ring-color !default;\n$input-btn-focus-blur: $focus-ring-blur !default;\n$input-btn-focus-box-shadow: $focus-ring-box-shadow !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n\n$input-btn-border-width: var(--#{$prefix}border-width) !default;\n// scss-docs-end input-btn-variables\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n// scss-docs-start btn-variables\n$btn-color: var(--#{$prefix}body-color) !default;\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-color: var(--#{$prefix}link-color) !default;\n$btn-link-hover-color: var(--#{$prefix}link-hover-color) !default;\n$btn-link-disabled-color: $gray-600 !default;\n$btn-link-focus-shadow-rgb: to-rgb(mix(color-contrast($link-color), $link-color, 15%)) !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: var(--#{$prefix}border-radius) !default;\n$btn-border-radius-sm: var(--#{$prefix}border-radius-sm) !default;\n$btn-border-radius-lg: var(--#{$prefix}border-radius-lg) !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$btn-hover-bg-shade-amount: 15% !default;\n$btn-hover-bg-tint-amount: 15% !default;\n$btn-hover-border-shade-amount: 20% !default;\n$btn-hover-border-tint-amount: 10% !default;\n$btn-active-bg-shade-amount: 20% !default;\n$btn-active-bg-tint-amount: 20% !default;\n$btn-active-border-shade-amount: 25% !default;\n$btn-active-border-tint-amount: 10% !default;\n// scss-docs-end btn-variables\n\n\n// Forms\n\n// scss-docs-start form-text-variables\n$form-text-margin-top: .25rem !default;\n$form-text-font-size: $small-font-size !default;\n$form-text-font-style: null !default;\n$form-text-font-weight: null !default;\n$form-text-color: var(--#{$prefix}secondary-color) !default;\n// scss-docs-end form-text-variables\n\n// scss-docs-start form-label-variables\n$form-label-margin-bottom: .5rem !default;\n$form-label-font-size: null !default;\n$form-label-font-style: null !default;\n$form-label-font-weight: null !default;\n$form-label-color: null !default;\n// scss-docs-end form-label-variables\n\n// scss-docs-start form-input-variables\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n\n$input-bg: var(--#{$prefix}body-bg) !default;\n$input-disabled-color: null !default;\n$input-disabled-bg: var(--#{$prefix}secondary-bg) !default;\n$input-disabled-border-color: null !default;\n\n$input-color: var(--#{$prefix}body-color) !default;\n$input-border-color: var(--#{$prefix}border-color) !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n\n$input-border-radius: var(--#{$prefix}border-radius) !default;\n$input-border-radius-sm: var(--#{$prefix}border-radius-sm) !default;\n$input-border-radius-lg: var(--#{$prefix}border-radius-lg) !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: tint-color($component-active-bg, 50%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: var(--#{$prefix}secondary-color) !default;\n$input-plaintext-color: var(--#{$prefix}body-color) !default;\n\n$input-height-border: calc(#{$input-border-width} * 2) !default; // stylelint-disable-line function-disallowed-list\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-color-width: 3rem !default;\n// scss-docs-end form-input-variables\n\n// scss-docs-start form-check-variables\n$form-check-input-width: 1em !default;\n$form-check-min-height: $font-size-base * $line-height-base !default;\n$form-check-padding-start: $form-check-input-width + .5em !default;\n$form-check-margin-bottom: .125rem !default;\n$form-check-label-color: null !default;\n$form-check-label-cursor: null !default;\n$form-check-transition: null !default;\n\n$form-check-input-active-filter: brightness(90%) !default;\n\n$form-check-input-bg: $input-bg !default;\n$form-check-input-border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color) !default;\n$form-check-input-border-radius: .25em !default;\n$form-check-radio-border-radius: 50% !default;\n$form-check-input-focus-border: $input-focus-border-color !default;\n$form-check-input-focus-box-shadow: $focus-ring-box-shadow !default;\n\n$form-check-input-checked-color: $component-active-color !default;\n$form-check-input-checked-bg-color: $component-active-bg !default;\n$form-check-input-checked-border-color: $form-check-input-checked-bg-color !default;\n$form-check-input-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-check-radio-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-indeterminate-color: $component-active-color !default;\n$form-check-input-indeterminate-bg-color: $component-active-bg !default;\n$form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default;\n$form-check-input-indeterminate-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-disabled-opacity: .5 !default;\n$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default;\n$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default;\n\n$form-check-inline-margin-end: 1rem !default;\n// scss-docs-end form-check-variables\n\n// scss-docs-start form-switch-variables\n$form-switch-color: rgba($black, .25) !default;\n$form-switch-width: 2em !default;\n$form-switch-padding-start: $form-switch-width + .5em !default;\n$form-switch-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-border-radius: $form-switch-width !default;\n$form-switch-transition: background-position .15s ease-in-out !default;\n\n$form-switch-focus-color: $input-focus-border-color !default;\n$form-switch-focus-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-switch-checked-color: $component-active-color !default;\n$form-switch-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-checked-bg-position: right center !default;\n// scss-docs-end form-switch-variables\n\n// scss-docs-start input-group-variables\n$input-group-addon-padding-y: $input-padding-y !default;\n$input-group-addon-padding-x: $input-padding-x !default;\n$input-group-addon-font-weight: $input-font-weight !default;\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: var(--#{$prefix}tertiary-bg) !default;\n$input-group-addon-border-color: $input-border-color !default;\n// scss-docs-end input-group-variables\n\n// scss-docs-start form-select-variables\n$form-select-padding-y: $input-padding-y !default;\n$form-select-padding-x: $input-padding-x !default;\n$form-select-font-family: $input-font-family !default;\n$form-select-font-size: $input-font-size !default;\n$form-select-indicator-padding: $form-select-padding-x * 3 !default; // Extra padding for background-image\n$form-select-font-weight: $input-font-weight !default;\n$form-select-line-height: $input-line-height !default;\n$form-select-color: $input-color !default;\n$form-select-bg: $input-bg !default;\n$form-select-disabled-color: null !default;\n$form-select-disabled-bg: $input-disabled-bg !default;\n$form-select-disabled-border-color: $input-disabled-border-color !default;\n$form-select-bg-position: right $form-select-padding-x center !default;\n$form-select-bg-size: 16px 12px !default; // In pixels because image dimensions\n$form-select-indicator-color: $gray-800 !default;\n$form-select-indicator: url(\"data:image/svg+xml,\") !default;\n\n$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;\n$form-select-feedback-icon-position: center right $form-select-indicator-padding !default;\n$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$form-select-border-width: $input-border-width !default;\n$form-select-border-color: $input-border-color !default;\n$form-select-border-radius: $input-border-radius !default;\n$form-select-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n\n$form-select-focus-border-color: $input-focus-border-color !default;\n$form-select-focus-width: $input-focus-width !default;\n$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default;\n\n$form-select-padding-y-sm: $input-padding-y-sm !default;\n$form-select-padding-x-sm: $input-padding-x-sm !default;\n$form-select-font-size-sm: $input-font-size-sm !default;\n$form-select-border-radius-sm: $input-border-radius-sm !default;\n\n$form-select-padding-y-lg: $input-padding-y-lg !default;\n$form-select-padding-x-lg: $input-padding-x-lg !default;\n$form-select-font-size-lg: $input-font-size-lg !default;\n$form-select-border-radius-lg: $input-border-radius-lg !default;\n\n$form-select-transition: $input-transition !default;\n// scss-docs-end form-select-variables\n\n// scss-docs-start form-range-variables\n$form-range-track-width: 100% !default;\n$form-range-track-height: .5rem !default;\n$form-range-track-cursor: pointer !default;\n$form-range-track-bg: var(--#{$prefix}secondary-bg) !default;\n$form-range-track-border-radius: 1rem !default;\n$form-range-track-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n\n$form-range-thumb-width: 1rem !default;\n$form-range-thumb-height: $form-range-thumb-width !default;\n$form-range-thumb-bg: $component-active-bg !default;\n$form-range-thumb-border: 0 !default;\n$form-range-thumb-border-radius: 1rem !default;\n$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge\n$form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default;\n$form-range-thumb-disabled-bg: var(--#{$prefix}secondary-color) !default;\n$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end form-range-variables\n\n// scss-docs-start form-file-variables\n$form-file-button-color: $input-color !default;\n$form-file-button-bg: var(--#{$prefix}tertiary-bg) !default;\n$form-file-button-hover-bg: var(--#{$prefix}secondary-bg) !default;\n// scss-docs-end form-file-variables\n\n// scss-docs-start form-floating-variables\n$form-floating-height: add(3.5rem, $input-height-border) !default;\n$form-floating-line-height: 1.25 !default;\n$form-floating-padding-x: $input-padding-x !default;\n$form-floating-padding-y: 1rem !default;\n$form-floating-input-padding-t: 1.625rem !default;\n$form-floating-input-padding-b: .625rem !default;\n$form-floating-label-height: 1.5em !default;\n$form-floating-label-opacity: .65 !default;\n$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default;\n$form-floating-label-disabled-color: $gray-600 !default;\n$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default;\n// scss-docs-end form-floating-variables\n\n// Form validation\n\n// scss-docs-start form-feedback-variables\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $form-text-font-size !default;\n$form-feedback-font-style: $form-text-font-style !default;\n$form-feedback-valid-color: $success !default;\n$form-feedback-invalid-color: $danger !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end form-feedback-variables\n\n// scss-docs-start form-validation-colors\n$form-valid-color: $form-feedback-valid-color !default;\n$form-valid-border-color: $form-feedback-valid-color !default;\n$form-invalid-color: $form-feedback-invalid-color !default;\n$form-invalid-border-color: $form-feedback-invalid-color !default;\n// scss-docs-end form-validation-colors\n\n// scss-docs-start form-validation-states\n$form-validation-states: (\n \"valid\": (\n \"color\": var(--#{$prefix}form-valid-color),\n \"icon\": $form-feedback-icon-valid,\n \"tooltip-color\": #fff,\n \"tooltip-bg-color\": var(--#{$prefix}success),\n \"focus-box-shadow\": 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}success-rgb), $input-btn-focus-color-opacity),\n \"border-color\": var(--#{$prefix}form-valid-border-color),\n ),\n \"invalid\": (\n \"color\": var(--#{$prefix}form-invalid-color),\n \"icon\": $form-feedback-icon-invalid,\n \"tooltip-color\": #fff,\n \"tooltip-bg-color\": var(--#{$prefix}danger),\n \"focus-box-shadow\": 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}danger-rgb), $input-btn-focus-color-opacity),\n \"border-color\": var(--#{$prefix}form-invalid-border-color),\n )\n) !default;\n// scss-docs-end form-validation-states\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-offcanvas-backdrop: 1040 !default;\n$zindex-offcanvas: 1045 !default;\n$zindex-modal-backdrop: 1050 !default;\n$zindex-modal: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n\n\n// Navs\n\n// scss-docs-start nav-variables\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-font-size: null !default;\n$nav-link-font-weight: null !default;\n$nav-link-color: var(--#{$prefix}link-color) !default;\n$nav-link-hover-color: var(--#{$prefix}link-hover-color) !default;\n$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default;\n$nav-link-disabled-color: var(--#{$prefix}secondary-color) !default;\n$nav-link-focus-box-shadow: $focus-ring-box-shadow !default;\n\n$nav-tabs-border-color: var(--#{$prefix}border-color) !default;\n$nav-tabs-border-width: var(--#{$prefix}border-width) !default;\n$nav-tabs-border-radius: var(--#{$prefix}border-radius) !default;\n$nav-tabs-link-hover-border-color: var(--#{$prefix}secondary-bg) var(--#{$prefix}secondary-bg) $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: var(--#{$prefix}emphasis-color) !default;\n$nav-tabs-link-active-bg: var(--#{$prefix}body-bg) !default;\n$nav-tabs-link-active-border-color: var(--#{$prefix}border-color) var(--#{$prefix}border-color) $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: var(--#{$prefix}border-radius) !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-underline-gap: 1rem !default;\n$nav-underline-border-width: .125rem !default;\n$nav-underline-link-active-color: var(--#{$prefix}emphasis-color) !default;\n// scss-docs-end nav-variables\n\n\n// Navbar\n\n// scss-docs-start navbar-variables\n$navbar-padding-y: $spacer * .5 !default;\n$navbar-padding-x: null !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;\n$navbar-brand-margin-end: 1rem !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n$navbar-toggler-focus-width: $btn-focus-width !default;\n$navbar-toggler-transition: box-shadow .15s ease-in-out !default;\n\n$navbar-light-color: rgba(var(--#{$prefix}emphasis-color-rgb), .65) !default;\n$navbar-light-hover-color: rgba(var(--#{$prefix}emphasis-color-rgb), .8) !default;\n$navbar-light-active-color: rgba(var(--#{$prefix}emphasis-color-rgb), 1) !default;\n$navbar-light-disabled-color: rgba(var(--#{$prefix}emphasis-color-rgb), .3) !default;\n$navbar-light-icon-color: rgba($body-color, .75) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba(var(--#{$prefix}emphasis-color-rgb), .15) !default;\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n// scss-docs-end navbar-variables\n\n// scss-docs-start navbar-dark-variables\n$navbar-dark-color: rgba($white, .55) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-icon-color: $navbar-dark-color !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n// scss-docs-end navbar-dark-variables\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n// scss-docs-start dropdown-variables\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-x: 0 !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: var(--#{$prefix}body-color) !default;\n$dropdown-bg: var(--#{$prefix}body-bg) !default;\n$dropdown-border-color: var(--#{$prefix}border-color-translucent) !default;\n$dropdown-border-radius: var(--#{$prefix}border-radius) !default;\n$dropdown-border-width: var(--#{$prefix}border-width) !default;\n$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default; // stylelint-disable-line function-disallowed-list\n$dropdown-divider-bg: $dropdown-border-color !default;\n$dropdown-divider-margin-y: $spacer * .5 !default;\n$dropdown-box-shadow: var(--#{$prefix}box-shadow) !default;\n\n$dropdown-link-color: var(--#{$prefix}body-color) !default;\n$dropdown-link-hover-color: $dropdown-link-color !default;\n$dropdown-link-hover-bg: var(--#{$prefix}tertiary-bg) !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: var(--#{$prefix}tertiary-color) !default;\n\n$dropdown-item-padding-y: $spacer * .25 !default;\n$dropdown-item-padding-x: $spacer !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding-x: $dropdown-item-padding-x !default;\n$dropdown-header-padding-y: $dropdown-padding-y !default;\n// fusv-disable\n$dropdown-header-padding: $dropdown-header-padding-y $dropdown-header-padding-x !default; // Deprecated in v5.2.0\n// fusv-enable\n// scss-docs-end dropdown-variables\n\n// scss-docs-start dropdown-dark-variables\n$dropdown-dark-color: $gray-300 !default;\n$dropdown-dark-bg: $gray-800 !default;\n$dropdown-dark-border-color: $dropdown-border-color !default;\n$dropdown-dark-divider-bg: $dropdown-divider-bg !default;\n$dropdown-dark-box-shadow: null !default;\n$dropdown-dark-link-color: $dropdown-dark-color !default;\n$dropdown-dark-link-hover-color: $white !default;\n$dropdown-dark-link-hover-bg: rgba($white, .15) !default;\n$dropdown-dark-link-active-color: $dropdown-link-active-color !default;\n$dropdown-dark-link-active-bg: $dropdown-link-active-bg !default;\n$dropdown-dark-link-disabled-color: $gray-500 !default;\n$dropdown-dark-header-color: $gray-500 !default;\n// scss-docs-end dropdown-dark-variables\n\n\n// Pagination\n\n// scss-docs-start pagination-variables\n$pagination-padding-y: .375rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n\n$pagination-font-size: $font-size-base !default;\n\n$pagination-color: var(--#{$prefix}link-color) !default;\n$pagination-bg: var(--#{$prefix}body-bg) !default;\n$pagination-border-radius: var(--#{$prefix}border-radius) !default;\n$pagination-border-width: var(--#{$prefix}border-width) !default;\n$pagination-margin-start: calc(#{$pagination-border-width} * -1) !default; // stylelint-disable-line function-disallowed-list\n$pagination-border-color: var(--#{$prefix}border-color) !default;\n\n$pagination-focus-color: var(--#{$prefix}link-hover-color) !default;\n$pagination-focus-bg: var(--#{$prefix}secondary-bg) !default;\n$pagination-focus-box-shadow: $focus-ring-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: var(--#{$prefix}link-hover-color) !default;\n$pagination-hover-bg: var(--#{$prefix}tertiary-bg) !default;\n$pagination-hover-border-color: var(--#{$prefix}border-color) !default; // Todo in v6: remove this?\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $component-active-bg !default;\n\n$pagination-disabled-color: var(--#{$prefix}secondary-color) !default;\n$pagination-disabled-bg: var(--#{$prefix}secondary-bg) !default;\n$pagination-disabled-border-color: var(--#{$prefix}border-color) !default;\n\n$pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$pagination-border-radius-sm: var(--#{$prefix}border-radius-sm) !default;\n$pagination-border-radius-lg: var(--#{$prefix}border-radius-lg) !default;\n// scss-docs-end pagination-variables\n\n\n// Placeholders\n\n// scss-docs-start placeholders\n$placeholder-opacity-max: .5 !default;\n$placeholder-opacity-min: .2 !default;\n// scss-docs-end placeholders\n\n// Cards\n\n// scss-docs-start card-variables\n$card-spacer-y: $spacer !default;\n$card-spacer-x: $spacer !default;\n$card-title-spacer-y: $spacer * .5 !default;\n$card-title-color: null !default;\n$card-subtitle-color: null !default;\n$card-border-width: var(--#{$prefix}border-width) !default;\n$card-border-color: var(--#{$prefix}border-color-translucent) !default;\n$card-border-radius: var(--#{$prefix}border-radius) !default;\n$card-box-shadow: null !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-padding-y: $card-spacer-y * .5 !default;\n$card-cap-padding-x: $card-spacer-x !default;\n$card-cap-bg: rgba(var(--#{$prefix}body-color-rgb), .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: var(--#{$prefix}body-bg) !default;\n$card-img-overlay-padding: $spacer !default;\n$card-group-margin: $grid-gutter-width * .5 !default;\n// scss-docs-end card-variables\n\n// Accordion\n\n// scss-docs-start accordion-variables\n$accordion-padding-y: 1rem !default;\n$accordion-padding-x: 1.25rem !default;\n$accordion-color: var(--#{$prefix}body-color) !default;\n$accordion-bg: var(--#{$prefix}body-bg) !default;\n$accordion-border-width: var(--#{$prefix}border-width) !default;\n$accordion-border-color: var(--#{$prefix}border-color) !default;\n$accordion-border-radius: var(--#{$prefix}border-radius) !default;\n$accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width) !default;\n\n$accordion-body-padding-y: $accordion-padding-y !default;\n$accordion-body-padding-x: $accordion-padding-x !default;\n\n$accordion-button-padding-y: $accordion-padding-y !default;\n$accordion-button-padding-x: $accordion-padding-x !default;\n$accordion-button-color: var(--#{$prefix}body-color) !default;\n$accordion-button-bg: var(--#{$prefix}accordion-bg) !default;\n$accordion-transition: $btn-transition, border-radius .15s ease !default;\n$accordion-button-active-bg: var(--#{$prefix}primary-bg-subtle) !default;\n$accordion-button-active-color: var(--#{$prefix}primary-text-emphasis) !default;\n\n$accordion-button-focus-border-color: $input-focus-border-color !default;\n$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default;\n\n$accordion-icon-width: 1.25rem !default;\n$accordion-icon-color: $body-color !default;\n$accordion-icon-active-color: $primary-text-emphasis !default;\n$accordion-icon-transition: transform .2s ease-in-out !default;\n$accordion-icon-transform: rotate(-180deg) !default;\n\n$accordion-button-icon: url(\"data:image/svg+xml,\") !default;\n$accordion-button-active-icon: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end accordion-variables\n\n// Tooltips\n\n// scss-docs-start tooltip-variables\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: var(--#{$prefix}body-bg) !default;\n$tooltip-bg: var(--#{$prefix}emphasis-color) !default;\n$tooltip-border-radius: var(--#{$prefix}border-radius) !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: $spacer * .25 !default;\n$tooltip-padding-x: $spacer * .5 !default;\n$tooltip-margin: null !default; // TODO: remove this in v6\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n// fusv-disable\n$tooltip-arrow-color: null !default; // Deprecated in Bootstrap 5.2.0 for CSS variables\n// fusv-enable\n// scss-docs-end tooltip-variables\n\n// Form tooltips must come after regular tooltips\n// scss-docs-start tooltip-feedback-variables\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: null !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n// scss-docs-end tooltip-feedback-variables\n\n\n// Popovers\n\n// scss-docs-start popover-variables\n$popover-font-size: $font-size-sm !default;\n$popover-bg: var(--#{$prefix}body-bg) !default;\n$popover-max-width: 276px !default;\n$popover-border-width: var(--#{$prefix}border-width) !default;\n$popover-border-color: var(--#{$prefix}border-color-translucent) !default;\n$popover-border-radius: var(--#{$prefix}border-radius-lg) !default;\n$popover-inner-border-radius: calc(#{$popover-border-radius} - #{$popover-border-width}) !default; // stylelint-disable-line function-disallowed-list\n$popover-box-shadow: var(--#{$prefix}box-shadow) !default;\n\n$popover-header-font-size: $font-size-base !default;\n$popover-header-bg: var(--#{$prefix}secondary-bg) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: $spacer !default;\n\n$popover-body-color: var(--#{$prefix}body-color) !default;\n$popover-body-padding-y: $spacer !default;\n$popover-body-padding-x: $spacer !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n// scss-docs-end popover-variables\n\n// fusv-disable\n// Deprecated in Bootstrap 5.2.0 for CSS variables\n$popover-arrow-color: $popover-bg !default;\n$popover-arrow-outer-color: var(--#{$prefix}border-color-translucent) !default;\n// fusv-enable\n\n\n// Toasts\n\n// scss-docs-start toast-variables\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .5rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba(var(--#{$prefix}body-bg-rgb), .85) !default;\n$toast-border-width: var(--#{$prefix}border-width) !default;\n$toast-border-color: var(--#{$prefix}border-color-translucent) !default;\n$toast-border-radius: var(--#{$prefix}border-radius) !default;\n$toast-box-shadow: var(--#{$prefix}box-shadow) !default;\n$toast-spacing: $container-padding-x !default;\n\n$toast-header-color: var(--#{$prefix}secondary-color) !default;\n$toast-header-background-color: rgba(var(--#{$prefix}body-bg-rgb), .85) !default;\n$toast-header-border-color: $toast-border-color !default;\n// scss-docs-end toast-variables\n\n\n// Badges\n\n// scss-docs-start badge-variables\n$badge-font-size: .75em !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-color: $white !default;\n$badge-padding-y: .35em !default;\n$badge-padding-x: .65em !default;\n$badge-border-radius: var(--#{$prefix}border-radius) !default;\n// scss-docs-end badge-variables\n\n\n// Modals\n\n// scss-docs-start modal-variables\n$modal-inner-padding: $spacer !default;\n\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: var(--#{$prefix}body-bg) !default;\n$modal-content-border-color: var(--#{$prefix}border-color-translucent) !default;\n$modal-content-border-width: var(--#{$prefix}border-width) !default;\n$modal-content-border-radius: var(--#{$prefix}border-radius-lg) !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: var(--#{$prefix}box-shadow-sm) !default;\n$modal-content-box-shadow-sm-up: var(--#{$prefix}box-shadow) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n\n$modal-header-border-color: var(--#{$prefix}border-color) !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-header-padding-y: $modal-inner-padding !default;\n$modal-header-padding-x: $modal-inner-padding !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-footer-bg: null !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n\n$modal-sm: 300px !default;\n$modal-md: 500px !default;\n$modal-lg: 800px !default;\n$modal-xl: 1140px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n// scss-docs-end modal-variables\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n// scss-docs-start alert-variables\n$alert-padding-y: $spacer !default;\n$alert-padding-x: $spacer !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: var(--#{$prefix}border-radius) !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: var(--#{$prefix}border-width) !default;\n$alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side\n// scss-docs-end alert-variables\n\n// fusv-disable\n$alert-bg-scale: -80% !default; // Deprecated in v5.2.0, to be removed in v6\n$alert-border-scale: -70% !default; // Deprecated in v5.2.0, to be removed in v6\n$alert-color-scale: 40% !default; // Deprecated in v5.2.0, to be removed in v6\n// fusv-enable\n\n// Progress bars\n\n// scss-docs-start progress-variables\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: var(--#{$prefix}secondary-bg) !default;\n$progress-border-radius: var(--#{$prefix}border-radius) !default;\n$progress-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: $primary !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n// scss-docs-end progress-variables\n\n\n// List group\n\n// scss-docs-start list-group-variables\n$list-group-color: var(--#{$prefix}body-color) !default;\n$list-group-bg: var(--#{$prefix}body-bg) !default;\n$list-group-border-color: var(--#{$prefix}border-color) !default;\n$list-group-border-width: var(--#{$prefix}border-width) !default;\n$list-group-border-radius: var(--#{$prefix}border-radius) !default;\n\n$list-group-item-padding-y: $spacer * .5 !default;\n$list-group-item-padding-x: $spacer !default;\n// fusv-disable\n$list-group-item-bg-scale: -80% !default; // Deprecated in v5.3.0\n$list-group-item-color-scale: 40% !default; // Deprecated in v5.3.0\n// fusv-enable\n\n$list-group-hover-bg: var(--#{$prefix}tertiary-bg) !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: var(--#{$prefix}secondary-color) !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: var(--#{$prefix}secondary-color) !default;\n$list-group-action-hover-color: var(--#{$prefix}emphasis-color) !default;\n\n$list-group-action-active-color: var(--#{$prefix}body-color) !default;\n$list-group-action-active-bg: var(--#{$prefix}secondary-bg) !default;\n// scss-docs-end list-group-variables\n\n\n// Image thumbnails\n\n// scss-docs-start thumbnail-variables\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: var(--#{$prefix}body-bg) !default;\n$thumbnail-border-width: var(--#{$prefix}border-width) !default;\n$thumbnail-border-color: var(--#{$prefix}border-color) !default;\n$thumbnail-border-radius: var(--#{$prefix}border-radius) !default;\n$thumbnail-box-shadow: var(--#{$prefix}box-shadow-sm) !default;\n// scss-docs-end thumbnail-variables\n\n\n// Figures\n\n// scss-docs-start figure-variables\n$figure-caption-font-size: $small-font-size !default;\n$figure-caption-color: var(--#{$prefix}secondary-color) !default;\n// scss-docs-end figure-variables\n\n\n// Breadcrumbs\n\n// scss-docs-start breadcrumb-variables\n$breadcrumb-font-size: null !default;\n$breadcrumb-padding-y: 0 !default;\n$breadcrumb-padding-x: 0 !default;\n$breadcrumb-item-padding-x: .5rem !default;\n$breadcrumb-margin-bottom: 1rem !default;\n$breadcrumb-bg: null !default;\n$breadcrumb-divider-color: var(--#{$prefix}secondary-color) !default;\n$breadcrumb-active-color: var(--#{$prefix}secondary-color) !default;\n$breadcrumb-divider: quote(\"/\") !default;\n$breadcrumb-divider-flipped: $breadcrumb-divider !default;\n$breadcrumb-border-radius: null !default;\n// scss-docs-end breadcrumb-variables\n\n// Carousel\n\n// scss-docs-start carousel-variables\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-opacity: .5 !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-active-opacity: 1 !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n$carousel-caption-padding-y: 1.25rem !default;\n$carousel-caption-spacer: 1.25rem !default;\n\n$carousel-control-icon-width: 2rem !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n// scss-docs-end carousel-variables\n\n// scss-docs-start carousel-dark-variables\n$carousel-dark-indicator-active-bg: $black !default;\n$carousel-dark-caption-color: $black !default;\n$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;\n// scss-docs-end carousel-dark-variables\n\n\n// Spinners\n\n// scss-docs-start spinner-variables\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-vertical-align: -.125em !default;\n$spinner-border-width: .25em !default;\n$spinner-animation-speed: .75s !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n// scss-docs-end spinner-variables\n\n\n// Close\n\n// scss-docs-start close-variables\n$btn-close-width: 1em !default;\n$btn-close-height: $btn-close-width !default;\n$btn-close-padding-x: .25em !default;\n$btn-close-padding-y: $btn-close-padding-x !default;\n$btn-close-color: $black !default;\n$btn-close-bg: url(\"data:image/svg+xml,\") !default;\n$btn-close-focus-shadow: $focus-ring-box-shadow !default;\n$btn-close-opacity: .5 !default;\n$btn-close-hover-opacity: .75 !default;\n$btn-close-focus-opacity: 1 !default;\n$btn-close-disabled-opacity: .25 !default;\n$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;\n// scss-docs-end close-variables\n\n\n// Offcanvas\n\n// scss-docs-start offcanvas-variables\n$offcanvas-padding-y: $modal-inner-padding !default;\n$offcanvas-padding-x: $modal-inner-padding !default;\n$offcanvas-horizontal-width: 400px !default;\n$offcanvas-vertical-height: 30vh !default;\n$offcanvas-transition-duration: .3s !default;\n$offcanvas-border-color: $modal-content-border-color !default;\n$offcanvas-border-width: $modal-content-border-width !default;\n$offcanvas-title-line-height: $modal-title-line-height !default;\n$offcanvas-bg-color: var(--#{$prefix}body-bg) !default;\n$offcanvas-color: var(--#{$prefix}body-color) !default;\n$offcanvas-box-shadow: $modal-content-box-shadow-xs !default;\n$offcanvas-backdrop-bg: $modal-backdrop-bg !default;\n$offcanvas-backdrop-opacity: $modal-backdrop-opacity !default;\n// scss-docs-end offcanvas-variables\n\n// Code\n\n$code-font-size: $small-font-size !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .1875rem !default;\n$kbd-padding-x: .375rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: var(--#{$prefix}body-bg) !default;\n$kbd-bg: var(--#{$prefix}body-color) !default;\n$nested-kbd-font-weight: null !default; // Deprecated in v5.2.0, removing in v6\n\n$pre-color: null !default;\n","h6, h5, h4, h3, h2, h1 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1 {\n font-size: calc(1.375rem + 1.5vw);\n}\n@media (min-width: 1200px) {\n h1 {\n font-size: 2.5rem;\n }\n}\n\nh2 {\n font-size: calc(1.325rem + 0.9vw);\n}\n@media (min-width: 1200px) {\n h2 {\n font-size: 2rem;\n }\n}\n\nh3 {\n font-size: calc(1.3rem + 0.6vw);\n}\n@media (min-width: 1200px) {\n h3 {\n font-size: 1.75rem;\n }\n}\n\nh4 {\n font-size: calc(1.275rem + 0.3vw);\n}\n@media (min-width: 1200px) {\n h4 {\n font-size: 1.5rem;\n }\n}\n\nh5 {\n font-size: 1.25rem;\n}\n\nh6 {\n font-size: 1rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\n.container {\n box-sizing: border-box;\n width: 100%;\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container {\n max-width: 1320px;\n }\n}","// stylelint-disable scss/dimension-no-non-numeric-values\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * .1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n \"px\": 1px,\n \"rem\": 1rem,\n \"em\": 1em,\n \"%\": 1%\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query () {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query () {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + \" \" + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n } @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + \" \" + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n } @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + \" \" + $value;\n } @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + \" calc(\" + $min-width + if($value < 0, \" - \", \" + \") + $variable-width + \")\";\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluid-val: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluid-val {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule () {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluid-val);\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n\n @include _rfs-media-query-rule () {\n #{$property}: if($rfs-mode == max-media-query, $fluid-val, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n"]}
\ No newline at end of file
diff --git a/plugins/construct-wp/assets/js/construct-wp-customizer.js b/plugins/construct-wp/assets/js/construct-wp-customizer.js
new file mode 100644
index 0000000..4c6be8d
--- /dev/null
+++ b/plugins/construct-wp/assets/js/construct-wp-customizer.js
@@ -0,0 +1,87 @@
+(function (factory) {
+ typeof define === 'function' && define.amd ? define(factory) :
+ factory();
+})((function () { 'use strict';
+
+ (function () {
+ // Augment each menu item control once it is added and embedded.
+ wp.customize.control.bind('add', control => {
+ if (control.extended(wp.customize.Menus.MenuItemControl)) {
+ control.deferred.embedded.done(() => {
+ extendControl(control);
+ });
+ }
+ });
+
+ /**
+ * Extend the control with roles information.
+ *
+ * @param {wp.customize.Menus.MenuItemControl} control
+ */
+ function extendControl(control) {
+ control.iconField = control.container.find('[name="edit-menu-item-icon"]');
+ control.visibilityField = control.container.find('[name="edit-menu-item-visibility"]');
+ control.logoutLinkField = control.container.find('[name="edit-menu-item-logout_link"]');
+ control.linkTypeField = control.container.find('[name="edit-menu-item-link_type"]');
+
+ // Set the initial UI state.
+ updateControlFields(control);
+
+ // Update the UI state when the setting changes programmatically.
+ control.setting.bind(() => {
+ updateControlFields(control);
+ });
+
+ // Update the setting when the inputs are modified.
+ control.iconField.on('input', e => {
+ setSetting(control.setting, {
+ icon: e.target.value
+ });
+ });
+ control.visibilityField.on('change', e => {
+ setSetting(control.setting, {
+ visibility: e.target.value
+ });
+ });
+ control.logoutLinkField.on('change', e => {
+ setSetting(control.setting, {
+ // eslint-disable-next-line camelcase
+ logout_link: e.target.checked ? '1' : '0'
+ });
+ });
+ control.linkTypeField.on('change', e => {
+ setSetting(control.setting, {
+ // eslint-disable-next-line camelcase
+ link_type: e.target.value
+ });
+ });
+ }
+
+ /**
+ * Extend the setting with updated information.
+ *
+ * @param {wp.customize.Setting} setting
+ * @param {string|Array} roles
+ */
+ function setSetting(setting, value) {
+ setting.set({
+ ..._.clone(setting()),
+ ...value
+ });
+ }
+
+ /**
+ * Apply the control's setting value to the control's fields.
+ *
+ * @param {wp.customize.Menus.MenuItemControl} control
+ */
+ function updateControlFields(control) {
+ control.iconField.val(control.setting().icon);
+ control.visibilityField.val(control.setting().visibility);
+ control.logoutLinkField.prop('checked', control.setting().logout_link === '1');
+ control.linkTypeField.val(control.setting().link_type);
+ }
+ })();
+
+}));
+//# sourceMappingURL=construct-wp-customizer.js.map
diff --git a/plugins/construct-wp/assets/js/construct-wp-customizer.js.map b/plugins/construct-wp/assets/js/construct-wp-customizer.js.map
new file mode 100644
index 0000000..9b96baf
--- /dev/null
+++ b/plugins/construct-wp/assets/js/construct-wp-customizer.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"scripts.js","sources":["plugins/construct-wp/src/js/construct-wp-customizer.js"],"sourcesContent":["( function() {\n // Augment each menu item control once it is added and embedded.\n wp.customize.control.bind( 'add', ( control ) => {\n if ( control.extended( wp.customize.Menus.MenuItemControl ) ) {\n control.deferred.embedded.done( () => {\n extendControl( control )\n } )\n }\n } )\n\n /**\n * Extend the control with roles information.\n *\n * @param {wp.customize.Menus.MenuItemControl} control\n */\n function extendControl( control ) {\n control.iconField = control.container.find( '[name=\"edit-menu-item-icon\"]' )\n control.visibilityField = control.container.find( '[name=\"edit-menu-item-visibility\"]' )\n control.logoutLinkField = control.container.find( '[name=\"edit-menu-item-logout_link\"]' )\n control.linkTypeField = control.container.find( '[name=\"edit-menu-item-link_type\"]' )\n\n // Set the initial UI state.\n updateControlFields( control )\n\n // Update the UI state when the setting changes programmatically.\n control.setting.bind( () => {\n updateControlFields( control )\n } )\n\n // Update the setting when the inputs are modified.\n control.iconField.on( 'input', ( e ) => {\n setSetting( control.setting, {\n icon: e.target.value,\n } )\n } )\n control.visibilityField.on( 'change', ( e ) => {\n setSetting( control.setting, {\n visibility: e.target.value,\n } )\n } )\n control.logoutLinkField.on( 'change', ( e ) => {\n setSetting( control.setting, {\n // eslint-disable-next-line camelcase\n logout_link: e.target.checked ? '1' : '0',\n } )\n } )\n control.linkTypeField.on( 'change', ( e ) => {\n setSetting( control.setting, {\n // eslint-disable-next-line camelcase\n link_type: e.target.value,\n } )\n } )\n }\n\n /**\n * Extend the setting with updated information.\n *\n * @param {wp.customize.Setting} setting\n * @param {string|Array} roles\n */\n function setSetting( setting, value ) {\n setting.set( {\n ..._.clone( setting() ),\n ...value,\n } )\n }\n\n /**\n * Apply the control's setting value to the control's fields.\n *\n * @param {wp.customize.Menus.MenuItemControl} control\n */\n function updateControlFields( control ) {\n control.iconField.val( control.setting().icon )\n control.visibilityField.val( control.setting().visibility )\n control.logoutLinkField.prop( 'checked', control.setting().logout_link === '1' )\n control.linkTypeField.val( control.setting().link_type )\n }\n} )()\n"],"names":["wp","customize","control","bind","extended","Menus","MenuItemControl","deferred","embedded","done","extendControl","iconField","container","find","visibilityField","logoutLinkField","linkTypeField","updateControlFields","setting","on","e","setSetting","icon","target","value","visibility","logout_link","checked","link_type","set","_","clone","val","prop"],"mappings":"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"}
\ No newline at end of file
diff --git a/plugins/construct-wp/assets/js/construct-wp-gutenberg.js b/plugins/construct-wp/assets/js/construct-wp-gutenberg.js
new file mode 100644
index 0000000..35c1778
--- /dev/null
+++ b/plugins/construct-wp/assets/js/construct-wp-gutenberg.js
@@ -0,0 +1,214 @@
+/******/ (function() { // webpackBootstrap
+/******/ "use strict";
+/******/ var __webpack_modules__ = ({
+
+/***/ "./plugins/construct-wp/src/gutenberg/panels/email/index.jsx":
+/*!*******************************************************************!*\
+ !*** ./plugins/construct-wp/src/gutenberg/panels/email/index.jsx ***!
+ \*******************************************************************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _wordpress_edit_post__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/edit-post */ "@wordpress/edit-post");
+/* harmony import */ var _wordpress_edit_post__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_edit_post__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
+/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
+/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
+/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
+
+
+
+
+const __ = _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__;
+function EmailPanel() {
+ const postType = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.select)('core/editor').getCurrentPostType();
+ if (postType !== 'cwp_email') {
+ return null;
+ }
+ const {
+ slug
+ } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
+ return {
+ slug: select('core/editor').getEditedPostSlug()
+ };
+ });
+ const {
+ editPost
+ } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)('core/editor', [slug]);
+ return wp.element.createElement(_wordpress_edit_post__WEBPACK_IMPORTED_MODULE_0__.PluginDocumentSettingPanel, {
+ name: "ilab-restrict-access-sidebar",
+ title: __('Permalink', 'construct-wp')
+ }, wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.TextControl, {
+ label: __('Set the email permalink', 'construct-wp'),
+ help: __('This is used as a reference for this email template. This can be automatically generated on creation.', 'construct-wp'),
+ type: "text",
+ value: slug,
+ onChange: value => editPost({
+ slug: value
+ }),
+ required: true
+ }));
+}
+/* harmony default export */ __webpack_exports__["default"] = ({
+ name: 'email',
+ options: {
+ icon: '',
+ render: EmailPanel
+ }
+});
+
+/***/ }),
+
+/***/ "./plugins/construct-wp/src/gutenberg/panels/index.js":
+/*!************************************************************!*\
+ !*** ./plugins/construct-wp/src/gutenberg/panels/index.js ***!
+ \************************************************************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _wordpress_plugins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/plugins */ "@wordpress/plugins");
+/* harmony import */ var _wordpress_plugins__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_plugins__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _email__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./email */ "./plugins/construct-wp/src/gutenberg/panels/email/index.jsx");
+
+
+const panels = [_email__WEBPACK_IMPORTED_MODULE_1__["default"]];
+panels.forEach(panel => {
+ (0,_wordpress_plugins__WEBPACK_IMPORTED_MODULE_0__.registerPlugin)("cwp-".concat(panel.name, "-panel"), panel.options);
+});
+/* harmony default export */ __webpack_exports__["default"] = (panels);
+
+/***/ }),
+
+/***/ "@wordpress/components":
+/*!********************************!*\
+ !*** external "wp.components" ***!
+ \********************************/
+/***/ (function(module) {
+
+module.exports = wp.components;
+
+/***/ }),
+
+/***/ "@wordpress/data":
+/*!**************************!*\
+ !*** external "wp.data" ***!
+ \**************************/
+/***/ (function(module) {
+
+module.exports = wp.data;
+
+/***/ }),
+
+/***/ "@wordpress/edit-post":
+/*!******************************!*\
+ !*** external "wp.editPost" ***!
+ \******************************/
+/***/ (function(module) {
+
+module.exports = wp.editPost;
+
+/***/ }),
+
+/***/ "@wordpress/i18n":
+/*!**************************!*\
+ !*** external "wp.i18n" ***!
+ \**************************/
+/***/ (function(module) {
+
+module.exports = wp.i18n;
+
+/***/ }),
+
+/***/ "@wordpress/plugins":
+/*!*****************************!*\
+ !*** external "wp.plugins" ***!
+ \*****************************/
+/***/ (function(module) {
+
+module.exports = wp.plugins;
+
+/***/ })
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/compat get default export */
+/******/ !function() {
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function() { return module['default']; } :
+/******/ function() { return module; };
+/******/ __webpack_require__.d(getter, { a: getter });
+/******/ return getter;
+/******/ };
+/******/ }();
+/******/
+/******/ /* webpack/runtime/define property getters */
+/******/ !function() {
+/******/ // define getter functions for harmony exports
+/******/ __webpack_require__.d = function(exports, definition) {
+/******/ for(var key in definition) {
+/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ }
+/******/ }
+/******/ };
+/******/ }();
+/******/
+/******/ /* webpack/runtime/hasOwnProperty shorthand */
+/******/ !function() {
+/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
+/******/ }();
+/******/
+/******/ /* webpack/runtime/make namespace object */
+/******/ !function() {
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/ }();
+/******/
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
+!function() {
+/*!**********************************************************************!*\
+ !*** ./plugins/construct-wp/src/gutenberg/construct-wp-gutenberg.js ***!
+ \**********************************************************************/
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _panels__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./panels */ "./plugins/construct-wp/src/gutenberg/panels/index.js");
+
+}();
+/******/ })()
+;
+//# sourceMappingURL=construct-wp-gutenberg.js.map
\ No newline at end of file
diff --git a/plugins/construct-wp/assets/js/construct-wp-gutenberg.js.map b/plugins/construct-wp/assets/js/construct-wp-gutenberg.js.map
new file mode 100644
index 0000000..b777413
--- /dev/null
+++ b/plugins/construct-wp/assets/js/construct-wp-gutenberg.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"construct-wp-gutenberg.js","mappings":";;;;;;;;;;;;;;;;;;;AAE6B;AAKL;AAGM;AAGN;AAAA,MAAAK,EAAA,GAAAC,+CAAA;AAExB,SAASC,UAAUA,CAAA,EAAG;EAClB,MAAMC,QAAQ,GAAGP,uDAAM,CAAE,aAAc,CAAC,CAACQ,kBAAkB,CAAC,CAAC;EAE7D,IAAKD,QAAQ,KAAK,WAAW,EAAG;IAC5B,OAAO,IAAI;EACf;EAEA,MAAM;IAAEE;EAAK,CAAC,GAAGR,0DAAS,CAAID,MAAM,IAAM;IACtC,OAAO;MACHS,IAAI,EAAET,MAAM,CAAE,aAAc,CAAC,CAACU,iBAAiB,CAAC;IACpD,CAAC;EACL,CAAE,CAAC;EAEH,MAAM;IAAEC;EAAS,CAAC,GAAGT,4DAAW,CAAE,aAAa,EAAE,CAACO,IAAI,CAAE,CAAC;EAEzD,OACIG,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAACf,4EAA0B;IACvBgB,IAAI,EAAC,8BAA8B;IACnCC,KAAK,EAAEZ,EAAE,CAAE,WAAW,EAAE,cAAe;EAAE,GAEzCQ,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAACX,8DAAW;IACRc,KAAK,EAAEb,EAAE,CAAE,yBAAyB,EAAE,cAAe,CAAE;IACvDc,IAAI,EAAEd,EAAE,CAAE,uGAAuG,EAAE,cAAe,CAAE;IACpIe,IAAI,EAAC,MAAM;IACXC,KAAK,EAAGX,IAAM;IACdY,QAAQ,EAAKD,KAAK,IAAMT,QAAQ,CAAE;MAAEF,IAAI,EAAEW;IAAM,CAAE,CAAG;IACrDE,QAAQ;EAAA,CACX,CACuB,CAAC;AAErC;AAEA,+DAAe;EACXP,IAAI,EAAE,OAAO;EACbQ,OAAO,EAAE;IACLC,IAAI,EAAE,EAAE;IACRC,MAAM,EAAEnB;EACZ;AACJ,CAAC;;;;;;;;;;;;;;ACrDkD;AAEnB;AAEhC,MAAMqB,MAAM,GAAG,CACXrB,8CAAU,CACb;AAEDqB,MAAM,CAACC,OAAO,CAAIC,KAAK,IAAM;EACzBH,kEAAc,QAAAI,MAAA,CAASD,KAAK,CAACd,IAAI,aAAUc,KAAK,CAACN,OAAQ,CAAC;AAC9D,CAAE,CAAC;AAEH,+DAAeI,MAAM;;;;;;;;;;ACZrB;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA,eAAe,4BAA4B;WAC3C,eAAe;WACf,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA,8CAA8C;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/panels/email/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/panels/index.js","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.editPost\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.plugins\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-gutenberg.js"],"sourcesContent":["import {\n PluginDocumentSettingPanel,\n} from '@wordpress/edit-post'\nimport {\n select,\n useSelect,\n useDispatch,\n} from '@wordpress/data'\nimport {\n TextControl,\n} from '@wordpress/components'\nimport {\n __,\n} from '@wordpress/i18n'\n\nfunction EmailPanel() {\n const postType = select( 'core/editor' ).getCurrentPostType()\n\n if ( postType !== 'cwp_email' ) {\n return null\n }\n\n const { slug } = useSelect( ( select ) => {\n return {\n slug: select( 'core/editor' ).getEditedPostSlug(),\n }\n } )\n\n const { editPost } = useDispatch( 'core/editor', [slug] )\n\n return (\n \n editPost( { slug: value } ) }\n required\n />\n \n )\n}\n\nexport default {\n name: 'email',\n options: {\n icon: '',\n render: EmailPanel,\n },\n}\n","import { registerPlugin } from '@wordpress/plugins'\n\nimport EmailPanel from './email'\n\nconst panels = [\n EmailPanel,\n]\n\npanels.forEach( ( panel ) => {\n registerPlugin( `cwp-${panel.name}-panel`, panel.options )\n} )\n\nexport default panels\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.editPost;","module.exports = wp.i18n;","module.exports = wp.plugins;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import './panels'\n"],"names":["PluginDocumentSettingPanel","select","useSelect","useDispatch","TextControl","__","alias__","EmailPanel","postType","getCurrentPostType","slug","getEditedPostSlug","editPost","wp","element","createElement","name","title","label","help","type","value","onChange","required","options","icon","render","registerPlugin","panels","forEach","panel","concat"],"sourceRoot":""}
\ No newline at end of file
diff --git a/plugins/construct-wp/assets/js/construct-wp-settings.js b/plugins/construct-wp/assets/js/construct-wp-settings.js
new file mode 100644
index 0000000..f6a1326
--- /dev/null
+++ b/plugins/construct-wp/assets/js/construct-wp-settings.js
@@ -0,0 +1,793 @@
+/******/ (function() { // webpackBootstrap
+/******/ "use strict";
+/******/ var __webpack_modules__ = ({
+
+/***/ "./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx":
+/*!**************************************************************************!*\
+ !*** ./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx ***!
+ \**************************************************************************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+__webpack_require__.r(__webpack_exports__);
+function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
+const CWPLogo = props => wp.element.createElement("svg", _extends({
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 512 85.838"
+}, props), wp.element.createElement("path", {
+ fill: "var(--wp-components-color-accent-foreground)",
+ d: "M138.281 63.925c-.849.566-2.004 1.202-3.466 1.91-1.462.707-3.172 1.298-5.128 1.768-1.957.471-4.091.707-6.401.707-3.961-.047-7.533-.753-10.715-2.121-3.183-1.367-5.883-3.229-8.098-5.588-2.217-2.357-3.925-5.08-5.128-8.169-1.202-3.088-1.803-6.377-1.803-9.867 0-3.819.624-7.343 1.874-10.573 1.249-3.229 3.006-6.035 5.27-8.416 2.263-2.38 4.939-4.231 8.027-5.552 3.088-1.319 6.472-1.98 10.15-1.98 3.064 0 5.846.413 8.346 1.238 2.499.826 4.644 1.804 6.436 2.935l-2.759 6.365c-1.414-.942-3.124-1.839-5.128-2.688-2.004-.849-4.233-1.273-6.684-1.273-2.5 0-4.857.495-7.072 1.485a18.315 18.315 0 0 0-5.871 4.173c-1.697 1.793-3.03 3.879-3.996 6.26-.967 2.381-1.45 4.94-1.45 7.674 0 2.782.435 5.364 1.308 7.745.872 2.381 2.121 4.444 3.749 6.188 1.627 1.745 3.595 3.112 5.906 4.102 2.309.99 4.903 1.485 7.78 1.485 2.593 0 4.903-.4 6.931-1.202 2.027-.802 3.702-1.698 5.022-2.688l2.899 6.083ZM145.636 52.821c0-2.923.695-5.564 2.086-7.922 1.39-2.357 3.312-4.219 5.764-5.587 2.451-1.367 5.234-2.051 8.346-2.051 3.206 0 6.012.684 8.416 2.051 2.405 1.368 4.267 3.23 5.588 5.587 1.319 2.358 1.98 4.999 1.98 7.922s-.661 5.576-1.98 7.957c-1.321 2.382-3.195 4.256-5.623 5.623-2.429 1.367-5.246 2.051-8.452 2.051-3.112 0-5.883-.649-8.31-1.945-2.429-1.296-4.339-3.112-5.729-5.446-1.392-2.334-2.086-5.08-2.086-8.24Zm6.577.071c0 1.886.424 3.596 1.273 5.128.849 1.533 1.992 2.747 3.431 3.642 1.438.896 3.029 1.344 4.774 1.344 1.839 0 3.477-.447 4.915-1.344 1.438-.895 2.557-2.109 3.36-3.642.801-1.532 1.202-3.242 1.202-5.128s-.401-3.595-1.202-5.128a9.542 9.542 0 0 0-3.36-3.678c-1.439-.919-3.076-1.379-4.915-1.379-1.792 0-3.407.472-4.845 1.415a10.07 10.07 0 0 0-3.395 3.713c-.826 1.533-1.238 3.218-1.238 5.057ZM192.599 38.464l.566 7.143-.283-1.132c.943-2.169 2.476-3.901 4.598-5.199 2.121-1.296 4.573-1.945 7.355-1.945s5.057.813 6.825 2.44c1.768 1.626 2.675 3.737 2.723 6.33v21.642h-6.648V48.434c-.048-1.602-.508-2.911-1.38-3.925-.873-1.013-2.228-1.52-4.067-1.52-1.697 0-3.23.472-4.597 1.414-1.368.944-2.44 2.24-3.218 3.89-.778 1.651-1.167 3.56-1.167 5.729v13.721h-6.578V38.462h5.871ZM234.044 68.31c-2.076 0-4.091-.366-6.047-1.096-1.957-.73-3.572-1.827-4.845-3.289l2.758-3.819c1.226 1.179 2.487 2.063 3.784 2.652 1.296.59 2.581.884 3.855.884.942 0 1.814-.117 2.616-.354.802-.235 1.45-.624 1.945-1.167.495-.541.743-1.284.743-2.228 0-1.036-.343-1.862-1.026-2.475-.684-.613-1.556-1.108-2.617-1.485a52.082 52.082 0 0 0-3.359-1.061c-2.405-.801-4.244-1.91-5.517-3.324-1.273-1.415-1.91-3.135-1.91-5.163 0-1.556.389-3.006 1.167-4.35.778-1.344 1.933-2.44 3.466-3.289 1.532-.849 3.431-1.273 5.694-1.273 2.027 0 3.842.247 5.446.742 1.602.495 3.112 1.308 4.527 2.44l-2.617 4.102a7.752 7.752 0 0 0-3.041-1.98c-1.179-.424-2.24-.66-3.183-.707a5.41 5.41 0 0 0-2.299.354c-.731.283-1.333.684-1.803 1.202a2.644 2.644 0 0 0-.707 1.839c0 .99.329 1.792.99 2.405.66.614 1.52 1.097 2.581 1.45s2.109.719 3.147 1.096c1.461.424 2.758.99 3.89 1.698s2.039 1.58 2.723 2.617c.683 1.037 1.025 2.334 1.025 3.89 0 1.745-.413 3.359-1.238 4.845-.826 1.485-2.076 2.665-3.749 3.537-1.674.872-3.808 1.308-6.401 1.308ZM257.455 25.591h6.577v13.014h8.063v5.163h-8.063v23.976h-6.577V43.768h-5.376v-5.163h5.376V25.591ZM285.887 38.464l.636 8.487-.354-1.132a12.253 12.253 0 0 1 3.289-4.562c1.438-1.249 2.946-2.216 4.527-2.9 1.579-.683 2.958-1.026 4.137-1.026l-.354 6.507c-2.217-.142-4.162.283-5.835 1.273a10.984 10.984 0 0 0-3.96 3.961 10.321 10.321 0 0 0-1.45 5.305v13.367h-6.507V38.463h5.871ZM315.875 68.876c-2.642 0-4.822-.814-6.542-2.44-1.722-1.627-2.629-3.737-2.723-6.33V38.464h6.578v19.308c.094 1.604.554 2.899 1.379 3.89.824.99 2.132 1.509 3.925 1.556 1.65 0 3.123-.483 4.42-1.45 1.296-.966 2.345-2.287 3.147-3.961.801-1.673 1.202-3.572 1.202-5.693v-13.65h6.577v29.281h-6.012l-.566-7.214.354 1.273c-.566 1.368-1.427 2.582-2.582 3.642-1.156 1.061-2.511 1.899-4.067 2.511-1.556.612-3.254.919-5.092.919ZM368.99 65.057c-1.321 1.037-2.9 1.863-4.739 2.475-1.838.613-3.677.92-5.516.92-3.207 0-6.012-.637-8.416-1.91-2.405-1.273-4.279-3.052-5.623-5.34-1.344-2.286-2.016-4.986-2.016-8.098s.718-5.822 2.158-8.133c1.438-2.31 3.324-4.09 5.658-5.34 2.334-1.249 4.845-1.874 7.532-1.874 2.357 0 4.467.33 6.33.99 1.862.661 3.454 1.556 4.774 2.687l-3.253 4.244c-.849-.66-1.887-1.249-3.112-1.768-1.226-.518-2.616-.778-4.173-.778a8.904 8.904 0 0 0-4.703 1.308 9.324 9.324 0 0 0-3.395 3.572c-.826 1.509-1.238 3.207-1.238 5.092 0 1.792.424 3.455 1.273 4.986a9.28 9.28 0 0 0 3.536 3.607c1.509.873 3.23 1.308 5.163 1.308 1.273 0 2.44-.188 3.501-.566a10.147 10.147 0 0 0 2.864-1.556l3.395 4.173ZM380.307 25.591h6.577v13.014h8.063v5.163h-8.063v23.976h-6.577V43.768h-5.376v-5.163h5.376V25.591ZM399.402 16.043h12.024l11.104 32.676-1.627-.707 9.689-24.118 4.739 14.075-14.994 32.18-20.935-54.106Zm26.098 0h10.185l12.802 31.615-1.839-.283 9.548-31.332h11.033l-20.087 53.965L425.5 16.043ZM491.984 15.689c4.29 0 7.922.719 10.892 2.157 2.971 1.439 5.234 3.466 6.79 6.083S512 29.647 512 33.23c0 2.122-.318 4.256-.955 6.401a17.05 17.05 0 0 1-3.041 5.835c-1.391 1.745-3.253 3.147-5.588 4.208-2.334 1.061-5.198 1.591-8.593 1.591h-7.355v16.48h-10.255V15.689h15.772Zm1.768 25.603c1.556 0 2.852-.27 3.89-.813 1.037-.541 1.85-1.225 2.44-2.051a8.507 8.507 0 0 0 1.273-2.582c.258-.895.389-1.673.389-2.334 0-.518-.083-1.213-.247-2.086-.166-.872-.507-1.756-1.025-2.652-.52-.895-1.308-1.65-2.369-2.263-1.061-.612-2.488-.919-4.279-.919h-7.355v15.701h7.285Z"
+}), wp.element.createElement("circle", {
+ cx: 42.919,
+ cy: 42.919,
+ r: 42.919,
+ fill: "var(--wp-components-color-accent)"
+}), wp.element.createElement("path", {
+ fill: "var(--wp-components-color-accent-inverted)",
+ d: "m38.6 40.059-8.451 3.261 8.451 3.261v1.976l-10.665-4.213v-2.047L38.6 38.083v1.976ZM47.383 31.608h2.071l-7.856 22.425h-2.071l7.856-22.425ZM60.831 42.297v2.047l-10.665 4.213v-1.976l8.475-3.261-8.475-3.261v-1.976l10.665 4.214Z"
+}), wp.element.createElement("path", {
+ fill: "var(--wp-components-color-accent-inverted)",
+ d: "M62.66 53.35c-3.762 7.177-11.278 12.076-19.943 12.076-12.43 0-22.507-10.077-22.507-22.507s10.077-22.507 22.507-22.507c8.665 0 16.181 4.899 19.943 12.076l8.341-5.04c-5.476-9.99-16.088-16.764-28.284-16.764-17.803 0-32.236 14.432-32.236 32.236s14.432 32.236 32.236 32.236c12.196 0 22.808-6.775 28.284-16.764l-8.341-5.04Z"
+}));
+/* harmony default export */ __webpack_exports__["default"] = (CWPLogo);
+
+/***/ }),
+
+/***/ "./plugins/construct-wp/src/gutenberg/components/index.js":
+/*!****************************************************************!*\
+ !*** ./plugins/construct-wp/src/gutenberg/components/index.js ***!
+ \****************************************************************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ CWPLogo: function() { return /* reexport safe */ _cwp_logo__WEBPACK_IMPORTED_MODULE_0__["default"]; },
+/* harmony export */ Notices: function() { return /* reexport safe */ _notices__WEBPACK_IMPORTED_MODULE_1__["default"]; }
+/* harmony export */ });
+/* harmony import */ var _cwp_logo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cwp-logo */ "./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx");
+/* harmony import */ var _notices__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./notices */ "./plugins/construct-wp/src/gutenberg/components/notices/index.jsx");
+
+
+
+/***/ }),
+
+/***/ "./plugins/construct-wp/src/gutenberg/components/notices/index.jsx":
+/*!*************************************************************************!*\
+ !*** ./plugins/construct-wp/src/gutenberg/components/notices/index.jsx ***!
+ \*************************************************************************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
+/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
+/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _wordpress_notices__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/notices */ "@wordpress/notices");
+/* harmony import */ var _wordpress_notices__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_notices__WEBPACK_IMPORTED_MODULE_2__);
+
+
+
+const Notices = () => {
+ const notices = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_wordpress_notices__WEBPACK_IMPORTED_MODULE_2__.store).getNotices().filter(notice => notice.type === 'snackbar'), []);
+ const {
+ removeNotice
+ } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_wordpress_notices__WEBPACK_IMPORTED_MODULE_2__.store);
+ return wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.SnackbarList, {
+ className: "edit-site-notices",
+ notices: notices,
+ onRemove: removeNotice
+ });
+};
+/* harmony default export */ __webpack_exports__["default"] = (Notices);
+
+/***/ }),
+
+/***/ "./plugins/construct-wp/src/gutenberg/pages/index.js":
+/*!***********************************************************!*\
+ !*** ./plugins/construct-wp/src/gutenberg/pages/index.js ***!
+ \***********************************************************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ SettingsPage: function() { return /* reexport safe */ _settings__WEBPACK_IMPORTED_MODULE_0__["default"]; }
+/* harmony export */ });
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings */ "./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx");
+/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/hooks */ "@wordpress/hooks");
+/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _settings_tabs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settings/tabs */ "./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js");
+
+
+
+(0,_wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.addFilter)('cwpTabs', 'cwpCore', () => {
+ return [_settings_tabs__WEBPACK_IMPORTED_MODULE_2__.generalTab, _settings_tabs__WEBPACK_IMPORTED_MODULE_2__.optimizeTab];
+}, 1);
+
+/***/ }),
+
+/***/ "./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx":
+/*!*********************************************************************!*\
+ !*** ./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx ***!
+ \*********************************************************************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
+/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/hooks */ "@wordpress/hooks");
+/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
+/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
+/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components */ "./plugins/construct-wp/src/gutenberg/components/index.js");
+function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
+function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
+
+
+
+
+const __ = _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__;
+
+class SettingsPage extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component {
+ constructor() {
+ super();
+ _defineProperty(this, "tabs", []);
+ _defineProperty(this, "panels", {});
+ _defineProperty(this, "siteUrl", '');
+ _defineProperty(this, "currentTab", '');
+ this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp';
+
+ /**
+ * Must return as follows:
+ * [
+ * {
+ * tab: {
+ * name: 'tab1',
+ * title: 'Tab 1',
+ * },
+ * panel: TabPanel,
+ * },
+ * ]
+ */
+ let tabDetails = (0,_wordpress_hooks__WEBPACK_IMPORTED_MODULE_2__.applyFilters)('cwpTabs', []);
+ this.tabs = tabDetails.map(tab => tab.tab);
+ tabDetails.forEach(tab => {
+ this.panels[tab.tab.name] = tab.panel;
+ });
+ const urlParams = new URLSearchParams(window.location.search);
+ const requested = urlParams.get('page').replace('construct-wp', '').replace(/^-/, '');
+ this.currentTab = typeof requested === 'string' ? requested : '';
+ }
+ render() {
+ // return <>>
+ return wp.element.createElement(React.Fragment, null, wp.element.createElement("div", {
+ className: "construct-wp__header"
+ }, wp.element.createElement("div", {
+ className: "construct-wp__container"
+ }, wp.element.createElement("div", {
+ className: "construct-wp__title"
+ }, wp.element.createElement(_components__WEBPACK_IMPORTED_MODULE_4__.CWPLogo, {
+ title: __('ConstructWP', 'construct-wp'),
+ className: "construct-wp__logo"
+ }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.VisuallyHidden, null, __('ConstructWP', 'construct-wp')), wp.element.createElement("span", {
+ className: "construct-wp__version-badge"
+ }, "v", cwpSettingsData.version)), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.TabPanel, {
+ tabs: this.tabs,
+ initialTabName: this.currentTab,
+ onSelect: tabName => {
+ if (tabName !== this.currentTab) {
+ window.location.href = "".concat(this.siteUrl, "-").concat(tabName);
+ }
+ }
+ }, () => {}))), wp.element.createElement("div", {
+ className: "construct-wp__main"
+ }, wp.element.createElement("div", {
+ className: "construct-wp__container"
+ }, !this.currentTab && wp.element.createElement("div", {
+ className: "construct-wp__loading-spinner"
+ }), Object.entries(this.panels).map((_ref, i) => {
+ let [panelName, Panel] = _ref;
+ if (this.currentTab === panelName) {
+ return wp.element.createElement("div", {
+ id: 'cwp-' + panelName,
+ className: "construct-wp__tab-panel",
+ key: i
+ }, wp.element.createElement(Panel, null));
+ }
+ return wp.element.createElement(React.Fragment, null);
+ }))), wp.element.createElement("div", {
+ className: "construct-wp__notices"
+ }, wp.element.createElement(_components__WEBPACK_IMPORTED_MODULE_4__.Notices, null)));
+ }
+}
+/* harmony default export */ __webpack_exports__["default"] = (SettingsPage);
+
+/***/ }),
+
+/***/ "./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx":
+/*!**********************************************************************************!*\
+ !*** ./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx ***!
+ \**********************************************************************************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
+/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
+/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
+/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
+
+
+
+
+
+// eslint-disable-next-line new-cap
+const __ = _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__;
+const htmlToElem = html => (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.RawHTML)({
+ children: html
+});
+class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component {
+ constructor() {
+ super();
+ this.state = {
+ isAPILoaded: false,
+ isAPISaving: false,
+ removeAdminBar: true,
+ restrictAdminAccess: true,
+ controllers: true,
+ baseStyles: true,
+ baseScripts: true,
+ templateStyles: true,
+ templateScripts: true,
+ autoIncludeThemeClasses: true,
+ autoRunThemeClasses: true,
+ themeTextdomain: true,
+ footerColumnCount: 3
+ };
+ }
+ componentDidMount() {
+ wp.api.loadPromise.then(() => {
+ this.settings = new wp.api.models.Settings();
+ if (!this.state.isAPILoaded) {
+ this.settings.fetch().then(response => {
+ this.setState({
+ isAPILoaded: true,
+ removeAdminBar: !!response.cwp_remove_admin_bar,
+ restrictAdminAccess: !!response.cwp_restrict_admin_access,
+ controllers: !!response.cwp_controllers,
+ baseStyles: !!response.cwp_base_styles,
+ baseScripts: !!response.cwp_base_scripts,
+ templateStyles: !!response.cwp_template_styles,
+ templateScripts: !!response.cwp_template_scripts,
+ autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes,
+ autoRunThemeClasses: !!response.cwp_auto_run_theme_classes,
+ themeTextdomain: !!response.cwp_theme_textdomain,
+ footerColumnCount: response.cwp_footer_column_count
+ });
+ });
+ }
+ });
+ }
+ render() {
+ if (!this.state.isAPILoaded) {
+ return wp.element.createElement(React.Fragment, null, wp.element.createElement("h2", null, __('General', 'construct-wp')), wp.element.createElement("div", {
+ className: "construct-wp__loading-spinner"
+ }));
+ }
+ return wp.element.createElement(React.Fragment, null, wp.element.createElement("h2", null, __('General', 'construct-wp')), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
+ label: __('Remove admin bar', 'construct-wp'),
+ help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - The capability in a code tag */
+ __('Removes the admin bar from the frontend if the user doesn\'t have the %s capability', 'construct-wp'), 'cwp_view_admin_dashboard
')),
+ checked: this.state.removeAdminBar,
+ onChange: () => {
+ this.setState({
+ removeAdminBar: !this.state.removeAdminBar
+ });
+ },
+ disabled: this.state.isAPISaving
+ }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
+ label: __('Restrict admin access', 'construct-wp'),
+ help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - The capability in a code tag */
+ __('Redirects users to the frontend if they try to access the admin area without the %s capability', 'construct-wp'), 'cwp_view_admin_dashboard
')),
+ checked: this.state.restrictAdminAccess,
+ onChange: () => {
+ this.setState({
+ restrictAdminAccess: !this.state.restrictAdminAccess
+ });
+ },
+ disabled: this.state.isAPISaving
+ }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
+ label: __('Enable controllers', 'construct-wp'),
+ help: __('Enables controllers on the frontend based on the current template file', 'construct-wp'),
+ checked: this.state.controllers,
+ onChange: () => {
+ this.setState({
+ controllers: !this.state.controllers
+ });
+ },
+ disabled: this.state.isAPISaving
+ }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
+ label: __('Auto-enqueue theme styles', 'construct-wp'),
+ help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - An example theme style path */
+ __('Automatically enqueues the theme\'s styles based on the parent and child theme names. e.g. %s', 'construct-wp'), '/assets/css/theme-name.css
')),
+ checked: this.state.baseStyles,
+ onChange: () => {
+ this.setState({
+ baseStyles: !this.state.baseStyles
+ });
+ },
+ disabled: this.state.isAPISaving
+ }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
+ label: __('Auto-enqueue theme scripts', 'construct-wp'),
+ help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - An example theme script path */
+ __('Automatically enqueues the theme\'s scripts based on the parent and child theme names. e.g. %s', 'construct-wp'), '/assets/js/theme-name.js
')),
+ checked: this.state.baseScripts,
+ onChange: () => {
+ this.setState({
+ baseScripts: !this.state.baseScripts
+ });
+ },
+ disabled: this.state.isAPISaving
+ }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
+ label: __('Auto-enqueue template styles', 'construct-wp'),
+ help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - An example template style path */
+ __('Automatically enqueues a template\'s styles based on the template name. e.g. %s', 'construct-wp'), '/assets/css/templates/template-name.css
')),
+ checked: this.state.templateStyles,
+ onChange: () => {
+ this.setState({
+ templateStyles: !this.state.templateStyles
+ });
+ },
+ disabled: this.state.isAPISaving
+ }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
+ label: __('Auto-enqueue template scripts', 'construct-wp'),
+ help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - An example template script path */
+ __('Automatically enqueues a template\'s scripts based on the template name. e.g. %s', 'construct-wp'), '/assets/js/templates/template-name.js
')),
+ checked: this.state.templateScripts,
+ onChange: () => {
+ this.setState({
+ templateScripts: !this.state.templateScripts
+ });
+ },
+ disabled: this.state.isAPISaving
+ }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
+ label: __('Auto-include theme classes', 'construct-wp'),
+ help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - the models directory */
+ __('Automatically includes classes within the theme\'s %s directory', 'construct-wp'), '/models
')),
+ checked: this.state.autoIncludeThemeClasses,
+ onChange: () => {
+ this.setState({
+ autoIncludeThemeClasses: !this.state.autoIncludeThemeClasses
+ });
+ },
+ disabled: this.state.isAPISaving
+ }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
+ label: __('Auto-run theme classes', 'construct-wp'),
+ help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %1$s - the models directory. %2$s - The init method name */
+ __('Automatically runs classes within the theme\'s %1$s directory if they have a public %2$s method', 'construct-wp'), '/models
', 'init
')),
+ checked: this.state.autoRunThemeClasses,
+ onChange: () => {
+ this.setState({
+ autoRunThemeClasses: !this.state.autoRunThemeClasses
+ });
+ },
+ disabled: this.state.isAPISaving
+ }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
+ label: __('Auto-load theme textdomain', 'construct-wp'),
+ help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - The languages directory */
+ __('Automatically loads a theme\'s textdomain based on the theme name. Language files must be located in %s of the theme\'s directory', 'construct-wp'), '/languages
')),
+ checked: this.state.themeTextdomain,
+ onChange: () => {
+ this.setState({
+ themeTextdomain: !this.state.themeTextdomain
+ });
+ },
+ disabled: this.state.isAPISaving
+ }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.TextControl, {
+ label: __('Footer columns', 'construct-wp'),
+ help: __('The number of footer widget areas to create', 'construct-wp'),
+ type: "number",
+ value: this.state.footerColumnCount,
+ onChange: value => {
+ this.setState({
+ footerColumnCount: value
+ });
+ },
+ disabled: this.state.isAPISaving
+ }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
+ variant: "primary",
+ disabled: this.state.isAPISaving,
+ isBusy: this.state.isAPISaving,
+ className: "components-submit-button",
+ onClick: () => {
+ this.setState({
+ isAPISaving: true
+ });
+ const settings = new wp.api.models.Settings({
+ /* eslint-disable camelcase */
+ cwp_remove_admin_bar: this.state.removeAdminBar,
+ cwp_restrict_admin_access: this.state.restrictAdminAccess,
+ cwp_controllers: this.state.controllers,
+ cwp_base_styles: this.state.baseStyles,
+ cwp_base_scripts: this.state.baseScripts,
+ cwp_template_styles: this.state.templateStyles,
+ cwp_template_scripts: this.state.templateScripts,
+ cwp_auto_include_theme_classes: this.state.autoIncludeThemeClasses,
+ cwp_auto_run_theme_classes: this.state.autoRunThemeClasses,
+ cwp_theme_textdomain: this.state.themeTextdomain,
+ cwp_footer_column_count: this.state.footerColumnCount
+ /* eslint-enable camelcase */
+ });
+
+ settings.save().then(response => {
+ this.setState({
+ isAPISaving: false,
+ removeAdminBar: !!response.cwp_remove_admin_bar,
+ restrictAdminAccess: !!response.cwp_restrict_admin_access,
+ controllers: !!response.cwp_controllers,
+ baseStyles: !!response.cwp_base_styles,
+ baseScripts: !!response.cwp_base_scripts,
+ templateStyles: !!response.cwp_template_styles,
+ templateScripts: !!response.cwp_template_scripts,
+ autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes,
+ autoRunThemeClasses: !!response.cwp_auto_run_theme_classes,
+ themeTextdomain: !!response.cwp_theme_textdomain,
+ footerColumnCount: response.cwp_footer_column_count
+ });
+ (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createSuccessNotice(__('Settings saved!', 'construct-wp'), {
+ type: 'snackbar',
+ speak: true,
+ isDismissible: true,
+ icon: 'ï…ž'
+ });
+ }).catch(() => {
+ (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createErrorNotice(__('Unable to save settings', 'construct-wp'), {
+ type: 'snackbar',
+ speak: true,
+ isDismissible: true,
+ icon: ''
+ });
+ });
+ }
+ }, __('Save', 'construct-wp')));
+ }
+}
+/* harmony default export */ __webpack_exports__["default"] = ({
+ tab: {
+ name: 'general',
+ title: __('General', 'construct-wp')
+ },
+ panel: GeneralTab
+});
+
+/***/ }),
+
+/***/ "./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js":
+/*!*************************************************************************!*\
+ !*** ./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js ***!
+ \*************************************************************************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ generalTab: function() { return /* reexport safe */ _general__WEBPACK_IMPORTED_MODULE_0__["default"]; },
+/* harmony export */ optimizeTab: function() { return /* reexport safe */ _optimize__WEBPACK_IMPORTED_MODULE_1__["default"]; }
+/* harmony export */ });
+/* harmony import */ var _general__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./general */ "./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx");
+/* harmony import */ var _optimize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./optimize */ "./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx");
+
+
+
+/***/ }),
+
+/***/ "./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx":
+/*!***********************************************************************************!*\
+ !*** ./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx ***!
+ \***********************************************************************************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
+/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
+/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
+/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
+
+
+
+
+const __ = _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__;
+class OptimizeTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component {
+ constructor() {
+ super();
+ this.state = {
+ isAPILoaded: false,
+ isAPISaving: false,
+ optimize: true,
+ wpBloat: {},
+ dashboardMeta: {}
+ };
+ }
+ componentDidMount() {
+ wp.api.loadPromise.then(() => {
+ this.settings = new wp.api.models.Settings();
+ if (!this.state.isAPILoaded) {
+ this.settings.fetch().then(response => {
+ this.setState({
+ isAPILoaded: true,
+ optimize: !!response.cwp_optimize,
+ wpBloat: response.cwp_optimize_wp_bloat,
+ dashboardMeta: response.cwp_optimize_dashboard_meta
+ });
+ });
+ }
+ });
+ }
+ selectAll(state) {
+ const isAllChecked = Object.values(this.state[state]).every(Boolean);
+ const isIndeterminate = Object.values(this.state[state]).some(Boolean) && !isAllChecked;
+ return wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.CheckboxControl, {
+ label: __('Select all', 'construct-wp'),
+ checked: isAllChecked,
+ indeterminate: isIndeterminate,
+ onChange: value => {
+ let newState = this.state[state];
+ for (const key in newState) {
+ if (Object.prototype.hasOwnProperty.call(newState, key)) {
+ newState[key] = value;
+ }
+ }
+ this.setState({
+ [state]: newState
+ });
+ }
+ });
+ }
+ checkbox(area, item, title) {
+ return wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.CheckboxControl, {
+ label: title,
+ checked: this.state[area][item],
+ onChange: () => {
+ this.setState({
+ [area]: {
+ ...this.state[area],
+ [item]: !this.state[area][item]
+ }
+ });
+ },
+ disabled: this.state.isAPISaving
+ });
+ }
+ render() {
+ if (!this.state.isAPILoaded) {
+ return wp.element.createElement(React.Fragment, null, wp.element.createElement("h2", null, __('Optimize', 'construct-wp')), wp.element.createElement("div", {
+ className: "construct-wp__loading-spinner"
+ }));
+ }
+ return wp.element.createElement(React.Fragment, null, wp.element.createElement("div", null, wp.element.createElement("h2", null, __('Optimize', 'construct-wp')), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, {
+ label: __('Optimize', 'construct-wp'),
+ help: __('Whether to optimize the site to remove bloat', 'construct-wp'),
+ checked: this.state.optimize,
+ onChange: () => {
+ this.setState({
+ optimize: !this.state.optimize
+ });
+ },
+ disabled: this.state.isAPISaving
+ })), this.state.optimize && wp.element.createElement(React.Fragment, null, wp.element.createElement("h4", null, "Remove bloat"), wp.element.createElement("hr", null), wp.element.createElement("div", {
+ className: "construct-wp__section"
+ }, wp.element.createElement("h5", null, __('WordPress', 'construct-wp')), this.selectAll('wpBloat'), wp.element.createElement("div", {
+ className: "construct-wp__checklist"
+ }, this.checkbox('wpBloat', 'feeds', __('Feeds', 'construct-wp')), this.checkbox('wpBloat', 'rsd_link', __('Really Simple Directory link', 'construct-wp')), this.checkbox('wpBloat', 'rel_atts', __('Relational attributes', 'construct-wp')), this.checkbox('wpBloat', 'rel_links', __('Relational links', 'construct-wp')), this.checkbox('wpBloat', 'version_number', __('Version numbers', 'construct-wp')), this.checkbox('wpBloat', 'json_api_links', __('JSON API links', 'construct-wp')), this.checkbox('wpBloat', 'emoji', __('Emoji', 'construct-wp')), this.checkbox('wpBloat', 'xmlrpc', __('XML-RPC', 'construct-wp')), this.checkbox('wpBloat', 'jquery_migrate', __('jQuery migrate', 'construct-wp')), this.checkbox('wpBloat', 'self_pingback', __('Self pingback', 'construct-wp')))), wp.element.createElement("div", {
+ className: "construct-wp__section"
+ }, wp.element.createElement("h5", null, __('Dashboard meta boxes', 'construct-wp')), this.selectAll('dashboardMeta'), wp.element.createElement("div", {
+ className: "construct-wp__checklist"
+ }, this.checkbox('dashboardMeta', 'welcome', __('Welcome panel', 'construct-wp')), this.checkbox('dashboardMeta', 'site_health', __('Site health', 'construct-wp')), this.checkbox('dashboardMeta', 'at_a_glance', __('At a glance', 'construct-wp')), this.checkbox('dashboardMeta', 'activity', __('Activity', 'construct-wp')), this.checkbox('dashboardMeta', 'quick_draft', __('Quick draft', 'construct-wp')), this.checkbox('dashboardMeta', 'events_and_news', __('Events and news', 'construct-wp'))))), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
+ variant: "primary",
+ disabled: this.state.isAPISaving,
+ isBusy: this.state.isAPISaving,
+ className: "components-submit-button",
+ onClick: () => {
+ this.setState({
+ isAPISaving: true
+ });
+ const settings = new wp.api.models.Settings({
+ /* eslint-disable camelcase */
+ cwp_optimize: this.state.optimize,
+ cwp_optimize_wp_bloat: this.state.wpBloat,
+ cwp_optimize_dashboard_meta: this.state.dashboardMeta
+ /* eslint-enable camelcase */
+ });
+
+ settings.save().then(response => {
+ this.setState({
+ isAPISaving: false,
+ optimize: !!response.cwp_optimize,
+ wpBloat: response.cwp_optimize_wp_bloat,
+ dashboardMeta: response.cwp_optimize_dashboard_meta
+ });
+ (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createSuccessNotice(__('Settings saved!', 'construct-wp'), {
+ type: 'snackbar',
+ speak: true,
+ isDismissible: true,
+ icon: 'ï…ž'
+ });
+ }).catch(() => {
+ (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createErrorNotice(__('Unable to save settings', 'construct-wp'), {
+ type: 'snackbar',
+ speak: true,
+ isDismissible: true,
+ icon: ''
+ });
+ });
+ }
+ }, __('Save', 'construct-wp')));
+ }
+}
+/* harmony default export */ __webpack_exports__["default"] = ({
+ tab: {
+ name: 'optimize',
+ title: __('Optimize', 'construct-wp')
+ },
+ panel: OptimizeTab
+});
+
+/***/ }),
+
+/***/ "@wordpress/components":
+/*!********************************!*\
+ !*** external "wp.components" ***!
+ \********************************/
+/***/ (function(module) {
+
+module.exports = wp.components;
+
+/***/ }),
+
+/***/ "@wordpress/data":
+/*!**************************!*\
+ !*** external "wp.data" ***!
+ \**************************/
+/***/ (function(module) {
+
+module.exports = wp.data;
+
+/***/ }),
+
+/***/ "@wordpress/element":
+/*!*****************************!*\
+ !*** external "wp.element" ***!
+ \*****************************/
+/***/ (function(module) {
+
+module.exports = wp.element;
+
+/***/ }),
+
+/***/ "@wordpress/hooks":
+/*!***************************!*\
+ !*** external "wp.hooks" ***!
+ \***************************/
+/***/ (function(module) {
+
+module.exports = wp.hooks;
+
+/***/ }),
+
+/***/ "@wordpress/i18n":
+/*!**************************!*\
+ !*** external "wp.i18n" ***!
+ \**************************/
+/***/ (function(module) {
+
+module.exports = wp.i18n;
+
+/***/ }),
+
+/***/ "@wordpress/notices":
+/*!*****************************!*\
+ !*** external "wp.notices" ***!
+ \*****************************/
+/***/ (function(module) {
+
+module.exports = wp.notices;
+
+/***/ })
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/compat get default export */
+/******/ !function() {
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function() { return module['default']; } :
+/******/ function() { return module; };
+/******/ __webpack_require__.d(getter, { a: getter });
+/******/ return getter;
+/******/ };
+/******/ }();
+/******/
+/******/ /* webpack/runtime/define property getters */
+/******/ !function() {
+/******/ // define getter functions for harmony exports
+/******/ __webpack_require__.d = function(exports, definition) {
+/******/ for(var key in definition) {
+/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ }
+/******/ }
+/******/ };
+/******/ }();
+/******/
+/******/ /* webpack/runtime/hasOwnProperty shorthand */
+/******/ !function() {
+/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
+/******/ }();
+/******/
+/******/ /* webpack/runtime/make namespace object */
+/******/ !function() {
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/ }();
+/******/
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
+!function() {
+/*!*********************************************************************!*\
+ !*** ./plugins/construct-wp/src/gutenberg/construct-wp-settings.js ***!
+ \*********************************************************************/
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _pages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pages */ "./plugins/construct-wp/src/gutenberg/pages/index.js");
+
+
+document.addEventListener('DOMContentLoaded', () => {
+ const htmlOutput = document.getElementById('construct-wp-settings');
+ if (htmlOutput) {
+ (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.render)(wp.element.createElement(_pages__WEBPACK_IMPORTED_MODULE_1__.SettingsPage, null), htmlOutput);
+ }
+});
+}();
+/******/ })()
+;
+//# sourceMappingURL=construct-wp-settings.js.map
\ No newline at end of file
diff --git a/plugins/construct-wp/assets/js/construct-wp-settings.js.map b/plugins/construct-wp/assets/js/construct-wp-settings.js.map
new file mode 100644
index 0000000..6eac0d2
--- /dev/null
+++ b/plugins/construct-wp/assets/js/construct-wp-settings.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"construct-wp-settings.js","mappings":"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","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/notices/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.element\"","webpack://construct-wp/external var \"wp.hooks\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.notices\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-settings.js"],"sourcesContent":["const CWPLogo = ( props ) => (\n \n)\n\nexport default CWPLogo\n","export { default as CWPLogo } from './cwp-logo'\nexport { default as Notices } from './notices'\n","import {\n SnackbarList,\n} from '@wordpress/components'\nimport {\n useDispatch,\n useSelect,\n} from '@wordpress/data'\nimport {\n store as noticesStore,\n} from '@wordpress/notices'\n\nconst Notices = () => {\n const notices = useSelect(\n ( select ) =>\n select( noticesStore )\n .getNotices()\n .filter( ( notice ) => notice.type === 'snackbar' ),\n []\n )\n\n const { removeNotice } = useDispatch( noticesStore )\n\n return (\n \n )\n}\n\nexport default Notices\n","export { default as SettingsPage } from './settings'\n\nimport {\n addFilter,\n} from '@wordpress/hooks'\nimport {\n generalTab,\n optimizeTab,\n} from './settings/tabs'\n\naddFilter( 'cwpTabs', 'cwpCore', () => {\n return [\n generalTab,\n optimizeTab,\n ]\n}, 1 )\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n TabPanel,\n VisuallyHidden,\n} from '@wordpress/components'\nimport {\n applyFilters,\n} from '@wordpress/hooks'\nimport {\n __,\n} from '@wordpress/i18n'\nimport {\n CWPLogo,\n Notices,\n} from '../../components'\n\nclass SettingsPage extends Component {\n tabs = []\n panels = {}\n siteUrl = ''\n currentTab = ''\n\n constructor() {\n super()\n\n this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp'\n\n /**\n * Must return as follows:\n * [\n * {\n * tab: {\n * name: 'tab1',\n * title: 'Tab 1',\n * },\n * panel: TabPanel,\n * },\n * ]\n */\n let tabDetails = applyFilters( 'cwpTabs', [] )\n this.tabs = tabDetails.map( ( tab ) => tab.tab )\n\n tabDetails.forEach( ( tab ) => {\n this.panels[tab.tab.name] = tab.panel\n } )\n\n const urlParams = new URLSearchParams( window.location.search )\n const requested = urlParams.get( 'page' ).replace( 'construct-wp', '' ).replace( /^-/, '' )\n\n this.currentTab = typeof requested === 'string' ? requested : ''\n }\n\n render() {\n // return <>>\n return (\n <>\n \n
\n
\n \n \n { __( 'ConstructWP', 'construct-wp' ) }\n \n v{cwpSettingsData.version}\n
\n\n
{\n if ( tabName !== this.currentTab ) {\n window.location.href = `${this.siteUrl}-${tabName}`\n }\n }}\n >\n { () => {} }\n \n
\n
\n\n \n
\n {!this.currentTab &&
}\n {Object.entries( this.panels ).map( ( [panelName, Panel], i ) => {\n if ( this.currentTab === panelName ) {\n return (\n
\n )\n }\n\n return <>>\n } )}\n
\n
\n\n \n \n
\n >\n )\n }\n}\n\nexport default SettingsPage\n","import {\n Component,\n RawHTML,\n} from '@wordpress/element'\nimport {\n Button,\n TextControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n sprintf,\n} from '@wordpress/i18n'\n\n// eslint-disable-next-line new-cap\nconst htmlToElem = ( html ) => RawHTML( { children: html } )\n\nclass GeneralTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n removeAdminBar: true,\n restrictAdminAccess: true,\n controllers: true,\n baseStyles: true,\n baseScripts: true,\n templateStyles: true,\n templateScripts: true,\n autoIncludeThemeClasses: true,\n autoRunThemeClasses: true,\n themeTextdomain: true,\n footerColumnCount: 3,\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes,\n autoRunThemeClasses: !!response.cwp_auto_run_theme_classes,\n themeTextdomain: !!response.cwp_theme_textdomain,\n footerColumnCount: response.cwp_footer_column_count,\n } )\n } )\n }\n } )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n {__( 'General', 'construct-wp' )}
\n \n >\n )\n }\n\n return (\n <>\n {__( 'General', 'construct-wp' )}
\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.removeAdminBar}\n onChange={() => {\n this.setState( {\n removeAdminBar: !this.state.removeAdminBar,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.restrictAdminAccess}\n onChange={() => {\n this.setState( {\n restrictAdminAccess: !this.state.restrictAdminAccess,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n controllers: !this.state.controllers,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/theme-name.css'\n ) )}\n checked={this.state.baseStyles}\n onChange={() => {\n this.setState( {\n baseStyles: !this.state.baseStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/theme-name.js'\n ) )}\n checked={this.state.baseScripts}\n onChange={() => {\n this.setState( {\n baseScripts: !this.state.baseScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/templates/template-name.css'\n ) )}\n checked={this.state.templateStyles}\n onChange={() => {\n this.setState( {\n templateStyles: !this.state.templateStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/templates/template-name.js'\n ) )}\n checked={this.state.templateScripts}\n onChange={() => {\n this.setState( {\n templateScripts: !this.state.templateScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /models'\n ) )}\n checked={this.state.autoIncludeThemeClasses}\n onChange={() => {\n this.setState( {\n autoIncludeThemeClasses: !this.state.autoIncludeThemeClasses,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /models',\n 'init
'\n ) )}\n checked={this.state.autoRunThemeClasses}\n onChange={() => {\n this.setState( {\n autoRunThemeClasses: !this.state.autoRunThemeClasses,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /languages'\n ) )}\n checked={this.state.themeTextdomain}\n onChange={() => {\n this.setState( {\n themeTextdomain: !this.state.themeTextdomain,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n footerColumnCount: value,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n \n >\n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n {__( 'Optimize', 'construct-wp' )}
\n \n >\n )\n }\n\n return (\n <>\n \n
{__( 'Optimize', 'construct-wp' )}
\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n \n\n {this.state.optimize && (\n <>\n Remove bloat
\n\n
\n\n \n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n\n \n
{__( 'Dashboard meta boxes', 'construct-wp' )}
\n\n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n >\n )}\n\n \n >\n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","alias__","constructor","_defineProperty","siteUrl","window","location","origin","pathname","tabDetails","tabs","map","tab","forEach","panels","name","panel","urlParams","URLSearchParams","search","requested","get","replace","currentTab","render","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","href","concat","Object","entries","_ref","i","panelName","Panel","id","key","RawHTML","Button","TextControl","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","state","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","controllers","baseStyles","baseScripts","templateStyles","templateScripts","autoIncludeThemeClasses","autoRunThemeClasses","themeTextdomain","footerColumnCount","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","setState","cwp_remove_admin_bar","cwp_restrict_admin_access","cwp_controllers","cwp_base_styles","cwp_base_scripts","cwp_template_styles","cwp_template_scripts","cwp_auto_include_theme_classes","cwp_auto_run_theme_classes","cwp_theme_textdomain","cwp_footer_column_count","label","help","checked","onChange","disabled","value","variant","isBusy","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","newState","prototype","hasOwnProperty","call","checkbox","area","item","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""}
\ No newline at end of file
diff --git a/plugins/construct-wp/construct-wp.php b/plugins/construct-wp/construct-wp.php
index fdf6a61..feacc54 100644
--- a/plugins/construct-wp/construct-wp.php
+++ b/plugins/construct-wp/construct-wp.php
@@ -3,7 +3,7 @@
* Plugin Name: ConstructWP
* Plugin URI: https://github.com/apalfrey/construct-wp
* Description: ConstructWP is a framework system to allow for easier development as well as useful tools and addons.
- * Version: 0.1.1
+ * Version: 0.2.0
* Requires at least: 5.4.0
* Requires PHP: 7.4
* Author: APalfrey
@@ -32,12 +32,14 @@
* * Plugin directory url
* * Plugin basename
*/
-define( 'CWP_VERSION', '0.1.1' );
+define( 'CWP_VERSION', '0.2.0' );
define( 'CWP_SLUG', 'construct-wp' );
define( 'CWP_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
define( 'CWP_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'CWP_BASENAME', plugin_basename( __FILE__ ) );
+// TODO remove activator?
+
/**
* The code that runs during plugin activation.
*/
@@ -46,6 +48,8 @@ function activate_construct_wp() {
CWP_Activator::activate();
}
+// TODO remove deactivator?
+
/**
* The code that runs during plugin deactivation.
*/
diff --git a/plugins/construct-wp/languages/construct-wp-en_GB.mo b/plugins/construct-wp/languages/construct-wp-en_GB.mo
new file mode 100644
index 0000000..018d1d4
Binary files /dev/null and b/plugins/construct-wp/languages/construct-wp-en_GB.mo differ
diff --git a/plugins/construct-wp/languages/construct-wp-en_GB.po b/plugins/construct-wp/languages/construct-wp-en_GB.po
new file mode 100644
index 0000000..6535acf
--- /dev/null
+++ b/plugins/construct-wp/languages/construct-wp-en_GB.po
@@ -0,0 +1,215 @@
+# Copyright (C) 2023 ConstructWP
+# This file is distributed under the same license as the ConstructWP package.
+msgid ""
+msgstr ""
+"Project-Id-Version: ConstructWP\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-19 15:20+0000\n"
+"PO-Revision-Date: \n"
+"Last-Translator: Andrew Palfrey \n"
+"Language-Team: Andrew Palfrey \n"
+"Language: en_GB\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Basepath: ..\n"
+"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;"
+"_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;"
+"esc_html__;esc_html_e;esc_html_x:1,2c\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+"X-Generator: Poedit 3.4\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPathExcluded-0: *.js\n"
+
+#: models/class-construct-wp-email.php:66,
+#: models/class-construct-wp-email.php:69
+msgid "Email"
+msgstr "Email"
+
+#: models/class-construct-wp-email.php:68
+msgid "Emails"
+msgstr "Emails"
+
+#: models/class-construct-wp-menu.php:57
+msgid "Primary menu"
+msgstr "Primary menu"
+
+#: models/class-construct-wp-menu.php:58
+msgid "Footer menu"
+msgstr "Footer menu"
+
+#: models/class-construct-wp-menu.php:78,
+#: models/class-construct-wp-menu.php:198,
+#: models/class-construct-wp-menu.php:312
+msgid "Icon"
+msgstr "Icon"
+
+#: models/class-construct-wp-menu.php:91,
+#: models/class-construct-wp-menu.php:210,
+#: models/class-construct-wp-menu.php:313
+msgid "Visibility"
+msgstr "Visibility"
+
+#: models/class-construct-wp-menu.php:97,
+#: models/class-construct-wp-menu.php:216
+msgid "Always"
+msgstr "Always"
+
+#: models/class-construct-wp-menu.php:98,
+#: models/class-construct-wp-menu.php:217
+msgid "Logged in only"
+msgstr "Logged in only"
+
+#: models/class-construct-wp-menu.php:99,
+#: models/class-construct-wp-menu.php:218
+msgid "Logged out only"
+msgstr "Logged out only"
+
+#: models/class-construct-wp-menu.php:113,
+#: models/class-construct-wp-menu.php:231,
+#: models/class-construct-wp-menu.php:314
+msgid "Logout link"
+msgstr "Logout link"
+
+#: models/class-construct-wp-menu.php:119,
+#: models/class-construct-wp-menu.php:237,
+#: models/class-construct-wp-menu.php:315
+msgid "Dropdown item type"
+msgstr "Dropdown item type"
+
+#: models/class-construct-wp-menu.php:121,
+#: models/class-construct-wp-menu.php:239
+msgid "Link"
+msgstr "Link"
+
+#: models/class-construct-wp-menu.php:122,
+#: models/class-construct-wp-menu.php:240
+msgid "Header"
+msgstr "Header"
+
+#: models/class-construct-wp-menu.php:123,
+#: models/class-construct-wp-menu.php:241
+msgid "Divider"
+msgstr "Divider"
+
+#: models/class-construct-wp-menu.php:124,
+#: models/class-construct-wp-menu.php:242
+msgid "Text"
+msgstr "Text"
+
+#: models/class-construct-wp-settings.php:212
+msgid "ConstructWP Settings"
+msgstr "ConstructWP Settings"
+
+#: models/class-construct-wp-settings.php:213
+msgid "ConstructWP"
+msgstr "ConstructWP"
+
+#: models/class-construct-wp-settings.php:224
+msgid "ConstructWP Settings - General"
+msgstr "ConstructWP Settings - General"
+
+#: models/class-construct-wp-settings.php:225
+msgid "General"
+msgstr "General"
+
+#: models/class-construct-wp-settings.php:233
+msgid "ConstructWP Settings - Optimize"
+msgstr "ConstructWP Settings - Optimise"
+
+#: models/class-construct-wp-settings.php:234
+msgid "Optimize"
+msgstr "Optimise"
+
+#: models/class-construct-wp-settings.php:296
+msgid "Settings"
+msgstr "Settings"
+
+#. translators: %1$s - Opening p tag, %2$s - Closing p tag, %3$s - Opening a tag, %4$s - Closing a tag
+#: models/class-construct-wp-updater.php:135
+msgid ""
+"%1$sAn Unexpected HTTP Error occurred during the API request.%2$s "
+"%1$s%3$sTry again%4$s%2$s"
+msgstr ""
+"%1$sAn Unexpected HTTP Error occurred during the API request.%2$s "
+"%1$s%3$sTry again%4$s%2$s"
+
+#: models/class-construct-wp-utils.php:181
+msgid "Page navigation"
+msgstr "Page navigation"
+
+#: models/class-construct-wp-utils.php:200
+msgid "First"
+msgstr "First"
+
+#: models/class-construct-wp-utils.php:204
+msgid "Last"
+msgstr "Last"
+
+#: models/class-construct-wp-utils.php:220
+msgid "Previous"
+msgstr "Previous"
+
+#: models/class-construct-wp-utils.php:224
+msgid "Next"
+msgstr "Next"
+
+#: models/class-construct-wp.php:235
+msgid "No feed available"
+msgstr "No feed available"
+
+#. translators: %d Footer column number
+#: models/class-construct-wp.php:316
+msgid "Footer %d"
+msgstr "Footer %d"
+
+#. translators: %d Footer column number
+#: models/class-construct-wp.php:322
+msgid "Add widgets here to appear in your footer column %d"
+msgstr "Add widgets here to appear in your footer column %d"
+
+#: models/class-construct-wp.php:489
+msgid "Logo"
+msgstr "Logo"
+
+#: models/class-construct-wp.php:490
+msgid "This should be your regular, colored logo."
+msgstr "This should be your regular, coloured logo."
+
+#: models/class-construct-wp.php:498, models/class-construct-wp.php:503,
+#: models/class-construct-wp.php:532, models/class-construct-wp.php:537
+msgid "Select logo"
+msgstr "Select logo"
+
+#: models/class-construct-wp.php:499, models/class-construct-wp.php:533
+msgid "Change logo"
+msgstr "Change logo"
+
+#: models/class-construct-wp.php:500, models/class-construct-wp.php:534
+msgid "Remove"
+msgstr "Remove"
+
+#: models/class-construct-wp.php:501, models/class-construct-wp.php:535
+msgid "Default"
+msgstr "Default"
+
+#: models/class-construct-wp.php:502, models/class-construct-wp.php:536
+msgid "No logo selected"
+msgstr "No logo selected"
+
+#: models/class-construct-wp.php:504, models/class-construct-wp.php:538
+msgid "Choose logo"
+msgstr "Choose logo"
+
+#: models/class-construct-wp.php:523
+msgid "White Logo"
+msgstr "White Logo"
+
+#: models/class-construct-wp.php:524
+msgid ""
+"This should the white version of your logo for placement on colored "
+"backgrounds."
+msgstr ""
+"This should the white version of your logo for placement on coloured "
+"backgrounds."
diff --git a/plugins/construct-wp/languages/construct-wp.pot b/plugins/construct-wp/languages/construct-wp.pot
index 95e6a3f..278a4b4 100644
--- a/plugins/construct-wp/languages/construct-wp.pot
+++ b/plugins/construct-wp/languages/construct-wp.pot
@@ -8,7 +8,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Language-Team: Andrew Palfrey \n"
"Last-Translator: Andrew Palfrey \n"
-"POT-Creation-Date: 2023-10-10 15:18+0000\n"
+"POT-Creation-Date: 2023-10-19 15:20+0000\n"
"X-Poedit-Basepath: ..\n"
"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
"X-Poedit-SearchPath-0: .\n"
@@ -16,117 +16,169 @@ msgstr ""
"X-Poedit-SourceCharset: UTF-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: plugins/construct-wp/models/class-construct-wp-email.php:66, plugins/construct-wp/models/class-construct-wp-email.php:69
+#: models/class-construct-wp-email.php:66, models/class-construct-wp-email.php:69
msgid "Email"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-email.php:68
+#: models/class-construct-wp-email.php:68
msgid "Emails"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-menu.php:53
+#: models/class-construct-wp-menu.php:57
msgid "Primary menu"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-menu.php:54
+#: models/class-construct-wp-menu.php:58
msgid "Footer menu"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-menu.php:73
+#: models/class-construct-wp-menu.php:78, models/class-construct-wp-menu.php:198, models/class-construct-wp-menu.php:312
msgid "Icon"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-menu.php:84
+#: models/class-construct-wp-menu.php:91, models/class-construct-wp-menu.php:210, models/class-construct-wp-menu.php:313
msgid "Visibility"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-menu.php:90
+#: models/class-construct-wp-menu.php:97, models/class-construct-wp-menu.php:216
msgid "Always"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-menu.php:91
+#: models/class-construct-wp-menu.php:98, models/class-construct-wp-menu.php:217
msgid "Logged in only"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-menu.php:92
+#: models/class-construct-wp-menu.php:99, models/class-construct-wp-menu.php:218
msgid "Logged out only"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-menu.php:105
+#: models/class-construct-wp-menu.php:113, models/class-construct-wp-menu.php:231, models/class-construct-wp-menu.php:314
msgid "Logout link"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-menu.php:110
+#: models/class-construct-wp-menu.php:119, models/class-construct-wp-menu.php:237, models/class-construct-wp-menu.php:315
msgid "Dropdown item type"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-menu.php:112
+#: models/class-construct-wp-menu.php:121, models/class-construct-wp-menu.php:239
msgid "Link"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-menu.php:113
+#: models/class-construct-wp-menu.php:122, models/class-construct-wp-menu.php:240
msgid "Header"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-menu.php:114
+#: models/class-construct-wp-menu.php:123, models/class-construct-wp-menu.php:241
msgid "Divider"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-menu.php:115
+#: models/class-construct-wp-menu.php:124, models/class-construct-wp-menu.php:242
msgid "Text"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-settings.php:156
+#: models/class-construct-wp-settings.php:212
msgid "ConstructWP Settings"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-settings.php:157
+#: models/class-construct-wp-settings.php:213
msgid "ConstructWP"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-settings.php:207
+#: models/class-construct-wp-settings.php:224
+msgid "ConstructWP Settings - General"
+msgstr ""
+
+#: models/class-construct-wp-settings.php:225
+msgid "General"
+msgstr ""
+
+#: models/class-construct-wp-settings.php:233
+msgid "ConstructWP Settings - Optimize"
+msgstr ""
+
+#: models/class-construct-wp-settings.php:234
+msgid "Optimize"
+msgstr ""
+
+#: models/class-construct-wp-settings.php:296
msgid "Settings"
msgstr ""
#. translators: %1$s - Opening p tag, %2$s - Closing p tag, %3$s - Opening a tag, %4$s - Closing a tag
-#: plugins/construct-wp/models/class-construct-wp-updater.php:135
+#: models/class-construct-wp-updater.php:135
msgid "%1$sAn Unexpected HTTP Error occurred during the API request.%2$s %1$s%3$sTry again%4$s%2$s"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-utils.php:178
+#: models/class-construct-wp-utils.php:181
msgid "Page navigation"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-utils.php:197
+#: models/class-construct-wp-utils.php:200
msgid "First"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-utils.php:201
+#: models/class-construct-wp-utils.php:204
msgid "Last"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-utils.php:217
+#: models/class-construct-wp-utils.php:220
msgid "Previous"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp-utils.php:221
+#: models/class-construct-wp-utils.php:224
msgid "Next"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp.php:233
+#: models/class-construct-wp.php:235
msgid "No feed available"
msgstr ""
#. translators: %d Footer column number
-#: plugins/construct-wp/models/class-construct-wp.php:304
+#: models/class-construct-wp.php:316
msgid "Footer %d"
msgstr ""
#. translators: %d Footer column number
-#: plugins/construct-wp/models/class-construct-wp.php:310
+#: models/class-construct-wp.php:322
msgid "Add widgets here to appear in your footer column %d"
msgstr ""
-#: plugins/construct-wp/models/class-construct-wp.php:479
+#: models/class-construct-wp.php:489
+msgid "Logo"
+msgstr ""
+
+#: models/class-construct-wp.php:490
+msgid "This should be your regular, colored logo."
+msgstr ""
+
+#: models/class-construct-wp.php:498, models/class-construct-wp.php:503, models/class-construct-wp.php:532, models/class-construct-wp.php:537
+msgid "Select logo"
+msgstr ""
+
+#: models/class-construct-wp.php:499, models/class-construct-wp.php:533
+msgid "Change logo"
+msgstr ""
+
+#: models/class-construct-wp.php:500, models/class-construct-wp.php:534
+msgid "Remove"
+msgstr ""
+
+#: models/class-construct-wp.php:501, models/class-construct-wp.php:535
+msgid "Default"
+msgstr ""
+
+#: models/class-construct-wp.php:502, models/class-construct-wp.php:536
+msgid "No logo selected"
+msgstr ""
+
+#: models/class-construct-wp.php:504, models/class-construct-wp.php:538
+msgid "Choose logo"
+msgstr ""
+
+#: models/class-construct-wp.php:523
msgid "White Logo"
msgstr ""
+
+#: models/class-construct-wp.php:524
+msgid "This should the white version of your logo for placement on colored backgrounds."
+msgstr ""
diff --git a/plugins/construct-wp/languages/js/construct-wp-en_GB-151f44c8255583f07705eeaa4dca6728.json b/plugins/construct-wp/languages/js/construct-wp-en_GB-151f44c8255583f07705eeaa4dca6728.json
new file mode 100644
index 0000000..bb1f376
--- /dev/null
+++ b/plugins/construct-wp/languages/js/construct-wp-en_GB-151f44c8255583f07705eeaa4dca6728.json
@@ -0,0 +1,24 @@
+{
+ "translation-revision-date": "",
+ "generator": "WP-CLI\/2.8.1",
+ "source": "assets\/js\/construct-wp-gutenberg.js",
+ "domain": "messages",
+ "locale_data": {
+ "messages": {
+ "": {
+ "domain": "messages",
+ "lang": "en_GB",
+ "plural-forms": "nplurals=2; plural=(n != 1);"
+ },
+ "Permalink": [
+ "Permalink"
+ ],
+ "Set the email permalink": [
+ "Set the email permalink"
+ ],
+ "This is used as a reference for this email template. This can be automatically generated on creation.": [
+ "This is used as a reference for this email template. This can be automatically generated on creation."
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/plugins/construct-wp/languages/js/construct-wp-en_GB-4970dbb0a17c20971e00b1bf045439b2.json b/plugins/construct-wp/languages/js/construct-wp-en_GB-4970dbb0a17c20971e00b1bf045439b2.json
new file mode 100644
index 0000000..0f4d284
--- /dev/null
+++ b/plugins/construct-wp/languages/js/construct-wp-en_GB-4970dbb0a17c20971e00b1bf045439b2.json
@@ -0,0 +1,159 @@
+{
+ "translation-revision-date": "",
+ "generator": "WP-CLI\/2.8.1",
+ "source": "assets\/js\/construct-wp-settings.js",
+ "domain": "messages",
+ "locale_data": {
+ "messages": {
+ "": {
+ "domain": "messages",
+ "lang": "en_GB",
+ "plural-forms": "nplurals=2; plural=(n != 1);"
+ },
+ "ConstructWP": [
+ "ConstructWP"
+ ],
+ "General": [
+ "General"
+ ],
+ "Remove admin bar": [
+ "Remove admin bar"
+ ],
+ "Removes the admin bar from the frontend if the user doesn't have the %s capability": [
+ "Removes the admin bar from the frontend if the user doesn't have the %s capability"
+ ],
+ "Restrict admin access": [
+ "Restrict admin access"
+ ],
+ "Redirects users to the frontend if they try to access the admin area without the %s capability": [
+ "Redirects users to the frontend if they try to access the admin area without the %s capability"
+ ],
+ "Enable controllers": [
+ "Enable controllers"
+ ],
+ "Enables controllers on the frontend based on the current template file": [
+ "Enables controllers on the frontend based on the current template file"
+ ],
+ "Auto-enqueue theme styles": [
+ "Auto-enqueue theme styles"
+ ],
+ "Automatically enqueues the theme's styles based on the parent and child theme names. e.g. %s": [
+ "Automatically enqueues the theme's styles based on the parent and child theme names. e.g. %s"
+ ],
+ "Auto-enqueue theme scripts": [
+ "Auto-enqueue theme scripts"
+ ],
+ "Automatically enqueues the theme's scripts based on the parent and child theme names. e.g. %s": [
+ "Automatically enqueues the theme's scripts based on the parent and child theme names. e.g. %s"
+ ],
+ "Auto-enqueue template styles": [
+ "Auto-enqueue template styles"
+ ],
+ "Automatically enqueues a template's styles based on the template name. e.g. %s": [
+ "Automatically enqueues a template's styles based on the template name. e.g. %s"
+ ],
+ "Auto-enqueue template scripts": [
+ "Auto-enqueue template scripts"
+ ],
+ "Automatically enqueues a template's scripts based on the template name. e.g. %s": [
+ "Automatically enqueues a template's scripts based on the template name. e.g. %s"
+ ],
+ "Auto-include theme classes": [
+ "Auto-include theme styles"
+ ],
+ "Automatically includes classes within the theme's %s directory": [
+ "Automatically includes classes within the theme's %s directory"
+ ],
+ "Auto-run theme classes": [
+ "Auto-include theme styles"
+ ],
+ "Automatically runs classes within the theme's %1$s directory if they have a public %2$s method": [
+ "Automatically runs classes within the theme's %1$s directory if they have a public %2$s method"
+ ],
+ "Auto-load theme textdomain": [
+ "Auto-load theme textdomain"
+ ],
+ "Automatically loads a theme's textdomain based on the theme name. Language files must be located in %s of the theme's directory": [
+ "Automatically loads a theme's textdomain based on the theme name. Language files must be located in %s of the theme's directory"
+ ],
+ "Footer columns": [
+ "Footer columns"
+ ],
+ "The number of footer widget areas to create": [
+ "The number of footer widget areas to create"
+ ],
+ "Unable to save settings": [
+ "Unable to save settings"
+ ],
+ "Settings saved!": [
+ "Settings saved!"
+ ],
+ "Save": [
+ "Save"
+ ],
+ "Select all": [
+ "Select all"
+ ],
+ "Optimize": [
+ "Optimise"
+ ],
+ "Whether to optimize the site to remove bloat": [
+ "Whether to optimise the site to remove bloat"
+ ],
+ "WordPress": [
+ "WordPress"
+ ],
+ "Feeds": [
+ "Feeds"
+ ],
+ "Really Simple Directory link": [
+ "Really Simple Directory link"
+ ],
+ "Relational attributes": [
+ "Relational attributes"
+ ],
+ "Relational links": [
+ "Relational links"
+ ],
+ "Version numbers": [
+ "Version numbers"
+ ],
+ "JSON API links": [
+ "JSON API links"
+ ],
+ "Emoji": [
+ "Emoji"
+ ],
+ "XML-RPC": [
+ "XML-RPC"
+ ],
+ "jQuery migrate": [
+ "jQuery migrate"
+ ],
+ "Self pingback": [
+ "Self pingback"
+ ],
+ "Dashboard meta boxes": [
+ "Dashboard meta boxes"
+ ],
+ "Welcome panel": [
+ "Welcome panel"
+ ],
+ "Site health": [
+ "Site health"
+ ],
+ "At a glance": [
+ "At a glance"
+ ],
+ "Activity": [
+ "Activity"
+ ],
+ "Quick draft": [
+ "Quick draft"
+ ],
+ "Events and news": [
+ "Events and news"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/plugins/construct-wp/languages/js/construct-wp-en_GB.mo b/plugins/construct-wp/languages/js/construct-wp-en_GB.mo
new file mode 100644
index 0000000..fb73146
Binary files /dev/null and b/plugins/construct-wp/languages/js/construct-wp-en_GB.mo differ
diff --git a/plugins/construct-wp/languages/js/construct-wp-en_GB.po b/plugins/construct-wp/languages/js/construct-wp-en_GB.po
new file mode 100644
index 0000000..ace2eaf
--- /dev/null
+++ b/plugins/construct-wp/languages/js/construct-wp-en_GB.po
@@ -0,0 +1,280 @@
+# Copyright (C) 2023 ConstructWP
+# This file is distributed under the same license as the ConstructWP package.
+msgid ""
+msgstr ""
+"Project-Id-Version: ConstructWP\n"
+"POT-Creation-Date: 2023-10-19 15:20+0000\n"
+"PO-Revision-Date: \n"
+"Last-Translator: Andrew Palfrey \n"
+"Language-Team: Andrew Palfrey \n"
+"Language: en_GB\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Basepath: ..\n"
+"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;"
+"_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;"
+"esc_html_e;esc_html_x:1,2c\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+"X-Generator: Poedit 3.4\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPathExcluded-0: *.js\n"
+
+#: assets/js/construct-wp-gutenberg.js:42
+msgid "Permalink"
+msgstr "Permalink"
+
+#: assets/js/construct-wp-gutenberg.js:44
+msgid "Set the email permalink"
+msgstr "Set the email permalink"
+
+#: assets/js/construct-wp-gutenberg.js:45
+msgid ""
+"This is used as a reference for this email template. This can be "
+"automatically generated on creation."
+msgstr ""
+"This is used as a reference for this email template. This can be "
+"automatically generated on creation."
+
+#: assets/js/construct-wp-settings.js:171,
+#: assets/js/construct-wp-settings.js:173
+msgid "ConstructWP"
+msgstr "ConstructWP"
+
+#: assets/js/construct-wp-settings.js:277,
+#: assets/js/construct-wp-settings.js:281,
+#: assets/js/construct-wp-settings.js:462
+msgid "General"
+msgstr "General"
+
+#: assets/js/construct-wp-settings.js:282
+msgid "Remove admin bar"
+msgstr "Remove admin bar"
+
+#. translators: %s - The capability in a code tag
+#: assets/js/construct-wp-settings.js:284
+msgid ""
+"Removes the admin bar from the frontend if the user doesn't have the %s "
+"capability"
+msgstr ""
+"Removes the admin bar from the frontend if the user doesn't have the %s "
+"capability"
+
+#: assets/js/construct-wp-settings.js:293
+msgid "Restrict admin access"
+msgstr "Restrict admin access"
+
+#. translators: %s - The capability in a code tag
+#: assets/js/construct-wp-settings.js:295
+msgid ""
+"Redirects users to the frontend if they try to access the admin area without "
+"the %s capability"
+msgstr ""
+"Redirects users to the frontend if they try to access the admin area without "
+"the %s capability"
+
+#: assets/js/construct-wp-settings.js:304
+msgid "Enable controllers"
+msgstr "Enable controllers"
+
+#: assets/js/construct-wp-settings.js:305
+msgid "Enables controllers on the frontend based on the current template file"
+msgstr "Enables controllers on the frontend based on the current template file"
+
+#: assets/js/construct-wp-settings.js:314
+msgid "Auto-enqueue theme styles"
+msgstr "Auto-enqueue theme styles"
+
+#. translators: %s - An example theme style path
+#: assets/js/construct-wp-settings.js:316
+msgid ""
+"Automatically enqueues the theme's styles based on the parent and child "
+"theme names. e.g. %s"
+msgstr ""
+"Automatically enqueues the theme's styles based on the parent and child "
+"theme names. e.g. %s"
+
+#: assets/js/construct-wp-settings.js:325
+msgid "Auto-enqueue theme scripts"
+msgstr "Auto-enqueue theme scripts"
+
+#. translators: %s - An example theme script path
+#: assets/js/construct-wp-settings.js:327
+msgid ""
+"Automatically enqueues the theme's scripts based on the parent and child "
+"theme names. e.g. %s"
+msgstr ""
+"Automatically enqueues the theme's scripts based on the parent and child "
+"theme names. e.g. %s"
+
+#: assets/js/construct-wp-settings.js:336
+msgid "Auto-enqueue template styles"
+msgstr "Auto-enqueue template styles"
+
+#. translators: %s - An example template style path
+#: assets/js/construct-wp-settings.js:338
+msgid ""
+"Automatically enqueues a template's styles based on the template name. e.g. "
+"%s"
+msgstr ""
+"Automatically enqueues a template's styles based on the template name. e.g. "
+"%s"
+
+#: assets/js/construct-wp-settings.js:347
+msgid "Auto-enqueue template scripts"
+msgstr "Auto-enqueue template scripts"
+
+#. translators: %s - An example template script path
+#: assets/js/construct-wp-settings.js:349
+msgid ""
+"Automatically enqueues a template's scripts based on the template name. e.g. "
+"%s"
+msgstr ""
+"Automatically enqueues a template's scripts based on the template name. e.g. "
+"%s"
+
+#: assets/js/construct-wp-settings.js:358
+msgid "Auto-include theme classes"
+msgstr "Auto-include theme styles"
+
+#. translators: %s - the models directory
+#: assets/js/construct-wp-settings.js:360
+msgid "Automatically includes classes within the theme's %s directory"
+msgstr "Automatically includes classes within the theme's %s directory"
+
+#: assets/js/construct-wp-settings.js:369
+msgid "Auto-run theme classes"
+msgstr "Auto-include theme styles"
+
+#. translators: %1$s - the models directory. %2$s - The init method name
+#: assets/js/construct-wp-settings.js:371
+msgid ""
+"Automatically runs classes within the theme's %1$s directory if they have a "
+"public %2$s method"
+msgstr ""
+"Automatically runs classes within the theme's %1$s directory if they have a "
+"public %2$s method"
+
+#: assets/js/construct-wp-settings.js:380
+msgid "Auto-load theme textdomain"
+msgstr "Auto-load theme textdomain"
+
+#. translators: %s - The languages directory
+#: assets/js/construct-wp-settings.js:382
+msgid ""
+"Automatically loads a theme's textdomain based on the theme name. Language "
+"files must be located in %s of the theme's directory"
+msgstr ""
+"Automatically loads a theme's textdomain based on the theme name. Language "
+"files must be located in %s of the theme's directory"
+
+#: assets/js/construct-wp-settings.js:391
+msgid "Footer columns"
+msgstr "Footer columns"
+
+#: assets/js/construct-wp-settings.js:392
+msgid "The number of footer widget areas to create"
+msgstr "The number of footer widget areas to create"
+
+#: assets/js/construct-wp-settings.js:448,
+#: assets/js/construct-wp-settings.js:623
+msgid "Unable to save settings"
+msgstr "Unable to save settings"
+
+#: assets/js/construct-wp-settings.js:441,
+#: assets/js/construct-wp-settings.js:616
+msgid "Settings saved!"
+msgstr "Settings saved!"
+
+#: assets/js/construct-wp-settings.js:456,
+#: assets/js/construct-wp-settings.js:631
+msgid "Save"
+msgstr "Save"
+
+#: assets/js/construct-wp-settings.js:537
+msgid "Select all"
+msgstr "Select all"
+
+#: assets/js/construct-wp-settings.js:570,
+#: assets/js/construct-wp-settings.js:574,
+#: assets/js/construct-wp-settings.js:575,
+#: assets/js/construct-wp-settings.js:637
+msgid "Optimize"
+msgstr "Optimise"
+
+#: assets/js/construct-wp-settings.js:576
+msgid "Whether to optimize the site to remove bloat"
+msgstr "Whether to optimise the site to remove bloat"
+
+#: assets/js/construct-wp-settings.js:586
+msgid "WordPress"
+msgstr "WordPress"
+
+#: assets/js/construct-wp-settings.js:588
+msgid "Feeds"
+msgstr "Feeds"
+
+#: assets/js/construct-wp-settings.js:588
+msgid "Really Simple Directory link"
+msgstr "Really Simple Directory link"
+
+#: assets/js/construct-wp-settings.js:588
+msgid "Relational attributes"
+msgstr "Relational attributes"
+
+#: assets/js/construct-wp-settings.js:588
+msgid "Relational links"
+msgstr "Relational links"
+
+#: assets/js/construct-wp-settings.js:588
+msgid "Version numbers"
+msgstr "Version numbers"
+
+#: assets/js/construct-wp-settings.js:588
+msgid "JSON API links"
+msgstr "JSON API links"
+
+#: assets/js/construct-wp-settings.js:588
+msgid "Emoji"
+msgstr "Emoji"
+
+#: assets/js/construct-wp-settings.js:588
+msgid "XML-RPC"
+msgstr "XML-RPC"
+
+#: assets/js/construct-wp-settings.js:588
+msgid "jQuery migrate"
+msgstr "jQuery migrate"
+
+#: assets/js/construct-wp-settings.js:588
+msgid "Self pingback"
+msgstr "Self pingback"
+
+#: assets/js/construct-wp-settings.js:590
+msgid "Dashboard meta boxes"
+msgstr "Dashboard meta boxes"
+
+#: assets/js/construct-wp-settings.js:592
+msgid "Welcome panel"
+msgstr "Welcome panel"
+
+#: assets/js/construct-wp-settings.js:592
+msgid "Site health"
+msgstr "Site health"
+
+#: assets/js/construct-wp-settings.js:592
+msgid "At a glance"
+msgstr "At a glance"
+
+#: assets/js/construct-wp-settings.js:592
+msgid "Activity"
+msgstr "Activity"
+
+#: assets/js/construct-wp-settings.js:592
+msgid "Quick draft"
+msgstr "Quick draft"
+
+#: assets/js/construct-wp-settings.js:592
+msgid "Events and news"
+msgstr "Events and news"
diff --git a/plugins/construct-wp/languages/js/construct-wp.pot b/plugins/construct-wp/languages/js/construct-wp.pot
new file mode 100644
index 0000000..0b7d57b
--- /dev/null
+++ b/plugins/construct-wp/languages/js/construct-wp.pot
@@ -0,0 +1,230 @@
+# Copyright (C) 2023 ConstructWP
+# This file is distributed under the same license as the ConstructWP package.
+msgid ""
+msgstr ""
+"Project-Id-Version: ConstructWP\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language-Team: Andrew Palfrey \n"
+"Last-Translator: Andrew Palfrey \n"
+"POT-Creation-Date: 2023-10-19 15:20+0000\n"
+"X-Poedit-Basepath: ..\n"
+"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPathExcluded-0: *.js\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: assets/js/construct-wp-gutenberg.js:42
+msgid "Permalink"
+msgstr ""
+
+#: assets/js/construct-wp-gutenberg.js:44
+msgid "Set the email permalink"
+msgstr ""
+
+#: assets/js/construct-wp-gutenberg.js:45
+msgid "This is used as a reference for this email template. This can be automatically generated on creation."
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:171, assets/js/construct-wp-settings.js:173
+msgid "ConstructWP"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:277, assets/js/construct-wp-settings.js:281, assets/js/construct-wp-settings.js:462
+msgid "General"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:282
+msgid "Remove admin bar"
+msgstr ""
+
+#. translators: %s - The capability in a code tag
+#: assets/js/construct-wp-settings.js:284
+msgid "Removes the admin bar from the frontend if the user doesn't have the %s capability"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:293
+msgid "Restrict admin access"
+msgstr ""
+
+#. translators: %s - The capability in a code tag
+#: assets/js/construct-wp-settings.js:295
+msgid "Redirects users to the frontend if they try to access the admin area without the %s capability"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:304
+msgid "Enable controllers"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:305
+msgid "Enables controllers on the frontend based on the current template file"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:314
+msgid "Auto-enqueue theme styles"
+msgstr ""
+
+#. translators: %s - An example theme style path
+#: assets/js/construct-wp-settings.js:316
+msgid "Automatically enqueues the theme's styles based on the parent and child theme names. e.g. %s"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:325
+msgid "Auto-enqueue theme scripts"
+msgstr ""
+
+#. translators: %s - An example theme script path
+#: assets/js/construct-wp-settings.js:327
+msgid "Automatically enqueues the theme's scripts based on the parent and child theme names. e.g. %s"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:336
+msgid "Auto-enqueue template styles"
+msgstr ""
+
+#. translators: %s - An example template style path
+#: assets/js/construct-wp-settings.js:338
+msgid "Automatically enqueues a template's styles based on the template name. e.g. %s"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:347
+msgid "Auto-enqueue template scripts"
+msgstr ""
+
+#. translators: %s - An example template script path
+#: assets/js/construct-wp-settings.js:349
+msgid "Automatically enqueues a template's scripts based on the template name. e.g. %s"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:358
+msgid "Auto-include theme classes"
+msgstr ""
+
+#. translators: %s - the models directory
+#: assets/js/construct-wp-settings.js:360
+msgid "Automatically includes classes within the theme's %s directory"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:369
+msgid "Auto-run theme classes"
+msgstr ""
+
+#. translators: %1$s - the models directory. %2$s - The init method name
+#: assets/js/construct-wp-settings.js:371
+msgid "Automatically runs classes within the theme's %1$s directory if they have a public %2$s method"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:380
+msgid "Auto-load theme textdomain"
+msgstr ""
+
+#. translators: %s - The languages directory
+#: assets/js/construct-wp-settings.js:382
+msgid "Automatically loads a theme's textdomain based on the theme name. Language files must be located in %s of the theme's directory"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:391
+msgid "Footer columns"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:392
+msgid "The number of footer widget areas to create"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:448, assets/js/construct-wp-settings.js:623
+msgid "Unable to save settings"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:441, assets/js/construct-wp-settings.js:616
+msgid "Settings saved!"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:456, assets/js/construct-wp-settings.js:631
+msgid "Save"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:537
+msgid "Select all"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:570, assets/js/construct-wp-settings.js:574, assets/js/construct-wp-settings.js:575, assets/js/construct-wp-settings.js:637
+msgid "Optimize"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:576
+msgid "Whether to optimize the site to remove bloat"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:586
+msgid "WordPress"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:588
+msgid "Feeds"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:588
+msgid "Really Simple Directory link"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:588
+msgid "Relational attributes"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:588
+msgid "Relational links"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:588
+msgid "Version numbers"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:588
+msgid "JSON API links"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:588
+msgid "Emoji"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:588
+msgid "XML-RPC"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:588
+msgid "jQuery migrate"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:588
+msgid "Self pingback"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:590
+msgid "Dashboard meta boxes"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:592
+msgid "Welcome panel"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:592
+msgid "Site health"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:592
+msgid "At a glance"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:592
+msgid "Activity"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:592
+msgid "Quick draft"
+msgstr ""
+
+#: assets/js/construct-wp-settings.js:592
+msgid "Events and news"
+msgstr ""
diff --git a/plugins/construct-wp/models/class-construct-wp-assets.php b/plugins/construct-wp/models/class-construct-wp-assets.php
index 077882a..3d1bf5f 100644
--- a/plugins/construct-wp/models/class-construct-wp-assets.php
+++ b/plugins/construct-wp/models/class-construct-wp-assets.php
@@ -3,7 +3,7 @@
* Assets functionality.
*
* Dynamically includes the required controller, CSS & JS file for the currently used template. Enqueues a global CSS
- * & JS file based on the `CWP_THEME_SLUG` constant.
+ * & JS file based on the theme names from `get_template()` and `get_stylesheet()`.
*
* @since 1.0.0
* @package construct-wp
@@ -13,7 +13,7 @@
class CWP_Assets {
/**
- * Contains information about the page:
+ * Contains information about the template:
* - Template path
* - Controller path
* - CSS path
@@ -23,7 +23,7 @@ class CWP_Assets {
* @access private
* @var array
*/
- private static $page_info = array();
+ private static $template_info = array();
/**
* Finds & generates the path/URI for assets based on whether they are in the parent or child theme,
@@ -60,28 +60,48 @@ public static function final_path( $path, $uri = false ) {
}
/**
- * Includes the templates controller if found. This is called from the `template_include` filter.
+ * Gathers information about the template:
+ * - Template path
+ * - Controller path
+ * - CSS path
+ * - JS path
*
* @since 1.0.0
* @access public
* @param string $template The template for the current page
* @return string The template for the current page
*/
- public static function template_controller( $template ) {
- global $wp_filesystem;
-
+ public static function get_template_info( $template ) {
$template_base = str_replace( trailingslashit( get_stylesheet_directory() ), '', $template );
$template_base = str_replace( trailingslashit( get_template_directory() ), '', $template_base );
$template_base = str_replace( '.php', '', $template_base );
- self::$page_info = array(
+ self::$template_info = array(
'template' => $template_base . '.php',
'controller' => '/controllers/' . $template_base . '.php',
'css' => '/assets/css/' . $template_base . '.css',
'js' => '/assets/js/' . $template_base . '.js',
);
- $controller_path = self::final_path( self::$page_info['controller'], false );
+ return $template;
+ }
+
+ /**
+ * Includes the templates controller if found. This is called from the `template_include` filter.
+ *
+ * @since 1.0.0
+ * @access public
+ * @param string $template The template for the current page
+ * @return string The template for the current page
+ */
+ public static function template_controller( $template ) {
+ $setting = boolval( get_option( 'cwp_controllers' ) );
+
+ if ( ! $setting ) {
+ return $template;
+ }
+
+ $controller_path = self::final_path( self::$template_info['controller'], false );
if ( $controller_path ) {
include_once $controller_path;
@@ -105,19 +125,36 @@ public static function template_controller( $template ) {
* @return void
*/
public static function base_enqueue() {
- global $wp_filesystem;
+ $styles_setting = boolval( get_option( 'cwp_base_styles' ) );
+ $scripts_setting = boolval( get_option( 'cwp_base_scripts' ) );
- $style_path = self::final_path( '/assets/css/' . CWP_THEME_SLUG . '.css', false );
- $style_uri = self::final_path( '/assets/css/' . CWP_THEME_SLUG . '.css', true );
- $script_path = self::final_path( '/assets/js/' . CWP_THEME_SLUG . '.js', false );
- $script_uri = self::final_path( '/assets/js/' . CWP_THEME_SLUG . '.js', true );
-
- if ( $wp_filesystem->exists( $style_path ) ) {
- wp_enqueue_style( CWP_THEME_SLUG, $style_uri );
+ if ( ! $styles_setting && ! $scripts_setting ) {
+ return;
}
- if ( $wp_filesystem->exists( $script_path ) ) {
- wp_enqueue_script( CWP_THEME_SLUG, $script_uri, array(), false, true );
+ $themes = array_unique( array(
+ get_template(),
+ get_stylesheet(),
+ ) );
+
+ foreach ( $themes as $theme ) {
+ if ( $styles_setting ) {
+ $style_path = self::final_path( '/assets/css/' . $theme . '.css', false );
+ $style_uri = self::final_path( '/assets/css/' . $theme . '.css', true );
+
+ if ( $style_path ) {
+ wp_enqueue_style( $theme, $style_uri );
+ }
+ }
+
+ if ( $scripts_setting ) {
+ $script_path = self::final_path( '/assets/js/' . $theme . '.js', false );
+ $script_uri = self::final_path( '/assets/js/' . $theme . '.js', true );
+
+ if ( $script_path ) {
+ wp_enqueue_script( $theme, $script_uri, array(), false, true );
+ }
+ }
}
}
@@ -129,20 +166,31 @@ public static function base_enqueue() {
* @return void
*/
public static function template_enqueue() {
- global $wp_filesystem;
+ $styles_setting = boolval( get_option( 'cwp_template_styles' ) );
+ $scripts_setting = boolval( get_option( 'cwp_template_scripts' ) );
+
+ if ( ! $styles_setting && ! $scripts_setting ) {
+ return;
+ }
+
+ $handle = basename( self::$template_info['template'], '.php' );
- $handle = basename( self::$page_info['template'], '.php' );
- $style_path = self::final_path( self::$page_info['css'], false );
- $style_uri = self::final_path( self::$page_info['css'], true );
- $script_path = self::final_path( self::$page_info['js'], false );
- $script_uri = self::final_path( self::$page_info['js'], true );
+ if ( $styles_setting ) {
+ $style_path = self::final_path( self::$template_info['css'], false );
+ $style_uri = self::final_path( self::$template_info['css'], true );
- if ( $wp_filesystem->exists( $style_path ) ) {
- wp_enqueue_style( $handle, $style_uri );
+ if ( $style_path ) {
+ wp_enqueue_style( $handle, $style_uri );
+ }
}
- if ( $wp_filesystem->exists( $script_path ) ) {
- wp_enqueue_script( $handle, $script_uri, array(), false, true );
+ if ( $scripts_setting ) {
+ $script_path = self::final_path( self::$template_info['js'], false );
+ $script_uri = self::final_path( self::$template_info['js'], true );
+
+ if ( $script_path ) {
+ wp_enqueue_script( $handle, $script_uri, array(), false, true );
+ }
}
}
@@ -152,7 +200,21 @@ public static function template_enqueue() {
* @return void
*/
public static function admin_enqueue() {
- wp_enqueue_style( 'cwp-admin', CWP_PLUGIN_URL . 'assets/css/construct-wp-admin.css', true );
+ wp_enqueue_style( 'cwp-admin', CWP_PLUGIN_URL . 'assets/css/construct-wp-admin.css' );
+ }
+
+ /**
+ * Enqueue's files to the WordPress customizer.
+ *
+ * @return void
+ */
+ public static function customizer_enqueue() {
+ wp_enqueue_script( 'cwp-customizer', CWP_PLUGIN_URL . 'assets/js/construct-wp-customizer.js', array(
+ 'customize-nav-menus',
+ 'wp-i18n',
+ ), filemtime( CWP_PLUGIN_PATH . '/assets/js/construct-wp-customizer.js' ), true );
+
+ wp_set_script_translations( 'cwp-customizer', 'construct-wp', CWP_PLUGIN_PATH . 'languages/js' );
}
/**
diff --git a/plugins/construct-wp/models/class-construct-wp-gutenberg.php b/plugins/construct-wp/models/class-construct-wp-gutenberg.php
index 6291028..69e6421 100644
--- a/plugins/construct-wp/models/class-construct-wp-gutenberg.php
+++ b/plugins/construct-wp/models/class-construct-wp-gutenberg.php
@@ -31,16 +31,20 @@ public static function init() {
* @return void
*/
public static function enqueue_assets() {
- wp_enqueue_script( 'cwp-gutenberg', CWP_PLUGIN_URL . 'assets/js/construct-wp-gutenberg.js', array(
- 'wp-blocks',
- 'wp-i18n',
- 'wp-edit-post',
- 'wp-element',
- 'wp-components',
- 'wp-block-editor',
- 'wp-plugins',
- ), true );
- wp_enqueue_style( 'cwp-gutenberg', CWP_PLUGIN_URL . 'assets/css/construct-wp-gutenberg.css', array( 'wp-edit-blocks' ), true );
+ global $pagenow;
+
+ if ( $pagenow !== 'widgets.php' ) {
+ wp_enqueue_script( 'cwp-gutenberg', CWP_PLUGIN_URL . 'assets/js/construct-wp-gutenberg.js', array(
+ 'wp-components',
+ 'wp-data',
+ 'wp-edit-post',
+ 'wp-i18n',
+ 'wp-plugins',
+ ), true );
+ wp_enqueue_style( 'cwp-gutenberg', CWP_PLUGIN_URL . 'assets/css/construct-wp-gutenberg.css', array( 'wp-edit-blocks' ), true );
+
+ wp_set_script_translations( 'cwp-gutenberg', 'construct-wp', CWP_PLUGIN_PATH . 'languages/js' );
+ }
}
}
diff --git a/plugins/construct-wp/models/class-construct-wp-loader.php b/plugins/construct-wp/models/class-construct-wp-loader.php
index e399a6f..b0bc351 100644
--- a/plugins/construct-wp/models/class-construct-wp-loader.php
+++ b/plugins/construct-wp/models/class-construct-wp-loader.php
@@ -127,6 +127,12 @@ public static function load_theme_models() {
return;
}
+ $autoload = boolval( get_option( 'cwp_auto_include_theme_classes' ) );
+
+ if ( ! $autoload ) {
+ return;
+ }
+
global $wp_filesystem;
$stylesheet_model_path = trailingslashit( get_stylesheet_directory() ) . 'models';
$stylesheet_models = self::get_models( $stylesheet_model_path );
diff --git a/plugins/construct-wp/models/class-construct-wp-menu.php b/plugins/construct-wp/models/class-construct-wp-menu.php
index 60379f9..79a0075 100644
--- a/plugins/construct-wp/models/class-construct-wp-menu.php
+++ b/plugins/construct-wp/models/class-construct-wp-menu.php
@@ -19,10 +19,10 @@ class CWP_Menu {
* @var array
*/
private static $field_defaults = array(
+ 'icon' => '',
'visibility' => 'always',
'logout_link' => '0',
'link_type' => 'link',
- 'icon' => '',
);
/**
@@ -34,9 +34,13 @@ class CWP_Menu {
*/
public static function init() {
self::register_navs();
- add_action( 'wp_nav_menu_item_custom_fields', array( 'CWP_Menu', 'custom_fields' ), 10, 2 );
+ add_action( 'wp_nav_menu_item_custom_fields', array( 'CWP_Menu', 'menu_fields' ), 10, 2 );
add_action( 'wp_update_nav_menu_item', array( 'CWP_Menu', 'menu_update' ), 10, 2 );
add_filter( 'wp_get_nav_menu_items', array( 'CWP_Menu', 'filter_items' ), 10, 1 );
+ add_filter( 'manage_nav-menus_columns', array( 'CWP_Menu', 'screen_options' ), 20 );
+
+ add_action( 'wp_nav_menu_item_custom_fields_customize_template', array( 'CWP_Menu', 'customize_menu_fields' ), 10 );
+ add_action( 'customize_save_after', array( 'CWP_Menu', 'customize_menu_update' ), 10, 1 );
}
/**
@@ -67,33 +71,37 @@ private static function register_navs() {
* @param WP_Post $menu_item Menu item data object
* @return void
*/
- public static function custom_fields( $item_id, $menu_item ) {
+ public static function menu_fields( $item_id, $menu_item ) {
?>
-
-
-
+
+
-
-
-
+
+
-
+
-
-
-
+
+
$default ) {
- if ( isset( $_POST['edit-menu-item-' . $field] ) ) {
- // phpcs:ignore
- $value = isset( $_POST['edit-menu-item-' . $field][$menu_item_db_id] ) ? $_POST['edit-menu-item-' . $field][$menu_item_db_id] : $default;
- $value = sanitize_text_field( $value );
- update_post_meta( $menu_item_db_id, '_menu_item_' . $field, $value );
- }
+ // phpcs:disable WordPress.Security
+ $unsanitized = array(
+ 'icon' => isset( $_POST['edit-menu-item-icon'][$menu_item_db_id] ) ? $_POST['edit-menu-item-icon'][$menu_item_db_id] : '',
+ 'visibility' => isset( $_POST['edit-menu-item-visibility'][$menu_item_db_id] ) ? $_POST['edit-menu-item-visibility'][$menu_item_db_id] : '',
+ 'logout_link' => isset( $_POST['edit-menu-item-logout_link'][$menu_item_db_id] ) ? $_POST['edit-menu-item-logout_link'][$menu_item_db_id] : '',
+ 'link_type' => isset( $_POST['edit-menu-item-link_type'][$menu_item_db_id] ) ? $_POST['edit-menu-item-link_type'][$menu_item_db_id] : '',
+ );
+ $sanitized = self::sanitize_menu_fields( $unsanitized );
+ // phpcs:enable WordPress.Security
+
+ foreach ( $sanitized as $field => $value ) {
+ update_post_meta( $menu_item_db_id, '_menu_item_' . $field, $value );
}
}
@@ -167,4 +182,139 @@ public static function filter_items( $items ) {
return $items;
}
+ /**
+ * Adds custom fields to menu items to Customize. Called by the `wp_nav_menu_item_custom_fields_customize_template` action hook.
+ *
+ * @see https://developer.wordpress.org/reference/hooks/wp_nav_menu_item_custom_fields_customize_template/
+ *
+ * @since 1.0.0
+ * @access public
+ * @return void
+ */
+ public static function customize_menu_fields() {
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ settings() as $setting ) {
+ if ( $setting instanceof WP_Customize_Nav_Menu_Item_Setting && $setting->check_capabilities() ) {
+ if ( ! $setting->post_value() ) {
+ continue;
+ }
+
+ $unsanitized = $setting->manager->unsanitized_post_values()[ $setting->id ];
+ $sanitized = self::sanitize_menu_fields( $unsanitized );
+
+ foreach ( $sanitized as $field => $value ) {
+ update_post_meta( $setting->post_id, '_menu_item_' . $field, $value );
+ }
+ }
+ }
+ }
+
+ /**
+ * Sanitizes menu fields & adds defaults if necessary
+ *
+ * @since 1.0.0
+ * @access public
+ * @param array $data The menu fields to be sanitized
+ * @return array The sanitized menu fields
+ */
+ private static function sanitize_menu_fields( $data ) {
+ return array(
+ 'icon' => isset( $data['icon'] ) ?
+ sanitize_text_field( $data['icon'] ) :
+ self::$field_defaults['icon'],
+ 'visibility' => isset( $data['visibility'] ) && in_array( $data['visibility'], array( 'always', 'logged-in', 'logged-out' ) ) ?
+ $data['visibility'] :
+ self::$field_defaults['visibility'],
+ 'logout_link' => isset( $data['logout_link'] ) && $data['logout_link'] === '1' || $data['logout_link'] === '0' ?
+ $data['logout_link'] :
+ self::$field_defaults['visibility'],
+ 'link_type' => isset( $data['link_type'] ) && in_array( $data['link_type'], array( 'link', 'header', 'divider', 'text' ) ) ?
+ $data['link_type'] :
+ self::$field_defaults['link_type'],
+ );
+ }
+
+ /**
+ * Add screen options to Menus page
+ *
+ * @since 1.0.0
+ * @access public
+ * @param array $columns The column header labels keyed by column ID
+ * @return array The columns with added items
+ */
+ public static function screen_options( $columns ) {
+ $columns['cwp-icon'] = __( 'Icon', 'construct-wp' );
+ $columns['cwp-visibility'] = __( 'Visibility', 'construct-wp' );
+ $columns['cwp-logout_link'] = __( 'Logout link', 'construct-wp' );
+ $columns['cwp-link_type'] = __( 'Dropdown item type', 'construct-wp' );
+
+ return $columns;
+ }
+
}
\ No newline at end of file
diff --git a/plugins/construct-wp/models/class-construct-wp-navwalker.php b/plugins/construct-wp/models/class-construct-wp-navwalker.php
index 05cc952..3fa47f2 100644
--- a/plugins/construct-wp/models/class-construct-wp-navwalker.php
+++ b/plugins/construct-wp/models/class-construct-wp-navwalker.php
@@ -111,7 +111,6 @@ public function start_el( &$output, $data_object, $depth = 0, $args = null, $cur
}
if ( $menu_item->logout_link == '1' ) {
- // TODO re-work with page definition in back end?
$logout_redirect = apply_filters( 'cwp_logout_redirect', get_home_url() );
$menu_item->url = wp_logout_url( $logout_redirect );
}
@@ -241,6 +240,8 @@ public function start_el( &$output, $data_object, $depth = 0, $args = null, $cur
}
$atts['aria-current'] = $menu_item->current ? 'page' : '';
+
+ $atts['class'] .= $menu_item->current ? ' active' : '';
} else if ( $menu_item->link_type === 'header' ) {
$link_tag = 'h6';
$atts['class'] = 'dropdown-header';
diff --git a/plugins/construct-wp/models/class-construct-wp-settings.php b/plugins/construct-wp/models/class-construct-wp-settings.php
index e7fc5f3..62201ad 100644
--- a/plugins/construct-wp/models/class-construct-wp-settings.php
+++ b/plugins/construct-wp/models/class-construct-wp-settings.php
@@ -47,6 +47,62 @@ private static function register_settings() {
'default' => true,
) );
+ register_setting( 'cwp_settings', 'cwp_controllers', array(
+ 'type' => 'boolean',
+ 'show_in_rest' => true,
+ 'default' => true,
+ ) );
+
+ register_setting( 'cwp_settings', 'cwp_base_styles', array(
+ 'type' => 'boolean',
+ 'show_in_rest' => true,
+ 'default' => true,
+ ) );
+
+ register_setting( 'cwp_settings', 'cwp_base_scripts', array(
+ 'type' => 'boolean',
+ 'show_in_rest' => true,
+ 'default' => true,
+ ) );
+
+ register_setting( 'cwp_settings', 'cwp_template_styles', array(
+ 'type' => 'boolean',
+ 'show_in_rest' => true,
+ 'default' => true,
+ ) );
+
+ register_setting( 'cwp_settings', 'cwp_template_scripts', array(
+ 'type' => 'boolean',
+ 'show_in_rest' => true,
+ 'default' => true,
+ ) );
+
+ register_setting( 'cwp_settings', 'cwp_auto_include_theme_classes', array(
+ 'type' => 'boolean',
+ 'show_in_rest' => true,
+ 'default' => true,
+ ) );
+
+ register_setting( 'cwp_settings', 'cwp_auto_run_theme_classes', array(
+ 'type' => 'boolean',
+ 'show_in_rest' => true,
+ 'default' => true,
+ ) );
+
+ register_setting( 'cwp_settings', 'cwp_theme_textdomain', array(
+ 'type' => 'boolean',
+ 'show_in_rest' => true,
+ 'default' => true,
+ ) );
+
+ register_setting( 'cwp_settings', 'cwp_footer_column_count', array(
+ 'type' => 'number',
+ 'show_in_rest' => true,
+ 'default' => 3,
+ ) );
+
+ // TODO theme support.
+
register_setting( 'cwp_settings', 'cwp_optimize', array(
'type' => 'boolean',
'show_in_rest' => true,
@@ -152,19 +208,48 @@ private static function register_settings() {
* @return void
*/
public static function settings_page() {
- add_options_page(
+ add_menu_page(
__( 'ConstructWP Settings', 'construct-wp' ),
__( 'ConstructWP', 'construct-wp' ),
'manage_options',
- 'construct_wp_settings',
- function () {
- ?>
-
- ' ),
+ 80
+ );
+
+ add_submenu_page(
+ 'construct-wp',
+ __( 'ConstructWP Settings - General', 'construct-wp' ),
+ __( 'General', 'construct-wp' ),
+ 'manage_options',
+ 'construct-wp-general',
+ array( __CLASS__, 'render_page' )
+ );
+
+ add_submenu_page(
+ 'construct-wp',
+ __( 'ConstructWP Settings - Optimize', 'construct-wp' ),
+ __( 'Optimize', 'construct-wp' ),
+ 'manage_options',
+ 'construct-wp-optimize',
+ array( __CLASS__, 'render_page' )
);
}
+ /**
+ * The render function for the settings pages. This only has to output a target div for React
+ * to target and inject the page
+ *
+ * @return void
+ */
+ public static function render_page() {
+ ?>
+
+ CWP_VERSION,
) );
+
+ wp_set_script_translations( 'cwp-settings', 'construct-wp', CWP_PLUGIN_PATH . 'languages/js' );
}
}
@@ -203,8 +292,8 @@ public static function settings_link( $actions ) {
array_unshift(
$actions,
'' . __( 'Settings', 'construct-wp' ) . ''
+ 'page' => 'construct-wp',
+ ), admin_url( 'admin.php' ) ) . '">' . __( 'Settings', 'construct-wp' ) . ''
);
return $actions;
}
diff --git a/plugins/construct-wp/models/class-construct-wp-utils.php b/plugins/construct-wp/models/class-construct-wp-utils.php
index 24d738a..3b382d0 100644
--- a/plugins/construct-wp/models/class-construct-wp-utils.php
+++ b/plugins/construct-wp/models/class-construct-wp-utils.php
@@ -164,13 +164,16 @@ public static function html_atts( $atts = array() ) {
*
* @since 1.0.0
* @access public
- * @param array $link_args Arguments to send to `paginate_links`
- * @param array $args Arguments for how to output the pagination
- * @param boolean $display Whether to display the pagination
- * @return string The pagination HTML
+ * @param array $link_args Arguments to send to `paginate_links`
+ * @param array $args Arguments for how to output the pagination
+ * @param WP_Query|null $wp_query The query to use for pagination
+ * @param boolean $display Whether to display the pagination
+ * @return string The pagination HTML
*/
- public static function pagination( $link_args = array(), $args = array(), $display = true ) {
- global $wp_query;
+ public static function pagination( $link_args = array(), $args = array(), $wp_query = null, $display = true ) {
+ if ( ! $wp_query ) {
+ global $wp_query;
+ }
$args = wp_parse_args( $args, array(
'paged' => max( 1, get_query_var( 'paged' ) ),
diff --git a/plugins/construct-wp/models/class-construct-wp.php b/plugins/construct-wp/models/class-construct-wp.php
index 6078d73..99f0e4c 100644
--- a/plugins/construct-wp/models/class-construct-wp.php
+++ b/plugins/construct-wp/models/class-construct-wp.php
@@ -35,10 +35,6 @@ public static function init() {
do_action( 'cwp_before_setup' );
- if ( ! defined( 'CWP_THEME_SLUG' ) ) {
- define( 'CWP_THEME_SLUG', CWP_SLUG );
- }
-
// WordPress translation.
self::load_textdomain();
@@ -64,6 +60,9 @@ public static function init() {
// Restrict access to admin area.
self::restrict_admin_access();
+ // Gets path info for the template for use throughout the system.
+ add_filter( 'template_include', array( 'CWP_Assets', 'get_template_info' ), 1 );
+
// Include the current templates corresponding controller.
add_filter( 'template_include', array( 'CWP_Assets', 'template_controller' ), 1 );
@@ -76,6 +75,9 @@ public static function init() {
// Include admin styles & scripts.
add_action( 'admin_enqueue_scripts', array( 'CWP_Assets', 'admin_enqueue' ) );
+ // Include customizer styles & scripts.
+ add_action( 'customize_controls_enqueue_scripts', array( 'CWP_Assets', 'customizer_enqueue' ) );
+
do_action( 'cwp_after_setup' );
self::$loaded = true;
@@ -253,7 +255,7 @@ public static function disable_script_version( $src ) {
}
/**
- * Loads the translation files for the plugin
+ * Loads the translation files for the plugin & themes
*
* @see https://developer.wordpress.org/reference/functions/load_plugin_textdomain/
*
@@ -262,7 +264,17 @@ public static function disable_script_version( $src ) {
* @return void
*/
public static function load_textdomain() {
- load_plugin_textdomain( CWP_SLUG, false, CWP_PLUGIN_PATH . 'languages' );
+ load_plugin_textdomain( CWP_SLUG, false, dirname( CWP_BASENAME ) . 'languages' );
+
+ $theme_setting = boolval( get_option( 'cwp_theme_textdomain' ) );
+
+ if ( $theme_setting ) {
+ load_theme_textdomain( get_template(), get_template_directory() . '/languages' );
+
+ if ( get_template() !== get_stylesheet() ) {
+ load_theme_textdomain( get_stylesheet(), get_stylesheet_directory() . '/languages' );
+ }
+ }
}
/**
@@ -295,7 +307,7 @@ public static function remove_admin_bar() {
* @return void
*/
public static function register_sidebars() {
- $column_count = apply_filters( 'cwp_footer_column_count', 3 );
+ $column_count = apply_filters( 'cwp_footer_column_count', get_option( 'cwp_footer_column_count' ) );
for ( $i = 1; $i <= $column_count; $i++ ) {
register_sidebar( array(
@@ -384,6 +396,12 @@ private static function run_plugin_classes() {
* @return void
*/
private static function run_theme_classes() {
+ $autorun = boolval( get_option( 'cwp_auto_run_theme_classes' ) );
+
+ if ( ! $autorun ) {
+ return;
+ }
+
foreach ( CWP_Loader::$theme_classes as $class ) {
$run_init = apply_filters( 'cwp_run_theme_class_init', true, $class );
@@ -461,25 +479,64 @@ public static function theme_support() {
* @return void
*/
public static function customize_settings( $wp_customize ) {
+ $custom_logo_args = get_theme_support( 'custom-logo' );
+
+ $wp_customize->add_control(
+ new WP_Customize_Cropped_Image_Control(
+ $wp_customize,
+ 'custom_logo',
+ array(
+ 'label' => __( 'Logo', 'construct-wp' ),
+ 'description' => '' . __( 'This should be your regular, colored logo.', 'construct-wp' ) . '
',
+ 'section' => 'title_tagline',
+ 'priority' => 10,
+ 'height' => isset( $custom_logo_args[0]['height'] ) ? $custom_logo_args[0]['height'] : null,
+ 'width' => isset( $custom_logo_args[0]['width'] ) ? $custom_logo_args[0]['width'] : null,
+ 'flex_height' => isset( $custom_logo_args[0]['flex-height'] ) ? $custom_logo_args[0]['flex-height'] : null,
+ 'flex_width' => isset( $custom_logo_args[0]['flex-width'] ) ? $custom_logo_args[0]['flex-width'] : null,
+ 'button_labels' => array(
+ 'select' => __( 'Select logo', 'construct-wp' ),
+ 'change' => __( 'Change logo', 'construct-wp' ),
+ 'remove' => __( 'Remove', 'construct-wp' ),
+ 'default' => __( 'Default', 'construct-wp' ),
+ 'placeholder' => __( 'No logo selected', 'construct-wp' ),
+ 'frame_title' => __( 'Select logo', 'construct-wp' ),
+ 'frame_button' => __( 'Choose logo', 'construct-wp' ),
+ ),
+ )
+ )
+ );
+
$wp_customize->add_setting(
'custom_white_logo',
array(
- 'default' => '',
- 'type' => 'theme_mod',
- 'capability' => 'edit_theme_options',
+ 'theme_supports' => array( 'custom-logo' ),
+ 'transport' => 'postMessage',
)
);
$wp_customize->add_control(
- new WP_Customize_Media_Control(
+ new WP_Customize_Cropped_Image_Control(
$wp_customize,
- 'logo',
+ 'custom_white_logo',
array(
- 'mime_type' => 'image',
- 'label' => __( 'White Logo', 'construct-wp' ),
- 'section' => 'title_tagline',
- 'settings' => 'custom_white_logo',
- 'priority' => 9,
+ 'label' => __( 'White Logo', 'construct-wp' ),
+ 'description' => '' . __( 'This should the white version of your logo for placement on colored backgrounds.', 'construct-wp' ) . '
',
+ 'section' => 'title_tagline',
+ 'priority' => 10,
+ 'height' => isset( $custom_logo_args[0]['height'] ) ? $custom_logo_args[0]['height'] : null,
+ 'width' => isset( $custom_logo_args[0]['width'] ) ? $custom_logo_args[0]['width'] : null,
+ 'flex_height' => isset( $custom_logo_args[0]['flex-height'] ) ? $custom_logo_args[0]['flex-height'] : null,
+ 'flex_width' => isset( $custom_logo_args[0]['flex-width'] ) ? $custom_logo_args[0]['flex-width'] : null,
+ 'button_labels' => array(
+ 'select' => __( 'Select logo', 'construct-wp' ),
+ 'change' => __( 'Change logo', 'construct-wp' ),
+ 'remove' => __( 'Remove', 'construct-wp' ),
+ 'default' => __( 'Default', 'construct-wp' ),
+ 'placeholder' => __( 'No logo selected', 'construct-wp' ),
+ 'frame_title' => __( 'Select logo', 'construct-wp' ),
+ 'frame_button' => __( 'Choose logo', 'construct-wp' ),
+ ),
)
)
);
diff --git a/plugins/construct-wp/src/gutenberg/pages/settings/index.jsx b/plugins/construct-wp/src/gutenberg/pages/settings/index.jsx
index 86c97d9..76077b2 100644
--- a/plugins/construct-wp/src/gutenberg/pages/settings/index.jsx
+++ b/plugins/construct-wp/src/gutenberg/pages/settings/index.jsx
@@ -17,19 +17,16 @@ import {
} from '../../components'
class SettingsPage extends Component {
+ tabs = []
+ panels = {}
+ siteUrl = ''
+ currentTab = ''
+
constructor() {
super()
- const urlParams = new URLSearchParams( window.location.search )
- const requested = urlParams.get( 'tab' )
-
- this.state = {
- currentTab: typeof requested === 'string' ? requested.replace( 'cwp-', '' ) : '',
- siteUrl: window.location.origin + window.location.pathname + '?page=construct_wp_settings',
- }
- }
+ this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp'
- render() {
/**
* Must return as follows:
* [
@@ -43,13 +40,20 @@ class SettingsPage extends Component {
* ]
*/
let tabDetails = applyFilters( 'cwpTabs', [] )
- let tabs = tabDetails.map( ( tab ) => tab.tab )
- let panels = {}
+ this.tabs = tabDetails.map( ( tab ) => tab.tab )
tabDetails.forEach( ( tab ) => {
- panels[tab.tab.name] = tab.panel
+ this.panels[tab.tab.name] = tab.panel
} )
+ const urlParams = new URLSearchParams( window.location.search )
+ const requested = urlParams.get( 'page' ).replace( 'construct-wp', '' ).replace( /^-/, '' )
+
+ this.currentTab = typeof requested === 'string' ? requested : ''
+ }
+
+ render() {
+ // return <>>
return (
<>
@@ -66,13 +70,12 @@ class SettingsPage extends Component {
{
- window.history.replaceState( null, '', `${this.state.siteUrl}&tab=cwp-${tabName}` )
- this.setState( {
- currentTab: tabName,
- } )
+ if ( tabName !== this.currentTab ) {
+ window.location.href = `${this.siteUrl}-${tabName}`
+ }
}}
>
{ () => {} }
@@ -82,18 +85,22 @@ class SettingsPage extends Component {
- {Object.entries( panels ).map( ( [panelName, Panel], i ) => (
-
- ) )}
+ {!this.currentTab &&
}
+ {Object.entries( this.panels ).map( ( [panelName, Panel], i ) => {
+ if ( this.currentTab === panelName ) {
+ return (
+
+ )
+ }
+
+ return <>>
+ } )}
diff --git a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx
index 9410108..eea5b3f 100644
--- a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx
+++ b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx
@@ -4,6 +4,7 @@ import {
} from '@wordpress/element'
import {
Button,
+ TextControl,
ToggleControl,
} from '@wordpress/components'
import {
@@ -26,6 +27,15 @@ class GeneralTab extends Component {
isAPISaving: false,
removeAdminBar: true,
restrictAdminAccess: true,
+ controllers: true,
+ baseStyles: true,
+ baseScripts: true,
+ templateStyles: true,
+ templateScripts: true,
+ autoIncludeThemeClasses: true,
+ autoRunThemeClasses: true,
+ themeTextdomain: true,
+ footerColumnCount: 3,
}
}
@@ -39,6 +49,15 @@ class GeneralTab extends Component {
isAPILoaded: true,
removeAdminBar: !!response.cwp_remove_admin_bar,
restrictAdminAccess: !!response.cwp_restrict_admin_access,
+ controllers: !!response.cwp_controllers,
+ baseStyles: !!response.cwp_base_styles,
+ baseScripts: !!response.cwp_base_scripts,
+ templateStyles: !!response.cwp_template_styles,
+ templateScripts: !!response.cwp_template_scripts,
+ autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes,
+ autoRunThemeClasses: !!response.cwp_auto_run_theme_classes,
+ themeTextdomain: !!response.cwp_theme_textdomain,
+ footerColumnCount: response.cwp_footer_column_count,
} )
} )
}
@@ -61,6 +80,7 @@ class GeneralTab extends Component {
cwp_view_admin_dashboard'
) )}
@@ -76,6 +96,7 @@ class GeneralTab extends Component {
cwp_view_admin_dashboard'
) )}
@@ -88,10 +109,149 @@ class GeneralTab extends Component {
disabled={this.state.isAPISaving}
/>
+ {
+ this.setState( {
+ controllers: !this.state.controllers,
+ } )
+ }}
+ disabled={this.state.isAPISaving}
+ />
+
+ /assets/css/theme-name.css'
+ ) )}
+ checked={this.state.baseStyles}
+ onChange={() => {
+ this.setState( {
+ baseStyles: !this.state.baseStyles,
+ } )
+ }}
+ disabled={this.state.isAPISaving}
+ />
+
+ /assets/js/theme-name.js'
+ ) )}
+ checked={this.state.baseScripts}
+ onChange={() => {
+ this.setState( {
+ baseScripts: !this.state.baseScripts,
+ } )
+ }}
+ disabled={this.state.isAPISaving}
+ />
+
+ /assets/css/templates/template-name.css'
+ ) )}
+ checked={this.state.templateStyles}
+ onChange={() => {
+ this.setState( {
+ templateStyles: !this.state.templateStyles,
+ } )
+ }}
+ disabled={this.state.isAPISaving}
+ />
+
+ /assets/js/templates/template-name.js'
+ ) )}
+ checked={this.state.templateScripts}
+ onChange={() => {
+ this.setState( {
+ templateScripts: !this.state.templateScripts,
+ } )
+ }}
+ disabled={this.state.isAPISaving}
+ />
+
+ /models'
+ ) )}
+ checked={this.state.autoIncludeThemeClasses}
+ onChange={() => {
+ this.setState( {
+ autoIncludeThemeClasses: !this.state.autoIncludeThemeClasses,
+ } )
+ }}
+ disabled={this.state.isAPISaving}
+ />
+
+ /models',
+ 'init
'
+ ) )}
+ checked={this.state.autoRunThemeClasses}
+ onChange={() => {
+ this.setState( {
+ autoRunThemeClasses: !this.state.autoRunThemeClasses,
+ } )
+ }}
+ disabled={this.state.isAPISaving}
+ />
+
+ /languages'
+ ) )}
+ checked={this.state.themeTextdomain}
+ onChange={() => {
+ this.setState( {
+ themeTextdomain: !this.state.themeTextdomain,
+ } )
+ }}
+ disabled={this.state.isAPISaving}
+ />
+
+ {
+ this.setState( {
+ footerColumnCount: value,
+ } )
+ }}
+ disabled={this.state.isAPISaving}
+ />
+
diff --git a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx
index db6feef..ef7f545 100644
--- a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx
+++ b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx
@@ -3,9 +3,6 @@ import {
} from '@wordpress/element'
import {
Button,
- Card,
- CardBody,
- CardHeader,
CheckboxControl,
ToggleControl,
} from '@wordpress/components'
@@ -119,63 +116,50 @@ class OptimizeTab extends Component {
{this.state.optimize && (
<>
-
-
- {__( 'Remove bloat', 'construct-wp' )}
-
-
-
- {__( 'WordPress', 'construct-wp' )}
-
- {this.selectAll( 'wpBloat' )}
-
- {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}
- {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}
- {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}
- {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}
- {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}
- {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}
- {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}
- {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}
- {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}
- {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}
-
-
-
-
-
-
- {__( 'Remove dashboard meta boxes', 'construct-wp' )}
-
-
-
- {this.selectAll( 'dashboardMeta' )}
-
-
- {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}
- {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}
- {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}
- {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}
- {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}
- {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}
-
-
-
+ Remove bloat
+
+
+
+
+
{__( 'WordPress', 'construct-wp' )}
+
+ {this.selectAll( 'wpBloat' )}
+
+ {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}
+ {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}
+ {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}
+ {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}
+ {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}
+ {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}
+ {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}
+ {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}
+ {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}
+ {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}
+
+
+
+
+
{__( 'Dashboard meta boxes', 'construct-wp' )}
+
+ {this.selectAll( 'dashboardMeta' )}
+
+
+ {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}
+ {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}
+ {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}
+ {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}
+ {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}
+ {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}
+
+
>
)}
diff --git a/plugins/construct-wp/src/gutenberg/panels/email/index.jsx b/plugins/construct-wp/src/gutenberg/panels/email/index.jsx
index 58fdda8..c225ca4 100644
--- a/plugins/construct-wp/src/gutenberg/panels/email/index.jsx
+++ b/plugins/construct-wp/src/gutenberg/panels/email/index.jsx
@@ -31,7 +31,7 @@ function EmailPanel() {
return (
{
+ if ( control.extended( wp.customize.Menus.MenuItemControl ) ) {
+ control.deferred.embedded.done( () => {
+ extendControl( control )
+ } )
+ }
+ } )
+
+ /**
+ * Extend the control with roles information.
+ *
+ * @param {wp.customize.Menus.MenuItemControl} control
+ */
+ function extendControl( control ) {
+ control.iconField = control.container.find( '[name="edit-menu-item-icon"]' )
+ control.visibilityField = control.container.find( '[name="edit-menu-item-visibility"]' )
+ control.logoutLinkField = control.container.find( '[name="edit-menu-item-logout_link"]' )
+ control.linkTypeField = control.container.find( '[name="edit-menu-item-link_type"]' )
+
+ // Set the initial UI state.
+ updateControlFields( control )
+
+ // Update the UI state when the setting changes programmatically.
+ control.setting.bind( () => {
+ updateControlFields( control )
+ } )
+
+ // Update the setting when the inputs are modified.
+ control.iconField.on( 'input', ( e ) => {
+ setSetting( control.setting, {
+ icon: e.target.value,
+ } )
+ } )
+ control.visibilityField.on( 'change', ( e ) => {
+ setSetting( control.setting, {
+ visibility: e.target.value,
+ } )
+ } )
+ control.logoutLinkField.on( 'change', ( e ) => {
+ setSetting( control.setting, {
+ // eslint-disable-next-line camelcase
+ logout_link: e.target.checked ? '1' : '0',
+ } )
+ } )
+ control.linkTypeField.on( 'change', ( e ) => {
+ setSetting( control.setting, {
+ // eslint-disable-next-line camelcase
+ link_type: e.target.value,
+ } )
+ } )
+ }
+
+ /**
+ * Extend the setting with updated information.
+ *
+ * @param {wp.customize.Setting} setting
+ * @param {string|Array} roles
+ */
+ function setSetting( setting, value ) {
+ setting.set( {
+ ..._.clone( setting() ),
+ ...value,
+ } )
+ }
+
+ /**
+ * Apply the control's setting value to the control's fields.
+ *
+ * @param {wp.customize.Menus.MenuItemControl} control
+ */
+ function updateControlFields( control ) {
+ control.iconField.val( control.setting().icon )
+ control.visibilityField.val( control.setting().visibility )
+ control.logoutLinkField.prop( 'checked', control.setting().logout_link === '1' )
+ control.linkTypeField.val( control.setting().link_type )
+ }
+} )()
diff --git a/plugins/construct-wp/src/scss/construct-wp-admin.scss b/plugins/construct-wp/src/scss/construct-wp-admin.scss
index 4a2b1e7..a1cbe0b 100644
--- a/plugins/construct-wp/src/scss/construct-wp-admin.scss
+++ b/plugins/construct-wp/src/scss/construct-wp-admin.scss
@@ -1,7 +1,26 @@
.menu-item {
&.menu-item-depth-0 {
- .cwp-link_type {
- display: none;
+ .field-cwp-link_type {
+ display: none !important;
}
}
}
+
+/* stylelint-disable-next-line selector-id-pattern */
+#toplevel_page_construct-wp {
+ .wp-first-item {
+ display: none;
+ }
+}
+
+$menu-fields: icon, visibility, logout_link, link_type;
+
+@each $field in $menu-fields {
+ .control-section-nav_menu .field-cwp-#{$field} {
+ display: none;
+ }
+
+ .control-section-nav_menu.field-cwp-#{$field}-active .field-cwp-#{$field} {
+ display: block;
+ }
+}
diff --git a/plugins/construct-wp/src/scss/construct-wp-settings.scss b/plugins/construct-wp/src/scss/construct-wp-settings.scss
index 97093e8..33fcb36 100644
--- a/plugins/construct-wp/src/scss/construct-wp-settings.scss
+++ b/plugins/construct-wp/src/scss/construct-wp-settings.scss
@@ -126,6 +126,39 @@ body {
.construct-wp__header {
padding: 1rem 1.5rem 0;
+
+ .construct-wp__title {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ }
+
+ .construct-wp__logo {
+ max-height: 50px;
+ margin-right: 1rem;
+ }
+
+ .construct-wp__version-badge {
+ display: inline-block;
+ padding: .35em .65em;
+ font-size: .9rem;
+ line-height: 1;
+ color: var(--wp-components-color-accent-inverted);
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ background-color: var(--wp-components-color-accent);
+ border: 1px solid var(--wp-components-color-accent);
+ /* stylelint-disable-next-line property-disallowed-list */
+ border-radius: .375rem;
+ }
+
+ .components-tab-panel__tabs {
+ margin-top: 1rem;
+ }
+ .components-tab-panel__tabs-item {
+ padding-top: 0;
+ }
}
.construct-wp__main {
@@ -159,33 +192,6 @@ body {
}
}
- .construct-wp__logo {
- max-height: 50px;
- margin-right: 1rem;
- }
-
- .components-tab-panel__tabs-item {
- padding-top: 0;
- }
-
- .components-tab-panel__tab-content {
- display: none;
- }
-
- .components-base-control__help {
- color: rgb(var(--wp-components-color-accent-foreground--to-rgb), .675);
- }
-
- .construct-wp__checklist {
- columns: auto 2;
- column-gap: 2rem;
-
- .components-base-control__field {
- margin-bottom: .5rem;
- }
- }
-
-
.construct-wp__loading-spinner {
display: inline-block;
width: 2rem;
@@ -200,25 +206,64 @@ body {
animation: .75s linear infinite spinner-border;
}
- .construct-wp__title {
- display: flex;
- flex-wrap: wrap;
- align-items: center;
+ .construct-wp__checklist {
+ columns: auto 2;
+ column-gap: 2rem;
+
+ .components-base-control__field {
+ margin-bottom: .5rem;
+ }
}
- .construct-wp__version-badge {
- display: inline-block;
- padding: .35em .65em;
- font-size: .9rem;
- line-height: 1;
- color: var(--wp-components-color-accent-inverted);
- text-align: center;
- white-space: nowrap;
- vertical-align: baseline;
- background-color: var(--wp-components-color-accent);
- border: 1px solid var(--wp-components-color-accent);
- /* stylelint-disable-next-line property-disallowed-list */
- border-radius: .375rem;
+ .construct-wp__section {
+ margin-bottom: 1.5rem;
+
+ &:last-of-type {
+ margin-bottom: 0;
+ }
+ }
+
+ .components-base-control {
+ .components-base-control__label {
+ font-weight: 400;
+ text-transform: none;
+ }
+
+ .components-text-control__input {
+ &,
+ [type="color"],
+ [type="date"],
+ [type="datetime-local"],
+ [type="datetime"],
+ [type="email"],
+ [type="month"],
+ [type="number"],
+ [type="password"],
+ [type="tel"],
+ [type="text"],
+ [type="time"],
+ [type="url"],
+ [type="week"] {
+ display: block;
+ max-width: 500px;
+ @include border-radius($border-radius);
+ }
+ }
+
+ .components-base-control__help {
+ color: rgb(var(--wp-components-color-accent-foreground--to-rgb), .675);
+ }
+
+ &:last-of-type {
+ .components-base-control__help {
+ margin-bottom: 0;
+ }
+ }
+ }
+
+ .components-submit-button {
+ margin-top: 1.5rem;
+ margin-bottom: 1.5rem;
}
.construct-wp__notices {
diff --git a/yarn.lock b/yarn.lock
index 493717c..f761d65 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -15,26 +15,31 @@
"@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9"
-"@ariakit/core@0.2.9":
- version "0.2.9"
- resolved "https://registry.yarnpkg.com/@ariakit/core/-/core-0.2.9.tgz#cb4af3f7d0e4a87613aa28f0e39f492b7e680166"
- integrity sha512-BIEfY3AHImIc8R5j5DaBrEBKLlki5f0vqZbs56I0xQb12ssjn5VqpLr8Jl4v7DBm5S4ktTgeHjLloTppKFdABg==
+"@ariakit/core@0.3.3":
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/@ariakit/core/-/core-0.3.3.tgz#96f4cf4ecf1f42b514f386214a1a918bb837c7d3"
+ integrity sha512-8x77R0aE9O9pheygg+h/z0oU9Wx/Xdlr7nfkl4klGnkJma8/nAhJ2RrchCTQCUef4WMsRnq/doCz8m/sslP6CA==
-"@ariakit/react-core@0.2.17":
- version "0.2.17"
- resolved "https://registry.yarnpkg.com/@ariakit/react-core/-/react-core-0.2.17.tgz#39960544c758d1dbe9481195f41387cf1a0d110f"
- integrity sha512-y8pHUR2lMcYHUontd33lpnenOBIT8E72IhbMQq/aROQHAevNxLr0JtSkQ+G439N9DfCpKxDaErikss6zqCEGGQ==
+"@ariakit/react-core@0.3.4":
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/@ariakit/react-core/-/react-core-0.3.4.tgz#1e5ccd1cd4d34ed121aa090e5f6661fe46e081ef"
+ integrity sha512-kTRzbSZjRIUsLKQpjyAlzQGI+H01UBzHMKErk2Nag+Ure6m8aNHhD0TlOFyW4Bsf5NVsdHrXAVKNfCfJwk7eVg==
dependencies:
- "@ariakit/core" "0.2.9"
+ "@ariakit/core" "0.3.3"
"@floating-ui/dom" "^1.0.0"
use-sync-external-store "^1.2.0"
-"@ariakit/react@^0.2.12":
- version "0.2.17"
- resolved "https://registry.yarnpkg.com/@ariakit/react/-/react-0.2.17.tgz#53d904105319a535d74b52118dd15788e91daa32"
- integrity sha512-fJG0JBoACasyIVb+K9rW1Vyo7gI5Iseu1sP3WvIMnt5VdWjC/63NLpBHdnwQLhSx4z83pBPY6zKfPmEJa9fYug==
+"@ariakit/react@^0.3.3":
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/@ariakit/react/-/react-0.3.4.tgz#1e941d5126c4c90188664fbffe1b8e045fef4288"
+ integrity sha512-dgu98m9kfkcG9oqazPCsIu29Na2WaQVeq3i8iW1JUQ4PMGsIu2EerDGjhKVrvFb5URd+pipy9XHmg7AoqvMHjw==
dependencies:
- "@ariakit/react-core" "0.2.17"
+ "@ariakit/react-core" "0.3.4"
+
+"@automattic/babel-plugin-preserve-i18n@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@automattic/babel-plugin-preserve-i18n/-/babel-plugin-preserve-i18n-1.0.0.tgz#ec5e855d687f92231b3c798939945a1d051ec6c3"
+ integrity sha512-dRmLP0Ytf2oDNbUbO8MXLKYnPZfqhtFQ8v1hgDo2Fde1Y0bUz2Ll1UmUOHdyZudnrN/8Zt95cG/fIOJ0dxHi8Q==
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13":
version "7.22.13"
@@ -1290,6 +1295,21 @@
resolved "https://registry.yarnpkg.com/@ilabdev/default/-/default-1.0.0.tgz#b8c178e45ba4a1a5adb618dda2de304eaaaa9fc3"
integrity sha512-VH0EerYrpve+s4fseXKIisn8HMxagqvSPlpwRAkTTJFvk+p8wE1eLUDurqi68GPnXVNnYmQlrHOvzZZ1pHy0fQ==
+"@ilabdev/scripts@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@ilabdev/scripts/-/scripts-1.0.0.tgz#7fe977b19a593e4ea01d239263308bb38b8f4160"
+ integrity sha512-+0+S4eQHsV/8ZbLTkjciJPB/NbMw/56hSGZxa6o+BcUjJiHzhhDZlsB6yO77MBSxEpmc9p1Iew4rV4rVYydyXA==
+ dependencies:
+ "@ilabdev/utils" "^1.0.0"
+ eslint "^8.50.0"
+ gulp-filter "^7.0.0"
+ gulp-if "^3.0.0"
+ gulp-plumber "^1.2.1"
+ gulp-rename "^2.0.0"
+ gulp-uglify "^3.0.2"
+ lazypipe "^1.0.2"
+ rollup "^3.29.4"
+
"@ilabdev/styles@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@ilabdev/styles/-/styles-1.0.0.tgz#140c74e43348091e3ac00cb940b5a268dc94328d"
@@ -1916,6 +1936,16 @@
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.2.tgz#ff02bc3dc8317cd668dfec247b750ba1f1d62453"
integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==
+"@types/gradient-parser@0.1.3":
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@types/gradient-parser/-/gradient-parser-0.1.3.tgz#12cdcb8f9c2e855f2a13a5bdf1e8613cc1ca258c"
+ integrity sha512-XDbrTSBlQV9nxE1GiDL3FaOPy4G/KaJkhDutBX48Kg8CYZMBARyyDFGCWfWJn4pobmInmwud1xxH7VJMAr0CKQ==
+
+"@types/highlight-words-core@1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@types/highlight-words-core/-/highlight-words-core-1.2.1.tgz#cda9ed2cd04ea93165d3d3b20686b545d285ff66"
+ integrity sha512-9VZUA5omXBfn+hDxFjUDu1FOJTBM3LmvqfDey+Z6Aa8B8/JmF5SMj6FBrjfgJ/Q3YXOZd3qyTDfJyMZSs/wCUA==
+
"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9":
version "7.0.13"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85"
@@ -2120,77 +2150,76 @@
"@webassemblyjs/ast" "1.11.6"
"@xtuc/long" "4.2.2"
-"@wordpress/a11y@^3.42.0":
- version "3.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/a11y/-/a11y-3.42.0.tgz#9f2de0925f39e225b51ccef8bd0faa76312835b4"
- integrity sha512-ZQPeEwBCsRD5VRkab42qgG2kC/ZaSAsvePxxLBvibGftQV+oi+V7PFgOTzsaPNgV1MmHWhSNp1pDvN9DsNAZwQ==
+"@wordpress/a11y@^3.43.0":
+ version "3.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/a11y/-/a11y-3.43.0.tgz#6369edc3c7e52ce8b357ecdebcff7b0304cfacef"
+ integrity sha512-jtBGQnjabqRIPyXSSjP2YXXD5qCY3FW2742hQo2yBrKWCwGrP2t7sdR6P6nAlRDKPMMrecK+RsyW3KKTgNgFzQ==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/dom-ready" "^3.42.0"
- "@wordpress/i18n" "^4.42.0"
+ "@wordpress/dom-ready" "^3.43.0"
+ "@wordpress/i18n" "^4.43.0"
-"@wordpress/api-fetch@^6.39.0":
- version "6.39.0"
- resolved "https://registry.yarnpkg.com/@wordpress/api-fetch/-/api-fetch-6.39.0.tgz#3c20aefdfb2f67400acc9d1fc580821d23d75ef8"
- integrity sha512-G1OeBoIvyTsGieK2CIpZOJGh0rm5mf4rkT/LDlq633iXT5Hy9eo/DrSiWVSK6eUOahwWzHNG3kijRi0dEAl9kA==
+"@wordpress/api-fetch@^6.40.0":
+ version "6.40.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/api-fetch/-/api-fetch-6.40.0.tgz#00db6a9eea32f59de6b4c9a2bdbe09d88c60ab9b"
+ integrity sha512-sNk6vZW02ldci1EpNIjmm61323x/0n2Ra/cDHuehZf8avOH/OV0zF0dXxttT8M9Fncz+XZDSIHopm76dU3Phug==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/url" "^3.43.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/url" "^3.44.0"
-"@wordpress/autop@^3.42.0":
- version "3.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/autop/-/autop-3.42.0.tgz#901ba15f1f25092c7681d006b7fde4ed2529d1ca"
- integrity sha512-+Tv0FEHkia3GkrZvUVTAmzp4gq9gV1YiH8nauV5BQmJLgpdauLxAq85cwlNxTg+nIqv9OCrdBbIb1KrV1GD+rw==
+"@wordpress/autop@^3.43.0":
+ version "3.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/autop/-/autop-3.43.0.tgz#c7a6877840558331f218425ac768ae3838c0fc64"
+ integrity sha512-JSMaiWfuRr7SzzGQTuZs6NXz1wNgA/Mj44ob73jIhus3yay2KPOKrXah3FFxwg8tidZVtQIU9zEkB7g5ZUhr7Q==
dependencies:
"@babel/runtime" "^7.16.0"
-"@wordpress/blob@^3.42.0":
- version "3.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/blob/-/blob-3.42.0.tgz#5a453b4a017d7c7080002231f04096378a065877"
- integrity sha512-XIChuUNhxLniptFIvLjFhdB7gnQemONidbLKwi/u/9YCJiTFbphCwCwhj9iXG0kYU4RLgkhjwXKZW6vT38iLxg==
+"@wordpress/blob@^3.43.0":
+ version "3.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/blob/-/blob-3.43.0.tgz#3a75ed7d34f9970e97a0877fab5768984494e5cb"
+ integrity sha512-F5msCSoo2gN0IEFeixhnyN17hsHXQ9g+rWP+1SL5qIEjiCsDO3aCp8m1h1XDlFqdJY5iYDoFX6ydbtfHo7/sjA==
dependencies:
"@babel/runtime" "^7.16.0"
-"@wordpress/block-editor@^12.10.0":
- version "12.10.0"
- resolved "https://registry.yarnpkg.com/@wordpress/block-editor/-/block-editor-12.10.0.tgz#cda84c1f98fff64efc782c3556c882adbc659046"
- integrity sha512-DTgvNPjbeWpFUP9gYmm97Xn5LL7ayQGJD7qR4dmjQohqRYJIzIfUEtOg+0N3BusxjZYzbQTetKUdpQqEyx/MuA==
+"@wordpress/block-editor@^12.11.0":
+ version "12.11.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/block-editor/-/block-editor-12.11.0.tgz#2534683466bd401b534da52b16c3d3b556dc6173"
+ integrity sha512-dnQwrZrBjSQpFaD3Uhxo6Gg76A+envI6FjTWY4Qsz916kc2vcLLkLiAKeiMb6XQui7T6VhoZM3HUOIXSLKl9BQ==
dependencies:
"@babel/runtime" "^7.16.0"
"@emotion/react" "^11.7.1"
"@emotion/styled" "^11.6.0"
"@react-spring/web" "^9.4.5"
- "@wordpress/a11y" "^3.42.0"
- "@wordpress/api-fetch" "^6.39.0"
- "@wordpress/blob" "^3.42.0"
- "@wordpress/blocks" "^12.19.0"
- "@wordpress/commands" "^0.13.0"
- "@wordpress/components" "^25.8.0"
- "@wordpress/compose" "^6.19.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/date" "^4.42.0"
- "@wordpress/deprecated" "^3.42.0"
- "@wordpress/dom" "^3.42.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/escape-html" "^2.42.0"
- "@wordpress/hooks" "^3.42.0"
- "@wordpress/html-entities" "^3.42.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/icons" "^9.33.0"
- "@wordpress/is-shallow-equal" "^4.42.0"
- "@wordpress/keyboard-shortcuts" "^4.19.0"
- "@wordpress/keycodes" "^3.42.0"
- "@wordpress/notices" "^4.10.0"
- "@wordpress/preferences" "^3.19.0"
- "@wordpress/private-apis" "^0.24.0"
- "@wordpress/rich-text" "^6.19.0"
- "@wordpress/shortcode" "^3.42.0"
- "@wordpress/style-engine" "^1.25.0"
- "@wordpress/token-list" "^2.42.0"
- "@wordpress/url" "^3.43.0"
- "@wordpress/warning" "^2.42.0"
- "@wordpress/wordcount" "^3.42.0"
+ "@wordpress/a11y" "^3.43.0"
+ "@wordpress/api-fetch" "^6.40.0"
+ "@wordpress/blob" "^3.43.0"
+ "@wordpress/blocks" "^12.20.0"
+ "@wordpress/commands" "^0.14.0"
+ "@wordpress/components" "^25.9.0"
+ "@wordpress/compose" "^6.20.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/date" "^4.43.0"
+ "@wordpress/deprecated" "^3.43.0"
+ "@wordpress/dom" "^3.43.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/escape-html" "^2.43.0"
+ "@wordpress/hooks" "^3.43.0"
+ "@wordpress/html-entities" "^3.43.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/icons" "^9.34.0"
+ "@wordpress/is-shallow-equal" "^4.43.0"
+ "@wordpress/keyboard-shortcuts" "^4.20.0"
+ "@wordpress/keycodes" "^3.43.0"
+ "@wordpress/notices" "^4.11.0"
+ "@wordpress/preferences" "^3.20.0"
+ "@wordpress/private-apis" "^0.25.0"
+ "@wordpress/rich-text" "^6.20.0"
+ "@wordpress/style-engine" "^1.26.0"
+ "@wordpress/token-list" "^2.43.0"
+ "@wordpress/url" "^3.44.0"
+ "@wordpress/warning" "^2.43.0"
+ "@wordpress/wordcount" "^3.43.0"
change-case "^4.1.2"
classnames "^2.3.1"
colord "^2.7.0"
@@ -2205,42 +2234,42 @@
remove-accents "^0.5.0"
traverse "^0.6.6"
-"@wordpress/block-library@^8.19.0":
- version "8.19.0"
- resolved "https://registry.yarnpkg.com/@wordpress/block-library/-/block-library-8.19.0.tgz#48934b5277ecf888995ed59c4b956dba4a74202e"
- integrity sha512-V8ZZjVi9ieLyILUtHsnPCYAjl9VQvof2NqG2iXH3B73BQA1QUUM0+glFtYTLgpzJcbPUJi48hUeCZRHd1p83kQ==
+"@wordpress/block-library@^8.20.0":
+ version "8.20.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/block-library/-/block-library-8.20.0.tgz#a8ff120ec4818724e957088468ebddabdd4d9f6a"
+ integrity sha512-QLupdF6THTtBaaOc4QPXLCTj4mSIAeyOfpblUaEbZMT1vV7Lj0OTwN4CMQSmnTSyC0qQT3zcRNh4vfo3FTV24A==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/a11y" "^3.42.0"
- "@wordpress/api-fetch" "^6.39.0"
- "@wordpress/autop" "^3.42.0"
- "@wordpress/blob" "^3.42.0"
- "@wordpress/block-editor" "^12.10.0"
- "@wordpress/blocks" "^12.19.0"
- "@wordpress/components" "^25.8.0"
- "@wordpress/compose" "^6.19.0"
- "@wordpress/core-data" "^6.19.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/date" "^4.42.0"
- "@wordpress/deprecated" "^3.42.0"
- "@wordpress/dom" "^3.42.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/escape-html" "^2.42.0"
- "@wordpress/hooks" "^3.42.0"
- "@wordpress/html-entities" "^3.42.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/icons" "^9.33.0"
- "@wordpress/interactivity" "^2.3.0"
- "@wordpress/keycodes" "^3.42.0"
- "@wordpress/notices" "^4.10.0"
- "@wordpress/primitives" "^3.40.0"
- "@wordpress/private-apis" "^0.24.0"
- "@wordpress/reusable-blocks" "^4.19.0"
- "@wordpress/rich-text" "^6.19.0"
- "@wordpress/server-side-render" "^4.19.0"
- "@wordpress/url" "^3.43.0"
- "@wordpress/viewport" "^5.19.0"
- "@wordpress/wordcount" "^3.42.0"
+ "@wordpress/a11y" "^3.43.0"
+ "@wordpress/api-fetch" "^6.40.0"
+ "@wordpress/autop" "^3.43.0"
+ "@wordpress/blob" "^3.43.0"
+ "@wordpress/block-editor" "^12.11.0"
+ "@wordpress/blocks" "^12.20.0"
+ "@wordpress/components" "^25.9.0"
+ "@wordpress/compose" "^6.20.0"
+ "@wordpress/core-data" "^6.20.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/date" "^4.43.0"
+ "@wordpress/deprecated" "^3.43.0"
+ "@wordpress/dom" "^3.43.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/escape-html" "^2.43.0"
+ "@wordpress/hooks" "^3.43.0"
+ "@wordpress/html-entities" "^3.43.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/icons" "^9.34.0"
+ "@wordpress/interactivity" "^2.4.0"
+ "@wordpress/keycodes" "^3.43.0"
+ "@wordpress/notices" "^4.11.0"
+ "@wordpress/primitives" "^3.41.0"
+ "@wordpress/private-apis" "^0.25.0"
+ "@wordpress/reusable-blocks" "^4.20.0"
+ "@wordpress/rich-text" "^6.20.0"
+ "@wordpress/server-side-render" "^4.20.0"
+ "@wordpress/url" "^3.44.0"
+ "@wordpress/viewport" "^5.20.0"
+ "@wordpress/wordcount" "^3.43.0"
change-case "^4.1.2"
classnames "^2.3.1"
colord "^2.7.0"
@@ -2249,35 +2278,35 @@
fast-deep-equal "^3.1.3"
memize "^2.1.0"
remove-accents "^0.5.0"
- uuid "^8.3.0"
+ uuid "^9.0.1"
-"@wordpress/block-serialization-default-parser@^4.42.0":
- version "4.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-4.42.0.tgz#4ff07b2fa7b84630890f8dedf6462507934a2537"
- integrity sha512-O6Ewh65qrZlSm1uUPS5vht2QxB0e9Zid+wqFqqIT08yl6iFnX1SNPpIa6KX9JDLEiFNi4LPfK0B0gQYG6+DtBw==
+"@wordpress/block-serialization-default-parser@^4.43.0":
+ version "4.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-4.43.0.tgz#ad2b6edf8b40b176f5aa02359f95a1fbffdd9476"
+ integrity sha512-qEglmTHnRrrjG+t/NpjWo/xkeJboHldgrdakHl17Hzk/Mw2SfK3mf2781oosttIV4yCShdeyvdt1aJMf5AQT4A==
dependencies:
"@babel/runtime" "^7.16.0"
-"@wordpress/blocks@^12.19.0":
- version "12.19.0"
- resolved "https://registry.yarnpkg.com/@wordpress/blocks/-/blocks-12.19.0.tgz#f75d11970abb5eb78acbbcff47b1c7af6a7d7d1d"
- integrity sha512-3Zj3dkpldl8/V4WmV1n6EAJeky/jRjwHiAPm/WY4x4jXBK/5zrZsaBEhENiz7J54ytM4QdsB0AxEkVHLyPML8w==
+"@wordpress/blocks@^12.20.0":
+ version "12.20.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/blocks/-/blocks-12.20.0.tgz#39feb21cea45ea5ab1a36b6482d1a772bc60ed2b"
+ integrity sha512-hCD+hnnPRevkaI6xtlmw/bvJ4Eqe4TY0weGtx0vRUMpQr2u6JoSEGGW0qKo8+Uku47wAR13hXzvyI/HiG9Vt7g==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/autop" "^3.42.0"
- "@wordpress/blob" "^3.42.0"
- "@wordpress/block-serialization-default-parser" "^4.42.0"
- "@wordpress/compose" "^6.19.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/deprecated" "^3.42.0"
- "@wordpress/dom" "^3.42.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/hooks" "^3.42.0"
- "@wordpress/html-entities" "^3.42.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/is-shallow-equal" "^4.42.0"
- "@wordpress/private-apis" "^0.24.0"
- "@wordpress/shortcode" "^3.42.0"
+ "@wordpress/autop" "^3.43.0"
+ "@wordpress/blob" "^3.43.0"
+ "@wordpress/block-serialization-default-parser" "^4.43.0"
+ "@wordpress/compose" "^6.20.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/deprecated" "^3.43.0"
+ "@wordpress/dom" "^3.43.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/hooks" "^3.43.0"
+ "@wordpress/html-entities" "^3.43.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/is-shallow-equal" "^4.43.0"
+ "@wordpress/private-apis" "^0.25.0"
+ "@wordpress/shortcode" "^3.43.0"
change-case "^4.1.2"
colord "^2.7.0"
deepmerge "^4.3.0"
@@ -2289,31 +2318,31 @@
remove-accents "^0.5.0"
showdown "^1.9.1"
simple-html-tokenizer "^0.5.7"
- uuid "^8.3.0"
+ uuid "^9.0.1"
-"@wordpress/commands@^0.13.0":
- version "0.13.0"
- resolved "https://registry.yarnpkg.com/@wordpress/commands/-/commands-0.13.0.tgz#e4911cc3308d27295cd160db3eac96e30ba657c6"
- integrity sha512-/0iDX5iuGqMdriJwOQWOpVDUXH2tfe/BmK9jFzDqWXrLXprY261sZziGPn+1iEABexvJIKuPrR95XPPoQDPegw==
+"@wordpress/commands@^0.14.0":
+ version "0.14.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/commands/-/commands-0.14.0.tgz#b6c0a8bba0436f8df44bdabb41ae51fe0f35bcaf"
+ integrity sha512-uqcd18tCqsYP6xZnF9K4PzpJSMrlFDyLB5tCO+oVMKXbmOcsXXI6uPPj/TUHthNo3svL735LXiawuMp3IkM1kQ==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/components" "^25.8.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/icons" "^9.33.0"
- "@wordpress/keyboard-shortcuts" "^4.19.0"
- "@wordpress/private-apis" "^0.24.0"
+ "@wordpress/components" "^25.9.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/icons" "^9.34.0"
+ "@wordpress/keyboard-shortcuts" "^4.20.0"
+ "@wordpress/private-apis" "^0.25.0"
classnames "^2.3.1"
cmdk "^0.2.0"
rememo "^4.0.2"
-"@wordpress/components@^25.7.0", "@wordpress/components@^25.8.0":
- version "25.8.0"
- resolved "https://registry.yarnpkg.com/@wordpress/components/-/components-25.8.0.tgz#c8368a25a003661e1044759812bf140265ff60dd"
- integrity sha512-4pAb/YUXwggbccbL6NTcMTA5caz+KlKRDeOb0hQ5MrBmPkZtc7uXlfqDR69NXIF6dHDUGtXuj5B5+62w7fb1Og==
+"@wordpress/components@^25.9.0":
+ version "25.9.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/components/-/components-25.9.0.tgz#8ee2f87fbcc3336e564c581df17f93ca0a2dcd70"
+ integrity sha512-UA7oxtxoM0POdHwFbtlwotABGXeXB8Xy/5cAElga+MjVGRNGL6nrpkQgBUwXALvR39she25t1TJKM+OwxQ5ogg==
dependencies:
- "@ariakit/react" "^0.2.12"
+ "@ariakit/react" "^0.3.3"
"@babel/runtime" "^7.16.0"
"@emotion/cache" "^11.7.1"
"@emotion/css" "^11.7.1"
@@ -2323,24 +2352,26 @@
"@emotion/utils" "^1.0.0"
"@floating-ui/react-dom" "^2.0.1"
"@radix-ui/react-dropdown-menu" "2.0.4"
+ "@types/gradient-parser" "0.1.3"
+ "@types/highlight-words-core" "1.2.1"
"@use-gesture/react" "^10.2.24"
- "@wordpress/a11y" "^3.42.0"
- "@wordpress/compose" "^6.19.0"
- "@wordpress/date" "^4.42.0"
- "@wordpress/deprecated" "^3.42.0"
- "@wordpress/dom" "^3.42.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/escape-html" "^2.42.0"
- "@wordpress/hooks" "^3.42.0"
- "@wordpress/html-entities" "^3.42.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/icons" "^9.33.0"
- "@wordpress/is-shallow-equal" "^4.42.0"
- "@wordpress/keycodes" "^3.42.0"
- "@wordpress/primitives" "^3.40.0"
- "@wordpress/private-apis" "^0.24.0"
- "@wordpress/rich-text" "^6.19.0"
- "@wordpress/warning" "^2.42.0"
+ "@wordpress/a11y" "^3.43.0"
+ "@wordpress/compose" "^6.20.0"
+ "@wordpress/date" "^4.43.0"
+ "@wordpress/deprecated" "^3.43.0"
+ "@wordpress/dom" "^3.43.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/escape-html" "^2.43.0"
+ "@wordpress/hooks" "^3.43.0"
+ "@wordpress/html-entities" "^3.43.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/icons" "^9.34.0"
+ "@wordpress/is-shallow-equal" "^4.43.0"
+ "@wordpress/keycodes" "^3.43.0"
+ "@wordpress/primitives" "^3.41.0"
+ "@wordpress/private-apis" "^0.25.0"
+ "@wordpress/rich-text" "^6.20.0"
+ "@wordpress/warning" "^2.43.0"
change-case "^4.1.2"
classnames "^2.3.1"
colord "^2.7.0"
@@ -2360,202 +2391,202 @@
reakit "^1.3.11"
remove-accents "^0.5.0"
use-lilius "^2.0.1"
- uuid "^8.3.0"
+ uuid "^9.0.1"
valtio "1.7.0"
-"@wordpress/compose@^6.19.0":
- version "6.19.0"
- resolved "https://registry.yarnpkg.com/@wordpress/compose/-/compose-6.19.0.tgz#5235e8cb45752f24c6ce2989fb6958a2fa3432cd"
- integrity sha512-BD/0n8ifluyrYAYi0wpVccKOQyctA21Y9TOErtwprY8MxQGcf8LcbAgYL9fmdjIoGOsUduZ+U/SrErJfBR4JLw==
+"@wordpress/compose@^6.20.0":
+ version "6.20.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/compose/-/compose-6.20.0.tgz#b14af359c062f3ce0cc2df40ca56f128e93c3558"
+ integrity sha512-9BOECyaz9HN7v98Lz6sAJxemcR6rnUZS2DAoGVJHxUPqYiyIRIMEax5SR6MVI/Qr1n7rFouK/0lUP7ZGRzQauA==
dependencies:
"@babel/runtime" "^7.16.0"
"@types/mousetrap" "^1.6.8"
- "@wordpress/deprecated" "^3.42.0"
- "@wordpress/dom" "^3.42.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/is-shallow-equal" "^4.42.0"
- "@wordpress/keycodes" "^3.42.0"
- "@wordpress/priority-queue" "^2.42.0"
- "@wordpress/undo-manager" "^0.2.0"
+ "@wordpress/deprecated" "^3.43.0"
+ "@wordpress/dom" "^3.43.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/is-shallow-equal" "^4.43.0"
+ "@wordpress/keycodes" "^3.43.0"
+ "@wordpress/priority-queue" "^2.43.0"
+ "@wordpress/undo-manager" "^0.3.0"
change-case "^4.1.2"
clipboard "^2.0.8"
mousetrap "^1.6.5"
use-memo-one "^1.1.1"
-"@wordpress/core-commands@^0.11.0":
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/@wordpress/core-commands/-/core-commands-0.11.0.tgz#3888735db1c15df71f5b78214c9ab16255919e9a"
- integrity sha512-nQAa3vByL0D7N3bzCs5hy914Bmd6N0DtQsW4mpoay3zUtRMWpuVwKIv+QFJhyBVNOx0buFF1F5qdqKnuJJfK7A==
+"@wordpress/core-commands@^0.12.0":
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/core-commands/-/core-commands-0.12.0.tgz#a2e9cd815c23ee139f799b263257b113accbb43c"
+ integrity sha512-PvvOpN5cDoVGmsfPw2KEKRc4dI8qmzwH5biiopCtWIEhT1HoJu0E4ei6TtBjz3yX46OoSf/JwugAMetzDw1K8Q==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/block-editor" "^12.10.0"
- "@wordpress/commands" "^0.13.0"
- "@wordpress/core-data" "^6.19.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/icons" "^9.33.0"
- "@wordpress/private-apis" "^0.24.0"
- "@wordpress/router" "^0.11.0"
- "@wordpress/url" "^3.43.0"
-
-"@wordpress/core-data@^6.19.0":
- version "6.19.0"
- resolved "https://registry.yarnpkg.com/@wordpress/core-data/-/core-data-6.19.0.tgz#439bec39d0c116c1f00aa16029d7f7312099cb90"
- integrity sha512-pwi5N/OzfLLfsydqgAzaVDRXF5+Tcot/A6SsjXH35wvX3ZZ5fQyREMqoXxDTCxXRMOGk9oG4rVqfimmEWuGo6g==
+ "@wordpress/block-editor" "^12.11.0"
+ "@wordpress/commands" "^0.14.0"
+ "@wordpress/core-data" "^6.20.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/icons" "^9.34.0"
+ "@wordpress/private-apis" "^0.25.0"
+ "@wordpress/router" "^0.12.0"
+ "@wordpress/url" "^3.44.0"
+
+"@wordpress/core-data@^6.20.0":
+ version "6.20.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/core-data/-/core-data-6.20.0.tgz#50497b783edd3a4a35500008d8c4ea965dd438cb"
+ integrity sha512-R6OE9i9pAmOJKmzsYrKNyXBRn3MeLIuSk3ocTGvEvqLTdVkky5knlVPHC4j/z/NgvJrEEyA3RFAxkw8C999j3w==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/api-fetch" "^6.39.0"
- "@wordpress/block-editor" "^12.10.0"
- "@wordpress/blocks" "^12.19.0"
- "@wordpress/compose" "^6.19.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/deprecated" "^3.42.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/html-entities" "^3.42.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/is-shallow-equal" "^4.42.0"
- "@wordpress/private-apis" "^0.24.0"
- "@wordpress/sync" "^0.4.0"
- "@wordpress/undo-manager" "^0.2.0"
- "@wordpress/url" "^3.43.0"
+ "@wordpress/api-fetch" "^6.40.0"
+ "@wordpress/block-editor" "^12.11.0"
+ "@wordpress/blocks" "^12.20.0"
+ "@wordpress/compose" "^6.20.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/deprecated" "^3.43.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/html-entities" "^3.43.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/is-shallow-equal" "^4.43.0"
+ "@wordpress/private-apis" "^0.25.0"
+ "@wordpress/rich-text" "^6.20.0"
+ "@wordpress/sync" "^0.5.0"
+ "@wordpress/undo-manager" "^0.3.0"
+ "@wordpress/url" "^3.44.0"
change-case "^4.1.2"
equivalent-key-map "^0.2.2"
fast-deep-equal "^3.1.3"
memize "^2.1.0"
rememo "^4.0.2"
- uuid "^8.3.0"
+ uuid "^9.0.1"
-"@wordpress/data@^9.12.0":
- version "9.12.0"
- resolved "https://registry.yarnpkg.com/@wordpress/data/-/data-9.12.0.tgz#fa95b12c6e9c5145bafc82cc2e61eb37a3b22d0a"
- integrity sha512-VfYykFKF1Lc4C2UHEzcT+5ADKWnTTPRmWPal4wuiKmSxAsgsIhNX12yknBhgzoMoF89i7Mlb1sUa/wHxA+sgYg==
+"@wordpress/data@^9.13.0":
+ version "9.13.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/data/-/data-9.13.0.tgz#62edce0a06082cb394a30b41bafcb8474c1ff98c"
+ integrity sha512-SayS6JsOFL2SBKIk4NFlmGLYvH7ocqOf6iuMq2aJ8E04VuExLEDqnDjxXkdOgLrrie6dOLG21EvNRk7Vc7QDOA==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/compose" "^6.19.0"
- "@wordpress/deprecated" "^3.42.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/is-shallow-equal" "^4.42.0"
- "@wordpress/priority-queue" "^2.42.0"
- "@wordpress/private-apis" "^0.24.0"
- "@wordpress/redux-routine" "^4.42.0"
+ "@wordpress/compose" "^6.20.0"
+ "@wordpress/deprecated" "^3.43.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/is-shallow-equal" "^4.43.0"
+ "@wordpress/priority-queue" "^2.43.0"
+ "@wordpress/private-apis" "^0.25.0"
+ "@wordpress/redux-routine" "^4.43.0"
deepmerge "^4.3.0"
equivalent-key-map "^0.2.2"
is-plain-object "^5.0.0"
is-promise "^4.0.0"
redux "^4.1.2"
rememo "^4.0.2"
- turbo-combine-reducers "^1.0.2"
use-memo-one "^1.1.1"
-"@wordpress/date@^4.42.0":
- version "4.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/date/-/date-4.42.0.tgz#3758370a5c5b180abb34994b838098357a6bbb77"
- integrity sha512-N2KIRyvUaj1EQybwP0gFl/RHg0eC8a1TZO5PpVOYx+NP2o22UVwd0LKn74o1CfXEIVe/HcVsXZqbQmL+WCIGCQ==
+"@wordpress/date@^4.43.0":
+ version "4.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/date/-/date-4.43.0.tgz#c07701299b0b77dcbfc996181d084f68403e511d"
+ integrity sha512-fXHXewPYogPGsQSzy1z9WIUluWof2vPkRc4KXE5vgmWaUbl5xvPEiRX4ZJcofYmKzk0ioDYrq56eDKvEgKoF+A==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/deprecated" "^3.42.0"
+ "@wordpress/deprecated" "^3.43.0"
moment "^2.29.4"
moment-timezone "^0.5.40"
-"@wordpress/deprecated@^3.42.0":
- version "3.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/deprecated/-/deprecated-3.42.0.tgz#a7d1adafd3d1fc1a50ac30ff88cbcc3eb839827d"
- integrity sha512-yQzPUp4YpD3xzBDH0658Hxx5u68+1Zeysg6MT+jOoKfeqn1zm+i8BK1lEbN/0au0Ubsj/mTJe3gJb9ag9ZsZSw==
+"@wordpress/deprecated@^3.43.0":
+ version "3.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/deprecated/-/deprecated-3.43.0.tgz#2607a69a30132d2b1e57a9a5733096e97a11904f"
+ integrity sha512-rmnehCKUEvZBH1VbQiK7YV9Yh5EQPcOO0kaf7UIGXUrH/pEpUn1PW+5Yox4ZyVNvqCQj2mbs6sqSNiIsjRWpAA==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/hooks" "^3.42.0"
+ "@wordpress/hooks" "^3.43.0"
-"@wordpress/dom-ready@^3.42.0":
- version "3.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/dom-ready/-/dom-ready-3.42.0.tgz#d8f3cf0d11773e449a4553d3f2f67c8103a95ba5"
- integrity sha512-fc02M3k7cIerNHycv1zHboyGvtrtId+51xCfrCw3VchMAY2rX6ZOKgOqMhjhRNNVgfKupTACSeY4KHyHpqnq4g==
+"@wordpress/dom-ready@^3.43.0":
+ version "3.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/dom-ready/-/dom-ready-3.43.0.tgz#6c86ffde064beb0cce1e73e16bd38a75365c7b66"
+ integrity sha512-XNlkKi9BwsvyUgTFWZbwywknagc26UmdeqaDHP1l+M3ztKw7V9FCZxyXgM9M+i0jNReREzK3EzjjG+nNzFb0+Q==
dependencies:
"@babel/runtime" "^7.16.0"
-"@wordpress/dom@^3.42.0":
- version "3.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/dom/-/dom-3.42.0.tgz#8a47caf6cffc3abd799a474058e7e6f1b34bccfd"
- integrity sha512-C/7Sof0e1JkeuFS9Qwk/AOa/mbMbyjNh4a/7NG5XxevfXoF9w3JI8LbZdy428wSHB/K2Si8uvAJ1mCqqh/IcgQ==
+"@wordpress/dom@^3.43.0":
+ version "3.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/dom/-/dom-3.43.0.tgz#17a2180310c6ae5aa42cece24a44a133b39d081f"
+ integrity sha512-fTaZvTG/0En5r+ArMOGiBUomhbpJJf2RYMMu2ok39E/alwIawZHz/qeL3706BlT4r2QPCfK/tUOHQSh13+3ocg==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/deprecated" "^3.42.0"
+ "@wordpress/deprecated" "^3.43.0"
-"@wordpress/edit-post@^7.18.0":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@wordpress/edit-post/-/edit-post-7.19.0.tgz#4ae15d6047131fa7c41c2f470f50d6348f27aff5"
- integrity sha512-trkgBrW0YPuNKtysN+C8HpPgQKfNVZTPYBrjXK+1X4pgc9DvZps99DOQW47qi6Krk1jG3qymymD2CdggYF6VdA==
+"@wordpress/edit-post@^7.20.0":
+ version "7.20.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/edit-post/-/edit-post-7.20.0.tgz#3ae20498805a5fc95ddc47a3f2187ad2f6a4b8c5"
+ integrity sha512-/QK6nV1OCnDYs4pYwNweF41QJlL+1o3oImIg88CS8GRRHnaya5AnpkQx0Ky4msqbufcTvMSWB2a1PfZQI4klXA==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/a11y" "^3.42.0"
- "@wordpress/api-fetch" "^6.39.0"
- "@wordpress/block-editor" "^12.10.0"
- "@wordpress/block-library" "^8.19.0"
- "@wordpress/blocks" "^12.19.0"
- "@wordpress/commands" "^0.13.0"
- "@wordpress/components" "^25.8.0"
- "@wordpress/compose" "^6.19.0"
- "@wordpress/core-commands" "^0.11.0"
- "@wordpress/core-data" "^6.19.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/deprecated" "^3.42.0"
- "@wordpress/dom" "^3.42.0"
- "@wordpress/editor" "^13.19.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/hooks" "^3.42.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/icons" "^9.33.0"
- "@wordpress/interface" "^5.19.0"
- "@wordpress/keyboard-shortcuts" "^4.19.0"
- "@wordpress/keycodes" "^3.42.0"
- "@wordpress/media-utils" "^4.33.0"
- "@wordpress/notices" "^4.10.0"
- "@wordpress/plugins" "^6.10.0"
- "@wordpress/preferences" "^3.19.0"
- "@wordpress/private-apis" "^0.24.0"
- "@wordpress/url" "^3.43.0"
- "@wordpress/viewport" "^5.19.0"
- "@wordpress/warning" "^2.42.0"
- "@wordpress/widgets" "^3.19.0"
+ "@wordpress/a11y" "^3.43.0"
+ "@wordpress/api-fetch" "^6.40.0"
+ "@wordpress/block-editor" "^12.11.0"
+ "@wordpress/block-library" "^8.20.0"
+ "@wordpress/blocks" "^12.20.0"
+ "@wordpress/commands" "^0.14.0"
+ "@wordpress/components" "^25.9.0"
+ "@wordpress/compose" "^6.20.0"
+ "@wordpress/core-commands" "^0.12.0"
+ "@wordpress/core-data" "^6.20.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/deprecated" "^3.43.0"
+ "@wordpress/dom" "^3.43.0"
+ "@wordpress/editor" "^13.20.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/hooks" "^3.43.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/icons" "^9.34.0"
+ "@wordpress/interface" "^5.20.0"
+ "@wordpress/keyboard-shortcuts" "^4.20.0"
+ "@wordpress/keycodes" "^3.43.0"
+ "@wordpress/media-utils" "^4.34.0"
+ "@wordpress/notices" "^4.11.0"
+ "@wordpress/plugins" "^6.11.0"
+ "@wordpress/preferences" "^3.20.0"
+ "@wordpress/private-apis" "^0.25.0"
+ "@wordpress/url" "^3.44.0"
+ "@wordpress/viewport" "^5.20.0"
+ "@wordpress/warning" "^2.43.0"
+ "@wordpress/widgets" "^3.20.0"
classnames "^2.3.1"
memize "^2.1.0"
rememo "^4.0.2"
-"@wordpress/editor@^13.19.0":
- version "13.19.0"
- resolved "https://registry.yarnpkg.com/@wordpress/editor/-/editor-13.19.0.tgz#bf0decc453cd043c8002e86b51e97d2c17730d34"
- integrity sha512-XL/Y9mrtFIth6yaxpAGtY5JzshIgd0I56Ays4sF9X2naBxQOcnFCWMDchmUwE31vedRgpWfZOEz2OvNHJk2PKg==
+"@wordpress/editor@^13.20.0":
+ version "13.20.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/editor/-/editor-13.20.0.tgz#23866c243bd01a7a7c83925d93e8a5aa0d56dc3a"
+ integrity sha512-3cylfS5UzzlAscmPdPFTYx8zPRWFyVy7Oa9RRP8yj++THKt6ExfpSywRPm5C2aviMx/8Ckpx8rkvWTSB7Sekjw==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/a11y" "^3.42.0"
- "@wordpress/api-fetch" "^6.39.0"
- "@wordpress/blob" "^3.42.0"
- "@wordpress/block-editor" "^12.10.0"
- "@wordpress/blocks" "^12.19.0"
- "@wordpress/components" "^25.8.0"
- "@wordpress/compose" "^6.19.0"
- "@wordpress/core-data" "^6.19.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/date" "^4.42.0"
- "@wordpress/deprecated" "^3.42.0"
- "@wordpress/dom" "^3.42.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/hooks" "^3.42.0"
- "@wordpress/html-entities" "^3.42.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/icons" "^9.33.0"
- "@wordpress/keyboard-shortcuts" "^4.19.0"
- "@wordpress/keycodes" "^3.42.0"
- "@wordpress/media-utils" "^4.33.0"
- "@wordpress/notices" "^4.10.0"
- "@wordpress/patterns" "^1.3.0"
- "@wordpress/preferences" "^3.19.0"
- "@wordpress/private-apis" "^0.24.0"
- "@wordpress/reusable-blocks" "^4.19.0"
- "@wordpress/rich-text" "^6.19.0"
- "@wordpress/server-side-render" "^4.19.0"
- "@wordpress/url" "^3.43.0"
- "@wordpress/wordcount" "^3.42.0"
+ "@wordpress/a11y" "^3.43.0"
+ "@wordpress/api-fetch" "^6.40.0"
+ "@wordpress/blob" "^3.43.0"
+ "@wordpress/block-editor" "^12.11.0"
+ "@wordpress/blocks" "^12.20.0"
+ "@wordpress/components" "^25.9.0"
+ "@wordpress/compose" "^6.20.0"
+ "@wordpress/core-data" "^6.20.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/date" "^4.43.0"
+ "@wordpress/deprecated" "^3.43.0"
+ "@wordpress/dom" "^3.43.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/hooks" "^3.43.0"
+ "@wordpress/html-entities" "^3.43.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/icons" "^9.34.0"
+ "@wordpress/keyboard-shortcuts" "^4.20.0"
+ "@wordpress/keycodes" "^3.43.0"
+ "@wordpress/media-utils" "^4.34.0"
+ "@wordpress/notices" "^4.11.0"
+ "@wordpress/patterns" "^1.4.0"
+ "@wordpress/preferences" "^3.20.0"
+ "@wordpress/private-apis" "^0.25.0"
+ "@wordpress/reusable-blocks" "^4.20.0"
+ "@wordpress/rich-text" "^6.20.0"
+ "@wordpress/server-side-render" "^4.20.0"
+ "@wordpress/url" "^3.44.0"
+ "@wordpress/wordcount" "^3.43.0"
classnames "^2.3.1"
date-fns "^2.28.0"
memize "^2.1.0"
@@ -2563,369 +2594,369 @@
rememo "^4.0.2"
remove-accents "^0.5.0"
-"@wordpress/element@^5.18.0", "@wordpress/element@^5.19.0":
- version "5.19.0"
- resolved "https://registry.yarnpkg.com/@wordpress/element/-/element-5.19.0.tgz#9bf65f630289dec7a8dbb436d54e721b699c9d0f"
- integrity sha512-uTRrt6zrtdXT5DkffvKSLoCw0aLOHHbV4dDnh6NNR4n2roxhPK7MQRUpybVfuzyvCTIzKPI/0E3q87AWshePNg==
+"@wordpress/element@^5.20.0":
+ version "5.20.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/element/-/element-5.20.0.tgz#424d62d6ffc7f879fb4bfd35bcb6572f9916cebf"
+ integrity sha512-EO2cXUTrACQJ0JG+nuQnnaKu/qJbnBPmTgy6HCfU90um1G3kdG/iHh+T1YCi/WqxW+6UrL7I8FbxPfcEJvvONA==
dependencies:
"@babel/runtime" "^7.16.0"
"@types/react" "^18.0.21"
"@types/react-dom" "^18.0.6"
- "@wordpress/escape-html" "^2.42.0"
+ "@wordpress/escape-html" "^2.43.0"
change-case "^4.1.2"
is-plain-object "^5.0.0"
react "^18.2.0"
react-dom "^18.2.0"
-"@wordpress/escape-html@^2.42.0":
- version "2.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/escape-html/-/escape-html-2.42.0.tgz#619a98e335f938ffcd3aaaf856ac9ef34d59e718"
- integrity sha512-hC/SfA3mrLEL1QiXEp+yEb7BhgqUkmYnXnuuuGD/xxazPVdMoW80gNxeFYnVQrNnc48EC7JbWGlTuB93D2EeMw==
+"@wordpress/escape-html@^2.43.0":
+ version "2.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/escape-html/-/escape-html-2.43.0.tgz#d6343766f10c22e425f6265111ee9b9b6fb8c716"
+ integrity sha512-+hLbsx4PXGnziUSS/7W9B47xgh2VUg11rSbe3Q3bTMCFWaYqk0cvAk5C74Re99Hiekct99HmpnmyVq+we8bkUQ==
dependencies:
"@babel/runtime" "^7.16.0"
-"@wordpress/hooks@^3.41.0", "@wordpress/hooks@^3.42.0":
- version "3.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/hooks/-/hooks-3.42.0.tgz#705521cc8d4e56f9a7e54f1c72cf49194d014135"
- integrity sha512-GUePaweJgINbOyeWDG1p0ffxKZXZIOJdkdSCG8oWoAohJPOYe8WeYl/nAsECiUjbIuVletQe1RoTGrNdNkFTdg==
+"@wordpress/hooks@^3.43.0":
+ version "3.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/hooks/-/hooks-3.43.0.tgz#78dd7d0f8b379fe7e8374916c3330d7abaa271cc"
+ integrity sha512-SHSiyFUEsggihl0pDvY1l72q+fHMDyFHtIR3GCt0uV2ifctvoa/PIYdVwrxpGQaGdNEV25XCZ4kNldqJmfTddw==
dependencies:
"@babel/runtime" "^7.16.0"
-"@wordpress/html-entities@^3.42.0":
- version "3.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/html-entities/-/html-entities-3.42.0.tgz#15c67df09c48517c537c5918c0b08368dd1e62ef"
- integrity sha512-PM2HXsCHZPMblpNFIwcJQO7an1WZyaAmmw8EbfSOb+NtE4dxj8mmvpzNfUKBtVWH5DxUk2WGslTMtjjOJPzfSg==
+"@wordpress/html-entities@^3.43.0":
+ version "3.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/html-entities/-/html-entities-3.43.0.tgz#c83f282aaee7c77fc1223d5a14af0a0a7202d329"
+ integrity sha512-e7OJU2DRa2Z6TxLq5y2/jKVjlqdVJDwwR0yNp4ajyrtGIMNJw+7PXvdgSoroD5M6UjWRuLT57crcgVT4M53nRA==
dependencies:
"@babel/runtime" "^7.16.0"
-"@wordpress/i18n@^4.41.0", "@wordpress/i18n@^4.42.0":
- version "4.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/i18n/-/i18n-4.42.0.tgz#768f5fe56d072001901d8ef738aec5986a23308d"
- integrity sha512-6cEcsVk9EX0c2azz0h1aAZqGjts+VrGMHzMB22GBIhsiz/TWAqkMapt1QF1YbsJ4/VR2CHnKlONjhHNtsHn8Ew==
+"@wordpress/i18n@^4.43.0":
+ version "4.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/i18n/-/i18n-4.43.0.tgz#cd360ea7ab57717a1aad6312dab8512355a58c54"
+ integrity sha512-XHU/vGgI+pgjJU9WzWDHke1u948z8i3OPpKUNdxc/gMcTkKaKM4D8DW1+VMSQHyU6pneP8+ph7EF+1RIehP3lQ==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/hooks" "^3.42.0"
+ "@wordpress/hooks" "^3.43.0"
gettext-parser "^1.3.1"
memize "^2.1.0"
sprintf-js "^1.1.1"
tannin "^1.2.0"
-"@wordpress/icons@^9.33.0":
- version "9.33.0"
- resolved "https://registry.yarnpkg.com/@wordpress/icons/-/icons-9.33.0.tgz#32ed6749fc9cbecf71f8737d085a128b680bad20"
- integrity sha512-yD8b2Q21/X1riFIUBbgVh6sVhrnOYpstV9hxa4/MKesWYkyDN75KM6uaor1/tn5wyq40Shnpwxvc9kPUGI4Kgw==
+"@wordpress/icons@^9.34.0":
+ version "9.34.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/icons/-/icons-9.34.0.tgz#4330e654e7a9582346852977eea24a13cdd766ae"
+ integrity sha512-yJWfvgnWnPBd/Co7VjdbCj3o2HJdP4npblJCj7LR+KcnCTPYZWMc4GU3OuzmxMByALuAndfIxgm1YDSHt/F4Wg==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/primitives" "^3.40.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/primitives" "^3.41.0"
-"@wordpress/interactivity@^2.3.0":
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/@wordpress/interactivity/-/interactivity-2.3.0.tgz#ac2475463d912192c4cbcee7c284e5edd4e6ede9"
- integrity sha512-lw6cGhGj2Zyn4RGiafQMzZxLR8vSnJ1p7FGMn5UzQCEpVH/iZ3cFYBtcNiHQU8wjsfsWPZqgvbLmh7ayPZohgA==
+"@wordpress/interactivity@^2.4.0":
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/interactivity/-/interactivity-2.4.0.tgz#610a40182f2c0ee89b067b4856a832c1bb8c467d"
+ integrity sha512-J329+xKoAnT7/J5Ad6Lhu8XrUXfmLu2H7ZvQULKGwDWZ/WAKP1AVYY+rWvrhbthqV//lLKqQuluSaKt5tM0xsA==
dependencies:
"@preact/signals" "^1.1.3"
deepsignal "^1.3.6"
preact "^10.13.2"
-"@wordpress/interface@^5.19.0":
- version "5.19.0"
- resolved "https://registry.yarnpkg.com/@wordpress/interface/-/interface-5.19.0.tgz#ee1fc81ed534c1871bd095b6910919487c9a8d0a"
- integrity sha512-/+3c9RcHKrcHMm8bZsUciNnq59UvPzVf+CvEImVz9XReSfqa6puRAs2LWY/d/L1vebruVmbEmZ/lcYrXFG6cgA==
+"@wordpress/interface@^5.20.0":
+ version "5.20.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/interface/-/interface-5.20.0.tgz#54ea88e421ac13dfe3f8fdc0ed68d6db6e4da892"
+ integrity sha512-tWZgV1o+/oTu3ZxemJ7DBhdBz61foFCrObFuPY1vvwGDSENGqmrAErsTADWldfEjZEsOJVcc9W8BBwMPx6fK5A==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/a11y" "^3.42.0"
- "@wordpress/components" "^25.8.0"
- "@wordpress/compose" "^6.19.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/deprecated" "^3.42.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/icons" "^9.33.0"
- "@wordpress/plugins" "^6.10.0"
- "@wordpress/preferences" "^3.19.0"
- "@wordpress/viewport" "^5.19.0"
+ "@wordpress/a11y" "^3.43.0"
+ "@wordpress/components" "^25.9.0"
+ "@wordpress/compose" "^6.20.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/deprecated" "^3.43.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/icons" "^9.34.0"
+ "@wordpress/plugins" "^6.11.0"
+ "@wordpress/preferences" "^3.20.0"
+ "@wordpress/viewport" "^5.20.0"
classnames "^2.3.1"
-"@wordpress/is-shallow-equal@^4.42.0":
- version "4.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/is-shallow-equal/-/is-shallow-equal-4.42.0.tgz#cc60299727fd6c9c47ab00754bac84bfcf8f1a3b"
- integrity sha512-7GwmKIfcY+gxeQZX1hFZSnzEl6I6A1mpsafVxVLZfzqMqCnViFGZFHlirpckafG7CVTddGQsr/shbX6rAG3pmw==
+"@wordpress/is-shallow-equal@^4.43.0":
+ version "4.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/is-shallow-equal/-/is-shallow-equal-4.43.0.tgz#c5e9fb72d1f9a458770f4312a13794b2fafd0ba8"
+ integrity sha512-KhEvz2V9gjq+C8v/YEYMRetOg2YI/Ik8cc8dWlOMHp7GbZAPHACplR4ZeEF8Ef2LZ8JnNL6IqW8zZzUhSOxlqg==
dependencies:
"@babel/runtime" "^7.16.0"
-"@wordpress/keyboard-shortcuts@^4.19.0":
- version "4.19.0"
- resolved "https://registry.yarnpkg.com/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-4.19.0.tgz#c7f12a8b554c1e94c348b21767de480ede845529"
- integrity sha512-LzKNZxWHXYkCzhlNQGU85fdz20yzBJEK/9MBJhxBQV0lw2T1NE+JtFz5yuy+pjIuzqQWNR9oP3BoAj2wQImdnw==
+"@wordpress/keyboard-shortcuts@^4.20.0":
+ version "4.20.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-4.20.0.tgz#ce8a72932bdcd47af5897110c565262918e92776"
+ integrity sha512-uM6Do4/h+Qdtn29BsURwl7PFh1CZA+6nsY8LOBBoxn9Pl00FUo6B1lbb7ok7bcW3O/gDdqtmw096fqvlayibtA==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/keycodes" "^3.42.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/keycodes" "^3.43.0"
rememo "^4.0.2"
-"@wordpress/keycodes@^3.42.0":
- version "3.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/keycodes/-/keycodes-3.42.0.tgz#ed4fde4b7a457f04694de8625f48a863ce9f68aa"
- integrity sha512-T1iuUUwV0Hb1VE+8wb6KgMJOWIGMF4uJdKBuTJnPaHoGK4b7PNnmh0nUkGv9e03wJhtWAWqjdiablUxB2BYe/Q==
+"@wordpress/keycodes@^3.43.0":
+ version "3.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/keycodes/-/keycodes-3.43.0.tgz#36c94065bffe72e95503c6e226d725ee4cb3c5dd"
+ integrity sha512-B6rYPiKFdQTlnJfm93R+usQnjEODUX/K4+hMvY5ZZOinvxe7KyU/xyFGz7gRrS8WmIEYcJowqSmAlGgVs4XwKQ==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/i18n" "^4.42.0"
+ "@wordpress/i18n" "^4.43.0"
change-case "^4.1.2"
-"@wordpress/media-utils@^4.33.0":
- version "4.33.0"
- resolved "https://registry.yarnpkg.com/@wordpress/media-utils/-/media-utils-4.33.0.tgz#ae26de04b430c332998dae611ce17afdf747e6dd"
- integrity sha512-BxT8AgHlkQKYZVSw9853/mIMeo4kwsfylIyvK2txXl1RX0KGqbArLSPEdsHD3jfNzidgTF8mAPbribVr5RWdWw==
+"@wordpress/media-utils@^4.34.0":
+ version "4.34.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/media-utils/-/media-utils-4.34.0.tgz#d3c6c87bbb3d3518a9943386659d203b0810e11d"
+ integrity sha512-mk7/SwAAJhKAAbIAMJorqeEbTPItEX+FEQW/H3NIgVfD0nFMDchw7iCw6HEKqjlfZ/nejnCCoSJQnn/e5ydIJQ==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/api-fetch" "^6.39.0"
- "@wordpress/blob" "^3.42.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/i18n" "^4.42.0"
+ "@wordpress/api-fetch" "^6.40.0"
+ "@wordpress/blob" "^3.43.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/i18n" "^4.43.0"
-"@wordpress/notices@^4.10.0":
- version "4.10.0"
- resolved "https://registry.yarnpkg.com/@wordpress/notices/-/notices-4.10.0.tgz#5413ef89938cf350b946d19b845b3fe0ce42f34f"
- integrity sha512-k7XLFH5uz9FPgZH9evu2bz/ehSfWmUiheUDxq/J/Tqyj1fE33RiqXprxrCYTw2ljx82XAHzcYrGJggsJpN3zog==
+"@wordpress/notices@^4.11.0":
+ version "4.11.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/notices/-/notices-4.11.0.tgz#c69d5d9a9ef6f24396c5b8f8d2c0d61411ed741d"
+ integrity sha512-D9DeVjbfIjAmF9NgJ7ZKwAXFSCgWz2fwFh95pK10V3C4GdaXwzLr4Ig3RvnK9a5Hx5vT5dzGrOSbkz9nnggLLQ==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/a11y" "^3.42.0"
- "@wordpress/data" "^9.12.0"
+ "@wordpress/a11y" "^3.43.0"
+ "@wordpress/data" "^9.13.0"
-"@wordpress/patterns@^1.3.0":
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/@wordpress/patterns/-/patterns-1.3.0.tgz#aab708692c393c6b1d4a2c608d9bef16b9beb8de"
- integrity sha512-4f0q1Cpjcl5v6Cy6UPlNCQdzsXSDNQbFc4adnGqo0eyqNSy9kJbG2e81wPtaLb++UI4+/TUysoPqkPN8P2Tnyw==
+"@wordpress/patterns@^1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/patterns/-/patterns-1.4.0.tgz#1c6da693fb6735a8547c695b997bbb6240790d93"
+ integrity sha512-dbLrOBGV5d4xA4up6OeoRH7yz19XORk3V7AFMd1BiZK/KiBou9OYbCUPIh0qMbnS+Y+TOolvzQUhg97qY6B2Yw==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/block-editor" "^12.10.0"
- "@wordpress/blocks" "^12.19.0"
- "@wordpress/components" "^25.8.0"
- "@wordpress/compose" "^6.19.0"
- "@wordpress/core-data" "^6.19.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/html-entities" "^3.42.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/icons" "^9.33.0"
- "@wordpress/notices" "^4.10.0"
- "@wordpress/private-apis" "^0.24.0"
- "@wordpress/url" "^3.43.0"
-
-"@wordpress/plugins@^6.10.0", "@wordpress/plugins@^6.9.0":
- version "6.10.0"
- resolved "https://registry.yarnpkg.com/@wordpress/plugins/-/plugins-6.10.0.tgz#89c89325e85cdb9af1294797d9756f5bedc55038"
- integrity sha512-SpZadp+tQ7uAPCpirrW4yb6VwMtFGl97z2GwVsZThMh+i/+K7cl//4e2dP7eKSOSsdiffG4xovciKpsHHmG9bg==
+ "@wordpress/block-editor" "^12.11.0"
+ "@wordpress/blocks" "^12.20.0"
+ "@wordpress/components" "^25.9.0"
+ "@wordpress/compose" "^6.20.0"
+ "@wordpress/core-data" "^6.20.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/html-entities" "^3.43.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/icons" "^9.34.0"
+ "@wordpress/notices" "^4.11.0"
+ "@wordpress/private-apis" "^0.25.0"
+ "@wordpress/url" "^3.44.0"
+
+"@wordpress/plugins@^6.11.0":
+ version "6.11.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/plugins/-/plugins-6.11.0.tgz#7cec3be7292a7c52866486ae02e6d526ec4e9d10"
+ integrity sha512-JvRET7+p67+pz/qSuh3ciS9vILtpu6Zh7m3nra1GJlYcMO9afJT8tq9Z6R4UcvqLovl4d3jAVaW9qO5yHynhAw==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/components" "^25.8.0"
- "@wordpress/compose" "^6.19.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/hooks" "^3.42.0"
- "@wordpress/icons" "^9.33.0"
- "@wordpress/is-shallow-equal" "^4.42.0"
+ "@wordpress/components" "^25.9.0"
+ "@wordpress/compose" "^6.20.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/hooks" "^3.43.0"
+ "@wordpress/icons" "^9.34.0"
+ "@wordpress/is-shallow-equal" "^4.43.0"
memize "^2.0.1"
-"@wordpress/preferences@^3.19.0":
- version "3.19.0"
- resolved "https://registry.yarnpkg.com/@wordpress/preferences/-/preferences-3.19.0.tgz#39075166125ff121ef3e672ce66618ac4d4f32da"
- integrity sha512-gjqYtanB6A42rw29aB/c+gOSMaEEqtLlYvAQkaDjjtWlBytx9MeyvLS28u8wS1RlGv7VBVwVkB11GD6dvQUuRQ==
+"@wordpress/preferences@^3.20.0":
+ version "3.20.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/preferences/-/preferences-3.20.0.tgz#48d1aaa4aeede409ba3c57e850dce8bbc5f331b5"
+ integrity sha512-Tx5an6xiNGC6pCS8X4Uox15j/IE3zxhEG/yfDhkp9MGPzDs53S9F0rsyU7IKtthPYkjW1gQOhJfLgSUasuf3zg==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/a11y" "^3.42.0"
- "@wordpress/components" "^25.8.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/icons" "^9.33.0"
+ "@wordpress/a11y" "^3.43.0"
+ "@wordpress/components" "^25.9.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/icons" "^9.34.0"
classnames "^2.3.1"
-"@wordpress/primitives@^3.40.0":
- version "3.40.0"
- resolved "https://registry.yarnpkg.com/@wordpress/primitives/-/primitives-3.40.0.tgz#75bf79546cf80a57d667385abb62b2595b9da750"
- integrity sha512-NGrcMsIKA7bBRVJPkiweOeUlnai335fyQTpwASwkpfWLbUTQ+LwKDn6hnwAsLpYot7uwflar2TPJdakglwzfIQ==
+"@wordpress/primitives@^3.41.0":
+ version "3.41.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/primitives/-/primitives-3.41.0.tgz#aa21969bbdec950bca34a922bc0ec6857af049ab"
+ integrity sha512-md+4T5VWkWOLSa0p7rBPnKppa30EgYYAdfvqDXLzZTcaO1ZNJAJM3VtLkQPN2qsvLjy3ToT1ZmGF0jsoCP2bAg==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/element" "^5.19.0"
+ "@wordpress/element" "^5.20.0"
classnames "^2.3.1"
-"@wordpress/priority-queue@^2.42.0":
- version "2.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/priority-queue/-/priority-queue-2.42.0.tgz#7c1b052d52ec2c6c0d840a5245fea9cbd73d3ce8"
- integrity sha512-AzK9Ds97Wf9lQsukCiX2MKEDe9Txq3vvFhHOS1Gvi2Dji1/DhM9jZ7nBB/dcVQSt5rPyY+1tX9LhjpzeaQgzxg==
+"@wordpress/priority-queue@^2.43.0":
+ version "2.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/priority-queue/-/priority-queue-2.43.0.tgz#9ca994246c5cf3c8b7d661053b7d140d08b8e34c"
+ integrity sha512-jDsiF+3rMm6jme61AUHxHEIF1gfkCptO/MUdzh7uzyd5ZFnYG8kz+0zU2VX2bXlbqWHYmTsYr446rxTl7nkqRQ==
dependencies:
"@babel/runtime" "^7.16.0"
requestidlecallback "^0.3.0"
-"@wordpress/private-apis@^0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@wordpress/private-apis/-/private-apis-0.24.0.tgz#8928216775207163f2569b0300b66892a838f7bb"
- integrity sha512-KrgDubqppZ+hIbEllIwEDHkXBaAUYmV1dfMLUu6YQpHHlB1ogf3OTkNWmDks8k+9VfywwYnsoWpRuSy3G4WNMA==
+"@wordpress/private-apis@^0.25.0":
+ version "0.25.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/private-apis/-/private-apis-0.25.0.tgz#ebbb7d145cb6d023feb5851a90130b2136abd55d"
+ integrity sha512-y1+U+wAwcjQ5QTDEDGvJbcc0VhyFx0tJh61i6eeBYy2mFXRGJDHyQVjp3agO8YXQdyHeAusVVOKTMT7mZdzUMw==
dependencies:
"@babel/runtime" "^7.16.0"
-"@wordpress/redux-routine@^4.42.0":
- version "4.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/redux-routine/-/redux-routine-4.42.0.tgz#1c3e68f638b387949c6d29e788f7f5b0fcd80e29"
- integrity sha512-Kt6cLKmPXBh4IYYskR9NMxANTD6soEdt0DLq71vuaoc9SC5akR7J+ChiDpgffHO6zvy5Duc9kWfiC/BRJPi9NQ==
+"@wordpress/redux-routine@^4.43.0":
+ version "4.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/redux-routine/-/redux-routine-4.43.0.tgz#20b7bde0741fed4fe57532fdb08cf201d6ce612b"
+ integrity sha512-Tc7Q2QgHm+KrWKWCATX+FlaZGaTK/xTFY1m51iWoAJFzvlIoiFOfoVH2FHDppxnxCrvNrRdu2FTagoxx9UzpLw==
dependencies:
"@babel/runtime" "^7.16.0"
is-plain-object "^5.0.0"
is-promise "^4.0.0"
rungen "^0.3.2"
-"@wordpress/reusable-blocks@^4.19.0":
- version "4.19.0"
- resolved "https://registry.yarnpkg.com/@wordpress/reusable-blocks/-/reusable-blocks-4.19.0.tgz#55168d5638b7de23cb166e0882439641d269adff"
- integrity sha512-8NkiepDcFKZ6h8xa3/jL3cAGLoXrt+kpoYN2uLheJKiKWfXgAhvWuyFhFRwKKHPX31k1fN5aX7RL0lLCFRacuQ==
+"@wordpress/reusable-blocks@^4.20.0":
+ version "4.20.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/reusable-blocks/-/reusable-blocks-4.20.0.tgz#757a3884a4b7d60507cc546bb150dfcdff6e3b95"
+ integrity sha512-4qX5aktLKC0ffvQ2gE9F/5y9rCyPQBTg8PCVrFMK9PUTrlZqAkPg2BytBzIn7sEWmYQq9IEuJRR95cLsc1ZZEA==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/block-editor" "^12.10.0"
- "@wordpress/blocks" "^12.19.0"
- "@wordpress/components" "^25.8.0"
- "@wordpress/core-data" "^6.19.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/icons" "^9.33.0"
- "@wordpress/notices" "^4.10.0"
- "@wordpress/private-apis" "^0.24.0"
- "@wordpress/url" "^3.43.0"
-
-"@wordpress/rich-text@^6.19.0":
- version "6.19.0"
- resolved "https://registry.yarnpkg.com/@wordpress/rich-text/-/rich-text-6.19.0.tgz#a3a86443fcaeb4c20fe58974f54d5fd57a680187"
- integrity sha512-yvZAK6XxF0DDdnkPipSObT364+KMG1yt6sQIE3Zh/bdslr3W/OsxrfycJVB9Tewx/CyNl1hEEcq0vq/NHonWIQ==
+ "@wordpress/block-editor" "^12.11.0"
+ "@wordpress/blocks" "^12.20.0"
+ "@wordpress/components" "^25.9.0"
+ "@wordpress/core-data" "^6.20.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/icons" "^9.34.0"
+ "@wordpress/notices" "^4.11.0"
+ "@wordpress/private-apis" "^0.25.0"
+ "@wordpress/url" "^3.44.0"
+
+"@wordpress/rich-text@^6.20.0":
+ version "6.20.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/rich-text/-/rich-text-6.20.0.tgz#036f461ff7f74c56939a52ce5296964765077458"
+ integrity sha512-MRjSVm6OE4xkgQRIXx+PJUZk9FKJbFVfpSRQDyhjppMDTIxaxPYyiGIkTa3yxTmk1OZu8yfF5eE6oxzxoN1vjg==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/a11y" "^3.42.0"
- "@wordpress/compose" "^6.19.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/deprecated" "^3.42.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/escape-html" "^2.42.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/keycodes" "^3.42.0"
+ "@wordpress/a11y" "^3.43.0"
+ "@wordpress/compose" "^6.20.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/deprecated" "^3.43.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/escape-html" "^2.43.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/keycodes" "^3.43.0"
memize "^2.1.0"
rememo "^4.0.2"
-"@wordpress/router@^0.11.0":
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/@wordpress/router/-/router-0.11.0.tgz#dff1a4c2373be9500661a06369bf7df75abb29b8"
- integrity sha512-PtWZTUYOn3yiy+67qEY4hGyIeC5Kue6hjfaxkyJMQpBDjeIZInWYJ7qCTIyMGxDtwl/fkA/7EPUSs9q0XM2f4Q==
+"@wordpress/router@^0.12.0":
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/router/-/router-0.12.0.tgz#ed2293895bf580d1336e313de173078f55b70d00"
+ integrity sha512-rXxow4SEZUGPgaJsPGfb0j/bsTPaDWUsOVge2DcVwR4UdG0MCQ+0lO5IGxVaHG4O3s5FIEoCMZ/5bCkTuiMEkg==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/private-apis" "^0.24.0"
- "@wordpress/url" "^3.43.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/private-apis" "^0.25.0"
+ "@wordpress/url" "^3.44.0"
history "^5.1.0"
-"@wordpress/server-side-render@^4.19.0":
- version "4.19.0"
- resolved "https://registry.yarnpkg.com/@wordpress/server-side-render/-/server-side-render-4.19.0.tgz#0cd48377fdecfd9a542dfcf29116e2855ca32eb2"
- integrity sha512-5giLJahslEWxkY9TjHkk2kwMoITJMldDDtbdqvD0X9NVWiYnaQZvW3PZIlAkbgZHhPhvAvyjzKQqGtNlD/jP5Q==
+"@wordpress/server-side-render@^4.20.0":
+ version "4.20.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/server-side-render/-/server-side-render-4.20.0.tgz#2ef816332c45b28630d989bbf2a751b6b529f0b1"
+ integrity sha512-ZvD67w2PUlJYFZShYpw0uAFyF9Mnq70E/0km3h/lXoY3N3V6pjglTMtARz9Skmm7Y4YN4IF7UQY88zSsapPezw==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/api-fetch" "^6.39.0"
- "@wordpress/blocks" "^12.19.0"
- "@wordpress/components" "^25.8.0"
- "@wordpress/compose" "^6.19.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/deprecated" "^3.42.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/url" "^3.43.0"
+ "@wordpress/api-fetch" "^6.40.0"
+ "@wordpress/blocks" "^12.20.0"
+ "@wordpress/components" "^25.9.0"
+ "@wordpress/compose" "^6.20.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/deprecated" "^3.43.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/url" "^3.44.0"
fast-deep-equal "^3.1.3"
-"@wordpress/shortcode@^3.42.0":
- version "3.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/shortcode/-/shortcode-3.42.0.tgz#2d441f7a10404ba8b280bb6f1a452059771a4902"
- integrity sha512-UFtGvUWAc40cVlHMNOYCD5PdUU2vwymlK423oYeq1Y1pcO5XM5zztoi4jeeLVeNp17+VekCbVtJtkNvWGDZzLg==
+"@wordpress/shortcode@^3.43.0":
+ version "3.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/shortcode/-/shortcode-3.43.0.tgz#d12478cbbf216f4f4b7c9a70da3b098dcafecddb"
+ integrity sha512-vUnrXAoRYi/6ccd08KbFfMZgVxwuLYVRBH6vrGOHsQqPJLYPNkuz11CbM8qd/xUL0j/G2ge17UYH4BTgiKPqhg==
dependencies:
"@babel/runtime" "^7.16.0"
memize "^2.0.1"
-"@wordpress/style-engine@^1.25.0":
- version "1.25.0"
- resolved "https://registry.yarnpkg.com/@wordpress/style-engine/-/style-engine-1.25.0.tgz#308ad6b1a74b3b387f9b1e88420040bca531872c"
- integrity sha512-sgkzLQW5mNnYukm2PY1PK2s/U09F604q9jbCVvl7o8td75PYEwVsKuin0xtozYneUK9mlaF4YM6Tckq9eHTClw==
+"@wordpress/style-engine@^1.26.0":
+ version "1.26.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/style-engine/-/style-engine-1.26.0.tgz#d8a1d6e2dd966a5e89de0cf69c0d40a3983bf0d4"
+ integrity sha512-+HnlNdpXQtEFD/DotWNHI1cMMVYWAGyYQiNsDd43coLvFRUwDF8ZQxBNAUAfL/KIxm92s9bipmlsJAx8X9LNWQ==
dependencies:
"@babel/runtime" "^7.16.0"
change-case "^4.1.2"
-"@wordpress/sync@^0.4.0":
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/@wordpress/sync/-/sync-0.4.0.tgz#644a2f466e558592453ab9ea43fc994a2c0a82a0"
- integrity sha512-eeNCY7graDHS7kwrtwPecpJLbCEs2odfHtmsCEetlZnksDr+ohlVZIlmO+JwuVZiAQqedGf5dgIyvCVIDw/xSA==
+"@wordpress/sync@^0.5.0":
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/sync/-/sync-0.5.0.tgz#00c3734c2bead0410f18a4d92296db173249348f"
+ integrity sha512-S1//DqH7XDG5GgXkjH1BpX2KZR0VJJaGdEYMhqnkjS0UgpQ0JAsz2R1zO9I1jfAiU47cV8rd9dAc9J74wcjbnw==
dependencies:
"@babel/runtime" "^7.16.0"
y-indexeddb "~9.0.11"
y-webrtc "~10.2.5"
yjs "~13.6.6"
-"@wordpress/token-list@^2.42.0":
- version "2.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/token-list/-/token-list-2.42.0.tgz#55792d219b2a76f358ecf14e4d85df04b0b8d4db"
- integrity sha512-c8eGFsXaFsAJ4VsKr1puwGXU+fPG/p6+SNuHkPq2b4DL6F/GOvW9uW0ud9yr1Cjx1eCC9sse12w5xy5WWcEUmQ==
+"@wordpress/token-list@^2.43.0":
+ version "2.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/token-list/-/token-list-2.43.0.tgz#72d0c9dd858429de26ed14514d53c16a86441e32"
+ integrity sha512-g7DfKZy//IFpABM/xxdbxV2mk8ams/lNulp2DjMns8YzvrylKbr2ZW/QlqWwkjIctPNSjN6+cB4+26nNqaIliQ==
dependencies:
"@babel/runtime" "^7.16.0"
-"@wordpress/undo-manager@^0.2.0":
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/@wordpress/undo-manager/-/undo-manager-0.2.0.tgz#e6f71d394da9d26497a91f647181adec65772002"
- integrity sha512-Ke8M16P3itOgRt4Rv2ptNQ5elw2k7tm8kfHkqvIglGjPVXqUhCzrhdejDzApkxL5otTH4m0T4uFAPX/dLRrl9g==
+"@wordpress/undo-manager@^0.3.0":
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/undo-manager/-/undo-manager-0.3.0.tgz#e76ec0652ba61ac261e339cef1dd7ee91aa7ad74"
+ integrity sha512-buZRSisLRgQKJrhr7c1FSydrWgHEH/0AxlEJ9gqIjsUHsG6D39Cx6RcZYX5eW5NBL3nTDVeVD4STNyHGNA+ZdQ==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/is-shallow-equal" "^4.42.0"
+ "@wordpress/is-shallow-equal" "^4.43.0"
-"@wordpress/url@^3.43.0":
- version "3.43.0"
- resolved "https://registry.yarnpkg.com/@wordpress/url/-/url-3.43.0.tgz#84b0a1268e43aa04c643fefd3b3532cb67be4b66"
- integrity sha512-4Mh7qqP33+RpT90Opsv2qJqqn8Imonofv8IC5P+qnS9gAnozB5req/XF0VqIp1PMzPaylO1Yd8jX2YvtD+GX/Q==
+"@wordpress/url@^3.44.0":
+ version "3.44.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/url/-/url-3.44.0.tgz#e9b7ee9cba6389a2a00d590ce7c14337f97807c3"
+ integrity sha512-QNtTPFg/cGHTJLOvOtQCvCgn5quFQgJml8A88I05o4dyUH/tc92rb8LNXi0qcVz/z4JPrx2g3+Ki8heYellP4A==
dependencies:
"@babel/runtime" "^7.16.0"
remove-accents "^0.5.0"
-"@wordpress/viewport@^5.19.0":
- version "5.19.0"
- resolved "https://registry.yarnpkg.com/@wordpress/viewport/-/viewport-5.19.0.tgz#caae040ae43c82453b89369b6e82c2870c539824"
- integrity sha512-AlyW2SdO4XjiKuALNUdHAI3HBa8TN/BQA0KmWJHvK+Y1CBax0CK+l3I2OYum9KyeEMn1EITOMYxfh6SvY/SBtQ==
+"@wordpress/viewport@^5.20.0":
+ version "5.20.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/viewport/-/viewport-5.20.0.tgz#2e603ebc56ec30fa82f76233a49e19ddacbc4fb6"
+ integrity sha512-FIJHYjL//zT5K2jJEYeddWnTgw5R/PWl1Yg3bTGsz4fhuHg5mFHKHiKG99l9pX5eaMKJQ82h9jT1as/xi3KPCw==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/compose" "^6.19.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/element" "^5.19.0"
+ "@wordpress/compose" "^6.20.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/element" "^5.20.0"
-"@wordpress/warning@^2.42.0":
- version "2.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/warning/-/warning-2.42.0.tgz#6e0b47cbad3835bf130bc08ed4039a7527dc31b7"
- integrity sha512-EfJ9EBmqHu9RkM3PpcTY7CJWGj5huR1X8x3LJ2RWLg5vmHu35dtpGje7ecssUPLxZYwAiUxfc+DeN51pG9mVzg==
+"@wordpress/warning@^2.43.0":
+ version "2.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/warning/-/warning-2.43.0.tgz#6bdaa6c21e3910879727c8555a4c64c1630ef71d"
+ integrity sha512-LPTc3Vf3Vy9DpL1foC49PCeGKnid9JdahPoaZhFX/WMG1VLelLBEwSLln/x7cq6c+8e8xbbex02t5IhbtLiEIw==
-"@wordpress/widgets@^3.19.0":
- version "3.19.0"
- resolved "https://registry.yarnpkg.com/@wordpress/widgets/-/widgets-3.19.0.tgz#0ebdd8d7336087c70e8ef415b37eefa71bcc96b1"
- integrity sha512-S0Mzi0DsyqIIDhYkC5Ps5MNTbXFmF/z04DANRKMN0fPCGDU19KSa4i45BV5hEfHFHRAAn8oqNlOcgjmY/qjh8Q==
+"@wordpress/widgets@^3.20.0":
+ version "3.20.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/widgets/-/widgets-3.20.0.tgz#1c29ebc843cd88f4e147d60584df6c938f0f9946"
+ integrity sha512-nfAHRiwb8kNFj2S23MVpRRLI+gdpphC96Ys5UwkmYIRye5rLyRd3vckyZjuVQBem2cPSYOtKMnfc/5jiR127rg==
dependencies:
"@babel/runtime" "^7.16.0"
- "@wordpress/api-fetch" "^6.39.0"
- "@wordpress/block-editor" "^12.10.0"
- "@wordpress/blocks" "^12.19.0"
- "@wordpress/components" "^25.8.0"
- "@wordpress/compose" "^6.19.0"
- "@wordpress/core-data" "^6.19.0"
- "@wordpress/data" "^9.12.0"
- "@wordpress/element" "^5.19.0"
- "@wordpress/i18n" "^4.42.0"
- "@wordpress/icons" "^9.33.0"
- "@wordpress/notices" "^4.10.0"
+ "@wordpress/api-fetch" "^6.40.0"
+ "@wordpress/block-editor" "^12.11.0"
+ "@wordpress/blocks" "^12.20.0"
+ "@wordpress/components" "^25.9.0"
+ "@wordpress/compose" "^6.20.0"
+ "@wordpress/core-data" "^6.20.0"
+ "@wordpress/data" "^9.13.0"
+ "@wordpress/element" "^5.20.0"
+ "@wordpress/i18n" "^4.43.0"
+ "@wordpress/icons" "^9.34.0"
+ "@wordpress/notices" "^4.11.0"
classnames "^2.3.1"
-"@wordpress/wordcount@^3.42.0":
- version "3.42.0"
- resolved "https://registry.yarnpkg.com/@wordpress/wordcount/-/wordcount-3.42.0.tgz#e239c513f6c1ab5c5dadd0a36778b0b7eaa7df5a"
- integrity sha512-IH93FertNhMORamKrVwzC7U5oosG8rxwXF4JKuDz7ds7puCZNl4g37FNDHysUP69EctpLMQQeI5iVjqW5AzYMA==
+"@wordpress/wordcount@^3.43.0":
+ version "3.43.0"
+ resolved "https://registry.yarnpkg.com/@wordpress/wordcount/-/wordcount-3.43.0.tgz#2c804920ced2e1016119994c4eac757908dca660"
+ integrity sha512-++mxwBJpjRr65JT6dx0jOT4Ffhh0wuoCHJLgz/qulBMjPh9xiLpUBMhjdaed1DRaOeJIxPV8q4zHL5SHcJS3Ng==
dependencies:
"@babel/runtime" "^7.16.0"
@@ -2939,6 +2970,16 @@
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
+"@yarnpkg/lockfile@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
+ integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==
+
+abbrev@1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
+
accepts@~1.3.4:
version "1.3.8"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
@@ -3399,6 +3440,11 @@ asynciterator.prototype@^1.0.0:
dependencies:
has-symbols "^1.0.3"
+at-least-node@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
+ integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+
atob@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
@@ -3804,7 +3850,7 @@ capital-case@^1.0.4:
tslib "^2.0.3"
upper-case-first "^2.0.2"
-chalk@4.1.2, chalk@^4.0.0:
+chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -3850,7 +3896,7 @@ change-case@^4.1.2:
snake-case "^3.0.4"
tslib "^2.0.3"
-"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1:
+"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1, chokidar@^3.5.2:
version "3.5.3"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
@@ -3889,7 +3935,7 @@ chrome-trace-event@^1.0.2:
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
-ci-info@^3.8.0:
+ci-info@^3.7.0, ci-info@^3.8.0:
version "3.9.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
@@ -4220,7 +4266,7 @@ crc32-stream@^4.0.2:
crc-32 "^1.2.0"
readable-stream "^3.4.0"
-cross-spawn@^7.0.0, cross-spawn@^7.0.2:
+cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -5341,6 +5387,13 @@ find-up@^6.3.0:
locate-path "^7.1.0"
path-exists "^5.0.0"
+find-yarn-workspace-root@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd"
+ integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==
+ dependencies:
+ micromatch "^4.0.2"
+
findup-sync@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc"
@@ -5487,6 +5540,16 @@ fs-extra@^0.26.7:
path-is-absolute "^1.0.0"
rimraf "^2.2.8"
+fs-extra@^9.0.0:
+ version "9.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
+ integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
+ dependencies:
+ at-least-node "^1.0.0"
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
fs-mkdirp-stream@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb"
@@ -6112,6 +6175,11 @@ ieee754@^1.1.13, ieee754@^1.2.1:
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+ignore-by-default@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
+ integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==
+
ignore@^5.2.0, ignore@^5.2.4:
version "5.2.4"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
@@ -6339,6 +6407,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
is-data-descriptor "^1.0.0"
kind-of "^6.0.2"
+is-docker@^2.0.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
+ integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
@@ -6574,6 +6647,13 @@ is-wsl@^1.1.0:
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==
+is-wsl@^2.1.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
+ integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
+ dependencies:
+ is-docker "^2.0.0"
+
isarray@1.0.0, isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
@@ -6687,6 +6767,13 @@ json-stable-stringify-without-jsonify@^1.0.1:
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
+json-stable-stringify@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz#e06f23128e0bbe342dc996ed5a19e28b57b580e0"
+ integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==
+ dependencies:
+ jsonify "^0.0.1"
+
json5@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
@@ -6713,6 +6800,20 @@ jsonfile@^3.0.0:
optionalDependencies:
graceful-fs "^4.1.6"
+jsonfile@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
+ integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+ dependencies:
+ universalify "^2.0.0"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsonify@^0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978"
+ integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==
+
"jsx-ast-utils@^2.4.1 || ^3.0.0":
version "3.3.5"
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a"
@@ -6764,6 +6865,13 @@ kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+klaw-sync@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c"
+ integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==
+ dependencies:
+ graceful-fs "^4.1.11"
+
klaw@^1.0.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
@@ -7346,6 +7454,29 @@ node-releases@^2.0.13:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d"
integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==
+nodemon@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.0.1.tgz#affe822a2c5f21354466b2fc8ae83277d27dadc7"
+ integrity sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==
+ dependencies:
+ chokidar "^3.5.2"
+ debug "^3.2.7"
+ ignore-by-default "^1.0.1"
+ minimatch "^3.1.2"
+ pstree.remy "^1.1.8"
+ semver "^7.5.3"
+ simple-update-notifier "^2.0.0"
+ supports-color "^5.5.0"
+ touch "^3.1.0"
+ undefsafe "^2.0.5"
+
+nopt@~1.0.10:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
+ integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==
+ dependencies:
+ abbrev "1"
+
normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@@ -7540,6 +7671,14 @@ once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0:
dependencies:
wrappy "1"
+open@^7.4.2:
+ version "7.4.2"
+ resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321"
+ integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==
+ dependencies:
+ is-docker "^2.0.0"
+ is-wsl "^2.1.1"
+
openurl@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/openurl/-/openurl-1.1.1.tgz#3875b4b0ef7a52c156f0db41d4609dbb0f94b387"
@@ -7578,6 +7717,11 @@ os-locale@^1.4.0:
dependencies:
lcid "^1.0.0"
+os-tmpdir@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+ integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
+
p-limit@^2.0.0, p-limit@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
@@ -7701,6 +7845,27 @@ pascalcase@^0.1.1:
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==
+patch-package@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-8.0.0.tgz#d191e2f1b6e06a4624a0116bcb88edd6714ede61"
+ integrity sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==
+ dependencies:
+ "@yarnpkg/lockfile" "^1.1.0"
+ chalk "^4.1.2"
+ ci-info "^3.7.0"
+ cross-spawn "^7.0.3"
+ find-yarn-workspace-root "^2.0.0"
+ fs-extra "^9.0.0"
+ json-stable-stringify "^1.0.2"
+ klaw-sync "^6.0.0"
+ minimist "^1.2.6"
+ open "^7.4.2"
+ rimraf "^2.6.3"
+ semver "^7.5.3"
+ slash "^2.0.0"
+ tmp "^0.0.33"
+ yaml "^2.2.2"
+
path-case@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f"
@@ -8129,6 +8294,11 @@ postcss@^8.4.21, postcss@^8.4.27, postcss@^8.4.30, postcss@^8.4.31:
picocolors "^1.0.0"
source-map-js "^1.0.2"
+postinstall-postinstall@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3"
+ integrity sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ==
+
preact@^10.13.2:
version "10.18.1"
resolved "https://registry.yarnpkg.com/preact/-/preact-10.18.1.tgz#3b84bb305f0b05f4ad5784b981d15fcec4e105da"
@@ -8168,6 +8338,11 @@ prr@~1.0.1:
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==
+pstree.remy@^1.1.8:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a"
+ integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==
+
pump@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
@@ -8711,7 +8886,7 @@ reusify@^1.0.4:
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-rimraf@^2.2.8:
+rimraf@^2.2.8, rimraf@^2.6.3:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
@@ -8732,6 +8907,13 @@ rimraf@^5.0.5:
dependencies:
glob "^10.3.7"
+rollup@^3.29.4:
+ version "3.29.4"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981"
+ integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==
+ optionalDependencies:
+ fsevents "~2.3.2"
+
run-parallel@^1.1.9:
version "1.2.0"
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
@@ -8847,7 +9029,7 @@ semver@^6.3.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-semver@^7.3.4, semver@^7.5.4:
+semver@^7.3.4, semver@^7.5.3, semver@^7.5.4:
version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
@@ -9002,6 +9184,18 @@ simple-peer@^9.11.0:
randombytes "^2.1.0"
readable-stream "^3.6.0"
+simple-update-notifier@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz#d70b92bdab7d6d90dfd73931195a30b6e3d7cebb"
+ integrity sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==
+ dependencies:
+ semver "^7.5.3"
+
+slash@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
+ integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
+
slash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
@@ -9537,7 +9731,7 @@ supports-color@^2.0.0:
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==
-supports-color@^5.3.0:
+supports-color@^5.3.0, supports-color@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
@@ -9640,7 +9834,7 @@ ternary-stream@^3.0.0:
merge-stream "^2.0.0"
through2 "^3.0.1"
-terser-webpack-plugin@^5.3.7:
+terser-webpack-plugin@^5.3.7, terser-webpack-plugin@^5.3.9:
version "5.3.9"
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1"
integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==
@@ -9712,6 +9906,13 @@ tiny-emitter@^2.0.0:
resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
+tmp@^0.0.33:
+ version "0.0.33"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
+ dependencies:
+ os-tmpdir "~1.0.2"
+
to-absolute-glob@^2.0.0, to-absolute-glob@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b"
@@ -9769,6 +9970,13 @@ toidentifier@1.0.1:
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+touch@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b"
+ integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==
+ dependencies:
+ nopt "~1.0.10"
+
traverse@^0.6.6:
version "0.6.7"
resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.7.tgz#46961cd2d57dd8706c36664acde06a248f1173fe"
@@ -9799,11 +10007,6 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
-turbo-combine-reducers@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/turbo-combine-reducers/-/turbo-combine-reducers-1.0.2.tgz#aa3650b3c63daa6804d35a4042014f6d31df1e47"
- integrity sha512-gHbdMZlA6Ym6Ur5pSH/UWrNQMIM9IqTH6SoL1DbHpqEdQ8i+cFunSmSlFykPt0eGQwZ4d/XTHOl74H0/kFBVWw==
-
type-check@^0.4.0, type-check@~0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
@@ -9910,6 +10113,11 @@ unc-path-regex@^0.1.2:
resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==
+undefsafe@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c"
+ integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==
+
undertaker-registry@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50"
@@ -9977,6 +10185,11 @@ universalify@^0.1.0:
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+universalify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
+ integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
+
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
@@ -10081,10 +10294,10 @@ utils-merge@1.0.1:
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
-uuid@^8.3.0:
- version "8.3.2"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
- integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+uuid@^9.0.1:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
+ integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
v8flags@^3.2.0:
version "3.2.0"
@@ -10445,6 +10658,11 @@ yaml@^1.10.0, yaml@^1.10.2:
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+yaml@^2.2.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.2.tgz#f522db4313c671a0ca963a75670f1c12ea909144"
+ integrity sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==
+
yargs-parser@^15.0.1:
version "15.0.3"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115"