Redux Framework - Version 4.3.5

Version Description

  • Added: Add former premium feature: Option panel Search Bar. See Sample demo or the docs site.
  • Added: Add former premium feature: Shortcodes. See Sample demo or the docs site.
  • Fixed: #3852 - Editor in metaboxes not saving HTML. WIll now save the same HTML posts/pages allows.
  • Fixed: Front end formatting issue with the Extendify template library.
  • Release date: December 01, 2021
Download this release

Release Info

Developer dovyp
Plugin Icon 128x128 Redux Framework
Version 4.3.5
Comparing to
See all releases

Code changes from version 4.3.4 to 4.3.5

Files changed (26) hide show
  1. readme.txt +9 -2
  2. redux-core/extendify-sdk/bin/clean-build-files.sh +1 -1
  3. redux-core/extendify-sdk/editorplus/EditorPlus.php +0 -5
  4. redux-core/extendify-sdk/extendify-sdk.php +0 -1
  5. redux-core/extendify-sdk/public/build/extendify-utilities.css +1 -1
  6. redux-core/extendify-sdk/readme.txt +1 -1
  7. redux-core/extendify-sdk/utility-framework/classes/columns.css +3 -3
  8. redux-core/framework.php +1 -1
  9. redux-core/inc/classes/class-redux-args.php +1 -0
  10. redux-core/inc/classes/class-redux-functions-ex.php +4 -1
  11. redux-core/inc/classes/class-redux-helpers.php +2 -2
  12. redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php +3 -7
  13. redux-core/inc/extensions/search/class-redux-extension-search.php +106 -0
  14. redux-core/inc/extensions/search/redux-extension-search.css +21 -0
  15. redux-core/inc/extensions/search/redux-extension-search.css.map +1 -0
  16. redux-core/inc/extensions/search/redux-extension-search.js +96 -0
  17. redux-core/inc/extensions/search/redux-extension-search.min.css +1 -0
  18. redux-core/inc/extensions/search/redux-extension-search.min.js +1 -0
  19. redux-core/inc/extensions/search/redux-extension-search.scss +55 -0
  20. redux-core/inc/extensions/shortcodes/class-redux-extension-shortcodes.php +55 -0
  21. redux-core/inc/extensions/shortcodes/class-redux-shortcodes.php +224 -0
  22. redux-framework.php +1 -1
  23. sample/sample-config.php +4 -3
  24. sample/sections/pro-fields/search.php +0 -23
  25. sample/sections/search/search.php +21 -0
  26. sample/sections/{pro-fields → shortcodes}/shortcodes.php +2 -4
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: gutenberg, blocks, gutenberg blocks, editor, block, page builder, block ed
4
  Requires at least: 4.0
5
  Requires PHP: 7.1
6
  Tested up to: 5.9
7
- Stable tag: 4.3.4
8
  License: GPL-3.0+
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
10
 
@@ -108,6 +108,13 @@ If you want, you can use the [Gutenberg](https://wordpress.org/plugins/gutenberg
108
 
109
  == Changelog ==
110
 
 
 
 
 
 
 
 
111
  = 4.3.4 =
112
  * Fixed: CSS and JS not loading when embedding Redux due to malformed path.
113
  * Modified: Update to the Extendify template library.
@@ -154,7 +161,7 @@ Release date: August 11, 2021
154
  = 4.2.11 =
155
  Fixed: Removed type declarations on core return values to support improperly written third-party extensions.
156
  Fixed: Added shim to prevent errors on functions calls outdated extensions are still using.
157
- Fixed: Removed type declarations on field code to support outdated versions of PHP (PHP 7.4 is the minimum recommendation from WordPress...please update if you are able. [https://wordpress.org/about/requirements](https://wordpress.org/about/requirements).
158
  Fixed: Support URL button kicking back a JavaScript error.
159
  Release date: July 29, 2021
160
 
4
  Requires at least: 4.0
5
  Requires PHP: 7.1
6
  Tested up to: 5.9
7
+ Stable tag: 4.3.5
8
  License: GPL-3.0+
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
10
 
108
 
109
  == Changelog ==
110
 
111
+ = 4.3.5 =
112
+ * Added: Add former premium feature: Option panel Search Bar. See Sample demo or the [docs site](https://devs.redux.io/core-extensions).
113
+ * Added: Add former premium feature: Shortcodes. See Sample demo or the [docs site](https://devs.redux.io/core-extensions).
114
+ * Fixed: #3852 - Editor in metaboxes not saving HTML. WIll now save the same HTML posts/pages allows.
115
+ * Fixed: Front end formatting issue with the Extendify template library.
116
+ * Release date: December 01, 2021
117
+
118
  = 4.3.4 =
119
  * Fixed: CSS and JS not loading when embedding Redux due to malformed path.
120
  * Modified: Update to the Extendify template library.
161
  = 4.2.11 =
162
  Fixed: Removed type declarations on core return values to support improperly written third-party extensions.
163
  Fixed: Added shim to prevent errors on functions calls outdated extensions are still using.
164
+ Fixed: Removed type declarations on field code to support outdated versions of PHP (PHP 7.4 is the minimum recommendation from WordPress...please update if you are able). [https://wordpress.org/about/requirements](https://wordpress.org/about/requirements).
165
  Fixed: Support URL button kicking back a JavaScript error.
166
  Release date: July 29, 2021
167
 
redux-core/extendify-sdk/bin/clean-build-files.sh CHANGED
@@ -3,5 +3,5 @@ if ! git config user.email | grep -q 'users.noreply.github.com'; then
3
  echo 'Cleaning build files before commit...'
4
  for i in $(dirname "pwd")/public/build/* ;do truncate -s 0 "$i";done
5
  truncate -s 0 $(dirname "pwd")/public/editorplus/editorplus.min.js
6
- git add -A .
7
  fi
3
  echo 'Cleaning build files before commit...'
4
  for i in $(dirname "pwd")/public/build/* ;do truncate -s 0 "$i";done
5
  truncate -s 0 $(dirname "pwd")/public/editorplus/editorplus.min.js
6
+ git add -A $(dirname "pwd")/public/
7
  fi
redux-core/extendify-sdk/editorplus/EditorPlus.php CHANGED
@@ -122,11 +122,6 @@ if (!class_exists('edpl__EditorPlus')) {
122
  public function useDeprecatedTemplate()
123
  {
124
  $post = get_post();
125
- if (isset($GLOBALS['post'])) {
126
- // This will populate on the frontend.
127
- $post = wp_unslash($GLOBALS['post']);
128
- }
129
-
130
  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
131
  if (is_admin() && isset($_GET['post'])) {
132
  // This will populate on the admin.
122
  public function useDeprecatedTemplate()
123
  {
124
  $post = get_post();
 
 
 
 
 
125
  // phpcs:ignore WordPress.Security.NonceVerification.Recommended
126
  if (is_admin() && isset($_GET['post'])) {
127
  // This will populate on the admin.
redux-core/extendify-sdk/extendify-sdk.php CHANGED
@@ -1,5 +1,4 @@
1
  <?php
2
-
3
  if (!defined('ABSPATH')) {
4
  exit;
5
  }
1
  <?php
 
2
  if (!defined('ABSPATH')) {
3
  exit;
4
  }
redux-core/extendify-sdk/public/build/extendify-utilities.css CHANGED
@@ -1,4 +1,4 @@
1
- .ext-absolute{position:absolute!important}.ext-relative{position:relative!important}.ext-top-base{top:var(--wp--style--block-gap,2rem)!important}.ext-top-lg{top:var(--extendify--spacing--large)!important}.ext--top-base{top:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--top-lg{top:calc(var(--extendify--spacing--large)*-1)!important}.ext-right-base{right:var(--wp--style--block-gap,2rem)!important}.ext-right-lg{right:var(--extendify--spacing--large)!important}.ext--right-base{right:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--right-lg{right:calc(var(--extendify--spacing--large)*-1)!important}.ext-bottom-base{bottom:var(--wp--style--block-gap,2rem)!important}.ext-bottom-lg{bottom:var(--extendify--spacing--large)!important}.ext--bottom-base{bottom:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--bottom-lg{bottom:calc(var(--extendify--spacing--large)*-1)!important}.ext-left-base{left:var(--wp--style--block-gap,2rem)!important}.ext-left-lg{left:var(--extendify--spacing--large)!important}.ext--left-base{left:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--left-lg{left:calc(var(--extendify--spacing--large)*-1)!important}.ext-order-1{order:1!important}.ext-order-2{order:2!important}.ext-col-auto{grid-column:auto!important}.ext-col-span-1{grid-column:span 1/span 1!important}.ext-col-span-2{grid-column:span 2/span 2!important}.ext-col-span-3{grid-column:span 3/span 3!important}.ext-col-span-4{grid-column:span 4/span 4!important}.ext-col-span-5{grid-column:span 5/span 5!important}.ext-col-span-6{grid-column:span 6/span 6!important}.ext-col-span-7{grid-column:span 7/span 7!important}.ext-col-span-8{grid-column:span 8/span 8!important}.ext-col-span-9{grid-column:span 9/span 9!important}.ext-col-span-10{grid-column:span 10/span 10!important}.ext-col-span-11{grid-column:span 11/span 11!important}.ext-col-span-12{grid-column:span 12/span 12!important}.ext-col-span-full{grid-column:1/-1!important}.ext-col-start-1{grid-column-start:1!important}.ext-col-start-2{grid-column-start:2!important}.ext-col-start-3{grid-column-start:3!important}.ext-col-start-4{grid-column-start:4!important}.ext-col-start-5{grid-column-start:5!important}.ext-col-start-6{grid-column-start:6!important}.ext-col-start-7{grid-column-start:7!important}.ext-col-start-8{grid-column-start:8!important}.ext-col-start-9{grid-column-start:9!important}.ext-col-start-10{grid-column-start:10!important}.ext-col-start-11{grid-column-start:11!important}.ext-col-start-12{grid-column-start:12!important}.ext-col-start-13{grid-column-start:13!important}.ext-col-start-auto{grid-column-start:auto!important}.ext-col-end-1{grid-column-end:1!important}.ext-col-end-2{grid-column-end:2!important}.ext-col-end-3{grid-column-end:3!important}.ext-col-end-4{grid-column-end:4!important}.ext-col-end-5{grid-column-end:5!important}.ext-col-end-6{grid-column-end:6!important}.ext-col-end-7{grid-column-end:7!important}.ext-col-end-8{grid-column-end:8!important}.ext-col-end-9{grid-column-end:9!important}.ext-col-end-10{grid-column-end:10!important}.ext-col-end-11{grid-column-end:11!important}.ext-col-end-12{grid-column-end:12!important}.ext-col-end-13{grid-column-end:13!important}.ext-col-end-auto{grid-column-end:auto!important}.ext-row-auto{grid-row:auto!important}.ext-row-span-1{grid-row:span 1/span 1!important}.ext-row-span-2{grid-row:span 2/span 2!important}.ext-row-span-3{grid-row:span 3/span 3!important}.ext-row-span-4{grid-row:span 4/span 4!important}.ext-row-span-5{grid-row:span 5/span 5!important}.ext-row-span-6{grid-row:span 6/span 6!important}.ext-row-span-full{grid-row:1/-1!important}.ext-row-start-1{grid-row-start:1!important}.ext-row-start-2{grid-row-start:2!important}.ext-row-start-3{grid-row-start:3!important}.ext-row-start-4{grid-row-start:4!important}.ext-row-start-5{grid-row-start:5!important}.ext-row-start-6{grid-row-start:6!important}.ext-row-start-7{grid-row-start:7!important}.ext-row-start-auto{grid-row-start:auto!important}.ext-row-end-1{grid-row-end:1!important}.ext-row-end-2{grid-row-end:2!important}.ext-row-end-3{grid-row-end:3!important}.ext-row-end-4{grid-row-end:4!important}.ext-row-end-5{grid-row-end:5!important}.ext-row-end-6{grid-row-end:6!important}.ext-row-end-7{grid-row-end:7!important}.ext-row-end-auto{grid-row-end:auto!important}.ext-m-0:not([style*=margin]){margin:0!important}.ext-m-auto:not([style*=margin]){margin:auto!important}.ext-m-base:not([style*=margin]){margin:var(--wp--style--block-gap,2rem)!important}.ext-m-lg:not([style*=margin]){margin:var(--extendify--spacing--large)!important}.ext--m-base:not([style*=margin]){margin:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--m-lg:not([style*=margin]){margin:calc(var(--extendify--spacing--large)*-1)!important}.ext-mx-0:not([style*=margin]){margin-left:0!important;margin-right:0!important}.ext-mx-auto:not([style*=margin]){margin-left:auto!important;margin-right:auto!important}.ext-mx-base:not([style*=margin]){margin-left:var(--wp--style--block-gap,2rem)!important;margin-right:var(--wp--style--block-gap,2rem)!important}.ext-mx-lg:not([style*=margin]){margin-left:var(--extendify--spacing--large)!important;margin-right:var(--extendify--spacing--large)!important}.ext--mx-base:not([style*=margin]){margin-left:calc(var(--wp--style--block-gap, 2rem)*-1)!important;margin-right:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--mx-lg:not([style*=margin]){margin-left:calc(var(--extendify--spacing--large)*-1)!important;margin-right:calc(var(--extendify--spacing--large)*-1)!important}.ext-my-0:not([style*=margin]){margin-bottom:0!important;margin-top:0!important}.ext-my-auto:not([style*=margin]){margin-bottom:auto!important;margin-top:auto!important}.ext-my-base:not([style*=margin]){margin-bottom:var(--wp--style--block-gap,2rem)!important;margin-top:var(--wp--style--block-gap,2rem)!important}.ext-my-lg:not([style*=margin]){margin-bottom:var(--extendify--spacing--large)!important;margin-top:var(--extendify--spacing--large)!important}.ext--my-base:not([style*=margin]){margin-bottom:calc(var(--wp--style--block-gap, 2rem)*-1)!important;margin-top:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--my-lg:not([style*=margin]){margin-bottom:calc(var(--extendify--spacing--large)*-1)!important;margin-top:calc(var(--extendify--spacing--large)*-1)!important}.ext-mt-0:not([style*=margin]){margin-top:0!important}.ext-mt-auto:not([style*=margin]){margin-top:auto!important}.ext-mt-base:not([style*=margin]){margin-top:var(--wp--style--block-gap,2rem)!important}.ext-mt-lg:not([style*=margin]){margin-top:var(--extendify--spacing--large)!important}.ext--mt-base:not([style*=margin]){margin-top:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--mt-lg:not([style*=margin]){margin-top:calc(var(--extendify--spacing--large)*-1)!important}.ext-mr-0:not([style*=margin]){margin-right:0!important}.ext-mr-auto:not([style*=margin]){margin-right:auto!important}.ext-mr-base:not([style*=margin]){margin-right:var(--wp--style--block-gap,2rem)!important}.ext-mr-lg:not([style*=margin]){margin-right:var(--extendify--spacing--large)!important}.ext--mr-base:not([style*=margin]){margin-right:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--mr-lg:not([style*=margin]){margin-right:calc(var(--extendify--spacing--large)*-1)!important}.ext-mb-0:not([style*=margin]){margin-bottom:0!important}.ext-mb-auto:not([style*=margin]){margin-bottom:auto!important}.ext-mb-base:not([style*=margin]){margin-bottom:var(--wp--style--block-gap,2rem)!important}.ext-mb-lg:not([style*=margin]){margin-bottom:var(--extendify--spacing--large)!important}.ext--mb-base:not([style*=margin]){margin-bottom:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--mb-lg:not([style*=margin]){margin-bottom:calc(var(--extendify--spacing--large)*-1)!important}.ext-ml-0:not([style*=margin]){margin-left:0!important}.ext-ml-auto:not([style*=margin]){margin-left:auto!important}.ext-ml-base:not([style*=margin]){margin-left:var(--wp--style--block-gap,2rem)!important}.ext-ml-lg:not([style*=margin]){margin-left:var(--extendify--spacing--large)!important}.ext--ml-base:not([style*=margin]){margin-left:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--ml-lg:not([style*=margin]){margin-left:calc(var(--extendify--spacing--large)*-1)!important}.ext-block{display:block!important}.ext-inline-block{display:inline-block!important}.ext-inline{display:inline!important}.ext-flex{display:flex!important}.ext-inline-flex{display:inline-flex!important}.ext-grid{display:grid!important}.ext-inline-grid{display:inline-grid!important}.ext-hidden{display:none!important}.ext-w-auto{width:auto!important}.ext-w-full{width:100%!important}.ext-max-w-full{max-width:100%!important}.ext-flex-1{flex:1 1 0%!important}.ext-flex-auto{flex:1 1 auto!important}.ext-flex-initial{flex:0 1 auto!important}.ext-flex-none{flex:none!important}.ext-flex-shrink-0{flex-shrink:0!important}.ext-flex-shrink{flex-shrink:1!important}.ext-flex-grow-0{flex-grow:0!important}.ext-flex-grow{flex-grow:1!important}.ext-list-none{list-style-type:none!important}.ext-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))!important}.ext-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.ext-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.ext-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}.ext-grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))!important}.ext-grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))!important}.ext-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))!important}.ext-grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))!important}.ext-grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))!important}.ext-grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))!important}.ext-grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))!important}.ext-grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))!important}.ext-grid-cols-none{grid-template-columns:none!important}.ext-grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))!important}.ext-grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))!important}.ext-grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))!important}.ext-grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))!important}.ext-grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))!important}.ext-grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))!important}.ext-grid-rows-none{grid-template-rows:none!important}.ext-flex-row{flex-direction:row!important}.ext-flex-row-reverse{flex-direction:row-reverse!important}.ext-flex-col{flex-direction:column!important}.ext-flex-col-reverse{flex-direction:column-reverse!important}.ext-flex-wrap{flex-wrap:wrap!important}.ext-flex-wrap-reverse{flex-wrap:wrap-reverse!important}.ext-flex-nowrap{flex-wrap:nowrap!important}.ext-items-start{align-items:flex-start!important}.ext-items-end{align-items:flex-end!important}.ext-items-center{align-items:center!important}.ext-items-baseline{align-items:baseline!important}.ext-items-stretch{align-items:stretch!important}.ext-justify-start{justify-content:flex-start!important}.ext-justify-end{justify-content:flex-end!important}.ext-justify-center{justify-content:center!important}.ext-justify-between{justify-content:space-between!important}.ext-justify-around{justify-content:space-around!important}.ext-justify-evenly{justify-content:space-evenly!important}.ext-justify-items-start{justify-items:start!important}.ext-justify-items-end{justify-items:end!important}.ext-justify-items-center{justify-items:center!important}.ext-justify-items-stretch{justify-items:stretch!important}.ext-gap-0{gap:0!important}.ext-gap-base{gap:var(--wp--style--block-gap,2rem)!important}.ext-gap-lg{gap:var(--extendify--spacing--large)!important}.ext-gap-x-0{-moz-column-gap:0!important;column-gap:0!important}.ext-gap-x-base{-moz-column-gap:var(--wp--style--block-gap,2rem)!important;column-gap:var(--wp--style--block-gap,2rem)!important}.ext-gap-x-lg{-moz-column-gap:var(--extendify--spacing--large)!important;column-gap:var(--extendify--spacing--large)!important}.ext-gap-y-0{row-gap:0!important}.ext-gap-y-base{row-gap:var(--wp--style--block-gap,2rem)!important}.ext-gap-y-lg{row-gap:var(--extendify--spacing--large)!important}.ext-justify-self-auto{justify-self:auto!important}.ext-justify-self-start{justify-self:start!important}.ext-justify-self-end{justify-self:end!important}.ext-justify-self-center{justify-self:center!important}.ext-justify-self-stretch{justify-self:stretch!important}.ext-rounded-none{border-radius:0!important}.ext-rounded-full{border-radius:9999px!important}.ext-rounded-t-none{border-top-left-radius:0!important;border-top-right-radius:0!important}.ext-rounded-t-full{border-top-left-radius:9999px!important;border-top-right-radius:9999px!important}.ext-rounded-r-none{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.ext-rounded-r-full{border-bottom-right-radius:9999px!important;border-top-right-radius:9999px!important}.ext-rounded-b-none{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.ext-rounded-b-full{border-bottom-left-radius:9999px!important;border-bottom-right-radius:9999px!important}.ext-rounded-l-none{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.ext-rounded-l-full{border-bottom-left-radius:9999px!important;border-top-left-radius:9999px!important}.ext-rounded-tl-none{border-top-left-radius:0!important}.ext-rounded-tl-full{border-top-left-radius:9999px!important}.ext-rounded-tr-none{border-top-right-radius:0!important}.ext-rounded-tr-full{border-top-right-radius:9999px!important}.ext-rounded-br-none{border-bottom-right-radius:0!important}.ext-rounded-br-full{border-bottom-right-radius:9999px!important}.ext-rounded-bl-none{border-bottom-left-radius:0!important}.ext-rounded-bl-full{border-bottom-left-radius:9999px!important}.ext-border-0{border-width:0!important}.ext-border-t-0{border-top-width:0!important}.ext-border-r-0{border-right-width:0!important}.ext-border-b-0{border-bottom-width:0!important}.ext-border-l-0{border-left-width:0!important}.ext-p-0:not([style*=padding]){padding:0!important}.ext-p-base:not([style*=padding]){padding:var(--wp--style--block-gap,2rem)!important}.ext-p-lg:not([style*=padding]){padding:var(--extendify--spacing--large)!important}.ext-px-0:not([style*=padding]){padding-left:0!important;padding-right:0!important}.ext-px-base:not([style*=padding]){padding-left:var(--wp--style--block-gap,2rem)!important;padding-right:var(--wp--style--block-gap,2rem)!important}.ext-px-lg:not([style*=padding]){padding-left:var(--extendify--spacing--large)!important;padding-right:var(--extendify--spacing--large)!important}.ext-py-0:not([style*=padding]){padding-bottom:0!important;padding-top:0!important}.ext-py-base:not([style*=padding]){padding-bottom:var(--wp--style--block-gap,2rem)!important;padding-top:var(--wp--style--block-gap,2rem)!important}.ext-py-lg:not([style*=padding]){padding-bottom:var(--extendify--spacing--large)!important;padding-top:var(--extendify--spacing--large)!important}.ext-pt-0:not([style*=padding]){padding-top:0!important}.ext-pt-base:not([style*=padding]){padding-top:var(--wp--style--block-gap,2rem)!important}.ext-pt-lg:not([style*=padding]){padding-top:var(--extendify--spacing--large)!important}.ext-pr-0:not([style*=padding]){padding-right:0!important}.ext-pr-base:not([style*=padding]){padding-right:var(--wp--style--block-gap,2rem)!important}.ext-pr-lg:not([style*=padding]){padding-right:var(--extendify--spacing--large)!important}.ext-pb-0:not([style*=padding]){padding-bottom:0!important}.ext-pb-base:not([style*=padding]){padding-bottom:var(--wp--style--block-gap,2rem)!important}.ext-pb-lg:not([style*=padding]){padding-bottom:var(--extendify--spacing--large)!important}.ext-pl-0:not([style*=padding]){padding-left:0!important}.ext-pl-base:not([style*=padding]){padding-left:var(--wp--style--block-gap,2rem)!important}.ext-pl-lg:not([style*=padding]){padding-left:var(--extendify--spacing--large)!important}.ext-text-left{text-align:left!important}.ext-text-center{text-align:center!important}.ext-text-right{text-align:right!important}.ext-leading-none{line-height:1!important}.ext-leading-tight{line-height:1.25!important}.ext-leading-snug{line-height:1.375!important}.ext-leading-normal{line-height:1.5!important}.ext-leading-relaxed{line-height:1.625!important}.ext-leading-loose{line-height:2!important}.clip-path--rhombus img{-webkit-clip-path:polygon(15% 6%,80% 29%,84% 93%,23% 69%);clip-path:polygon(15% 6%,80% 29%,84% 93%,23% 69%)}.clip-path--diamond img{-webkit-clip-path:polygon(5% 29%,60% 2%,91% 64%,36% 89%);clip-path:polygon(5% 29%,60% 2%,91% 64%,36% 89%)}.clip-path--rhombus-alt img{-webkit-clip-path:polygon(14% 9%,85% 24%,91% 89%,19% 76%);clip-path:polygon(14% 9%,85% 24%,91% 89%,19% 76%)}.wp-block-columns[class*=fullwidth-cols]{margin-bottom:unset}.ext .wp-block-columns .wp-block-column[style*=padding]{padding-left:0!important;padding-right:0!important}.ext .wp-block-columns+.wp-block-columns:not([class*=mt-]):not([class*=my-]):not([style*=margin]){margin-top:0!important}[class*=fullwidth-cols] .wp-block-column:first-child,[class*=fullwidth-cols] .wp-block-group:first-child{margin-top:0}[class*=fullwidth-cols] .wp-block-column:last-child,[class*=fullwidth-cols] .wp-block-group:last-child{margin-bottom:0}[class*=fullwidth-cols] .wp-block-column :first-child,[class*=fullwidth-cols] .wp-block-column:first-child *{margin-top:0}.ext .is-not-stacked-on-mobile .wp-block-column,[class*=fullwidth-cols] .wp-block-column :last-child{margin-bottom:0}.wp-block-columns[class*=fullwidth-cols]:not(.is-not-stacked-on-mobile)>.wp-block-column:not(:last-child){margin-bottom:var(--wp--style--block-gap,2rem)}@media (min-width:782px){.wp-block-columns[class*=fullwidth-cols]:not(.is-not-stacked-on-mobile)>.wp-block-column:not(:last-child){margin-bottom:0}}.wp-block-columns[class*=fullwidth-cols].is-not-stacked-on-mobile>.wp-block-column{margin-bottom:0!important}@media (min-width:600px) and (max-width:781px){.wp-block-columns[class*=fullwidth-cols]:not(.is-not-stacked-on-mobile)>.wp-block-column:nth-child(2n){margin-left:var(--wp--style--block-gap,2em)}}@media (max-width:781px){.tablet\:fullwidth-cols.wp-block-columns:not(.is-not-stacked-on-mobile){flex-wrap:wrap}.tablet\:fullwidth-cols.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important;margin-left:0!important}}@media (max-width:1079px){.desktop\:fullwidth-cols.wp-block-columns:not(.is-not-stacked-on-mobile){flex-wrap:wrap}.desktop\:fullwidth-cols.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important;margin-left:0!important}.desktop\:fullwidth-cols.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column:not(:last-child){margin-bottom:var(--wp--style--block-gap,2rem)!important}}.direction-rtl{direction:rtl}.direction-ltr{direction:ltr}.is-style-inline-list{padding-left:0!important}.is-style-inline-list li{list-style-type:none!important}@media (min-width:782px){.is-style-inline-list li{display:inline!important;margin-right:var(--wp--style--block-gap,2rem)!important}}@media (min-width:782px){.is-style-inline-list li:first-child{margin-left:0!important}}@media (min-width:782px){.is-style-inline-list li:last-child{margin-right:0!important}}.bring-to-front{position:relative;z-index:10}.text-stroke{-webkit-text-stroke-color:var(--wp--preset--color--background)}.text-stroke,.text-stroke--primary{-webkit-text-stroke-width:var(
2
  --wp--custom--typography--text-stroke-width,2px
3
  )}.text-stroke--primary{-webkit-text-stroke-color:var(--wp--preset--color--primary)}.text-stroke--secondary{-webkit-text-stroke-width:var(
4
  --wp--custom--typography--text-stroke-width,2px
1
+ .ext-absolute{position:absolute!important}.ext-relative{position:relative!important}.ext-top-base{top:var(--wp--style--block-gap,2rem)!important}.ext-top-lg{top:var(--extendify--spacing--large)!important}.ext--top-base{top:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--top-lg{top:calc(var(--extendify--spacing--large)*-1)!important}.ext-right-base{right:var(--wp--style--block-gap,2rem)!important}.ext-right-lg{right:var(--extendify--spacing--large)!important}.ext--right-base{right:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--right-lg{right:calc(var(--extendify--spacing--large)*-1)!important}.ext-bottom-base{bottom:var(--wp--style--block-gap,2rem)!important}.ext-bottom-lg{bottom:var(--extendify--spacing--large)!important}.ext--bottom-base{bottom:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--bottom-lg{bottom:calc(var(--extendify--spacing--large)*-1)!important}.ext-left-base{left:var(--wp--style--block-gap,2rem)!important}.ext-left-lg{left:var(--extendify--spacing--large)!important}.ext--left-base{left:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--left-lg{left:calc(var(--extendify--spacing--large)*-1)!important}.ext-order-1{order:1!important}.ext-order-2{order:2!important}.ext-col-auto{grid-column:auto!important}.ext-col-span-1{grid-column:span 1/span 1!important}.ext-col-span-2{grid-column:span 2/span 2!important}.ext-col-span-3{grid-column:span 3/span 3!important}.ext-col-span-4{grid-column:span 4/span 4!important}.ext-col-span-5{grid-column:span 5/span 5!important}.ext-col-span-6{grid-column:span 6/span 6!important}.ext-col-span-7{grid-column:span 7/span 7!important}.ext-col-span-8{grid-column:span 8/span 8!important}.ext-col-span-9{grid-column:span 9/span 9!important}.ext-col-span-10{grid-column:span 10/span 10!important}.ext-col-span-11{grid-column:span 11/span 11!important}.ext-col-span-12{grid-column:span 12/span 12!important}.ext-col-span-full{grid-column:1/-1!important}.ext-col-start-1{grid-column-start:1!important}.ext-col-start-2{grid-column-start:2!important}.ext-col-start-3{grid-column-start:3!important}.ext-col-start-4{grid-column-start:4!important}.ext-col-start-5{grid-column-start:5!important}.ext-col-start-6{grid-column-start:6!important}.ext-col-start-7{grid-column-start:7!important}.ext-col-start-8{grid-column-start:8!important}.ext-col-start-9{grid-column-start:9!important}.ext-col-start-10{grid-column-start:10!important}.ext-col-start-11{grid-column-start:11!important}.ext-col-start-12{grid-column-start:12!important}.ext-col-start-13{grid-column-start:13!important}.ext-col-start-auto{grid-column-start:auto!important}.ext-col-end-1{grid-column-end:1!important}.ext-col-end-2{grid-column-end:2!important}.ext-col-end-3{grid-column-end:3!important}.ext-col-end-4{grid-column-end:4!important}.ext-col-end-5{grid-column-end:5!important}.ext-col-end-6{grid-column-end:6!important}.ext-col-end-7{grid-column-end:7!important}.ext-col-end-8{grid-column-end:8!important}.ext-col-end-9{grid-column-end:9!important}.ext-col-end-10{grid-column-end:10!important}.ext-col-end-11{grid-column-end:11!important}.ext-col-end-12{grid-column-end:12!important}.ext-col-end-13{grid-column-end:13!important}.ext-col-end-auto{grid-column-end:auto!important}.ext-row-auto{grid-row:auto!important}.ext-row-span-1{grid-row:span 1/span 1!important}.ext-row-span-2{grid-row:span 2/span 2!important}.ext-row-span-3{grid-row:span 3/span 3!important}.ext-row-span-4{grid-row:span 4/span 4!important}.ext-row-span-5{grid-row:span 5/span 5!important}.ext-row-span-6{grid-row:span 6/span 6!important}.ext-row-span-full{grid-row:1/-1!important}.ext-row-start-1{grid-row-start:1!important}.ext-row-start-2{grid-row-start:2!important}.ext-row-start-3{grid-row-start:3!important}.ext-row-start-4{grid-row-start:4!important}.ext-row-start-5{grid-row-start:5!important}.ext-row-start-6{grid-row-start:6!important}.ext-row-start-7{grid-row-start:7!important}.ext-row-start-auto{grid-row-start:auto!important}.ext-row-end-1{grid-row-end:1!important}.ext-row-end-2{grid-row-end:2!important}.ext-row-end-3{grid-row-end:3!important}.ext-row-end-4{grid-row-end:4!important}.ext-row-end-5{grid-row-end:5!important}.ext-row-end-6{grid-row-end:6!important}.ext-row-end-7{grid-row-end:7!important}.ext-row-end-auto{grid-row-end:auto!important}.ext-m-0:not([style*=margin]){margin:0!important}.ext-m-auto:not([style*=margin]){margin:auto!important}.ext-m-base:not([style*=margin]){margin:var(--wp--style--block-gap,2rem)!important}.ext-m-lg:not([style*=margin]){margin:var(--extendify--spacing--large)!important}.ext--m-base:not([style*=margin]){margin:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--m-lg:not([style*=margin]){margin:calc(var(--extendify--spacing--large)*-1)!important}.ext-mx-0:not([style*=margin]){margin-left:0!important;margin-right:0!important}.ext-mx-auto:not([style*=margin]){margin-left:auto!important;margin-right:auto!important}.ext-mx-base:not([style*=margin]){margin-left:var(--wp--style--block-gap,2rem)!important;margin-right:var(--wp--style--block-gap,2rem)!important}.ext-mx-lg:not([style*=margin]){margin-left:var(--extendify--spacing--large)!important;margin-right:var(--extendify--spacing--large)!important}.ext--mx-base:not([style*=margin]){margin-left:calc(var(--wp--style--block-gap, 2rem)*-1)!important;margin-right:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--mx-lg:not([style*=margin]){margin-left:calc(var(--extendify--spacing--large)*-1)!important;margin-right:calc(var(--extendify--spacing--large)*-1)!important}.ext-my-0:not([style*=margin]){margin-bottom:0!important;margin-top:0!important}.ext-my-auto:not([style*=margin]){margin-bottom:auto!important;margin-top:auto!important}.ext-my-base:not([style*=margin]){margin-bottom:var(--wp--style--block-gap,2rem)!important;margin-top:var(--wp--style--block-gap,2rem)!important}.ext-my-lg:not([style*=margin]){margin-bottom:var(--extendify--spacing--large)!important;margin-top:var(--extendify--spacing--large)!important}.ext--my-base:not([style*=margin]){margin-bottom:calc(var(--wp--style--block-gap, 2rem)*-1)!important;margin-top:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--my-lg:not([style*=margin]){margin-bottom:calc(var(--extendify--spacing--large)*-1)!important;margin-top:calc(var(--extendify--spacing--large)*-1)!important}.ext-mt-0:not([style*=margin]){margin-top:0!important}.ext-mt-auto:not([style*=margin]){margin-top:auto!important}.ext-mt-base:not([style*=margin]){margin-top:var(--wp--style--block-gap,2rem)!important}.ext-mt-lg:not([style*=margin]){margin-top:var(--extendify--spacing--large)!important}.ext--mt-base:not([style*=margin]){margin-top:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--mt-lg:not([style*=margin]){margin-top:calc(var(--extendify--spacing--large)*-1)!important}.ext-mr-0:not([style*=margin]){margin-right:0!important}.ext-mr-auto:not([style*=margin]){margin-right:auto!important}.ext-mr-base:not([style*=margin]){margin-right:var(--wp--style--block-gap,2rem)!important}.ext-mr-lg:not([style*=margin]){margin-right:var(--extendify--spacing--large)!important}.ext--mr-base:not([style*=margin]){margin-right:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--mr-lg:not([style*=margin]){margin-right:calc(var(--extendify--spacing--large)*-1)!important}.ext-mb-0:not([style*=margin]){margin-bottom:0!important}.ext-mb-auto:not([style*=margin]){margin-bottom:auto!important}.ext-mb-base:not([style*=margin]){margin-bottom:var(--wp--style--block-gap,2rem)!important}.ext-mb-lg:not([style*=margin]){margin-bottom:var(--extendify--spacing--large)!important}.ext--mb-base:not([style*=margin]){margin-bottom:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--mb-lg:not([style*=margin]){margin-bottom:calc(var(--extendify--spacing--large)*-1)!important}.ext-ml-0:not([style*=margin]){margin-left:0!important}.ext-ml-auto:not([style*=margin]){margin-left:auto!important}.ext-ml-base:not([style*=margin]){margin-left:var(--wp--style--block-gap,2rem)!important}.ext-ml-lg:not([style*=margin]){margin-left:var(--extendify--spacing--large)!important}.ext--ml-base:not([style*=margin]){margin-left:calc(var(--wp--style--block-gap, 2rem)*-1)!important}.ext--ml-lg:not([style*=margin]){margin-left:calc(var(--extendify--spacing--large)*-1)!important}.ext-block{display:block!important}.ext-inline-block{display:inline-block!important}.ext-inline{display:inline!important}.ext-flex{display:flex!important}.ext-inline-flex{display:inline-flex!important}.ext-grid{display:grid!important}.ext-inline-grid{display:inline-grid!important}.ext-hidden{display:none!important}.ext-w-auto{width:auto!important}.ext-w-full{width:100%!important}.ext-max-w-full{max-width:100%!important}.ext-flex-1{flex:1 1 0%!important}.ext-flex-auto{flex:1 1 auto!important}.ext-flex-initial{flex:0 1 auto!important}.ext-flex-none{flex:none!important}.ext-flex-shrink-0{flex-shrink:0!important}.ext-flex-shrink{flex-shrink:1!important}.ext-flex-grow-0{flex-grow:0!important}.ext-flex-grow{flex-grow:1!important}.ext-list-none{list-style-type:none!important}.ext-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))!important}.ext-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.ext-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.ext-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}.ext-grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))!important}.ext-grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))!important}.ext-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))!important}.ext-grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))!important}.ext-grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))!important}.ext-grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))!important}.ext-grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))!important}.ext-grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))!important}.ext-grid-cols-none{grid-template-columns:none!important}.ext-grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))!important}.ext-grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))!important}.ext-grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))!important}.ext-grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))!important}.ext-grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))!important}.ext-grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))!important}.ext-grid-rows-none{grid-template-rows:none!important}.ext-flex-row{flex-direction:row!important}.ext-flex-row-reverse{flex-direction:row-reverse!important}.ext-flex-col{flex-direction:column!important}.ext-flex-col-reverse{flex-direction:column-reverse!important}.ext-flex-wrap{flex-wrap:wrap!important}.ext-flex-wrap-reverse{flex-wrap:wrap-reverse!important}.ext-flex-nowrap{flex-wrap:nowrap!important}.ext-items-start{align-items:flex-start!important}.ext-items-end{align-items:flex-end!important}.ext-items-center{align-items:center!important}.ext-items-baseline{align-items:baseline!important}.ext-items-stretch{align-items:stretch!important}.ext-justify-start{justify-content:flex-start!important}.ext-justify-end{justify-content:flex-end!important}.ext-justify-center{justify-content:center!important}.ext-justify-between{justify-content:space-between!important}.ext-justify-around{justify-content:space-around!important}.ext-justify-evenly{justify-content:space-evenly!important}.ext-justify-items-start{justify-items:start!important}.ext-justify-items-end{justify-items:end!important}.ext-justify-items-center{justify-items:center!important}.ext-justify-items-stretch{justify-items:stretch!important}.ext-gap-0{gap:0!important}.ext-gap-base{gap:var(--wp--style--block-gap,2rem)!important}.ext-gap-lg{gap:var(--extendify--spacing--large)!important}.ext-gap-x-0{-moz-column-gap:0!important;column-gap:0!important}.ext-gap-x-base{-moz-column-gap:var(--wp--style--block-gap,2rem)!important;column-gap:var(--wp--style--block-gap,2rem)!important}.ext-gap-x-lg{-moz-column-gap:var(--extendify--spacing--large)!important;column-gap:var(--extendify--spacing--large)!important}.ext-gap-y-0{row-gap:0!important}.ext-gap-y-base{row-gap:var(--wp--style--block-gap,2rem)!important}.ext-gap-y-lg{row-gap:var(--extendify--spacing--large)!important}.ext-justify-self-auto{justify-self:auto!important}.ext-justify-self-start{justify-self:start!important}.ext-justify-self-end{justify-self:end!important}.ext-justify-self-center{justify-self:center!important}.ext-justify-self-stretch{justify-self:stretch!important}.ext-rounded-none{border-radius:0!important}.ext-rounded-full{border-radius:9999px!important}.ext-rounded-t-none{border-top-left-radius:0!important;border-top-right-radius:0!important}.ext-rounded-t-full{border-top-left-radius:9999px!important;border-top-right-radius:9999px!important}.ext-rounded-r-none{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.ext-rounded-r-full{border-bottom-right-radius:9999px!important;border-top-right-radius:9999px!important}.ext-rounded-b-none{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.ext-rounded-b-full{border-bottom-left-radius:9999px!important;border-bottom-right-radius:9999px!important}.ext-rounded-l-none{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.ext-rounded-l-full{border-bottom-left-radius:9999px!important;border-top-left-radius:9999px!important}.ext-rounded-tl-none{border-top-left-radius:0!important}.ext-rounded-tl-full{border-top-left-radius:9999px!important}.ext-rounded-tr-none{border-top-right-radius:0!important}.ext-rounded-tr-full{border-top-right-radius:9999px!important}.ext-rounded-br-none{border-bottom-right-radius:0!important}.ext-rounded-br-full{border-bottom-right-radius:9999px!important}.ext-rounded-bl-none{border-bottom-left-radius:0!important}.ext-rounded-bl-full{border-bottom-left-radius:9999px!important}.ext-border-0{border-width:0!important}.ext-border-t-0{border-top-width:0!important}.ext-border-r-0{border-right-width:0!important}.ext-border-b-0{border-bottom-width:0!important}.ext-border-l-0{border-left-width:0!important}.ext-p-0:not([style*=padding]){padding:0!important}.ext-p-base:not([style*=padding]){padding:var(--wp--style--block-gap,2rem)!important}.ext-p-lg:not([style*=padding]){padding:var(--extendify--spacing--large)!important}.ext-px-0:not([style*=padding]){padding-left:0!important;padding-right:0!important}.ext-px-base:not([style*=padding]){padding-left:var(--wp--style--block-gap,2rem)!important;padding-right:var(--wp--style--block-gap,2rem)!important}.ext-px-lg:not([style*=padding]){padding-left:var(--extendify--spacing--large)!important;padding-right:var(--extendify--spacing--large)!important}.ext-py-0:not([style*=padding]){padding-bottom:0!important;padding-top:0!important}.ext-py-base:not([style*=padding]){padding-bottom:var(--wp--style--block-gap,2rem)!important;padding-top:var(--wp--style--block-gap,2rem)!important}.ext-py-lg:not([style*=padding]){padding-bottom:var(--extendify--spacing--large)!important;padding-top:var(--extendify--spacing--large)!important}.ext-pt-0:not([style*=padding]){padding-top:0!important}.ext-pt-base:not([style*=padding]){padding-top:var(--wp--style--block-gap,2rem)!important}.ext-pt-lg:not([style*=padding]){padding-top:var(--extendify--spacing--large)!important}.ext-pr-0:not([style*=padding]){padding-right:0!important}.ext-pr-base:not([style*=padding]){padding-right:var(--wp--style--block-gap,2rem)!important}.ext-pr-lg:not([style*=padding]){padding-right:var(--extendify--spacing--large)!important}.ext-pb-0:not([style*=padding]){padding-bottom:0!important}.ext-pb-base:not([style*=padding]){padding-bottom:var(--wp--style--block-gap,2rem)!important}.ext-pb-lg:not([style*=padding]){padding-bottom:var(--extendify--spacing--large)!important}.ext-pl-0:not([style*=padding]){padding-left:0!important}.ext-pl-base:not([style*=padding]){padding-left:var(--wp--style--block-gap,2rem)!important}.ext-pl-lg:not([style*=padding]){padding-left:var(--extendify--spacing--large)!important}.ext-text-left{text-align:left!important}.ext-text-center{text-align:center!important}.ext-text-right{text-align:right!important}.ext-leading-none{line-height:1!important}.ext-leading-tight{line-height:1.25!important}.ext-leading-snug{line-height:1.375!important}.ext-leading-normal{line-height:1.5!important}.ext-leading-relaxed{line-height:1.625!important}.ext-leading-loose{line-height:2!important}.clip-path--rhombus img{-webkit-clip-path:polygon(15% 6%,80% 29%,84% 93%,23% 69%);clip-path:polygon(15% 6%,80% 29%,84% 93%,23% 69%)}.clip-path--diamond img{-webkit-clip-path:polygon(5% 29%,60% 2%,91% 64%,36% 89%);clip-path:polygon(5% 29%,60% 2%,91% 64%,36% 89%)}.clip-path--rhombus-alt img{-webkit-clip-path:polygon(14% 9%,85% 24%,91% 89%,19% 76%);clip-path:polygon(14% 9%,85% 24%,91% 89%,19% 76%)}.wp-block-columns[class*=fullwidth-cols]{margin-bottom:unset}.ext .wp-block-columns .wp-block-column[style*=padding]{padding-left:0!important;padding-right:0!important}.ext .wp-block-columns+.wp-block-columns:not([class*=mt-]):not([class*=my-]):not([style*=margin]){margin-top:0!important}[class*=fullwidth-cols] .wp-block-column:first-child,[class*=fullwidth-cols] .wp-block-group:first-child{margin-top:0}[class*=fullwidth-cols] .wp-block-column:last-child,[class*=fullwidth-cols] .wp-block-group:last-child{margin-bottom:0}[class*=fullwidth-cols] .wp-block-column:first-child>*,[class*=fullwidth-cols] .wp-block-column>:first-child{margin-top:0}.ext .is-not-stacked-on-mobile .wp-block-column,[class*=fullwidth-cols] .wp-block-column>:last-child{margin-bottom:0}.wp-block-columns[class*=fullwidth-cols]:not(.is-not-stacked-on-mobile)>.wp-block-column:not(:last-child){margin-bottom:var(--wp--style--block-gap,2rem)}@media (min-width:782px){.wp-block-columns[class*=fullwidth-cols]:not(.is-not-stacked-on-mobile)>.wp-block-column:not(:last-child){margin-bottom:0}}.wp-block-columns[class*=fullwidth-cols].is-not-stacked-on-mobile>.wp-block-column{margin-bottom:0!important}@media (min-width:600px) and (max-width:781px){.wp-block-columns[class*=fullwidth-cols]:not(.is-not-stacked-on-mobile)>.wp-block-column:nth-child(2n){margin-left:var(--wp--style--block-gap,2em)}}@media (max-width:781px){.tablet\:fullwidth-cols.wp-block-columns:not(.is-not-stacked-on-mobile){flex-wrap:wrap}.tablet\:fullwidth-cols.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important;margin-left:0!important}}@media (max-width:1079px){.desktop\:fullwidth-cols.wp-block-columns:not(.is-not-stacked-on-mobile){flex-wrap:wrap}.desktop\:fullwidth-cols.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important;margin-left:0!important}.desktop\:fullwidth-cols.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column:not(:last-child){margin-bottom:var(--wp--style--block-gap,2rem)!important}}.direction-rtl{direction:rtl}.direction-ltr{direction:ltr}.is-style-inline-list{padding-left:0!important}.is-style-inline-list li{list-style-type:none!important}@media (min-width:782px){.is-style-inline-list li{display:inline!important;margin-right:var(--wp--style--block-gap,2rem)!important}}@media (min-width:782px){.is-style-inline-list li:first-child{margin-left:0!important}}@media (min-width:782px){.is-style-inline-list li:last-child{margin-right:0!important}}.bring-to-front{position:relative;z-index:10}.text-stroke{-webkit-text-stroke-color:var(--wp--preset--color--background)}.text-stroke,.text-stroke--primary{-webkit-text-stroke-width:var(
2
  --wp--custom--typography--text-stroke-width,2px
3
  )}.text-stroke--primary{-webkit-text-stroke-color:var(--wp--preset--color--primary)}.text-stroke--secondary{-webkit-text-stroke-width:var(
4
  --wp--custom--typography--text-stroke-width,2px
redux-core/extendify-sdk/readme.txt CHANGED
@@ -1,5 +1,5 @@
1
  === Extendify Sdk ===
2
  Requires at least: 5.4
3
- Stable tag: 13.1
4
  Requires PHP: 5.6
5
  Tested up to: 5.7.0
1
  === Extendify Sdk ===
2
  Requires at least: 5.4
3
+ Stable tag: 13.4
4
  Requires PHP: 5.6
5
  Tested up to: 5.7.0
redux-core/extendify-sdk/utility-framework/classes/columns.css CHANGED
@@ -33,17 +33,17 @@ We use it here to ensure columns blocks display well across themes.
33
  @apply ext-mb-0;
34
  }
35
 
36
- [class*="fullwidth-cols"] .wp-block-column:first-child * {
37
  /* no suggestion */
38
  @apply ext-mt-0;
39
  }
40
 
41
- [class*="fullwidth-cols"] .wp-block-column *:first-child {
42
  /* no suggestion */
43
  @apply ext-mt-0;
44
  }
45
 
46
- [class*="fullwidth-cols"] .wp-block-column *:last-child {
47
  /* no suggestion */
48
  @apply ext-mb-0;
49
  }
33
  @apply ext-mb-0;
34
  }
35
 
36
+ [class*="fullwidth-cols"] .wp-block-column:first-child > * {
37
  /* no suggestion */
38
  @apply ext-mt-0;
39
  }
40
 
41
+ [class*="fullwidth-cols"] .wp-block-column > *:first-child {
42
  /* no suggestion */
43
  @apply ext-mt-0;
44
  }
45
 
46
+ [class*="fullwidth-cols"] .wp-block-column > *:last-child {
47
  /* no suggestion */
48
  @apply ext-mb-0;
49
  }
redux-core/framework.php CHANGED
@@ -29,7 +29,7 @@ defined( 'ABSPATH' ) || exit;
29
 
30
  require_once dirname( __FILE__ ) . '/class-redux-core.php';
31
 
32
- Redux_Core::$version = '4.3.4';
33
  Redux_Core::$redux_path = dirname( __FILE__ );
34
  Redux_Core::instance();
35
 
29
 
30
  require_once dirname( __FILE__ ) . '/class-redux-core.php';
31
 
32
+ Redux_Core::$version = '4.3.5';
33
  Redux_Core::$redux_path = dirname( __FILE__ );
34
  Redux_Core::instance();
35
 
redux-core/inc/classes/class-redux-args.php CHANGED
@@ -160,6 +160,7 @@ if ( ! class_exists( 'Redux_Args', false ) ) {
160
  'pro' => array(),
161
  'font_display' => 'swap', // block|swap|fallback|optional.
162
  'load_on_cron' => false,
 
163
  );
164
 
165
  // phpcs:ignore WordPress.NamingConventions.ValidHookName
160
  'pro' => array(),
161
  'font_display' => 'swap', // block|swap|fallback|optional.
162
  'load_on_cron' => false,
163
+ 'search' => false,
164
  );
165
 
166
  // phpcs:ignore WordPress.NamingConventions.ValidHookName
redux-core/inc/classes/class-redux-functions-ex.php CHANGED
@@ -588,9 +588,12 @@ if ( ! class_exists( 'Redux_Functions_Ex', false ) ) {
588
  if ( $redux_pro_key && ! get_user_option( 'extendifysdk_redux_key_moved' ) ) {
589
  try {
590
  $extendify_user_state = get_user_meta( get_current_user_id(), 'extendifysdk_user_data' );
 
 
 
591
 
592
  if ( ! isset( $extendify_user_state[0] ) ) {
593
- $extendify_user_state[0] = '{}';
594
  }
595
 
596
  $extendify_user_data = json_decode( $extendify_user_state[0], true );
588
  if ( $redux_pro_key && ! get_user_option( 'extendifysdk_redux_key_moved' ) ) {
589
  try {
590
  $extendify_user_state = get_user_meta( get_current_user_id(), 'extendifysdk_user_data' );
591
+ if ( false === $extendify_user_state ) {
592
+ $extendify_user_state = array();
593
+ }
594
 
595
  if ( ! isset( $extendify_user_state[0] ) ) {
596
+ $extendify_user_state[0] = wp_json_encode( array() ); // '{}';
597
  }
598
 
599
  $extendify_user_data = json_decode( $extendify_user_state[0], true );
redux-core/inc/classes/class-redux-helpers.php CHANGED
@@ -516,7 +516,7 @@ if ( ! class_exists( 'Redux_Helpers', false ) ) {
516
  continue;
517
  }
518
 
519
- if ( isset( $extension::$version ) ) {
520
  $extensions[ $key ] = $extension::$version;
521
  } elseif ( isset( $extension->version ) ) {
522
  $extensions[ $key ] = $extension->version;
@@ -1872,7 +1872,7 @@ if ( ! class_exists( 'Redux_Helpers', false ) ) {
1872
  * @param array $array Array to sanitize.
1873
  */
1874
  public static function sanitize_array( array $array ): array {
1875
- return self::array_map_r( 'sanitize_text_field', $array );
1876
  }
1877
 
1878
  /**
516
  continue;
517
  }
518
 
519
+ if ( isset($extension) && isset( $extension::$version ) ) {
520
  $extensions[ $key ] = $extension::$version;
521
  } elseif ( isset( $extension->version ) ) {
522
  $extensions[ $key ] = $extension->version;
1872
  * @param array $array Array to sanitize.
1873
  */
1874
  public static function sanitize_array( array $array ): array {
1875
+ return self::array_map_r( 'wp_kses_post', $array );
1876
  }
1877
 
1878
  /**
redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php CHANGED
@@ -458,9 +458,7 @@ if ( ! class_exists( 'Redux_Extension_Metaboxes', false ) ) {
458
  }
459
 
460
  if ( isset( $options[ $key ] ) ) {
461
- if ( isset( $options[ $key ] ) ) {
462
- $data[ $key ] = $options[ $key ];
463
- }
464
  }
465
  }
466
 
@@ -569,7 +567,7 @@ if ( ! class_exists( 'Redux_Extension_Metaboxes', false ) ) {
569
  * @param string bundled stylesheet src
570
  */
571
  wp_enqueue_style(
572
- 'redux-extension-metaboxes-js',
573
  apply_filters( "redux/metaboxes/{$this->parent->args['opt_name']}/enqueue/redux-extension-metaboxes-css", $this->extension_url . 'redux-extension-metaboxes.css' ), // phpcs:ignore: WordPress.NamingConventions.ValidHookName
574
  array(),
575
  self::$version
@@ -618,7 +616,7 @@ if ( ! class_exists( 'Redux_Extension_Metaboxes', false ) ) {
618
  if ( isset( $_GET['post'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
619
  $post = (int) sanitize_text_field( wp_unslash( $_GET['post'] ) ); // phpcs:ignore WordPress.Security.NonceVerification
620
 
621
- if ( ! empty( $post ) && is_numeric( $post ) ) {
622
  return $post;
623
  }
624
  }
@@ -1388,9 +1386,7 @@ if ( ! class_exists( 'Redux_Extension_Metaboxes', false ) ) {
1388
  if ( isset( $this->parent->args['metaboxes_save_defaults'] ) && $this->parent->args['metaboxes_save_defaults'] ) {
1389
  $dont_save = false;
1390
  }
1391
-
1392
  foreach ( Redux_Helpers::sanitize_array( wp_unslash( $_POST[ $this->parent->args['opt_name'] ] ) ) as $key => $value ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
1393
-
1394
  // Have to remove the escaping for array comparison.
1395
  if ( is_array( $value ) ) {
1396
  foreach ( $value as $k => $v ) {
458
  }
459
 
460
  if ( isset( $options[ $key ] ) ) {
461
+ $data[ $key ] = $options[ $key ];
 
 
462
  }
463
  }
464
 
567
  * @param string bundled stylesheet src
568
  */
569
  wp_enqueue_style(
570
+ 'redux-extension-metaboxes-css',
571
  apply_filters( "redux/metaboxes/{$this->parent->args['opt_name']}/enqueue/redux-extension-metaboxes-css", $this->extension_url . 'redux-extension-metaboxes.css' ), // phpcs:ignore: WordPress.NamingConventions.ValidHookName
572
  array(),
573
  self::$version
616
  if ( isset( $_GET['post'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
617
  $post = (int) sanitize_text_field( wp_unslash( $_GET['post'] ) ); // phpcs:ignore WordPress.Security.NonceVerification
618
 
619
+ if ( ! empty( $post ) ) {
620
  return $post;
621
  }
622
  }
1386
  if ( isset( $this->parent->args['metaboxes_save_defaults'] ) && $this->parent->args['metaboxes_save_defaults'] ) {
1387
  $dont_save = false;
1388
  }
 
1389
  foreach ( Redux_Helpers::sanitize_array( wp_unslash( $_POST[ $this->parent->args['opt_name'] ] ) ) as $key => $value ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
 
1390
  // Have to remove the escaping for array comparison.
1391
  if ( is_array( $value ) ) {
1392
  foreach ( $value as $k => $v ) {
redux-core/inc/extensions/search/class-redux-extension-search.php ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Redux Search Extension Class
4
+ *
5
+ * @package Redux
6
+ * @author Dovy Paukstys (dovy)
7
+ * @class Redux_Extension_Search
8
+ * @version 3.4.5
9
+ */
10
+
11
+ defined( 'ABSPATH' ) || exit;
12
+
13
+ if ( ! class_exists( 'Redux_Extension_Search' ) ) {
14
+
15
+ /**
16
+ * Class Redux_Extension_Search
17
+ */
18
+ class Redux_Extension_Search extends Redux_Extension_Abstract {
19
+
20
+ /**
21
+ * Extension version.
22
+ *
23
+ * @var string
24
+ */
25
+ public static $version = '3.4.5';
26
+
27
+ /**
28
+ * Extension friendly name.
29
+ *
30
+ * @var string
31
+ */
32
+ public $extension_name = 'Search';
33
+
34
+ /**
35
+ * Redux_Extension_Search constructor.
36
+ *
37
+ * @param object $parent ReduxFramework object pointer.
38
+ */
39
+ public function __construct( $parent ) {
40
+ global $pagenow;
41
+
42
+ if ( false === $parent->args['search'] ) {
43
+ return;
44
+ }
45
+
46
+ parent::__construct( $parent, __FILE__ );
47
+
48
+ $this->add_field( 'search' );
49
+
50
+ // Allow users to extend if they want.
51
+ // phpcs:ignore WordPress.NamingConventions.ValidHookName
52
+ do_action( 'redux/search/' . $parent->args['opt_name'] . '/construct' );
53
+
54
+ if ( isset( $_GET['page'] ) && sanitize_text_field( wp_unslash( $_GET['page'] === $this->parent->args['page_slug'] ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
55
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ), 0 );
56
+ }
57
+
58
+ add_action( "redux/metaboxes/{$this->parent->args[ 'opt_name' ]}/enqueue", array( $this, 'enqueue' ), 10 );
59
+ }
60
+
61
+ /**
62
+ * Support file enqueue.
63
+ */
64
+ public function enqueue() {
65
+ $min = Redux_Functions::is_min();
66
+
67
+ /**
68
+ * Redux search CSS
69
+ * filter 'redux/page/{opt_name}/enqueue/redux-extension-search-css'
70
+ *
71
+ * @param string bundled stylesheet src
72
+ */
73
+ wp_enqueue_style(
74
+ 'redux-extension-search-css',
75
+ // phpcs:ignore WordPress.NamingConventions.ValidHookName
76
+ apply_filters( "redux/search/{$this->parent->args[ 'opt_name' ]}/enqueue/redux-extension-search-css", $this->extension_url . 'redux-extension-search.css' ),
77
+ array(),
78
+ self::$version
79
+ );
80
+
81
+ /**
82
+ * Redux search JS
83
+ * filter 'redux/page/{opt_name}/enqueue/redux-extension-search-js
84
+ *
85
+ * @param string bundled javscript
86
+ */
87
+ wp_enqueue_script(
88
+ 'redux-extension-search-js',
89
+ // phpcs:ignore WordPress.NamingConventions.ValidHookName
90
+ apply_filters( "redux/search/{$this->parent->args[ 'opt_name' ]}/enqueue/redux-extension-search-js", $this->extension_url . 'redux-extension-search' . $min . '.js' ),
91
+ '',
92
+ self::$version,
93
+ true
94
+ );
95
+
96
+ // Values used by the javascript.
97
+ wp_localize_script(
98
+ 'redux-extension-search-js',
99
+ 'reduxsearch',
100
+ array(
101
+ 'search' => esc_html__( 'Search for field(s)', 'redux-pro' ),
102
+ )
103
+ );
104
+ }
105
+ }
106
+ }
redux-core/inc/extensions/search/redux-extension-search.css ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .redux_field_search { position: absolute; width: 250px !important; right: 20px; padding: 4px 7px; top: 6px; }
2
+
3
+ .redux-has-sections .redux_field_search { right: 10px; }
4
+
5
+ .redux-main.redux-search .redux-section-field, .redux-main.redux-search .redux-info-field, .redux-main.redux-search .redux-notice-field, .redux-main.redux-search .redux-container-group, .redux-main.redux-search .redux-container-raw, .redux-main.redux-search .redux-section-desc, .redux-main.redux-search .redux-group-tab h3, .redux-main.redux-search .hr, .redux-main.redux-search .redux-field-info, .redux-main.redux-search tr { display: none; }
6
+
7
+ .redux-main.redux-search #import_export_default_section_group, .redux-main.redux-search #dev_mode_default_section_group { display: none !important; }
8
+
9
+ .redux-main.redux-search .redux-group-tab { margin-bottom: 0; }
10
+
11
+ .redux-main.redux-search .redux-group-tab .form-table-section-indented { margin-left: 0 !important; width: 100%; }
12
+
13
+ .redux-main.redux-search .redux-group-tab .form-table-section-indented .redux-group-tab .form-table-section tr:first-of-type th:first-of-type { padding: inherit !important; }
14
+
15
+ .redux-main.redux-search .redux-group-tab .form-table-section-indented .redux-group-tab h3 { margin-top: inherit !important; }
16
+
17
+ .redux-metabox .redux-has-sections .redux_field_search { top: 8px; }
18
+
19
+ /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdXgtZXh0ZW5zaW9uLXNlYXJjaC5jc3MiLCJzb3VyY2VzIjpbInJlZHV4LWV4dGVuc2lvbi1zZWFyY2guc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxBQUFBLG1CQUFtQixDQUFDLEVBQ2hCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLEtBQUssRUFBRSxnQkFBZ0IsRUFDdkIsS0FBSyxFQUFFLElBQUksRUFDWCxPQUFPLEVBQUUsT0FBTyxFQUNoQixHQUFHLEVBQUMsR0FBRyxHQUNWOztBQUVELEFBQ0ksbUJBRGUsQ0FDZixtQkFBbUIsQ0FBQyxFQUNoQixLQUFLLEVBQUUsSUFBSSxHQUNkOztBQUVMLEFBQ0ksV0FETyxBQUFBLGFBQWEsQ0FDcEIsb0JBQW9CLEVBRHhCLFdBQVcsQUFBQSxhQUFhLENBRXBCLGlCQUFpQixFQUZyQixXQUFXLEFBQUEsYUFBYSxDQUdwQixtQkFBbUIsRUFIdkIsV0FBVyxBQUFBLGFBQWEsQ0FJcEIsc0JBQXNCLEVBSjFCLFdBQVcsQUFBQSxhQUFhLENBS3BCLG9CQUFvQixFQUx4QixXQUFXLEFBQUEsYUFBYSxDQU1wQixtQkFBbUIsRUFOdkIsV0FBVyxBQUFBLGFBQWEsQ0FPcEIsZ0JBQWdCLENBQUMsRUFBRSxFQVB2QixXQUFXLEFBQUEsYUFBYSxDQVFwQixHQUFHLEVBUlAsV0FBVyxBQUFBLGFBQWEsQ0FTcEIsaUJBQWlCLEVBVHJCLFdBQVcsQUFBQSxhQUFhLENBVXBCLEVBQUUsQ0FBQyxFQUNDLE9BQU8sRUFBRSxJQUFJLEdBQ2hCOztBQVpMLEFBY0ksV0FkTyxBQUFBLGFBQWEsQ0FjcEIsb0NBQW9DLEVBZHhDLFdBQVcsQUFBQSxhQUFhLENBZXBCLCtCQUErQixDQUFDLEVBQzVCLE9BQU8sRUFBQyxlQUFlLEdBQzFCOztBQWpCTCxBQW1CSSxXQW5CTyxBQUFBLGFBQWEsQ0FtQnBCLGdCQUFnQixDQUFDLEVBQ2IsYUFBYSxFQUFFLENBQUMsR0FnQm5COztBQXBDTCxBQXNCUSxXQXRCRyxBQUFBLGFBQWEsQ0FtQnBCLGdCQUFnQixDQUdaLDRCQUE0QixDQUFDLEVBQ3pCLFdBQVcsRUFBRSxZQUFZLEVBQ3pCLEtBQUssRUFBRSxJQUFJLEdBV2Q7O0FBbkNULEFBMkJnQixXQTNCTCxBQUFBLGFBQWEsQ0FtQnBCLGdCQUFnQixDQUdaLDRCQUE0QixDQUl4QixnQkFBZ0IsQ0FDWixtQkFBbUIsQ0FBQyxFQUFFLEFBQUEsY0FBYyxDQUFDLEVBQUUsQUFBQSxjQUFjLENBQUMsRUFDcEQsT0FBTyxFQUFFLGtCQUFrQixHQUM1Qjs7QUE3QmpCLEFBK0JnQixXQS9CTCxBQUFBLGFBQWEsQ0FtQnBCLGdCQUFnQixDQUdaLDRCQUE0QixDQUl4QixnQkFBZ0IsQ0FLWixFQUFFLENBQUMsRUFDRCxVQUFVLEVBQUUsa0JBQWtCLEdBQy9COztBQU1qQixBQUFBLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxFQUNuRCxHQUFHLEVBQUMsR0FDUixHQUFDIn0= */
20
+
21
+ /*# sourceMappingURL=redux-extension-search.css.map */
redux-core/inc/extensions/search/redux-extension-search.css.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"sources":["redux-extension-search.scss","redux-extension-search.css"],"names":[],"mappings":"AAAA,sBCCI,kBAAkB,EDOtB,uBACI,ECNA,WAAW,EDUf,gBAAW,ECRP,QAAO,EAAA;;ADQX,0CAAA,WAAW,EAAA;;ACAX,6aAWQ,aAAa,EAAA;;AAXrB,0HAgBQ,wBAAuB,EAAA;;AAhB/B,4CAoBQ,gBAAgB,EAAA;;AApBxB,yEAuBY,yBAAyB,EACzB,WAAW,EAAA;;AAxBvB,gJA4BkB,2BAA2B,EAAA;;AA5B7C,6FAgCkB,8BAA8B,EAAA;;AAOhD,yDACI,QACJ,EAAA;;AApCA,6xDAA6xD","file":"redux-extension-search.css","sourcesContent":[".redux_field_search {\n position: absolute;\n width: 250px !important;\n right: 20px;\n padding: 4px 7px;\n top:6px;\n}\n\n.redux-has-sections {\n .redux_field_search {\n right: 10px;\n }\n}\n.redux-main.redux-search {\n .redux-section-field,\n .redux-info-field,\n .redux-notice-field,\n .redux-container-group,\n .redux-container-raw,\n .redux-section-desc,\n .redux-group-tab h3,\n .hr,\n .redux-field-info,\n tr {\n display: none;\n }\n\n #import_export_default_section_group,\n #dev_mode_default_section_group {\n display:none !important;\n }\n\n .redux-group-tab {\n margin-bottom: 0;\n\n .form-table-section-indented {\n margin-left: 0 !important;\n width: 100%;\n\n .redux-group-tab {\n .form-table-section tr:first-of-type th:first-of-type {\n padding: inherit !important;\n }\n\n h3 {\n margin-top: inherit !important;\n }\n }\n }\n }\n}\n\n.redux-metabox .redux-has-sections .redux_field_search {\n top:8px\n}",".redux_field_search { position: absolute; width: 250px !important; right: 20px; padding: 4px 7px; top: 6px; }\n\n.redux-has-sections .redux_field_search { right: 10px; }\n\n.redux-main.redux-search .redux-section-field, .redux-main.redux-search .redux-info-field, .redux-main.redux-search .redux-notice-field, .redux-main.redux-search .redux-container-group, .redux-main.redux-search .redux-container-raw, .redux-main.redux-search .redux-section-desc, .redux-main.redux-search .redux-group-tab h3, .redux-main.redux-search .hr, .redux-main.redux-search .redux-field-info, .redux-main.redux-search tr { display: none; }\n\n.redux-main.redux-search #import_export_default_section_group, .redux-main.redux-search #dev_mode_default_section_group { display: none !important; }\n\n.redux-main.redux-search .redux-group-tab { margin-bottom: 0; }\n\n.redux-main.redux-search .redux-group-tab .form-table-section-indented { margin-left: 0 !important; width: 100%; }\n\n.redux-main.redux-search .redux-group-tab .form-table-section-indented .redux-group-tab .form-table-section tr:first-of-type th:first-of-type { padding: inherit !important; }\n\n.redux-main.redux-search .redux-group-tab .form-table-section-indented .redux-group-tab h3 { margin-top: inherit !important; }\n\n.redux-metabox .redux-has-sections .redux_field_search { top: 8px; }\n\n/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdXgtZXh0ZW5zaW9uLXNlYXJjaC5jc3MiLCJzb3VyY2VzIjpbInJlZHV4LWV4dGVuc2lvbi1zZWFyY2guc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxBQUFBLG1CQUFtQixDQUFDLEVBQ2hCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLEtBQUssRUFBRSxnQkFBZ0IsRUFDdkIsS0FBSyxFQUFFLElBQUksRUFDWCxPQUFPLEVBQUUsT0FBTyxFQUNoQixHQUFHLEVBQUMsR0FBRyxHQUNWOztBQUVELEFBQ0ksbUJBRGUsQ0FDZixtQkFBbUIsQ0FBQyxFQUNoQixLQUFLLEVBQUUsSUFBSSxHQUNkOztBQUVMLEFBQ0ksV0FETyxBQUFBLGFBQWEsQ0FDcEIsb0JBQW9CLEVBRHhCLFdBQVcsQUFBQSxhQUFhLENBRXBCLGlCQUFpQixFQUZyQixXQUFXLEFBQUEsYUFBYSxDQUdwQixtQkFBbUIsRUFIdkIsV0FBVyxBQUFBLGFBQWEsQ0FJcEIsc0JBQXNCLEVBSjFCLFdBQVcsQUFBQSxhQUFhLENBS3BCLG9CQUFvQixFQUx4QixXQUFXLEFBQUEsYUFBYSxDQU1wQixtQkFBbUIsRUFOdkIsV0FBVyxBQUFBLGFBQWEsQ0FPcEIsZ0JBQWdCLENBQUMsRUFBRSxFQVB2QixXQUFXLEFBQUEsYUFBYSxDQVFwQixHQUFHLEVBUlAsV0FBVyxBQUFBLGFBQWEsQ0FTcEIsaUJBQWlCLEVBVHJCLFdBQVcsQUFBQSxhQUFhLENBVXBCLEVBQUUsQ0FBQyxFQUNDLE9BQU8sRUFBRSxJQUFJLEdBQ2hCOztBQVpMLEFBY0ksV0FkTyxBQUFBLGFBQWEsQ0FjcEIsb0NBQW9DLEVBZHhDLFdBQVcsQUFBQSxhQUFhLENBZXBCLCtCQUErQixDQUFDLEVBQzVCLE9BQU8sRUFBQyxlQUFlLEdBQzFCOztBQWpCTCxBQW1CSSxXQW5CTyxBQUFBLGFBQWEsQ0FtQnBCLGdCQUFnQixDQUFDLEVBQ2IsYUFBYSxFQUFFLENBQUMsR0FnQm5COztBQXBDTCxBQXNCUSxXQXRCRyxBQUFBLGFBQWEsQ0FtQnBCLGdCQUFnQixDQUdaLDRCQUE0QixDQUFDLEVBQ3pCLFdBQVcsRUFBRSxZQUFZLEVBQ3pCLEtBQUssRUFBRSxJQUFJLEdBV2Q7O0FBbkNULEFBMkJnQixXQTNCTCxBQUFBLGFBQWEsQ0FtQnBCLGdCQUFnQixDQUdaLDRCQUE0QixDQUl4QixnQkFBZ0IsQ0FDWixtQkFBbUIsQ0FBQyxFQUFFLEFBQUEsY0FBYyxDQUFDLEVBQUUsQUFBQSxjQUFjLENBQUMsRUFDcEQsT0FBTyxFQUFFLGtCQUFrQixHQUM1Qjs7QUE3QmpCLEFBK0JnQixXQS9CTCxBQUFBLGFBQWEsQ0FtQnBCLGdCQUFnQixDQUdaLDRCQUE0QixDQUl4QixnQkFBZ0IsQ0FLWixFQUFFLENBQUMsRUFDRCxVQUFVLEVBQUUsa0JBQWtCLEdBQy9COztBQU1qQixBQUFBLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxFQUNuRCxHQUFHLEVBQUMsR0FDUixHQUFDIn0= */\n\n/*# sourceMappingURL=redux-extension-search.css.map */\n"]}
redux-core/inc/extensions/search/redux-extension-search.js ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* global jQuery, reduxsearch */
2
+
3
+ (function( $ ) {
4
+ $( document ).ready(
5
+ function() {
6
+ $( '.redux-container' ).each(
7
+ function( ) {
8
+ if ( ! $( this ).hasClass( 'redux-no-sections' ) ) {
9
+ $( this ).find( '.redux-main' ).prepend( '<input class="redux_field_search" type="text" placeholder="' + reduxsearch.search + '"/>' );
10
+ }
11
+ }
12
+ );
13
+
14
+ $( '.redux_field_search' ).on(
15
+ 'keypress',
16
+ function( evt ) {
17
+
18
+ // Deterime where our character code is coming from within the event.
19
+ var charCode = evt.charCode || evt.keyCode;
20
+
21
+ if ( 13 === charCode ) { // Enter key's keycode.
22
+ return false;
23
+ }
24
+ }
25
+ );
26
+
27
+ $( '.redux_field_search' ).typeWatch(
28
+ {
29
+ callback: function( searchString ) {
30
+ var searchArray;
31
+ var parent;
32
+ var expanded_options;
33
+
34
+ searchString = searchString.toLowerCase();
35
+
36
+ searchArray = searchString.split( ' ' );
37
+ parent = $( this ).parents( '.redux-container:first' );
38
+
39
+ expanded_options = parent.find( '.expand_options' );
40
+
41
+ if ( '' !== searchString ) {
42
+ if ( ! expanded_options.hasClass( 'expanded' ) ) {
43
+ expanded_options.trigger( 'click' );
44
+ parent.find( '.redux-main' ).addClass( 'redux-search' );
45
+ }
46
+ } else {
47
+ if ( expanded_options.hasClass( 'expanded' ) ) {
48
+ expanded_options.trigger( 'click' );
49
+ parent.find( '.redux-main' ).removeClass( 'redux-search' );
50
+ }
51
+ parent.find( '.redux-section-field, .redux-info-field, .redux-notice-field, .redux-container-group, .redux-section-desc, .redux-group-tab h3' ).show();
52
+ }
53
+
54
+ parent.find( '.redux-field-container' ).each(
55
+ function() {
56
+ if ( '' !== searchString ) {
57
+ $( this ).parents( 'tr:first' ).hide();
58
+ } else {
59
+ $( this ).parents( 'tr:first' ).show();
60
+ }
61
+ }
62
+ );
63
+
64
+ parent.find( '.form-table tr' ).filter(
65
+ function() {
66
+ var isMatch = true, text = $( this ).find( '.redux_field_th' ).text().toLowerCase();
67
+
68
+ if ( ! text || '' === text ) {
69
+ return false;
70
+ }
71
+
72
+ $.each(
73
+ searchArray,
74
+ function( i, searchStr ) {
75
+ if ( -1 === text.indexOf( searchStr ) ) {
76
+ isMatch = false;
77
+ }
78
+ }
79
+ );
80
+
81
+ if ( isMatch ) {
82
+ $( this ).show();
83
+ }
84
+
85
+ return isMatch;
86
+ }
87
+ ).show();
88
+ },
89
+ wait: 400,
90
+ highlight: false,
91
+ captureLength: 0
92
+ }
93
+ );
94
+ }
95
+ );
96
+ } )( jQuery );
redux-core/inc/extensions/search/redux-extension-search.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .redux_field_search{position:absolute;width:250px !important;right:20px;padding:4px 7px;top:6px}.redux-has-sections .redux_field_search{right:10px}.redux-main.redux-search .redux-section-field,.redux-main.redux-search .redux-info-field,.redux-main.redux-search .redux-notice-field,.redux-main.redux-search .redux-container-group,.redux-main.redux-search .redux-container-raw,.redux-main.redux-search .redux-section-desc,.redux-main.redux-search .redux-group-tab h3,.redux-main.redux-search .hr,.redux-main.redux-search .redux-field-info,.redux-main.redux-search tr{display:none}.redux-main.redux-search #import_export_default_section_group,.redux-main.redux-search #dev_mode_default_section_group{display:none !important}.redux-main.redux-search .redux-group-tab{margin-bottom:0}.redux-main.redux-search .redux-group-tab .form-table-section-indented{margin-left:0 !important;width:100%}.redux-main.redux-search .redux-group-tab .form-table-section-indented .redux-group-tab .form-table-section tr:first-of-type th:first-of-type{padding:inherit !important}.redux-main.redux-search .redux-group-tab .form-table-section-indented .redux-group-tab h3{margin-top:inherit !important}.redux-metabox .redux-has-sections .redux_field_search{top:8px}
redux-core/inc/extensions/search/redux-extension-search.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(n){n(document).ready(function(){n(".redux-container").each(function(){n(this).hasClass("redux-no-sections")||n(this).find(".redux-main").prepend('<input class="redux_field_search" type="text" placeholder="'+reduxsearch.search+'"/>')}),n(".redux_field_search").on("keypress",function(e){if(13===(e.charCode||e.keyCode))return!1}),n(".redux_field_search").typeWatch({callback:function(e){var r,i,t;e=e.toLowerCase(),r=e.split(" "),t=(i=n(this).parents(".redux-container:first")).find(".expand_options"),""!==e?t.hasClass("expanded")||(t.trigger("click"),i.find(".redux-main").addClass("redux-search")):(t.hasClass("expanded")&&(t.trigger("click"),i.find(".redux-main").removeClass("redux-search")),i.find(".redux-section-field, .redux-info-field, .redux-notice-field, .redux-container-group, .redux-section-desc, .redux-group-tab h3").show()),i.find(".redux-field-container").each(function(){""!==e?n(this).parents("tr:first").hide():n(this).parents("tr:first").show()}),i.find(".form-table tr").filter(function(){var i=!0,t=n(this).find(".redux_field_th").text().toLowerCase();return!(!t||""===t)&&(n.each(r,function(e,r){-1===t.indexOf(r)&&(i=!1)}),i&&n(this).show(),i)}).show()},wait:400,highlight:!1,captureLength:0})})}(jQuery);
redux-core/inc/extensions/search/redux-extension-search.scss ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .redux_field_search {
2
+ position: absolute;
3
+ width: 250px !important;
4
+ right: 20px;
5
+ padding: 4px 7px;
6
+ top:6px;
7
+ }
8
+
9
+ .redux-has-sections {
10
+ .redux_field_search {
11
+ right: 10px;
12
+ }
13
+ }
14
+ .redux-main.redux-search {
15
+ .redux-section-field,
16
+ .redux-info-field,
17
+ .redux-notice-field,
18
+ .redux-container-group,
19
+ .redux-container-raw,
20
+ .redux-section-desc,
21
+ .redux-group-tab h3,
22
+ .hr,
23
+ .redux-field-info,
24
+ tr {
25
+ display: none;
26
+ }
27
+
28
+ #import_export_default_section_group,
29
+ #dev_mode_default_section_group {
30
+ display:none !important;
31
+ }
32
+
33
+ .redux-group-tab {
34
+ margin-bottom: 0;
35
+
36
+ .form-table-section-indented {
37
+ margin-left: 0 !important;
38
+ width: 100%;
39
+
40
+ .redux-group-tab {
41
+ .form-table-section tr:first-of-type th:first-of-type {
42
+ padding: inherit !important;
43
+ }
44
+
45
+ h3 {
46
+ margin-top: inherit !important;
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+
53
+ .redux-metabox .redux-has-sections .redux_field_search {
54
+ top:8px
55
+ }
redux-core/inc/extensions/shortcodes/class-redux-extension-shortcodes.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Redux Shortcodes Extension Class
4
+ *
5
+ * @package Redux
6
+ * @author Dovy Paukstys (dovy) & Kevin Provance <kevin.provance@gmail.com>
7
+ * @class Redux_Extension_Shortcodes
8
+ * @version 4.3.5
9
+ */
10
+
11
+ defined( 'ABSPATH' ) || exit;
12
+
13
+ // Don't duplicate me!
14
+ if ( ! class_exists( 'Redux_Extension_Shortcodes' ) ) {
15
+
16
+ /**
17
+ * Class Redux_Extension_Shortcodes
18
+ */
19
+ class Redux_Extension_Shortcodes extends Redux_Extension_Abstract {
20
+
21
+ /**
22
+ * Extension Version.
23
+ *
24
+ * @var string
25
+ */
26
+ public static $version = '4.3.5';
27
+
28
+ /**
29
+ * Extension Friendly Name.
30
+ *
31
+ * @var string
32
+ */
33
+ public $extension_name = 'Shortcodes';
34
+
35
+ /**
36
+ * Redux_Extension_Shortcodes constructor.
37
+ *
38
+ * @param object $parent ReduxFramework Object pointer.
39
+ */
40
+ public function __construct( $parent ) {
41
+ parent::__construct( $parent, __FILE__ );
42
+
43
+ $this->add_field( 'shortcodes' );
44
+
45
+ if ( ! class_exists( 'Redux_Shortcodes' ) ) {
46
+ require_once dirname( __FILE__ ) . '/class-redux-shortcodes.php';
47
+ new Redux_Shortcodes( $parent );
48
+ }
49
+
50
+ // Allow users to extend if they want.
51
+ // phpcs:ignore WordPress.NamingConventions.ValidHookName
52
+ do_action( 'redux/shorcodes/' . $parent->args['opt_name'] . '/construct' );
53
+ }
54
+ }
55
+ }
redux-core/inc/extensions/shortcodes/class-redux-shortcodes.php ADDED
@@ -0,0 +1,224 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Redux Shortcodes Class
4
+ *
5
+ * @package Redux Pro
6
+ * @author Dovy Paukstys (dovy) & Kevin Provance <kevin.provance@gmail.com>
7
+ * @class Redux_Extension_Shortcodes
8
+ */
9
+
10
+ defined( 'ABSPATH' ) || exit;
11
+
12
+ if ( ! class_exists( 'Redux_Shortcodes' ) ) {
13
+
14
+ /**
15
+ * Redux Framework shortcode extension class. Takes the common WordPress functions `wp_get_theme()` and `bloginfo()` and a few other functions and makes them accessible via shortcodes. Below you will find a table for the possible shortcodes and their values.
16
+ * | shortcode | Function | Description |
17
+ * |-----------|----------|-------------|
18
+ * | blog-name | bloginfo("name") | Displays the "Site Title" set in Settings > General. This data is retrieved from the "blogname" record in the wp_options table. |
19
+ * | blog-description | bloginfo("description") | Displays the "Tagline" set in Settings > General. This data is retrieved from the "blogdescription" record in the wp_options table.|
20
+ * | blog-wpurl | bloginfo("wpurl") | Displays the "WordPress address (URL)" set in Settings > General. This data is retrieved from the "siteurl" record in the wp_options table. Consider using **blog-root_url** instead, especially for multi-site configurations using paths instead of subdomains (it will return the root site not the current sub-site). |
21
+ * | blog-root_url | site_url() | Return the root site, not the current sub-site. |
22
+ * | blog-url | home_url() | Displays the "Site address (URL)" set in Settings > General. This data is retrieved from the "home" record in the wp_options table. |
23
+ * | blog-admin_email | bloginfo("admin_email") | Displays the "E-mail address" set in Settings > General. This data is retrieved from the "admin_email" record in the wp_options table.|
24
+ * | blog-charset | bloginfo("charset") | Displays the "Encoding for pages and feeds" set in Settings > Reading. This data is retrieved from the "blog_charset" record in the wp_options table. Note: In Version 3.5.0 and later, character encoding is no longer configurable from the Administration Panel. Therefore, this parameter always echoes "UTF-8", which is the default encoding of WordPress.|
25
+ * | blog-version | bloginfo("version") | Displays the WordPress Version you use. This data is retrieved from the $wp_version variable set in wp-includes/version.php.|
26
+ * | blog-html_type | bloginfo("html_type") | Displays the Content-Type of WordPress HTML pages (default: "text/html"). This data is retrieved from the "html_type" record in the wp_options table. Themes and plugins can override the default value using the pre_option_html_type filter.|
27
+ * | blog-text_direction | bloginfo("text_direction") | Displays the Text Direction of WordPress HTML pages. Consider using **blog-text_direction_boolean** instead if you want a true/false response. |
28
+ * | blog-text_direction_boolean | is_rtl() | Displays true/false check if the Text Direction of WordPress HTML pages is left instead of right |
29
+ * | blog-language | bloginfo("language") | Displays the language of WordPress.|
30
+ * | blog-stylesheet_url | get_stylesheet_uri() | Displays the primary CSS (usually style.css) file URL of the active theme. |
31
+ * | blog-stylesheet_directory | bloginfo("stylesheet_directory") | Displays the stylesheet directory URL of the active theme. (Was a local path in earlier WordPress versions.) Consider echoing get_stylesheet_directory_uri() instead.|
32
+ * | blog-template_url | get_template_directory_uri() | Parent template uri. Consider using **blog-child_template_url** for the child template URI. |
33
+ * | blog-child_template_url | get_stylesheet_directory_uri() | Child template URI. |
34
+ * | blog-pingback_url | bloginfo("pingback_url") | Displays the Pingback XML-RPC file URL (xmlrpc.php).|
35
+ * | blog-atom_url | bloginfo("atom_url") | Displays the Atom feed URL (/feed/atom).|
36
+ * | blog-rdf_url | bloginfo("rdf_url") | Displays the RDF/RSS 1.0 feed URL (/feed/rfd).|
37
+ * | blog-rss_url | bloginfo("rss_url") | Displays the RSS 0.92 feed URL (/feed/rss).|
38
+ * | blog-rss2_url | bloginfo("rss2_url") | Displays the RSS 2.0 feed URL (/feed).|
39
+ * | blog-comments_atom_url | bloginfo("comments_atom_url") | Displays the comments Atom feed URL (/comments/feed).|
40
+ * | blog-comments_rss2_url | bloginfo("comments_rss2_url") | Displays the comments RSS 2.0 feed URL (/comments/feed).|
41
+ * | login-url | wp_login_url() | Returns the WordPress login URL. |
42
+ * | login-url | wp_logout_url() | Returns the WordPress logout URL. |
43
+ * | current_year | date("Y") | Returns the current year. |
44
+ * | theme-name | $theme_info->get("Name") | Theme name as given in theme's style.css |
45
+ * | theme-uri | $theme_info->get("ThemeURI") | The path to the theme's directory |
46
+ * | theme-description | $theme_info->get("Description") | The description of the theme |
47
+ * | theme-author | $theme_info->get("Author") | The theme's author |
48
+ * | theme-author_uri | $theme_info->get("AuthorURI") | The website of the theme author |
49
+ * | theme-version | $theme_info->get("Version") | The version of the theme |
50
+ * | theme-template | $theme_info->get("Template") | The folder name of the current theme |
51
+ * | theme-status | $theme_info->get("Status") | If the theme is published |
52
+ * | theme-tags | $theme_info->get("Tags") | Tags used to describe the theme |
53
+ * | theme-text_domain | $theme_info->get("TextDomain") | The text domain used in the theme for translation purposes |
54
+ * | theme-domain_path | $theme_info->get("DomainPath") | Path to the theme translation files |
55
+ *
56
+ * @version 1.0.0
57
+ */
58
+
59
+ /**
60
+ * Class Redux_Shortcodes
61
+ */
62
+ class Redux_Shortcodes {
63
+
64
+ /**
65
+ * Redux_Shortcodes constructor.
66
+ *
67
+ * @param object $parent ReduxFramework pointer.
68
+ */
69
+ public function __construct( $parent ) {
70
+ if ( ! shortcode_exists( 'bloginfo' ) ) {
71
+ add_shortcode( 'bloginfo', array( $this, 'blog_info' ) );
72
+ } else {
73
+ add_shortcode( 'redux_bloginfo', array( $this, 'blog_info' ) );
74
+ }
75
+
76
+ if ( ! shortcode_exists( 'themeinfo' ) ) {
77
+ add_shortcode( 'themeinfo', array( $this, 'theme_info' ) );
78
+ } else {
79
+ add_shortcode( 'redux_themeinfo', array( $this, 'theme_info' ) );
80
+ }
81
+
82
+ if ( ! shortcode_exists( 'date' ) ) {
83
+ add_shortcode( 'date', array( $this, 'date' ) );
84
+ } else {
85
+ add_shortcode( 'redux_date', array( $this, 'date' ) );
86
+ }
87
+ }
88
+
89
+
90
+ /**
91
+ * Get shortcode data.
92
+ *
93
+ * @param array $atts Attributes.
94
+ * @param null $content Content.
95
+ *
96
+ * @return bool|string|void|null
97
+ */
98
+ public function blog_info( array $atts = array(), $content = null ) {
99
+ if ( ! empty( $content ) && ! isset( $atts['data'] ) ) {
100
+ if ( ! is_array( $atts ) ) {
101
+ $atts = array();
102
+ }
103
+
104
+ $atts['data'] = $content;
105
+ }
106
+
107
+ switch ( $atts['data'] ) {
108
+ case 'stylesheet_directory':
109
+ case 'child_template_directory':
110
+ return get_stylesheet_directory();
111
+ case 'parent_template_url':
112
+ return get_template_directory_uri();
113
+ case 'child_template_url':
114
+ case 'template_url':
115
+ return get_stylesheet_directory_uri();
116
+ case 'template_directory':
117
+ return get_template_directory();
118
+ case 'text_direction':
119
+ case 'text_direction_bool':
120
+ case 'text_direction_boolean':
121
+ return is_rtl();
122
+ case 'is_multisite':
123
+ return is_multisite();
124
+ case 'url':
125
+ return esc_url( home_url() );
126
+ case 'root_url':
127
+ return esc_url( site_url() );
128
+ case 'stylesheet_url':
129
+ return esc_url( get_stylesheet_uri() );
130
+ case 'logout_url':
131
+ return esc_url( wp_logout_url() );
132
+ case 'login_url':
133
+ return esc_url( wp_login_url() );
134
+ case 'register_url':
135
+ return esc_url( wp_registration_url() );
136
+ case 'lostpassword_url':
137
+ case 'lost_password_url':
138
+ return esc_url( wp_lostpassword_url() );
139
+ default:
140
+ return get_bloginfo( $atts['data'] );
141
+ }
142
+ }
143
+
144
+ /**
145
+ * Get theme info.
146
+ *
147
+ * @param array $atts Attributes.
148
+ * @param null $content Content.
149
+ *
150
+ * @return array|bool|string
151
+ */
152
+ public function theme_info( array $atts = array(), $content = null ) {
153
+ if ( ! empty( $content ) && ! isset( $atts['data'] ) ) {
154
+ if ( ! is_array( $atts ) ) {
155
+ $atts = array();
156
+ }
157
+
158
+ $atts['data'] = $content;
159
+ }
160
+
161
+ if ( ! isset( $this->theme_info ) || empty( $this->theme_info ) ) {
162
+ $this->theme_info = wp_get_theme();
163
+ }
164
+
165
+ $keys = array(
166
+ 'name' => 'Name',
167
+ 'themeuri' => 'ThemeURI',
168
+ 'theme_uri' => 'ThemeURI',
169
+ 'description' => 'Description',
170
+ 'author' => 'Author',
171
+ 'authoruri' => 'AuthorURI',
172
+ 'author_uri' => 'AuthorURI',
173
+ 'version' => 'Version',
174
+ 'template' => 'Template',
175
+ 'status' => 'Status',
176
+ 'tags' => 'Tags',
177
+ 'textdomain' => 'TextDomain',
178
+ 'text_domain' => 'TextDomain',
179
+ 'domainpath' => 'DomainPath',
180
+ 'domain_path' => 'DomainPath',
181
+ 'is_child' => 'is_child',
182
+ );
183
+
184
+ $atts['data'] = $keys[ strtolower( $atts['data'] ) ];
185
+
186
+ switch ( $atts['data'] ) {
187
+ case 'is_child':
188
+ return is_child_theme();
189
+ default:
190
+ $return = $this->theme_info->get( $atts['data'] );
191
+
192
+ if ( is_array( $return ) ) {
193
+ $return = implode( ', ', $return );
194
+ }
195
+
196
+ return $return;
197
+ }
198
+ }
199
+
200
+ /**
201
+ * Get date info.
202
+ *
203
+ * @param array $atts Attributes.
204
+ * @param null $content Content.
205
+ *
206
+ * @return false|string
207
+ */
208
+ public function date( array $atts = array(), $content = null ) {
209
+ if ( ! empty( $content ) && ! isset( $atts['data'] ) ) {
210
+ if ( ! is_array( $atts ) ) {
211
+ $atts = array();
212
+ }
213
+
214
+ $atts['data'] = $content;
215
+ }
216
+
217
+ if ( ! isset( $atts['data'] ) || empty( $atts['data'] ) ) {
218
+ $atts['data'] = 'Y';
219
+ }
220
+
221
+ return gmdate( $atts['data'] );
222
+ }
223
+ }
224
+ }
redux-framework.php CHANGED
@@ -8,7 +8,7 @@
8
  * Plugin URI: http://wordpress.org/plugins/redux-framework
9
  * GitHub URI: reduxframework/redux-framework
10
  * Description: Build better sites in WordPress fast!
11
- * Version: 4.3.4
12
  * Requires at least: 4.0
13
  * Requires PHP: 7.1
14
  * Author: Extendify
8
  * Plugin URI: http://wordpress.org/plugins/redux-framework
9
  * GitHub URI: reduxframework/redux-framework
10
  * Description: Build better sites in WordPress fast!
11
+ * Version: 4.3.5
12
  * Requires at least: 4.0
13
  * Requires PHP: 7.1
14
  * Author: Extendify
sample/sample-config.php CHANGED
@@ -33,7 +33,6 @@ if ( is_dir( $sample_patterns_path ) ) {
33
  $sample_patterns_dir = opendir( $sample_patterns_path );
34
 
35
  if ( $sample_patterns_dir ) {
36
- $sample_patterns = array();
37
 
38
  // phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition
39
  while ( false !== ( $sample_patterns_file = readdir( $sample_patterns_dir ) ) ) {
@@ -213,6 +212,7 @@ $args = array(
213
  // possible: options, theme_mods, theme_mods_expanded, transient. Not fully functional, warning!
214
  'database' => '',
215
  'network_admin' => true,
 
216
  );
217
 
218
 
@@ -507,6 +507,9 @@ Redux::set_section(
507
  require_once Redux_Core::$dir . '../sample/sections/disabling/disable-field.php';
508
  require_once Redux_Core::$dir . '../sample/sections/disabling/disable-section.php';
509
 
 
 
 
510
  // -> START Pro Fields.
511
  if ( class_exists( 'Redux_Pro' ) ) {
512
  Redux::set_section(
@@ -529,8 +532,6 @@ if ( class_exists( 'Redux_Pro' ) ) {
529
  require_once Redux_Core::$dir . '../sample/sections/pro-fields/js-button.php';
530
  require_once Redux_Core::$dir . '../sample/sections/pro-fields/multi-media.php';
531
  require_once Redux_Core::$dir . '../sample/sections/pro-fields/repeater.php';
532
- require_once Redux_Core::$dir . '../sample/sections/pro-fields/search.php';
533
- require_once Redux_Core::$dir . '../sample/sections/pro-fields/shortcodes.php';
534
  require_once Redux_Core::$dir . '../sample/sections/pro-fields/social-profiles.php';
535
  require_once Redux_Core::$dir . '../sample/sections/pro-fields/taxonomy.php';
536
  require_once Redux_Core::$dir . '../sample/sections/pro-fields/users.php';
33
  $sample_patterns_dir = opendir( $sample_patterns_path );
34
 
35
  if ( $sample_patterns_dir ) {
 
36
 
37
  // phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition
38
  while ( false !== ( $sample_patterns_file = readdir( $sample_patterns_dir ) ) ) {
212
  // possible: options, theme_mods, theme_mods_expanded, transient. Not fully functional, warning!
213
  'database' => '',
214
  'network_admin' => true,
215
+ 'search' => true,
216
  );
217
 
218
 
507
  require_once Redux_Core::$dir . '../sample/sections/disabling/disable-field.php';
508
  require_once Redux_Core::$dir . '../sample/sections/disabling/disable-section.php';
509
 
510
+ require_once Redux_Core::$dir . '../sample/sections/search/search.php';
511
+ require_once Redux_Core::$dir . '../sample/sections/shortcodes/shortcodes.php';
512
+
513
  // -> START Pro Fields.
514
  if ( class_exists( 'Redux_Pro' ) ) {
515
  Redux::set_section(
532
  require_once Redux_Core::$dir . '../sample/sections/pro-fields/js-button.php';
533
  require_once Redux_Core::$dir . '../sample/sections/pro-fields/multi-media.php';
534
  require_once Redux_Core::$dir . '../sample/sections/pro-fields/repeater.php';
 
 
535
  require_once Redux_Core::$dir . '../sample/sections/pro-fields/social-profiles.php';
536
  require_once Redux_Core::$dir . '../sample/sections/pro-fields/taxonomy.php';
537
  require_once Redux_Core::$dir . '../sample/sections/pro-fields/users.php';
sample/sections/pro-fields/search.php DELETED
@@ -1,23 +0,0 @@
1
- <?php
2
- /**
3
- * Redux Pro Search Sample config.
4
- *
5
- * For full documentation, please visit: http:https://devs.redux.io/
6
- *
7
- * @package Redux Pro
8
- */
9
-
10
- defined( 'ABSPATH' ) || exit;
11
-
12
- // --> Below this line not needed. This is just for demonstration purposes.
13
- Redux::set_section(
14
- $opt_name,
15
- array(
16
- 'title' => esc_html__( 'Live Search', 'your-textdomain-here' ),
17
- // phpcs:ignore
18
- // 'desc' => esc_html__( 'For full documentation on this field, visit: ', 'your-textdomain-here' ) . '<a href="https://devs.redux.io/extensions/live-search.html" target="_blank">https://devs.redux.io/extensions/live-search.html</a>',
19
- 'heading' => esc_html__( 'This extension is a drop-in utility. Try the search box to the top right of every panel or metabox section. It will dynamically filter out the visible fields to match your search.', 'your-textdomain-here' ),
20
- 'subsection' => true,
21
- 'customizer' => false,
22
- )
23
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
sample/sections/search/search.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Redux Pro Search Sample config.
4
+ *
5
+ * For full documentation, please visit: http:https://devs.redux.io/
6
+ *
7
+ * @package Redux
8
+ */
9
+
10
+ defined( 'ABSPATH' ) || exit;
11
+
12
+ // --> Below this line not needed. This is just for demonstration purposes.
13
+ Redux::set_section(
14
+ $opt_name,
15
+ array(
16
+ 'title' => esc_html__( 'Live Search', 'your-textdomain-here' ),
17
+ 'desc' => esc_html__( 'For full documentation on this field, visit: ', 'your-textdomain-here' ) . '<a href="https://devs.redux.io/core-extensions/live-search.html" target="_blank">https://devs.redux.io/extensions/live-search.html</a>',
18
+ 'heading' => esc_html__( 'Try the search box at the top right of every panel or metabox section. It will dynamically filter out the visible fields to match your search.', 'your-textdomain-here' ),
19
+ 'customizer' => false,
20
+ )
21
+ );
sample/sections/{pro-fields → shortcodes}/shortcodes.php RENAMED
@@ -3,7 +3,7 @@
3
  * Redux Pro Search Sample config.
4
  * For full documentation, please visit: http:https://devs.redux.io/
5
  *
6
- * @package Redux Pro
7
  */
8
 
9
  defined( 'ABSPATH' ) || exit;
@@ -16,10 +16,8 @@ Redux::set_section(
16
  $opt_name,
17
  array(
18
  'customizer' => false,
19
- 'subsection' => true,
20
  'title' => esc_html__( 'Shortcodes', 'your-textdomain-here' ),
21
- // phpcs:ignore
22
- // 'desc' => esc_html__( 'For full documentation on this field, visit: ', 'your-textdomain-here' ) . '<a href="https://devs.redux.io/extensions/shortcodes.html" target="_blank">https://devs.redux.io/extensions/shortcodes.html</a>',
23
  'fields' => array(
24
  array(
25
  'id' => 'sc-bloginfo',
3
  * Redux Pro Search Sample config.
4
  * For full documentation, please visit: http:https://devs.redux.io/
5
  *
6
+ * @package Redux
7
  */
8
 
9
  defined( 'ABSPATH' ) || exit;
16
  $opt_name,
17
  array(
18
  'customizer' => false,
 
19
  'title' => esc_html__( 'Shortcodes', 'your-textdomain-here' ),
20
+ 'desc' => esc_html__( 'For full documentation on this field, visit: ', 'your-textdomain-here' ) . '<a href="https://devs.redux.io/core-extensions/shortcodes.html" target="_blank">https://devs.redux.io/extensions/shortcodes.html</a>',
 
21
  'fields' => array(
22
  array(
23
  'id' => 'sc-bloginfo',