Extendify — Gutenberg Patterns and Templates - Version 0.5.0

Version Description

  • 2022-02-22 =
  • Add support for inverted style patterns
  • Improve library loading time
  • Add pattern library variants to open the library
Download this release

Release Info

Developer extendify
Plugin Icon 128x128 Extendify — Gutenberg Patterns and Templates
Version 0.5.0
Comparing to
See all releases

Code changes from version 0.4.0 to 0.5.0

Files changed (76) hide show
  1. app/Admin.php +1 -0
  2. app/App.php +1 -1
  3. app/Controllers/UserController.php +11 -0
  4. extendify.php +1 -1
  5. jsconfig.json +8 -0
  6. loader.php +1 -1
  7. public/build/extendify.css +1 -1
  8. public/build/extendify.js +1 -1
  9. readme.txt +12 -3
  10. routes/api.php +1 -0
  11. src/ExtendifyLibrary.js +21 -17
  12. src/api/General.js +6 -1
  13. src/api/Templates.js +14 -2
  14. src/api/User.js +15 -2
  15. src/api/axios.js +4 -3
  16. src/app.css +8 -8
  17. src/app.js +7 -7
  18. src/blocks/block-category.js +14 -0
  19. src/blocks/blocks.js +1 -0
  20. src/blocks/library/block.js +105 -3
  21. src/blocks/library/block.json +4 -2
  22. src/buttons.js +6 -6
  23. src/components/DevHelpers.js +17 -12
  24. src/components/ImportCounter.js +39 -20
  25. src/components/ImportTemplateBlock.js +18 -14
  26. src/components/LibraryAccessModal.js +4 -5
  27. src/components/MainButtons.js +19 -6
  28. src/components/SiteTypeSelector.js +17 -17
  29. src/components/TaxonomySection.js +5 -5
  30. src/components/TypeSelect.js +4 -4
  31. src/components/modals/InstallStandaloneModal.js +12 -12
  32. src/components/modals/Modal.js +9 -9
  33. src/components/modals/NoImportModal.js +20 -11
  34. src/components/modals/ProModal.js +15 -6
  35. src/components/modals/SplitModal.js +7 -7
  36. src/components/modals/settings/DevSettings.js +86 -0
  37. src/components/{LoginInterface.js → modals/settings/LoginInterface.js} +51 -29
  38. src/components/modals/{SettingsModal.js → settings/SettingsModal.js} +7 -5
  39. src/components/notices/FeedbackNotice.js +13 -4
  40. src/components/notices/FooterNotice.js +13 -11
  41. src/components/notices/InstallStandaloneNotice.js +7 -7
  42. src/components/notices/PromotionNotice.js +12 -3
  43. src/components/notices/WelcomeNotice.js +15 -7
  44. src/components/popovers/NewImportsPopover.js +2 -2
  45. src/hooks/helpers.js +7 -3
  46. src/hooks/useModal.js +4 -4
  47. src/hooks/useTaxonomies.js +0 -27
  48. src/hooks/useTestGroup.js +16 -0
  49. src/listeners/index.js +2 -1
  50. src/listeners/softerror-encountered.js +2 -2
  51. src/listeners/template-inserted.js +2 -2
  52. src/middleware/NeedsPermissionModal.js +4 -4
  53. src/middleware/ReloadRequiredModal.js +2 -2
  54. src/middleware/hasPluginsActivated/ActivatePluginsModal.js +6 -6
  55. src/middleware/hasPluginsActivated/ActivatingModal.js +4 -4
  56. src/middleware/hasPluginsActivated/ErrorActivating.js +1 -1
  57. src/middleware/hasPluginsActivated/index.js +1 -1
  58. src/middleware/hasRequiredPlugins/ErrorInstalling.js +1 -1
  59. src/middleware/hasRequiredPlugins/InstallingModal.js +4 -4
  60. src/middleware/hasRequiredPlugins/RequiredPluginsModal.js +6 -6
  61. src/middleware/hasRequiredPlugins/index.js +1 -1
  62. src/middleware/helpers.js +8 -8
  63. src/middleware/index.js +1 -1
  64. src/pages/GridView.js +50 -21
  65. src/pages/MainWindow.js +20 -8
  66. src/pages/Sidebar.js +14 -14
  67. src/pages/layout/HasSidebar.js +8 -5
  68. src/pages/layout/Layout.js +17 -15
  69. src/pages/layout/Toolbar.js +10 -10
  70. src/state/GlobalState.js +32 -29
  71. src/state/SiteSettings.js +1 -1
  72. src/state/Taxonomies.js +13 -1
  73. src/state/Templates.js +114 -105
  74. src/state/User.js +51 -2
  75. src/util/general.js +1 -1
  76. src/utility-control/index.js +2 -3
app/Admin.php CHANGED
@@ -129,6 +129,7 @@ class Admin
129
  'sdk_partner' => \esc_attr(APP::$sdkPartner),
130
  'asset_path' => \esc_url(EXTENDIFY_URL . 'public/assets'),
131
  'standalone' => \esc_attr(APP::$standalone),
 
132
  ]
133
  );
134
  \wp_enqueue_script(App::$slug . '-scripts');
129
  'sdk_partner' => \esc_attr(APP::$sdkPartner),
130
  'asset_path' => \esc_url(EXTENDIFY_URL . 'public/assets'),
131
  'standalone' => \esc_attr(APP::$standalone),
132
+ 'devbuild' => \esc_attr(APP::$environment === 'DEVELOPMENT'),
133
  ]
134
  );
135
  \wp_enqueue_script(App::$slug . '-scripts');
app/App.php CHANGED
@@ -83,7 +83,7 @@ class App
83
  */
84
  public function __construct()
85
  {
86
- if (isset($GLOBALS['extendify_sdk_partner'])) {
87
  self::$sdkPartner = $GLOBALS['extendify_sdk_partner'];
88
  }
89
 
83
  */
84
  public function __construct()
85
  {
86
+ if (isset($GLOBALS['extendify_sdk_partner']) && $GLOBALS['extendify_sdk_partner']) {
87
  self::$sdkPartner = $GLOBALS['extendify_sdk_partner'];
88
  }
89
 
app/Controllers/UserController.php CHANGED
@@ -55,6 +55,17 @@ class UserController
55
  return new \WP_REST_Response(User::state());
56
  }
57
 
 
 
 
 
 
 
 
 
 
 
 
58
  /**
59
  * Sign up the user to the mailing list.
60
  *
55
  return new \WP_REST_Response(User::state());
56
  }
57
 
58
+ /**
59
+ * Delete the data
60
+ *
61
+ * @return array
62
+ */
63
+ public static function delete()
64
+ {
65
+ \delete_user_meta(\get_current_user_id(), 'extendifysdk_user_data');
66
+ return new \WP_REST_Response(User::state());
67
+ }
68
+
69
  /**
70
  * Sign up the user to the mailing list.
71
  *
extendify.php CHANGED
@@ -5,7 +5,7 @@
5
  * Plugin URI: https://extendify.com/?utm_source=wp-plugins&utm_campaign=plugin-uri&utm_medium=wp-dash
6
  * Author: Extendify
7
  * Author URI: https://extendify.com/?utm_source=wp-plugins&utm_campaign=author-uri&utm_medium=wp-dash
8
- * Version: 0.4.0
9
  * License: GPL-2.0-or-later
10
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
  * Text Domain: extendify
5
  * Plugin URI: https://extendify.com/?utm_source=wp-plugins&utm_campaign=plugin-uri&utm_medium=wp-dash
6
  * Author: Extendify
7
  * Author URI: https://extendify.com/?utm_source=wp-plugins&utm_campaign=author-uri&utm_medium=wp-dash
8
+ * Version: 0.5.0
9
  * License: GPL-2.0-or-later
10
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
  * Text Domain: extendify
jsconfig.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": "./",
4
+ "paths": {
5
+ "@extendify/*": ["src/*"]
6
+ }
7
+ }
8
+ }
loader.php CHANGED
@@ -37,7 +37,7 @@ if ($extendifyPluginName) {
37
  // Remember, this file is only loaded by partner plugins.
38
  if (is_plugin_active($extendifyPluginName)) {
39
  // If the SDK is active then ignore the partner plugins.
40
- $GLOBALS['extendify_sdk_partner'] = '';
41
  return false;
42
  }
43
  }
37
  // Remember, this file is only loaded by partner plugins.
38
  if (is_plugin_active($extendifyPluginName)) {
39
  // If the SDK is active then ignore the partner plugins.
40
+ $GLOBALS['extendify_sdk_partner'] = 'standalone';
41
  return false;
42
  }
43
  }
public/build/extendify.css CHANGED
@@ -1 +1 @@
1
- div.extendify .sr-only{clip:rect(0,0,0,0)!important;border-width:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}div.extendify .focus\:not-sr-only:focus{clip:auto!important;height:auto!important;margin:0!important;overflow:visible!important;padding:0!important;position:static!important;white-space:normal!important;width:auto!important}div.extendify .pointer-events-none{pointer-events:none!important}div.extendify .invisible{visibility:hidden!important}div.extendify .group:focus .group-focus\:visible,div.extendify .group:hover .group-hover\:visible{visibility:visible!important}div.extendify .static{position:static!important}div.extendify .fixed{position:fixed!important}div.extendify .absolute{position:absolute!important}div.extendify .relative{position:relative!important}div.extendify .inset-0{bottom:0!important;left:0!important;right:0!important;top:0!important}div.extendify .top-0{top:0!important}div.extendify .top-2{top:.5rem!important}div.extendify .top-4{top:1rem!important}div.extendify .right-0{right:0!important}div.extendify .right-1{right:.25rem!important}div.extendify .right-2{right:.5rem!important}div.extendify .right-4{right:1rem!important}div.extendify .right-2\.5{right:.625rem!important}div.extendify .bottom-0{bottom:0!important}div.extendify .left-0{left:0!important}div.extendify .group:hover .group-hover\:-top-2{top:-.5rem!important}div.extendify .group:hover .group-hover\:-top-2\.5{top:-.625rem!important}div.extendify .group:focus .group-focus\:-top-2{top:-.5rem!important}div.extendify .group:focus .group-focus\:-top-2\.5{top:-.625rem!important}div.extendify .z-10{z-index:10!important}div.extendify .z-20{z-index:20!important}div.extendify .z-30{z-index:30!important}div.extendify .z-40{z-index:40!important}div.extendify .z-50{z-index:50!important}div.extendify .z-high{z-index:99999!important}div.extendify .m-0{margin:0!important}div.extendify .m-8{margin:2rem!important}div.extendify .m-auto{margin:auto!important}div.extendify .mx-6{margin-left:1.5rem!important;margin-right:1.5rem!important}div.extendify .mx-auto{margin-left:auto!important;margin-right:auto!important}div.extendify .my-0{margin-bottom:0!important;margin-top:0!important}div.extendify .my-2{margin-bottom:.5rem!important;margin-top:.5rem!important}div.extendify .my-20{margin-bottom:5rem!important;margin-top:5rem!important}div.extendify .mt-0{margin-top:0!important}div.extendify .mt-2{margin-top:.5rem!important}div.extendify .mt-4{margin-top:1rem!important}div.extendify .mt-px{margin-top:1px!important}div.extendify .-mt-2{margin-top:-.5rem!important}div.extendify .-mr-1{margin-right:-.25rem!important}div.extendify .-mr-1\.5{margin-right:-.375rem!important}div.extendify .mb-0{margin-bottom:0!important}div.extendify .mb-1{margin-bottom:.25rem!important}div.extendify .mb-2{margin-bottom:.5rem!important}div.extendify .mb-4{margin-bottom:1rem!important}div.extendify .mb-5{margin-bottom:1.25rem!important}div.extendify .mb-6{margin-bottom:1.5rem!important}div.extendify .mb-8{margin-bottom:2rem!important}div.extendify .mb-10{margin-bottom:2.5rem!important}div.extendify .ml-2{margin-left:.5rem!important}div.extendify .-ml-1{margin-left:-.25rem!important}div.extendify .-ml-2{margin-left:-.5rem!important}div.extendify .-ml-6{margin-left:-1.5rem!important}div.extendify .-ml-px{margin-left:-1px!important}div.extendify .-ml-1\.5{margin-left:-.375rem!important}div.extendify .block{display:block!important}div.extendify .inline-block{display:inline-block!important}div.extendify .flex{display:flex!important}div.extendify .inline-flex{display:inline-flex!important}div.extendify .table{display:table!important}div.extendify .grid{display:grid!important}div.extendify .hidden{display:none!important}div.extendify .h-0{height:0!important}div.extendify .h-20{height:5rem!important}div.extendify .h-auto{height:auto!important}div.extendify .h-full{height:100%!important}div.extendify .h-screen{height:100vh!important}div.extendify .max-h-96{max-height:24rem!important}div.extendify .min-h-screen{min-height:100vh!important}div.extendify .w-0{width:0!important}div.extendify .w-6{width:1.5rem!important}div.extendify .w-72{width:18rem!important}div.extendify .w-80{width:20rem!important}div.extendify .w-auto{width:auto!important}div.extendify .w-6\/12{width:50%!important}div.extendify .w-7\/12{width:58.333333%!important}div.extendify .w-full{width:100%!important}div.extendify .w-screen{width:100vw!important}div.extendify .min-w-sm{min-width:7rem!important}div.extendify .max-w-md{max-width:28rem!important}div.extendify .max-w-lg{max-width:32rem!important}div.extendify .max-w-xl{max-width:36rem!important}div.extendify .max-w-full{max-width:100%!important}div.extendify .max-w-screen-4xl{max-width:1920px!important}div.extendify .flex-1{flex:1 1 0%!important}div.extendify .flex-shrink-0{flex-shrink:0!important}div.extendify .flex-grow-0{flex-grow:0!important}div.extendify .flex-grow{flex-grow:1!important}div.extendify .transform{--tw-translate-x:0!important;--tw-translate-y:0!important;--tw-rotate:0!important;--tw-skew-x:0!important;--tw-skew-y:0!important;--tw-scale-x:1!important;--tw-scale-y:1!important;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}div.extendify .-translate-x-1{--tw-translate-x:-0.25rem!important}div.extendify .translate-y-0{--tw-translate-y:0px!important}div.extendify .translate-y-4{--tw-translate-y:1rem!important}div.extendify .-translate-y-full{--tw-translate-y:-100%!important}div.extendify .rotate-90{--tw-rotate:90deg!important}div.extendify .cursor-pointer{cursor:pointer!important}div.extendify .resize{resize:both!important}div.extendify .flex-col{flex-direction:column!important}div.extendify .items-end{align-items:flex-end!important}div.extendify .items-center{align-items:center!important}div.extendify .justify-end{justify-content:flex-end!important}div.extendify .justify-center{justify-content:center!important}div.extendify .justify-between{justify-content:space-between!important}div.extendify .gap-6{gap:1.5rem!important}div.extendify .space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0!important;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))!important;margin-right:calc(.25rem*var(--tw-space-x-reverse))!important}div.extendify .space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0!important;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))!important;margin-right:calc(.5rem*var(--tw-space-x-reverse))!important}div.extendify .space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0!important;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))!important;margin-right:calc(.75rem*var(--tw-space-x-reverse))!important}div.extendify .space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0!important;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))!important;margin-right:calc(1rem*var(--tw-space-x-reverse))!important}div.extendify .space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(.5rem*var(--tw-space-y-reverse))!important;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))!important}div.extendify .space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))!important;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))!important}div.extendify .space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(2rem*var(--tw-space-y-reverse))!important;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))!important}div.extendify .overflow-hidden{overflow:hidden!important}div.extendify .overflow-y-auto{overflow-y:auto!important}div.extendify .whitespace-nowrap{white-space:nowrap!important}div.extendify .rounded-sm{border-radius:.125rem!important}div.extendify .rounded{border-radius:.25rem!important}div.extendify .rounded-md{border-radius:.375rem!important}div.extendify .rounded-tl-sm{border-top-left-radius:.125rem!important}div.extendify .rounded-tr-sm{border-top-right-radius:.125rem!important}div.extendify .rounded-br-sm{border-bottom-right-radius:.125rem!important}div.extendify .rounded-bl-sm{border-bottom-left-radius:.125rem!important}div.extendify .border-0{border-width:0!important}div.extendify .border-2{border-width:2px!important}div.extendify .border-8{border-width:8px!important}div.extendify .border{border-width:1px!important}div.extendify .border-r{border-right-width:1px!important}div.extendify .border-b-0{border-bottom-width:0!important}div.extendify .border-b{border-bottom-width:1px!important}div.extendify .border-solid{border-style:solid!important}div.extendify .border-none{border-style:none!important}div.extendify .border-transparent{border-color:transparent!important}div.extendify .border-black{--tw-border-opacity:1!important;border-color:rgba(0,0,0,var(--tw-border-opacity))!important}div.extendify .border-gray-900{--tw-border-opacity:1!important;border-color:rgba(30,30,30,var(--tw-border-opacity))!important}div.extendify .border-extendify-main{--tw-border-opacity:1!important;border-color:rgba(11,74,67,var(--tw-border-opacity))!important}div.extendify .border-extendify-transparent-black-100{border-color:rgba(0,0,0,.07)!important}div.extendify .border-wp-alert-red{--tw-border-opacity:1!important;border-color:rgba(204,24,24,var(--tw-border-opacity))!important}div.extendify .focus\:border-transparent:focus{border-color:transparent!important}div.extendify .bg-transparent{background-color:transparent!important}div.extendify .bg-black{--tw-bg-opacity:1!important;background-color:rgba(0,0,0,var(--tw-bg-opacity))!important}div.extendify .bg-white{--tw-bg-opacity:1!important;background-color:rgba(255,255,255,var(--tw-bg-opacity))!important}div.extendify .bg-gray-50{--tw-bg-opacity:1!important;background-color:rgba(251,251,251,var(--tw-bg-opacity))!important}div.extendify .bg-gray-100{--tw-bg-opacity:1!important;background-color:rgba(240,240,240,var(--tw-bg-opacity))!important}div.extendify .bg-gray-900{--tw-bg-opacity:1!important;background-color:rgba(30,30,30,var(--tw-bg-opacity))!important}div.extendify .bg-extendify-main{--tw-bg-opacity:1!important;background-color:rgba(11,74,67,var(--tw-bg-opacity))!important}div.extendify .bg-extendify-alert{--tw-bg-opacity:1!important;background-color:rgba(132,16,16,var(--tw-bg-opacity))!important}div.extendify .bg-extendify-secondary{--tw-bg-opacity:1!important;background-color:rgba(203,195,245,var(--tw-bg-opacity))!important}div.extendify .bg-extendify-transparent-white{background-color:hsla(0,0%,99%,.88)!important}div.extendify .bg-extendify-transparent-black{background-color:rgba(0,0,0,.05)!important}div.extendify .bg-wp-theme-500{background-color:var(--wp-admin-theme-color)!important}div.extendify .hover\:bg-extendify-main-dark:hover{--tw-bg-opacity:1!important;background-color:rgba(5,49,44,var(--tw-bg-opacity))!important}div.extendify .hover\:bg-extendify-transparent-black-100:hover{background-color:rgba(0,0,0,.07)!important}div.extendify .hover\:bg-wp-theme-600:hover{background-color:var(--wp-admin-theme-color-darker-10)!important}div.extendify .active\:bg-gray-900:active{--tw-bg-opacity:1!important;background-color:rgba(30,30,30,var(--tw-bg-opacity))!important}div.extendify .bg-opacity-40{--tw-bg-opacity:0.4!important}div.extendify .bg-cover{background-size:cover!important}div.extendify .bg-clip-padding{background-clip:padding-box!important}div.extendify .fill-current{fill:currentColor!important}div.extendify .stroke-current{stroke:currentColor!important}div.extendify .p-0{padding:0!important}div.extendify .p-1{padding:.25rem!important}div.extendify .p-2{padding:.5rem!important}div.extendify .p-3{padding:.75rem!important}div.extendify .p-4{padding:1rem!important}div.extendify .p-6{padding:1.5rem!important}div.extendify .p-10{padding:2.5rem!important}div.extendify .p-12{padding:3rem!important}div.extendify .p-1\.5{padding:.375rem!important}div.extendify .p-3\.5{padding:.875rem!important}div.extendify .px-0{padding-left:0!important;padding-right:0!important}div.extendify .px-2{padding-left:.5rem!important;padding-right:.5rem!important}div.extendify .px-3{padding-left:.75rem!important;padding-right:.75rem!important}div.extendify .px-4{padding-left:1rem!important;padding-right:1rem!important}div.extendify .px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}div.extendify .px-6{padding-left:1.5rem!important;padding-right:1.5rem!important}div.extendify .px-0\.5{padding-left:.125rem!important;padding-right:.125rem!important}div.extendify .px-2\.5{padding-left:.625rem!important;padding-right:.625rem!important}div.extendify .py-0{padding-bottom:0!important;padding-top:0!important}div.extendify .py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}div.extendify .py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}div.extendify .py-3{padding-bottom:.75rem!important;padding-top:.75rem!important}div.extendify .py-4{padding-bottom:1rem!important;padding-top:1rem!important}div.extendify .py-6{padding-bottom:1.5rem!important;padding-top:1.5rem!important}div.extendify .py-2\.5{padding-bottom:.625rem!important;padding-top:.625rem!important}div.extendify .pt-0{padding-top:0!important}div.extendify .pt-2{padding-top:.5rem!important}div.extendify .pt-4{padding-top:1rem!important}div.extendify .pt-6{padding-top:1.5rem!important}div.extendify .pt-px{padding-top:1px!important}div.extendify .pt-0\.5{padding-top:.125rem!important}div.extendify .pr-3{padding-right:.75rem!important}div.extendify .pb-2{padding-bottom:.5rem!important}div.extendify .pb-4{padding-bottom:1rem!important}div.extendify .pb-6{padding-bottom:1.5rem!important}div.extendify .pb-20{padding-bottom:5rem!important}div.extendify .pb-32{padding-bottom:8rem!important}div.extendify .pb-40{padding-bottom:10rem!important}div.extendify .pl-0{padding-left:0!important}div.extendify .pl-2{padding-left:.5rem!important}div.extendify .pl-6{padding-left:1.5rem!important}div.extendify .pl-8{padding-left:2rem!important}div.extendify .text-left{text-align:left!important}div.extendify .text-center{text-align:center!important}div.extendify .text-xs{font-size:.75rem!important;line-height:1rem!important}div.extendify .text-sm{font-size:.875rem!important;line-height:1.25rem!important}div.extendify .text-base{font-size:1rem!important;line-height:1.5rem!important}div.extendify .text-lg{font-size:1.125rem!important;line-height:1.75rem!important}div.extendify .text-xl{font-size:1.25rem!important;line-height:1.75rem!important}div.extendify .text-xss{font-size:11px!important}div.extendify .font-light{font-weight:300!important}div.extendify .font-normal{font-weight:400!important}div.extendify .font-medium{font-weight:500!important}div.extendify .font-semibold{font-weight:600!important}div.extendify .font-bold{font-weight:700!important}div.extendify .uppercase{text-transform:uppercase!important}div.extendify .leading-none{line-height:1!important}div.extendify .leading-extra-tight{line-height:.5!important}div.extendify .text-black{--tw-text-opacity:1!important;color:rgba(0,0,0,var(--tw-text-opacity))!important}div.extendify .text-white{--tw-text-opacity:1!important;color:rgba(255,255,255,var(--tw-text-opacity))!important}div.extendify .text-gray-700{--tw-text-opacity:1!important;color:rgba(117,117,117,var(--tw-text-opacity))!important}div.extendify .text-gray-800{--tw-text-opacity:1!important;color:rgba(31,41,55,var(--tw-text-opacity))!important}div.extendify .text-gray-900{--tw-text-opacity:1!important;color:rgba(30,30,30,var(--tw-text-opacity))!important}div.extendify .text-extendify-main{--tw-text-opacity:1!important;color:rgba(11,74,67,var(--tw-text-opacity))!important}div.extendify .text-extendify-gray{--tw-text-opacity:1!important;color:rgba(95,95,95,var(--tw-text-opacity))!important}div.extendify .text-extendify-black{--tw-text-opacity:1!important;color:rgba(30,30,30,var(--tw-text-opacity))!important}div.extendify .text-wp-theme-500{color:var(--wp-admin-theme-color)!important}div.extendify .text-wp-alert-red{--tw-text-opacity:1!important;color:rgba(204,24,24,var(--tw-text-opacity))!important}div.extendify .hover\:text-white:hover{--tw-text-opacity:1!important;color:rgba(255,255,255,var(--tw-text-opacity))!important}div.extendify .hover\:text-wp-theme-500:hover{color:var(--wp-admin-theme-color)!important}div.extendify .focus\:text-white:focus{--tw-text-opacity:1!important;color:rgba(255,255,255,var(--tw-text-opacity))!important}div.extendify .focus\:text-blue-500:focus{--tw-text-opacity:1!important;color:rgba(59,130,246,var(--tw-text-opacity))!important}div.extendify .active\:text-white:active{--tw-text-opacity:1!important;color:rgba(255,255,255,var(--tw-text-opacity))!important}div.extendify .underline{text-decoration:underline!important}div.extendify .hover\:no-underline:hover,div.extendify .no-underline{text-decoration:none!important}div.extendify .opacity-0{opacity:0!important}div.extendify .opacity-30{opacity:.3!important}div.extendify .opacity-50{opacity:.5!important}div.extendify .opacity-75{opacity:.75!important}div.extendify .opacity-100{opacity:1!important}div.extendify .group:hover .group-hover\:opacity-90{opacity:.9!important}div.extendify .focus\:opacity-100:focus,div.extendify .group:focus .group-focus\:opacity-100,div.extendify .group:hover .group-hover\:opacity-100,div.extendify .hover\:opacity-100:hover{opacity:1!important}div.extendify .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05)!important}div.extendify .shadow-md,div.extendify .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}div.extendify .shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)!important}div.extendify .shadow-modal{--tw-shadow: 0 0 0 1px rgba(0,0,0,.1),0 3px 15px -3px rgba(0,0,0,.035),0 0 1px rgba(0,0,0,.05)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}div.extendify .focus\:outline-none:focus,div.extendify .outline-none{outline:2px solid transparent!important;outline-offset:2px!important}div.extendify .focus\:ring-wp:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--wp-admin-border-width-focus) + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}div.extendify .focus\:ring-wp-theme-500:focus{--tw-ring-color:var(--wp-admin-theme-color)!important}div.extendify .filter{--tw-blur:var(--tw-empty,/*!*/ /*!*/)!important;--tw-brightness:var(--tw-empty,/*!*/ /*!*/)!important;--tw-contrast:var(--tw-empty,/*!*/ /*!*/)!important;--tw-grayscale:var(--tw-empty,/*!*/ /*!*/)!important;--tw-hue-rotate:var(--tw-empty,/*!*/ /*!*/)!important;--tw-invert:var(--tw-empty,/*!*/ /*!*/)!important;--tw-saturate:var(--tw-empty,/*!*/ /*!*/)!important;--tw-sepia:var(--tw-empty,/*!*/ /*!*/)!important;--tw-drop-shadow:var(--tw-empty,/*!*/ /*!*/)!important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}div.extendify .blur{--tw-blur:blur(8px)!important}div.extendify .invert{--tw-invert:invert(100%)!important}div.extendify .backdrop-filter{--tw-backdrop-blur:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-brightness:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-contrast:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-grayscale:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-hue-rotate:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-invert:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-opacity:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-saturate:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-sepia:var(--tw-empty,/*!*/ /*!*/)!important;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important;backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important}div.extendify .backdrop-blur-xl{--tw-backdrop-blur:blur(24px)!important}div.extendify .backdrop-saturate-200{--tw-backdrop-saturate:saturate(2)!important}div.extendify .transition-all{transition-duration:.15s!important;transition-property:all!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}div.extendify .transition{transition-duration:.15s!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}div.extendify .transition-opacity{transition-duration:.15s!important;transition-property:opacity!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}div.extendify .delay-200{transition-delay:.2s!important}div.extendify .duration-200{transition-duration:.2s!important}div.extendify .duration-300{transition-duration:.3s!important}div.extendify .ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)!important}div.extendify .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.extendify{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/)!important;--tw-ring-offset-width:0px!important;--tw-ring-offset-color:transparent!important;--tw-ring-color:var(--wp-admin-theme-color)!important}.extendify *,.extendify :after,.extendify :before{border:0 solid #e5e7eb!important;box-sizing:border-box!important}.extendify .button-focus:focus{--tw-shadow:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.extendify .button-focus{outline:2px solid transparent!important;outline-offset:2px!important}.extendify .button-focus:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--wp-admin-border-width-focus) + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;--tw-ring-color:var(--wp-admin-theme-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}div.extendify button.extendify-skip-to-sr-link:focus{--tw-bg-opacity:1!important;background-color:rgba(255,255,255,var(--tw-bg-opacity))!important;padding:1rem!important;position:fixed!important;top:0!important;z-index:99999!important}.button-extendify-main{--tw-bg-opacity:1!important;background-color:rgba(11,74,67,var(--tw-bg-opacity))!important;border-radius:.25rem!important;cursor:pointer!important;white-space:nowrap!important}.button-extendify-main:hover{--tw-bg-opacity:1!important;background-color:rgba(5,49,44,var(--tw-bg-opacity))!important}.button-extendify-main:active{--tw-bg-opacity:1!important;background-color:rgba(30,30,30,var(--tw-bg-opacity))!important}.button-extendify-main{font-size:1rem!important;line-height:1.5rem!important;padding:.375rem .75rem!important}.button-extendify-main,.button-extendify-main:active,.button-extendify-main:focus,.button-extendify-main:hover{--tw-text-opacity:1!important;color:rgba(255,255,255,var(--tw-text-opacity))!important}.button-extendify-main{text-decoration:none!important;transition-duration:.15s!important;transition-duration:.2s!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.extendify .button-extendify-main:focus{--tw-shadow:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.extendify .button-extendify-main{outline:2px solid transparent!important;outline-offset:2px!important}.extendify .button-extendify-main:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--wp-admin-border-width-focus) + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;--tw-ring-color:var(--wp-admin-theme-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.extendify input.button-extendify-main:focus,.extendify input.button-focus:focus,.extendify select.button-extendify-main:focus,.extendify select.button-focus:focus{--tw-shadow:0 0 #0000!important;border-color:transparent!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important;outline:2px solid transparent!important;outline-offset:2px!important}#extendify-search-input:not(:-moz-placeholder-shown)~svg{display:none!important}#extendify-search-input:not(:-ms-input-placeholder)~svg{display:none!important}#extendify-search-input:focus~svg,#extendify-search-input:not(:placeholder-shown)~svg{display:none!important}#extendify-search-input::-webkit-textfield-decoration-container{margin-right:.75rem!important}.extendify .components-panel__body>.components-panel__body-title{background-color:transparent!important;border-bottom:1px solid #e0e0e0!important}.extendify .components-modal__header{--tw-border-opacity:1!important;border-bottom-width:1px!important;border-color:rgba(221,221,221,var(--tw-border-opacity))!important}.block-editor-block-preview__content .block-editor-block-list__layout.is-root-container>.ext{max-width:none!important}.block-editor-block-list__layout.is-root-container .ext.block-editor-block-list__block{max-width:100%!important}.block-editor-block-preview__content-iframe .block-editor-block-list__layout.is-root-container .ext.block-editor-block-list__block{max-width:none!important}.extendify .block-editor-block-preview__container{-webkit-animation:extendifyOpacityIn .2s cubic-bezier(.694,0,.335,1) 0ms forwards;animation:extendifyOpacityIn .2s cubic-bezier(.694,0,.335,1) 0ms forwards;opacity:0}.extendify .is-root-container>[data-align=full],.extendify .is-root-container>[data-align=full]>.wp-block,.extendify .is-root-container>[data-block]{margin-bottom:0!important;margin-top:0!important}.editor-styles-wrapper:not(.block-editor-writing-flow)>.is-root-container :where(.wp-block)[data-align=full]{margin-bottom:0!important;margin-top:0!important}@-webkit-keyframes extendifyOpacityIn{0%{opacity:0}to{opacity:1}}@keyframes extendifyOpacityIn{0%{opacity:0}to{opacity:1}}.extendify .with-light-shadow:after{--tw-shadow:inset 0 0 0 1px rgba(0,0,0,.1),0 3px 15px -3px rgba(0,0,0,.035),0 0 1px rgba(0,0,0,.025)!important;border-width:0!important;bottom:0!important;content:""!important;left:0!important;position:absolute!important;right:0!important;top:0!important}.extendify .with-light-shadow:after,.extendify .with-light-shadow:hover:after{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.extendify .with-light-shadow:hover:after{--tw-shadow:inset 0 0 0 1px rgba(0,0,0,.2),0 3px 15px -3px rgba(0,0,0,.025),0 0 1px rgba(0,0,0,.02)!important}@supports not (((-webkit-backdrop-filter:saturate(2) blur(24px)) or (backdrop-filter:saturate(2) blur(24px)))){div.extendify .bg-extendify-transparent-white{--tw-bg-opacity:1!important;background-color:rgba(240,240,240,var(--tw-bg-opacity))!important}}.components-panel__body.ext-type-control .components-panel__body-toggle{padding-left:0!important;padding-right:0!important}.components-panel__body.ext-type-control .components-panel__body-title{border-bottom-width:0!important;margin:0!important;padding-left:1.25rem!important;padding-right:1.25rem!important}.components-panel__body.ext-type-control .components-panel__body-title .components-button{--tw-text-opacity:1!important;border-bottom-width:0!important;color:rgba(95,95,95,var(--tw-text-opacity))!important;font-size:11px!important;font-weight:500!important;margin:0!important;padding-bottom:.5rem!important;padding-top:.5rem!important;text-transform:uppercase!important}.components-panel__body.ext-type-control .components-button .components-panel__arrow{--tw-text-opacity:1!important;color:rgba(95,95,95,var(--tw-text-opacity))!important;right:0!important}.extendify .animate-pulse{-webkit-animation:extendifyPulse 3s cubic-bezier(.4,0,.6,1) infinite;animation:extendifyPulse 3s cubic-bezier(.4,0,.6,1) infinite}@-webkit-keyframes extendifyPulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes extendifyPulse{0%,to{opacity:1}50%{opacity:.5}}.is-template--in-review:before,.is-template--inactive:before{--tw-border-opacity:1!important;border:8px solid rgba(203,195,245,var(--tw-border-opacity))!important;bottom:0!important;content:""!important;height:100%!important;left:0!important;position:absolute!important;right:0!important;top:0!important;width:100%!important;z-index:40!important}.is-template--inactive:before{border-color:#fdeab6!important}.extendify-tooltip-default:not(.is-without-arrow)[data-y-axis=bottom]:after{border-bottom-color:#1e1e1e!important}.extendify-tooltip-default:not(.is-without-arrow):before{border-color:transparent!important}.extendify-tooltip-default:not(.is-without-arrow) .components-popover__content{--tw-bg-opacity:1!important;--tw-text-opacity:1!important;background-color:rgba(30,30,30,var(--tw-bg-opacity))!important;border-color:transparent!important;color:rgba(255,255,255,var(--tw-text-opacity))!important;min-width:250px!important;padding:1rem!important}.extendify-bottom-arrow:after{--tw-translate-x:0!important;--tw-translate-y:0!important;--tw-rotate:0!important;--tw-skew-x:0!important;--tw-skew-y:0!important;--tw-scale-x:1!important;--tw-scale-y:1!important;--tw-translate-y:-1px!important;border-color:#1e1e1e transparent transparent!important;border-width:8px!important;bottom:-15px!important;content:""!important;display:inline-block!important;height:0!important;position:absolute!important;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important;width:0!important}@media (min-width:600px){div.extendify .sm\:mx-0{margin-left:0!important;margin-right:0!important}div.extendify .sm\:mt-0{margin-top:0!important}div.extendify .sm\:mb-8{margin-bottom:2rem!important}div.extendify .sm\:block{display:block!important}div.extendify .sm\:flex{display:flex!important}div.extendify .sm\:h-auto{height:auto!important}div.extendify .sm\:w-64{width:16rem!important}div.extendify .sm\:w-auto{width:auto!important}div.extendify .sm\:translate-y-5{--tw-translate-y:1.25rem!important}div.extendify .sm\:space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))!important;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))!important}div.extendify .sm\:p-0{padding:0!important}div.extendify .sm\:py-0{padding-bottom:0!important;padding-top:0!important}div.extendify .sm\:py-5{padding-bottom:1.25rem!important;padding-top:1.25rem!important}div.extendify .sm\:pt-0{padding-top:0!important}}@media (min-width:782px){div.extendify .md\:m-0{margin:0!important}div.extendify .md\:-ml-8{margin-left:-2rem!important}div.extendify .md\:block{display:block!important}div.extendify .md\:flex{display:flex!important}div.extendify .md\:max-w-2xl{max-width:42rem!important}div.extendify .md\:gap-8{gap:2rem!important}div.extendify .md\:space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(2rem*var(--tw-space-y-reverse))!important;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))!important}div.extendify .md\:p-8{padding:2rem!important}div.extendify .md\:px-8{padding-right:2rem!important}div.extendify .md\:pl-8,div.extendify .md\:px-8{padding-left:2rem!important}}@media (min-width:1080px){div.extendify .lg\:absolute{position:absolute!important}div.extendify .lg\:block{display:block!important}div.extendify .lg\:flex{display:flex!important}div.extendify .lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}div.extendify .lg\:overflow-hidden{overflow:hidden!important}div.extendify .lg\:p-16{padding:4rem!important}}
1
+ div.extendify .sr-only{clip:rect(0,0,0,0)!important;border-width:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}div.extendify .focus\:not-sr-only:focus{clip:auto!important;height:auto!important;margin:0!important;overflow:visible!important;padding:0!important;position:static!important;white-space:normal!important;width:auto!important}div.extendify .pointer-events-none{pointer-events:none!important}div.extendify .invisible{visibility:hidden!important}div.extendify .group:focus .group-focus\:visible,div.extendify .group:hover .group-hover\:visible{visibility:visible!important}div.extendify .static{position:static!important}div.extendify .fixed{position:fixed!important}div.extendify .absolute{position:absolute!important}div.extendify .relative{position:relative!important}div.extendify .inset-0{bottom:0!important;left:0!important;right:0!important;top:0!important}div.extendify .top-0{top:0!important}div.extendify .top-2{top:.5rem!important}div.extendify .top-4{top:1rem!important}div.extendify .right-0{right:0!important}div.extendify .right-1{right:.25rem!important}div.extendify .right-2{right:.5rem!important}div.extendify .right-4{right:1rem!important}div.extendify .right-2\.5{right:.625rem!important}div.extendify .bottom-0{bottom:0!important}div.extendify .left-0{left:0!important}div.extendify .group:hover .group-hover\:-top-2{top:-.5rem!important}div.extendify .group:hover .group-hover\:-top-2\.5{top:-.625rem!important}div.extendify .group:focus .group-focus\:-top-2{top:-.5rem!important}div.extendify .group:focus .group-focus\:-top-2\.5{top:-.625rem!important}div.extendify .z-10{z-index:10!important}div.extendify .z-20{z-index:20!important}div.extendify .z-30{z-index:30!important}div.extendify .z-40{z-index:40!important}div.extendify .z-50{z-index:50!important}div.extendify .z-high{z-index:99999!important}div.extendify .m-0{margin:0!important}div.extendify .m-8{margin:2rem!important}div.extendify .m-auto{margin:auto!important}div.extendify .mx-6{margin-left:1.5rem!important;margin-right:1.5rem!important}div.extendify .mx-auto{margin-left:auto!important;margin-right:auto!important}div.extendify .my-0{margin-bottom:0!important;margin-top:0!important}div.extendify .my-2{margin-bottom:.5rem!important;margin-top:.5rem!important}div.extendify .my-20{margin-bottom:5rem!important;margin-top:5rem!important}div.extendify .mt-0{margin-top:0!important}div.extendify .mt-2{margin-top:.5rem!important}div.extendify .mt-4{margin-top:1rem!important}div.extendify .mt-px{margin-top:1px!important}div.extendify .-mt-2{margin-top:-.5rem!important}div.extendify .-mt-6{margin-top:-1.5rem!important}div.extendify .-mr-1{margin-right:-.25rem!important}div.extendify .-mr-1\.5{margin-right:-.375rem!important}div.extendify .mb-0{margin-bottom:0!important}div.extendify .mb-1{margin-bottom:.25rem!important}div.extendify .mb-2{margin-bottom:.5rem!important}div.extendify .mb-4{margin-bottom:1rem!important}div.extendify .mb-5{margin-bottom:1.25rem!important}div.extendify .mb-6{margin-bottom:1.5rem!important}div.extendify .mb-8{margin-bottom:2rem!important}div.extendify .mb-10{margin-bottom:2.5rem!important}div.extendify .ml-2{margin-left:.5rem!important}div.extendify .ml-4{margin-left:1rem!important}div.extendify .-ml-1{margin-left:-.25rem!important}div.extendify .-ml-2{margin-left:-.5rem!important}div.extendify .-ml-6{margin-left:-1.5rem!important}div.extendify .-ml-px{margin-left:-1px!important}div.extendify .-ml-1\.5{margin-left:-.375rem!important}div.extendify .block{display:block!important}div.extendify .inline-block{display:inline-block!important}div.extendify .flex{display:flex!important}div.extendify .inline-flex{display:inline-flex!important}div.extendify .table{display:table!important}div.extendify .grid{display:grid!important}div.extendify .hidden{display:none!important}div.extendify .h-0{height:0!important}div.extendify .h-20{height:5rem!important}div.extendify .h-auto{height:auto!important}div.extendify .h-full{height:100%!important}div.extendify .h-screen{height:100vh!important}div.extendify .max-h-96{max-height:24rem!important}div.extendify .min-h-screen{min-height:100vh!important}div.extendify .w-0{width:0!important}div.extendify .w-6{width:1.5rem!important}div.extendify .w-72{width:18rem!important}div.extendify .w-auto{width:auto!important}div.extendify .w-6\/12{width:50%!important}div.extendify .w-7\/12{width:58.333333%!important}div.extendify .w-full{width:100%!important}div.extendify .w-screen{width:100vw!important}div.extendify .min-w-sm{min-width:7rem!important}div.extendify .max-w-md{max-width:28rem!important}div.extendify .max-w-lg{max-width:32rem!important}div.extendify .max-w-xl{max-width:36rem!important}div.extendify .max-w-full{max-width:100%!important}div.extendify .max-w-screen-4xl{max-width:1920px!important}div.extendify .flex-1{flex:1 1 0%!important}div.extendify .flex-shrink-0{flex-shrink:0!important}div.extendify .flex-grow-0{flex-grow:0!important}div.extendify .flex-grow{flex-grow:1!important}div.extendify .transform{--tw-translate-x:0!important;--tw-translate-y:0!important;--tw-rotate:0!important;--tw-skew-x:0!important;--tw-skew-y:0!important;--tw-scale-x:1!important;--tw-scale-y:1!important;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}div.extendify .-translate-x-1{--tw-translate-x:-0.25rem!important}div.extendify .translate-y-0{--tw-translate-y:0px!important}div.extendify .translate-y-4{--tw-translate-y:1rem!important}div.extendify .-translate-y-px{--tw-translate-y:-1px!important}div.extendify .-translate-y-full{--tw-translate-y:-100%!important}div.extendify .rotate-90{--tw-rotate:90deg!important}div.extendify .cursor-pointer{cursor:pointer!important}div.extendify .resize{resize:both!important}div.extendify .flex-col{flex-direction:column!important}div.extendify .items-end{align-items:flex-end!important}div.extendify .items-center{align-items:center!important}div.extendify .justify-end{justify-content:flex-end!important}div.extendify .justify-center{justify-content:center!important}div.extendify .justify-between{justify-content:space-between!important}div.extendify .gap-6{gap:1.5rem!important}div.extendify .space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0!important;margin-left:calc(0px*(1 - var(--tw-space-x-reverse)))!important;margin-right:calc(0px*var(--tw-space-x-reverse))!important}div.extendify .space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0!important;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))!important;margin-right:calc(.25rem*var(--tw-space-x-reverse))!important}div.extendify .space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0!important;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))!important;margin-right:calc(.5rem*var(--tw-space-x-reverse))!important}div.extendify .space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0!important;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))!important;margin-right:calc(.75rem*var(--tw-space-x-reverse))!important}div.extendify .space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0!important;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))!important;margin-right:calc(1rem*var(--tw-space-x-reverse))!important}div.extendify .space-x-0\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0!important;margin-left:calc(.125rem*(1 - var(--tw-space-x-reverse)))!important;margin-right:calc(.125rem*var(--tw-space-x-reverse))!important}div.extendify .space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(.5rem*var(--tw-space-y-reverse))!important;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))!important}div.extendify .space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))!important;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))!important}div.extendify .divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0!important;border-bottom-width:calc(1px*var(--tw-divide-y-reverse))!important;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))!important}div.extendify .overflow-hidden{overflow:hidden!important}div.extendify .overflow-y-auto{overflow-y:auto!important}div.extendify .whitespace-nowrap{white-space:nowrap!important}div.extendify .rounded-sm{border-radius:.125rem!important}div.extendify .rounded{border-radius:.25rem!important}div.extendify .rounded-md{border-radius:.375rem!important}div.extendify .rounded-tl-sm{border-top-left-radius:.125rem!important}div.extendify .rounded-tr-sm{border-top-right-radius:.125rem!important}div.extendify .rounded-br-sm{border-bottom-right-radius:.125rem!important}div.extendify .rounded-bl-sm{border-bottom-left-radius:.125rem!important}div.extendify .border-0{border-width:0!important}div.extendify .border-2{border-width:2px!important}div.extendify .border-8{border-width:8px!important}div.extendify .border{border-width:1px!important}div.extendify .border-r{border-right-width:1px!important}div.extendify .border-b-0{border-bottom-width:0!important}div.extendify .border-b{border-bottom-width:1px!important}div.extendify .border-l-8{border-left-width:8px!important}div.extendify .border-solid{border-style:solid!important}div.extendify .border-none{border-style:none!important}div.extendify .border-transparent{border-color:transparent!important}div.extendify .border-black{--tw-border-opacity:1!important;border-color:rgba(0,0,0,var(--tw-border-opacity))!important}div.extendify .border-gray-900{--tw-border-opacity:1!important;border-color:rgba(30,30,30,var(--tw-border-opacity))!important}div.extendify .border-extendify-main{--tw-border-opacity:1!important;border-color:rgba(11,74,67,var(--tw-border-opacity))!important}div.extendify .border-extendify-secondary{--tw-border-opacity:1!important;border-color:rgba(203,195,245,var(--tw-border-opacity))!important}div.extendify .border-extendify-transparent-black-100{border-color:rgba(0,0,0,.07)!important}div.extendify .border-wp-alert-red{--tw-border-opacity:1!important;border-color:rgba(204,24,24,var(--tw-border-opacity))!important}div.extendify .focus\:border-transparent:focus{border-color:transparent!important}div.extendify .bg-transparent{background-color:transparent!important}div.extendify .bg-black{--tw-bg-opacity:1!important;background-color:rgba(0,0,0,var(--tw-bg-opacity))!important}div.extendify .bg-white{--tw-bg-opacity:1!important;background-color:rgba(255,255,255,var(--tw-bg-opacity))!important}div.extendify .bg-gray-50{--tw-bg-opacity:1!important;background-color:rgba(251,251,251,var(--tw-bg-opacity))!important}div.extendify .bg-gray-100{--tw-bg-opacity:1!important;background-color:rgba(240,240,240,var(--tw-bg-opacity))!important}div.extendify .bg-gray-900{--tw-bg-opacity:1!important;background-color:rgba(30,30,30,var(--tw-bg-opacity))!important}div.extendify .bg-extendify-main{--tw-bg-opacity:1!important;background-color:rgba(11,74,67,var(--tw-bg-opacity))!important}div.extendify .bg-extendify-alert{--tw-bg-opacity:1!important;background-color:rgba(132,16,16,var(--tw-bg-opacity))!important}div.extendify .bg-extendify-secondary{--tw-bg-opacity:1!important;background-color:rgba(203,195,245,var(--tw-bg-opacity))!important}div.extendify .bg-extendify-transparent-white{background-color:hsla(0,0%,99%,.88)!important}div.extendify .bg-extendify-transparent-black{background-color:rgba(0,0,0,.05)!important}div.extendify .bg-wp-theme-500{background-color:var(--wp-admin-theme-color)!important}div.extendify .hover\:bg-extendify-main-dark:hover{--tw-bg-opacity:1!important;background-color:rgba(5,49,44,var(--tw-bg-opacity))!important}div.extendify .hover\:bg-extendify-transparent-black-100:hover{background-color:rgba(0,0,0,.07)!important}div.extendify .hover\:bg-wp-theme-600:hover{background-color:var(--wp-admin-theme-color-darker-10)!important}div.extendify .active\:bg-gray-900:active{--tw-bg-opacity:1!important;background-color:rgba(30,30,30,var(--tw-bg-opacity))!important}div.extendify .bg-opacity-40{--tw-bg-opacity:0.4!important}div.extendify .bg-cover{background-size:cover!important}div.extendify .bg-clip-padding{background-clip:padding-box!important}div.extendify .fill-current{fill:currentColor!important}div.extendify .stroke-current{stroke:currentColor!important}div.extendify .p-0{padding:0!important}div.extendify .p-1{padding:.25rem!important}div.extendify .p-2{padding:.5rem!important}div.extendify .p-3{padding:.75rem!important}div.extendify .p-4{padding:1rem!important}div.extendify .p-6{padding:1.5rem!important}div.extendify .p-10{padding:2.5rem!important}div.extendify .p-12{padding:3rem!important}div.extendify .p-1\.5{padding:.375rem!important}div.extendify .p-3\.5{padding:.875rem!important}div.extendify .px-0{padding-left:0!important;padding-right:0!important}div.extendify .px-2{padding-left:.5rem!important;padding-right:.5rem!important}div.extendify .px-3{padding-left:.75rem!important;padding-right:.75rem!important}div.extendify .px-4{padding-left:1rem!important;padding-right:1rem!important}div.extendify .px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}div.extendify .px-6{padding-left:1.5rem!important;padding-right:1.5rem!important}div.extendify .px-0\.5{padding-left:.125rem!important;padding-right:.125rem!important}div.extendify .px-2\.5{padding-left:.625rem!important;padding-right:.625rem!important}div.extendify .py-0{padding-bottom:0!important;padding-top:0!important}div.extendify .py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}div.extendify .py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}div.extendify .py-3{padding-bottom:.75rem!important;padding-top:.75rem!important}div.extendify .py-4{padding-bottom:1rem!important;padding-top:1rem!important}div.extendify .py-6{padding-bottom:1.5rem!important;padding-top:1.5rem!important}div.extendify .py-2\.5{padding-bottom:.625rem!important;padding-top:.625rem!important}div.extendify .pt-0{padding-top:0!important}div.extendify .pt-2{padding-top:.5rem!important}div.extendify .pt-4{padding-top:1rem!important}div.extendify .pt-6{padding-top:1.5rem!important}div.extendify .pt-px{padding-top:1px!important}div.extendify .pt-0\.5{padding-top:.125rem!important}div.extendify .pr-3{padding-right:.75rem!important}div.extendify .pb-20{padding-bottom:5rem!important}div.extendify .pb-32{padding-bottom:8rem!important}div.extendify .pb-40{padding-bottom:10rem!important}div.extendify .pl-0{padding-left:0!important}div.extendify .pl-2{padding-left:.5rem!important}div.extendify .pl-6{padding-left:1.5rem!important}div.extendify .text-left{text-align:left!important}div.extendify .text-center{text-align:center!important}div.extendify .text-xs{font-size:.75rem!important;line-height:1rem!important}div.extendify .text-sm{font-size:.875rem!important;line-height:1.25rem!important}div.extendify .text-base{font-size:1rem!important;line-height:1.5rem!important}div.extendify .text-lg{font-size:1.125rem!important;line-height:1.75rem!important}div.extendify .text-xl{font-size:1.25rem!important;line-height:1.75rem!important}div.extendify .text-xss{font-size:11px!important}div.extendify .font-light{font-weight:300!important}div.extendify .font-normal{font-weight:400!important}div.extendify .font-medium{font-weight:500!important}div.extendify .font-semibold{font-weight:600!important}div.extendify .font-bold{font-weight:700!important}div.extendify .uppercase{text-transform:uppercase!important}div.extendify .italic{font-style:italic!important}div.extendify .leading-none{line-height:1!important}div.extendify .text-black{--tw-text-opacity:1!important;color:rgba(0,0,0,var(--tw-text-opacity))!important}div.extendify .text-white{--tw-text-opacity:1!important;color:rgba(255,255,255,var(--tw-text-opacity))!important}div.extendify .text-gray-500{--tw-text-opacity:1!important;color:rgba(204,204,204,var(--tw-text-opacity))!important}div.extendify .text-gray-700{--tw-text-opacity:1!important;color:rgba(117,117,117,var(--tw-text-opacity))!important}div.extendify .text-gray-800{--tw-text-opacity:1!important;color:rgba(31,41,55,var(--tw-text-opacity))!important}div.extendify .text-gray-900{--tw-text-opacity:1!important;color:rgba(30,30,30,var(--tw-text-opacity))!important}div.extendify .text-extendify-main{--tw-text-opacity:1!important;color:rgba(11,74,67,var(--tw-text-opacity))!important}div.extendify .text-extendify-gray{--tw-text-opacity:1!important;color:rgba(95,95,95,var(--tw-text-opacity))!important}div.extendify .text-extendify-black{--tw-text-opacity:1!important;color:rgba(30,30,30,var(--tw-text-opacity))!important}div.extendify .text-wp-theme-500{color:var(--wp-admin-theme-color)!important}div.extendify .text-wp-alert-red{--tw-text-opacity:1!important;color:rgba(204,24,24,var(--tw-text-opacity))!important}div.extendify .hover\:text-white:hover{--tw-text-opacity:1!important;color:rgba(255,255,255,var(--tw-text-opacity))!important}div.extendify .hover\:text-wp-theme-500:hover{color:var(--wp-admin-theme-color)!important}div.extendify .focus\:text-white:focus{--tw-text-opacity:1!important;color:rgba(255,255,255,var(--tw-text-opacity))!important}div.extendify .focus\:text-blue-500:focus{--tw-text-opacity:1!important;color:rgba(59,130,246,var(--tw-text-opacity))!important}div.extendify .underline{text-decoration:underline!important}div.extendify .hover\:no-underline:hover,div.extendify .no-underline{text-decoration:none!important}div.extendify .opacity-0{opacity:0!important}div.extendify .opacity-30{opacity:.3!important}div.extendify .opacity-50{opacity:.5!important}div.extendify .opacity-75{opacity:.75!important}div.extendify .focus\:opacity-100:focus,div.extendify .group:focus .group-focus\:opacity-100,div.extendify .group:hover .group-hover\:opacity-100,div.extendify .hover\:opacity-100:hover,div.extendify .opacity-100{opacity:1!important}div.extendify .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05)!important}div.extendify .shadow-md,div.extendify .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}div.extendify .shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)!important}div.extendify .shadow-modal{--tw-shadow: 0 0 0 1px rgba(0,0,0,.1),0 3px 15px -3px rgba(0,0,0,.035),0 0 1px rgba(0,0,0,.05)!important}div.extendify .focus\:shadow-none:focus,div.extendify .shadow-modal{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}div.extendify .focus\:shadow-none:focus{--tw-shadow:0 0 #0000!important}div.extendify .focus\:outline-none:focus,div.extendify .outline-none{outline:2px solid transparent!important;outline-offset:2px!important}div.extendify .focus\:ring-wp:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--wp-admin-border-width-focus) + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}div.extendify .filter{--tw-blur:var(--tw-empty,/*!*/ /*!*/)!important;--tw-brightness:var(--tw-empty,/*!*/ /*!*/)!important;--tw-contrast:var(--tw-empty,/*!*/ /*!*/)!important;--tw-grayscale:var(--tw-empty,/*!*/ /*!*/)!important;--tw-hue-rotate:var(--tw-empty,/*!*/ /*!*/)!important;--tw-invert:var(--tw-empty,/*!*/ /*!*/)!important;--tw-saturate:var(--tw-empty,/*!*/ /*!*/)!important;--tw-sepia:var(--tw-empty,/*!*/ /*!*/)!important;--tw-drop-shadow:var(--tw-empty,/*!*/ /*!*/)!important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}div.extendify .blur{--tw-blur:blur(8px)!important}div.extendify .invert{--tw-invert:invert(100%)!important}div.extendify .backdrop-filter{--tw-backdrop-blur:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-brightness:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-contrast:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-grayscale:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-hue-rotate:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-invert:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-opacity:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-saturate:var(--tw-empty,/*!*/ /*!*/)!important;--tw-backdrop-sepia:var(--tw-empty,/*!*/ /*!*/)!important;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important;backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important}div.extendify .backdrop-blur-xl{--tw-backdrop-blur:blur(24px)!important}div.extendify .backdrop-saturate-200{--tw-backdrop-saturate:saturate(2)!important}div.extendify .transition-all{transition-duration:.15s!important;transition-property:all!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}div.extendify .transition{transition-duration:.15s!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}div.extendify .transition-opacity{transition-duration:.15s!important;transition-property:opacity!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}div.extendify .delay-200{transition-delay:.2s!important}div.extendify .duration-100{transition-duration:.1s!important}div.extendify .duration-200{transition-duration:.2s!important}div.extendify .duration-300{transition-duration:.3s!important}div.extendify .ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)!important}div.extendify .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.extendify{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/)!important;--tw-ring-offset-width:0px!important;--tw-ring-offset-color:transparent!important;--tw-ring-color:var(--wp-admin-theme-color)!important}.extendify *,.extendify :after,.extendify :before{border:0 solid #e5e7eb!important;box-sizing:border-box!important}.extendify .button-focus:focus{--tw-shadow:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.extendify .button-focus{outline:2px solid transparent!important;outline-offset:2px!important}.extendify .button-focus:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--wp-admin-border-width-focus) + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;--tw-ring-color:var(--wp-admin-theme-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}div.extendify button.extendify-skip-to-sr-link:focus{--tw-bg-opacity:1!important;background-color:rgba(255,255,255,var(--tw-bg-opacity))!important;padding:1rem!important;position:fixed!important;top:0!important;z-index:99999!important}.button-extendify-main{--tw-bg-opacity:1!important;background-color:rgba(11,74,67,var(--tw-bg-opacity))!important;border-radius:.25rem!important;cursor:pointer!important;white-space:nowrap!important}.button-extendify-main:hover{--tw-bg-opacity:1!important;background-color:rgba(5,49,44,var(--tw-bg-opacity))!important}.button-extendify-main:active{--tw-bg-opacity:1!important;background-color:rgba(30,30,30,var(--tw-bg-opacity))!important}.button-extendify-main{font-size:1rem!important;line-height:1.5rem!important;padding:.375rem .75rem!important}.button-extendify-main,.button-extendify-main:active,.button-extendify-main:focus,.button-extendify-main:hover{--tw-text-opacity:1!important;color:rgba(255,255,255,var(--tw-text-opacity))!important}.button-extendify-main{text-decoration:none!important;transition-duration:.15s!important;transition-duration:.2s!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.extendify .button-extendify-main:focus{--tw-shadow:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.extendify .button-extendify-main{outline:2px solid transparent!important;outline-offset:2px!important}.extendify .button-extendify-main:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--wp-admin-border-width-focus) + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;--tw-ring-color:var(--wp-admin-theme-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.extendify input.button-extendify-main:focus,.extendify input.button-focus:focus,.extendify select.button-extendify-main:focus,.extendify select.button-focus:focus{--tw-shadow:0 0 #0000!important;border-color:transparent!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important;outline:2px solid transparent!important;outline-offset:2px!important}#extendify-search-input:not(:-moz-placeholder-shown)~svg{display:none!important}#extendify-search-input:not(:-ms-input-placeholder)~svg{display:none!important}#extendify-search-input:focus~svg,#extendify-search-input:not(:placeholder-shown)~svg{display:none!important}#extendify-search-input::-webkit-textfield-decoration-container{margin-right:.75rem!important}.extendify .components-panel__body>.components-panel__body-title{background-color:transparent!important;border-bottom:1px solid #e0e0e0!important}.extendify .components-modal__header{--tw-border-opacity:1!important;border-bottom-width:1px!important;border-color:rgba(221,221,221,var(--tw-border-opacity))!important}.block-editor-block-preview__content .block-editor-block-list__layout.is-root-container>.ext{max-width:none!important}.block-editor-block-list__layout.is-root-container .ext.block-editor-block-list__block{max-width:100%!important}.block-editor-block-preview__content-iframe .block-editor-block-list__layout.is-root-container .ext.block-editor-block-list__block{max-width:none!important}.extendify .block-editor-block-preview__container{-webkit-animation:extendifyOpacityIn .2s cubic-bezier(.694,0,.335,1) 0ms forwards;animation:extendifyOpacityIn .2s cubic-bezier(.694,0,.335,1) 0ms forwards;opacity:0}.extendify .is-root-container>[data-align=full],.extendify .is-root-container>[data-align=full]>.wp-block,.extendify .is-root-container>[data-block]{margin-bottom:0!important;margin-top:0!important}.editor-styles-wrapper:not(.block-editor-writing-flow)>.is-root-container :where(.wp-block)[data-align=full]{margin-bottom:0!important;margin-top:0!important}@-webkit-keyframes extendifyOpacityIn{0%{opacity:0}to{opacity:1}}@keyframes extendifyOpacityIn{0%{opacity:0}to{opacity:1}}.extendify .with-light-shadow:after{--tw-shadow:inset 0 0 0 1px rgba(0,0,0,.1),0 3px 15px -3px rgba(0,0,0,.035),0 0 1px rgba(0,0,0,.025)!important;border-width:0!important;bottom:0!important;content:""!important;left:0!important;position:absolute!important;right:0!important;top:0!important}.extendify .with-light-shadow:after,.extendify .with-light-shadow:hover:after{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.extendify .with-light-shadow:hover:after{--tw-shadow:inset 0 0 0 1px rgba(0,0,0,.2),0 3px 15px -3px rgba(0,0,0,.025),0 0 1px rgba(0,0,0,.02)!important}@supports not (((-webkit-backdrop-filter:saturate(2) blur(24px)) or (backdrop-filter:saturate(2) blur(24px)))){div.extendify .bg-extendify-transparent-white{--tw-bg-opacity:1!important;background-color:rgba(240,240,240,var(--tw-bg-opacity))!important}}.components-panel__body.ext-type-control .components-panel__body-toggle{padding-left:0!important;padding-right:0!important}.components-panel__body.ext-type-control .components-panel__body-title{border-bottom-width:0!important;margin:0!important;padding-left:1.25rem!important;padding-right:1.25rem!important}.components-panel__body.ext-type-control .components-panel__body-title .components-button{--tw-text-opacity:1!important;border-bottom-width:0!important;color:rgba(95,95,95,var(--tw-text-opacity))!important;font-size:11px!important;font-weight:500!important;margin:0!important;padding-bottom:.5rem!important;padding-top:.5rem!important;text-transform:uppercase!important}.components-panel__body.ext-type-control .components-button .components-panel__arrow{--tw-text-opacity:1!important;color:rgba(95,95,95,var(--tw-text-opacity))!important;right:0!important}.extendify .animate-pulse{-webkit-animation:extendifyPulse 3s cubic-bezier(.4,0,.6,1) infinite;animation:extendifyPulse 3s cubic-bezier(.4,0,.6,1) infinite}@-webkit-keyframes extendifyPulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes extendifyPulse{0%,to{opacity:1}50%{opacity:.5}}.is-template--in-review:before,.is-template--inactive:before{--tw-border-opacity:1!important;border:8px solid rgba(203,195,245,var(--tw-border-opacity))!important;bottom:0!important;content:""!important;height:100%!important;left:0!important;position:absolute!important;right:0!important;top:0!important;width:100%!important;z-index:40!important}.is-template--inactive:before{border-color:#fdeab6!important}.extendify-tooltip-default:not(.is-without-arrow)[data-y-axis=bottom]:after{border-bottom-color:#1e1e1e!important}.extendify-tooltip-default:not(.is-without-arrow):before{border-color:transparent!important}.extendify-tooltip-default:not(.is-without-arrow) .components-popover__content{--tw-bg-opacity:1!important;--tw-text-opacity:1!important;background-color:rgba(30,30,30,var(--tw-bg-opacity))!important;border-color:transparent!important;color:rgba(255,255,255,var(--tw-text-opacity))!important;min-width:250px!important;padding:1rem!important}.extendify-bottom-arrow:after{--tw-translate-x:0!important;--tw-translate-y:0!important;--tw-rotate:0!important;--tw-skew-x:0!important;--tw-skew-y:0!important;--tw-scale-x:1!important;--tw-scale-y:1!important;--tw-translate-y:-1px!important;border-color:#1e1e1e transparent transparent!important;border-width:8px!important;bottom:-15px!important;content:""!important;display:inline-block!important;height:0!important;position:absolute!important;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important;width:0!important}@media (min-width:600px){div.extendify .sm\:mx-0{margin-left:0!important;margin-right:0!important}div.extendify .sm\:mt-0{margin-top:0!important}div.extendify .sm\:mb-8{margin-bottom:2rem!important}div.extendify .sm\:block{display:block!important}div.extendify .sm\:flex{display:flex!important}div.extendify .sm\:h-auto{height:auto!important}div.extendify .sm\:w-64{width:16rem!important}div.extendify .sm\:w-auto{width:auto!important}div.extendify .sm\:translate-y-5{--tw-translate-y:1.25rem!important}div.extendify .sm\:space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))!important;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))!important}div.extendify .sm\:p-0{padding:0!important}div.extendify .sm\:py-0{padding-bottom:0!important;padding-top:0!important}div.extendify .sm\:py-5{padding-bottom:1.25rem!important;padding-top:1.25rem!important}div.extendify .sm\:pt-0{padding-top:0!important}}@media (min-width:782px){div.extendify .md\:m-0{margin:0!important}div.extendify .md\:-ml-8{margin-left:-2rem!important}div.extendify .md\:block{display:block!important}div.extendify .md\:flex{display:flex!important}div.extendify .md\:max-w-2xl{max-width:42rem!important}div.extendify .md\:gap-8{gap:2rem!important}div.extendify .md\:space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(2rem*var(--tw-space-y-reverse))!important;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))!important}div.extendify .md\:p-8{padding:2rem!important}div.extendify .md\:px-8{padding-right:2rem!important}div.extendify .md\:pl-8,div.extendify .md\:px-8{padding-left:2rem!important}}@media (min-width:1080px){div.extendify .lg\:absolute{position:absolute!important}div.extendify .lg\:block{display:block!important}div.extendify .lg\:flex{display:flex!important}div.extendify .lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}div.extendify .lg\:overflow-hidden{overflow:hidden!important}div.extendify .lg\:p-16{padding:4rem!important}}
public/build/extendify.js CHANGED
@@ -1,2 +1,2 @@
1
  /*! For license information please see extendify.js.LICENSE.txt */
2
- (()=>{var e,t={135:(e,t,n)=>{e.exports=n(248)},206:(e,t,n)=>{e.exports=n(57)},387:(e,t,n)=>{"use strict";var r=n(485),o=n(570),i=n(940),a=n(581),s=n(574),l=n(845),c=n(338),u=n(524),d=n(141),f=n(132);e.exports=function(e){return new Promise((function(t,n){var p,h=e.data,m=e.headers,x=e.responseType;function y(){e.cancelToken&&e.cancelToken.unsubscribe(p),e.signal&&e.signal.removeEventListener("abort",p)}r.isFormData(h)&&delete m["Content-Type"];var v=new XMLHttpRequest;if(e.auth){var g=e.auth.username||"",b=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";m.Authorization="Basic "+btoa(g+":"+b)}var w=s(e.baseURL,e.url);function j(){if(v){var r="getAllResponseHeaders"in v?l(v.getAllResponseHeaders()):null,i={data:x&&"text"!==x&&"json"!==x?v.response:v.responseText,status:v.status,statusText:v.statusText,headers:r,config:e,request:v};o((function(e){t(e),y()}),(function(e){n(e),y()}),i),v=null}}if(v.open(e.method.toUpperCase(),a(w,e.params,e.paramsSerializer),!0),v.timeout=e.timeout,"onloadend"in v?v.onloadend=j:v.onreadystatechange=function(){v&&4===v.readyState&&(0!==v.status||v.responseURL&&0===v.responseURL.indexOf("file:"))&&setTimeout(j)},v.onabort=function(){v&&(n(u("Request aborted",e,"ECONNABORTED",v)),v=null)},v.onerror=function(){n(u("Network Error",e,null,v)),v=null},v.ontimeout=function(){var t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",r=e.transitional||d.transitional;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(u(t,e,r.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",v)),v=null},r.isStandardBrowserEnv()){var k=(e.withCredentials||c(w))&&e.xsrfCookieName?i.read(e.xsrfCookieName):void 0;k&&(m[e.xsrfHeaderName]=k)}"setRequestHeader"in v&&r.forEach(m,(function(e,t){void 0===h&&"content-type"===t.toLowerCase()?delete m[t]:v.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(v.withCredentials=!!e.withCredentials),x&&"json"!==x&&(v.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&v.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&v.upload&&v.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(p=function(e){v&&(n(!e||e&&e.type?new f("canceled"):e),v.abort(),v=null)},e.cancelToken&&e.cancelToken.subscribe(p),e.signal&&(e.signal.aborted?p():e.signal.addEventListener("abort",p))),h||(h=null),v.send(h)}))}},57:(e,t,n)=>{"use strict";var r=n(485),o=n(875),i=n(29),a=n(941);var s=function e(t){var n=new i(t),s=o(i.prototype.request,n);return r.extend(s,i.prototype,n),r.extend(s,n),s.create=function(n){return e(a(t,n))},s}(n(141));s.Axios=i,s.Cancel=n(132),s.CancelToken=n(603),s.isCancel=n(475),s.VERSION=n(345).version,s.all=function(e){return Promise.all(e)},s.spread=n(739),s.isAxiosError=n(835),e.exports=s,e.exports.default=s},132:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},603:(e,t,n)=>{"use strict";var r=n(132);function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;this.promise.then((function(e){if(n._listeners){var t,r=n._listeners.length;for(t=0;t<r;t++)n._listeners[t](e);n._listeners=null}})),this.promise.then=function(e){var t,r=new Promise((function(e){n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.prototype.subscribe=function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]},o.prototype.unsubscribe=function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}},o.source=function(){var e;return{token:new o((function(t){e=t})),cancel:e}},e.exports=o},475:e=>{"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},29:(e,t,n)=>{"use strict";var r=n(485),o=n(581),i=n(96),a=n(9),s=n(941),l=n(144),c=l.validators;function u(e){this.defaults=e,this.interceptors={request:new i,response:new i}}u.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=s(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;void 0!==t&&l.assertOptions(t,{silentJSONParsing:c.transitional(c.boolean),forcedJSONParsing:c.transitional(c.boolean),clarifyTimeoutError:c.transitional(c.boolean)},!1);var n=[],r=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(r=r&&t.synchronous,n.unshift(t.fulfilled,t.rejected))}));var o,i=[];if(this.interceptors.response.forEach((function(e){i.push(e.fulfilled,e.rejected)})),!r){var u=[a,void 0];for(Array.prototype.unshift.apply(u,n),u=u.concat(i),o=Promise.resolve(e);u.length;)o=o.then(u.shift(),u.shift());return o}for(var d=e;n.length;){var f=n.shift(),p=n.shift();try{d=f(d)}catch(e){p(e);break}}try{o=a(d)}catch(e){return Promise.reject(e)}for(;i.length;)o=o.then(i.shift(),i.shift());return o},u.prototype.getUri=function(e){return e=s(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],(function(e){u.prototype[e]=function(t,n){return this.request(s(n||{},{method:e,url:t,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(e){u.prototype[e]=function(t,n,r){return this.request(s(r||{},{method:e,url:t,data:n}))}})),e.exports=u},96:(e,t,n)=>{"use strict";var r=n(485);function o(){this.handlers=[]}o.prototype.use=function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){r.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=o},574:(e,t,n)=>{"use strict";var r=n(642),o=n(288);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},524:(e,t,n)=>{"use strict";var r=n(953);e.exports=function(e,t,n,o,i){var a=new Error(e);return r(a,t,n,o,i)}},9:(e,t,n)=>{"use strict";var r=n(485),o=n(212),i=n(475),a=n(141),s=n(132);function l(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new s("canceled")}e.exports=function(e){return l(e),e.headers=e.headers||{},e.data=o.call(e,e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||a.adapter)(e).then((function(t){return l(e),t.data=o.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return i(t)||(l(e),t&&t.response&&(t.response.data=o.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},953:e=>{"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},e}},941:(e,t,n)=>{"use strict";var r=n(485);e.exports=function(e,t){t=t||{};var n={};function o(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function i(n){return r.isUndefined(t[n])?r.isUndefined(e[n])?void 0:o(void 0,e[n]):o(e[n],t[n])}function a(e){if(!r.isUndefined(t[e]))return o(void 0,t[e])}function s(n){return r.isUndefined(t[n])?r.isUndefined(e[n])?void 0:o(void 0,e[n]):o(void 0,t[n])}function l(n){return n in t?o(e[n],t[n]):n in e?o(void 0,e[n]):void 0}var c={url:a,method:a,data:a,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:l};return r.forEach(Object.keys(e).concat(Object.keys(t)),(function(e){var t=c[e]||i,o=t(e);r.isUndefined(o)&&t!==l||(n[e]=o)})),n}},570:(e,t,n)=>{"use strict";var r=n(524);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},212:(e,t,n)=>{"use strict";var r=n(485),o=n(141);e.exports=function(e,t,n){var i=this||o;return r.forEach(n,(function(n){e=n.call(i,e,t)})),e}},141:(e,t,n)=>{"use strict";var r=n(61),o=n(485),i=n(446),a=n(953),s={"Content-Type":"application/x-www-form-urlencoded"};function l(e,t){!o.isUndefined(e)&&o.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var c,u={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==r&&"[object process]"===Object.prototype.toString.call(r))&&(c=n(387)),c),transformRequest:[function(e,t){return i(t,"Accept"),i(t,"Content-Type"),o.isFormData(e)||o.isArrayBuffer(e)||o.isBuffer(e)||o.isStream(e)||o.isFile(e)||o.isBlob(e)?e:o.isArrayBufferView(e)?e.buffer:o.isURLSearchParams(e)?(l(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):o.isObject(e)||t&&"application/json"===t["Content-Type"]?(l(t,"application/json"),function(e,t,n){if(o.isString(e))try{return(t||JSON.parse)(e),o.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||u.transitional,n=t&&t.silentJSONParsing,r=t&&t.forcedJSONParsing,i=!n&&"json"===this.responseType;if(i||r&&o.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(i){if("SyntaxError"===e.name)throw a(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};o.forEach(["delete","get","head"],(function(e){u.headers[e]={}})),o.forEach(["post","put","patch"],(function(e){u.headers[e]=o.merge(s)})),e.exports=u},345:e=>{e.exports={version:"0.24.0"}},875:e=>{"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return e.apply(t,n)}}},581:(e,t,n)=>{"use strict";var r=n(485);function o(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else if(r.isURLSearchParams(t))i=t.toString();else{var a=[];r.forEach(t,(function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),a.push(o(t)+"="+o(e))})))})),i=a.join("&")}if(i){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}},288:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},940:(e,t,n)=>{"use strict";var r=n(485);e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,o,i,a){var s=[];s.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),r.isString(o)&&s.push("path="+o),r.isString(i)&&s.push("domain="+i),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},642:e=>{"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},835:e=>{"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},338:(e,t,n)=>{"use strict";var r=n(485);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=o(window.location.href),function(t){var n=r.isString(t)?o(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},446:(e,t,n)=>{"use strict";var r=n(485);e.exports=function(e,t){r.forEach(e,(function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])}))}},845:(e,t,n)=>{"use strict";var r=n(485),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,a={};return e?(r.forEach(e.split("\n"),(function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(a[t]&&o.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}})),a):a}},739:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},144:(e,t,n)=>{"use strict";var r=n(345).version,o={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){o[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));var i={};o.transitional=function(e,t,n){function o(e,t){return"[Axios v"+r+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,r,a){if(!1===e)throw new Error(o(r," has been removed"+(t?" in "+t:"")));return t&&!i[r]&&(i[r]=!0,console.warn(o(r," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,r,a)}},e.exports={assertOptions:function(e,t,n){if("object"!=typeof e)throw new TypeError("options must be an object");for(var r=Object.keys(e),o=r.length;o-- >0;){var i=r[o],a=t[i];if(a){var s=e[i],l=void 0===s||a(s,i,e);if(!0!==l)throw new TypeError("option "+i+" must be "+l)}else if(!0!==n)throw Error("Unknown option "+i)}},validators:o}},485:(e,t,n)=>{"use strict";var r=n(875),o=Object.prototype.toString;function i(e){return"[object Array]"===o.call(e)}function a(e){return void 0===e}function s(e){return null!==e&&"object"==typeof e}function l(e){if("[object Object]"!==o.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function c(e){return"[object Function]"===o.call(e)}function u(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.call(null,e[o],o,e)}e.exports={isArray:i,isArrayBuffer:function(e){return"[object ArrayBuffer]"===o.call(e)},isBuffer:function(e){return null!==e&&!a(e)&&null!==e.constructor&&!a(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:s,isPlainObject:l,isUndefined:a,isDate:function(e){return"[object Date]"===o.call(e)},isFile:function(e){return"[object File]"===o.call(e)},isBlob:function(e){return"[object Blob]"===o.call(e)},isFunction:c,isStream:function(e){return s(e)&&c(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:u,merge:function e(){var t={};function n(n,r){l(t[r])&&l(n)?t[r]=e(t[r],n):l(n)?t[r]=e({},n):i(n)?t[r]=n.slice():t[r]=n}for(var r=0,o=arguments.length;r<o;r++)u(arguments[r],n);return t},extend:function(e,t,n){return u(t,(function(t,o){e[o]=n&&"function"==typeof t?r(t,n):t})),e},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}}},147:(e,t,n)=>{"use strict";const r=wp.element;var o=n(363),i=n.n(o);function a(e){let t;const n=new Set,r=(e,r)=>{const o="function"==typeof e?e(t):e;if(o!==t){const e=t;t=r?o:Object.assign({},t,o),n.forEach((n=>n(t,e)))}},o=()=>t,i={setState:r,getState:o,subscribe:(e,r,i)=>r||i?((e,r=o,i=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let a=r(t);function s(){const n=r(t);if(!i(a,n)){const t=a;e(a=n,t)}}return n.add(s),()=>n.delete(s)})(e,r,i):(n.add(e),()=>n.delete(e)),destroy:()=>n.clear()};return t=e(r,o,i),i}const s="undefined"==typeof window||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent)?o.useEffect:o.useLayoutEffect;function l(e){const t="function"==typeof e?a(e):e,n=(e=t.getState,n=Object.is)=>{const[,r]=(0,o.useReducer)((e=>e+1),0),i=t.getState(),a=(0,o.useRef)(i),l=(0,o.useRef)(e),c=(0,o.useRef)(n),u=(0,o.useRef)(!1),d=(0,o.useRef)();let f;void 0===d.current&&(d.current=e(i));let p=!1;(a.current!==i||l.current!==e||c.current!==n||u.current)&&(f=e(i),p=!n(d.current,f)),s((()=>{p&&(d.current=f),a.current=i,l.current=e,c.current=n,u.current=!1}));const h=(0,o.useRef)(i);s((()=>{const e=()=>{try{const e=t.getState(),n=l.current(e);c.current(d.current,n)||(a.current=e,d.current=n,r())}catch(e){u.current=!0,r()}},n=t.subscribe(e);return t.getState()!==h.current&&e(),n}),[]);const m=p?f:d.current;return(0,o.useDebugValue)(m),m};return Object.assign(n,t),n[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const e=[n,t];return{next(){const t=e.length<=0;return{value:e.shift(),done:t}}}},n}Object.defineProperty,Object.getOwnPropertySymbols,Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable;var c=Object.defineProperty,u=Object.getOwnPropertySymbols,d=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable,p=(e,t,n)=>t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,h=(e,t)=>{for(var n in t||(t={}))d.call(t,n)&&p(e,n,t[n]);if(u)for(var n of u(t))f.call(t,n)&&p(e,n,t[n]);return e};const m=e=>t=>{try{const n=e(t);return n instanceof Promise?n:{then:e=>m(e)(n),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>m(t)(e)}}},x=(e,t)=>(n,r,o)=>{let i=h({getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:e=>e,version:0,merge:(e,t)=>h(h({},t),e)},t);(i.blacklist||i.whitelist)&&console.warn(`The ${i.blacklist?"blacklist":"whitelist"} option is deprecated and will be removed in the next version. Please use the 'partialize' option instead.`);let a=!1;const s=new Set,l=new Set;let c;try{c=i.getStorage()}catch(e){}if(!c)return e(((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),n(...e)}),r,o);c.removeItem||console.warn(`[zustand persist middleware] The given storage for item '${i.name}' does not contain a 'removeItem' method, which will be required in v4.`);const u=m(i.serialize),d=()=>{const e=i.partialize(h({},r()));let t;i.whitelist&&Object.keys(e).forEach((t=>{var n;!(null==(n=i.whitelist)?void 0:n.includes(t))&&delete e[t]})),i.blacklist&&i.blacklist.forEach((t=>delete e[t]));const n=u({state:e,version:i.version}).then((e=>c.setItem(i.name,e))).catch((e=>{t=e}));if(t)throw t;return n},f=o.setState;o.setState=(e,t)=>{f(e,t),d()};const p=e(((...e)=>{n(...e),d()}),r,o);let x;const y=()=>{var e;if(!c)return;a=!1,s.forEach((e=>e(r())));const t=(null==(e=i.onRehydrateStorage)?void 0:e.call(i,r()))||void 0;return m(c.getItem.bind(c))(i.name).then((e=>{if(e)return i.deserialize(e)})).then((e=>{if(e){if("number"!=typeof e.version||e.version===i.version)return e.state;if(i.migrate)return i.migrate(e.state,e.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}})).then((e=>(x=i.merge(e,p),n(x,!0),d()))).then((()=>{null==t||t(x,void 0),a=!0,l.forEach((e=>e(x)))})).catch((e=>{null==t||t(void 0,e)}))};return o.persist={setOptions:e=>{i=h(h({},i),e),e.getStorage&&(c=e.getStorage())},clearStorage:()=>{var e;null==(e=null==c?void 0:c.removeItem)||e.call(c,i.name)},rehydrate:()=>y(),hasHydrated:()=>a,onHydrate:e=>(s.add(e),()=>{s.delete(e)}),onFinishHydration:e=>(l.add(e),()=>{l.delete(e)})},y(),x||p};function y(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return v(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return v(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var g=l(x((function(e,t){return{open:!1,metaData:{},currentTaxonomies:{},currentType:"pattern",modals:[],pushModal:function(n){return e({modals:[n].concat(y(t().modals))})},popModal:function(){return e({modals:t().modals.slice(1)})},removeAllModals:function(){return e({modals:[]})},updateCurrentTaxonomies:function(t){return e({currentTaxonomies:Object.assign({},t)})},updateCurrentType:function(t){return e({currentType:t})},setOpen:function(t){e({open:t})}}}),{name:"extendify-global-state",partialize:function(e){return delete e.modals,e}})),b=n(135),w=n.n(b),j=n(206),k=n.n(j)().create({baseURL:window.extendifyData.root,headers:{"X-WP-Nonce":window.extendifyData.nonce,"X-Requested-With":"XMLHttpRequest","X-Extendify":!0}});function C(e){return Object.prototype.hasOwnProperty.call(e,"data")?e.data:e}k.interceptors.response.use((function(e){return function(e){return Object.prototype.hasOwnProperty.call(e,"soft_error")&&window.dispatchEvent(new CustomEvent("extendify::softerror-encountered",{detail:e.soft_error,bubbles:!0})),e}(C(e))}),(function(e){return function(e){if(e.response)return console.error(e.response),Promise.reject(C(e.response))}(e)})),k.interceptors.request.use((function(e){return function(e){return e.headers["X-Extendify-Dev-Mode"]=window.location.search.indexOf("DEVMODE")>-1,e.headers["X-Extendify-Local-Mode"]=window.location.search.indexOf("LOCALMODE")>-1,e}(function(e){var t=z.getState(),n=t.apiKey?"unlimited":t.remainingImports();return e.data&&(e.data.remaining_imports=n,e.data.entry_point=z.getState().entryPoint,e.data.total_imports=z.getState().imports),e}(e))}),(function(e){return e}));var S=function(){return k.get("user")},O=function(e,t){var n=new FormData;return n.append("email",e),n.append("key",t),k.post("login",n,{headers:{"Content-Type":"multipart/form-data"}})},E=function(e){var t=new FormData;return t.append("data",JSON.stringify(e)),k.post("user",t,{headers:{"Content-Type":"multipart/form-data"}})},_=function(){return k.get("max-free-imports")};function N(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function A(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?N(Object(n),!0).forEach((function(t){P(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):N(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(e){return function(e){if(Array.isArray(e))return I(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return I(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return I(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function L(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function M(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){L(i,r,o,a,s,"next",e)}function s(e){L(i,r,o,a,s,"throw",e)}a(void 0)}))}}var R,D,F={getItem:(D=M(w().mark((function e(){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,S();case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(){return D.apply(this,arguments)}),setItem:(R=M(w().mark((function e(t,n){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,E(n);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e,t){return R.apply(this,arguments)}),removeItem:function(){}},B=function(){var e,t,n;return null===window.extendifyData.sitesettings||(null===(e=window.extendifyData)||void 0===e||null===(t=e.sitesettings)||void 0===t||null===(n=t.state)||void 0===n?void 0:n.enabled)},z=l(x((function(e,t){return{firstLoadedOn:(new Date).toISOString(),email:"",apiKey:"",uuid:"",sdkPartner:"",noticesDismissedAt:{},modalNoticesDismissedAt:{},imports:0,runningImports:0,allowedImports:0,freebieImports:0,entryPoint:"not-set",enabled:B(),canInstallPlugins:!1,canActivatePlugins:!1,preferredOptions:{taxonomies:{},type:"",search:""},preferredOptionsHistory:{siteType:[]},incrementImports:function(){var n=Number(t().freebieImports)>0?Number(t().freebieImports)-1:Number(t().freebieImports),r=Number(t().runningImports)+ +(n<1);e({imports:Number(t().imports)+1,runningImports:r,freebieImports:n})},giveFreebieImports:function(n){e({freebieImports:t().freebieImports+n})},totalAvailableImports:function(){return Number(t().allowedImports)+Number(t().freebieImports)},hasAvailableImports:function(){return!!t().apiKey||Number(t().runningImports)<Number(t().totalAvailableImports())},remainingImports:function(){var e=Number(t().totalAvailableImports())-Number(t().runningImports);return t().allowedImports?e>0?e:0:null},updatePreferredSiteType:function(n){var r,o;if(t().updatePreferredOption("siteType",n),null!=n&&n.slug&&"unknown"!==n.slug){var i=null!==(r=null===(o=t().preferredOptionsHistory)||void 0===o?void 0:o.siteType)&&void 0!==r?r:[];if(!i.find((function(e){return e.slug===n.slug}))){var a=[n].concat(T(i));e({preferredOptionsHistory:Object.assign({},t().preferredOptionsHistory,{siteType:a.slice(0,3)})})}}},updatePreferredOption:function(n,r){var o,i;Object.prototype.hasOwnProperty.call(t().preferredOptions,n)||(r=Object.assign({},null!==(o=null===(i=t().preferredOptions)||void 0===i?void 0:i.taxonomies)&&void 0!==o?o:{},P({},n,r)),n="taxonomies");e({preferredOptions:A({},Object.assign({},t().preferredOptions,P({},n,r)))})},markNoticeSeen:function(n,r){e(P({},"".concat(r,"DismissedAt"),A(A({},t()["".concat(r,"DismissedAt")]),{},P({},n,(new Date).toISOString()))))}}}),{name:"extendify-user",getStorage:function(){return F}})),U=l(x((function(e){return{taxonomies:{},setTaxonomies:function(t){return e({taxonomies:t})}}}),{name:"extendify-taxonomies"}));function W(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?W(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):W(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function $(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function H(e){return function(e){if(Array.isArray(e))return V(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return V(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return V(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function V(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var G,J,K=l((function(e,t){return{templates:[],skipNextFetch:!1,fetchToken:null,taxonomyDefaultState:{},nextPage:"",searchParams:{taxonomies:{},type:"pattern"},initTemplateData:function(){e({activeTemplate:{}}),t().setupDefaultTaxonomies(),t().updateType(g.getState().currentType)},appendTemplates:function(n){return e({templates:H(new Map([].concat(H(t().templates),H(n)).map((function(e){return[e.id,e]}))).values())})},setupDefaultTaxonomies:function(){var n,r,o,i,a=U.getState().taxonomies,s=Object.entries(a).reduce((function(e,t){return e[t[0]]=function(e){return"siteType"===e?{slug:"",title:"Unknown"}:{slug:"",title:"Featured"}}(t[0]),e}),{}),l={},c=null!==(n=null===(r=z.getState().preferredOptions)||void 0===r?void 0:r.taxonomies)&&void 0!==n?n:{};c.tax_categories&&(c=t().getLegacySiteType(c,a)),s=Object.assign({},s,c,null!==(o=null===(i=g.getState())||void 0===i?void 0:i.currentTaxonomies)&&void 0!==o?o:{}),l.taxonomies=Object.assign({},s),e({taxonomyDefaultState:s,searchParams:q({},Object.assign(t().searchParams,l))})},updateTaxonomies:function(e){var n,r,o={};(o.taxonomies=Object.assign({},t().searchParams.taxonomies,e),null!=o&&null!==(n=o.taxonomies)&&void 0!==n&&n.siteType)&&z.getState().updatePreferredOption("siteType",null==o||null===(r=o.taxonomies)||void 0===r?void 0:r.siteType);g.getState().updateCurrentTaxonomies(null==o?void 0:o.taxonomies),t().updateSearchParams(o)},updateType:function(e){g.getState().updateCurrentType(e),t().updateSearchParams({type:e})},updateSearchParams:function(n){null!=n&&n.taxonomies&&!Object.keys(n.taxonomies).length&&(n.taxonomies=t().taxonomyDefaultState);var r=Object.assign({},t().searchParams,n);JSON.stringify(r)!==JSON.stringify(t().searchParams)&&e({templates:[],nextPage:"",searchParams:r})},resetTemplates:function(){return e({templates:[],nextPage:""})},getLegacySiteType:function(e,n){var r=n.siteType.find((function(t){return[t.slug,null==t?void 0:t.title].includes(e.tax_categories)}));return z.getState().updatePreferredSiteType(r),t().updateTaxonomies({siteType:r}),z.getState().updatePreferredOption("tax_categories",null),z.getState().preferredOptions.taxonomies}}}));function Z(){return Z=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Z.apply(this,arguments)}function X(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function Y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Q(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Y(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Y(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function ee(e,t){if(e in t){for(var n=t[e],r=arguments.length,o=new Array(r>2?r-2:0),i=2;i<r;i++)o[i-2]=arguments[i];return"function"==typeof n?n.apply(void 0,o):n}var a=new Error('Tried to handle "'+e+'" but there is no handler defined. Only defined handlers are: '+Object.keys(t).map((function(e){return'"'+e+'"'})).join(", ")+".");throw Error.captureStackTrace&&Error.captureStackTrace(a,ee),a}function te(e){var t=e.props,n=e.slot,r=e.defaultTag,o=e.features,i=e.visible,a=void 0===i||i,s=e.name;if(a)return ne(t,n,r,s);var l=null!=o?o:G.None;if(l&G.Static){var c=t.static,u=void 0!==c&&c,d=X(t,["static"]);if(u)return ne(d,n,r,s)}if(l&G.RenderStrategy){var f,p=t.unmount,h=void 0===p||p,m=X(t,["unmount"]);return ee(h?J.Unmount:J.Hidden,((f={})[J.Unmount]=function(){return null},f[J.Hidden]=function(){return ne(Z({},m,{hidden:!0,style:{display:"none"}}),n,r,s)},f))}return ne(t,n,r,s)}function ne(e,t,n,r){var i;void 0===t&&(t={});var a=oe(e,["unmount","static"]),s=a.as,l=void 0===s?n:s,c=a.children,u=a.refName,d=void 0===u?"ref":u,f=X(a,["as","children","refName"]),p=void 0!==e.ref?((i={})[d]=e.ref,i):{},h="function"==typeof c?c(t):c;if(f.className&&"function"==typeof f.className&&(f.className=f.className(t)),l===o.Fragment&&Object.keys(f).length>0){if(!(0,o.isValidElement)(h)||Array.isArray(h)&&h.length>1)throw new Error(['Passing props on "Fragment"!',"","The current component <"+r+' /> is rendering a "Fragment".',"However we need to passthrough the following props:",Object.keys(f).map((function(e){return" - "+e})).join("\n"),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".',"Render a single element as the child so that we can forward the props onto that element."].map((function(e){return" - "+e})).join("\n")].join("\n"));return(0,o.cloneElement)(h,Object.assign({},function(e,t,n){for(var r,o=Object.assign({},e),i=function(){var n,i=r.value;void 0!==e[i]&&void 0!==t[i]&&Object.assign(o,((n={})[i]=function(n){n.defaultPrevented||e[i](n),n.defaultPrevented||t[i](n)},n))},a=Q(n);!(r=a()).done;)i();return o}(function(e){var t=Object.assign({},e);for(var n in t)void 0===t[n]&&delete t[n];return t}(oe(f,["ref"])),h.props,["onClick"]),p))}return(0,o.createElement)(l,Object.assign({},oe(f,["ref"]),l!==o.Fragment&&p),h)}function re(e){var t;return Object.assign((0,o.forwardRef)(e),{displayName:null!=(t=e.displayName)?t:e.name})}function oe(e,t){void 0===t&&(t=[]);for(var n,r=Object.assign({},e),o=Q(t);!(n=o()).done;){var i=n.value;i in r&&delete r[i]}return r}!function(e){e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static"}(G||(G={})),function(e){e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden"}(J||(J={}));var ie="undefined"!=typeof window?o.useLayoutEffect:o.useEffect,ae={serverHandoffComplete:!1};function se(){var e=(0,o.useState)(ae.serverHandoffComplete),t=e[0],n=e[1];return(0,o.useEffect)((function(){!0!==t&&n(!0)}),[t]),(0,o.useEffect)((function(){!1===ae.serverHandoffComplete&&(ae.serverHandoffComplete=!0)}),[]),t}var le=0;function ce(){return++le}function ue(){var e=se(),t=(0,o.useState)(e?ce:null),n=t[0],r=t[1];return ie((function(){null===n&&r(ce())}),[n]),null!=n?""+n:void 0}function de(){var e=(0,o.useRef)(!1);return(0,o.useEffect)((function(){return e.current=!0,function(){e.current=!1}}),[]),e}var fe,pe,he=(0,o.createContext)(null);function me(){return(0,o.useContext)(he)}function xe(e){var t=e.value,n=e.children;return i().createElement(he.Provider,{value:t},n)}function ye(){var e=[],t={requestAnimationFrame:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(){var e=requestAnimationFrame.apply(void 0,arguments);t.add((function(){return cancelAnimationFrame(e)}))})),nextFrame:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.requestAnimationFrame((function(){t.requestAnimationFrame.apply(t,n)}))},setTimeout:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(){var e=setTimeout.apply(void 0,arguments);t.add((function(){return clearTimeout(e)}))})),add:function(t){e.push(t)},dispose:function(){for(var t,n=Q(e.splice(0));!(t=n()).done;){var r=t.value;r()}}};return t}function ve(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];e&&r.length>0&&(t=e.classList).add.apply(t,r)}function ge(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];e&&r.length>0&&(t=e.classList).remove.apply(t,r)}function be(e,t,n,r,o,i){var a=ye(),s=void 0!==i?function(e){var t={called:!1};return function(){if(!t.called)return t.called=!0,e.apply(void 0,arguments)}}(i):function(){};return ge.apply(void 0,[e].concat(o)),ve.apply(void 0,[e].concat(t,n)),a.nextFrame((function(){ge.apply(void 0,[e].concat(n)),ve.apply(void 0,[e].concat(r)),a.add(function(e,t){var n=ye();if(!e)return n.dispose;var r=getComputedStyle(e),o=[r.transitionDuration,r.transitionDelay].map((function(e){var t=e.split(",").filter(Boolean).map((function(e){return e.includes("ms")?parseFloat(e):1e3*parseFloat(e)})).sort((function(e,t){return t-e}))[0];return void 0===t?0:t})),i=o[0],a=o[1];return 0!==i?n.setTimeout((function(){t(pe.Finished)}),i+a):t(pe.Finished),n.add((function(){return t(pe.Cancelled)})),n.dispose}(e,(function(n){return ge.apply(void 0,[e].concat(r,t)),ve.apply(void 0,[e].concat(o)),s(n)})))})),a.add((function(){return ge.apply(void 0,[e].concat(t,n,r,o))})),a.add((function(){return s(pe.Cancelled)})),a.dispose}function we(e){return void 0===e&&(e=""),(0,o.useMemo)((function(){return e.split(" ").filter((function(e){return e.trim().length>1}))}),[e])}he.displayName="OpenClosedContext",function(e){e[e.Open=0]="Open",e[e.Closed=1]="Closed"}(fe||(fe={})),function(e){e.Finished="finished",e.Cancelled="cancelled"}(pe||(pe={}));var je,ke=(0,o.createContext)(null);ke.displayName="TransitionContext",function(e){e.Visible="visible",e.Hidden="hidden"}(je||(je={}));var Ce=(0,o.createContext)(null);function Se(e){return"children"in e?Se(e.children):e.current.filter((function(e){return e.state===je.Visible})).length>0}function Oe(e){var t=(0,o.useRef)(e),n=(0,o.useRef)([]),r=de();(0,o.useEffect)((function(){t.current=e}),[e]);var i=(0,o.useCallback)((function(e,o){var i;void 0===o&&(o=J.Hidden);var a=n.current.findIndex((function(t){return t.id===e}));-1!==a&&(ee(o,((i={})[J.Unmount]=function(){n.current.splice(a,1)},i[J.Hidden]=function(){n.current[a].state=je.Hidden},i)),!Se(n)&&r.current&&(null==t.current||t.current()))}),[t,r,n]),a=(0,o.useCallback)((function(e){var t=n.current.find((function(t){return t.id===e}));return t?t.state!==je.Visible&&(t.state=je.Visible):n.current.push({id:e,state:je.Visible}),function(){return i(e,J.Unmount)}}),[n,i]);return(0,o.useMemo)((function(){return{children:n,register:a,unregister:i}}),[a,i,n])}function Ee(){}Ce.displayName="NestingContext";var _e=["beforeEnter","afterEnter","beforeLeave","afterLeave"];function Ne(e){for(var t,n={},r=Q(_e);!(t=r()).done;){var o,i=t.value;n[i]=null!=(o=e[i])?o:Ee}return n}var Ae,Pe=G.RenderStrategy;function Te(e){var t,n=e.beforeEnter,r=e.afterEnter,a=e.beforeLeave,s=e.afterLeave,l=e.enter,c=e.enterFrom,u=e.enterTo,d=e.entered,f=e.leave,p=e.leaveFrom,h=e.leaveTo,m=X(e,["beforeEnter","afterEnter","beforeLeave","afterLeave","enter","enterFrom","enterTo","entered","leave","leaveFrom","leaveTo"]),x=(0,o.useRef)(null),y=(0,o.useState)(je.Visible),v=y[0],g=y[1],b=m.unmount?J.Unmount:J.Hidden,w=function(){var e=(0,o.useContext)(ke);if(null===e)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return e}(),j=w.show,k=w.appear,C=w.initial,S=function(){var e=(0,o.useContext)(Ce);if(null===e)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return e}(),O=S.register,E=S.unregister,_=ue(),N=(0,o.useRef)(!1),A=Oe((function(){N.current||(g(je.Hidden),E(_),F.current.afterLeave())}));ie((function(){if(_)return O(_)}),[O,_]),ie((function(){var e;b===J.Hidden&&_&&(j&&v!==je.Visible?g(je.Visible):ee(v,((e={})[je.Hidden]=function(){return E(_)},e[je.Visible]=function(){return O(_)},e)))}),[v,_,O,E,j,b]);var P=we(l),T=we(c),I=we(u),L=we(d),M=we(f),R=we(p),D=we(h),F=function(e){var t=(0,o.useRef)(Ne(e));return(0,o.useEffect)((function(){t.current=Ne(e)}),[e]),t}({beforeEnter:n,afterEnter:r,beforeLeave:a,afterLeave:s}),B=se();(0,o.useEffect)((function(){if(B&&v===je.Visible&&null===x.current)throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")}),[x,v,B]);var z=C&&!k;ie((function(){var e=x.current;if(e&&!z)return N.current=!0,j&&F.current.beforeEnter(),j||F.current.beforeLeave(),j?be(e,P,T,I,L,(function(e){N.current=!1,e===pe.Finished&&F.current.afterEnter()})):be(e,M,R,D,L,(function(e){N.current=!1,e===pe.Finished&&(Se(A)||(g(je.Hidden),E(_),F.current.afterLeave()))}))}),[F,_,N,E,A,x,z,j,P,T,I,M,R,D]);var U={ref:x},W=m;return i().createElement(Ce.Provider,{value:A},i().createElement(xe,{value:ee(v,(t={},t[je.Visible]=fe.Open,t[je.Hidden]=fe.Closed,t))},te({props:Z({},W,U),defaultTag:"div",features:Pe,visible:v===je.Visible,name:"Transition.Child"})))}function Ie(e){var t,n=e.show,r=e.appear,a=void 0!==r&&r,s=e.unmount,l=X(e,["show","appear","unmount"]),c=me();void 0===n&&null!==c&&(n=ee(c,((t={})[fe.Open]=!0,t[fe.Closed]=!1,t)));if(![!0,!1].includes(n))throw new Error("A <Transition /> is used but it is missing a `show={true | false}` prop.");var u=(0,o.useState)(n?je.Visible:je.Hidden),d=u[0],f=u[1],p=Oe((function(){f(je.Hidden)})),h=function(){var e=(0,o.useRef)(!0);return(0,o.useEffect)((function(){e.current=!1}),[]),e.current}(),m=(0,o.useMemo)((function(){return{show:n,appear:a||!h,initial:h}}),[n,a,h]);(0,o.useEffect)((function(){n?f(je.Visible):Se(p)||f(je.Hidden)}),[n,p]);var x={unmount:s};return i().createElement(Ce.Provider,{value:p},i().createElement(ke.Provider,{value:m},te({props:Z({},x,{as:o.Fragment,children:i().createElement(Te,Object.assign({},x,l))}),defaultTag:o.Fragment,features:Pe,visible:d===je.Visible,name:"Transition"})))}function Le(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=(0,o.useRef)(t);return(0,o.useEffect)((function(){r.current=t}),[t]),(0,o.useCallback)((function(e){for(var t,n=Q(r.current);!(t=n()).done;){var o=t.value;null!=o&&("function"==typeof o?o(e):o.current=e)}}),[r])}function Me(e){for(var t,n,r=e.parentElement,o=null;r&&!(r instanceof HTMLFieldSetElement);)r instanceof HTMLLegendElement&&(o=r),r=r.parentElement;var i=null!=(t=""===(null==(n=r)?void 0:n.getAttribute("disabled")))&&t;return(!i||!function(e){if(!e)return!1;var t=e.previousElementSibling;for(;null!==t;){if(t instanceof HTMLLegendElement)return!1;t=t.previousElementSibling}return!0}(o))&&i}function Re(e,t,n){var r=(0,o.useRef)(t);r.current=t,(0,o.useEffect)((function(){function t(e){r.current.call(window,e)}return window.addEventListener(e,t,n),function(){return window.removeEventListener(e,t,n)}}),[e,n])}Ie.Child=function(e){var t=null!==(0,o.useContext)(ke),n=null!==me();return!t&&n?i().createElement(Ie,Object.assign({},e)):i().createElement(Te,Object.assign({},e))},Ie.Root=Ie,function(e){e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab"}(Ae||(Ae={}));var De,Fe,Be,ze,Ue,We=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map((function(e){return e+":not([tabindex='-1'])"})).join(",");function qe(e){null==e||e.focus({preventScroll:!0})}function $e(e,t){var n=Array.isArray(e)?e:function(e){return void 0===e&&(e=document.body),null==e?[]:Array.from(e.querySelectorAll(We))}(e),r=document.activeElement,o=function(){if(t&(De.First|De.Next))return Be.Next;if(t&(De.Previous|De.Last))return Be.Previous;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")}(),i=function(){if(t&De.First)return 0;if(t&De.Previous)return Math.max(0,n.indexOf(r))-1;if(t&De.Next)return Math.max(0,n.indexOf(r))+1;if(t&De.Last)return n.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")}(),a=t&De.NoScroll?{preventScroll:!0}:{},s=0,l=n.length,c=void 0;do{var u;if(s>=l||s+l<=0)return Fe.Error;var d=i+s;if(t&De.WrapAround)d=(d+l)%l;else{if(d<0)return Fe.Underflow;if(d>=l)return Fe.Overflow}null==(u=c=n[d])||u.focus(a),s+=o}while(c!==document.activeElement);return c.hasAttribute("tabindex")||c.setAttribute("tabindex","0"),Fe.Success}function He(e,t,n){void 0===t&&(t=Ue.All);var r=void 0===n?{}:n,i=r.initialFocus,a=r.containers,s=(0,o.useRef)("undefined"!=typeof window?document.activeElement:null),l=(0,o.useRef)(null),c=de(),u=Boolean(t&Ue.RestoreFocus),d=Boolean(t&Ue.InitialFocus);(0,o.useEffect)((function(){u&&(s.current=document.activeElement)}),[u]),(0,o.useEffect)((function(){if(u)return function(){qe(s.current),s.current=null}}),[u]),(0,o.useEffect)((function(){if(d&&e.current){var t=document.activeElement;if(null==i?void 0:i.current){if((null==i?void 0:i.current)===t)return void(l.current=t)}else if(e.current.contains(t))return void(l.current=t);(null==i?void 0:i.current)?qe(i.current):$e(e.current,De.First)===Fe.Error&&console.warn("There are no focusable elements inside the <FocusTrap />"),l.current=document.activeElement}}),[e,i,d]),Re("keydown",(function(n){t&Ue.TabLock&&e.current&&n.key===Ae.Tab&&(n.preventDefault(),$e(e.current,(n.shiftKey?De.Previous:De.Next)|De.WrapAround)===Fe.Success&&(l.current=document.activeElement))})),Re("focus",(function(n){if(t&Ue.FocusLock){var r=new Set(null==a?void 0:a.current);if(r.add(e),r.size){var o=l.current;if(o&&c.current){var i=n.target;i&&i instanceof HTMLElement?!function(e,t){for(var n,r=Q(e);!(n=r()).done;){var o;if(null==(o=n.value.current)?void 0:o.contains(t))return!0}return!1}(r,i)?(n.preventDefault(),n.stopPropagation(),qe(o)):(l.current=i,qe(i)):qe(l.current)}}}}),!0)}!function(e){e[e.First=1]="First",e[e.Previous=2]="Previous",e[e.Next=4]="Next",e[e.Last=8]="Last",e[e.WrapAround=16]="WrapAround",e[e.NoScroll=32]="NoScroll"}(De||(De={})),function(e){e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow"}(Fe||(Fe={})),function(e){e[e.Previous=-1]="Previous",e[e.Next=1]="Next"}(Be||(Be={})),function(e){e[e.Strict=0]="Strict",e[e.Loose=1]="Loose"}(ze||(ze={})),function(e){e[e.None=1]="None",e[e.InitialFocus=2]="InitialFocus",e[e.TabLock=4]="TabLock",e[e.FocusLock=8]="FocusLock",e[e.RestoreFocus=16]="RestoreFocus",e[e.All=30]="All"}(Ue||(Ue={}));var Ve=new Set,Ge=new Map;function Je(e){e.setAttribute("aria-hidden","true"),e.inert=!0}function Ke(e){var t=Ge.get(e);t&&(null===t["aria-hidden"]?e.removeAttribute("aria-hidden"):e.setAttribute("aria-hidden",t["aria-hidden"]),e.inert=t.inert)}var Ze=(0,o.createContext)(!1);function Xe(e){return i().createElement(Ze.Provider,{value:e.force},e.children)}const Ye=ReactDOM;function Qe(){var e=(0,o.useContext)(Ze),t=(0,o.useContext)(rt),n=(0,o.useState)((function(){if(!e&&null!==t)return null;if("undefined"==typeof window)return null;var n=document.getElementById("headlessui-portal-root");if(n)return n;var r=document.createElement("div");return r.setAttribute("id","headlessui-portal-root"),document.body.appendChild(r)})),r=n[0],i=n[1];return(0,o.useEffect)((function(){e||null!==t&&i(t.current)}),[t,i,e]),r}var et=o.Fragment;function tt(e){var t=e,n=Qe(),r=(0,o.useState)((function(){return"undefined"==typeof window?null:document.createElement("div")}))[0],i=se();return ie((function(){if(n&&r)return n.appendChild(r),function(){var e;n&&(r&&(n.removeChild(r),n.childNodes.length<=0&&(null==(e=n.parentElement)||e.removeChild(n))))}}),[n,r]),i&&n&&r?(0,Ye.createPortal)(te({props:t,defaultTag:et,name:"Portal"}),r):null}var nt=o.Fragment,rt=(0,o.createContext)(null);tt.Group=function(e){var t=e.target,n=X(e,["target"]);return i().createElement(rt.Provider,{value:t},te({props:n,defaultTag:nt,name:"Popover.Group"}))};var ot=(0,o.createContext)(null);function it(){var e=(0,o.useContext)(ot);if(null===e){var t=new Error("You used a <Description /> component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(t,it),t}return e}var at,st,lt,ct,ut=(0,o.createContext)((function(){}));function dt(e){var t=e.children,n=e.onUpdate,r=e.type,a=e.element,s=(0,o.useContext)(ut),l=(0,o.useCallback)((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];null==n||n.apply(void 0,t),s.apply(void 0,t)}),[s,n]);return ie((function(){return l(at.Add,r,a),function(){return l(at.Remove,r,a)}}),[l,r,a]),i().createElement(ut.Provider,{value:l},t)}ut.displayName="StackContext",function(e){e[e.Add=0]="Add",e[e.Remove=1]="Remove"}(at||(at={})),function(e){e[e.Open=0]="Open",e[e.Closed=1]="Closed"}(lt||(lt={})),function(e){e[e.SetTitleId=0]="SetTitleId"}(ct||(ct={}));var ft=((st={})[ct.SetTitleId]=function(e,t){return e.titleId===t.id?e:Z({},e,{titleId:t.id})},st),pt=(0,o.createContext)(null);function ht(e){var t=(0,o.useContext)(pt);if(null===t){var n=new Error("<"+e+" /> is missing a parent <"+gt.displayName+" /> component.");throw Error.captureStackTrace&&Error.captureStackTrace(n,ht),n}return t}function mt(e,t){return ee(t.type,ft,e,t)}pt.displayName="DialogContext";var xt=G.RenderStrategy|G.Static,yt=re((function(e,t){var n,r=e.open,a=e.onClose,s=e.initialFocus,l=X(e,["open","onClose","initialFocus"]),c=(0,o.useState)(0),u=c[0],d=c[1],f=me();void 0===r&&null!==f&&(r=ee(f,((n={})[fe.Open]=!0,n[fe.Closed]=!1,n)));var p=(0,o.useRef)(new Set),h=(0,o.useRef)(null),m=Le(h,t),x=e.hasOwnProperty("open")||null!==f,y=e.hasOwnProperty("onClose");if(!x&&!y)throw new Error("You have to provide an `open` and an `onClose` prop to the `Dialog` component.");if(!x)throw new Error("You provided an `onClose` prop to the `Dialog`, but forgot an `open` prop.");if(!y)throw new Error("You provided an `open` prop to the `Dialog`, but forgot an `onClose` prop.");if("boolean"!=typeof r)throw new Error("You provided an `open` prop to the `Dialog`, but the value is not a boolean. Received: "+r);if("function"!=typeof a)throw new Error("You provided an `onClose` prop to the `Dialog`, but the value is not a function. Received: "+a);var v=r?lt.Open:lt.Closed,g=null!==f?f===fe.Open:v===lt.Open,b=(0,o.useReducer)(mt,{titleId:null,descriptionId:null}),w=b[0],j=b[1],k=(0,o.useCallback)((function(){return a(!1)}),[a]),C=(0,o.useCallback)((function(e){return j({type:ct.SetTitleId,id:e})}),[j]),S=se()&&v===lt.Open,O=u>1,E=null!==(0,o.useContext)(pt);He(h,S?ee(O?"parent":"leaf",{parent:Ue.RestoreFocus,leaf:Ue.All}):Ue.None,{initialFocus:s,containers:p}),function(e,t){void 0===t&&(t=!0),ie((function(){if(t&&e.current){var n=e.current;Ve.add(n);for(var r,o=Q(Ge.keys());!(r=o()).done;){var i=r.value;i.contains(n)&&(Ke(i),Ge.delete(i))}return document.querySelectorAll("body > *").forEach((function(e){if(e instanceof HTMLElement){for(var t,n=Q(Ve);!(t=n()).done;){var r=t.value;if(e.contains(r))return}1===Ve.size&&(Ge.set(e,{"aria-hidden":e.getAttribute("aria-hidden"),inert:e.inert}),Je(e))}})),function(){if(Ve.delete(n),Ve.size>0)document.querySelectorAll("body > *").forEach((function(e){if(e instanceof HTMLElement&&!Ge.has(e)){for(var t,n=Q(Ve);!(t=n()).done;){var r=t.value;if(e.contains(r))return}Ge.set(e,{"aria-hidden":e.getAttribute("aria-hidden"),inert:e.inert}),Je(e)}}));else for(var e,t=Q(Ge.keys());!(e=t()).done;){var r=e.value;Ke(r),Ge.delete(r)}}}}),[t])}(h,!!O&&S),Re("mousedown",(function(e){var t,n=e.target;v===lt.Open&&(O||(null==(t=h.current)?void 0:t.contains(n))||k())})),Re("keydown",(function(e){e.key===Ae.Escape&&v===lt.Open&&(O||(e.preventDefault(),e.stopPropagation(),k()))})),(0,o.useEffect)((function(){if(v===lt.Open&&!E){var e=document.documentElement.style.overflow,t=document.documentElement.style.paddingRight,n=window.innerWidth-document.documentElement.clientWidth;return document.documentElement.style.overflow="hidden",document.documentElement.style.paddingRight=n+"px",function(){document.documentElement.style.overflow=e,document.documentElement.style.paddingRight=t}}}),[v,E]),(0,o.useEffect)((function(){if(v===lt.Open&&h.current){var e=new IntersectionObserver((function(e){for(var t,n=Q(e);!(t=n()).done;){var r=t.value;0===r.boundingClientRect.x&&0===r.boundingClientRect.y&&0===r.boundingClientRect.width&&0===r.boundingClientRect.height&&k()}}));return e.observe(h.current),function(){return e.disconnect()}}}),[v,h,k]);var _=function(){var e=(0,o.useState)([]),t=e[0],n=e[1];return[t.length>0?t.join(" "):void 0,(0,o.useMemo)((function(){return function(e){var t=(0,o.useCallback)((function(e){return n((function(t){return[].concat(t,[e])})),function(){return n((function(t){var n=t.slice(),r=n.indexOf(e);return-1!==r&&n.splice(r,1),n}))}}),[]),r=(0,o.useMemo)((function(){return{register:t,slot:e.slot,name:e.name,props:e.props}}),[t,e.slot,e.name,e.props]);return i().createElement(ot.Provider,{value:r},e.children)}}),[n])]}(),N=_[0],A=_[1],P="headlessui-dialog-"+ue(),T=(0,o.useMemo)((function(){return[{dialogState:v,close:k,setTitleId:C},w]}),[v,w,k,C]),I=(0,o.useMemo)((function(){return{open:v===lt.Open}}),[v]),L={ref:m,id:P,role:"dialog","aria-modal":v===lt.Open||void 0,"aria-labelledby":w.titleId,"aria-describedby":N,onClick:function(e){e.stopPropagation()}},M=l;return i().createElement(dt,{type:"Dialog",element:h,onUpdate:(0,o.useCallback)((function(e,t,n){var r;"Dialog"===t&&ee(e,((r={})[at.Add]=function(){p.current.add(n),d((function(e){return e+1}))},r[at.Remove]=function(){p.current.add(n),d((function(e){return e-1}))},r))}),[])},i().createElement(Xe,{force:!0},i().createElement(tt,null,i().createElement(pt.Provider,{value:T},i().createElement(tt.Group,{target:h},i().createElement(Xe,{force:!1},i().createElement(A,{slot:I,name:"Dialog.Description"},te({props:Z({},M,L),slot:I,defaultTag:"div",features:xt,visible:g,name:"Dialog"}))))))))})),vt=re((function e(t,n){var r=ht([gt.displayName,e.name].join("."))[0],i=r.dialogState,a=r.close,s=Le(n),l="headlessui-dialog-overlay-"+ue(),c=(0,o.useCallback)((function(e){if(e.target===e.currentTarget){if(Me(e.currentTarget))return e.preventDefault();e.preventDefault(),e.stopPropagation(),a()}}),[a]),u=(0,o.useMemo)((function(){return{open:i===lt.Open}}),[i]);return te({props:Z({},t,{ref:s,id:l,"aria-hidden":!0,onClick:c}),slot:u,defaultTag:"div",name:"Dialog.Overlay"})}));var gt=Object.assign(yt,{Overlay:vt,Title:function e(t){var n=ht([gt.displayName,e.name].join("."))[0],r=n.dialogState,i=n.setTitleId,a="headlessui-dialog-title-"+ue();(0,o.useEffect)((function(){return i(a),function(){return i(null)}}),[a,i]);var s=(0,o.useMemo)((function(){return{open:r===lt.Open}}),[r]);return te({props:Z({},t,{id:a}),slot:s,defaultTag:"h2",name:"Dialog.Title"})},Description:function(e){var t=it(),n="headlessui-description-"+ue();ie((function(){return t.register(n)}),[n,t.register]);var r=e,o=Z({},t.props,{id:n});return te({props:Z({},r,o),slot:t.slot||{},defaultTag:"p",name:t.name||"Description"})}});const bt=wp.i18n,wt=wp.components;var jt=n(42),kt=n.n(jt);const Ct=lodash;var St=function(e){return Ot(e,"open")};function Ot(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"broken-event",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"open";z.setState({entryPoint:e}),window.dispatchEvent(new CustomEvent("extendify::".concat(t,"-library"),{detail:e,bubbles:!0}))}function Et(e){switch(e){case"editorplus":return"Editor Plus";case"ml-slider":return"MetaSlider"}return e}function _t(e){switch(e){case"siteType":return"Site Type";case"patternType":return"Content";case"layoutType":return"Page Types"}}var Nt=n(246);function At(e){var t=e.taxType,n=e.taxonomies,r=K((function(e){return e.updateTaxonomies})),o=K((function(e){return e.searchParams}));return!(null!=n&&n.length)>0?null:(0,Nt.jsx)(wt.PanelBody,{title:_t(t),className:"ext-type-control p-0",initialOpen:!0,children:(0,Nt.jsx)(wt.PanelRow,{children:(0,Nt.jsx)("div",{className:"overflow-hidden w-full relative",children:(0,Nt.jsx)("ul",{className:"px-5 py-1 m-0 w-full",children:n.map((function(e){var n,i,a=(null==o||null===(n=o.taxonomies[t])||void 0===n?void 0:n.slug)===(null==e?void 0:e.slug);return(0,Nt.jsx)("li",{className:"m-0 w-full",children:(0,Nt.jsx)("button",{type:"button",className:"text-left text-sm cursor-pointer w-full flex justify-between items-center px-0 py-2 m-0 leading-none bg-transparent hover:text-wp-theme-500 transition duration-200 button-focus",onClick:function(){return r((i=e,(o=t)in(n={})?Object.defineProperty(n,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[o]=i,n));var n,o,i},children:(0,Nt.jsx)("span",{className:kt()({"text-wp-theme-500":a}),children:null!==(i=null==e?void 0:e.title)&&void 0!==i?i:e.slug})})},e.slug)}))})})})})}function Pt(e){return Array.isArray?Array.isArray(e):"[object Array]"===Ft(e)}function Tt(e){return"string"==typeof e}function It(e){return"number"==typeof e}function Lt(e){return!0===e||!1===e||function(e){return Mt(e)&&null!==e}(e)&&"[object Boolean]"==Ft(e)}function Mt(e){return"object"==typeof e}function Rt(e){return null!=e}function Dt(e){return!e.trim().length}function Ft(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const Bt=Object.prototype.hasOwnProperty;class zt{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach((e=>{let n=Ut(e);t+=n.weight,this._keys.push(n),this._keyMap[n.id]=n,t+=n.weight})),this._keys.forEach((e=>{e.weight/=t}))}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Ut(e){let t=null,n=null,r=null,o=1;if(Tt(e)||Pt(e))r=e,t=Wt(e),n=qt(e);else{if(!Bt.call(e,"name"))throw new Error((e=>`Missing ${e} property in key`)("name"));const i=e.name;if(r=i,Bt.call(e,"weight")&&(o=e.weight,o<=0))throw new Error((e=>`Property 'weight' in key '${e}' must be a positive integer`)(i));t=Wt(i),n=qt(i)}return{path:t,id:n,weight:o,src:r}}function Wt(e){return Pt(e)?e:e.split(".")}function qt(e){return Pt(e)?e.join("."):e}var $t={isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1,includeMatches:!1,findAllMatches:!1,minMatchCharLength:1,location:0,threshold:.6,distance:100,...{useExtendedSearch:!1,getFn:function(e,t){let n=[],r=!1;const o=(e,t,i)=>{if(Rt(e))if(t[i]){const a=e[t[i]];if(!Rt(a))return;if(i===t.length-1&&(Tt(a)||It(a)||Lt(a)))n.push(function(e){return null==e?"":function(e){if("string"==typeof e)return e;let t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(e)}(a));else if(Pt(a)){r=!0;for(let e=0,n=a.length;e<n;e+=1)o(a[e],t,i+1)}else t.length&&o(a,t,i+1)}else n.push(e)};return o(e,Tt(t)?t.split("."):t,0),r?n:n[0]},ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}};const Ht=/[^ ]+/g;class Vt{constructor({getFn:e=$t.getFn,fieldNormWeight:t=$t.fieldNormWeight}={}){this.norm=function(e=1,t=3){const n=new Map,r=Math.pow(10,t);return{get(t){const o=t.match(Ht).length;if(n.has(o))return n.get(o);const i=1/Math.pow(o,.5*e),a=parseFloat(Math.round(i*r)/r);return n.set(o,a),a},clear(){n.clear()}}}(t,3),this.getFn=e,this.isCreated=!1,this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach(((e,t)=>{this._keysMap[e.id]=t}))}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,Tt(this.docs[0])?this.docs.forEach(((e,t)=>{this._addString(e,t)})):this.docs.forEach(((e,t)=>{this._addObject(e,t)})),this.norm.clear())}add(e){const t=this.size();Tt(e)?this._addString(e,t):this._addObject(e,t)}removeAt(e){this.records.splice(e,1);for(let t=e,n=this.size();t<n;t+=1)this.records[t].i-=1}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_addString(e,t){if(!Rt(e)||Dt(e))return;let n={v:e,i:t,n:this.norm.get(e)};this.records.push(n)}_addObject(e,t){let n={i:t,$:{}};this.keys.forEach(((t,r)=>{let o=this.getFn(e,t.path);if(Rt(o))if(Pt(o)){let e=[];const t=[{nestedArrIndex:-1,value:o}];for(;t.length;){const{nestedArrIndex:n,value:r}=t.pop();if(Rt(r))if(Tt(r)&&!Dt(r)){let t={v:r,i:n,n:this.norm.get(r)};e.push(t)}else Pt(r)&&r.forEach(((e,n)=>{t.push({nestedArrIndex:n,value:e})}))}n.$[r]=e}else if(!Dt(o)){let e={v:o,n:this.norm.get(o)};n.$[r]=e}})),this.records.push(n)}toJSON(){return{keys:this.keys,records:this.records}}}function Gt(e,t,{getFn:n=$t.getFn,fieldNormWeight:r=$t.fieldNormWeight}={}){const o=new Vt({getFn:n,fieldNormWeight:r});return o.setKeys(e.map(Ut)),o.setSources(t),o.create(),o}function Jt(e,{errors:t=0,currentLocation:n=0,expectedLocation:r=0,distance:o=$t.distance,ignoreLocation:i=$t.ignoreLocation}={}){const a=t/e.length;if(i)return a;const s=Math.abs(r-n);return o?a+s/o:s?1:a}const Kt=32;function Zt(e,t,n,{location:r=$t.location,distance:o=$t.distance,threshold:i=$t.threshold,findAllMatches:a=$t.findAllMatches,minMatchCharLength:s=$t.minMatchCharLength,includeMatches:l=$t.includeMatches,ignoreLocation:c=$t.ignoreLocation}={}){if(t.length>Kt)throw new Error(`Pattern length exceeds max of ${Kt}.`);const u=t.length,d=e.length,f=Math.max(0,Math.min(r,d));let p=i,h=f;const m=s>1||l,x=m?Array(d):[];let y;for(;(y=e.indexOf(t,h))>-1;){let e=Jt(t,{currentLocation:y,expectedLocation:f,distance:o,ignoreLocation:c});if(p=Math.min(e,p),h=y+u,m){let e=0;for(;e<u;)x[y+e]=1,e+=1}}h=-1;let v=[],g=1,b=u+d;const w=1<<u-1;for(let r=0;r<u;r+=1){let i=0,s=b;for(;i<s;){Jt(t,{errors:r,currentLocation:f+s,expectedLocation:f,distance:o,ignoreLocation:c})<=p?i=s:b=s,s=Math.floor((b-i)/2+i)}b=s;let l=Math.max(1,f-s+1),y=a?d:Math.min(f+s,d)+u,j=Array(y+2);j[y+1]=(1<<r)-1;for(let i=y;i>=l;i-=1){let a=i-1,s=n[e.charAt(a)];if(m&&(x[a]=+!!s),j[i]=(j[i+1]<<1|1)&s,r&&(j[i]|=(v[i+1]|v[i])<<1|1|v[i+1]),j[i]&w&&(g=Jt(t,{errors:r,currentLocation:a,expectedLocation:f,distance:o,ignoreLocation:c}),g<=p)){if(p=g,h=a,h<=f)break;l=Math.max(1,2*f-h)}}if(Jt(t,{errors:r+1,currentLocation:f,expectedLocation:f,distance:o,ignoreLocation:c})>p)break;v=j}const j={isMatch:h>=0,score:Math.max(.001,g)};if(m){const e=function(e=[],t=$t.minMatchCharLength){let n=[],r=-1,o=-1,i=0;for(let a=e.length;i<a;i+=1){let a=e[i];a&&-1===r?r=i:a||-1===r||(o=i-1,o-r+1>=t&&n.push([r,o]),r=-1)}return e[i-1]&&i-r>=t&&n.push([r,i-1]),n}(x,s);e.length?l&&(j.indices=e):j.isMatch=!1}return j}function Xt(e){let t={};for(let n=0,r=e.length;n<r;n+=1){const o=e.charAt(n);t[o]=(t[o]||0)|1<<r-n-1}return t}class Yt{constructor(e,{location:t=$t.location,threshold:n=$t.threshold,distance:r=$t.distance,includeMatches:o=$t.includeMatches,findAllMatches:i=$t.findAllMatches,minMatchCharLength:a=$t.minMatchCharLength,isCaseSensitive:s=$t.isCaseSensitive,ignoreLocation:l=$t.ignoreLocation}={}){if(this.options={location:t,threshold:n,distance:r,includeMatches:o,findAllMatches:i,minMatchCharLength:a,isCaseSensitive:s,ignoreLocation:l},this.pattern=s?e:e.toLowerCase(),this.chunks=[],!this.pattern.length)return;const c=(e,t)=>{this.chunks.push({pattern:e,alphabet:Xt(e),startIndex:t})},u=this.pattern.length;if(u>Kt){let e=0;const t=u%Kt,n=u-t;for(;e<n;)c(this.pattern.substr(e,Kt),e),e+=Kt;if(t){const e=u-Kt;c(this.pattern.substr(e),e)}}else c(this.pattern,0)}searchIn(e){const{isCaseSensitive:t,includeMatches:n}=this.options;if(t||(e=e.toLowerCase()),this.pattern===e){let t={isMatch:!0,score:0};return n&&(t.indices=[[0,e.length-1]]),t}const{location:r,distance:o,threshold:i,findAllMatches:a,minMatchCharLength:s,ignoreLocation:l}=this.options;let c=[],u=0,d=!1;this.chunks.forEach((({pattern:t,alphabet:f,startIndex:p})=>{const{isMatch:h,score:m,indices:x}=Zt(e,t,f,{location:r+p,distance:o,threshold:i,findAllMatches:a,minMatchCharLength:s,includeMatches:n,ignoreLocation:l});h&&(d=!0),u+=m,h&&x&&(c=[...c,...x])}));let f={isMatch:d,score:d?u/this.chunks.length:1};return d&&n&&(f.indices=c),f}}class Qt{constructor(e){this.pattern=e}static isMultiMatch(e){return en(e,this.multiRegex)}static isSingleMatch(e){return en(e,this.singleRegex)}search(){}}function en(e,t){const n=e.match(t);return n?n[1]:null}class tn extends Qt{constructor(e,{location:t=$t.location,threshold:n=$t.threshold,distance:r=$t.distance,includeMatches:o=$t.includeMatches,findAllMatches:i=$t.findAllMatches,minMatchCharLength:a=$t.minMatchCharLength,isCaseSensitive:s=$t.isCaseSensitive,ignoreLocation:l=$t.ignoreLocation}={}){super(e),this._bitapSearch=new Yt(e,{location:t,threshold:n,distance:r,includeMatches:o,findAllMatches:i,minMatchCharLength:a,isCaseSensitive:s,ignoreLocation:l})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class nn extends Qt{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let t,n=0;const r=[],o=this.pattern.length;for(;(t=e.indexOf(this.pattern,n))>-1;)n=t+o,r.push([t,n-1]);const i=!!r.length;return{isMatch:i,score:i?0:1,indices:r}}}const rn=[class extends Qt{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){const t=e===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}},nn,class extends Qt{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){const t=e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}},class extends Qt{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){const t=!e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}},class extends Qt{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){const t=!e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}},class extends Qt{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){const t=e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[e.length-this.pattern.length,e.length-1]}}},class extends Qt{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){const t=-1===e.indexOf(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}},tn],on=rn.length,an=/ +(?=([^\"]*\"[^\"]*\")*[^\"]*$)/;const sn=new Set([tn.type,nn.type]);class ln{constructor(e,{isCaseSensitive:t=$t.isCaseSensitive,includeMatches:n=$t.includeMatches,minMatchCharLength:r=$t.minMatchCharLength,ignoreLocation:o=$t.ignoreLocation,findAllMatches:i=$t.findAllMatches,location:a=$t.location,threshold:s=$t.threshold,distance:l=$t.distance}={}){this.query=null,this.options={isCaseSensitive:t,includeMatches:n,minMatchCharLength:r,findAllMatches:i,ignoreLocation:o,location:a,threshold:s,distance:l},this.pattern=t?e:e.toLowerCase(),this.query=function(e,t={}){return e.split("|").map((e=>{let n=e.trim().split(an).filter((e=>e&&!!e.trim())),r=[];for(let e=0,o=n.length;e<o;e+=1){const o=n[e];let i=!1,a=-1;for(;!i&&++a<on;){const e=rn[a];let n=e.isMultiMatch(o);n&&(r.push(new e(n,t)),i=!0)}if(!i)for(a=-1;++a<on;){const e=rn[a];let n=e.isSingleMatch(o);if(n){r.push(new e(n,t));break}}}return r}))}(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){const t=this.query;if(!t)return{isMatch:!1,score:1};const{includeMatches:n,isCaseSensitive:r}=this.options;e=r?e:e.toLowerCase();let o=0,i=[],a=0;for(let r=0,s=t.length;r<s;r+=1){const s=t[r];i.length=0,o=0;for(let t=0,r=s.length;t<r;t+=1){const r=s[t],{isMatch:l,indices:c,score:u}=r.search(e);if(!l){a=0,o=0,i.length=0;break}if(o+=1,a+=u,n){const e=r.constructor.type;sn.has(e)?i=[...i,...c]:i.push(c)}}if(o){let e={isMatch:!0,score:a/o};return n&&(e.indices=i),e}}return{isMatch:!1,score:1}}}const cn=[];function un(e,t){for(let n=0,r=cn.length;n<r;n+=1){let r=cn[n];if(r.condition(e,t))return new r(e,t)}return new Yt(e,t)}const dn="$and",fn="$or",pn="$path",hn="$val",mn=e=>!(!e[dn]&&!e[fn]),xn=e=>({[dn]:Object.keys(e).map((t=>({[t]:e[t]})))});function yn(e,t,{auto:n=!0}={}){const r=e=>{let o=Object.keys(e);const i=(e=>!!e[pn])(e);if(!i&&o.length>1&&!mn(e))return r(xn(e));if((e=>!Pt(e)&&Mt(e)&&!mn(e))(e)){const r=i?e[pn]:o[0],a=i?e[hn]:e[r];if(!Tt(a))throw new Error((e=>`Invalid value for key ${e}`)(r));const s={keyId:qt(r),pattern:a};return n&&(s.searcher=un(a,t)),s}let a={children:[],operator:o[0]};return o.forEach((t=>{const n=e[t];Pt(n)&&n.forEach((e=>{a.children.push(r(e))}))})),a};return mn(e)||(e=xn(e)),r(e)}function vn(e,t){const n=e.matches;t.matches=[],Rt(n)&&n.forEach((e=>{if(!Rt(e.indices)||!e.indices.length)return;const{indices:n,value:r}=e;let o={indices:n,value:r};e.key&&(o.key=e.key.src),e.idx>-1&&(o.refIndex=e.idx),t.matches.push(o)}))}function gn(e,t){t.score=e.score}class bn{constructor(e,t={},n){this.options={...$t,...t},this.options.useExtendedSearch,this._keyStore=new zt(this.options.keys),this.setCollection(e,n)}setCollection(e,t){if(this._docs=e,t&&!(t instanceof Vt))throw new Error("Incorrect 'index' type");this._myIndex=t||Gt(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){Rt(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=(()=>!1)){const t=[];for(let n=0,r=this._docs.length;n<r;n+=1){const o=this._docs[n];e(o,n)&&(this.removeAt(n),n-=1,r-=1,t.push(o))}return t}removeAt(e){this._docs.splice(e,1),this._myIndex.removeAt(e)}getIndex(){return this._myIndex}search(e,{limit:t=-1}={}){const{includeMatches:n,includeScore:r,shouldSort:o,sortFn:i,ignoreFieldNorm:a}=this.options;let s=Tt(e)?Tt(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return function(e,{ignoreFieldNorm:t=$t.ignoreFieldNorm}){e.forEach((e=>{let n=1;e.matches.forEach((({key:e,norm:r,score:o})=>{const i=e?e.weight:null;n*=Math.pow(0===o&&i?Number.EPSILON:o,(i||1)*(t?1:r))})),e.score=n}))}(s,{ignoreFieldNorm:a}),o&&s.sort(i),It(t)&&t>-1&&(s=s.slice(0,t)),function(e,t,{includeMatches:n=$t.includeMatches,includeScore:r=$t.includeScore}={}){const o=[];return n&&o.push(vn),r&&o.push(gn),e.map((e=>{const{idx:n}=e,r={item:t[n],refIndex:n};return o.length&&o.forEach((t=>{t(e,r)})),r}))}(s,this._docs,{includeMatches:n,includeScore:r})}_searchStringList(e){const t=un(e,this.options),{records:n}=this._myIndex,r=[];return n.forEach((({v:e,i:n,n:o})=>{if(!Rt(e))return;const{isMatch:i,score:a,indices:s}=t.searchIn(e);i&&r.push({item:e,idx:n,matches:[{score:a,value:e,norm:o,indices:s}]})})),r}_searchLogical(e){const t=yn(e,this.options),n=(e,t,r)=>{if(!e.children){const{keyId:n,searcher:o}=e,i=this._findMatches({key:this._keyStore.get(n),value:this._myIndex.getValueForItemAtKeyId(t,n),searcher:o});return i&&i.length?[{idx:r,item:t,matches:i}]:[]}const o=[];for(let i=0,a=e.children.length;i<a;i+=1){const a=e.children[i],s=n(a,t,r);if(s.length)o.push(...s);else if(e.operator===dn)return[]}return o},r=this._myIndex.records,o={},i=[];return r.forEach((({$:e,i:r})=>{if(Rt(e)){let a=n(t,e,r);a.length&&(o[r]||(o[r]={idx:r,item:e,matches:[]},i.push(o[r])),a.forEach((({matches:e})=>{o[r].matches.push(...e)})))}})),i}_searchObjectList(e){const t=un(e,this.options),{keys:n,records:r}=this._myIndex,o=[];return r.forEach((({$:e,i:r})=>{if(!Rt(e))return;let i=[];n.forEach(((n,r)=>{i.push(...this._findMatches({key:n,value:e[r],searcher:t}))})),i.length&&o.push({idx:r,item:e,matches:i})})),o}_findMatches({key:e,value:t,searcher:n}){if(!Rt(t))return[];let r=[];if(Pt(t))t.forEach((({v:t,i:o,n:i})=>{if(!Rt(t))return;const{isMatch:a,score:s,indices:l}=n.searchIn(t);a&&r.push({score:s,key:e,value:t,idx:o,norm:i,indices:l})}));else{const{v:o,n:i}=t,{isMatch:a,score:s,indices:l}=n.searchIn(o);a&&r.push({score:s,key:e,value:o,norm:i,indices:l})}return r}}function wn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return jn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return jn(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function jn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}bn.version="6.5.3",bn.createIndex=Gt,bn.parseIndex=function(e,{getFn:t=$t.getFn,fieldNormWeight:n=$t.fieldNormWeight}={}){const{keys:r,records:o}=e,i=new Vt({getFn:t,fieldNormWeight:n});return i.setKeys(r),i.setIndexRecords(o),i},bn.config=$t,bn.parseQuery=yn,function(...e){cn.push(...e)}(ln);var kn=new Map,Cn=function(e){var t,n,o=e.value,i=e.setValue,a=e.terms,s=z((function(e){var t,n,r;return null!==(t=null===(n=e.preferredOptionsHistory)||void 0===n||null===(r=n.siteType)||void 0===r?void 0:r.filter((function(e){return e.slug})))&&void 0!==t?t:{}})),l=K((function(e){return e.searchParams})),c=wn((0,r.useState)(!1),2),u=c[0],d=c[1],f=(0,r.useRef)(),p=wn((0,r.useState)({}),2),h=p[0],m=p[1],x=wn((0,r.useState)(""),2),y=x[0],v=x[1],g=wn((0,r.useState)([]),2),b=g[0],w=g[1],j=(0,r.useMemo)((function(){return a.filter((function(e){return null==e?void 0:e.featured})).sort((function(e,t){return e.slug<t.slug?-1:e.slug>t.slug?1:0}))}),[a]),k=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(kn.has(e))w(kn.get(e));else{var t=h.search(e);kn.set(e,null!=t&&t.length?t.map((function(e){return e.item})):j),w(kn.get(e))}},C="unknown"===o.slug||!(null!=o&&o.slug);(0,r.useEffect)((function(){m(new bn(a,{keys:["slug","title","keywords"],minMatchCharLength:2,threshold:.3}))}),[a]),(0,r.useEffect)((function(){y.length||w(j)}),[j,y]),(0,r.useEffect)((function(){u&&f.current.focus()}),[u]);var S,O=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,bt.__)("Suggestions","extendify");return e===j&&(t=(0,bt.__)("Examples","extendify")),(0,Nt.jsxs)(Nt.Fragment,{children:[(0,Nt.jsx)("h4",{className:"mt-4 mb-2 text-left uppercase text-xss text-gray-700 font-medium",children:t}),(0,Nt.jsx)("ul",{className:"m-0",children:e.map((function(e){var t,n,r,o=null!==(t=null==e?void 0:e.title)&&void 0!==t?t:e.slug,a=(null==l||null===(n=l.taxonomies)||void 0===n||null===(r=n.siteType)||void 0===r?void 0:r.slug)===e.slug;return(0,Nt.jsx)("li",{className:"m-0 mb-1",children:(0,Nt.jsx)("button",{type:"button",className:kt()("w-full text-left text-sm bg-transparent hover:text-wp-theme-500 m-0 pl-0 cursor-pointer",{"text-gray-800":!a}),onClick:function(){d(!1),i(e)},children:o})},e.slug+(null==e?void 0:e.title))}))})]})};return(0,Nt.jsxs)("div",{className:"w-full bg-extendify-transparent-black rounded",children:[(0,Nt.jsx)("button",{type:"button",onClick:function(){return d((function(e){return!e}))},className:"flex items-center justify-between text-gray-800 button-focus w-full p-4 m-0 cursor-pointer bg-transparent hover:bg-extendify-transparent-black-100 rounded",children:(S=u?(0,bt.__)("What kind of site is this?","extendify"):null!==(t=null!==(n=null==o?void 0:o.title)&&void 0!==n?n:o.slug)&&void 0!==t?t:"Unknown",(0,Nt.jsxs)(Nt.Fragment,{children:[(0,Nt.jsxs)("span",{className:"flex flex-col text-left",children:[(0,Nt.jsx)("span",{className:"text-sm mb-1",children:(0,bt.__)("Site Type","extendify")}),(0,Nt.jsx)("span",{className:"font-light text-xs",children:S})]}),(0,Nt.jsxs)("span",{className:"flex items-center space-x-4",children:[C&&!u&&(0,Nt.jsxs)("svg",{className:"text-wp-alert-red","aria-hidden":"true",focusable:"false",width:"21",height:"21",viewBox:"0 0 21 21",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,Nt.jsx)("path",{className:"stroke-current",d:"M10.9982 4.05371C7.66149 4.05371 4.95654 6.75866 4.95654 10.0954C4.95654 13.4321 7.66149 16.137 10.9982 16.137C14.3349 16.137 17.0399 13.4321 17.0399 10.0954C17.0399 6.75866 14.3349 4.05371 10.9982 4.05371V4.05371Z",strokeWidth:"1.25"}),(0,Nt.jsx)("path",{className:"fill-current",d:"M10.0205 12.8717C10.0205 12.3287 10.4508 11.8881 10.9938 11.8881C11.5368 11.8881 11.9774 12.3287 11.9774 12.8717C11.9774 13.4147 11.5368 13.8451 10.9938 13.8451C10.4508 13.8451 10.0205 13.4147 10.0205 12.8717Z"}),(0,Nt.jsx)("path",{className:"fill-current",d:"M11.6495 10.2591C11.6086 10.6177 11.3524 10.9148 10.9938 10.9148C10.625 10.9148 10.3791 10.6074 10.3483 10.2591L10.0205 7.31855C9.95901 6.81652 10.4918 6.34521 10.9938 6.34521C11.4959 6.34521 12.0286 6.81652 11.9774 7.31855L11.6495 10.2591Z"})]}),(0,Nt.jsx)("svg",{className:kt()("text-gray-700 stroke-current",{"transform rotate-90 -translate-x-1":u}),"aria-hidden":"true",focusable:"false",width:"8",height:"13",viewBox:"0 0 8 13",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,Nt.jsx)("path",{d:"M1.24194 11.5952L6.24194 6.09519L1.24194 0.595215",strokeWidth:"1.5"})})]})]}))}),u&&(0,Nt.jsxs)("div",{className:"p-4 pt-0 overflow-y-auto max-h-96",children:[(0,Nt.jsxs)("div",{className:"relative my-2",children:[(0,Nt.jsx)("label",{htmlFor:"site-type-search",className:"sr-only",children:(0,bt.__)("Search","extendify")}),(0,Nt.jsx)("input",{ref:f,id:"site-type-search",value:null!=y?y:"",onChange:function(e){return t=e.target.value,v(t),void k(t);var t},type:"text",className:"button-focus bg-white border-0 m-0 p-3.5 py-2.5 rounded text-sm w-full",placeholder:(0,bt.__)("Search","extendify")}),(0,Nt.jsx)("svg",{className:"absolute top-2 right-2 hidden lg:block pointer-events-none",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",role:"img","aria-hidden":"true",focusable:"false",children:(0,Nt.jsx)("path",{d:"M13.5 6C10.5 6 8 8.5 8 11.5c0 1.1.3 2.1.9 3l-3.4 3 1 1.1 3.4-2.9c1 .9 2.2 1.4 3.6 1.4 3 0 5.5-2.5 5.5-5.5C19 8.5 16.5 6 13.5 6zm0 9.5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z"})})]}),y.length>1&&b===j&&(0,Nt.jsx)("p",{className:"text-left",children:(0,bt.__)("Nothing found...","extendify")}),b===j&&Object.keys(s).length>0&&(0,Nt.jsx)("div",{className:"mb-8",children:O(s,(0,bt.__)("Recent","extendify"))}),b.length>0&&(0,Nt.jsx)("div",{children:O(b)}),C?null:(0,Nt.jsx)("button",{type:"button",className:"mt-4 w-full text-left text-sm bg-transparent hover:text-wp-theme-500 pl-0 cursor-pointer text-wp-theme-500",onClick:function(){d(!1),i("Unknown")},children:(0,bt.__)("Reset","extendify")})]})]})};const Sn=function(e){let{icon:t,size:n=24,...o}=e;return(0,r.cloneElement)(t,{width:n,height:n,...o})},On=e=>(0,r.createElement)("circle",e),En=e=>(0,r.createElement)("g",e),_n=e=>(0,r.createElement)("path",e),Nn=e=>(0,r.createElement)("rect",e),An=e=>{let{className:t,isPressed:n,...o}=e;const i={...o,className:kt()(t,{"is-pressed":n})||void 0,role:"img","aria-hidden":!0,focusable:!1};return(0,r.createElement)("svg",i)};const Pn=(0,Nt.jsxs)(An,{viewBox:"0 0 14 14",xmlns:"http://www.w3.org/2000/svg",children:[(0,Nt.jsx)(_n,{d:"M7.32457 0.907043C3.98785 0.907043 1.2829 3.61199 1.2829 6.94871C1.2829 10.2855 3.98785 12.9904 7.32457 12.9904C10.6613 12.9904 13.3663 10.2855 13.3663 6.94871C13.3663 3.61199 10.6613 0.907043 7.32457 0.907043V0.907043Z",stroke:"currentColor",strokeWidth:"1.25",fill:"none"}),(0,Nt.jsx)(_n,{d:"M6.34684 9.72526C6.34684 9.18224 6.77716 8.74168 7.32018 8.74168C7.8632 8.74168 8.30377 9.18224 8.30377 9.72526C8.30377 10.2683 7.8632 10.6986 7.32018 10.6986C6.77716 10.6986 6.34684 10.2683 6.34684 9.72526Z",fill:"currentColor"}),(0,Nt.jsx)(_n,{d:"M7.9759 7.11261C7.93492 7.47121 7.67878 7.76834 7.32018 7.76834C6.95134 7.76834 6.70544 7.46097 6.6747 7.11261L6.34684 4.1721C6.28537 3.67006 6.81814 3.19876 7.32018 3.19876C7.82222 3.19876 8.35499 3.67006 8.30377 4.1721L7.9759 7.11261Z",fill:"currentColor"})]});const Tn=(0,Nt.jsx)(An,{fill:"none",viewBox:"0 0 25 24",xmlns:"http://www.w3.org/2000/svg",children:(0,Nt.jsx)(_n,{clipRule:"evenodd",d:"m14.4063 2h4.1856c1.1856 0 1.6147.12701 2.0484.36409.4336.23802.7729.58706 1.0049 1.03111.2319.445.3548.8853.3548 2.10175v4.29475c0 1.2165-.1238 1.6567-.3548 2.1017-.232.445-.5722.7931-1.0049 1.0312-.1939.1064-.3873.1939-.6476.2567v3.4179c0 1.8788-.1912 2.5588-.5481 3.246-.3582.6873-.8836 1.2249-1.552 1.5925-.6697.3676-1.3325.5623-3.1634.5623h-6.46431c-1.83096 0-2.49367-.1962-3.16346-.5623-.6698-.3676-1.19374-.9067-1.552-1.5925s-.54943-1.3672-.54943-3.246v-6.63138c0-1.87871.19117-2.55871.54801-3.24597.35827-.68727.88362-1.22632 1.55342-1.59393.66837-.36615 1.3325-.56231 3.16346-.56231h2.76781c.0519-.55814.1602-.86269.3195-1.16946.232-.445.5721-.79404 1.0058-1.03206.4328-.23708.8628-.36409 2.0483-.36409zm-2.1512 2.73372c0-.79711.6298-1.4433 1.4067-1.4433h5.6737c.777 0 1.4068.64619 1.4068 1.4433v5.82118c0 .7971-.6298 1.4433-1.4068 1.4433h-5.6737c-.7769 0-1.4067-.6462-1.4067-1.4433z",fill:"currentColor",fillRule:"evenodd"})});const In=(0,Nt.jsx)(An,{fill:"none",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,Nt.jsx)(_n,{clipRule:"evenodd",d:"m13.505 4h3.3044c.936 0 1.2747.10161 1.6171.29127.3424.19042.6102.46965.7934.82489.1831.356.2801.70824.2801 1.6814v3.43584c0 .9731-.0977 1.3254-.2801 1.6814-.1832.356-.4517.6344-.7934.8248-.153.0852-.3057.1552-.5112.2054v2.7344c0 1.503-.151 2.047-.4327 2.5968-.2828.5498-.6976.9799-1.2252 1.274-.5288.294-1.052.4498-2.4975.4498h-5.10341c-1.44549 0-1.96869-.1569-2.49747-.4498-.52878-.2941-.94242-.7254-1.22526-1.274-.28284-.5487-.43376-1.0938-.43376-2.5968v-5.3051c0-1.50301.15092-2.04701.43264-2.59682.28284-.54981.6976-.98106 1.22638-1.27514.52767-.29293 1.05198-.44985 2.49747-.44985h2.18511c.041-.44652.1265-.69015.2522-.93557.1832-.356.4517-.63523.7941-.82565.3417-.18966.6812-.29127 1.6171-.29127zm-1.6984 2.18698c0-.63769.4973-1.15464 1.1106-1.15464h4.4793c.6133 0 1.1106.51695 1.1106 1.15464v4.65692c0 .6377-.4973 1.1547-1.1106 1.1547h-4.4793c-.6133 0-1.1106-.517-1.1106-1.1547z",fill:"currentColor",fillRule:"evenodd"})});const Ln=(0,Nt.jsx)(An,{fill:"none",width:"150",height:"30",viewBox:"0 0 2524 492",xmlns:"http://www.w3.org/2000/svg",children:(0,Nt.jsxs)(En,{fill:"currentColor",children:[(0,Nt.jsx)(_n,{d:"m609.404 378.5c-24.334 0-46-5.5-65-16.5-18.667-11.333-33.334-26.667-44-46-10.667-19.667-16-42.167-16-67.5 0-25.667 5.166-48.333 15.5-68 10.333-19.667 24.833-35 43.5-46 18.666-11.333 40-17 64-17 25 0 46.5 5.333 64.5 16 18 10.333 31.833 24.833 41.5 43.5 10 18.667 15 41 15 67v18.5l-212 .5 1-39h150.5c0-17-5.5-30.667-16.5-41-10.667-10.333-25.167-15.5-43.5-15.5-14.334 0-26.5 3-36.5 9-9.667 6-17 15-22 27s-7.5 26.667-7.5 44c0 26.667 5.666 46.833 17 60.5 11.666 13.667 28.833 20.5 51.5 20.5 16.666 0 30.333-3.167 41-9.5 11-6.333 18.166-15.333 21.5-27h56.5c-5.334 27-18.667 48.167-40 63.5-21 15.333-47.667 23-80 23z"}),(0,Nt.jsx)("path",{d:"m797.529 372h-69.5l85-121-85-126h71l54.5 84 52.5-84h68.5l-84 125.5 81.5 121.5h-70l-53-81.5z"}),(0,Nt.jsx)("path",{d:"m994.142 125h155.998v51h-155.998zm108.498 247h-61v-324h61z"}),(0,Nt.jsx)("path",{d:"m1278.62 378.5c-24.33 0-46-5.5-65-16.5-18.66-11.333-33.33-26.667-44-46-10.66-19.667-16-42.167-16-67.5 0-25.667 5.17-48.333 15.5-68 10.34-19.667 24.84-35 43.5-46 18.67-11.333 40-17 64-17 25 0 46.5 5.333 64.5 16 18 10.333 31.84 24.833 41.5 43.5 10 18.667 15 41 15 67v18.5l-212 .5 1-39h150.5c0-17-5.5-30.667-16.5-41-10.66-10.333-25.16-15.5-43.5-15.5-14.33 0-26.5 3-36.5 9-9.66 6-17 15-22 27s-7.5 26.667-7.5 44c0 26.667 5.67 46.833 17 60.5 11.67 13.667 28.84 20.5 51.5 20.5 16.67 0 30.34-3.167 41-9.5 11-6.333 18.17-15.333 21.5-27h56.5c-5.33 27-18.66 48.167-40 63.5-21 15.333-47.66 23-80 23z"}),(0,Nt.jsx)("path",{d:"m1484.44 372h-61v-247h56.5l5 32c7.67-12.333 18.5-22 32.5-29 14.34-7 29.84-10.5 46.5-10.5 31 0 54.34 9.167 70 27.5 16 18.333 24 43.333 24 75v152h-61v-137.5c0-20.667-4.66-36-14-46-9.33-10.333-22-15.5-38-15.5-19 0-33.83 6-44.5 18-10.66 12-16 28-16 48z"}),(0,Nt.jsx)("path",{d:"m1798.38 378.5c-24 0-44.67-5.333-62-16-17-11-30.34-26.167-40-45.5-9.34-19.333-14-41.833-14-67.5s4.66-48.333 14-68c9.66-20 23.5-35.667 41.5-47s39.33-17 64-17c17.33 0 33.16 3.5 47.5 10.5 14.33 6.667 25.33 16.167 33 28.5v-156.5h60.5v372h-56l-4-38.5c-7.34 14-18.67 25-34 33-15 8-31.84 12-50.5 12zm13.5-56c14.33 0 26.66-3 37-9 10.33-6.333 18.33-15.167 24-26.5 6-11.667 9-24.833 9-39.5 0-15-3-28-9-39-5.67-11.333-13.67-20.167-24-26.5-10.34-6.667-22.67-10-37-10-14 0-26.17 3.333-36.5 10-10.34 6.333-18.34 15.167-24 26.5-5.34 11.333-8 24.333-8 39s2.66 27.667 8 39c5.66 11.333 13.66 20.167 24 26.5 10.33 6.333 22.5 9.5 36.5 9.5z"}),(0,Nt.jsx)("path",{d:"m1996.45 372v-247h61v247zm30-296.5c-10.34 0-19.17-3.5-26.5-10.5-7-7.3333-10.5-16.1667-10.5-26.5s3.5-19 10.5-26c7.33-6.99999 16.16-10.49998 26.5-10.49998 10.33 0 19 3.49999 26 10.49998 7.33 7 11 15.6667 11 26s-3.67 19.1667-11 26.5c-7 7-15.67 10.5-26 10.5z"}),(0,Nt.jsx)("path",{d:"m2085.97 125h155v51h-155zm155.5-122.5v52c-3.33 0-6.83 0-10.5 0-3.33 0-6.83 0-10.5 0-15.33 0-25.67 3.6667-31 11-5 7.3333-7.5 17.1667-7.5 29.5v277h-60.5v-277c0-22.6667 3.67-40.8333 11-54.5 7.33-14 17.67-24.1667 31-30.5 13.33-6.66666 28.83-10 46.5-10 5 0 10.17.166671 15.5.5 5.67.333329 11 .99999 16 2z"}),(0,Nt.jsx)("path",{d:"m2330.4 125 80.5 228-33 62.5-112-290.5zm-58 361.5v-50.5h36.5c8 0 15-1 21-3 6-1.667 11.34-5 16-10 5-5 9.17-12.333 12.5-22l102.5-276h63l-121 302c-9 22.667-20.33 39.167-34 49.5-13.66 10.333-30.66 15.5-51 15.5-8.66 0-16.83-.5-24.5-1.5-7.33-.667-14.33-2-21-4z"}),(0,Nt.jsx)("path",{clipRule:"evenodd",d:"m226.926 25.1299h83.271c23.586 0 32.123 2.4639 40.751 7.0633 8.628 4.6176 15.378 11.389 19.993 20.0037 4.615 8.6329 7.059 17.1746 7.059 40.7738v83.3183c0 23.599-2.463 32.141-7.059 40.774-4.615 8.633-11.383 15.386-19.993 20.003-3.857 2.065-7.704 3.764-12.884 4.981v66.308c0 36.447-3.803 49.639-10.902 62.972-7.128 13.333-17.579 23.763-30.877 30.894-13.325 7.132-26.51 10.909-62.936 10.909h-128.605c-36.4268 0-49.6113-3.805-62.9367-10.909-13.3254-7.131-23.749-17.589-30.8765-30.894-7.12757-13.304-10.9308-26.525-10.9308-62.972v-128.649c0-36.447 3.80323-49.639 10.9026-62.972 7.1275-13.333 17.5793-23.7909 30.9047-30.9224 13.2972-7.1034 26.5099-10.9088 62.9367-10.9088h55.064c1.033-10.8281 3.188-16.7362 6.357-22.6877 4.615-8.6329 11.382-15.4043 20.01-20.0219 8.61-4.5994 17.165-7.0633 40.751-7.0633zm-42.798 53.0342c0-15.464 12.53-28 27.986-28h112.877c15.457 0 27.987 12.536 27.987 28v112.9319c0 15.464-12.53 28-27.987 28h-112.877c-15.456 0-27.986-12.536-27.986-28z",fillRule:"evenodd"})]})});const Mn=(0,Nt.jsx)(An,{fill:"none",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg",children:(0,Nt.jsx)("path",{d:"m11.9893 2.59931c-.1822.00285-.3558.07789-.4827.20864s-.1967.30653-.1941.48871v1.375c-.0013.0911.0156.18155.0495.26609.034.08454.0844.16149.1484.22637s.1402.11639.2242.15156c.0841.03516.1743.05327.2654.05327s.1813-.01811.2654-.05327c.084-.03517.1603-.08668.2242-.15156.064-.06488.1144-.14183.1484-.22637s.0508-.17499.0495-.26609v-1.375c.0013-.09202-.0158-.18337-.0505-.26863-.0346-.08526-.086-.1627-.1511-.22773s-.1426-.11633-.2279-.15085c-.0853-.03453-.1767-.05158-.2687-.05014zm-5.72562.46013c-.1251.00033-.24775.0348-.35471.09968-.10697.06488-.19421.15771-.25232.2685-.05812.1108-.0849.23534-.07747.36023.00744.12488.0488.24537.11964.34849l.91667 1.375c.04939.07667.11354.14274.18872.19437.07517.05164.15987.0878.24916.10639.08928.01858.18137.01922.27091.00187.08953-.01734.17472-.05233.2506-.10292.07589-.05059.14095-.11577.1914-.19174.05045-.07598.08528-.16123.10246-.2508.01719-.08956.01638-.18165-.00237-.2709s-.05507-.17388-.10684-.24897l-.91666-1.375c-.06252-.09667-.14831-.1761-.2495-.231-.1012-.0549-.21456-.08351-.32969-.0832zm11.45212 0c-.1117.00307-.2209.03329-.3182.08804-.0973.05474-.1798.13237-.2404.22616l-.9167 1.375c-.0518.07509-.0881.15972-.1068.24897-.0188.08925-.0196.18134-.0024.2709.0172.08957.052.17482.1024.2508.0505.07597.1156.14115.1914.19174.0759.05059.1611.08558.2506.10292.0896.01735.1817.01671.271-.00187.0892-.01859.1739-.05475.2491-.10639.0752-.05163.1393-.1177.1887-.19437l.9167-1.375c.0719-.10456.1135-.22698.1201-.3537s-.022-.25281-.0826-.36429c-.0606-.11149-.1508-.20403-.2608-.26738-.11-.06334-.2353-.09502-.3621-.09153zm-9.61162 3.67472c-.09573-.00001-.1904.01998-.27795.05867-.08756.03869-.16607.09524-.23052.16602l-4.58333 5.04165c-.11999.1319-.18407.3052-.17873.4834.00535.1782.0797.3473.20738.4718l8.47917 8.25c.1284.1251.3006.1951.4798.1951.1793 0 .3514-.07.4798-.1951l8.4792-8.25c.1277-.1245.202-.2936.2074-.4718.0053-.1782-.0588-.3515-.1788-.4834l-4.5833-5.04165c-.0644-.07078-.1429-.12733-.2305-.16602s-.1822-.05868-.278-.05867h-3.877zm.30436 1.375h2.21646l-2.61213 3.48314c-.04258.0557-.07639.1176-.10026.1835h-2.83773zm4.96646 0h2.2165l3.3336 3.66664h-2.8368c-.0241-.066-.0582-.1278-.1011-.1835zm-1.375.45833 2.4063 3.20831h-4.81254zm-6.78637 4.58331h2.70077c.00665.0188.01412.0374.02238.0555l2.11442 4.6505zm4.20826 0h5.15621l-2.5781 5.6719zm6.66371 0h2.7008l-4.8376 4.706 2.1144-4.6505c.0083-.0181.0158-.0367.0224-.0555z",fill:"#000"})});const Rn=(0,Nt.jsxs)(An,{viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,Nt.jsx)(_n,{d:"M7.32457 0.907043C3.98785 0.907043 1.2829 3.61199 1.2829 6.94871C1.2829 10.2855 3.98785 12.9904 7.32457 12.9904C10.6613 12.9904 13.3663 10.2855 13.3663 6.94871C13.3663 3.61199 10.6613 0.907043 7.32457 0.907043V0.907043Z",stroke:"white",strokeWidth:"1.25"}),(0,Nt.jsx)(_n,{d:"M7.32458 10.0998L4.82458 7.59977M7.32458 10.0998V3.79764V10.0998ZM7.32458 10.0998L9.82458 7.59977L7.32458 10.0998Z",stroke:"white",strokeWidth:"1.25"})]});const Dn=(0,Nt.jsxs)(An,{viewBox:"0 0 25 25",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,Nt.jsx)("path",{d:"M7.93298 20.2773L17.933 20.2773C18.1982 20.2773 18.4526 20.172 18.6401 19.9845C18.8276 19.7969 18.933 19.5426 18.933 19.2773C18.933 19.0121 18.8276 18.7578 18.6401 18.5702C18.4526 18.3827 18.1982 18.2773 17.933 18.2773L7.93298 18.2773C7.66777 18.2773 7.41341 18.3827 7.22588 18.5702C7.03834 18.7578 6.93298 19.0121 6.93298 19.2773C6.93298 19.5426 7.03834 19.7969 7.22588 19.9845C7.41341 20.172 7.66777 20.2773 7.93298 20.2773Z",fill:"white"}),(0,Nt.jsx)("path",{d:"M12.933 4.27734C12.6678 4.27734 12.4134 4.3827 12.2259 4.57024C12.0383 4.75777 11.933 5.01213 11.933 5.27734L11.933 12.8673L9.64298 10.5773C9.55333 10.4727 9.44301 10.3876 9.31895 10.3276C9.19488 10.2676 9.05975 10.2339 8.92203 10.2285C8.78431 10.2232 8.64698 10.2464 8.51865 10.2967C8.39033 10.347 8.27378 10.4232 8.17632 10.5207C8.07887 10.6181 8.00261 10.7347 7.95234 10.863C7.90206 10.9913 7.87886 11.1287 7.88418 11.2664C7.8895 11.4041 7.92323 11.5392 7.98325 11.6633C8.04327 11.7874 8.12829 11.8977 8.23297 11.9873L12.233 15.9873C12.3259 16.0811 12.4365 16.1555 12.5584 16.2062C12.6803 16.257 12.811 16.2831 12.943 16.2831C13.075 16.2831 13.2057 16.257 13.3276 16.2062C13.4494 16.1555 13.56 16.0811 13.653 15.9873L17.653 11.9873C17.8168 11.796 17.9024 11.55 17.8927 11.2983C17.883 11.0466 17.7786 10.8079 17.6005 10.6298C17.4224 10.4517 17.1837 10.3474 16.932 10.3376C16.6804 10.3279 16.4343 10.4135 16.243 10.5773L13.933 12.8673L13.933 5.27734C13.933 5.01213 13.8276 4.75777 13.6401 4.57024C13.4525 4.3827 13.1982 4.27734 12.933 4.27734Z",fill:"white"})]});const Fn=(0,Nt.jsxs)(An,{fill:"none",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:[(0,Nt.jsx)(_n,{d:"m11.2721 16.9866.6041 2.2795.6042-2.2795.6213-2.3445c.0001-.0002.0001-.0004.0002-.0006.2404-.9015.8073-1.5543 1.4638-1.8165.0005-.0002.0009-.0004.0013-.0006l1.9237-.7555 1.4811-.5818-1.4811-.5817-1.9264-.7566c0-.0001-.0001-.0001-.0001-.0001-.0001 0-.0001 0-.0001 0-.654-.25727-1.2213-.90816-1.4621-1.81563-.0001-.00006-.0001-.00011-.0001-.00017l-.6215-2.34519-.6042-2.27947-.6041 2.27947-.6216 2.34519v.00017c-.2409.90747-.80819 1.55836-1.46216 1.81563-.00002 0-.00003 0-.00005 0-.00006 0-.00011 0-.00017.0001l-1.92637.7566-1.48108.5817 1.48108.5818 1.92637.7566c.00007 0 .00015.0001.00022.0001.65397.2572 1.22126.9082 1.46216 1.8156v.0002z",stroke:"currentColor",strokeWidth:"1.25",fill:"none"}),(0,Nt.jsxs)(En,{fill:"currentColor",children:[(0,Nt.jsx)(_n,{d:"m18.1034 18.3982-.2787.8625-.2787-.8625c-.1314-.4077-.4511-.7275-.8589-.8589l-.8624-.2786.8624-.2787c.4078-.1314.7275-.4512.8589-.8589l.2787-.8624.2787.8624c.1314.4077.4511.7275.8589.8589l.8624.2787-.8624.2786c-.4078.1314-.7269.4512-.8589.8589z"}),(0,Nt.jsx)(_n,{d:"m6.33141 6.97291-.27868.86242-.27867-.86242c-.13142-.40775-.45116-.72749-.8589-.85891l-.86243-.27867.86243-.27868c.40774-.13141.72748-.45115.8589-.8589l.27867-.86242.27868.86242c.13142.40775.45116.72749.8589.8589l.86242.27868-.86242.27867c-.40774.13142-.7269.45116-.8589.85891z"})]})]});const Bn=(0,Nt.jsx)(An,{fill:"none",height:"25",viewBox:"0 0 25 25",width:"25",xmlns:"http://www.w3.org/2000/svg",children:(0,Nt.jsx)(_n,{d:"m16.2382 9.17969.7499.00645.0066-.75988-.7599.00344zm-5.5442.77506 5.5475-.02507-.0067-1.49998-5.5476.02506zm4.7942-.78152-.0476 5.52507 1.5.0129.0475-5.52506zm.2196-.52387-7.68099 7.68104 1.06066 1.0606 7.68103-7.68098z",fill:"currentColor"})});const zn=(0,Nt.jsx)(An,{fill:"none",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg",children:(0,Nt.jsxs)(En,{stroke:"currentColor",strokeWidth:"1.5",children:[(0,Nt.jsx)(_n,{d:"m6 4.75h12c.6904 0 1.25.55964 1.25 1.25v12c0 .6904-.5596 1.25-1.25 1.25h-12c-.69036 0-1.25-.5596-1.25-1.25v-12c0-.69036.55964-1.25 1.25-1.25z"}),(0,Nt.jsx)(_n,{d:"m9.25 19v-14"})]})});const Un=(0,Nt.jsxs)(An,{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,Nt.jsx)(_n,{fillRule:"evenodd",clipRule:"evenodd",d:"M7.49271 18.0092C6.97815 17.1176 7.28413 15.9755 8.17569 15.4609C9.06724 14.946 10.2094 15.252 10.7243 16.1435C11.2389 17.0355 10.9329 18.1772 10.0413 18.6922C9.14978 19.2071 8.00764 18.9011 7.49271 18.0092V18.0092Z",fill:"currentColor"}),(0,Nt.jsx)(_n,{fillRule:"evenodd",clipRule:"evenodd",d:"M16.5073 6.12747C17.0218 7.01903 16.7158 8.16117 15.8243 8.67573C14.9327 9.19066 13.7906 8.88467 13.2757 7.99312C12.7611 7.10119 13.0671 5.95942 13.9586 5.44449C14.8502 4.92956 15.9923 5.23555 16.5073 6.12747V6.12747Z",fill:"currentColor"}),(0,Nt.jsx)(_n,{fillRule:"evenodd",clipRule:"evenodd",d:"M4.60135 11.1355C5.11628 10.2439 6.25805 9.93793 7.14998 10.4525C8.04153 10.9674 8.34752 12.1096 7.83296 13.0011C7.31803 13.8927 6.17588 14.1987 5.28433 13.6841C4.39278 13.1692 4.08679 12.0274 4.60135 11.1355V11.1355Z",fill:"currentColor"}),(0,Nt.jsx)(_n,{fillRule:"evenodd",clipRule:"evenodd",d:"M19.3986 13.0011C18.8837 13.8927 17.7419 14.1987 16.85 13.6841C15.9584 13.1692 15.6525 12.027 16.167 11.1355C16.682 10.2439 17.8241 9.93793 18.7157 10.4525C19.6072 10.9674 19.9132 12.1092 19.3986 13.0011V13.0011Z",fill:"currentColor"}),(0,Nt.jsx)(_n,{d:"M9.10857 8.92594C10.1389 8.92594 10.9742 8.09066 10.9742 7.06029C10.9742 6.02992 10.1389 5.19464 9.10857 5.19464C8.0782 5.19464 7.24292 6.02992 7.24292 7.06029C7.24292 8.09066 8.0782 8.92594 9.10857 8.92594Z",fill:"currentColor"}),(0,Nt.jsx)(_n,{d:"M14.8913 18.942C15.9217 18.942 16.7569 18.1067 16.7569 17.0763C16.7569 16.046 15.9217 15.2107 14.8913 15.2107C13.8609 15.2107 13.0256 16.046 13.0256 17.0763C13.0256 18.1067 13.8609 18.942 14.8913 18.942Z",fill:"currentColor"}),(0,Nt.jsx)(_n,{fillRule:"evenodd",clipRule:"evenodd",d:"M10.3841 13.0011C9.86951 12.1096 10.1755 10.9674 11.067 10.4525C11.9586 9.93793 13.1007 10.2439 13.6157 11.1355C14.1302 12.0274 13.8242 13.1692 12.9327 13.6841C12.0411 14.1987 10.899 13.8927 10.3841 13.0011V13.0011Z",fill:"currentColor"})]});const Wn=(0,Nt.jsxs)(An,{fill:"none",viewBox:"0 0 151 148",width:"151",xmlns:"http://www.w3.org/2000/svg",children:[(0,Nt.jsx)(On,{cx:"65.6441",cy:"66.6114",fill:"#0b4a43",r:"65.3897"}),(0,Nt.jsxs)(En,{fill:"#cbc3f5",stroke:"#0b4a43",children:[(0,Nt.jsx)(_n,{d:"m61.73 11.3928 3.0825 8.3304.1197.3234.3234.1197 8.3304 3.0825-8.3304 3.0825-.3234.1197-.1197.3234-3.0825 8.3304-3.0825-8.3304-.1197-.3234-.3234-.1197-8.3304-3.0825 8.3304-3.0825.3234-.1197.1197-.3234z",strokeWidth:"1.5"}),(0,Nt.jsx)(_n,{d:"m84.3065 31.2718c0 5.9939-12.4614 22.323-18.6978 22.323h-17.8958v56.1522c3.5249.9 11.6535 0 17.8958 0h6.2364c11.2074 3.33 36.0089 7.991 45.5529 0l-9.294-62.1623c-2.267-1.7171-5.949-6.6968-2.55-12.8786 3.4-6.1817 2.55-18.0406 0-24.5756-1.871-4.79616-8.3289-8.90882-14.4482-8.90882s-7.0825 4.00668-6.7993 6.01003z",strokeWidth:"1.75"}),(0,Nt.jsx)(Nn,{height:"45.5077",rx:"9.13723",strokeWidth:"1.75",transform:"matrix(0 1 -1 0 191.5074 -96.0026)",width:"18.2745",x:"143.755",y:"47.7524"}),(0,Nt.jsx)(Nn,{height:"42.3038",rx:"8.73674",strokeWidth:"1.75",transform:"matrix(0 1 -1 0 241.97 -50.348)",width:"17.4735",x:"146.159",y:"95.811"}),(0,Nt.jsx)(Nn,{height:"55.9204",rx:"8.73674",strokeWidth:"1.75",transform:"matrix(0 1 -1 0 213.1347 -85.5913)",width:"17.4735",x:"149.363",y:"63.7717"}),(0,Nt.jsx)(Nn,{height:"51.1145",rx:"8.73674",strokeWidth:"1.75",transform:"matrix(0 1 -1 0 229.1545 -69.5715)",width:"17.4735",x:"149.363",y:"79.7915"}),(0,Nt.jsx)(_n,{d:"m75.7483 105.349c.9858-25.6313-19.2235-42.0514-32.8401-44.0538v12.0146c8.5438 1.068 24.8303 9.7642 24.8303 36.0442 0 23.228 19.4905 33.374 29.6362 33.641v-10.413s-22.6122-1.602-21.6264-27.233z",strokeWidth:"1.75"}),(0,Nt.jsx)(_n,{d:"m68.5388 109.354c.9858-25.6312-19.2234-42.0513-32.8401-44.0537v12.0147c8.5438 1.0679 24.8303 9.7641 24.8303 36.044 0 23.228 19.4905 33.374 29.6362 33.641v-10.413s-22.6122-1.602-21.6264-27.233z",strokeWidth:"1.75"})]})]});const qn=(0,Nt.jsxs)(An,{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,Nt.jsx)(On,{cx:"12",cy:"12",r:"7.25",stroke:"currentColor",strokeWidth:"1.5"}),(0,Nt.jsx)(On,{cx:"12",cy:"12",r:"4.25",stroke:"currentColor",strokeWidth:"1.5"}),(0,Nt.jsx)(On,{cx:"11.9999",cy:"12.2",r:"6",transform:"rotate(-45 11.9999 12.2)",stroke:"currentColor",strokeWidth:"3",strokeDasharray:"1.5 4"})]});const $n=(0,Nt.jsx)(An,{fill:"none",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg",children:(0,Nt.jsx)(_n,{d:"m11.7758 3.45425c.0917-.18582.3567-.18581.4484 0l2.3627 4.78731c.0364.07379.1068.12493.1882.13676l5.2831.76769c.2051.02979.287.28178.1386.42642l-3.8229 3.72637c-.0589.0575-.0858.1402-.0719.2213l.9024 5.2618c.0351.2042-.1793.36-.3627.2635l-4.7254-2.4842c-.0728-.0383-.1598-.0383-.2326 0l-4.7254 2.4842c-.18341.0965-.39776-.0593-.36274-.2635l.90247-5.2618c.01391-.0811-.01298-.1638-.0719-.2213l-3.8229-3.72637c-.14838-.14464-.0665-.39663.13855-.42642l5.28312-.76769c.08143-.01183.15182-.06297.18823-.13676z",fill:"currentColor"})});const Hn=(0,Nt.jsx)(An,{fill:"none",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg",children:(0,Nt.jsx)(_n,{clipRule:"evenodd",d:"m13 4c4.9545 0 9 4.04545 9 9 0 4.9545-4.0455 9-9 9-4.95455 0-9-4.0455-9-9 0-4.95455 4.04545-9 9-9zm5.0909 13.4545c-1.9545 3.8637-8.22726 3.8637-10.22726 0-.04546-.1818-.04546-.3636 0-.5454 2-3.8636 8.27276-3.8636 10.22726 0 .0909.1818.0909.3636 0 .5454zm-5.0909-8.90905c-1.2727 0-2.3182 1.04546-2.3182 2.31815 0 1.2728 1.0455 2.3182 2.3182 2.3182s2.3182-1.0454 2.3182-2.3182c0-1.27269-1.0455-2.31815-2.3182-2.31815z",fill:"currentColor",fillRule:"evenodd"})});function Vn(e){const{body:t}=document.implementation.createHTMLDocument("");t.innerHTML=e;const n=t.getElementsByTagName("*");let r=n.length;for(;r--;){const e=n[r];if("SCRIPT"===e.tagName)(o=e).parentNode,o.parentNode.removeChild(o);else{let t=e.attributes.length;for(;t--;){const{name:n}=e.attributes[t];n.startsWith("on")&&e.removeAttribute(n)}}}var o;return t.innerHTML}var Gn=(0,r.memo)((function(){var e=z((function(e){return e.remainingImports})),t=z((function(e){return e.allowedImports})),n=e(),o=n>0?"has-imports":"no-imports",i="has-imports"===o?"bg-extendify-main hover:bg-extendify-main-dark":"bg-extendify-alert",a="has-imports"===o?Rn:Pn,s=(0,r.useRef)();return(0,r.useEffect)((function(){if(t<1||!t){_().then((function(e){e=/^[1-9]\d*$/.test(e)?e:5,z.setState({allowedImports:e})})).catch((function(){return z.setState({allowedImports:5})}))}}),[t]),t?(0,Nt.jsxs)("div",{tabIndex:"0",className:"group relative",children:[(0,Nt.jsxs)("a",{target:"_blank",ref:s,rel:"noreferrer",className:kt()(i,"hidden sm:flex w-full no-underline button-focus text-sm justify-between py-3 px-4 text-white rounded"),href:"https://www.extendify.com/pricing/?utm_source=".concat(encodeURIComponent(window.extendifyData.sdk_partner),"&utm_medium=library&utm_campaign=import-counter&utm_content=get-more&utm_term=").concat(o),children:[(0,Nt.jsxs)("span",{className:"flex items-center space-x-2 no-underline text-xs",children:[(0,Nt.jsx)(Sn,{icon:a,size:14}),(0,Nt.jsx)("span",{children:(0,bt.sprintf)((0,bt._n)("%s Import","%s Imports",n,"extendify"),n)})]}),(0,Nt.jsxs)("span",{className:"text-white text-sm no-underline font-medium outline-none flex items-center",children:[(0,bt.__)("Get more","extendify"),(0,Nt.jsx)(Sn,{icon:Bn,size:24,className:"-mr-1.5"})]})]}),(0,Nt.jsx)("div",{className:"invisible opacity-0 -translate-y-full absolute duration-300 delay-200 ease-in-out group-hover:-top-2.5 group-hover:opacity-100 group-hover:visible group-focus:-top-2.5 group-focus:opacity-100 group-focus:visible top-0 transform transition-all w-full extendify-bottom-arrow shadow-md",tabIndex:"-1",children:(0,Nt.jsx)("a",{href:"https://www.extendify.com/pricing/?utm_source=".concat(encodeURIComponent(window.extendifyData.sdk_partner),"&utm_medium=library&utm_campaign=import-counter-tooltip&utm_content=get-50-off&utm_term=").concat(o),className:"block bg-gray-900 text-white p-4 no-underline rounded bg-cover",style:{backgroundImage:"url(".concat(window.extendifyData.asset_path,"/logo-tips.png)")},children:(0,Nt.jsx)("span",{dangerouslySetInnerHTML:{__html:Vn((0,bt.sprintf)((0,bt.__)("%1$sGet %2$s off%3$s Extendify Pro when you upgrade today!","extendify"),"<strong>","50%","</strong>"))}})})})]}):null}));var Jn=(0,r.memo)((function(){var e,t,n,r,o,i=U((function(e){return e.taxonomies})),a=K((function(e){return e.searchParams})),s=z((function(e){return e.updatePreferredSiteType})),l=K((function(e){return e.updateTaxonomies})),c=z((function(e){return e.apiKey})),u="pattern"===a.type?"patternType":"layoutType",d=!(null!=a&&null!==(e=a.taxonomies[u])&&void 0!==e&&null!==(t=e.slug)&&void 0!==t&&t.length);return(0,Nt.jsxs)(Nt.Fragment,{children:[(0,Nt.jsx)("div",{className:"hidden sm:flex px-5 -ml-1.5 text-extendify-black",children:(0,Nt.jsx)(Sn,{icon:In,size:40})}),(0,Nt.jsx)("div",{className:"px-5",children:(0,Nt.jsxs)("button",{onClick:function(){return l((n={slug:"",title:"Featured"},(t=u)in(e={})?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e));var e,t,n},className:kt()("text-left text-sm cursor-pointer w-full flex items-center px-0 py-2 m-0 leading-none bg-transparent hover:text-wp-theme-500 transition duration-200 button-focus space-x-1",{"text-wp-theme-500":d}),children:[(0,Nt.jsx)(Sn,{icon:Fn,size:24}),(0,Nt.jsx)("span",{className:"text-sm",children:(0,bt.__)("Featured","extendify")})]})}),(0,Nt.jsx)("div",{className:"sm:mb-8 mx-6 sm:mx-0 sm:mt-0 pt-0.5 px-5",children:Object.keys(null!==(n=null==i?void 0:i.siteType)&&void 0!==n?n:{}).length>0&&(0,Nt.jsx)(Cn,{value:null!==(r=null==a||null===(o=a.taxonomies)||void 0===o?void 0:o.siteType)&&void 0!==r?r:"",setValue:function(e){s(e),l({siteType:e})},terms:i.siteType})}),(0,Nt.jsx)("div",{className:"mt-px flex-grow hidden overflow-y-auto pb-32 pt-px sm:block",children:(0,Nt.jsx)(wt.Panel,{className:"bg-transparent",children:(0,Nt.jsx)(At,{taxType:u,taxonomies:i[u]})})}),!c.length&&(0,Nt.jsx)("div",{className:"px-5",children:(0,Nt.jsx)(Gn,{})})]})}));function Kn(e){var t=e.children;return(0,Nt.jsxs)(Nt.Fragment,{children:[(0,Nt.jsx)("aside",{className:"flex-shrink-0 py-0 sm:py-5 relative border-r border-extendify-transparent-black-100 bg-extendify-transparent-white backdrop-filter backdrop-blur-xl backdrop-saturate-200",children:(0,Nt.jsx)("div",{className:"flex flex-col h-full sm:w-64 py-6 sm:py-0 sm:space-y-6",children:t[0]})}),(0,Nt.jsx)("main",{id:"extendify-templates",className:"bg-gray-50 w-full pt-6 sm:pt-0 h-full overflow-hidden",children:t[1]})]})}const Zn=(0,r.createElement)(An,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(_n,{d:"M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"}));var Xn=function(e){var t=e.className,n=K((function(e){return e.updateType})),r=g((function(e){var t;return null!==(t=null==e?void 0:e.currentType)&&void 0!==t?t:"pattern"}));return(0,Nt.jsxs)("div",{className:t,children:[(0,Nt.jsx)("h4",{className:"sr-only",children:(0,bt.__)("Type select","extendify")}),(0,Nt.jsx)("button",{type:"button",className:kt()({"cursor-pointer text-xs leading-none m-0 py-2.5 px-4 min-w-sm border rounded-tl-sm rounded-bl-sm border-black button-focus":!0,"bg-gray-900 text-white":"pattern"===r,"bg-transparent text-black":"pattern"!==r}),onClick:function(){return n("pattern")},children:(0,Nt.jsx)("span",{className:"",children:(0,bt.__)("Patterns","extendify")})}),(0,Nt.jsx)("button",{type:"button",className:kt()({"cursor-pointer text-xs leading-none m-0 py-2.5 px-4 min-w-sm items-center border rounded-tr-sm rounded-br-sm border-black outline-none -ml-px button-focus":!0,"bg-gray-900 text-white":"template"===r,"bg-transparent text-black":"template"!==r}),onClick:function(){return n("template")},children:(0,Nt.jsx)("span",{className:"",children:(0,bt.__)("Page Layouts","extendify")})})]})};function Yn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Qn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Qn(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function er(){var e=(0,r.useRef)(!1);return(0,r.useEffect)((function(){return e.current=!0,function(){return e.current=!1}})),e}var tr=function(){var e=Yn((0,r.useState)(!1),2),t=e[0],n=e[1],o=function(){n(window.location.search.indexOf("DEVMODE")>-1)};return(0,r.useEffect)((function(){return n(window.location.search.indexOf("DEVMODE")>-1),window.addEventListener("popstate",o),function(){window.removeEventListener("popstate",o)}}),[]),t};function nr(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function rr(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return or(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return or(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function or(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ir(e){var t=e.actionCallback,n=e.initialFocus,o=z((function(e){return e.apiKey.length})),i=rr((0,r.useState)(""),2),a=i[0],s=i[1],l=rr((0,r.useState)(""),2),c=l[0],u=l[1],d=rr((0,r.useState)(""),2),f=d[0],p=d[1],h=rr((0,r.useState)("info"),2),m=h[0],x=h[1],y=rr((0,r.useState)(!1),2),v=y[0],g=y[1],b=rr((0,r.useState)(!1),2),j=b[0],k=b[1],C=(0,r.useRef)(null),S=(0,r.useRef)(null),E=tr();(0,r.useEffect)((function(){return s(z.getState().email),function(){return x("info")}}),[]),(0,r.useEffect)((function(){var e;j&&(null==C||null===(e=C.current)||void 0===e||e.focus())}),[j]);var _=function(){var e,t=(e=w().mark((function e(t){var n,r,o,i,s;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.preventDefault(),g(!0),p(""),e.next=5,O(a,c);case 5:if(n=e.sent,r=n.token,o=n.error,i=n.exception,void 0===(s=n.message)){e.next=15;break}return x("error"),g(!1),p(s.length?s:"Error: Are you interacting with the wrong server?"),e.abrupt("return");case 15:if(!o&&!i){e.next=20;break}return x("error"),g(!1),p(o.length?o:i),e.abrupt("return");case 20:if(r&&"string"==typeof r){e.next=25;break}return x("error"),g(!1),p((0,bt.__)("Something went wrong","extendify")),e.abrupt("return");case 25:x("success"),p("Success!"),k(!0),g(!1),z.setState({email:a,apiKey:r});case 30:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){nr(i,r,o,a,s,"next",e)}function s(e){nr(i,r,o,a,s,"throw",e)}a(void 0)}))});return function(e){return t.apply(this,arguments)}}();return j?(0,Nt.jsxs)("section",{className:"w-80 space-y-8 text-center pt-2 pb-4",children:[(0,Nt.jsx)(Sn,{icon:Wn,size:148}),(0,Nt.jsx)("p",{className:"text-lg text-extendify-black text-center leading-extra-tight font-semibold",children:(0,bt.__)("You've signed in to Extendify","extendify")}),(0,Nt.jsx)(wt.Button,{ref:C,className:"px-4 p-2 cursor-pointer text-center rounded bg-extendify-main text-white",onClick:t,children:(0,bt.__)("View patterns","extendify")})]}):o?(0,Nt.jsxs)("section",{className:"space-y-8 w-full pb-2",children:[(0,Nt.jsx)("p",{className:"text-base text-extendify-black leading-extra-tight",children:(0,bt.__)("Account","extendify")}),(0,Nt.jsxs)("div",{className:"flex justify-between items-center",children:[(0,Nt.jsxs)("div",{className:"flex items-center space-x-2 -ml-2",children:[(0,Nt.jsx)(Sn,{icon:Hn,size:48}),(0,Nt.jsx)("p",{className:"text-extendify-black",children:null!=a&&a.length?a:(0,bt.__)("Logged In","extendify")})]}),E&&(0,Nt.jsx)(wt.Button,{className:"px-4 py-3 cursor-pointer text-center rounded bg-extendify-main hover:bg-extendify-main-dark text-white",onClick:function(){u(""),z.setState({apiKey:""}),setTimeout((function(){var e;null==S||null===(e=S.current)||void 0===e||e.focus()}),0)},children:(0,bt.__)("Sign out","extendify")})]})]}):(0,Nt.jsxs)("section",{className:"w-80 text-left space-y-8 pb-6",children:[(0,Nt.jsxs)("div",{children:[(0,Nt.jsx)("p",{className:"text-lg text-extendify-black text-center leading-extra-tight font-semibold",children:(0,bt.__)("Sign in to Extendify","extendify")}),(0,Nt.jsxs)("p",{className:"text-sm text-extendify-gray text-center space-x-1 leading-extra-tight",children:[(0,Nt.jsx)("span",{children:(0,bt.__)("Don't have an account?","extendify")}),(0,Nt.jsx)("a",{href:"https://extendify.com/pricing?utm_source=".concat(window.extendifyData.sdk_partner,"&utm_medium=library&utm_campaign=sign-in-form&utm_content=sign-up"),target:"_blank",className:"underline hover:no-underline text-extendify-gray",rel:"noreferrer",children:(0,bt.__)("Sign up","extendify")})]})]}),(0,Nt.jsxs)("form",{onSubmit:_,className:"space-y-2",children:[(0,Nt.jsxs)("div",{className:"flex items-center",children:[(0,Nt.jsx)("label",{className:"sr-only",htmlFor:"extendify-login-email",children:(0,bt.__)("Email address","extendify")}),(0,Nt.jsx)("input",{ref:n,id:"extendify-login-email",name:"extendify-login-email",type:"email",className:"border-2 p-2 w-full rounded",placeholder:(0,bt.__)("Email address","extendify"),value:a.length?a:"",onChange:function(e){return s(e.target.value)}})]}),(0,Nt.jsxs)("div",{className:"flex items-center",children:[(0,Nt.jsx)("label",{className:"sr-only",htmlFor:"extendify-login-license",children:(0,bt.__)("License key","extendify")}),(0,Nt.jsx)("input",{ref:S,id:"extendify-login-license",name:"extendify-login-license",type:"text",className:"border-2 p-2 w-full rounded",placeholder:(0,bt.__)("License key","extendify"),value:c,onChange:function(e){return u(e.target.value)}})]}),(0,Nt.jsx)("div",{className:"pt-2 flex justify-center",children:(0,Nt.jsxs)("button",{type:"submit",className:"relative p-2 py-3 w-72 max-w-full flex justify-center cursor-pointer text-center rounded bg-extendify-main hover:bg-extendify-main-dark text-base text-white ",children:[(0,Nt.jsx)("span",{children:(0,bt.__)("Sign In","extendify")}),v&&(0,Nt.jsx)("div",{className:"absolute right-2.5",children:(0,Nt.jsx)(wt.Spinner,{})})]})}),f&&(0,Nt.jsx)("div",{className:kt()({"border-gray-900 text-gray-900":"info"===m,"border-wp-alert-red text-wp-alert-red":"error"===m,"border-extendify-main text-extendify-main":"success"===m}),children:f}),(0,Nt.jsx)("div",{className:"text-center pt-4",children:(0,Nt.jsx)("a",{target:"_blank",rel:"noreferrer",href:"https://extendify.com/guides/sign-in?utm_source=".concat(window.extendifyData.sdk_partner,"&utm_medium=library&utm_campaign=sign-in-form&utm_content=need-help"),className:"underline hover:no-underline text-sm text-extendify-gray",children:(0,bt.__)("Need Help?","extendify")})})]})]})}function ar(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function sr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ar(Object(n),!0).forEach((function(t){lr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ar(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function lr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var cr=(0,r.forwardRef)((function(e,t){var n,o=e.isOpen,i=e.heading,a=e.onClose,s=e.children,l=(0,r.useRef)(null),c=g((function(e){return e.removeAllModals}));return a=null!==(n=a)&&void 0!==n?n:c,(0,Nt.jsx)(Ie,{appear:!0,show:o,as:r.Fragment,className:"extendify",children:(0,Nt.jsx)(gt,{initialFocus:null!=t?t:l,onClose:a,children:(0,Nt.jsxs)("div",{className:"fixed z-high inset-0 flex",children:[(0,Nt.jsx)(Ie.Child,{as:r.Fragment,enter:"ease-out duration-200 transition",enterFrom:"opacity-0",enterTo:"opacity-100",children:(0,Nt.jsx)(gt.Overlay,{className:"fixed inset-0 bg-black bg-opacity-40"})}),(0,Nt.jsx)(Ie.Child,{as:r.Fragment,enter:"ease-out duration-300 translate transform",enterFrom:"opacity-0 translate-y-4 sm:translate-y-5",enterTo:"opacity-100 translate-y-0",children:(0,Nt.jsx)("div",{className:"m-auto relative w-full",children:(0,Nt.jsxs)("div",{className:"bg-white shadow-modal items-center justify-center m-auto max-w-lg relative rounded-sm w-full",children:[i?(0,Nt.jsxs)("div",{className:"border-b flex justify-between items-center leading-none pl-8 py-2 pr-3",children:[(0,Nt.jsx)("span",{className:"text-base text-extendify-black whitespace-nowrap",children:i}),(0,Nt.jsx)(ur,{onClick:a})]}):(0,Nt.jsx)("div",{className:"absolute block px-4 py-4 top-0 right-0 ",children:(0,Nt.jsx)(ur,{ref:l,onClick:a})}),(0,Nt.jsx)("div",{children:s})]})})})]})})})})),ur=(0,r.forwardRef)((function(e,t){return(0,Nt.jsx)(wt.Button,sr(sr({},e),{},{icon:(0,Nt.jsx)(Sn,{icon:Zn}),ref:t,className:"text-extendify-black opacity-75 hover:opacity-100",showTooltip:!1,label:(0,bt.__)("Close dialog","extendify")}))}));function dr(){var e=(0,r.useRef)(null),t=g((function(e){return e.removeAllModals}));return(0,Nt.jsx)(cr,{heading:(0,bt.__)("Settings","extendify"),isOpen:!0,ref:e,children:(0,Nt.jsx)("div",{className:"flex p-6 justify-center",children:(0,Nt.jsx)(ir,{initialFocus:e,actionCallback:t})})})}var fr=(0,r.memo)((function(e){var t=e.className,n=g((function(e){return e.setOpen})),r=g((function(e){return e.pushModal})),o=z((function(e){return e.apiKey.length}));return(0,Nt.jsx)("div",{className:t,children:(0,Nt.jsxs)("div",{className:"flex justify-between items-center h-full",children:[(0,Nt.jsx)("div",{className:"flex-1"}),(0,Nt.jsx)(Xn,{className:"flex-1 flex items-center justify-center"}),(0,Nt.jsxs)("div",{className:"flex-1 flex justify-end items-center",children:[(0,Nt.jsx)(wt.Button,{onClick:function(){return r((0,Nt.jsx)(dr,{}))},icon:(0,Nt.jsx)(Sn,{icon:Hn,size:24}),label:(0,bt.__)("Login and settings area","extendify"),children:o?"":(0,bt.__)("Sign in","extendify")}),(0,Nt.jsx)(wt.Button,{onClick:function(){return n(!1)},icon:(0,Nt.jsx)(Sn,{icon:Zn,size:24}),label:(0,bt.__)("Close library","extendify")})]})]})})}));function pr(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function hr(){return hr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},hr.apply(this,arguments)}function mr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mr(Object(n),!0).forEach((function(t){yr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function yr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const vr={breakpointCols:void 0,className:void 0,columnClassName:void 0,children:void 0,columnAttrs:void 0,column:void 0};class gr extends i().Component{constructor(e){let t;super(e),this.reCalculateColumnCount=this.reCalculateColumnCount.bind(this),this.reCalculateColumnCountDebounce=this.reCalculateColumnCountDebounce.bind(this),t=this.props.breakpointCols&&this.props.breakpointCols.default?this.props.breakpointCols.default:parseInt(this.props.breakpointCols)||2,this.state={columnCount:t}}componentDidMount(){this.reCalculateColumnCount(),window&&window.addEventListener("resize",this.reCalculateColumnCountDebounce)}componentDidUpdate(){this.reCalculateColumnCount()}componentWillUnmount(){window&&window.removeEventListener("resize",this.reCalculateColumnCountDebounce)}reCalculateColumnCountDebounce(){window&&window.requestAnimationFrame?(window.cancelAnimationFrame&&window.cancelAnimationFrame(this._lastRecalculateAnimationFrame),this._lastRecalculateAnimationFrame=window.requestAnimationFrame((()=>{this.reCalculateColumnCount()}))):this.reCalculateColumnCount()}reCalculateColumnCount(){const e=window&&window.innerWidth||1/0;let t=this.props.breakpointCols;"object"!=typeof t&&(t={default:parseInt(t)||2});let n=1/0,r=t.default||2;for(let o in t){const i=parseInt(o);i>0&&e<=i&&i<n&&(n=i,r=t[o])}r=Math.max(1,parseInt(r)||1),this.state.columnCount!==r&&this.setState({columnCount:r})}itemsInColumns(){const e=this.state.columnCount,t=new Array(e),n=i().Children.toArray(this.props.children);for(let r=0;r<n.length;r++){const o=r%e;t[o]||(t[o]=[]),t[o].push(n[r])}return t}renderColumns(){const{column:e,columnAttrs:t={},columnClassName:n}=this.props,r=this.itemsInColumns(),o=100/r.length+"%";let a=n;a&&"string"!=typeof a&&(this.logDeprecated('The property "columnClassName" requires a string'),void 0===a&&(a="my-masonry-grid_column"));const s=xr(xr(xr({},e),t),{},{style:xr(xr({},t.style),{},{width:o}),className:a});return r.map(((e,t)=>i().createElement("div",hr({},s,{key:t}),e)))}logDeprecated(e){console.error("[Masonry]",e)}render(){const e=this.props,{children:t,breakpointCols:n,columnClassName:r,columnAttrs:o,column:a,className:s}=e,l=pr(e,["children","breakpointCols","columnClassName","columnAttrs","column","className"]);let c=s;return"string"!=typeof s&&(this.logDeprecated('The property "className" requires a string'),void 0===s&&(c="my-masonry-grid")),i().createElement("div",hr({},l,{className:c}),this.renderColumns())}}gr.defaultProps=vr;const br=gr;function wr(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function jr(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){wr(i,r,o,a,s,"next",e)}function s(e){wr(i,r,o,a,s,"throw",e)}a(void 0)}))}}var kr=0,Cr=function(e){var t=arguments;return jr(w().mark((function n(){var r,o,i,a,s,l;return w().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return i=t.length>1&&void 0!==t[1]?t[1]:{},kr++,a="pattern"===e.type?"8":"4",s="pattern"===e.type?"patternType":"layoutType",l=Object.assign({filterByFormula:Er(e,s),pageSize:a,categories:e.taxonomies,search:e.search,type:e.type,offset:"",initial:1===kr,request_count:kr,sdk_partner:null!==(r=null===(o=z.getState())||void 0===o?void 0:o.sdkPartner)&&void 0!==r?r:""},i),n.next=7,k.post("templates",l);case 7:return n.abrupt("return",n.sent);case 8:case"end":return n.stop()}}),n)})))()},Sr=function(e){var t,n;return k.post("templates/".concat(e.id),{template_id:null==e?void 0:e.id,maybe_import:!0,type:null===(t=e.fields)||void 0===t?void 0:t.type,pageSize:"1",template_name:null===(n=e.fields)||void 0===n?void 0:n.title})},Or=function(e){var t,n,r,o,i;return k.post("templates/".concat(e.id),{template_id:e.id,imported:!0,basePattern:null!==(t=null!==(n=null===(r=e.fields)||void 0===r?void 0:r.basePattern)&&void 0!==n?n:null===(o=e.fields)||void 0===o?void 0:o.baseLayout)&&void 0!==t?t:"",type:e.fields.type,pageSize:"1",template_name:null===(i=e.fields)||void 0===i?void 0:i.title})},Er=function(e,t){var n,r,o,i=e.taxonomies,a=null!=i&&null!==(n=i.siteType)&&void 0!==n&&null!==(r=n.slug)&&void 0!==r&&r.length?i.siteType.slug:"default",s=['{type}="'.concat(t.replace("Type",""),'"'),'{siteType}="'.concat(a,'"')];return null!==(o=i[t])&&void 0!==o&&o.slug&&s.push("{".concat(t,'}="').concat(i[t].slug,'"')),"AND(".concat(s.join(", "),")").replace(/\r?\n|\r/g,"")};function _r(){return _r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_r.apply(this,arguments)}function Nr(e,t){return Nr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Nr(e,t)}var Ar=new Map,Pr=new WeakMap,Tr=0,Ir=void 0;function Lr(e){return Object.keys(e).sort().filter((function(t){return void 0!==e[t]})).map((function(t){return t+"_"+("root"===t?(n=e.root)?(Pr.has(n)||(Tr+=1,Pr.set(n,Tr.toString())),Pr.get(n)):"0":e[t]);var n})).toString()}function Mr(e,t,n,r){if(void 0===n&&(n={}),void 0===r&&(r=Ir),void 0===window.IntersectionObserver&&void 0!==r){var o=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:"number"==typeof n.threshold?n.threshold:0,time:0,boundingClientRect:o,intersectionRect:o,rootBounds:o}),function(){}}var i=function(e){var t=Lr(e),n=Ar.get(t);if(!n){var r,o=new Map,i=new IntersectionObserver((function(t){t.forEach((function(t){var n,i=t.isIntersecting&&r.some((function(e){return t.intersectionRatio>=e}));e.trackVisibility&&void 0===t.isVisible&&(t.isVisible=i),null==(n=o.get(t.target))||n.forEach((function(e){e(i,t)}))}))}),e);r=i.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:i,elements:o},Ar.set(t,n)}return n}(n),a=i.id,s=i.observer,l=i.elements,c=l.get(e)||[];return l.has(e)||l.set(e,c),c.push(t),s.observe(e),function(){c.splice(c.indexOf(t),1),0===c.length&&(l.delete(e),s.unobserve(e)),0===l.size&&(s.disconnect(),Ar.delete(a))}}var Rr=["children","as","tag","triggerOnce","threshold","root","rootMargin","onChange","skip","trackVisibility","delay","initialInView","fallbackInView"];function Dr(e){return"function"!=typeof e.children}var Fr=function(e){var t,n;function r(t){var n;return(n=e.call(this,t)||this).node=null,n._unobserveCb=null,n.handleNode=function(e){n.node&&(n.unobserve(),e||n.props.triggerOnce||n.props.skip||n.setState({inView:!!n.props.initialInView,entry:void 0})),n.node=e||null,n.observeNode()},n.handleChange=function(e,t){e&&n.props.triggerOnce&&n.unobserve(),Dr(n.props)||n.setState({inView:e,entry:t}),n.props.onChange&&n.props.onChange(e,t)},n.state={inView:!!t.initialInView,entry:void 0},n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,Nr(t,n);var i=r.prototype;return i.componentDidUpdate=function(e){e.rootMargin===this.props.rootMargin&&e.root===this.props.root&&e.threshold===this.props.threshold&&e.skip===this.props.skip&&e.trackVisibility===this.props.trackVisibility&&e.delay===this.props.delay||(this.unobserve(),this.observeNode())},i.componentWillUnmount=function(){this.unobserve(),this.node=null},i.observeNode=function(){if(this.node&&!this.props.skip){var e=this.props,t=e.threshold,n=e.root,r=e.rootMargin,o=e.trackVisibility,i=e.delay,a=e.fallbackInView;this._unobserveCb=Mr(this.node,this.handleChange,{threshold:t,root:n,rootMargin:r,trackVisibility:o,delay:i},a)}},i.unobserve=function(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)},i.render=function(){if(!Dr(this.props)){var e=this.state,t=e.inView,n=e.entry;return this.props.children({inView:t,entry:n,ref:this.handleNode})}var r=this.props,i=r.children,a=r.as,s=r.tag,l=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(r,Rr);return o.createElement(a||s||"div",_r({ref:this.handleNode},l),i)},r}(o.Component);Fr.displayName="InView",Fr.defaultProps={threshold:0,triggerOnce:!1,initialInView:!1};const Br=wp.blockEditor,zr=wp.blocks;var Ur=function(){return k.get("plugins")},Wr=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=new FormData;return t.append("plugins",JSON.stringify(e)),k.post("plugins",t,{headers:{"Content-Type":"multipart/form-data"}})},qr=function(){return k.get("active-plugins")};function $r(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Hr(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){$r(i,r,o,a,s,"next",e)}function s(e){$r(i,r,o,a,s,"throw",e)}a(void 0)}))}}var Vr=[],Gr=[];function Jr(e){return Kr.apply(this,arguments)}function Kr(){return(Kr=Hr(w().mark((function e(t){var n,r,o,i;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((o=(o=null!==(n=null==t||null===(r=t.fields)||void 0===r?void 0:r.required_plugins)&&void 0!==n?n:[]).filter((function(e){return"editorplus"!==e}))).length){e.next=4;break}return e.abrupt("return",!1);case 4:if(Vr.length){e.next=10;break}return e.t0=Object,e.next=8,Ur();case 8:e.t1=e.sent,Vr=e.t0.keys.call(e.t0,e.t1);case 10:return i=!!o.length&&o.filter((function(e){return!Vr.some((function(t){return t.includes(e)}))})),e.abrupt("return",i.length);case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Zr(e){return Xr.apply(this,arguments)}function Xr(){return(Xr=Hr(w().mark((function e(t){var n,r,o,i;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((o=(o=null!==(n=null==t||null===(r=t.fields)||void 0===r?void 0:r.required_plugins)&&void 0!==n?n:[]).filter((function(e){return"editorplus"!==e}))).length){e.next=4;break}return e.abrupt("return",!1);case 4:if(Gr.length){e.next=10;break}return e.t0=Object,e.next=8,qr();case 8:e.t1=e.sent,Gr=e.t0.values.call(e.t0,e.t1);case 10:if(!(i=!!o.length&&o.filter((function(e){return!Gr.some((function(t){return t.includes(e)}))})))){e.next=16;break}return e.next=14,Jr(t);case 14:if(!e.sent){e.next=16;break}return e.abrupt("return",!1);case 16:return e.abrupt("return",i.length);case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Yr=l(x((function(e){return{wantedTemplate:{},importOnLoad:!1,setWanted:function(t){return e({wantedTemplate:t})},removeWanted:function(){return e({wantedTemplate:{}})}}}),{name:"extendify-wanted-template"}));function Qr(e){var t=e.msg;return(0,Nt.jsxs)(wt.Modal,{style:{maxWidth:"500px"},title:(0,bt.__)("Error installing plugins","extendify"),isDismissible:!1,children:[(0,bt.__)("You have encountered an error that we cannot recover from. Please try again.","extendify"),(0,Nt.jsx)("br",{}),(0,Nt.jsx)(wt.Notice,{isDismissible:!1,status:"error",children:t}),(0,Nt.jsx)(wt.Button,{isPrimary:!0,onClick:function(){return(0,r.render)((0,Nt.jsx)(lo,{}),document.getElementById("extendify-root"))},children:(0,bt.__)("Go back","extendify")})]})}const eo=wp.data;function to(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return no(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return no(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function no(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ro(){var e=to((0,r.useState)(!1),2),t=e[0],n=e[1],o=function(){};return(0,(0,eo.select)("core/editor").isEditedPostDirty)()?(0,Nt.jsxs)(wt.Modal,{title:(0,bt.__)("Reload required","extendify"),isDismissible:!1,children:[(0,Nt.jsx)("p",{style:{maxWidth:"400px"},children:(0,bt.__)("Just one more thing! We need to reload the page to continue.","extendify")}),(0,Nt.jsxs)(wt.ButtonGroup,{children:[(0,Nt.jsx)(wt.Button,{isPrimary:!0,onClick:o,disabled:t,children:(0,bt.__)("Reload page","extendify")}),(0,Nt.jsx)(wt.Button,{isSecondary:!0,onClick:function(){n(!0),(0,eo.dispatch)("core/editor").savePost(),n(!1)},isBusy:t,style:{margin:"0 4px"},children:(0,bt.__)("Save changes","extendify")})]})]}):null}function oo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return io(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return io(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function io(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ao(e){var t,n=e.requiredPlugins,o=oo((0,r.useState)(""),2),i=o[0],a=o[1],s=Yr((function(e){return e.wantedTemplate})),l=null!=n?n:null==s||null===(t=s.fields)||void 0===t?void 0:t.required_plugins.filter((function(e){return"editorplus"!==e}));return Wr(l).then((function(){Yr.setState({importOnLoad:!0}),(0,r.render)((0,Nt.jsx)(ro,{}),document.getElementById("extendify-root"))})).catch((function(e){var t=e.message;a(t)})),i?(0,Nt.jsx)(Qr,{msg:i}):(0,Nt.jsx)(wt.Modal,{title:(0,bt.__)("Installing plugins","extendify"),isDismissible:!1,children:(0,Nt.jsx)(wt.Button,{style:{width:"100%"},disabled:!0,isPrimary:!0,isBusy:!0,onClick:function(){},children:(0,bt.__)("Installing...","extendify")})})}function so(){var e,t,n,o=Yr((function(e){return e.wantedTemplate})),i=(null==o||null===(e=o.fields)||void 0===e?void 0:e.required_plugins)||[];return(0,Nt.jsxs)(wt.Modal,{title:(0,bt.__)("Plugins required","extendify"),isDismissible:!1,children:[(0,Nt.jsx)("p",{style:{maxWidth:"400px"},children:(0,bt.sprintf)((0,bt.__)("In order to add this %s to your site, the following plugins are required to be installed and activated.","extendify"),null!==(t=null==o||null===(n=o.fields)||void 0===n?void 0:n.type)&&void 0!==t?t:"template")}),(0,Nt.jsx)("ul",{children:i.filter((function(e){return"editorplus"!==e})).map((function(e){return(0,Nt.jsx)("li",{children:Et(e)},e)}))}),(0,Nt.jsx)("p",{style:{maxWidth:"400px",fontWeight:"bold"},children:(0,bt.__)("Please contact a site admin for assistance in adding these plugins to your site.","extendify")}),(0,Nt.jsx)(wt.Button,{isPrimary:!0,onClick:function(){return(0,r.render)((0,Nt.jsx)(Di,{show:!0}),document.getElementById("extendify-root"))},style:{boxShadow:"none"},children:(0,bt.__)("Return to library","extendify")})]})}function lo(e){var t,n,o,i,a,s=e.forceOpen,l=e.buttonLabel,c=e.title,u=e.message,d=e.requiredPlugins,f=Yr((function(e){return e.wantedTemplate}));d=null!==(t=d)&&void 0!==t?t:null==f||null===(n=f.fields)||void 0===n?void 0:n.required_plugins;return null!==(o=z.getState())&&void 0!==o&&o.canInstallPlugins?(0,Nt.jsxs)(wt.Modal,{title:null!=c?c:(0,bt.__)("Install required plugins","extendify"),isDismissible:!1,children:[(0,Nt.jsx)("p",{style:{maxWidth:"400px"},children:null!=u?u:(0,bt.__)((0,bt.sprintf)("There is just one more step. This %s requires the following to be automatically installed and activated:",null!==(i=null==f||null===(a=f.fields)||void 0===a?void 0:a.type)&&void 0!==i?i:"template"),"extendify")}),(null==u?void 0:u.length)>0||(0,Nt.jsx)("ul",{children:d.filter((function(e){return"editorplus"!==e})).map((function(e){return(0,Nt.jsx)("li",{children:Et(e)},e)}))}),(0,Nt.jsxs)(wt.ButtonGroup,{children:[(0,Nt.jsx)(wt.Button,{isPrimary:!0,onClick:function(){return(0,r.render)((0,Nt.jsx)(ao,{requiredPlugins:d}),document.getElementById("extendify-root"))},children:null!=l?l:(0,bt.__)("Install Plugins","extendify")}),s||(0,Nt.jsx)(wt.Button,{isTertiary:!0,onClick:function(){s||(0,r.render)((0,Nt.jsx)(Di,{show:!0}),document.getElementById("extendify-root"))},style:{boxShadow:"none",margin:"0 4px"},children:(0,bt.__)("No thanks, take me back","extendify")})]})]}):(0,Nt.jsx)(so,{})}function co(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}var uo=function(){var e,t=(e=w().mark((function e(t){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Jr(t);case 2:return e.t0=!e.sent,e.t1=function(){},e.t2=function(){return new Promise((function(){(0,r.render)((0,Nt.jsx)(lo,{}),document.getElementById("extendify-root"))}))},e.abrupt("return",{id:"hasRequiredPlugins",pass:e.t0,allow:e.t1,deny:e.t2});case 6:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){co(i,r,o,a,s,"next",e)}function s(e){co(i,r,o,a,s,"throw",e)}a(void 0)}))});return function(e){return t.apply(this,arguments)}}();function fo(e){var t=e.msg;return(0,Nt.jsxs)(wt.Modal,{style:{maxWidth:"500px"},title:(0,bt.__)("Error Activating plugins","extendify"),isDismissible:!1,children:[(0,bt.__)("You have encountered an error that we cannot recover from. Please try again.","extendify"),(0,Nt.jsx)("br",{}),(0,Nt.jsx)(wt.Notice,{isDismissible:!1,status:"error",children:t}),(0,Nt.jsx)(wt.Button,{isPrimary:!0,onClick:function(){(0,r.render)((0,Nt.jsx)(vo,{}),document.getElementById("extendify-root"))},children:(0,bt.__)("Go back","extendify")})]})}function po(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function ho(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){po(i,r,o,a,s,"next",e)}function s(e){po(i,r,o,a,s,"throw",e)}a(void 0)}))}}function mo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return xo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return xo(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function xo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function yo(){var e,t=mo((0,r.useState)(""),2),n=t[0],o=t[1],i=Yr((function(e){return e.wantedTemplate})),a=null==i||null===(e=i.fields)||void 0===e?void 0:e.required_plugins.filter((function(e){return"editorplus"!==e}));return Wr(a).then((function(){Yr.setState({importOnLoad:!0})})).then(ho(w().mark((function e(){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,new Promise((function(e){return setTimeout(e,1e3)}));case 2:(0,r.render)((0,Nt.jsx)(ro,{}),document.getElementById("extendify-root"));case 3:case"end":return e.stop()}}),e)})))).catch((function(e){var t=e.response;o(t.data.message)})),n?(0,Nt.jsx)(fo,{msg:n}):(0,Nt.jsx)(wt.Modal,{title:(0,bt.__)("Activating plugins","extendify"),isDismissible:!1,children:(0,Nt.jsx)(wt.Button,{style:{width:"100%"},disabled:!0,isPrimary:!0,isBusy:!0,onClick:function(){},children:(0,bt.__)("Activating...","extendify")})})}function vo(e){var t,n,o,i,a,s=Yr((function(e){return e.wantedTemplate})),l=(null==s||null===(t=s.fields)||void 0===t?void 0:t.required_plugins)||[];return null!==(n=z.getState())&&void 0!==n&&n.canActivatePlugins?(0,Nt.jsx)(wt.Modal,{title:(0,bt.__)("Activate required plugins","extendify"),isDismissible:!1,children:(0,Nt.jsxs)("div",{children:[(0,Nt.jsx)("p",{style:{maxWidth:"400px"},children:null!==(o=e.message)&&void 0!==o?o:(0,bt.__)((0,bt.sprintf)("There is just one more step. This %s requires the following plugins to be installed and activated:",null!==(i=null==s||null===(a=s.fields)||void 0===a?void 0:a.type)&&void 0!==i?i:"template"),"extendify")}),(0,Nt.jsx)("ul",{children:l.filter((function(e){return"editorplus"!==e})).map((function(e){return(0,Nt.jsx)("li",{children:Et(e)},e)}))}),(0,Nt.jsxs)(wt.ButtonGroup,{children:[(0,Nt.jsx)(wt.Button,{isPrimary:!0,onClick:function(){return(0,r.render)((0,Nt.jsx)(yo,{}),document.getElementById("extendify-root"))},children:(0,bt.__)("Activate Plugins","extendify")}),e.showClose&&(0,Nt.jsx)(wt.Button,{isTertiary:!0,onClick:function(){return(0,r.render)((0,Nt.jsx)(Di,{show:!0}),document.getElementById("extendify-root"))},style:{boxShadow:"none",margin:"0 4px"},children:(0,bt.__)("No thanks, return to library","extendify")})]})]})}):(0,Nt.jsx)(so,{})}function go(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}var bo=function(){var e,t=(e=w().mark((function e(t){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Zr(t);case 2:return e.t0=!e.sent,e.t1=function(){},e.t2=function(){return new Promise((function(){(0,r.render)((0,Nt.jsx)(vo,{showClose:!0}),document.getElementById("extendify-root"))}))},e.abrupt("return",{id:"hasPluginsActivated",pass:e.t0,allow:e.t1,deny:e.t2});case 6:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){go(i,r,o,a,s,"next",e)}function s(e){go(i,r,o,a,s,"throw",e)}a(void 0)}))});return function(e){return t.apply(this,arguments)}}();function wo(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return jo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return jo(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function jo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ko(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Co(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){ko(i,r,o,a,s,"next",e)}function s(e){ko(i,r,o,a,s,"throw",e)}a(void 0)}))}}function So(e){return new _o(e)}function Oo(e){return function(){return new Eo(e.apply(this,arguments))}}function Eo(e){var t,n;function r(t,n){try{var i=e[t](n),a=i.value,s=a instanceof _o;Promise.resolve(s?a.wrapped:a).then((function(e){s?r("return"===t?"return":"next",e):o(i.done?"return":"normal",e)}),(function(e){r("throw",e)}))}catch(e){o("throw",e)}}function o(e,o){switch(e){case"return":t.resolve({value:o,done:!0});break;case"throw":t.reject(o);break;default:t.resolve({value:o,done:!1})}(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,o){return new Promise((function(i,a){var s={key:e,arg:o,resolve:i,reject:a,next:null};n?n=n.next=s:(t=n=s,r(e,o))}))},"function"!=typeof e.return&&(this.return=void 0)}function _o(e){this.wrapped=e}Eo.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},Eo.prototype.next=function(e){return this._invoke("next",e)},Eo.prototype.throw=function(e){return this._invoke("throw",e)},Eo.prototype.return=function(e){return this._invoke("return",e)};function No(e){return Ao.apply(this,arguments)}function Ao(){return(Ao=Co(w().mark((function e(t){var n,r;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=Po(t.stack);case 1:return r=void 0,e.prev=3,e.next=6,n.next();case 6:r=e.sent,e.next=13;break;case 9:throw e.prev=9,e.t0=e.catch(3),t.reset(),"Middleware exited";case 13:if(!r.done){e.next=15;break}return e.abrupt("break",17);case 15:e.next=1;break;case 17:case"end":return e.stop()}}),e,null,[[3,9]])})))).apply(this,arguments)}function Po(e){return To.apply(this,arguments)}function To(){return(To=Oo(w().mark((function e(t){var n,r,o;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=wo(t),e.prev=1,n.s();case 3:if((r=n.n()).done){e.next=11;break}return o=r.value,e.next=7,So(o());case 7:return e.next=9,e.sent;case 9:e.next=3;break;case 11:e.next=16;break;case 13:e.prev=13,e.t0=e.catch(1),n.e(e.t0);case 16:return e.prev=16,n.f(),e.finish(16);case 19:case"end":return e.stop()}}),e,null,[[1,13,16,19]])})))).apply(this,arguments)}function Io(e,t){var n=(0,eo.dispatch)("core/block-editor"),r=n.insertBlocks,o=n.replaceBlock,i=(0,eo.select)("core/block-editor"),a=i.getSelectedBlock,s=i.getBlockHierarchyRootClientId,l=i.getBlockIndex,c=i.getGlobalBlockCount,u=a()||{},d=u.clientId,f=u.name,p=u.attributes,h=d?s(d):"",m=(h?l(h):c())+1;return("core/paragraph"===f&&""===(null==p?void 0:p.content)?o(d,e):r(e,m)).then((function(){return window.dispatchEvent(new CustomEvent("extendify::template-inserted",{detail:{template:t},bubbles:!0}))}))}var Lo=n(306);function Mo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Ro(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ro(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ro(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Do=function(e){var t=e.template,n=Mo((0,r.useState)(t.id),2),o=n[0],i=n[1];return(0,r.useEffect)((function(){o!==t.id&&setTimeout((function(){return i(t.id)}),1e3)}),[o,t.id]),(0,Nt.jsxs)("div",{className:"group-hover:opacity-90 opacity-0 flex space-x-2 items-center mb-2 ml-2 absolute bottom-0 left-0 transition duration-200 ease-in-out z-50",children:[(0,Nt.jsx)(Lo.CopyToClipboard,{text:t.id,onCopy:function(){return i((0,bt.__)("Copied...","extendify"))},children:(0,Nt.jsx)("button",{className:"bg-white border border-black p-2 rounded-md shadow-md cursor-pointer",children:o})}),(0,Nt.jsx)("a",{target:"_blank",className:"bg-white border font-semibold border-black p-2 rounded-md shadow-md no-underline text-black",href:"https://airtable.com/appn5PSl8wU6X70sG/tblviYevlV5fYAEH7/viwh0L1kHmXN7FIB9/".concat(t.id),rel:"noreferrer",children:(0,bt.__)("Edit","extendify")})]})},Fo=(0,r.forwardRef)((function(e,t){var n,o=e.onClose,i=e.isOpen,a=e.invertedButtonColor,s=e.children,l=e.leftContainerBgColor,c=void 0===l?"bg-white":l,u=e.rightContainerBgColor,d=void 0===u?"bg-gray-100":u,f=(0,r.useRef)(null),p=g((function(e){return e.removeAllModals}));return o=null!==(n=o)&&void 0!==n?n:p,(0,Nt.jsx)(Ie.Root,{appear:!0,show:!0,as:r.Fragment,children:(0,Nt.jsx)(gt,{as:"div",static:!0,open:i,className:"extendify",initialFocus:null!=t?t:f,onClose:o,children:(0,Nt.jsxs)("div",{className:"fixed z-high inset-0 flex",children:[(0,Nt.jsx)(Ie.Child,{as:r.Fragment,enter:"ease-out duration-50 transition",enterFrom:"opacity-0",enterTo:"opacity-100",children:(0,Nt.jsx)(gt.Overlay,{className:"fixed inset-0 bg-black bg-opacity-40 transition-opacity"})}),(0,Nt.jsx)(Ie.Child,{as:r.Fragment,enter:"ease-out duration-300 translate transform",enterFrom:"opacity-0 translate-y-4 sm:translate-y-5",enterTo:"opacity-100 translate-y-0",children:(0,Nt.jsx)("div",{className:"m-auto",children:(0,Nt.jsxs)("div",{className:"shadow-modal relative m-8 md:m-0 max-w-md rounded-sm md:flex justify-between md:max-w-2xl",children:[(0,Nt.jsxs)("button",{onClick:o,ref:f,className:"absolute bg-transparent block p-4 top-0 right-0 rounded-md cursor-pointer text-gray-700 opacity-30 hover:opacity-100",style:a&&{filter:"invert(1)"},children:[(0,Nt.jsx)("span",{className:"sr-only",children:(0,bt.__)("Close","extendify")}),(0,Nt.jsx)(Sn,{icon:Zn})]}),(0,Nt.jsx)("div",{className:"w-7/12 p-12 ".concat(c),children:s[0]}),(0,Nt.jsx)("div",{className:"w-6/12 hidden md:block ".concat(d),children:s[1]})]})})})]})})})})),Bo=function(){var e=g((function(e){return e.pushModal})),t=(0,r.useRef)(null);return(0,Nt.jsxs)(Fo,{isOpen:!0,ref:t,leftContainerBgColor:"bg-white",children:[(0,Nt.jsxs)("div",{children:[(0,Nt.jsx)("div",{className:"flex space-x-2 items-center mb-5 text-extendify-black",children:Ln}),(0,Nt.jsx)("h3",{className:"text-xl mt-0",children:(0,bt.__)("You're out of imports","extendify")}),(0,Nt.jsx)("p",{className:"text-sm text-black",children:(0,bt.__)("Sign up today and get unlimited access to our entire collection of patterns and page layouts.","extendify")}),(0,Nt.jsxs)("div",{children:[(0,Nt.jsxs)("a",{target:"_blank",ref:t,className:"button-extendify-main inline-flex mt-2 px-4 py-3 button-focus justify-center",style:{minWidth:"225px"},href:"https://extendify.com/pricing/?utm_source=".concat(window.extendifyData.sdk_partner,"&utm_medium=library&utm_campaign=no-imports-modal&utm_content=get-unlimited-imports"),rel:"noreferrer",children:[(0,bt.__)("Get Unlimited Imports","extendify"),(0,Nt.jsx)(wt.Icon,{icon:Bn,size:24,className:"-mr-1"})]}),(0,Nt.jsxs)("p",{className:"text-sm text-extendify-gray mb-0 text-left",children:[(0,bt.__)("Have an account?","extendify"),(0,Nt.jsx)(wt.Button,{onClick:function(){return e((0,Nt.jsx)(dr,{}))},className:"underline hover:no-underline text-sm text-extendify-gray pl-2",children:(0,bt.__)("Sign in","extendify")})]})]})]}),(0,Nt.jsxs)("div",{className:"space-y-2 flex flex-col justify-center p-10 text-black h-full",children:[(0,Nt.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,Nt.jsx)(wt.Icon,{icon:Un,size:24}),(0,Nt.jsx)("span",{className:"text-sm leading-none",children:(0,bt.__)("Access to 100's of Patterns","extendify")})]}),(0,Nt.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,Nt.jsx)(wt.Icon,{icon:Mn,size:24}),(0,Nt.jsx)("span",{className:"text-sm leading-none",children:(0,bt.__)('Access to "Pro" catalog',"extendify")})]}),(0,Nt.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,Nt.jsx)(wt.Icon,{icon:zn,size:24}),(0,Nt.jsx)("span",{className:"text-sm leading-none",children:(0,bt.__)("Beautiful full page layouts","extendify")})]}),(0,Nt.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,Nt.jsx)(wt.Icon,{icon:qn,size:24}),(0,Nt.jsx)("span",{className:"text-sm leading-none",children:(0,bt.__)("Fast and friendly support","extendify")})]}),(0,Nt.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,Nt.jsx)(wt.Icon,{icon:$n,size:24}),(0,Nt.jsx)("span",{className:"text-sm leading-none",children:(0,bt.__)("14-Day guarantee","extendify")})]})]})]})},zo=function(){var e=(0,r.useRef)(null);return(0,Nt.jsxs)(Fo,{isOpen:!0,invertedButtonColor:!0,ref:e,children:[(0,Nt.jsxs)("div",{children:[(0,Nt.jsx)("div",{className:"flex space-x-2 items-center mb-5 text-extendify-black",children:Ln}),(0,Nt.jsx)("h3",{className:"text-xl mt-0",children:(0,bt.__)("Get unlimited access to all our Pro patterns & layouts","extendify")}),(0,Nt.jsx)("p",{className:"text-sm text-black",children:(0,bt.__)("Upgrade to Extendify Pro and use all the patterns and layouts you'd like, including our exclusive Pro catalog.","extendify")}),(0,Nt.jsx)("div",{children:(0,Nt.jsxs)("a",{target:"_blank",ref:e,className:"button-extendify-main inline-flex mt-2 px-4 py-3 button-focus justify-center",style:{minWidth:"225px"},href:"https://extendify.com/pricing/?utm_source=".concat(window.extendifyData.sdk_partner,"&utm_medium=library&utm_campaign=pro-modal&utm_content=upgrade-now"),rel:"noreferrer",children:[(0,bt.__)("Upgrade Now","extendify"),(0,Nt.jsx)(wt.Icon,{icon:Bn,size:24,className:"-mr-1"})]})})]}),(0,Nt.jsx)("div",{className:"w-full bg-black flex justify-endrounded-tr-sm rounded-br-sm",children:(0,Nt.jsx)("img",{alt:(0,bt.__)("Upgrade Now","extendify"),className:"max-w-full rounded-tr-sm rounded-br-sm",src:window.extendifyData.asset_path+"/modal-extendify-black.png"})})]})};function Uo(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Wo(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function qo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return $o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return $o(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Ho=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{hasRequiredPlugins:uo,hasPluginsActivated:bo,stack:[],check:function(t){var n=this;return Co(w().mark((function r(){var o,i,a,s;return w().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:o=wo(e),r.prev=1,o.s();case 3:if((i=o.n()).done){r.next=11;break}return a=i.value,r.next=7,n["".concat(a)](t);case 7:s=r.sent,n.stack.push(s.pass?s.allow:s.deny);case 9:r.next=3;break;case 11:r.next=16;break;case 13:r.prev=13,r.t0=r.catch(1),o.e(r.t0);case 16:return r.prev=16,o.f(),r.finish(16);case 19:case"end":return r.stop()}}),r,null,[[1,13,16,19]])})))()},reset:function(){this.stack=[]}}}(["hasRequiredPlugins","hasPluginsActivated"]);function Vo(e){var t,n,o,i,a=e.template,s=e.maxHeight,l=(0,r.useRef)(null),c=(0,r.useRef)(!1),u=z((function(e){return e.hasAvailableImports})),d=z((function(e){return e.apiKey.length})),f=g((function(e){return e.setOpen})),p=g((function(e){return e.pushModal})),h=g((function(e){return e.removeAllModals})),m=(0,r.useMemo)((function(){return(0,zr.rawHandler)({HTML:a.fields.code})}),[a.fields.code]),x=qo((0,r.useState)(!1),2),y=x[0],v=x[1],b=tr(),j=qo((0,r.useState)(0),2),k=j[0],C=j[1],S=function(){var e,t=(e=w().mark((function e(){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Ho.check(a);case 2:No(Ho).then((function(){setTimeout((function(){Io(m,a).then((function(){return h()})).then((function(){return f(!1)})).then((function(){return Ho.reset()}))}),100)})).catch((function(){}));case 3:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Wo(i,r,o,a,s,"next",e)}function s(e){Wo(i,r,o,a,s,"throw",e)}a(void 0)}))});return function(){return t.apply(this,arguments)}}(),O=function(){var e;Sr(a),null==a||null===(e=a.fields)||void 0===e||!e.pro||d?u()?S():p((0,Nt.jsx)(Bo,{})):p((0,Nt.jsx)(zo,{}))};return(0,r.useEffect)((function(){var e,t,n,r,o=[],i=[];return e=window.requestAnimationFrame((function(){t=window.requestAnimationFrame((function(){l.current.querySelectorAll("iframe").forEach((function(e){var t=e.contentWindow.document.body,n=window.requestAnimationFrame((function(){var n=t.querySelector(".is-root-container");if(n){var o=null==n?void 0:n.offsetHeight;if(o){r=window.requestAnimationFrame((function(){e.style.height=o+"px"}));var a=window.setTimeout((function(){e.style.height=o+"px"}),2e3);i.push(a)}}e.contentWindow.dispatchEvent(new Event("resize"))}));o.push(n)})),n=window.requestAnimationFrame((function(){window.dispatchEvent(new Event("resize")),v(!0)}))}))})),function(){[].concat(o,[e,t,n,r]).forEach((function(e){return window.cancelAnimationFrame(e)})),i.forEach((function(e){return window.clearTimeout(e)}))}}),[]),(0,r.useEffect)((function(){if(Number.isInteger(s)){var e=l.current,t=function(){var t=e.offsetHeight;e.style.transitionDuration=1.5*t+"ms",C(-1*Math.abs(t-s))},n=function(){var t=e.offsetHeight;e.style.transitionDuration=t/1.5+"ms",C(0)};return e.addEventListener("focus",t),e.addEventListener("mouseenter",t),e.addEventListener("blur",n),e.addEventListener("mouseleave",n),function(){e.removeEventListener("focus",t),e.removeEventListener("mouseenter",t),e.removeEventListener("blur",n),e.removeEventListener("mouseleave",n)}}}),[s]),(0,Nt.jsxs)("div",{className:"relative group",children:[(0,Nt.jsx)("div",{role:"button",tabIndex:"0","aria-label":(0,bt.sprintf)((0,bt.__)("Press to import %s","extendify"),null==a||null===(t=a.fields)||void 0===t?void 0:t.type),style:{maxHeight:s},className:"m-0 cursor-pointer button-focus ease-in-out relative overflow-hidden bg-gray-100",onFocus:function(){c.current||(c.current=!0,Array.from(l.current.querySelectorAll('a, button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])')).forEach((function(e){return e.setAttribute("tabIndex","-1")})))},onClick:O,onKeyDown:function(e){["Enter","Space"," "].includes(e.key)&&(e.stopPropagation(),e.preventDefault(),O())},children:(0,Nt.jsx)("div",{ref:l,style:{top:k,transitionProperty:"all"},className:kt()("with-light-shadow relative",(o={},Uo(o,"is-template--".concat(a.fields.status),(null==a||null===(n=a.fields)||void 0===n?void 0:n.status)&&b),Uo(o,"p-6 md:p-8",Number.isInteger(s)),o)),children:(0,Nt.jsx)(Br.BlockPreview,{blocks:m,live:!1,viewportWidth:1400})})}),b&&y&&(0,Nt.jsx)(Do,{template:a}),(null==a||null===(i=a.fields)||void 0===i?void 0:i.pro)&&(0,Nt.jsx)("div",{className:"bg-white bg-wp-theme-500 border font-medium border-none absolute z-20 top-4 right-4 py-1 px-2.5 rounded-md shadow-sm no-underline text-white pointer-events-none",children:(0,bt.__)("Pro","extendify")})]})}function Go(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Jo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Jo(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Jo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Ko=(0,r.memo)((function(){var e=er(),t=K((function(e){return e.templates})),n=K((function(e){return e.appendTemplates})),i=Go((0,r.useState)(""),2),a=i[0],s=i[1],l=Go((0,r.useState)(!1),2),c=l[0],u=l[1],d=Go((0,r.useState)(!1),2),f=d[0],p=d[1],h=function(e){var t=void 0===e?{}:e,n=t.threshold,r=t.delay,i=t.trackVisibility,a=t.rootMargin,s=t.root,l=t.triggerOnce,c=t.skip,u=t.initialInView,d=t.fallbackInView,f=o.useRef(),p=o.useState({inView:!!u}),h=p[0],m=p[1],x=o.useCallback((function(e){void 0!==f.current&&(f.current(),f.current=void 0),c||e&&(f.current=Mr(e,(function(e,t){m({inView:e,entry:t}),t.isIntersecting&&l&&f.current&&(f.current(),f.current=void 0)}),{root:s,rootMargin:a,threshold:n,trackVisibility:i,delay:r},d))}),[Array.isArray(n)?n.toString():n,s,a,l,c,i,d,r]);(0,o.useEffect)((function(){f.current||!h.entry||l||c||m({inView:!!u})}));var y=[x,h.inView,h.entry];return y.ref=y[0],y.inView=y[1],y.entry=y[2],y}(),m=Go(h,2),x=m[0],y=m[1],v=K((function(e){return e.searchParams})),b=g((function(e){return e.currentType})),w=K((function(e){return e.resetTemplates})),j=(0,r.useRef)(K.getState().nextPage),k=(0,r.useRef)(K.getState().searchParams),C="pattern"===k.current.type?"patternType":"layoutType",S=k.current.taxonomies[C];(0,r.useEffect)((function(){return K.subscribe((function(e){return j.current=e}),(function(e){return e.nextPage}))}),[]),(0,r.useEffect)((function(){return K.subscribe((function(e){return k.current=e}),(function(e){return e.searchParams}))}),[]);var O,E=(0,r.useCallback)((function(){s(""),u(!1);var t=(0,bt.__)("Unknown error occured. Check browser console or contact support.","extendify"),r={offset:j.current};Cr(k.current,r).then((function(t){var r,o,i;e.current&&(null!=t&&null!==(r=t.error)&&void 0!==r&&r.length?s(null==t?void 0:t.error):(null==t||null===(o=t.records)||void 0===o?void 0:o.length)<=0?u(!0):v===k.current&&null!=t&&t.records.length&&(K.setState({nextPage:null!==(i=null==t?void 0:t.offset)&&void 0!==i?i:""}),n(t.records),p(!1)))})).catch((function(n){e.current&&(console.error(n),s(t))}))}),[n,e,v]);return(0,r.useEffect)((function(){0!==t.length||p(!0)}),[t.length,v]),(0,r.useEffect)((function(){Object.keys(k.current.taxonomies).length&&(K.getState().skipNextFetch?K.setState({skipNextFetch:!1}):E())}),[E,k]),(0,r.useEffect)((function(){j.current&&y&&E()}),[y,E,t]),a.length?(0,Nt.jsxs)("div",{className:"text-left",children:[(0,Nt.jsx)("h2",{className:"text-left",children:(0,bt.__)("Server error","extendify")}),(0,Nt.jsx)("code",{className:"block max-w-xl p-4 mb-4",style:{minHeight:"10rem"},children:a}),(0,Nt.jsx)(wt.Button,{isTertiary:!0,onClick:function(){return w()&&E()},children:(0,bt.__)("Press here to reload")})]}):c?(0,Nt.jsx)("div",{className:"flex h-full items-center justify-center w-full -mt-2 sm:mt-0",children:(0,Nt.jsx)("h2",{className:"text-sm text-extendify-gray font-normal",children:(0,bt.sprintf)("template"===k.current.type?(0,bt.__)('We couldn\'t find any layouts in the "%s" category.',"extendify"):(0,bt.__)('We couldn\'t find any patterns in the "%s" category.',"extendify"),null!==(O=null==S?void 0:S.title)&&void 0!==O?O:S.slug)})}):(0,Nt.jsxs)(Nt.Fragment,{children:[f&&(0,Nt.jsx)("div",{className:"flex h-full items-center justify-center w-full -mt-2 sm:mt-0",children:(0,Nt.jsx)(wt.Spinner,{})}),(0,Nt.jsx)(Zo,{type:b,templates:t,children:t.map((function(e){return(0,Nt.jsx)(Vo,{maxHeight:"template"===b?520:"none",template:e},e.id)}))}),j.current&&(0,Nt.jsxs)(Nt.Fragment,{children:[(0,Nt.jsx)("div",{className:"my-20",children:(0,Nt.jsx)(wt.Spinner,{})}),(0,Nt.jsx)("div",{className:"-translate-y-full flex flex-col items-end justify-end relative transform",ref:x,style:{zIndex:-1,marginBottom:"-100%",height:"template"===b?"150vh":"75vh"}})]})]})})),Zo=function(e){var t=e.type,n=e.children,r="relative min-h-screen z-10 pb-40 pt-0.5";if("template"===t)return(0,Nt.jsx)("div",{className:"grid lg:grid-cols-2 gap-6 md:gap-8 ".concat(r),children:n});return(0,Nt.jsx)(br,{breakpointCols:{default:3,1600:2,860:1,599:2,400:1},className:"flex -ml-6 md:-ml-8 w-auto px-0.5 ".concat(r),columnClassName:"pl-6 md:pl-8 bg-clip-padding space-y-6 md:space-y-8",children:n})};function Xo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Yo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Yo(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Yo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Qo=function(e){var t=e.setOpen,n=(0,r.useRef)(),o=K((function(e){return e.searchParams})),i=Xo((0,r.useState)(!1),2),a=i[0],s=i[1],l=K((function(e){return e.resetTemplates})),c=function(e){var t=Yn((0,r.useState)(!0),2),n=t[0],o=t[1],i=Yn((0,r.useState)(!1),2),a=i[0],s=i[1],l=er(),c=(0,r.useRef)();return(0,r.useEffect)((function(){var e=function(){return o(!0)},t={passive:!0};return window.addEventListener("keydown",e,t),window.addEventListener("mousemove",e,t),window.addEventListener("touchmove",e,t),function(){window.removeEventListener("keydown",e),window.removeEventListener("mousemove",e),window.removeEventListener("touchmove",e)}}),[]),(0,r.useEffect)((function(){n&&(o(!1),s(!1),window.clearTimeout(c.current),c.current=window.setTimeout((function(){l.current&&s(!0)}),e))}),[n,e,l]),a}(6e5),u=(0,r.useCallback)((function(){s(!1),l()}),[l]);return(0,r.useEffect)((function(){c&&s(!0)}),[c]),(0,r.useEffect)((function(){s(!1)}),[o]),(0,r.useEffect)((function(){n.current.scrollTop=0}),[o]),(0,Nt.jsx)("div",{className:"h-full flex flex-col items-center relative max-w-screen-4xl mx-auto",children:(0,Nt.jsxs)("div",{className:"w-full flex-grow overflow-hidden",children:[(0,Nt.jsx)("button",{onClick:function(){return document.getElementById("extendify-templates").querySelector("button").focus()},className:"extendify-skip-to-sr-link sr-only focus:not-sr-only focus:text-blue-500",children:(0,bt.__)("Skip to templates","extendify")}),(0,Nt.jsx)("div",{className:"sm:flex relative mx-auto h-full",children:(0,Nt.jsxs)(Kn,{children:[(0,Nt.jsx)(Jn,{}),(0,Nt.jsxs)("div",{className:"relative h-full z-30 flex flex-col",children:[(0,Nt.jsx)(fr,{className:"hidden sm:block w-full h-20 flex-shrink-0 px-6 md:px-8",hideLibrary:function(){return t(!1)}}),(0,Nt.jsx)("div",{ref:n,className:"flex-grow z-20 overflow-y-auto px-6 md:px-8",children:a?(0,Nt.jsx)(ei,{callback:u}):(0,Nt.jsx)(Ko,{})})]})]})})]})})},ei=function(e){var t=e.callback;return(0,Nt.jsxs)("div",{className:"flex flex-col items-center justify-center h-full",children:[(0,Nt.jsx)("p",{className:"text-sm text-extendify-gray font-normal mb-6",children:(0,bt.__)("We've added new stuff while you were away.","extendify")}),(0,Nt.jsx)(wt.Button,{className:"components-button bg-wp-theme-500 hover:bg-wp-theme-600 border-color-wp-theme-500 text-white",onClick:t,children:(0,bt.__)("Reload")})]})};const ti=(0,r.createElement)(An,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(_n,{d:"M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z"}));var ni=function(){return k.get("meta-data")},ri=function(e){var t,n;return k.post("simple-ping",{action:e,sdk_partner:null!==(t=null===(n=z.getState())||void 0===n?void 0:n.sdkPartner)&&void 0!==t?t:""})};function oi(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function ii(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){oi(i,r,o,a,s,"next",e)}function s(e){oi(i,r,o,a,s,"throw",e)}a(void 0)}))}}function ai(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return si(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return si(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function si(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function li(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function ci(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ui(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ui(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ui(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var di={welcome:function(){var e=g((function(e){return e.setOpen}));return(0,Nt.jsxs)(Nt.Fragment,{children:[(0,Nt.jsx)("span",{className:"text-black",children:(0,bt.__)("Welcome to the Extendify Library","extendify")}),(0,Nt.jsx)("span",{className:"px-2 opacity-50","aria-hidden":"true",children:"|"}),(0,Nt.jsxs)("div",{className:"flex space-x-2 justify-center items-center",children:[(0,Nt.jsx)(wt.Button,{variant:"link",className:"text-black underline hover:no-underline p-0 h-auto",href:"https://extendify.com/welcome/?utm_source=".concat(window.extendifyData.sdk_partner,"&utm_medium=library&utm_campaign=welcome-notice&utm_content=tell-me-more"),target:"_blank",children:(0,bt.__)("Tell me more","extendify")}),window.extendifyData.standalone?null:(0,Nt.jsxs)(Nt.Fragment,{children:[(0,Nt.jsx)("span",{className:"font-bold","aria-hidden":"true",children:"•"}),(0,Nt.jsx)(wt.Button,{variant:"link",className:"text-black underline hover:no-underline p-0 h-auto",onClick:function(){document.getElementById("extendify-templates-inserter-btn").classList.add("invisible"),z.setState({enabled:!1}),e(!1)},children:(0,bt.__)("Turn off the library","extendify")})]})]})]})},promotion:function(e){var t,n=e.promotionData;return(0,Nt.jsxs)(Nt.Fragment,{children:[(0,Nt.jsx)("span",{className:"text-black",children:null!==(t=null==n?void 0:n.text)&&void 0!==t?t:""}),(0,Nt.jsx)("span",{className:"px-2 opacity-50","aria-hidden":"true",children:"|"}),(0,Nt.jsx)("div",{className:"flex space-x-2 justify-center items-center",children:(null==n?void 0:n.url)&&(0,Nt.jsx)(wt.Button,{variant:"link",className:"text-black underline hover:no-underline p-0 h-auto",href:"".concat(n.url,"&utm_source=").concat(window.extendifyData.sdk_partner),target:"_blank",children:null==n?void 0:n.button_text})})]})},feedback:function(){return(0,Nt.jsxs)(Nt.Fragment,{children:[(0,Nt.jsx)("span",{className:"text-black",children:(0,bt.__)("Tell us how to make the Extendify Library work better for you","extendify")}),(0,Nt.jsx)("span",{className:"px-2 opacity-50","aria-hidden":"true",children:"|"}),(0,Nt.jsx)("div",{className:"flex space-x-2 justify-center items-center",children:(0,Nt.jsx)(wt.Button,{variant:"link",className:"text-black underline hover:no-underline p-0 h-auto",href:"https://extendify.com/feedback/?utm_source=".concat(window.extendifyData.sdk_partner,"&utm_medium=library&utm_campaign=feedback-notice&utm_content=give-feedback"),target:"_blank",children:(0,bt.__)("Give feedback","extendify")})})]})},standalone:function(){var e=ai((0,r.useState)(""),2),t=e[0],n=e[1],o=z((function(e){return e.giveFreebieImports}));return(0,Nt.jsxs)("div",{children:[(0,Nt.jsx)("span",{className:"text-black",children:(0,bt.__)("Install the new Extendify Library plugin to get the latest we have to offer","extendify")}),(0,Nt.jsx)("span",{className:"px-2 opacity-50","aria-hidden":"true",children:"|"}),(0,Nt.jsxs)("div",{className:"inline-flex space-x-2 items-center relative",children:[(0,Nt.jsx)(wt.Button,{variant:"link",className:kt()("text-black underline hover:no-underline p-0 h-auto",{"opacity-0":t}),onClick:function(){n((0,bt.__)("Installing...","extendify")),Promise.all([ri("stln-footer-install"),Wr(["extendify"]),new Promise((function(e){return setTimeout(e,1e3)}))]).then(ii(w().mark((function e(){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o(10),n((0,bt.__)("Success! Reloading...","extendify")),e.next=4,ri("stln-footer-success");case 4:window.location.reload();case 5:case"end":return e.stop()}}),e)})))).catch(function(){var e=ii(w().mark((function e(t){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return console.error(t),n((0,bt.__)("Error. See console.","extendify")),e.next=4,ri("stln-footer-fail");case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())},children:(0,bt.__)("Install Extendify standalone plugin","extendify")}),t?(0,Nt.jsx)(wt.Button,{variant:"link",disabled:!0,className:"text-black underline hover:no-underline p-0 h-auto absolute left-0 opacity-100",onClick:function(){},children:t}):null]})]})}};function fi(){var e,t=ci((0,r.useState)(null),2),n=t[0],o=t[1],i=(0,r.useRef)(!1),a=g((function(e){var t,n;return null===(t=e.metaData)||void 0===t||null===(n=t.banners)||void 0===n?void 0:n.footer})),s=null!==(e=Object.keys(di).find((function(e){return"promotion"===e?(null==a?void 0:a.key)&&!z.getState().noticesDismissedAt[a.key]:"feedback"===e?(o=null!==(t=z.getState().imports)&&void 0!==t?t:0,i=null!==(n=null===(r=z.getState())||void 0===r?void 0:r.firstLoadedOn)&&void 0!==n?n:new Date,s=(new Date).getTime()-new Date(i).getTime(),o>=3&&s/864e5>3&&!z.getState().noticesDismissedAt[e]):"standalone"===e?!window.extendifyData.standalone&&!z.getState().noticesDismissedAt[e]:!z.getState().noticesDismissedAt[e];var t,n,r,o,i,s})))&&void 0!==e?e:null,l=di[s],c=function(){var e,t=(e=w().mark((function e(){var t;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o(!1),t="promotion"===s?a.key:s,z.getState().markNoticeSeen(t,"notices"),e.next=5,ri("footer-notice-x-".concat(t));case 5:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){li(i,r,o,a,s,"next",e)}function s(e){li(i,r,o,a,s,"throw",e)}a(void 0)}))});return function(){return t.apply(this,arguments)}}();return(0,r.useEffect)((function(){di[s]&&!i.current&&(o(!0),i.current=!0)}),[s]),n?(0,Nt.jsxs)("div",{className:"bg-extendify-secondary hidden lg:flex space-x-4 py-3 px-5 justify-center items-center relative max-w-screen-4xl mx-auto",children:[(0,Nt.jsx)(l,{promotionData:a}),(0,Nt.jsx)("div",{className:"absolute right-1",children:(0,Nt.jsx)(wt.Button,{className:"opacity-50 hover:opacity-100 focus:opacity-100 text-extendify-black",icon:(0,Nt.jsx)(Sn,{icon:ti}),label:(0,bt.__)("Dismiss this notice","extendify"),onClick:c,showTooltip:!1})})]}):null}function pi(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function hi(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){pi(i,r,o,a,s,"next",e)}function s(e){pi(i,r,o,a,s,"throw",e)}a(void 0)}))}}function mi(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return xi(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return xi(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function xi(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var yi=function(){var e=mi((0,r.useState)((0,bt.__)("Install Extendify","extendify")),2),t=e[0],n=e[1],o=mi((0,r.useState)(!1),2),i=o[0],a=o[1],s=mi((0,r.useState)(!1),2),l=s[0],c=s[1],u=(0,r.useRef)(null),d=z((function(e){return e.markNoticeSeen})),f=z((function(e){return e.giveFreebieImports})),p=g((function(e){return e.removeAllModals})),h=function(){var e=hi(w().mark((function e(){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return p(),d("standalone","modalNotices"),e.next=4,ri("stln-modal-x");case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,Nt.jsxs)(Fo,{ref:u,onClose:h,children:[(0,Nt.jsxs)("div",{children:[(0,Nt.jsx)("div",{className:"flex space-x-2 items-center mb-10 text-extendify-black",children:Ln}),(0,Nt.jsx)("h3",{className:"text-xl",children:(0,bt.__)("Get the brand new Extendify plugin today!","extendify")}),(0,Nt.jsx)("p",{className:"text-sm text-black",dangerouslySetInnerHTML:{__html:Vn((0,bt.sprintf)((0,bt.__)("Install the new Extendify Library plugin to get the latest we have to offer — right from WordPress.org. Plus, well send you %1$s10 more imports%2$s. Nice.","extendify"),"<strong>","</strong>"))}}),(0,Nt.jsx)("div",{children:(0,Nt.jsxs)("button",{onClick:function(){n((0,bt.__)("Installing...","extendify")),c(!0),Promise.all([ri("stln-modal-install"),Wr(["extendify"]),new Promise((function(e){return setTimeout(e,1e3)}))]).then(hi(w().mark((function e(){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n((0,bt.__)("Success! Reloading...","extendify")),a(!0),f(10),e.next=5,ri("stln-modal-success");case 5:window.location.reload();case 6:case"end":return e.stop()}}),e)})))).catch(function(){var e=hi(w().mark((function e(t){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return console.error(t),n((0,bt.__)("Error. See console.","extendify")),e.next=4,ri("stln-modal-fail");case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())},ref:u,disabled:l,className:"button-extendify-main inline-flex mt-2 px-4 py-3 button-focus justify-center",style:{minWidth:"225px"},children:[t,i||(0,Nt.jsx)(wt.Icon,{icon:Dn,size:24,className:"w-6 ml-2 flex-grow-0"})]})})]}),(0,Nt.jsx)("div",{className:"w-full bg-extendify-secondary flex justify-end rounded-tr-sm rounded-br-sm",children:(0,Nt.jsx)("img",{alt:(0,bt.__)("Upgrade Now","extendify"),className:"max-w-full rounded-tr-sm roudned-br-sm",src:window.extendifyData.asset_path+"/modal-extendify-purple.png"})})]})};function vi(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return gi(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return gi(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function gi(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function bi(){var e=(0,r.useRef)(null),t=g((function(e){return e.open})),n=g((function(e){return e.setOpen})),o=function(){var e=vi((0,r.useState)(null),2),t=e[0],n=e[1],o=g((function(e){return e.open})),i=g((function(e){return e.pushModal})),a=g((function(e){return e.removeAllModals}));return(0,r.useEffect)((function(){return g.subscribe((function(e){return n((null==e?void 0:e.length)>0?e[0]:null)}),(function(e){return e.modals}))}),[]),(0,r.useEffect)((function(){var e;if(o){var t={standalone:yi},n=t[null!==(e=Object.keys(t).find((function(e){return"standalone"===e?!window.extendifyData.standalone&&!z.getState().modalNoticesDismissedAt[e]:!z.getState().modalNoticesDismissedAt[e]})))&&void 0!==e?e:null];n&&i((0,Nt.jsx)(n,{}))}else a()}),[o,i,a]),t}();return(0,Nt.jsx)(Ie,{appear:!0,show:t,as:r.Fragment,children:(0,Nt.jsx)(gt,{as:"div",static:!0,className:"extendify",initialFocus:e,onClose:function(){return n(!1)},children:(0,Nt.jsx)("div",{className:"h-screen w-screen sm:h-auto m-auto sm:w-auto fixed z-high inset-0 overflow-y-auto",children:(0,Nt.jsxs)("div",{className:"flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0",children:[(0,Nt.jsx)(Ie.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",children:(0,Nt.jsx)(gt.Overlay,{className:"fixed inset-0 bg-black bg-opacity-40 transition-opacity"})}),(0,Nt.jsx)(Ie.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-5",enterTo:"opacity-100 translate-y-0",children:(0,Nt.jsxs)("div",{ref:e,tabIndex:"0",onClick:function(e){return e.target===e.currentTarget&&n(!1)},className:"fixed lg:absolute inset-0 lg:overflow-hidden transform transition-all p-2 lg:p-16",children:[(0,Nt.jsx)(Qo,{}),(0,Nt.jsx)(fi,{}),o]})})]})})})})}const wi=wp.compose,ji=wp.hooks,ki=JSON.parse('{"t":["ext-absolute","ext-relative","ext-top-base","ext-top-lg","ext--top-base","ext--top-lg","ext-right-base","ext-right-lg","ext--right-base","ext--right-lg","ext-bottom-base","ext-bottom-lg","ext--bottom-base","ext--bottom-lg","ext-left-base","ext-left-lg","ext--left-base","ext--left-lg","ext-order-1","ext-order-2","ext-col-auto","ext-col-span-1","ext-col-span-2","ext-col-span-3","ext-col-span-4","ext-col-span-5","ext-col-span-6","ext-col-span-7","ext-col-span-8","ext-col-span-9","ext-col-span-10","ext-col-span-11","ext-col-span-12","ext-col-span-full","ext-col-start-1","ext-col-start-2","ext-col-start-3","ext-col-start-4","ext-col-start-5","ext-col-start-6","ext-col-start-7","ext-col-start-8","ext-col-start-9","ext-col-start-10","ext-col-start-11","ext-col-start-12","ext-col-start-13","ext-col-start-auto","ext-col-end-1","ext-col-end-2","ext-col-end-3","ext-col-end-4","ext-col-end-5","ext-col-end-6","ext-col-end-7","ext-col-end-8","ext-col-end-9","ext-col-end-10","ext-col-end-11","ext-col-end-12","ext-col-end-13","ext-col-end-auto","ext-row-auto","ext-row-span-1","ext-row-span-2","ext-row-span-3","ext-row-span-4","ext-row-span-5","ext-row-span-6","ext-row-span-full","ext-row-start-1","ext-row-start-2","ext-row-start-3","ext-row-start-4","ext-row-start-5","ext-row-start-6","ext-row-start-7","ext-row-start-auto","ext-row-end-1","ext-row-end-2","ext-row-end-3","ext-row-end-4","ext-row-end-5","ext-row-end-6","ext-row-end-7","ext-row-end-auto","ext-m-0","ext-m-auto","ext-m-base","ext-m-lg","ext--m-base","ext--m-lg","ext-mx-0","ext-mx-auto","ext-mx-base","ext-mx-lg","ext--mx-base","ext--mx-lg","ext-my-0","ext-my-auto","ext-my-base","ext-my-lg","ext--my-base","ext--my-lg","ext-mt-0","ext-mt-auto","ext-mt-base","ext-mt-lg","ext--mt-base","ext--mt-lg","ext-mr-0","ext-mr-auto","ext-mr-base","ext-mr-lg","ext--mr-base","ext--mr-lg","ext-mb-0","ext-mb-auto","ext-mb-base","ext-mb-lg","ext--mb-base","ext--mb-lg","ext-ml-0","ext-ml-auto","ext-ml-base","ext-ml-lg","ext--ml-base","ext--ml-lg","ext-block","ext-inline-block","ext-inline","ext-flex","ext-inline-flex","ext-grid","ext-inline-grid","ext-hidden","ext-w-auto","ext-w-full","ext-max-w-full","ext-flex-1","ext-flex-auto","ext-flex-initial","ext-flex-none","ext-flex-shrink-0","ext-flex-shrink","ext-flex-grow-0","ext-flex-grow","ext-list-none","ext-grid-cols-1","ext-grid-cols-2","ext-grid-cols-3","ext-grid-cols-4","ext-grid-cols-5","ext-grid-cols-6","ext-grid-cols-7","ext-grid-cols-8","ext-grid-cols-9","ext-grid-cols-10","ext-grid-cols-11","ext-grid-cols-12","ext-grid-cols-none","ext-grid-rows-1","ext-grid-rows-2","ext-grid-rows-3","ext-grid-rows-4","ext-grid-rows-5","ext-grid-rows-6","ext-grid-rows-none","ext-flex-row","ext-flex-row-reverse","ext-flex-col","ext-flex-col-reverse","ext-flex-wrap","ext-flex-wrap-reverse","ext-flex-nowrap","ext-items-start","ext-items-end","ext-items-center","ext-items-baseline","ext-items-stretch","ext-justify-start","ext-justify-end","ext-justify-center","ext-justify-between","ext-justify-around","ext-justify-evenly","ext-justify-items-start","ext-justify-items-end","ext-justify-items-center","ext-justify-items-stretch","ext-gap-0","ext-gap-base","ext-gap-lg","ext-gap-x-0","ext-gap-x-base","ext-gap-x-lg","ext-gap-y-0","ext-gap-y-base","ext-gap-y-lg","ext-justify-self-auto","ext-justify-self-start","ext-justify-self-end","ext-justify-self-center","ext-justify-self-stretch","ext-rounded-none","ext-rounded-full","ext-rounded-t-none","ext-rounded-t-full","ext-rounded-r-none","ext-rounded-r-full","ext-rounded-b-none","ext-rounded-b-full","ext-rounded-l-none","ext-rounded-l-full","ext-rounded-tl-none","ext-rounded-tl-full","ext-rounded-tr-none","ext-rounded-tr-full","ext-rounded-br-none","ext-rounded-br-full","ext-rounded-bl-none","ext-rounded-bl-full","ext-border-0","ext-border-t-0","ext-border-r-0","ext-border-b-0","ext-border-l-0","ext-p-0","ext-p-base","ext-p-lg","ext-px-0","ext-px-base","ext-px-lg","ext-py-0","ext-py-base","ext-py-lg","ext-pt-0","ext-pt-base","ext-pt-lg","ext-pr-0","ext-pr-base","ext-pr-lg","ext-pb-0","ext-pb-base","ext-pb-lg","ext-pl-0","ext-pl-base","ext-pl-lg","ext-text-left","ext-text-center","ext-text-right","ext-leading-none","ext-leading-tight","ext-leading-snug","ext-leading-normal","ext-leading-relaxed","ext-leading-loose","clip-path--rhombus","clip-path--diamond","clip-path--rhombus-alt","wp-block-columns[class*=\\"fullwidth-cols\\"]\\n","tablet\\\\:fullwidth-cols","desktop\\\\:fullwidth-cols","direction-rtl","direction-ltr","bring-to-front","text-stroke","text-stroke--primary","text-stroke--secondary","editor\\\\:no-caption","editor\\\\:no-inserter","editor\\\\:no-resize","editor\\\\:pointer-events-none","tablet\\\\:ext-absolute","tablet\\\\:ext-relative","tablet\\\\:ext-top-base","tablet\\\\:ext-top-lg","tablet\\\\:ext--top-base","tablet\\\\:ext--top-lg","tablet\\\\:ext-right-base","tablet\\\\:ext-right-lg","tablet\\\\:ext--right-base","tablet\\\\:ext--right-lg","tablet\\\\:ext-bottom-base","tablet\\\\:ext-bottom-lg","tablet\\\\:ext--bottom-base","tablet\\\\:ext--bottom-lg","tablet\\\\:ext-left-base","tablet\\\\:ext-left-lg","tablet\\\\:ext--left-base","tablet\\\\:ext--left-lg","tablet\\\\:ext-order-1","tablet\\\\:ext-order-2","tablet\\\\:ext-m-0","tablet\\\\:ext-m-auto","tablet\\\\:ext-m-base","tablet\\\\:ext-m-lg","tablet\\\\:ext--m-base","tablet\\\\:ext--m-lg","tablet\\\\:ext-mx-0","tablet\\\\:ext-mx-auto","tablet\\\\:ext-mx-base","tablet\\\\:ext-mx-lg","tablet\\\\:ext--mx-base","tablet\\\\:ext--mx-lg","tablet\\\\:ext-my-0","tablet\\\\:ext-my-auto","tablet\\\\:ext-my-base","tablet\\\\:ext-my-lg","tablet\\\\:ext--my-base","tablet\\\\:ext--my-lg","tablet\\\\:ext-mt-0","tablet\\\\:ext-mt-auto","tablet\\\\:ext-mt-base","tablet\\\\:ext-mt-lg","tablet\\\\:ext--mt-base","tablet\\\\:ext--mt-lg","tablet\\\\:ext-mr-0","tablet\\\\:ext-mr-auto","tablet\\\\:ext-mr-base","tablet\\\\:ext-mr-lg","tablet\\\\:ext--mr-base","tablet\\\\:ext--mr-lg","tablet\\\\:ext-mb-0","tablet\\\\:ext-mb-auto","tablet\\\\:ext-mb-base","tablet\\\\:ext-mb-lg","tablet\\\\:ext--mb-base","tablet\\\\:ext--mb-lg","tablet\\\\:ext-ml-0","tablet\\\\:ext-ml-auto","tablet\\\\:ext-ml-base","tablet\\\\:ext-ml-lg","tablet\\\\:ext--ml-base","tablet\\\\:ext--ml-lg","tablet\\\\:ext-block","tablet\\\\:ext-inline-block","tablet\\\\:ext-inline","tablet\\\\:ext-flex","tablet\\\\:ext-inline-flex","tablet\\\\:ext-grid","tablet\\\\:ext-inline-grid","tablet\\\\:ext-hidden","tablet\\\\:ext-w-auto","tablet\\\\:ext-w-full","tablet\\\\:ext-max-w-full","tablet\\\\:ext-flex-1","tablet\\\\:ext-flex-auto","tablet\\\\:ext-flex-initial","tablet\\\\:ext-flex-none","tablet\\\\:ext-flex-shrink-0","tablet\\\\:ext-flex-shrink","tablet\\\\:ext-flex-grow-0","tablet\\\\:ext-flex-grow","tablet\\\\:ext-list-none","tablet\\\\:ext-grid-cols-1","tablet\\\\:ext-grid-cols-2","tablet\\\\:ext-grid-cols-3","tablet\\\\:ext-grid-cols-4","tablet\\\\:ext-grid-cols-5","tablet\\\\:ext-grid-cols-6","tablet\\\\:ext-grid-cols-7","tablet\\\\:ext-grid-cols-8","tablet\\\\:ext-grid-cols-9","tablet\\\\:ext-grid-cols-10","tablet\\\\:ext-grid-cols-11","tablet\\\\:ext-grid-cols-12","tablet\\\\:ext-grid-cols-none","tablet\\\\:ext-flex-row","tablet\\\\:ext-flex-row-reverse","tablet\\\\:ext-flex-col","tablet\\\\:ext-flex-col-reverse","tablet\\\\:ext-flex-wrap","tablet\\\\:ext-flex-wrap-reverse","tablet\\\\:ext-flex-nowrap","tablet\\\\:ext-items-start","tablet\\\\:ext-items-end","tablet\\\\:ext-items-center","tablet\\\\:ext-items-baseline","tablet\\\\:ext-items-stretch","tablet\\\\:ext-justify-start","tablet\\\\:ext-justify-end","tablet\\\\:ext-justify-center","tablet\\\\:ext-justify-between","tablet\\\\:ext-justify-around","tablet\\\\:ext-justify-evenly","tablet\\\\:ext-justify-items-start","tablet\\\\:ext-justify-items-end","tablet\\\\:ext-justify-items-center","tablet\\\\:ext-justify-items-stretch","tablet\\\\:ext-justify-self-auto","tablet\\\\:ext-justify-self-start","tablet\\\\:ext-justify-self-end","tablet\\\\:ext-justify-self-center","tablet\\\\:ext-justify-self-stretch","tablet\\\\:ext-p-0","tablet\\\\:ext-p-base","tablet\\\\:ext-p-lg","tablet\\\\:ext-px-0","tablet\\\\:ext-px-base","tablet\\\\:ext-px-lg","tablet\\\\:ext-py-0","tablet\\\\:ext-py-base","tablet\\\\:ext-py-lg","tablet\\\\:ext-pt-0","tablet\\\\:ext-pt-base","tablet\\\\:ext-pt-lg","tablet\\\\:ext-pr-0","tablet\\\\:ext-pr-base","tablet\\\\:ext-pr-lg","tablet\\\\:ext-pb-0","tablet\\\\:ext-pb-base","tablet\\\\:ext-pb-lg","tablet\\\\:ext-pl-0","tablet\\\\:ext-pl-base","tablet\\\\:ext-pl-lg","tablet\\\\:ext-text-left","tablet\\\\:ext-text-center","tablet\\\\:ext-text-right","desktop\\\\:ext-absolute","desktop\\\\:ext-relative","desktop\\\\:ext-top-base","desktop\\\\:ext-top-lg","desktop\\\\:ext--top-base","desktop\\\\:ext--top-lg","desktop\\\\:ext-right-base","desktop\\\\:ext-right-lg","desktop\\\\:ext--right-base","desktop\\\\:ext--right-lg","desktop\\\\:ext-bottom-base","desktop\\\\:ext-bottom-lg","desktop\\\\:ext--bottom-base","desktop\\\\:ext--bottom-lg","desktop\\\\:ext-left-base","desktop\\\\:ext-left-lg","desktop\\\\:ext--left-base","desktop\\\\:ext--left-lg","desktop\\\\:ext-order-1","desktop\\\\:ext-order-2","desktop\\\\:ext-m-0","desktop\\\\:ext-m-auto","desktop\\\\:ext-m-base","desktop\\\\:ext-m-lg","desktop\\\\:ext--m-base","desktop\\\\:ext--m-lg","desktop\\\\:ext-mx-0","desktop\\\\:ext-mx-auto","desktop\\\\:ext-mx-base","desktop\\\\:ext-mx-lg","desktop\\\\:ext--mx-base","desktop\\\\:ext--mx-lg","desktop\\\\:ext-my-0","desktop\\\\:ext-my-auto","desktop\\\\:ext-my-base","desktop\\\\:ext-my-lg","desktop\\\\:ext--my-base","desktop\\\\:ext--my-lg","desktop\\\\:ext-mt-0","desktop\\\\:ext-mt-auto","desktop\\\\:ext-mt-base","desktop\\\\:ext-mt-lg","desktop\\\\:ext--mt-base","desktop\\\\:ext--mt-lg","desktop\\\\:ext-mr-0","desktop\\\\:ext-mr-auto","desktop\\\\:ext-mr-base","desktop\\\\:ext-mr-lg","desktop\\\\:ext--mr-base","desktop\\\\:ext--mr-lg","desktop\\\\:ext-mb-0","desktop\\\\:ext-mb-auto","desktop\\\\:ext-mb-base","desktop\\\\:ext-mb-lg","desktop\\\\:ext--mb-base","desktop\\\\:ext--mb-lg","desktop\\\\:ext-ml-0","desktop\\\\:ext-ml-auto","desktop\\\\:ext-ml-base","desktop\\\\:ext-ml-lg","desktop\\\\:ext--ml-base","desktop\\\\:ext--ml-lg","desktop\\\\:ext-block","desktop\\\\:ext-inline-block","desktop\\\\:ext-inline","desktop\\\\:ext-flex","desktop\\\\:ext-inline-flex","desktop\\\\:ext-grid","desktop\\\\:ext-inline-grid","desktop\\\\:ext-hidden","desktop\\\\:ext-w-auto","desktop\\\\:ext-w-full","desktop\\\\:ext-max-w-full","desktop\\\\:ext-flex-1","desktop\\\\:ext-flex-auto","desktop\\\\:ext-flex-initial","desktop\\\\:ext-flex-none","desktop\\\\:ext-flex-shrink-0","desktop\\\\:ext-flex-shrink","desktop\\\\:ext-flex-grow-0","desktop\\\\:ext-flex-grow","desktop\\\\:ext-list-none","desktop\\\\:ext-grid-cols-1","desktop\\\\:ext-grid-cols-2","desktop\\\\:ext-grid-cols-3","desktop\\\\:ext-grid-cols-4","desktop\\\\:ext-grid-cols-5","desktop\\\\:ext-grid-cols-6","desktop\\\\:ext-grid-cols-7","desktop\\\\:ext-grid-cols-8","desktop\\\\:ext-grid-cols-9","desktop\\\\:ext-grid-cols-10","desktop\\\\:ext-grid-cols-11","desktop\\\\:ext-grid-cols-12","desktop\\\\:ext-grid-cols-none","desktop\\\\:ext-flex-row","desktop\\\\:ext-flex-row-reverse","desktop\\\\:ext-flex-col","desktop\\\\:ext-flex-col-reverse","desktop\\\\:ext-flex-wrap","desktop\\\\:ext-flex-wrap-reverse","desktop\\\\:ext-flex-nowrap","desktop\\\\:ext-items-start","desktop\\\\:ext-items-end","desktop\\\\:ext-items-center","desktop\\\\:ext-items-baseline","desktop\\\\:ext-items-stretch","desktop\\\\:ext-justify-start","desktop\\\\:ext-justify-end","desktop\\\\:ext-justify-center","desktop\\\\:ext-justify-between","desktop\\\\:ext-justify-around","desktop\\\\:ext-justify-evenly","desktop\\\\:ext-justify-items-start","desktop\\\\:ext-justify-items-end","desktop\\\\:ext-justify-items-center","desktop\\\\:ext-justify-items-stretch","desktop\\\\:ext-justify-self-auto","desktop\\\\:ext-justify-self-start","desktop\\\\:ext-justify-self-end","desktop\\\\:ext-justify-self-center","desktop\\\\:ext-justify-self-stretch","desktop\\\\:ext-p-0","desktop\\\\:ext-p-base","desktop\\\\:ext-p-lg","desktop\\\\:ext-px-0","desktop\\\\:ext-px-base","desktop\\\\:ext-px-lg","desktop\\\\:ext-py-0","desktop\\\\:ext-py-base","desktop\\\\:ext-py-lg","desktop\\\\:ext-pt-0","desktop\\\\:ext-pt-base","desktop\\\\:ext-pt-lg","desktop\\\\:ext-pr-0","desktop\\\\:ext-pr-base","desktop\\\\:ext-pr-lg","desktop\\\\:ext-pb-0","desktop\\\\:ext-pb-base","desktop\\\\:ext-pb-lg","desktop\\\\:ext-pl-0","desktop\\\\:ext-pl-base","desktop\\\\:ext-pl-lg","desktop\\\\:ext-text-left","desktop\\\\:ext-text-center","desktop\\\\:ext-text-right"]}');function Ci(e){return function(e){if(Array.isArray(e))return Si(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Si(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Si(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Si(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Oi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ei(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Oi(Object(n),!0).forEach((function(t){_i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Oi(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ni=(0,wi.createHigherOrderComponent)((function(e){return function(t){var n,r,o=null!==(n=null==t||null===(r=t.attributes)||void 0===r?void 0:r.extUtilities)&&void 0!==n?n:[],i=ki.t.map((function(e){return e.replace(".","").replace(new RegExp("\\\\","g"),"")}));return(0,Nt.jsxs)(Nt.Fragment,{children:[(0,Nt.jsx)(e,Ei({},t)),o&&(0,Nt.jsx)(Br.InspectorAdvancedControls,{children:(0,Nt.jsx)(wt.FormTokenField,{label:(0,bt.__)("Extendify Utilities","extendify"),tokenizeOnSpace:!0,value:o,suggestions:i,onChange:function(e){t.setAttributes({extUtilities:e})}})})]})}}),"utilityClassEdit");function Ai(e,t,n){var r,o,i,a=null!==(r=null==e?void 0:e.className)&&void 0!==r?r:[],s=null!==(o=null==n?void 0:n.extUtilities)&&void 0!==o?o:[],l=null!==(i=null==n?void 0:n.className)&&void 0!==i?i:[];if(!s||!Object.keys(s).length)return e;var c=function(e){switch(Object.prototype.toString.call(e)){case"[object String]":return e.split(" ");case"[object Array]":return e;default:return[]}},u=new Set([].concat(Ci(c(l)),Ci(c(a)),Ci(c(s))));return Object.assign({},e,{className:Ci(u).join(" ")})}function Pi(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}(0,ji.addFilter)("blocks.registerBlockType","extendify/utilities/attributes",(function(e){return Ei(Ei({},e),{},{attributes:Ei(Ei({},e.attributes),{},{extUtilities:{type:"array",default:[]}})})})),(0,ji.addFilter)("blocks.registerBlockType","extendify/utilities/addEditProps",(function(e){var t=e.getEditWrapperProps;return e.getEditWrapperProps=function(n){var r={};return t&&(r=t(n)),Ai(r,e,n)},e})),(0,ji.addFilter)("editor.BlockEdit","extendify/utilities/advancedClassControls",Ni),(0,ji.addFilter)("blocks.getSaveContent.extraProps","extendify/utilities/extra-props",Ai);var Ti=function(){return(e=w().mark((function e(){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,k.get("taxonomies");case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Pi(i,r,o,a,s,"next",e)}function s(e){Pi(i,r,o,a,s,"throw",e)}a(void 0)}))})();var e};function Ii(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Li(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Ii(i,r,o,a,s,"next",e)}function s(e){Ii(i,r,o,a,s,"throw",e)}a(void 0)}))}}function Mi(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Ri(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ri(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ri(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Di(e){var t=e.show,n=void 0!==t&&t,o=g((function(e){return e.open})),i=g((function(e){return e.setOpen})),a=Mi((0,r.useState)(!1),2),s=a[0],l=a[1],c=(0,r.useCallback)((function(){return i(!0)}),[i]),u=(0,r.useCallback)((function(){return i(!1)}),[i]),d=K((function(e){return e.initTemplateData})),f=z((function(e){return e.uuid.length>0})),p=K((function(e){return Object.keys(e.taxonomyDefaultState).length>0}));return function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=K((function(e){return e.setupDefaultTaxonomies})),n=U((function(e){return e.setTaxonomies})),o=(0,r.useCallback)(Li(w().mark((function e(){var r,o;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Ti();case 2:if(o=e.sent,o=Object.keys(o).reduce((function(e,t){return e[t]=o[t],e}),{}),null!==(r=Object.keys(o))&&void 0!==r&&r.length){e.next=6;break}return e.abrupt("return");case 6:n(o),t();case 8:case"end":return e.stop()}}),e)}))),[n,t]);(0,r.useEffect)((function(){e&&o()}),[o,e])}(o),(0,r.useEffect)((function(){f&&p&&(d(),l(!0))}),[f,p,d]),(0,r.useEffect)((function(){n&&i(!0)}),[n,i]),(0,r.useEffect)((function(){ni().then((function(e){g.setState({metaData:e})}))}),[]),(0,r.useEffect)((function(){return window.addEventListener("extendify::open-library",c),window.addEventListener("extendify::close-library",u),function(){window.removeEventListener("extendify::open-library",c),window.removeEventListener("extendify::close-library",u)}}),[u,c]),s?(0,Nt.jsx)(bi,{}):null}const Fi=wp.plugins,Bi=wp.editPost;var zi=function(){return k.get("site-settings")},Ui=function(e){var t=new FormData;return t.append("data",JSON.stringify(e)),k.post("site-settings",t,{headers:{"Content-Type":"multipart/form-data"}})};function Wi(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function qi(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Wi(i,r,o,a,s,"next",e)}function s(e){Wi(i,r,o,a,s,"throw",e)}a(void 0)}))}}var $i={getItem:function(){var e=qi(w().mark((function e(){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,zi();case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),setItem:function(){var e=qi(w().mark((function e(t,n){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Ui(n);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),removeItem:function(){}},Hi=l(x((function(){return{enabled:!0}}),{name:"extendify-sitesettings",getStorage:function(){return $i}}));function Vi(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Gi(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Vi(i,r,o,a,s,"next",e)}function s(e){Vi(i,r,o,a,s,"throw",e)}a(void 0)}))}}function Ji(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Ki(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ki(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ki(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}const Zi=function(){var e=(0,eo.useSelect)((function(e){return e("core").canUser("create","users")})),t=Ji((0,r.useState)(z((function(e){return e.enabled}))),2),n=t[0],o=t[1],i=Ji((0,r.useState)(Hi((function(e){return e.enabled}))),2),a=i[0],s=i[1];function l(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=document.getElementById("extendify-templates-inserter-btn");t&&(e?t.classList.add("invisible"):t.classList.remove("invisible"))}function c(e){return u.apply(this,arguments)}function u(){return(u=Gi(w().mark((function e(t){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,z.setState({enabled:t});case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function d(e){return f.apply(this,arguments)}function f(){return(f=Gi(w().mark((function e(t){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Hi.setState({enabled:t});case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function p(e,t){return h.apply(this,arguments)}function h(){return h=Gi(w().mark((function e(t,n){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("global"!==n){e.next=5;break}return e.next=3,d(t);case 3:e.next=7;break;case 5:return e.next=7,c(t);case 7:case"end":return e.stop()}}),e)}))),h.apply(this,arguments)}function m(e){"global"===e?s((function(t){return p(!t,e),!t})):o((function(t){return l(!t),p(!t,e),!t}))}return(0,r.useEffect)((function(){l(!n)}),[n]),(0,Nt.jsxs)(wt.Modal,{title:(0,bt.__)("Extendify Settings","extendify"),onRequestClose:function(){var e=document.getElementById("extendify-util");(0,r.unmountComponentAtNode)(e)},children:[(0,Nt.jsx)(wt.ToggleControl,{label:e?(0,bt.__)("Enable the library for myself","extendify"):(0,bt.__)("Enable the library","extendify"),help:(0,bt.__)("Publish with hundreds of patterns & page layouts","extendify"),checked:n,onChange:function(){return m("user")}}),e&&(0,Nt.jsxs)(Nt.Fragment,{children:[(0,Nt.jsx)("br",{}),(0,Nt.jsx)(wt.ToggleControl,{label:(0,bt.__)("Allow all users to publish with the library"),help:(0,bt.__)("Everyone publishes with patterns & page layouts","extendify"),checked:a,onChange:function(){return m("global")}})]})]})};var Xi=function(e){var t=e.anchorRef,n=e.onPressX,r=e.onClick,o=e.onClickOutside;return t.current?(0,Nt.jsx)(wt.Popover,{anchorRef:t.current,shouldAnchorIncludePadding:!0,className:"extendify-tooltip-default",focusOnMount:!1,onFocusOutside:o,onClick:r,position:"bottom center",noArrow:!1,children:(0,Nt.jsxs)(Nt.Fragment,{children:[(0,Nt.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"0.5rem"},children:[(0,Nt.jsx)("span",{style:{textTransform:"uppercase",color:"#8b8b8b"},children:(0,bt.__)("Monthly Imports","extendify")}),(0,Nt.jsx)(wt.Button,{style:{color:"white",position:"relative",right:"-5px",padding:"0",minWidth:"0",height:"20px",width:"20px"},onClick:function(e){e.stopPropagation(),n()},icon:(0,Nt.jsx)(Sn,{icon:Zn,size:12}),showTooltip:!1,label:(0,bt.__)("Close callout","extendify")})]}),(0,Nt.jsx)("div",{dangerouslySetInnerHTML:{__html:Vn((0,bt.sprintf)((0,bt.__)("%1$sGood news!%2$s We've added more imports to your library. Enjoy!","extendify"),"<strong>","</strong>"))}})]})}):null};function Yi(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Qi(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Yi(i,r,o,a,s,"next",e)}function s(e){Yi(i,r,o,a,s,"throw",e)}a(void 0)}))}}function ea(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ta(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ta(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ta(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var na,ra,oa=function(){var e=ea((0,r.useState)(!1),2),t=e[0],n=e[1],o=(0,r.useRef)(!1),i=(0,r.useRef)(),a=z((function(e){return e.apiKey.length})),s=z((function(e){return e.imports>0})),l=g((function(e){return e.open})),c=z((function(e){return 0===e.allowedImports})),u=function(){var e=Qi(w().mark((function e(){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ri("mb-tooltip-closed");case 2:n(!1),z.setState({allowedImports:-1});case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,r.useEffect)((function(){l&&(n(!1),o.current=!0),!a&&c&&s&&(o.current||n(!0),o.current=!0)}),[a,c,s,l]),(0,Nt.jsxs)(Nt.Fragment,{children:[(0,Nt.jsx)(wt.Button,{isPrimary:!0,ref:i,style:{padding:"12px"},onClick:function(){return St("main-button")},id:"extendify-templates-inserter-btn",icon:(0,Nt.jsx)(Sn,{style:{marginRight:"4px"},icon:In,size:24}),children:(0,bt.__)("Library","extendify")}),t&&(0,Nt.jsx)(Xi,{anchorRef:i,onClick:Qi(w().mark((function e(){return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ri("mb-tooltip-pressed");case 2:St("main-button-tooltip");case 3:case"end":return e.stop()}}),e)}))),onPressX:u})]})},ia=function(){return(0,Nt.jsx)(wt.Button,{id:"extendify-cta-button",style:{margin:"1rem 1rem 0",width:"calc(100% - 2rem)",justifyContent:" center"},onClick:function(){return St("patterns-cta")},isSecondary:!0,children:(0,bt.__)("Discover patterns in Extendify Library","extendify")})},aa=null===(na=window.extendifyData)||void 0===na||null===(ra=na.user)||void 0===ra?void 0:ra.state,sa=function(){return null===window.extendifyData.user||(null==aa?void 0:aa.isAdmin)},la=function(){var e,t,n;return null===window.extendifyData.sitesettings||(null===(e=window.extendifyData)||void 0===e||null===(t=e.sitesettings)||void 0===t||null===(n=t.state)||void 0===n?void 0:n.enabled)};if(window._wpLoadBlockEditor)var ca=window.wp.data.subscribe((function(){requestAnimationFrame((function(){if((la()||sa())&&!document.getElementById("extendify-templates-inserter")&&document.querySelector(".edit-post-header-toolbar")){var e=Object.assign(document.createElement("div"),{id:"extendify-templates-inserter"});document.querySelector(".edit-post-header-toolbar").append(e),(0,r.render)((0,Nt.jsx)(oa,{}),e),(null===window.extendifyData.user?la():null==aa?void 0:aa.enabled)||document.getElementById("extendify-templates-inserter-btn").classList.add("invisible"),ca()}}))}));window._wpLoadBlockEditor&&window.wp.data.subscribe((function(){requestAnimationFrame((function(){if((la()||sa())&&document.querySelector("[id$=patterns-view]")&&!document.getElementById("extendify-cta-button")){var e=Object.assign(document.createElement("div"),{id:"extendify-cta-button-container"});document.querySelector("[id$=patterns-view]").prepend(e),(0,r.render)((0,Nt.jsx)(ia,{}),e)}}))}));window._wpLoadBlockEditor&&(0,Fi.registerPlugin)("extendify-settings-enable-disable",{render:function(){return(0,Nt.jsx)(Nt.Fragment,{children:(0,Nt.jsxs)(Bi.PluginSidebarMoreMenuItem,{onClick:function(){var e=document.getElementById("extendify-util");(0,r.render)((0,Nt.jsx)(Zi,{}),e)},icon:(0,Nt.jsx)(Sn,{icon:In,size:24}),children:[" ",(0,bt.__)("Extendify","extendify")]})})}}),[{register:function(){var e=(0,eo.dispatch)("core/notices").createNotice,t=z.getState().incrementImports;window.addEventListener("extendify::template-inserted",(function(n){e("info",(0,bt.__)("Page layout added"),{isDismissible:!0,type:"snackbar"}),setTimeout((function(){var e;t(),Or(null===(e=n.detail)||void 0===e?void 0:e.template)}),0)}))}},{register:function(){var e=this;window.addEventListener("extendify::softerror-encountered",(function(t){e[(0,Ct.camelCase)(t.detail.type)](t.detail)}))},versionOutdated:function(e){(0,r.render)((0,Nt.jsx)(lo,{title:e.data.title,requiredPlugins:["extendify"],message:e.data.message,buttonLabel:e.data.buttonLabel,forceOpen:!0}),document.getElementById("extendify-root"))}}].forEach((function(e){return e.register()}));const ua=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"extendify/library","title":"Pattern Library","category":"design","description":"Add block patterns and full page layouts with the Extendify Library.","keywords":["pattern","extendify","library","template","layouts"],"textdomain":"extendify","attributes":{"preview":{"type":"string"}}}');(0,zr.registerBlockType)(ua,{icon:Tn,example:{attributes:{preview:window.extendifyData.asset_path+"/preview.png"}},edit:function(e){var t=e.clientId,n=e.attributes,o=(0,eo.useDispatch)("core/block-editor").removeBlock;return(0,r.useEffect)((function(){n.preview||(Ot("library-block","open"),o(t))}),[t,n,o]),(0,Nt.jsx)("img",{style:{display:"block",maxWidth:"100%"},src:n.preview,alt:(0,bt.sprintf)((0,bt.__)("%s Pattern Library","extendify"),"Extendify")})}}),window._wpLoadBlockEditor&&window.wp.domReady((function(){var e=Object.assign(document.createElement("div"),{id:"extendify-root"});if(document.body.append(e),(0,r.render)((0,Nt.jsx)(Di,{}),e),e.parentNode.insertBefore(Object.assign(document.createElement("div"),{id:"extendify-util"}),e.nextSibling),Yr.getState().importOnLoad){var t=Yr.getState().wantedTemplate;setTimeout((function(){Io((0,zr.rawHandler)({HTML:t.fields.code}),t)}),0)}Yr.setState({importOnLoad:!1,wantedTemplate:{}})}))},42:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var i=typeof n;if("string"===i||"number"===i)e.push(n);else if(Array.isArray(n)){if(n.length){var a=o.apply(null,n);a&&e.push(a)}}else if("object"===i)if(n.toString===Object.prototype.toString)for(var s in n)r.call(n,s)&&n[s]&&e.push(s);else e.push(n.toString())}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},12:(e,t,n)=>{"use strict";var r=n(185),o={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,i,a,s,l,c,u=!1;t||(t={}),n=t.debug||!1;try{if(a=r(),s=document.createRange(),l=document.getSelection(),(c=document.createElement("span")).textContent=e,c.style.all="unset",c.style.position="fixed",c.style.top=0,c.style.clip="rect(0, 0, 0, 0)",c.style.whiteSpace="pre",c.style.webkitUserSelect="text",c.style.MozUserSelect="text",c.style.msUserSelect="text",c.style.userSelect="text",c.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),void 0===r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=o[t.format]||o.default;window.clipboardData.setData(i,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(c),s.selectNodeContents(c),l.addRange(s),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(r){n&&console.error("unable to copy using execCommand: ",r),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(r){n&&console.error("unable to copy using clipboardData: ",r),n&&console.error("falling back to prompt"),i=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(s):l.removeAllRanges()),c&&document.body.removeChild(c),a()}return u}},716:()=>{},965:()=>{},525:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,i){for(var a,s,l=o(e),c=1;c<arguments.length;c++){for(var u in a=Object(arguments[c]))n.call(a,u)&&(l[u]=a[u]);if(t){s=t(a);for(var d=0;d<s.length;d++)r.call(a,s[d])&&(l[s[d]]=a[s[d]])}}return l}},61:e=>{var t,n,r=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===o||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:o}catch(e){t=o}try{n="function"==typeof clearTimeout?clearTimeout:i}catch(e){n=i}}();var s,l=[],c=!1,u=-1;function d(){c&&s&&(c=!1,s.length?l=s.concat(l):u=-1,l.length&&f())}function f(){if(!c){var e=a(d);c=!0;for(var t=l.length;t;){for(s=l,l=[];++u<t;)s&&s[u].run();u=-1,t=l.length}s=null,c=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===i||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function p(e,t){this.fun=e,this.array=t}function h(){}r.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new p(e,t)),1!==l.length||c||a(f)},p.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=h,r.addListener=h,r.once=h,r.off=h,r.removeListener=h,r.removeAllListeners=h,r.emit=h,r.prependListener=h,r.prependOnceListener=h,r.listeners=function(e){return[]},r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},218:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var r=i(n(363)),o=i(n(12));function i(e){return e&&e.__esModule?e:{default:e}}function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function d(e,t){return!t||"object"!==a(t)&&"function"!=typeof t?p(e):t}function f(e){return f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},f(e)}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(e,t)}function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var x=function(e){function t(){var e,n;c(this,t);for(var i=arguments.length,a=new Array(i),s=0;s<i;s++)a[s]=arguments[s];return m(p(n=d(this,(e=f(t)).call.apply(e,[this].concat(a)))),"onClick",(function(e){var t=n.props,i=t.text,a=t.onCopy,s=t.children,l=t.options,c=r.default.Children.only(s),u=(0,o.default)(i,l);a&&a(i,u),c&&c.props&&"function"==typeof c.props.onClick&&c.props.onClick(e)})),n}var n,i,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(t,e),n=t,i=[{key:"render",value:function(){var e=this.props,t=(e.text,e.onCopy,e.options,e.children),n=l(e,["text","onCopy","options","children"]),o=r.default.Children.only(t);return r.default.cloneElement(o,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(n,!0).forEach((function(t){m(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},n,{onClick:this.onClick}))}}],i&&u(n.prototype,i),a&&u(n,a),t}(r.default.PureComponent);t.CopyToClipboard=x,m(x,"defaultProps",{onCopy:void 0,options:void 0})},306:(e,t,n)=>{"use strict";var r=n(218).CopyToClipboard;r.CopyToClipboard=r,e.exports=r},426:(e,t,n)=>{"use strict";n(525);var r=n(363),o=60103;if(t.Fragment=60107,"function"==typeof Symbol&&Symbol.for){var i=Symbol.for;o=i("react.element"),t.Fragment=i("react.fragment")}var a=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s=Object.prototype.hasOwnProperty,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,i={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)s.call(t,r)&&!l.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===i[r]&&(i[r]=t[r]);return{$$typeof:o,type:e,key:c,ref:u,props:i,_owner:a.current}}t.jsx=c,t.jsxs=c},246:(e,t,n)=>{"use strict";e.exports=n(426)},248:e=>{var t=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var o=t&&t.prototype instanceof x?t:x,i=Object.create(o.prototype),a=new _(r||[]);return i._invoke=function(e,t,n){var r=d;return function(o,i){if(r===p)throw new Error("Generator is already running");if(r===h){if("throw"===o)throw i;return A()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var s=S(a,n);if(s){if(s===m)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===d)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var l=u(e,t,n);if("normal"===l.type){if(r=n.done?h:f,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=h,n.method="throw",n.arg=l.arg)}}}(e,n,a),i}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var d="suspendedStart",f="suspendedYield",p="executing",h="completed",m={};function x(){}function y(){}function v(){}var g={};l(g,i,(function(){return this}));var b=Object.getPrototypeOf,w=b&&b(b(N([])));w&&w!==n&&r.call(w,i)&&(g=w);var j=v.prototype=x.prototype=Object.create(g);function k(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function C(e,t){function n(o,i,a,s){var l=u(e[o],e,i);if("throw"!==l.type){var c=l.arg,d=c.value;return d&&"object"==typeof d&&r.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(d).then((function(e){c.value=e,a(c)}),(function(e){return n("throw",e,a,s)}))}s(l.arg)}var o;this._invoke=function(e,r){function i(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(i,i):i()}}function S(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,S(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var o=u(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,m;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function _(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function N(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function n(){for(;++o<e.length;)if(r.call(e,o))return n.value=e[o],n.done=!1,n;return n.value=t,n.done=!0,n};return a.next=a}}return{next:A}}function A(){return{value:t,done:!0}}return y.prototype=v,l(j,"constructor",v),l(v,"constructor",y),y.displayName=l(v,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,l(e,s,"GeneratorFunction")),e.prototype=Object.create(j),e},e.awrap=function(e){return{__await:e}},k(C.prototype),l(C.prototype,a,(function(){return this})),e.AsyncIterator=C,e.async=function(t,n,r,o,i){void 0===i&&(i=Promise);var a=new C(c(t,n,r,o),i);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},k(j),l(j,s,"Generator"),l(j,i,(function(){return this})),l(j,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=N,_.prototype={constructor:_,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(E),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function o(r,o){return s.type="throw",s.arg=e,n.next=r,o&&(n.method="next",n.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(l&&c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;E(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:N(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}},185:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}},363:e=>{"use strict";e.exports=React}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var i=n[e]={exports:{}};return t[e](i,i.exports,r),i.exports}r.m=t,e=[],r.O=(t,n,o,i)=>{if(!n){var a=1/0;for(u=0;u<e.length;u++){for(var[n,o,i]=e[u],s=!0,l=0;l<n.length;l++)(!1&i||a>=i)&&Object.keys(r.O).every((e=>r.O[e](n[l])))?n.splice(l--,1):(s=!1,i<a&&(a=i));if(s){e.splice(u--,1);var c=o();void 0!==c&&(t=c)}}return t}i=i||0;for(var u=e.length;u>0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,o,i]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={245:0,506:0,551:0};r.O.j=t=>0===e[t];var t=(t,n)=>{var o,i,[a,s,l]=n,c=0;if(a.some((t=>0!==e[t]))){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(l)var u=l(r)}for(t&&t(n);c<a.length;c++)i=a[c],r.o(e,i)&&e[i]&&e[i][0](),e[a[c]]=0;return r.O(u)},n=self.webpackChunk=self.webpackChunk||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),r.O(void 0,[506,551],(()=>r(147))),r.O(void 0,[506,551],(()=>r(716)));var o=r.O(void 0,[506,551],(()=>r(965)));o=r.O(o)})();
1
  /*! For license information please see extendify.js.LICENSE.txt */
2
+ (()=>{var e,t={135:(e,t,n)=>{e.exports=n(248)},206:(e,t,n)=>{e.exports=n(57)},387:(e,t,n)=>{"use strict";var r=n(485),o=n(570),i=n(940),a=n(581),s=n(574),l=n(845),c=n(338),u=n(524),d=n(141),f=n(132);e.exports=function(e){return new Promise((function(t,n){var p,h=e.data,m=e.headers,x=e.responseType;function y(){e.cancelToken&&e.cancelToken.unsubscribe(p),e.signal&&e.signal.removeEventListener("abort",p)}r.isFormData(h)&&delete m["Content-Type"];var v=new XMLHttpRequest;if(e.auth){var g=e.auth.username||"",b=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";m.Authorization="Basic "+btoa(g+":"+b)}var w=s(e.baseURL,e.url);function j(){if(v){var r="getAllResponseHeaders"in v?l(v.getAllResponseHeaders()):null,i={data:x&&"text"!==x&&"json"!==x?v.response:v.responseText,status:v.status,statusText:v.statusText,headers:r,config:e,request:v};o((function(e){t(e),y()}),(function(e){n(e),y()}),i),v=null}}if(v.open(e.method.toUpperCase(),a(w,e.params,e.paramsSerializer),!0),v.timeout=e.timeout,"onloadend"in v?v.onloadend=j:v.onreadystatechange=function(){v&&4===v.readyState&&(0!==v.status||v.responseURL&&0===v.responseURL.indexOf("file:"))&&setTimeout(j)},v.onabort=function(){v&&(n(u("Request aborted",e,"ECONNABORTED",v)),v=null)},v.onerror=function(){n(u("Network Error",e,null,v)),v=null},v.ontimeout=function(){var t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",r=e.transitional||d.transitional;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(u(t,e,r.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",v)),v=null},r.isStandardBrowserEnv()){var k=(e.withCredentials||c(w))&&e.xsrfCookieName?i.read(e.xsrfCookieName):void 0;k&&(m[e.xsrfHeaderName]=k)}"setRequestHeader"in v&&r.forEach(m,(function(e,t){void 0===h&&"content-type"===t.toLowerCase()?delete m[t]:v.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(v.withCredentials=!!e.withCredentials),x&&"json"!==x&&(v.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&v.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&v.upload&&v.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(p=function(e){v&&(n(!e||e&&e.type?new f("canceled"):e),v.abort(),v=null)},e.cancelToken&&e.cancelToken.subscribe(p),e.signal&&(e.signal.aborted?p():e.signal.addEventListener("abort",p))),h||(h=null),v.send(h)}))}},57:(e,t,n)=>{"use strict";var r=n(485),o=n(875),i=n(29),a=n(941);var s=function e(t){var n=new i(t),s=o(i.prototype.request,n);return r.extend(s,i.prototype,n),r.extend(s,n),s.create=function(n){return e(a(t,n))},s}(n(141));s.Axios=i,s.Cancel=n(132),s.CancelToken=n(603),s.isCancel=n(475),s.VERSION=n(345).version,s.all=function(e){return Promise.all(e)},s.spread=n(739),s.isAxiosError=n(835),e.exports=s,e.exports.default=s},132:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},603:(e,t,n)=>{"use strict";var r=n(132);function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;this.promise.then((function(e){if(n._listeners){var t,r=n._listeners.length;for(t=0;t<r;t++)n._listeners[t](e);n._listeners=null}})),this.promise.then=function(e){var t,r=new Promise((function(e){n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.prototype.subscribe=function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]},o.prototype.unsubscribe=function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}},o.source=function(){var e;return{token:new o((function(t){e=t})),cancel:e}},e.exports=o},475:e=>{"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},29:(e,t,n)=>{"use strict";var r=n(485),o=n(581),i=n(96),a=n(9),s=n(941),l=n(144),c=l.validators;function u(e){this.defaults=e,this.interceptors={request:new i,response:new i}}u.prototype.request=function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},(t=s(this.defaults,t)).method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var n=t.transitional;void 0!==n&&l.assertOptions(n,{silentJSONParsing:c.transitional(c.boolean),forcedJSONParsing:c.transitional(c.boolean),clarifyTimeoutError:c.transitional(c.boolean)},!1);var r=[],o=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(o=o&&e.synchronous,r.unshift(e.fulfilled,e.rejected))}));var i,u=[];if(this.interceptors.response.forEach((function(e){u.push(e.fulfilled,e.rejected)})),!o){var d=[a,void 0];for(Array.prototype.unshift.apply(d,r),d=d.concat(u),i=Promise.resolve(t);d.length;)i=i.then(d.shift(),d.shift());return i}for(var f=t;r.length;){var p=r.shift(),h=r.shift();try{f=p(f)}catch(e){h(e);break}}try{i=a(f)}catch(e){return Promise.reject(e)}for(;u.length;)i=i.then(u.shift(),u.shift());return i},u.prototype.getUri=function(e){return e=s(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],(function(e){u.prototype[e]=function(t,n){return this.request(s(n||{},{method:e,url:t,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(e){u.prototype[e]=function(t,n,r){return this.request(s(r||{},{method:e,url:t,data:n}))}})),e.exports=u},96:(e,t,n)=>{"use strict";var r=n(485);function o(){this.handlers=[]}o.prototype.use=function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){r.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=o},574:(e,t,n)=>{"use strict";var r=n(642),o=n(288);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},524:(e,t,n)=>{"use strict";var r=n(953);e.exports=function(e,t,n,o,i){var a=new Error(e);return r(a,t,n,o,i)}},9:(e,t,n)=>{"use strict";var r=n(485),o=n(212),i=n(475),a=n(141),s=n(132);function l(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new s("canceled")}e.exports=function(e){return l(e),e.headers=e.headers||{},e.data=o.call(e,e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||a.adapter)(e).then((function(t){return l(e),t.data=o.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return i(t)||(l(e),t&&t.response&&(t.response.data=o.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},953:e=>{"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},e}},941:(e,t,n)=>{"use strict";var r=n(485);e.exports=function(e,t){t=t||{};var n={};function o(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function i(n){return r.isUndefined(t[n])?r.isUndefined(e[n])?void 0:o(void 0,e[n]):o(e[n],t[n])}function a(e){if(!r.isUndefined(t[e]))return o(void 0,t[e])}function s(n){return r.isUndefined(t[n])?r.isUndefined(e[n])?void 0:o(void 0,e[n]):o(void 0,t[n])}function l(n){return n in t?o(e[n],t[n]):n in e?o(void 0,e[n]):void 0}var c={url:a,method:a,data:a,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:l};return r.forEach(Object.keys(e).concat(Object.keys(t)),(function(e){var t=c[e]||i,o=t(e);r.isUndefined(o)&&t!==l||(n[e]=o)})),n}},570:(e,t,n)=>{"use strict";var r=n(524);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},212:(e,t,n)=>{"use strict";var r=n(485),o=n(141);e.exports=function(e,t,n){var i=this||o;return r.forEach(n,(function(n){e=n.call(i,e,t)})),e}},141:(e,t,n)=>{"use strict";var r=n(61),o=n(485),i=n(446),a=n(953),s={"Content-Type":"application/x-www-form-urlencoded"};function l(e,t){!o.isUndefined(e)&&o.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var c,u={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==r&&"[object process]"===Object.prototype.toString.call(r))&&(c=n(387)),c),transformRequest:[function(e,t){return i(t,"Accept"),i(t,"Content-Type"),o.isFormData(e)||o.isArrayBuffer(e)||o.isBuffer(e)||o.isStream(e)||o.isFile(e)||o.isBlob(e)?e:o.isArrayBufferView(e)?e.buffer:o.isURLSearchParams(e)?(l(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):o.isObject(e)||t&&"application/json"===t["Content-Type"]?(l(t,"application/json"),function(e,t,n){if(o.isString(e))try{return(t||JSON.parse)(e),o.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||u.transitional,n=t&&t.silentJSONParsing,r=t&&t.forcedJSONParsing,i=!n&&"json"===this.responseType;if(i||r&&o.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(i){if("SyntaxError"===e.name)throw a(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};o.forEach(["delete","get","head"],(function(e){u.headers[e]={}})),o.forEach(["post","put","patch"],(function(e){u.headers[e]=o.merge(s)})),e.exports=u},345:e=>{e.exports={version:"0.26.0"}},875:e=>{"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return e.apply(t,n)}}},581:(e,t,n)=>{"use strict";var r=n(485);function o(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else if(r.isURLSearchParams(t))i=t.toString();else{var a=[];r.forEach(t,(function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),a.push(o(t)+"="+o(e))})))})),i=a.join("&")}if(i){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}},288:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},940:(e,t,n)=>{"use strict";var r=n(485);e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,o,i,a){var s=[];s.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),r.isString(o)&&s.push("path="+o),r.isString(i)&&s.push("domain="+i),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},642:e=>{"use strict";e.exports=function(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}},835:(e,t,n)=>{"use strict";var r=n(485);e.exports=function(e){return r.isObject(e)&&!0===e.isAxiosError}},338:(e,t,n)=>{"use strict";var r=n(485);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=o(window.location.href),function(t){var n=r.isString(t)?o(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},446:(e,t,n)=>{"use strict";var r=n(485);e.exports=function(e,t){r.forEach(e,(function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])}))}},845:(e,t,n)=>{"use strict";var r=n(485),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,a={};return e?(r.forEach(e.split("\n"),(function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(a[t]&&o.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}})),a):a}},739:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},144:(e,t,n)=>{"use strict";var r=n(345).version,o={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){o[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));var i={};o.transitional=function(e,t,n){function o(e,t){return"[Axios v"+r+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,r,a){if(!1===e)throw new Error(o(r," has been removed"+(t?" in "+t:"")));return t&&!i[r]&&(i[r]=!0,console.warn(o(r," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,r,a)}},e.exports={assertOptions:function(e,t,n){if("object"!=typeof e)throw new TypeError("options must be an object");for(var r=Object.keys(e),o=r.length;o-- >0;){var i=r[o],a=t[i];if(a){var s=e[i],l=void 0===s||a(s,i,e);if(!0!==l)throw new TypeError("option "+i+" must be "+l)}else if(!0!==n)throw Error("Unknown option "+i)}},validators:o}},485:(e,t,n)=>{"use strict";var r=n(875),o=Object.prototype.toString;function i(e){return Array.isArray(e)}function a(e){return void 0===e}function s(e){return"[object ArrayBuffer]"===o.call(e)}function l(e){return null!==e&&"object"==typeof e}function c(e){if("[object Object]"!==o.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function u(e){return"[object Function]"===o.call(e)}function d(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.call(null,e[o],o,e)}e.exports={isArray:i,isArrayBuffer:s,isBuffer:function(e){return null!==e&&!a(e)&&null!==e.constructor&&!a(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return"[object FormData]"===o.call(e)},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&s(e.buffer)},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:l,isPlainObject:c,isUndefined:a,isDate:function(e){return"[object Date]"===o.call(e)},isFile:function(e){return"[object File]"===o.call(e)},isBlob:function(e){return"[object Blob]"===o.call(e)},isFunction:u,isStream:function(e){return l(e)&&u(e.pipe)},isURLSearchParams:function(e){return"[object URLSearchParams]"===o.call(e)},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:d,merge:function e(){var t={};function n(n,r){c(t[r])&&c(n)?t[r]=e(t[r],n):c(n)?t[r]=e({},n):i(n)?t[r]=n.slice():t[r]=n}for(var r=0,o=arguments.length;r<o;r++)d(arguments[r],n);return t},extend:function(e,t,n){return d(t,(function(t,o){e[o]=n&&"function"==typeof t?r(t,n):t})),e},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}}},165:(e,t,n)=>{"use strict";const r=wp.blocks,o=wp.element;var i=n(363),a=n.n(i);function s(e){let t;const n=new Set,r=(e,r)=>{const o="function"==typeof e?e(t):e;if(o!==t){const e=t;t=r?o:Object.assign({},t,o),n.forEach((n=>n(t,e)))}},o=()=>t,i={setState:r,getState:o,subscribe:(e,r,i)=>r||i?((e,r=o,i=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let a=r(t);function s(){const n=r(t);if(!i(a,n)){const t=a;e(a=n,t)}}return n.add(s),()=>n.delete(s)})(e,r,i):(n.add(e),()=>n.delete(e)),destroy:()=>n.clear()};return t=e(r,o,i),i}const l="undefined"==typeof window||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent)?i.useEffect:i.useLayoutEffect;function c(e){const t="function"==typeof e?s(e):e,n=(e=t.getState,n=Object.is)=>{const[,r]=(0,i.useReducer)((e=>e+1),0),o=t.getState(),a=(0,i.useRef)(o),s=(0,i.useRef)(e),c=(0,i.useRef)(n),u=(0,i.useRef)(!1),d=(0,i.useRef)();let f;void 0===d.current&&(d.current=e(o));let p=!1;(a.current!==o||s.current!==e||c.current!==n||u.current)&&(f=e(o),p=!n(d.current,f)),l((()=>{p&&(d.current=f),a.current=o,s.current=e,c.current=n,u.current=!1}));const h=(0,i.useRef)(o);l((()=>{const e=()=>{try{const e=t.getState(),n=s.current(e);c.current(d.current,n)||(a.current=e,d.current=n,r())}catch(e){u.current=!0,r()}},n=t.subscribe(e);return t.getState()!==h.current&&e(),n}),[]);const m=p?f:d.current;return(0,i.useDebugValue)(m),m};return Object.assign(n,t),n[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const e=[n,t];return{next(){const t=e.length<=0;return{value:e.shift(),done:t}}}},n}Object.defineProperty,Object.getOwnPropertySymbols,Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable;const u=e=>(t,n,r)=>{const o=r.subscribe;r.subscribe=(e,t,n)=>{let i=e;if(t){const o=(null==n?void 0:n.equalityFn)||Object.is;let a=e(r.getState());i=n=>{const r=e(n);if(!o(a,r)){const e=a;t(a=r,e)}},(null==n?void 0:n.fireImmediately)&&t(a,a)}return o(i)};return e(t,n,r)};var d=Object.defineProperty,f=Object.getOwnPropertySymbols,p=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,m=(e,t,n)=>t in e?d(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,x=(e,t)=>{for(var n in t||(t={}))p.call(t,n)&&m(e,n,t[n]);if(f)for(var n of f(t))h.call(t,n)&&m(e,n,t[n]);return e};const y=e=>t=>{try{const n=e(t);return n instanceof Promise?n:{then:e=>y(e)(n),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>y(t)(e)}}},v=(e,t)=>(n,r,o)=>{let i=x({getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:e=>e,version:0,merge:(e,t)=>x(x({},t),e)},t);(i.blacklist||i.whitelist)&&console.warn(`The ${i.blacklist?"blacklist":"whitelist"} option is deprecated and will be removed in the next version. Please use the 'partialize' option instead.`);let a=!1;const s=new Set,l=new Set;let c;try{c=i.getStorage()}catch(e){}if(!c)return e(((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),n(...e)}),r,o);c.removeItem||console.warn(`[zustand persist middleware] The given storage for item '${i.name}' does not contain a 'removeItem' method, which will be required in v4.`);const u=y(i.serialize),d=()=>{const e=i.partialize(x({},r()));let t;i.whitelist&&Object.keys(e).forEach((t=>{var n;!(null==(n=i.whitelist)?void 0:n.includes(t))&&delete e[t]})),i.blacklist&&i.blacklist.forEach((t=>delete e[t]));const n=u({state:e,version:i.version}).then((e=>c.setItem(i.name,e))).catch((e=>{t=e}));if(t)throw t;return n},f=o.setState;o.setState=(e,t)=>{f(e,t),d()};const p=e(((...e)=>{n(...e),d()}),r,o);let h;const m=()=>{var e;if(!c)return;a=!1,s.forEach((e=>e(r())));const t=(null==(e=i.onRehydrateStorage)?void 0:e.call(i,r()))||void 0;return y(c.getItem.bind(c))(i.name).then((e=>{if(e)return i.deserialize(e)})).then((e=>{if(e){if("number"!=typeof e.version||e.version===i.version)return e.state;if(i.migrate)return i.migrate(e.state,e.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}})).then((e=>(h=i.merge(e,p),n(h,!0),d()))).then((()=>{null==t||t(h,void 0),a=!0,l.forEach((e=>e(h)))})).catch((e=>{null==t||t(void 0,e)}))};return o.persist={setOptions:e=>{i=x(x({},i),e),e.getStorage&&(c=e.getStorage())},clearStorage:()=>{var e;null==(e=null==c?void 0:c.removeItem)||e.call(c,i.name)},rehydrate:()=>m(),hasHydrated:()=>a,onHydrate:e=>(s.add(e),()=>{s.delete(e)}),onFinishHydration:e=>(l.add(e),()=>{l.delete(e)})},m(),h||p};function g(e){return function(e){if(Array.isArray(e))return b(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return b(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var w=c(u(v((function(e,t){return{open:!1,ready:!1,metaData:{},currentTaxonomies:{},currentType:"pattern",modals:[],pushModal:function(n){return e({modals:[n].concat(g(t().modals))})},popModal:function(){return e({modals:t().modals.slice(1)})},removeAllModals:function(){return e({modals:[]})},updateCurrentTaxonomies:function(t){return e({currentTaxonomies:Object.assign({},t)})},updateCurrentType:function(t){return e({currentType:t})},setOpen:function(t){return e({open:t})},setReady:function(t){return e({ready:t})}}}),{name:"extendify-global-state",partialize:function(e){return delete e.modals,delete e.ready,e}}))),j=n(135),k=n.n(j),S=n(206),C=n.n(S);const _=lodash;function O(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}var E,A=function(){return(e=k().mark((function e(){var t;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("".concat(window.extendifyData.root,"/user"),{method:"GET",headers:{"X-WP-Nonce":window.extendifyData.nonce,"X-Requested-With":"XMLHttpRequest","X-Extendify":!0}});case 2:return t=e.sent,e.next=5,t.json();case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){O(i,r,o,a,s,"next",e)}function s(e){O(i,r,o,a,s,"throw",e)}a(void 0)}))})();var e},N=function(e,t){var n=new FormData;return n.append("email",e),n.append("key",t),X.post("login",n,{headers:{"Content-Type":"multipart/form-data"}})},P=function(e){var t=new FormData;return t.append("data",JSON.stringify(e)),X.post("user",t,{headers:{"Content-Type":"multipart/form-data"}})},T=function(){return X.post("clear-user")},I=function(){return X.get("max-free-imports")};function L(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function M(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?L(Object(n),!0).forEach((function(t){z(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):L(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function R(e){return function(e){if(Array.isArray(e))return B(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||F(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function D(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||F(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function F(e,t){if(e){if("string"==typeof e)return B(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?B(e,t):void 0}}function B(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function z(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function U(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function V(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){U(i,r,o,a,s,"next",e)}function s(e){U(i,r,o,a,s,"throw",e)}a(void 0)}))}}var H,W,q,$={getItem:(q=V(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,A();case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(){return q.apply(this,arguments)}),setItem:(W=V(k().mark((function e(t,n){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,P(n);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(e,t){return W.apply(this,arguments)}),removeItem:(H=V(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,T();case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),function(){return H.apply(this,arguments)})},G=function(){var e,t,n;return null===window.extendifyData.sitesettings||(null===(e=window.extendifyData)||void 0===e||null===(t=e.sitesettings)||void 0===t||null===(n=t.state)||void 0===n?void 0:n.enabled)},J=(z(E={},"notice-position","0001"),z(E,"main-button-text","0002"),z(E,"import-counter-color","0003"),E),K=c(v((function(e,t){return{_hasHydrated:!1,firstLoadedOn:(new Date).toISOString(),email:"",apiKey:"",uuid:"",group:0,sdkPartner:"",noticesDismissedAt:{},modalNoticesDismissedAt:{},imports:0,runningImports:0,allowedImports:0,freebieImports:0,entryPoint:"not-set",enabled:G(),canInstallPlugins:!1,canActivatePlugins:!1,participatingTestsGroups:{},preferredOptions:{taxonomies:{},type:"",search:""},preferredOptionsHistory:{siteType:[]},incrementImports:function(){var n=Number(t().freebieImports)>0?Number(t().freebieImports)-1:Number(t().freebieImports),r=Number(t().runningImports)+ +(n<1);e({imports:Number(t().imports)+1,runningImports:r,freebieImports:n})},giveFreebieImports:function(n){e({freebieImports:t().freebieImports+n})},totalAvailableImports:function(){return Number(t().allowedImports)+Number(t().freebieImports)},testGroup:function(n,r){if(t().uuid&&Object.keys(J).includes(n)){var o=t().participatingTestsGroups;return o[n]||e({participatingTestsGroups:Object.assign({},o,z({},n,(0,_.sample)(r)))}),o[n]}},activeTestGroups:function(){return Object.entries(t().participatingTestsGroups).filter((function(e){var t=D(e,1)[0];return Object.keys(J).includes(t)})).reduce((function(e,t){var n=D(t,2),r=n[0],o=n[1];return e[r]=o,e}),{})},activeTestGroupsUtmValue:function(){var e=Object.entries(t().activeTestGroups()).map((function(e){var t=D(e,2),n=t[0],r=t[1];return"".concat(J[n],"=").concat(r)}),"").join(":");return encodeURIComponent(e)},hasAvailableImports:function(){return!!t().apiKey||Number(t().runningImports)<Number(t().totalAvailableImports())},remainingImports:function(){var e=Number(t().totalAvailableImports())-Number(t().runningImports);return t().allowedImports?e>0?e:0:null},updatePreferredSiteType:function(n){var r,o;if(t().updatePreferredOption("siteType",n),null!=n&&n.slug&&"unknown"!==n.slug){var i=null!==(r=null===(o=t().preferredOptionsHistory)||void 0===o?void 0:o.siteType)&&void 0!==r?r:[];if(!i.find((function(e){return e.slug===n.slug}))){var a=[n].concat(R(i));e({preferredOptionsHistory:Object.assign({},t().preferredOptionsHistory,{siteType:a.slice(0,3)})})}}},updatePreferredOption:function(n,r){var o,i;Object.prototype.hasOwnProperty.call(t().preferredOptions,n)||(r=Object.assign({},null!==(o=null===(i=t().preferredOptions)||void 0===i?void 0:i.taxonomies)&&void 0!==o?o:{},z({},n,r)),n="taxonomies");e({preferredOptions:M({},Object.assign({},t().preferredOptions,z({},n,r)))})},markNoticeSeen:function(n,r){e(z({},"".concat(r,"DismissedAt"),M(M({},t()["".concat(r,"DismissedAt")]),{},z({},n,(new Date).toISOString()))))}}}),{name:"extendify-user",getStorage:function(){return $},onRehydrateStorage:function(){return function(){K.setState({_hasHydrated:!0})}},partialize:function(e){return delete e._hasHydrated,e}})),X=C().create({baseURL:window.extendifyData.root,headers:{"X-WP-Nonce":window.extendifyData.nonce,"X-Requested-With":"XMLHttpRequest","X-Extendify":!0}});function Z(e){return Object.prototype.hasOwnProperty.call(e,"data")?e.data:e}function Y(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}X.interceptors.response.use((function(e){return function(e){return Object.prototype.hasOwnProperty.call(e,"soft_error")&&window.dispatchEvent(new CustomEvent("extendify::softerror-encountered",{detail:e.soft_error,bubbles:!0})),e}(Z(e))}),(function(e){return function(e){if(e.response)return console.error(e.response),Promise.reject(Z(e.response))}(e)})),X.interceptors.request.use((function(e){return function(e){return e.headers["X-Extendify-Dev-Mode"]=window.location.search.indexOf("DEVMODE")>-1,e.headers["X-Extendify-Local-Mode"]=window.location.search.indexOf("LOCALMODE")>-1,e}(function(e){var t=K.getState(),n=t.apiKey?"unlimited":t.remainingImports();return e.data&&(e.data.remaining_imports=n,e.data.entry_point=t.entryPoint,e.data.total_imports=t.imports,e.data.participating_tests=t.activeTestGroups()),e}(e))}),(function(e){return e}));var Q=function(){return(e=k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,X.get("taxonomies");case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Y(i,r,o,a,s,"next",e)}function s(e){Y(i,r,o,a,s,"throw",e)}a(void 0)}))})();var e};function ee(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}var te=c(v((function(e,t){return{taxonomies:{},setTaxonomies:function(t){return e({taxonomies:t})},fetchTaxonomies:(n=k().mark((function e(){var n,r;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Q();case 2:if(r=e.sent,r=Object.keys(r).reduce((function(e,t){return e[t]=r[t],e}),{}),null!==(n=Object.keys(r))&&void 0!==n&&n.length){e.next=6;break}return e.abrupt("return");case 6:t().setTaxonomies(r);case 7:case"end":return e.stop()}}),e)})),r=function(){var e=this,t=arguments;return new Promise((function(r,o){var i=n.apply(e,t);function a(e){ee(i,r,o,a,s,"next",e)}function s(e){ee(i,r,o,a,s,"throw",e)}a(void 0)}))},function(){return r.apply(this,arguments)})};var n,r}),{name:"extendify-taxonomies"}));function ne(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function re(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ne(Object(n),!0).forEach((function(t){oe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ne(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function oe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ie(e){return function(e){if(Array.isArray(e))return ae(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ae(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ae(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ae(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var se,le,ce=c(u((function(e,t){return{templates:[],skipNextFetch:!1,fetchToken:null,taxonomyDefaultState:{},nextPage:"",searchParams:{taxonomies:{},type:"pattern"},initTemplateData:function(){e({activeTemplate:{}}),t().setupDefaultTaxonomies(),t().updateType(w.getState().currentType)},appendTemplates:function(n){return e({templates:ie(new Map([].concat(ie(t().templates),ie(n)).map((function(e){return[e.id,e]}))).values())})},setupDefaultTaxonomies:function(){var n,r,o,i,a=te.getState().taxonomies,s=Object.entries(a).reduce((function(e,t){return e[t[0]]=function(e){return"siteType"===e?{slug:"",title:"Unknown"}:{slug:"",title:"Featured"}}(t[0]),e}),{}),l={},c=null!==(n=null===(r=K.getState().preferredOptions)||void 0===r?void 0:r.taxonomies)&&void 0!==n?n:{};c.tax_categories&&(c=t().getLegacySiteType(c,a)),s=Object.assign({},s,c,null!==(o=null===(i=w.getState())||void 0===i?void 0:i.currentTaxonomies)&&void 0!==o?o:{}),l.taxonomies=Object.assign({},s),e({taxonomyDefaultState:s,searchParams:re({},Object.assign(t().searchParams,l))})},updateTaxonomies:function(e){var n,r,o={};(o.taxonomies=Object.assign({},t().searchParams.taxonomies,e),null!=o&&null!==(n=o.taxonomies)&&void 0!==n&&n.siteType)&&K.getState().updatePreferredOption("siteType",null==o||null===(r=o.taxonomies)||void 0===r?void 0:r.siteType);w.getState().updateCurrentTaxonomies(null==o?void 0:o.taxonomies),t().updateSearchParams(o)},updateType:function(e){w.getState().updateCurrentType(e),t().updateSearchParams({type:e})},updateSearchParams:function(n){null!=n&&n.taxonomies&&!Object.keys(n.taxonomies).length&&(n.taxonomies=t().taxonomyDefaultState);var r=Object.assign({},t().searchParams,n);JSON.stringify(r)!==JSON.stringify(t().searchParams)&&e({templates:[],nextPage:"",searchParams:r})},resetTemplates:function(){return e({templates:[],nextPage:""})},getLegacySiteType:function(e,n){var r=n.siteType.find((function(t){return[t.slug,null==t?void 0:t.title].includes(e.tax_categories)}));return K.getState().updatePreferredSiteType(r),t().updateTaxonomies({siteType:r}),K.getState().updatePreferredOption("tax_categories",null),K.getState().preferredOptions.taxonomies}}}))),ue=function(){return X.get("meta-data")},de=function(e){var t,n,r,o,i,a,s,l=null!==(t=null===(n=ce.getState())||void 0===n||null===(r=n.searchParams)||void 0===r?void 0:r.taxonomies)&&void 0!==t?t:[];return X.post("simple-ping",{action:e,categories:l,group:null!==(o=null===(i=K.getState())||void 0===i?void 0:i.group)&&void 0!==o?o:0,sdk_partner:null!==(a=null===(s=K.getState())||void 0===s?void 0:s.sdkPartner)&&void 0!==a?a:""})};function fe(){return fe=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},fe.apply(this,arguments)}function pe(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function he(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function me(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return he(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?he(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function xe(e,t){if(e in t){for(var n=t[e],r=arguments.length,o=new Array(r>2?r-2:0),i=2;i<r;i++)o[i-2]=arguments[i];return"function"==typeof n?n.apply(void 0,o):n}var a=new Error('Tried to handle "'+e+'" but there is no handler defined. Only defined handlers are: '+Object.keys(t).map((function(e){return'"'+e+'"'})).join(", ")+".");throw Error.captureStackTrace&&Error.captureStackTrace(a,xe),a}function ye(e){var t=e.props,n=e.slot,r=e.defaultTag,o=e.features,i=e.visible,a=void 0===i||i,s=e.name;if(a)return ve(t,n,r,s);var l=null!=o?o:se.None;if(l&se.Static){var c=t.static,u=void 0!==c&&c,d=pe(t,["static"]);if(u)return ve(d,n,r,s)}if(l&se.RenderStrategy){var f,p=t.unmount,h=void 0===p||p,m=pe(t,["unmount"]);return xe(h?le.Unmount:le.Hidden,((f={})[le.Unmount]=function(){return null},f[le.Hidden]=function(){return ve(fe({},m,{hidden:!0,style:{display:"none"}}),n,r,s)},f))}return ve(t,n,r,s)}function ve(e,t,n,r){var o;void 0===t&&(t={});var a=be(e,["unmount","static"]),s=a.as,l=void 0===s?n:s,c=a.children,u=a.refName,d=void 0===u?"ref":u,f=pe(a,["as","children","refName"]),p=void 0!==e.ref?((o={})[d]=e.ref,o):{},h="function"==typeof c?c(t):c;if(f.className&&"function"==typeof f.className&&(f.className=f.className(t)),l===i.Fragment&&Object.keys(f).length>0){if(!(0,i.isValidElement)(h)||Array.isArray(h)&&h.length>1)throw new Error(['Passing props on "Fragment"!',"","The current component <"+r+' /> is rendering a "Fragment".',"However we need to passthrough the following props:",Object.keys(f).map((function(e){return" - "+e})).join("\n"),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".',"Render a single element as the child so that we can forward the props onto that element."].map((function(e){return" - "+e})).join("\n")].join("\n"));return(0,i.cloneElement)(h,Object.assign({},function(e,t,n){for(var r,o=Object.assign({},e),i=function(){var n,i=r.value;void 0!==e[i]&&void 0!==t[i]&&Object.assign(o,((n={})[i]=function(n){n.defaultPrevented||e[i](n),n.defaultPrevented||t[i](n)},n))},a=me(n);!(r=a()).done;)i();return o}(function(e){var t=Object.assign({},e);for(var n in t)void 0===t[n]&&delete t[n];return t}(be(f,["ref"])),h.props,["onClick"]),p))}return(0,i.createElement)(l,Object.assign({},be(f,["ref"]),l!==i.Fragment&&p),h)}function ge(e){var t;return Object.assign((0,i.forwardRef)(e),{displayName:null!=(t=e.displayName)?t:e.name})}function be(e,t){void 0===t&&(t=[]);for(var n,r=Object.assign({},e),o=me(t);!(n=o()).done;){var i=n.value;i in r&&delete r[i]}return r}!function(e){e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static"}(se||(se={})),function(e){e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden"}(le||(le={}));var we="undefined"!=typeof window?i.useLayoutEffect:i.useEffect,je={serverHandoffComplete:!1};function ke(){var e=(0,i.useState)(je.serverHandoffComplete),t=e[0],n=e[1];return(0,i.useEffect)((function(){!0!==t&&n(!0)}),[t]),(0,i.useEffect)((function(){!1===je.serverHandoffComplete&&(je.serverHandoffComplete=!0)}),[]),t}var Se=0;function Ce(){return++Se}function _e(){var e=ke(),t=(0,i.useState)(e?Ce:null),n=t[0],r=t[1];return we((function(){null===n&&r(Ce())}),[n]),null!=n?""+n:void 0}function Oe(){var e=(0,i.useRef)(!1);return(0,i.useEffect)((function(){return e.current=!0,function(){e.current=!1}}),[]),e}var Ee,Ae,Ne=(0,i.createContext)(null);function Pe(){return(0,i.useContext)(Ne)}function Te(e){var t=e.value,n=e.children;return a().createElement(Ne.Provider,{value:t},n)}function Ie(){var e=[],t={requestAnimationFrame:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(){var e=requestAnimationFrame.apply(void 0,arguments);t.add((function(){return cancelAnimationFrame(e)}))})),nextFrame:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.requestAnimationFrame((function(){t.requestAnimationFrame.apply(t,n)}))},setTimeout:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(){var e=setTimeout.apply(void 0,arguments);t.add((function(){return clearTimeout(e)}))})),add:function(t){e.push(t)},dispose:function(){for(var t,n=me(e.splice(0));!(t=n()).done;){var r=t.value;r()}}};return t}function Le(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];e&&r.length>0&&(t=e.classList).add.apply(t,r)}function Me(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];e&&r.length>0&&(t=e.classList).remove.apply(t,r)}function Re(e,t,n,r,o,i){var a=Ie(),s=void 0!==i?function(e){var t={called:!1};return function(){if(!t.called)return t.called=!0,e.apply(void 0,arguments)}}(i):function(){};return Me.apply(void 0,[e].concat(o)),Le.apply(void 0,[e].concat(t,n)),a.nextFrame((function(){Me.apply(void 0,[e].concat(n)),Le.apply(void 0,[e].concat(r)),a.add(function(e,t){var n=Ie();if(!e)return n.dispose;var r=getComputedStyle(e),o=[r.transitionDuration,r.transitionDelay].map((function(e){var t=e.split(",").filter(Boolean).map((function(e){return e.includes("ms")?parseFloat(e):1e3*parseFloat(e)})).sort((function(e,t){return t-e}))[0];return void 0===t?0:t})),i=o[0],a=o[1];return 0!==i?n.setTimeout((function(){t(Ae.Finished)}),i+a):t(Ae.Finished),n.add((function(){return t(Ae.Cancelled)})),n.dispose}(e,(function(n){return Me.apply(void 0,[e].concat(r,t)),Le.apply(void 0,[e].concat(o)),s(n)})))})),a.add((function(){return Me.apply(void 0,[e].concat(t,n,r,o))})),a.add((function(){return s(Ae.Cancelled)})),a.dispose}function De(e){return void 0===e&&(e=""),(0,i.useMemo)((function(){return e.split(" ").filter((function(e){return e.trim().length>1}))}),[e])}Ne.displayName="OpenClosedContext",function(e){e[e.Open=0]="Open",e[e.Closed=1]="Closed"}(Ee||(Ee={})),function(e){e.Finished="finished",e.Cancelled="cancelled"}(Ae||(Ae={}));var Fe,Be=(0,i.createContext)(null);Be.displayName="TransitionContext",function(e){e.Visible="visible",e.Hidden="hidden"}(Fe||(Fe={}));var ze=(0,i.createContext)(null);function Ue(e){return"children"in e?Ue(e.children):e.current.filter((function(e){return e.state===Fe.Visible})).length>0}function Ve(e){var t=(0,i.useRef)(e),n=(0,i.useRef)([]),r=Oe();(0,i.useEffect)((function(){t.current=e}),[e]);var o=(0,i.useCallback)((function(e,o){var i;void 0===o&&(o=le.Hidden);var a=n.current.findIndex((function(t){return t.id===e}));-1!==a&&(xe(o,((i={})[le.Unmount]=function(){n.current.splice(a,1)},i[le.Hidden]=function(){n.current[a].state=Fe.Hidden},i)),!Ue(n)&&r.current&&(null==t.current||t.current()))}),[t,r,n]),a=(0,i.useCallback)((function(e){var t=n.current.find((function(t){return t.id===e}));return t?t.state!==Fe.Visible&&(t.state=Fe.Visible):n.current.push({id:e,state:Fe.Visible}),function(){return o(e,le.Unmount)}}),[n,o]);return(0,i.useMemo)((function(){return{children:n,register:a,unregister:o}}),[a,o,n])}function He(){}ze.displayName="NestingContext";var We=["beforeEnter","afterEnter","beforeLeave","afterLeave"];function qe(e){for(var t,n={},r=me(We);!(t=r()).done;){var o,i=t.value;n[i]=null!=(o=e[i])?o:He}return n}var $e,Ge=se.RenderStrategy;function Je(e){var t,n=e.beforeEnter,r=e.afterEnter,o=e.beforeLeave,s=e.afterLeave,l=e.enter,c=e.enterFrom,u=e.enterTo,d=e.entered,f=e.leave,p=e.leaveFrom,h=e.leaveTo,m=pe(e,["beforeEnter","afterEnter","beforeLeave","afterLeave","enter","enterFrom","enterTo","entered","leave","leaveFrom","leaveTo"]),x=(0,i.useRef)(null),y=(0,i.useState)(Fe.Visible),v=y[0],g=y[1],b=m.unmount?le.Unmount:le.Hidden,w=function(){var e=(0,i.useContext)(Be);if(null===e)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return e}(),j=w.show,k=w.appear,S=w.initial,C=function(){var e=(0,i.useContext)(ze);if(null===e)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return e}(),_=C.register,O=C.unregister,E=_e(),A=(0,i.useRef)(!1),N=Ve((function(){A.current||(g(Fe.Hidden),O(E),F.current.afterLeave())}));we((function(){if(E)return _(E)}),[_,E]),we((function(){var e;b===le.Hidden&&E&&(j&&v!==Fe.Visible?g(Fe.Visible):xe(v,((e={})[Fe.Hidden]=function(){return O(E)},e[Fe.Visible]=function(){return _(E)},e)))}),[v,E,_,O,j,b]);var P=De(l),T=De(c),I=De(u),L=De(d),M=De(f),R=De(p),D=De(h),F=function(e){var t=(0,i.useRef)(qe(e));return(0,i.useEffect)((function(){t.current=qe(e)}),[e]),t}({beforeEnter:n,afterEnter:r,beforeLeave:o,afterLeave:s}),B=ke();(0,i.useEffect)((function(){if(B&&v===Fe.Visible&&null===x.current)throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")}),[x,v,B]);var z=S&&!k;we((function(){var e=x.current;if(e&&!z)return A.current=!0,j&&F.current.beforeEnter(),j||F.current.beforeLeave(),j?Re(e,P,T,I,L,(function(e){A.current=!1,e===Ae.Finished&&F.current.afterEnter()})):Re(e,M,R,D,L,(function(e){A.current=!1,e===Ae.Finished&&(Ue(N)||(g(Fe.Hidden),O(E),F.current.afterLeave()))}))}),[F,E,A,O,N,x,z,j,P,T,I,M,R,D]);var U={ref:x},V=m;return a().createElement(ze.Provider,{value:N},a().createElement(Te,{value:xe(v,(t={},t[Fe.Visible]=Ee.Open,t[Fe.Hidden]=Ee.Closed,t))},ye({props:fe({},V,U),defaultTag:"div",features:Ge,visible:v===Fe.Visible,name:"Transition.Child"})))}function Ke(e){var t,n=e.show,r=e.appear,o=void 0!==r&&r,s=e.unmount,l=pe(e,["show","appear","unmount"]),c=Pe();void 0===n&&null!==c&&(n=xe(c,((t={})[Ee.Open]=!0,t[Ee.Closed]=!1,t)));if(![!0,!1].includes(n))throw new Error("A <Transition /> is used but it is missing a `show={true | false}` prop.");var u=(0,i.useState)(n?Fe.Visible:Fe.Hidden),d=u[0],f=u[1],p=Ve((function(){f(Fe.Hidden)})),h=function(){var e=(0,i.useRef)(!0);return(0,i.useEffect)((function(){e.current=!1}),[]),e.current}(),m=(0,i.useMemo)((function(){return{show:n,appear:o||!h,initial:h}}),[n,o,h]);(0,i.useEffect)((function(){n?f(Fe.Visible):Ue(p)||f(Fe.Hidden)}),[n,p]);var x={unmount:s};return a().createElement(ze.Provider,{value:p},a().createElement(Be.Provider,{value:m},ye({props:fe({},x,{as:i.Fragment,children:a().createElement(Je,Object.assign({},x,l))}),defaultTag:i.Fragment,features:Ge,visible:d===Fe.Visible,name:"Transition"})))}function Xe(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=(0,i.useRef)(t);return(0,i.useEffect)((function(){r.current=t}),[t]),(0,i.useCallback)((function(e){for(var t,n=me(r.current);!(t=n()).done;){var o=t.value;null!=o&&("function"==typeof o?o(e):o.current=e)}}),[r])}function Ze(e){for(var t,n,r=e.parentElement,o=null;r&&!(r instanceof HTMLFieldSetElement);)r instanceof HTMLLegendElement&&(o=r),r=r.parentElement;var i=null!=(t=""===(null==(n=r)?void 0:n.getAttribute("disabled")))&&t;return(!i||!function(e){if(!e)return!1;var t=e.previousElementSibling;for(;null!==t;){if(t instanceof HTMLLegendElement)return!1;t=t.previousElementSibling}return!0}(o))&&i}function Ye(e,t,n){var r=(0,i.useRef)(t);r.current=t,(0,i.useEffect)((function(){function t(e){r.current.call(window,e)}return window.addEventListener(e,t,n),function(){return window.removeEventListener(e,t,n)}}),[e,n])}Ke.Child=function(e){var t=null!==(0,i.useContext)(Be),n=null!==Pe();return!t&&n?a().createElement(Ke,Object.assign({},e)):a().createElement(Je,Object.assign({},e))},Ke.Root=Ke,function(e){e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab"}($e||($e={}));var Qe,et,tt,nt,rt,ot=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map((function(e){return e+":not([tabindex='-1'])"})).join(",");function it(e){null==e||e.focus({preventScroll:!0})}function at(e,t){var n=Array.isArray(e)?e:function(e){return void 0===e&&(e=document.body),null==e?[]:Array.from(e.querySelectorAll(ot))}(e),r=document.activeElement,o=function(){if(t&(Qe.First|Qe.Next))return tt.Next;if(t&(Qe.Previous|Qe.Last))return tt.Previous;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")}(),i=function(){if(t&Qe.First)return 0;if(t&Qe.Previous)return Math.max(0,n.indexOf(r))-1;if(t&Qe.Next)return Math.max(0,n.indexOf(r))+1;if(t&Qe.Last)return n.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")}(),a=t&Qe.NoScroll?{preventScroll:!0}:{},s=0,l=n.length,c=void 0;do{var u;if(s>=l||s+l<=0)return et.Error;var d=i+s;if(t&Qe.WrapAround)d=(d+l)%l;else{if(d<0)return et.Underflow;if(d>=l)return et.Overflow}null==(u=c=n[d])||u.focus(a),s+=o}while(c!==document.activeElement);return c.hasAttribute("tabindex")||c.setAttribute("tabindex","0"),et.Success}function st(e,t,n){void 0===t&&(t=rt.All);var r=void 0===n?{}:n,o=r.initialFocus,a=r.containers,s=(0,i.useRef)("undefined"!=typeof window?document.activeElement:null),l=(0,i.useRef)(null),c=Oe(),u=Boolean(t&rt.RestoreFocus),d=Boolean(t&rt.InitialFocus);(0,i.useEffect)((function(){u&&(s.current=document.activeElement)}),[u]),(0,i.useEffect)((function(){if(u)return function(){it(s.current),s.current=null}}),[u]),(0,i.useEffect)((function(){if(d&&e.current){var t=document.activeElement;if(null==o?void 0:o.current){if((null==o?void 0:o.current)===t)return void(l.current=t)}else if(e.current.contains(t))return void(l.current=t);(null==o?void 0:o.current)?it(o.current):at(e.current,Qe.First)===et.Error&&console.warn("There are no focusable elements inside the <FocusTrap />"),l.current=document.activeElement}}),[e,o,d]),Ye("keydown",(function(n){t&rt.TabLock&&e.current&&n.key===$e.Tab&&(n.preventDefault(),at(e.current,(n.shiftKey?Qe.Previous:Qe.Next)|Qe.WrapAround)===et.Success&&(l.current=document.activeElement))})),Ye("focus",(function(n){if(t&rt.FocusLock){var r=new Set(null==a?void 0:a.current);if(r.add(e),r.size){var o=l.current;if(o&&c.current){var i=n.target;i&&i instanceof HTMLElement?!function(e,t){for(var n,r=me(e);!(n=r()).done;){var o;if(null==(o=n.value.current)?void 0:o.contains(t))return!0}return!1}(r,i)?(n.preventDefault(),n.stopPropagation(),it(o)):(l.current=i,it(i)):it(l.current)}}}}),!0)}!function(e){e[e.First=1]="First",e[e.Previous=2]="Previous",e[e.Next=4]="Next",e[e.Last=8]="Last",e[e.WrapAround=16]="WrapAround",e[e.NoScroll=32]="NoScroll"}(Qe||(Qe={})),function(e){e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow"}(et||(et={})),function(e){e[e.Previous=-1]="Previous",e[e.Next=1]="Next"}(tt||(tt={})),function(e){e[e.Strict=0]="Strict",e[e.Loose=1]="Loose"}(nt||(nt={})),function(e){e[e.None=1]="None",e[e.InitialFocus=2]="InitialFocus",e[e.TabLock=4]="TabLock",e[e.FocusLock=8]="FocusLock",e[e.RestoreFocus=16]="RestoreFocus",e[e.All=30]="All"}(rt||(rt={}));var lt=new Set,ct=new Map;function ut(e){e.setAttribute("aria-hidden","true"),e.inert=!0}function dt(e){var t=ct.get(e);t&&(null===t["aria-hidden"]?e.removeAttribute("aria-hidden"):e.setAttribute("aria-hidden",t["aria-hidden"]),e.inert=t.inert)}var ft=(0,i.createContext)(!1);function pt(e){return a().createElement(ft.Provider,{value:e.force},e.children)}const ht=ReactDOM;function mt(){var e=(0,i.useContext)(ft),t=(0,i.useContext)(gt),n=(0,i.useState)((function(){if(!e&&null!==t)return null;if("undefined"==typeof window)return null;var n=document.getElementById("headlessui-portal-root");if(n)return n;var r=document.createElement("div");return r.setAttribute("id","headlessui-portal-root"),document.body.appendChild(r)})),r=n[0],o=n[1];return(0,i.useEffect)((function(){e||null!==t&&o(t.current)}),[t,o,e]),r}var xt=i.Fragment;function yt(e){var t=e,n=mt(),r=(0,i.useState)((function(){return"undefined"==typeof window?null:document.createElement("div")}))[0],o=ke();return we((function(){if(n&&r)return n.appendChild(r),function(){var e;n&&(r&&(n.removeChild(r),n.childNodes.length<=0&&(null==(e=n.parentElement)||e.removeChild(n))))}}),[n,r]),o&&n&&r?(0,ht.createPortal)(ye({props:t,defaultTag:xt,name:"Portal"}),r):null}var vt=i.Fragment,gt=(0,i.createContext)(null);yt.Group=function(e){var t=e.target,n=pe(e,["target"]);return a().createElement(gt.Provider,{value:t},ye({props:n,defaultTag:vt,name:"Popover.Group"}))};var bt=(0,i.createContext)(null);function wt(){var e=(0,i.useContext)(bt);if(null===e){var t=new Error("You used a <Description /> component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(t,wt),t}return e}var jt,kt,St,Ct,_t=(0,i.createContext)((function(){}));function Ot(e){var t=e.children,n=e.onUpdate,r=e.type,o=e.element,s=(0,i.useContext)(_t),l=(0,i.useCallback)((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];null==n||n.apply(void 0,t),s.apply(void 0,t)}),[s,n]);return we((function(){return l(jt.Add,r,o),function(){return l(jt.Remove,r,o)}}),[l,r,o]),a().createElement(_t.Provider,{value:l},t)}_t.displayName="StackContext",function(e){e[e.Add=0]="Add",e[e.Remove=1]="Remove"}(jt||(jt={})),function(e){e[e.Open=0]="Open",e[e.Closed=1]="Closed"}(St||(St={})),function(e){e[e.SetTitleId=0]="SetTitleId"}(Ct||(Ct={}));var Et=((kt={})[Ct.SetTitleId]=function(e,t){return e.titleId===t.id?e:fe({},e,{titleId:t.id})},kt),At=(0,i.createContext)(null);function Nt(e){var t=(0,i.useContext)(At);if(null===t){var n=new Error("<"+e+" /> is missing a parent <"+Mt.displayName+" /> component.");throw Error.captureStackTrace&&Error.captureStackTrace(n,Nt),n}return t}function Pt(e,t){return xe(t.type,Et,e,t)}At.displayName="DialogContext";var Tt=se.RenderStrategy|se.Static,It=ge((function(e,t){var n,r=e.open,o=e.onClose,s=e.initialFocus,l=pe(e,["open","onClose","initialFocus"]),c=(0,i.useState)(0),u=c[0],d=c[1],f=Pe();void 0===r&&null!==f&&(r=xe(f,((n={})[Ee.Open]=!0,n[Ee.Closed]=!1,n)));var p=(0,i.useRef)(new Set),h=(0,i.useRef)(null),m=Xe(h,t),x=e.hasOwnProperty("open")||null!==f,y=e.hasOwnProperty("onClose");if(!x&&!y)throw new Error("You have to provide an `open` and an `onClose` prop to the `Dialog` component.");if(!x)throw new Error("You provided an `onClose` prop to the `Dialog`, but forgot an `open` prop.");if(!y)throw new Error("You provided an `open` prop to the `Dialog`, but forgot an `onClose` prop.");if("boolean"!=typeof r)throw new Error("You provided an `open` prop to the `Dialog`, but the value is not a boolean. Received: "+r);if("function"!=typeof o)throw new Error("You provided an `onClose` prop to the `Dialog`, but the value is not a function. Received: "+o);var v=r?St.Open:St.Closed,g=null!==f?f===Ee.Open:v===St.Open,b=(0,i.useReducer)(Pt,{titleId:null,descriptionId:null}),w=b[0],j=b[1],k=(0,i.useCallback)((function(){return o(!1)}),[o]),S=(0,i.useCallback)((function(e){return j({type:Ct.SetTitleId,id:e})}),[j]),C=ke()&&v===St.Open,_=u>1,O=null!==(0,i.useContext)(At);st(h,C?xe(_?"parent":"leaf",{parent:rt.RestoreFocus,leaf:rt.All}):rt.None,{initialFocus:s,containers:p}),function(e,t){void 0===t&&(t=!0),we((function(){if(t&&e.current){var n=e.current;lt.add(n);for(var r,o=me(ct.keys());!(r=o()).done;){var i=r.value;i.contains(n)&&(dt(i),ct.delete(i))}return document.querySelectorAll("body > *").forEach((function(e){if(e instanceof HTMLElement){for(var t,n=me(lt);!(t=n()).done;){var r=t.value;if(e.contains(r))return}1===lt.size&&(ct.set(e,{"aria-hidden":e.getAttribute("aria-hidden"),inert:e.inert}),ut(e))}})),function(){if(lt.delete(n),lt.size>0)document.querySelectorAll("body > *").forEach((function(e){if(e instanceof HTMLElement&&!ct.has(e)){for(var t,n=me(lt);!(t=n()).done;){var r=t.value;if(e.contains(r))return}ct.set(e,{"aria-hidden":e.getAttribute("aria-hidden"),inert:e.inert}),ut(e)}}));else for(var e,t=me(ct.keys());!(e=t()).done;){var r=e.value;dt(r),ct.delete(r)}}}}),[t])}(h,!!_&&C),Ye("mousedown",(function(e){var t,n=e.target;v===St.Open&&(_||(null==(t=h.current)?void 0:t.contains(n))||k())})),Ye("keydown",(function(e){e.key===$e.Escape&&v===St.Open&&(_||(e.preventDefault(),e.stopPropagation(),k()))})),(0,i.useEffect)((function(){if(v===St.Open&&!O){var e=document.documentElement.style.overflow,t=document.documentElement.style.paddingRight,n=window.innerWidth-document.documentElement.clientWidth;return document.documentElement.style.overflow="hidden",document.documentElement.style.paddingRight=n+"px",function(){document.documentElement.style.overflow=e,document.documentElement.style.paddingRight=t}}}),[v,O]),(0,i.useEffect)((function(){if(v===St.Open&&h.current){var e=new IntersectionObserver((function(e){for(var t,n=me(e);!(t=n()).done;){var r=t.value;0===r.boundingClientRect.x&&0===r.boundingClientRect.y&&0===r.boundingClientRect.width&&0===r.boundingClientRect.height&&k()}}));return e.observe(h.current),function(){return e.disconnect()}}}),[v,h,k]);var E=function(){var e=(0,i.useState)([]),t=e[0],n=e[1];return[t.length>0?t.join(" "):void 0,(0,i.useMemo)((function(){return function(e){var t=(0,i.useCallback)((function(e){return n((function(t){return[].concat(t,[e])})),function(){return n((function(t){var n=t.slice(),r=n.indexOf(e);return-1!==r&&n.splice(r,1),n}))}}),[]),r=(0,i.useMemo)((function(){return{register:t,slot:e.slot,name:e.name,props:e.props}}),[t,e.slot,e.name,e.props]);return a().createElement(bt.Provider,{value:r},e.children)}}),[n])]}(),A=E[0],N=E[1],P="headlessui-dialog-"+_e(),T=(0,i.useMemo)((function(){return[{dialogState:v,close:k,setTitleId:S},w]}),[v,w,k,S]),I=(0,i.useMemo)((function(){return{open:v===St.Open}}),[v]),L={ref:m,id:P,role:"dialog","aria-modal":v===St.Open||void 0,"aria-labelledby":w.titleId,"aria-describedby":A,onClick:function(e){e.stopPropagation()}},M=l;return a().createElement(Ot,{type:"Dialog",element:h,onUpdate:(0,i.useCallback)((function(e,t,n){var r;"Dialog"===t&&xe(e,((r={})[jt.Add]=function(){p.current.add(n),d((function(e){return e+1}))},r[jt.Remove]=function(){p.current.add(n),d((function(e){return e-1}))},r))}),[])},a().createElement(pt,{force:!0},a().createElement(yt,null,a().createElement(At.Provider,{value:T},a().createElement(yt.Group,{target:h},a().createElement(pt,{force:!1},a().createElement(N,{slot:I,name:"Dialog.Description"},ye({props:fe({},M,L),slot:I,defaultTag:"div",features:Tt,visible:g,name:"Dialog"}))))))))})),Lt=ge((function e(t,n){var r=Nt([Mt.displayName,e.name].join("."))[0],o=r.dialogState,a=r.close,s=Xe(n),l="headlessui-dialog-overlay-"+_e(),c=(0,i.useCallback)((function(e){if(e.target===e.currentTarget){if(Ze(e.currentTarget))return e.preventDefault();e.preventDefault(),e.stopPropagation(),a()}}),[a]),u=(0,i.useMemo)((function(){return{open:o===St.Open}}),[o]);return ye({props:fe({},t,{ref:s,id:l,"aria-hidden":!0,onClick:c}),slot:u,defaultTag:"div",name:"Dialog.Overlay"})}));var Mt=Object.assign(It,{Overlay:Lt,Title:function e(t){var n=Nt([Mt.displayName,e.name].join("."))[0],r=n.dialogState,o=n.setTitleId,a="headlessui-dialog-title-"+_e();(0,i.useEffect)((function(){return o(a),function(){return o(null)}}),[a,o]);var s=(0,i.useMemo)((function(){return{open:r===St.Open}}),[r]);return ye({props:fe({},t,{id:a}),slot:s,defaultTag:"h2",name:"Dialog.Title"})},Description:function(e){var t=wt(),n="headlessui-description-"+_e();we((function(){return t.register(n)}),[n,t.register]);var r=e,o=fe({},t.props,{id:n});return ye({props:fe({},r,o),slot:t.slot||{},defaultTag:"p",name:t.name||"Description"})}});const Rt=wp.components,Dt=wp.i18n;const Ft=function(e){let{icon:t,size:n=24,...r}=e;return(0,o.cloneElement)(t,{width:n,height:n,...r})};var Bt=n(42),zt=n.n(Bt);const Ut=e=>(0,o.createElement)("circle",e),Vt=e=>(0,o.createElement)("g",e),Ht=e=>(0,o.createElement)("path",e),Wt=e=>(0,o.createElement)("rect",e),qt=e=>{let{className:t,isPressed:n,...r}=e;const i={...r,className:zt()(t,{"is-pressed":n})||void 0,role:"img","aria-hidden":!0,focusable:!1};return(0,o.createElement)("svg",i)},$t=(0,o.createElement)(qt,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(Ht,{d:"M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z"}));var Gt=n(246);function Jt(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Kt(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Jt(i,r,o,a,s,"next",e)}function s(e){Jt(i,r,o,a,s,"throw",e)}a(void 0)}))}}var Xt=function(){return X.get("plugins")},Zt=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=new FormData;return t.append("plugins",JSON.stringify(e)),X.post("plugins",t,{headers:{"Content-Type":"multipart/form-data"}})},Yt=function(){return X.get("active-plugins")};function Qt(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function en(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Qt(i,r,o,a,s,"next",e)}function s(e){Qt(i,r,o,a,s,"throw",e)}a(void 0)}))}}function tn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return nn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return nn(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function nn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function rn(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function on(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){rn(i,r,o,a,s,"next",e)}function s(e){rn(i,r,o,a,s,"throw",e)}a(void 0)}))}}function an(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function sn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ln(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ln(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ln(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var cn={promotion:function(e){var t,n=e.promotionData;return(0,Gt.jsxs)(Gt.Fragment,{children:[(0,Gt.jsx)("span",{className:"text-black",children:null!==(t=null==n?void 0:n.text)&&void 0!==t?t:""}),(0,Gt.jsx)("span",{className:"px-2 opacity-50","aria-hidden":"true",children:"|"}),(0,Gt.jsx)("div",{className:"flex items-center justify-center space-x-2",children:(null==n?void 0:n.url)&&(0,Gt.jsx)(Rt.Button,{variant:"link",className:"h-auto p-0 text-black underline hover:no-underline",href:"".concat(n.url,"&utm_source=").concat(window.extendifyData.sdk_partner,"&utm_group=").concat(K.getState().activeTestGroupsUtmValue()),onClick:on(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,de("promotion-notice-click");case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),target:"_blank",children:null==n?void 0:n.button_text})})]})},feedback:function(){return(0,Gt.jsxs)(Gt.Fragment,{children:[(0,Gt.jsx)("span",{className:"text-black",children:(0,Dt.__)("Tell us how to make the Extendify Library work better for you","extendify")}),(0,Gt.jsx)("span",{className:"px-2 opacity-50","aria-hidden":"true",children:"|"}),(0,Gt.jsx)("div",{className:"flex items-center justify-center space-x-2",children:(0,Gt.jsx)(Rt.Button,{variant:"link",className:"h-auto p-0 text-black underline hover:no-underline",href:"https://extendify.com/feedback/?utm_source=".concat(window.extendifyData.sdk_partner,"&utm_medium=library&utm_campaign=feedback-notice&utm_content=give-feedback&utm_group=").concat(K.getState().activeTestGroupsUtmValue()),onClick:Kt(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,de("feedback-notice-click");case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),target:"_blank",children:(0,Dt.__)("Give feedback","extendify")})})]})},standalone:function(){var e=tn((0,o.useState)(""),2),t=e[0],n=e[1],r=K((function(e){return e.giveFreebieImports}));return(0,Gt.jsxs)("div",{children:[(0,Gt.jsx)("span",{className:"text-black",children:(0,Dt.__)("Install the new Extendify Library plugin to get the latest we have to offer","extendify")}),(0,Gt.jsx)("span",{className:"px-2 opacity-50","aria-hidden":"true",children:"|"}),(0,Gt.jsxs)("div",{className:"relative inline-flex items-center space-x-2",children:[(0,Gt.jsx)(Rt.Button,{variant:"link",className:zt()("h-auto p-0 text-black underline hover:no-underline",{"opacity-0":t}),onClick:function(){n((0,Dt.__)("Installing...","extendify")),Promise.all([de("stln-footer-install"),Zt(["extendify"]),new Promise((function(e){return setTimeout(e,1e3)}))]).then(en(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r(10),n((0,Dt.__)("Success! Reloading...","extendify")),e.next=4,de("stln-footer-success");case 4:window.location.reload();case 5:case"end":return e.stop()}}),e)})))).catch(function(){var e=en(k().mark((function e(t){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return console.error(t),n((0,Dt.__)("Error. See console.","extendify")),e.next=4,de("stln-footer-fail");case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())},children:(0,Dt.__)("Install Extendify standalone plugin","extendify")}),t?(0,Gt.jsx)(Rt.Button,{variant:"link",disabled:!0,className:"absolute left-0 h-auto p-0 text-black underline opacity-100 hover:no-underline",onClick:function(){},children:t}):null]})]})}};function un(e){var t,n=e.className,r=void 0===n?"":n,i=sn((0,o.useState)(null),2),a=i[0],s=i[1],l=(0,o.useRef)(!1),c=w((function(e){var t,n;return null===(t=e.metaData)||void 0===t||null===(n=t.banners)||void 0===n?void 0:n.footer})),u=null!==(t=Object.keys(cn).find((function(e){return"promotion"===e?(null==c?void 0:c.key)&&!K.getState().noticesDismissedAt[c.key]:"feedback"===e?(o=null!==(t=K.getState().imports)&&void 0!==t?t:0,i=null!==(n=null===(r=K.getState())||void 0===r?void 0:r.firstLoadedOn)&&void 0!==n?n:new Date,a=(new Date).getTime()-new Date(i).getTime(),o>=3&&a/864e5>3&&!K.getState().noticesDismissedAt[e]):"standalone"===e?!window.extendifyData.standalone&&!K.getState().noticesDismissedAt[e]:!K.getState().noticesDismissedAt[e];var t,n,r,o,i,a})))&&void 0!==t?t:null,d=cn[u],f=function(){var e,t=(e=k().mark((function e(){var t;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s(!1),t="promotion"===u?c.key:u,K.getState().markNoticeSeen(t,"notices"),e.next=5,de("footer-notice-x-".concat(t));case 5:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){an(i,r,o,a,s,"next",e)}function s(e){an(i,r,o,a,s,"throw",e)}a(void 0)}))});return function(){return t.apply(this,arguments)}}();return(0,o.useEffect)((function(){cn[u]&&!l.current&&(s(!0),l.current=!0)}),[u]),a?(0,Gt.jsxs)("div",{className:"".concat(r," relative mx-auto hidden max-w-screen-4xl items-center justify-center space-x-4 bg-extendify-secondary py-3 px-5 lg:flex"),children:[(0,Gt.jsx)(d,{promotionData:c}),(0,Gt.jsx)("div",{className:"absolute right-1",children:(0,Gt.jsx)(Rt.Button,{className:"text-extendify-black opacity-50 hover:opacity-100 focus:opacity-100",icon:(0,Gt.jsx)(Ft,{icon:$t}),label:(0,Dt.__)("Dismiss this notice","extendify"),onClick:f,showTooltip:!1})})]}):null}function dn(e){const{body:t}=document.implementation.createHTMLDocument("");t.innerHTML=e;const n=t.getElementsByTagName("*");let r=n.length;for(;r--;){const e=n[r];if("SCRIPT"===e.tagName)(o=e).parentNode,o.parentNode.removeChild(o);else{let t=e.attributes.length;for(;t--;){const{name:n}=e.attributes[t];n.startsWith("on")&&e.removeAttribute(n)}}}var o;return t.innerHTML}const fn=(0,Gt.jsxs)(qt,{viewBox:"0 0 14 14",xmlns:"http://www.w3.org/2000/svg",children:[(0,Gt.jsx)(Ht,{d:"M7.32457 0.907043C3.98785 0.907043 1.2829 3.61199 1.2829 6.94871C1.2829 10.2855 3.98785 12.9904 7.32457 12.9904C10.6613 12.9904 13.3663 10.2855 13.3663 6.94871C13.3663 3.61199 10.6613 0.907043 7.32457 0.907043V0.907043Z",stroke:"currentColor",strokeWidth:"1.25",fill:"none"}),(0,Gt.jsx)(Ht,{d:"M6.34684 9.72526C6.34684 9.18224 6.77716 8.74168 7.32018 8.74168C7.8632 8.74168 8.30377 9.18224 8.30377 9.72526C8.30377 10.2683 7.8632 10.6986 7.32018 10.6986C6.77716 10.6986 6.34684 10.2683 6.34684 9.72526Z",fill:"currentColor"}),(0,Gt.jsx)(Ht,{d:"M7.9759 7.11261C7.93492 7.47121 7.67878 7.76834 7.32018 7.76834C6.95134 7.76834 6.70544 7.46097 6.6747 7.11261L6.34684 4.1721C6.28537 3.67006 6.81814 3.19876 7.32018 3.19876C7.82222 3.19876 8.35499 3.67006 8.30377 4.1721L7.9759 7.11261Z",fill:"currentColor"})]});const pn=(0,Gt.jsx)(qt,{fill:"none",viewBox:"0 0 25 24",xmlns:"http://www.w3.org/2000/svg",children:(0,Gt.jsx)(Ht,{clipRule:"evenodd",d:"m14.4063 2h4.1856c1.1856 0 1.6147.12701 2.0484.36409.4336.23802.7729.58706 1.0049 1.03111.2319.445.3548.8853.3548 2.10175v4.29475c0 1.2165-.1238 1.6567-.3548 2.1017-.232.445-.5722.7931-1.0049 1.0312-.1939.1064-.3873.1939-.6476.2567v3.4179c0 1.8788-.1912 2.5588-.5481 3.246-.3582.6873-.8836 1.2249-1.552 1.5925-.6697.3676-1.3325.5623-3.1634.5623h-6.46431c-1.83096 0-2.49367-.1962-3.16346-.5623-.6698-.3676-1.19374-.9067-1.552-1.5925s-.54943-1.3672-.54943-3.246v-6.63138c0-1.87871.19117-2.55871.54801-3.24597.35827-.68727.88362-1.22632 1.55342-1.59393.66837-.36615 1.3325-.56231 3.16346-.56231h2.76781c.0519-.55814.1602-.86269.3195-1.16946.232-.445.5721-.79404 1.0058-1.03206.4328-.23708.8628-.36409 2.0483-.36409zm-2.1512 2.73372c0-.79711.6298-1.4433 1.4067-1.4433h5.6737c.777 0 1.4068.64619 1.4068 1.4433v5.82118c0 .7971-.6298 1.4433-1.4068 1.4433h-5.6737c-.7769 0-1.4067-.6462-1.4067-1.4433z",fill:"currentColor",fillRule:"evenodd"})});const hn=(0,Gt.jsx)(qt,{fill:"none",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,Gt.jsx)(Ht,{clipRule:"evenodd",d:"m13.505 4h3.3044c.936 0 1.2747.10161 1.6171.29127.3424.19042.6102.46965.7934.82489.1831.356.2801.70824.2801 1.6814v3.43584c0 .9731-.0977 1.3254-.2801 1.6814-.1832.356-.4517.6344-.7934.8248-.153.0852-.3057.1552-.5112.2054v2.7344c0 1.503-.151 2.047-.4327 2.5968-.2828.5498-.6976.9799-1.2252 1.274-.5288.294-1.052.4498-2.4975.4498h-5.10341c-1.44549 0-1.96869-.1569-2.49747-.4498-.52878-.2941-.94242-.7254-1.22526-1.274-.28284-.5487-.43376-1.0938-.43376-2.5968v-5.3051c0-1.50301.15092-2.04701.43264-2.59682.28284-.54981.6976-.98106 1.22638-1.27514.52767-.29293 1.05198-.44985 2.49747-.44985h2.18511c.041-.44652.1265-.69015.2522-.93557.1832-.356.4517-.63523.7941-.82565.3417-.18966.6812-.29127 1.6171-.29127zm-1.6984 2.18698c0-.63769.4973-1.15464 1.1106-1.15464h4.4793c.6133 0 1.1106.51695 1.1106 1.15464v4.65692c0 .6377-.4973 1.1547-1.1106 1.1547h-4.4793c-.6133 0-1.1106-.517-1.1106-1.1547z",fill:"currentColor",fillRule:"evenodd"})});const mn=(0,Gt.jsx)(qt,{fill:"none",width:"150",height:"30",viewBox:"0 0 2524 492",xmlns:"http://www.w3.org/2000/svg",children:(0,Gt.jsxs)(Vt,{fill:"currentColor",children:[(0,Gt.jsx)(Ht,{d:"m609.404 378.5c-24.334 0-46-5.5-65-16.5-18.667-11.333-33.334-26.667-44-46-10.667-19.667-16-42.167-16-67.5 0-25.667 5.166-48.333 15.5-68 10.333-19.667 24.833-35 43.5-46 18.666-11.333 40-17 64-17 25 0 46.5 5.333 64.5 16 18 10.333 31.833 24.833 41.5 43.5 10 18.667 15 41 15 67v18.5l-212 .5 1-39h150.5c0-17-5.5-30.667-16.5-41-10.667-10.333-25.167-15.5-43.5-15.5-14.334 0-26.5 3-36.5 9-9.667 6-17 15-22 27s-7.5 26.667-7.5 44c0 26.667 5.666 46.833 17 60.5 11.666 13.667 28.833 20.5 51.5 20.5 16.666 0 30.333-3.167 41-9.5 11-6.333 18.166-15.333 21.5-27h56.5c-5.334 27-18.667 48.167-40 63.5-21 15.333-47.667 23-80 23z"}),(0,Gt.jsx)("path",{d:"m797.529 372h-69.5l85-121-85-126h71l54.5 84 52.5-84h68.5l-84 125.5 81.5 121.5h-70l-53-81.5z"}),(0,Gt.jsx)("path",{d:"m994.142 125h155.998v51h-155.998zm108.498 247h-61v-324h61z"}),(0,Gt.jsx)("path",{d:"m1278.62 378.5c-24.33 0-46-5.5-65-16.5-18.66-11.333-33.33-26.667-44-46-10.66-19.667-16-42.167-16-67.5 0-25.667 5.17-48.333 15.5-68 10.34-19.667 24.84-35 43.5-46 18.67-11.333 40-17 64-17 25 0 46.5 5.333 64.5 16 18 10.333 31.84 24.833 41.5 43.5 10 18.667 15 41 15 67v18.5l-212 .5 1-39h150.5c0-17-5.5-30.667-16.5-41-10.66-10.333-25.16-15.5-43.5-15.5-14.33 0-26.5 3-36.5 9-9.66 6-17 15-22 27s-7.5 26.667-7.5 44c0 26.667 5.67 46.833 17 60.5 11.67 13.667 28.84 20.5 51.5 20.5 16.67 0 30.34-3.167 41-9.5 11-6.333 18.17-15.333 21.5-27h56.5c-5.33 27-18.66 48.167-40 63.5-21 15.333-47.66 23-80 23z"}),(0,Gt.jsx)("path",{d:"m1484.44 372h-61v-247h56.5l5 32c7.67-12.333 18.5-22 32.5-29 14.34-7 29.84-10.5 46.5-10.5 31 0 54.34 9.167 70 27.5 16 18.333 24 43.333 24 75v152h-61v-137.5c0-20.667-4.66-36-14-46-9.33-10.333-22-15.5-38-15.5-19 0-33.83 6-44.5 18-10.66 12-16 28-16 48z"}),(0,Gt.jsx)("path",{d:"m1798.38 378.5c-24 0-44.67-5.333-62-16-17-11-30.34-26.167-40-45.5-9.34-19.333-14-41.833-14-67.5s4.66-48.333 14-68c9.66-20 23.5-35.667 41.5-47s39.33-17 64-17c17.33 0 33.16 3.5 47.5 10.5 14.33 6.667 25.33 16.167 33 28.5v-156.5h60.5v372h-56l-4-38.5c-7.34 14-18.67 25-34 33-15 8-31.84 12-50.5 12zm13.5-56c14.33 0 26.66-3 37-9 10.33-6.333 18.33-15.167 24-26.5 6-11.667 9-24.833 9-39.5 0-15-3-28-9-39-5.67-11.333-13.67-20.167-24-26.5-10.34-6.667-22.67-10-37-10-14 0-26.17 3.333-36.5 10-10.34 6.333-18.34 15.167-24 26.5-5.34 11.333-8 24.333-8 39s2.66 27.667 8 39c5.66 11.333 13.66 20.167 24 26.5 10.33 6.333 22.5 9.5 36.5 9.5z"}),(0,Gt.jsx)("path",{d:"m1996.45 372v-247h61v247zm30-296.5c-10.34 0-19.17-3.5-26.5-10.5-7-7.3333-10.5-16.1667-10.5-26.5s3.5-19 10.5-26c7.33-6.99999 16.16-10.49998 26.5-10.49998 10.33 0 19 3.49999 26 10.49998 7.33 7 11 15.6667 11 26s-3.67 19.1667-11 26.5c-7 7-15.67 10.5-26 10.5z"}),(0,Gt.jsx)("path",{d:"m2085.97 125h155v51h-155zm155.5-122.5v52c-3.33 0-6.83 0-10.5 0-3.33 0-6.83 0-10.5 0-15.33 0-25.67 3.6667-31 11-5 7.3333-7.5 17.1667-7.5 29.5v277h-60.5v-277c0-22.6667 3.67-40.8333 11-54.5 7.33-14 17.67-24.1667 31-30.5 13.33-6.66666 28.83-10 46.5-10 5 0 10.17.166671 15.5.5 5.67.333329 11 .99999 16 2z"}),(0,Gt.jsx)("path",{d:"m2330.4 125 80.5 228-33 62.5-112-290.5zm-58 361.5v-50.5h36.5c8 0 15-1 21-3 6-1.667 11.34-5 16-10 5-5 9.17-12.333 12.5-22l102.5-276h63l-121 302c-9 22.667-20.33 39.167-34 49.5-13.66 10.333-30.66 15.5-51 15.5-8.66 0-16.83-.5-24.5-1.5-7.33-.667-14.33-2-21-4z"}),(0,Gt.jsx)("path",{clipRule:"evenodd",d:"m226.926 25.1299h83.271c23.586 0 32.123 2.4639 40.751 7.0633 8.628 4.6176 15.378 11.389 19.993 20.0037 4.615 8.6329 7.059 17.1746 7.059 40.7738v83.3183c0 23.599-2.463 32.141-7.059 40.774-4.615 8.633-11.383 15.386-19.993 20.003-3.857 2.065-7.704 3.764-12.884 4.981v66.308c0 36.447-3.803 49.639-10.902 62.972-7.128 13.333-17.579 23.763-30.877 30.894-13.325 7.132-26.51 10.909-62.936 10.909h-128.605c-36.4268 0-49.6113-3.805-62.9367-10.909-13.3254-7.131-23.749-17.589-30.8765-30.894-7.12757-13.304-10.9308-26.525-10.9308-62.972v-128.649c0-36.447 3.80323-49.639 10.9026-62.972 7.1275-13.333 17.5793-23.7909 30.9047-30.9224 13.2972-7.1034 26.5099-10.9088 62.9367-10.9088h55.064c1.033-10.8281 3.188-16.7362 6.357-22.6877 4.615-8.6329 11.382-15.4043 20.01-20.0219 8.61-4.5994 17.165-7.0633 40.751-7.0633zm-42.798 53.0342c0-15.464 12.53-28 27.986-28h112.877c15.457 0 27.987 12.536 27.987 28v112.9319c0 15.464-12.53 28-27.987 28h-112.877c-15.456 0-27.986-12.536-27.986-28z",fillRule:"evenodd"})]})});const xn=(0,Gt.jsx)(qt,{fill:"none",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg",children:(0,Gt.jsx)("path",{d:"m11.9893 2.59931c-.1822.00285-.3558.07789-.4827.20864s-.1967.30653-.1941.48871v1.375c-.0013.0911.0156.18155.0495.26609.034.08454.0844.16149.1484.22637s.1402.11639.2242.15156c.0841.03516.1743.05327.2654.05327s.1813-.01811.2654-.05327c.084-.03517.1603-.08668.2242-.15156.064-.06488.1144-.14183.1484-.22637s.0508-.17499.0495-.26609v-1.375c.0013-.09202-.0158-.18337-.0505-.26863-.0346-.08526-.086-.1627-.1511-.22773s-.1426-.11633-.2279-.15085c-.0853-.03453-.1767-.05158-.2687-.05014zm-5.72562.46013c-.1251.00033-.24775.0348-.35471.09968-.10697.06488-.19421.15771-.25232.2685-.05812.1108-.0849.23534-.07747.36023.00744.12488.0488.24537.11964.34849l.91667 1.375c.04939.07667.11354.14274.18872.19437.07517.05164.15987.0878.24916.10639.08928.01858.18137.01922.27091.00187.08953-.01734.17472-.05233.2506-.10292.07589-.05059.14095-.11577.1914-.19174.05045-.07598.08528-.16123.10246-.2508.01719-.08956.01638-.18165-.00237-.2709s-.05507-.17388-.10684-.24897l-.91666-1.375c-.06252-.09667-.14831-.1761-.2495-.231-.1012-.0549-.21456-.08351-.32969-.0832zm11.45212 0c-.1117.00307-.2209.03329-.3182.08804-.0973.05474-.1798.13237-.2404.22616l-.9167 1.375c-.0518.07509-.0881.15972-.1068.24897-.0188.08925-.0196.18134-.0024.2709.0172.08957.052.17482.1024.2508.0505.07597.1156.14115.1914.19174.0759.05059.1611.08558.2506.10292.0896.01735.1817.01671.271-.00187.0892-.01859.1739-.05475.2491-.10639.0752-.05163.1393-.1177.1887-.19437l.9167-1.375c.0719-.10456.1135-.22698.1201-.3537s-.022-.25281-.0826-.36429c-.0606-.11149-.1508-.20403-.2608-.26738-.11-.06334-.2353-.09502-.3621-.09153zm-9.61162 3.67472c-.09573-.00001-.1904.01998-.27795.05867-.08756.03869-.16607.09524-.23052.16602l-4.58333 5.04165c-.11999.1319-.18407.3052-.17873.4834.00535.1782.0797.3473.20738.4718l8.47917 8.25c.1284.1251.3006.1951.4798.1951.1793 0 .3514-.07.4798-.1951l8.4792-8.25c.1277-.1245.202-.2936.2074-.4718.0053-.1782-.0588-.3515-.1788-.4834l-4.5833-5.04165c-.0644-.07078-.1429-.12733-.2305-.16602s-.1822-.05868-.278-.05867h-3.877zm.30436 1.375h2.21646l-2.61213 3.48314c-.04258.0557-.07639.1176-.10026.1835h-2.83773zm4.96646 0h2.2165l3.3336 3.66664h-2.8368c-.0241-.066-.0582-.1278-.1011-.1835zm-1.375.45833 2.4063 3.20831h-4.81254zm-6.78637 4.58331h2.70077c.00665.0188.01412.0374.02238.0555l2.11442 4.6505zm4.20826 0h5.15621l-2.5781 5.6719zm6.66371 0h2.7008l-4.8376 4.706 2.1144-4.6505c.0083-.0181.0158-.0367.0224-.0555z",fill:"#000"})});const yn=(0,Gt.jsxs)(qt,{viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,Gt.jsx)(Ht,{d:"M7.32457 0.907043C3.98785 0.907043 1.2829 3.61199 1.2829 6.94871C1.2829 10.2855 3.98785 12.9904 7.32457 12.9904C10.6613 12.9904 13.3663 10.2855 13.3663 6.94871C13.3663 3.61199 10.6613 0.907043 7.32457 0.907043V0.907043Z",stroke:"white",strokeWidth:"1.25"}),(0,Gt.jsx)(Ht,{d:"M7.32458 10.0998L4.82458 7.59977M7.32458 10.0998V3.79764V10.0998ZM7.32458 10.0998L9.82458 7.59977L7.32458 10.0998Z",stroke:"white",strokeWidth:"1.25"})]});const vn=(0,Gt.jsxs)(qt,{viewBox:"0 0 25 25",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,Gt.jsx)("path",{d:"M7.93298 20.2773L17.933 20.2773C18.1982 20.2773 18.4526 20.172 18.6401 19.9845C18.8276 19.7969 18.933 19.5426 18.933 19.2773C18.933 19.0121 18.8276 18.7578 18.6401 18.5702C18.4526 18.3827 18.1982 18.2773 17.933 18.2773L7.93298 18.2773C7.66777 18.2773 7.41341 18.3827 7.22588 18.5702C7.03834 18.7578 6.93298 19.0121 6.93298 19.2773C6.93298 19.5426 7.03834 19.7969 7.22588 19.9845C7.41341 20.172 7.66777 20.2773 7.93298 20.2773Z",fill:"white"}),(0,Gt.jsx)("path",{d:"M12.933 4.27734C12.6678 4.27734 12.4134 4.3827 12.2259 4.57024C12.0383 4.75777 11.933 5.01213 11.933 5.27734L11.933 12.8673L9.64298 10.5773C9.55333 10.4727 9.44301 10.3876 9.31895 10.3276C9.19488 10.2676 9.05975 10.2339 8.92203 10.2285C8.78431 10.2232 8.64698 10.2464 8.51865 10.2967C8.39033 10.347 8.27378 10.4232 8.17632 10.5207C8.07887 10.6181 8.00261 10.7347 7.95234 10.863C7.90206 10.9913 7.87886 11.1287 7.88418 11.2664C7.8895 11.4041 7.92323 11.5392 7.98325 11.6633C8.04327 11.7874 8.12829 11.8977 8.23297 11.9873L12.233 15.9873C12.3259 16.0811 12.4365 16.1555 12.5584 16.2062C12.6803 16.257 12.811 16.2831 12.943 16.2831C13.075 16.2831 13.2057 16.257 13.3276 16.2062C13.4494 16.1555 13.56 16.0811 13.653 15.9873L17.653 11.9873C17.8168 11.796 17.9024 11.55 17.8927 11.2983C17.883 11.0466 17.7786 10.8079 17.6005 10.6298C17.4224 10.4517 17.1837 10.3474 16.932 10.3376C16.6804 10.3279 16.4343 10.4135 16.243 10.5773L13.933 12.8673L13.933 5.27734C13.933 5.01213 13.8276 4.75777 13.6401 4.57024C13.4525 4.3827 13.1982 4.27734 12.933 4.27734Z",fill:"white"})]});const gn=(0,Gt.jsxs)(qt,{fill:"none",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:[(0,Gt.jsx)(Ht,{d:"m11.2721 16.9866.6041 2.2795.6042-2.2795.6213-2.3445c.0001-.0002.0001-.0004.0002-.0006.2404-.9015.8073-1.5543 1.4638-1.8165.0005-.0002.0009-.0004.0013-.0006l1.9237-.7555 1.4811-.5818-1.4811-.5817-1.9264-.7566c0-.0001-.0001-.0001-.0001-.0001-.0001 0-.0001 0-.0001 0-.654-.25727-1.2213-.90816-1.4621-1.81563-.0001-.00006-.0001-.00011-.0001-.00017l-.6215-2.34519-.6042-2.27947-.6041 2.27947-.6216 2.34519v.00017c-.2409.90747-.80819 1.55836-1.46216 1.81563-.00002 0-.00003 0-.00005 0-.00006 0-.00011 0-.00017.0001l-1.92637.7566-1.48108.5817 1.48108.5818 1.92637.7566c.00007 0 .00015.0001.00022.0001.65397.2572 1.22126.9082 1.46216 1.8156v.0002z",stroke:"currentColor",strokeWidth:"1.25",fill:"none"}),(0,Gt.jsxs)(Vt,{fill:"currentColor",children:[(0,Gt.jsx)(Ht,{d:"m18.1034 18.3982-.2787.8625-.2787-.8625c-.1314-.4077-.4511-.7275-.8589-.8589l-.8624-.2786.8624-.2787c.4078-.1314.7275-.4512.8589-.8589l.2787-.8624.2787.8624c.1314.4077.4511.7275.8589.8589l.8624.2787-.8624.2786c-.4078.1314-.7269.4512-.8589.8589z"}),(0,Gt.jsx)(Ht,{d:"m6.33141 6.97291-.27868.86242-.27867-.86242c-.13142-.40775-.45116-.72749-.8589-.85891l-.86243-.27867.86243-.27868c.40774-.13141.72748-.45115.8589-.8589l.27867-.86242.27868.86242c.13142.40775.45116.72749.8589.8589l.86242.27868-.86242.27867c-.40774.13142-.7269.45116-.8589.85891z"})]})]});const bn=(0,Gt.jsx)(qt,{fill:"none",height:"25",viewBox:"0 0 25 25",width:"25",xmlns:"http://www.w3.org/2000/svg",children:(0,Gt.jsx)(Ht,{d:"m16.2382 9.17969.7499.00645.0066-.75988-.7599.00344zm-5.5442.77506 5.5475-.02507-.0067-1.49998-5.5476.02506zm4.7942-.78152-.0476 5.52507 1.5.0129.0475-5.52506zm.2196-.52387-7.68099 7.68104 1.06066 1.0606 7.68103-7.68098z",fill:"currentColor"})});const wn=(0,Gt.jsx)(qt,{fill:"none",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg",children:(0,Gt.jsxs)(Vt,{stroke:"currentColor",strokeWidth:"1.5",children:[(0,Gt.jsx)(Ht,{d:"m6 4.75h12c.6904 0 1.25.55964 1.25 1.25v12c0 .6904-.5596 1.25-1.25 1.25h-12c-.69036 0-1.25-.5596-1.25-1.25v-12c0-.69036.55964-1.25 1.25-1.25z"}),(0,Gt.jsx)(Ht,{d:"m9.25 19v-14"})]})});const jn=(0,Gt.jsxs)(qt,{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,Gt.jsx)(Ht,{fillRule:"evenodd",clipRule:"evenodd",d:"M7.49271 18.0092C6.97815 17.1176 7.28413 15.9755 8.17569 15.4609C9.06724 14.946 10.2094 15.252 10.7243 16.1435C11.2389 17.0355 10.9329 18.1772 10.0413 18.6922C9.14978 19.2071 8.00764 18.9011 7.49271 18.0092V18.0092Z",fill:"currentColor"}),(0,Gt.jsx)(Ht,{fillRule:"evenodd",clipRule:"evenodd",d:"M16.5073 6.12747C17.0218 7.01903 16.7158 8.16117 15.8243 8.67573C14.9327 9.19066 13.7906 8.88467 13.2757 7.99312C12.7611 7.10119 13.0671 5.95942 13.9586 5.44449C14.8502 4.92956 15.9923 5.23555 16.5073 6.12747V6.12747Z",fill:"currentColor"}),(0,Gt.jsx)(Ht,{fillRule:"evenodd",clipRule:"evenodd",d:"M4.60135 11.1355C5.11628 10.2439 6.25805 9.93793 7.14998 10.4525C8.04153 10.9674 8.34752 12.1096 7.83296 13.0011C7.31803 13.8927 6.17588 14.1987 5.28433 13.6841C4.39278 13.1692 4.08679 12.0274 4.60135 11.1355V11.1355Z",fill:"currentColor"}),(0,Gt.jsx)(Ht,{fillRule:"evenodd",clipRule:"evenodd",d:"M19.3986 13.0011C18.8837 13.8927 17.7419 14.1987 16.85 13.6841C15.9584 13.1692 15.6525 12.027 16.167 11.1355C16.682 10.2439 17.8241 9.93793 18.7157 10.4525C19.6072 10.9674 19.9132 12.1092 19.3986 13.0011V13.0011Z",fill:"currentColor"}),(0,Gt.jsx)(Ht,{d:"M9.10857 8.92594C10.1389 8.92594 10.9742 8.09066 10.9742 7.06029C10.9742 6.02992 10.1389 5.19464 9.10857 5.19464C8.0782 5.19464 7.24292 6.02992 7.24292 7.06029C7.24292 8.09066 8.0782 8.92594 9.10857 8.92594Z",fill:"currentColor"}),(0,Gt.jsx)(Ht,{d:"M14.8913 18.942C15.9217 18.942 16.7569 18.1067 16.7569 17.0763C16.7569 16.046 15.9217 15.2107 14.8913 15.2107C13.8609 15.2107 13.0256 16.046 13.0256 17.0763C13.0256 18.1067 13.8609 18.942 14.8913 18.942Z",fill:"currentColor"}),(0,Gt.jsx)(Ht,{fillRule:"evenodd",clipRule:"evenodd",d:"M10.3841 13.0011C9.86951 12.1096 10.1755 10.9674 11.067 10.4525C11.9586 9.93793 13.1007 10.2439 13.6157 11.1355C14.1302 12.0274 13.8242 13.1692 12.9327 13.6841C12.0411 14.1987 10.899 13.8927 10.3841 13.0011V13.0011Z",fill:"currentColor"})]});const kn=(0,Gt.jsxs)(qt,{fill:"none",viewBox:"0 0 151 148",width:"151",xmlns:"http://www.w3.org/2000/svg",children:[(0,Gt.jsx)(Ut,{cx:"65.6441",cy:"66.6114",fill:"#0b4a43",r:"65.3897"}),(0,Gt.jsxs)(Vt,{fill:"#cbc3f5",stroke:"#0b4a43",children:[(0,Gt.jsx)(Ht,{d:"m61.73 11.3928 3.0825 8.3304.1197.3234.3234.1197 8.3304 3.0825-8.3304 3.0825-.3234.1197-.1197.3234-3.0825 8.3304-3.0825-8.3304-.1197-.3234-.3234-.1197-8.3304-3.0825 8.3304-3.0825.3234-.1197.1197-.3234z",strokeWidth:"1.5"}),(0,Gt.jsx)(Ht,{d:"m84.3065 31.2718c0 5.9939-12.4614 22.323-18.6978 22.323h-17.8958v56.1522c3.5249.9 11.6535 0 17.8958 0h6.2364c11.2074 3.33 36.0089 7.991 45.5529 0l-9.294-62.1623c-2.267-1.7171-5.949-6.6968-2.55-12.8786 3.4-6.1817 2.55-18.0406 0-24.5756-1.871-4.79616-8.3289-8.90882-14.4482-8.90882s-7.0825 4.00668-6.7993 6.01003z",strokeWidth:"1.75"}),(0,Gt.jsx)(Wt,{height:"45.5077",rx:"9.13723",strokeWidth:"1.75",transform:"matrix(0 1 -1 0 191.5074 -96.0026)",width:"18.2745",x:"143.755",y:"47.7524"}),(0,Gt.jsx)(Wt,{height:"42.3038",rx:"8.73674",strokeWidth:"1.75",transform:"matrix(0 1 -1 0 241.97 -50.348)",width:"17.4735",x:"146.159",y:"95.811"}),(0,Gt.jsx)(Wt,{height:"55.9204",rx:"8.73674",strokeWidth:"1.75",transform:"matrix(0 1 -1 0 213.1347 -85.5913)",width:"17.4735",x:"149.363",y:"63.7717"}),(0,Gt.jsx)(Wt,{height:"51.1145",rx:"8.73674",strokeWidth:"1.75",transform:"matrix(0 1 -1 0 229.1545 -69.5715)",width:"17.4735",x:"149.363",y:"79.7915"}),(0,Gt.jsx)(Ht,{d:"m75.7483 105.349c.9858-25.6313-19.2235-42.0514-32.8401-44.0538v12.0146c8.5438 1.068 24.8303 9.7642 24.8303 36.0442 0 23.228 19.4905 33.374 29.6362 33.641v-10.413s-22.6122-1.602-21.6264-27.233z",strokeWidth:"1.75"}),(0,Gt.jsx)(Ht,{d:"m68.5388 109.354c.9858-25.6312-19.2234-42.0513-32.8401-44.0537v12.0147c8.5438 1.0679 24.8303 9.7641 24.8303 36.044 0 23.228 19.4905 33.374 29.6362 33.641v-10.413s-22.6122-1.602-21.6264-27.233z",strokeWidth:"1.75"})]})]});const Sn=(0,Gt.jsxs)(qt,{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,Gt.jsx)(Ut,{cx:"12",cy:"12",r:"7.25",stroke:"currentColor",strokeWidth:"1.5"}),(0,Gt.jsx)(Ut,{cx:"12",cy:"12",r:"4.25",stroke:"currentColor",strokeWidth:"1.5"}),(0,Gt.jsx)(Ut,{cx:"11.9999",cy:"12.2",r:"6",transform:"rotate(-45 11.9999 12.2)",stroke:"currentColor",strokeWidth:"3",strokeDasharray:"1.5 4"})]});const Cn=(0,Gt.jsx)(qt,{fill:"none",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg",children:(0,Gt.jsx)(Ht,{d:"m11.7758 3.45425c.0917-.18582.3567-.18581.4484 0l2.3627 4.78731c.0364.07379.1068.12493.1882.13676l5.2831.76769c.2051.02979.287.28178.1386.42642l-3.8229 3.72637c-.0589.0575-.0858.1402-.0719.2213l.9024 5.2618c.0351.2042-.1793.36-.3627.2635l-4.7254-2.4842c-.0728-.0383-.1598-.0383-.2326 0l-4.7254 2.4842c-.18341.0965-.39776-.0593-.36274-.2635l.90247-5.2618c.01391-.0811-.01298-.1638-.0719-.2213l-3.8229-3.72637c-.14838-.14464-.0665-.39663.13855-.42642l5.28312-.76769c.08143-.01183.15182-.06297.18823-.13676z",fill:"currentColor"})});const _n=(0,Gt.jsx)(qt,{fill:"none",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg",children:(0,Gt.jsx)(Ht,{clipRule:"evenodd",d:"m13 4c4.9545 0 9 4.04545 9 9 0 4.9545-4.0455 9-9 9-4.95455 0-9-4.0455-9-9 0-4.95455 4.04545-9 9-9zm5.0909 13.4545c-1.9545 3.8637-8.22726 3.8637-10.22726 0-.04546-.1818-.04546-.3636 0-.5454 2-3.8636 8.27276-3.8636 10.22726 0 .0909.1818.0909.3636 0 .5454zm-5.0909-8.90905c-1.2727 0-2.3182 1.04546-2.3182 2.31815 0 1.2728 1.0455 2.3182 2.3182 2.3182s2.3182-1.0454 2.3182-2.3182c0-1.27269-1.0455-2.31815-2.3182-2.31815z",fill:"currentColor",fillRule:"evenodd"})}),On=(0,o.createElement)(qt,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(Ht,{d:"M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"}));var En=(0,o.forwardRef)((function(e,t){var n,r=e.onClose,i=e.isOpen,a=e.invertedButtonColor,s=e.children,l=e.leftContainerBgColor,c=void 0===l?"bg-white":l,u=e.rightContainerBgColor,d=void 0===u?"bg-gray-100":u,f=(0,o.useRef)(null),p=w((function(e){return e.removeAllModals}));return r=null!==(n=r)&&void 0!==n?n:p,(0,Gt.jsx)(Ke.Root,{appear:!0,show:!0,as:o.Fragment,children:(0,Gt.jsx)(Mt,{as:"div",static:!0,open:i,className:"extendify",initialFocus:null!=t?t:f,onClose:r,children:(0,Gt.jsxs)("div",{className:"fixed inset-0 z-high flex",children:[(0,Gt.jsx)(Ke.Child,{as:o.Fragment,enter:"ease-out duration-50 transition",enterFrom:"opacity-0",enterTo:"opacity-100",children:(0,Gt.jsx)(Mt.Overlay,{className:"fixed inset-0 bg-black bg-opacity-40 transition-opacity"})}),(0,Gt.jsx)(Ke.Child,{as:o.Fragment,enter:"ease-out duration-300 translate transform",enterFrom:"opacity-0 translate-y-4 sm:translate-y-5",enterTo:"opacity-100 translate-y-0",children:(0,Gt.jsx)("div",{className:"m-auto",children:(0,Gt.jsxs)("div",{className:"relative m-8 max-w-md justify-between rounded-sm shadow-modal md:m-0 md:flex md:max-w-2xl",children:[(0,Gt.jsxs)("button",{onClick:r,ref:f,className:"absolute top-0 right-0 block cursor-pointer rounded-md bg-transparent p-4 text-gray-700 opacity-30 hover:opacity-100",style:a&&{filter:"invert(1)"},children:[(0,Gt.jsx)("span",{className:"sr-only",children:(0,Dt.__)("Close","extendify")}),(0,Gt.jsx)(Ft,{icon:On})]}),(0,Gt.jsx)("div",{className:"w-7/12 p-12 ".concat(c),children:s[0]}),(0,Gt.jsx)("div",{className:"hidden w-6/12 md:block ".concat(d),children:s[1]})]})})})]})})})}));function An(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Nn(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){An(i,r,o,a,s,"next",e)}function s(e){An(i,r,o,a,s,"throw",e)}a(void 0)}))}}function Pn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Tn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Tn(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Tn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var In=function(){var e=Pn((0,o.useState)((0,Dt.__)("Install Extendify","extendify")),2),t=e[0],n=e[1],r=Pn((0,o.useState)(!1),2),i=r[0],a=r[1],s=Pn((0,o.useState)(!1),2),l=s[0],c=s[1],u=(0,o.useRef)(null),d=K((function(e){return e.markNoticeSeen})),f=K((function(e){return e.giveFreebieImports})),p=w((function(e){return e.removeAllModals})),h=function(){var e=Nn(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return p(),d("standalone","modalNotices"),e.next=4,de("stln-modal-x");case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,Gt.jsxs)(En,{ref:u,onClose:h,children:[(0,Gt.jsxs)("div",{children:[(0,Gt.jsx)("div",{className:"mb-10 flex items-center space-x-2 text-extendify-black",children:mn}),(0,Gt.jsx)("h3",{className:"text-xl",children:(0,Dt.__)("Get the brand new Extendify plugin today!","extendify")}),(0,Gt.jsx)("p",{className:"text-sm text-black",dangerouslySetInnerHTML:{__html:dn((0,Dt.sprintf)((0,Dt.__)("Install the new Extendify Library plugin to get the latest we have to offer — right from WordPress.org. Plus, well send you %1$s10 more imports%2$s. Nice.","extendify"),"<strong>","</strong>"))}}),(0,Gt.jsx)("div",{children:(0,Gt.jsxs)("button",{onClick:function(){n((0,Dt.__)("Installing...","extendify")),c(!0),Promise.all([de("stln-modal-install"),Zt(["extendify"]),new Promise((function(e){return setTimeout(e,1e3)}))]).then(Nn(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n((0,Dt.__)("Success! Reloading...","extendify")),a(!0),f(10),e.next=5,de("stln-modal-success");case 5:window.location.reload();case 6:case"end":return e.stop()}}),e)})))).catch(function(){var e=Nn(k().mark((function e(t){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return console.error(t),n((0,Dt.__)("Error. See console.","extendify")),e.next=4,de("stln-modal-fail");case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())},ref:u,disabled:l,className:"button-extendify-main button-focus mt-2 inline-flex justify-center px-4 py-3",style:{minWidth:"225px"},children:[t,i||(0,Gt.jsx)(Rt.Icon,{icon:vn,size:24,className:"ml-2 w-6 flex-grow-0"})]})})]}),(0,Gt.jsx)("div",{className:"flex w-full justify-end rounded-tr-sm rounded-br-sm bg-extendify-secondary",children:(0,Gt.jsx)("img",{alt:(0,Dt.__)("Upgrade Now","extendify"),className:"roudned-br-sm max-w-full rounded-tr-sm",src:window.extendifyData.asset_path+"/modal-extendify-purple.png"})})]})};function Ln(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Mn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Mn(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Mn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Rn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Dn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Dn(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Dn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Fn=function(e,t){var n=Rn((0,o.useState)(),2),r=n[0],i=n[1],a=K((function(e){return e.testGroup}));return(0,o.useLayoutEffect)((function(){r&&!window.extendifyData.devbuild||i(a(e,t))}),[e,t,r,a]),r};function Bn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return zn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return zn(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function zn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Un(){var e=(0,o.useRef)(!1);return(0,o.useEffect)((function(){return e.current=!0,function(){return e.current=!1}})),e}var Vn=function(){var e=Bn((0,o.useState)(!1),2),t=e[0],n=e[1];return(0,o.useEffect)((function(){var e=function(){return n(window.location.search.indexOf("DEVMODE")>-1||window.location.search.indexOf("LOCALMODE")>-1)};return e(),window.addEventListener("popstate",e),function(){window.removeEventListener("popstate",e)}}),[]),t};function Hn(){return Hn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Hn.apply(this,arguments)}function Wn(e,t){return Wn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Wn(e,t)}var qn=new Map,$n=new WeakMap,Gn=0,Jn=void 0;function Kn(e){return Object.keys(e).sort().filter((function(t){return void 0!==e[t]})).map((function(t){return t+"_"+("root"===t?(n=e.root)?($n.has(n)||(Gn+=1,$n.set(n,Gn.toString())),$n.get(n)):"0":e[t]);var n})).toString()}function Xn(e,t,n,r){if(void 0===n&&(n={}),void 0===r&&(r=Jn),void 0===window.IntersectionObserver&&void 0!==r){var o=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:"number"==typeof n.threshold?n.threshold:0,time:0,boundingClientRect:o,intersectionRect:o,rootBounds:o}),function(){}}var i=function(e){var t=Kn(e),n=qn.get(t);if(!n){var r,o=new Map,i=new IntersectionObserver((function(t){t.forEach((function(t){var n,i=t.isIntersecting&&r.some((function(e){return t.intersectionRatio>=e}));e.trackVisibility&&void 0===t.isVisible&&(t.isVisible=i),null==(n=o.get(t.target))||n.forEach((function(e){e(i,t)}))}))}),e);r=i.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:i,elements:o},qn.set(t,n)}return n}(n),a=i.id,s=i.observer,l=i.elements,c=l.get(e)||[];return l.has(e)||l.set(e,c),c.push(t),s.observe(e),function(){c.splice(c.indexOf(t),1),0===c.length&&(l.delete(e),s.unobserve(e)),0===l.size&&(s.disconnect(),qn.delete(a))}}var Zn=["children","as","tag","triggerOnce","threshold","root","rootMargin","onChange","skip","trackVisibility","delay","initialInView","fallbackInView"];function Yn(e){return"function"!=typeof e.children}var Qn=function(e){var t,n;function r(t){var n;return(n=e.call(this,t)||this).node=null,n._unobserveCb=null,n.handleNode=function(e){n.node&&(n.unobserve(),e||n.props.triggerOnce||n.props.skip||n.setState({inView:!!n.props.initialInView,entry:void 0})),n.node=e||null,n.observeNode()},n.handleChange=function(e,t){e&&n.props.triggerOnce&&n.unobserve(),Yn(n.props)||n.setState({inView:e,entry:t}),n.props.onChange&&n.props.onChange(e,t)},n.state={inView:!!t.initialInView,entry:void 0},n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,Wn(t,n);var o=r.prototype;return o.componentDidUpdate=function(e){e.rootMargin===this.props.rootMargin&&e.root===this.props.root&&e.threshold===this.props.threshold&&e.skip===this.props.skip&&e.trackVisibility===this.props.trackVisibility&&e.delay===this.props.delay||(this.unobserve(),this.observeNode())},o.componentWillUnmount=function(){this.unobserve(),this.node=null},o.observeNode=function(){if(this.node&&!this.props.skip){var e=this.props,t=e.threshold,n=e.root,r=e.rootMargin,o=e.trackVisibility,i=e.delay,a=e.fallbackInView;this._unobserveCb=Xn(this.node,this.handleChange,{threshold:t,root:n,rootMargin:r,trackVisibility:o,delay:i},a)}},o.unobserve=function(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)},o.render=function(){if(!Yn(this.props)){var e=this.state,t=e.inView,n=e.entry;return this.props.children({inView:t,entry:n,ref:this.handleNode})}var r=this.props,o=r.children,a=r.as,s=r.tag,l=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(r,Zn);return i.createElement(a||s||"div",Hn({ref:this.handleNode},l),o)},r}(i.Component);function er(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function tr(){return tr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},tr.apply(this,arguments)}function nr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function rr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nr(Object(n),!0).forEach((function(t){or(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function or(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Qn.displayName="InView",Qn.defaultProps={threshold:0,triggerOnce:!1,initialInView:!1};const ir={breakpointCols:void 0,className:void 0,columnClassName:void 0,children:void 0,columnAttrs:void 0,column:void 0};class ar extends a().Component{constructor(e){let t;super(e),this.reCalculateColumnCount=this.reCalculateColumnCount.bind(this),this.reCalculateColumnCountDebounce=this.reCalculateColumnCountDebounce.bind(this),t=this.props.breakpointCols&&this.props.breakpointCols.default?this.props.breakpointCols.default:parseInt(this.props.breakpointCols)||2,this.state={columnCount:t}}componentDidMount(){this.reCalculateColumnCount(),window&&window.addEventListener("resize",this.reCalculateColumnCountDebounce)}componentDidUpdate(){this.reCalculateColumnCount()}componentWillUnmount(){window&&window.removeEventListener("resize",this.reCalculateColumnCountDebounce)}reCalculateColumnCountDebounce(){window&&window.requestAnimationFrame?(window.cancelAnimationFrame&&window.cancelAnimationFrame(this._lastRecalculateAnimationFrame),this._lastRecalculateAnimationFrame=window.requestAnimationFrame((()=>{this.reCalculateColumnCount()}))):this.reCalculateColumnCount()}reCalculateColumnCount(){const e=window&&window.innerWidth||1/0;let t=this.props.breakpointCols;"object"!=typeof t&&(t={default:parseInt(t)||2});let n=1/0,r=t.default||2;for(let o in t){const i=parseInt(o);i>0&&e<=i&&i<n&&(n=i,r=t[o])}r=Math.max(1,parseInt(r)||1),this.state.columnCount!==r&&this.setState({columnCount:r})}itemsInColumns(){const e=this.state.columnCount,t=new Array(e),n=a().Children.toArray(this.props.children);for(let r=0;r<n.length;r++){const o=r%e;t[o]||(t[o]=[]),t[o].push(n[r])}return t}renderColumns(){const{column:e,columnAttrs:t={},columnClassName:n}=this.props,r=this.itemsInColumns(),o=100/r.length+"%";let i=n;i&&"string"!=typeof i&&(this.logDeprecated('The property "columnClassName" requires a string'),void 0===i&&(i="my-masonry-grid_column"));const s=rr(rr(rr({},e),t),{},{style:rr(rr({},t.style),{},{width:o}),className:i});return r.map(((e,t)=>a().createElement("div",tr({},s,{key:t}),e)))}logDeprecated(e){console.error("[Masonry]",e)}render(){const e=this.props,{children:t,breakpointCols:n,columnClassName:r,columnAttrs:o,column:i,className:s}=e,l=er(e,["children","breakpointCols","columnClassName","columnAttrs","column","className"]);let c=s;return"string"!=typeof s&&(this.logDeprecated('The property "className" requires a string'),void 0===s&&(c="my-masonry-grid")),a().createElement("div",tr({},l,{className:c}),this.renderColumns())}}ar.defaultProps=ir;const sr=ar;function lr(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function cr(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){lr(i,r,o,a,s,"next",e)}function s(e){lr(i,r,o,a,s,"throw",e)}a(void 0)}))}}var ur=0,dr=function(e){var t=arguments;return cr(k().mark((function n(){var r,o,i,a,s,l,c;return k().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return a=t.length>1&&void 0!==t[1]?t[1]:{},ur++,s="pattern"===e.type?"8":"4",l="pattern"===e.type?"patternType":"layoutType",c=Object.assign({filterByFormula:hr(e,l),pageSize:s,categories:e.taxonomies,search:e.search,type:e.type,offset:"",initial:1===ur,request_count:ur,group:null!==(r=null===(o=K.getState())||void 0===o?void 0:o.group)&&void 0!==r?r:0,sdk_partner:null!==(i=K.getState().sdkPartner)&&void 0!==i?i:""},a),n.next=7,X.post("templates",c);case 7:return n.abrupt("return",n.sent);case 8:case"end":return n.stop()}}),n)})))()},fr=function(e){var t,n,r,o,i,a,s,l,c=null!==(t=null===(n=ce.getState())||void 0===n||null===(r=n.searchParams)||void 0===r?void 0:r.taxonomies)&&void 0!==t?t:[];return X.post("templates/".concat(e.id),{template_id:null==e?void 0:e.id,categories:c,maybe_import:!0,type:null===(o=e.fields)||void 0===o?void 0:o.type,sdk_partner:null!==(i=K.getState().sdkPartner)&&void 0!==i?i:"",group:null!==(a=null===(s=K.getState())||void 0===s?void 0:s.group)&&void 0!==a?a:0,pageSize:"1",template_name:null===(l=e.fields)||void 0===l?void 0:l.title})},pr=function(e){var t,n,r,o,i,a,s,l,c,u,d,f=null!==(t=null===(n=ce.getState())||void 0===n||null===(r=n.searchParams)||void 0===r?void 0:r.taxonomies)&&void 0!==t?t:[];return X.post("templates/".concat(e.id),{template_id:e.id,categories:f,imported:!0,basePattern:null!==(o=null!==(i=null===(a=e.fields)||void 0===a?void 0:a.basePattern)&&void 0!==i?i:null===(s=e.fields)||void 0===s?void 0:s.baseLayout)&&void 0!==o?o:"",type:e.fields.type,sdk_partner:null!==(l=K.getState().sdkPartner)&&void 0!==l?l:"",group:null!==(c=null===(u=K.getState())||void 0===u?void 0:u.group)&&void 0!==c?c:0,pageSize:"1",template_name:null===(d=e.fields)||void 0===d?void 0:d.title})},hr=function(e,t){var n,r,o,i=e.taxonomies,a=null!=i&&null!==(n=i.siteType)&&void 0!==n&&null!==(r=n.slug)&&void 0!==r&&r.length?i.siteType.slug:"default",s=['{type}="'.concat(t.replace("Type",""),'"'),'{siteType}="'.concat(a,'"')];return null!==(o=i[t])&&void 0!==o&&o.slug&&s.push("{".concat(t,'}="').concat(i[t].slug,'"')),"AND(".concat(s.join(", "),")").replace(/\r?\n|\r/g,"")};const mr=wp.blockEditor;function xr(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function yr(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){xr(i,r,o,a,s,"next",e)}function s(e){xr(i,r,o,a,s,"throw",e)}a(void 0)}))}}var vr=[],gr=[];function br(e){return wr.apply(this,arguments)}function wr(){return(wr=yr(k().mark((function e(t){var n,r,o,i,a,s,l;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=(s=null!==(n=null==t||null===(r=t.fields)||void 0===r?void 0:r.required_plugins)&&void 0!==n?n:[]).filter((function(e){return"editorplus"!==e})),null!==(o=s)&&void 0!==o&&o.length){e.next=4;break}return e.abrupt("return",!1);case 4:if(null!==(i=vr)&&void 0!==i&&i.length){e.next=10;break}return e.t0=Object,e.next=8,Xt();case 8:e.t1=e.sent,vr=e.t0.keys.call(e.t0,e.t1);case 10:return l=!(null===(a=s)||void 0===a||!a.length)&&s.filter((function(e){return!vr.some((function(t){return t.includes(e)}))})),e.abrupt("return",l.length);case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function jr(e){return kr.apply(this,arguments)}function kr(){return(kr=yr(k().mark((function e(t){var n,r,o,i,a,s,l;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=(s=null!==(n=null==t||null===(r=t.fields)||void 0===r?void 0:r.required_plugins)&&void 0!==n?n:[]).filter((function(e){return"editorplus"!==e})),null!==(o=s)&&void 0!==o&&o.length){e.next=4;break}return e.abrupt("return",!1);case 4:if(null!==(i=gr)&&void 0!==i&&i.length){e.next=10;break}return e.t0=Object,e.next=8,Yt();case 8:e.t1=e.sent,gr=e.t0.values.call(e.t0,e.t1);case 10:if(!(l=!(null===(a=s)||void 0===a||!a.length)&&s.filter((function(e){return!gr.some((function(t){return t.includes(e)}))})))){e.next=16;break}return e.next=14,br(t);case 14:if(!e.sent){e.next=16;break}return e.abrupt("return",!1);case 16:return e.abrupt("return",null==l?void 0:l.length);case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Sr=c(v((function(e){return{wantedTemplate:{},importOnLoad:!1,setWanted:function(t){return e({wantedTemplate:t})},removeWanted:function(){return e({wantedTemplate:{}})}}}),{name:"extendify-wanted-template"}));var Cr=function(e){return _r(e,"open")};function _r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"broken-event",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"open";K.setState({entryPoint:e}),window.dispatchEvent(new CustomEvent("extendify::".concat(t,"-library"),{detail:e,bubbles:!0}))}function Or(e){switch(e){case"editorplus":return"Editor Plus";case"ml-slider":return"MetaSlider"}return e}function Er(e){switch(e){case"siteType":return"Site Type";case"patternType":return"Content";case"layoutType":return"Page Types"}}function Ar(){var e,t,n,r=Sr((function(e){return e.wantedTemplate})),i=(null==r||null===(e=r.fields)||void 0===e?void 0:e.required_plugins)||[];return(0,Gt.jsxs)(Rt.Modal,{title:(0,Dt.__)("Plugins required","extendify"),isDismissible:!1,children:[(0,Gt.jsx)("p",{style:{maxWidth:"400px"},children:(0,Dt.sprintf)((0,Dt.__)("In order to add this %s to your site, the following plugins are required to be installed and activated.","extendify"),null!==(t=null==r||null===(n=r.fields)||void 0===n?void 0:n.type)&&void 0!==t?t:"template")}),(0,Gt.jsx)("ul",{children:i.filter((function(e){return"editorplus"!==e})).map((function(e){return(0,Gt.jsx)("li",{children:Or(e)},e)}))}),(0,Gt.jsx)("p",{style:{maxWidth:"400px",fontWeight:"bold"},children:(0,Dt.__)("Please contact a site admin for assistance in adding these plugins to your site.","extendify")}),(0,Gt.jsx)(Rt.Button,{isPrimary:!0,onClick:function(){return(0,o.render)((0,Gt.jsx)(ca,{show:!0}),document.getElementById("extendify-root"))},style:{boxShadow:"none"},children:(0,Dt.__)("Return to library","extendify")})]})}const Nr=wp.data;function Pr(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Tr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Tr(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Tr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ir(){var e=Pr((0,o.useState)(!1),2),t=e[0],n=e[1],r=function(){};return(0,(0,Nr.select)("core/editor").isEditedPostDirty)()?(0,Gt.jsxs)(Rt.Modal,{title:(0,Dt.__)("Reload required","extendify"),isDismissible:!1,children:[(0,Gt.jsx)("p",{style:{maxWidth:"400px"},children:(0,Dt.__)("Just one more thing! We need to reload the page to continue.","extendify")}),(0,Gt.jsxs)(Rt.ButtonGroup,{children:[(0,Gt.jsx)(Rt.Button,{isPrimary:!0,onClick:r,disabled:t,children:(0,Dt.__)("Reload page","extendify")}),(0,Gt.jsx)(Rt.Button,{isSecondary:!0,onClick:function(){n(!0),(0,Nr.dispatch)("core/editor").savePost(),n(!1)},isBusy:t,style:{margin:"0 4px"},children:(0,Dt.__)("Save changes","extendify")})]})]}):null}function Lr(e){var t=e.msg;return(0,Gt.jsxs)(Rt.Modal,{style:{maxWidth:"500px"},title:(0,Dt.__)("Error Activating plugins","extendify"),isDismissible:!1,children:[(0,Dt.__)("You have encountered an error that we cannot recover from. Please try again.","extendify"),(0,Gt.jsx)("br",{}),(0,Gt.jsx)(Rt.Notice,{isDismissible:!1,status:"error",children:t}),(0,Gt.jsx)(Rt.Button,{isPrimary:!0,onClick:function(){(0,o.render)((0,Gt.jsx)(zr,{}),document.getElementById("extendify-root"))},children:(0,Dt.__)("Go back","extendify")})]})}function Mr(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Rr(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Mr(i,r,o,a,s,"next",e)}function s(e){Mr(i,r,o,a,s,"throw",e)}a(void 0)}))}}function Dr(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Fr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Fr(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Fr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Br(){var e,t=Dr((0,o.useState)(""),2),n=t[0],r=t[1],i=Sr((function(e){return e.wantedTemplate})),a=null==i||null===(e=i.fields)||void 0===e?void 0:e.required_plugins.filter((function(e){return"editorplus"!==e}));return Zt(a).then((function(){Sr.setState({importOnLoad:!0})})).then(Rr(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,new Promise((function(e){return setTimeout(e,1e3)}));case 2:(0,o.render)((0,Gt.jsx)(Ir,{}),document.getElementById("extendify-root"));case 3:case"end":return e.stop()}}),e)})))).catch((function(e){var t=e.response;r(t.data.message)})),n?(0,Gt.jsx)(Lr,{msg:n}):(0,Gt.jsx)(Rt.Modal,{title:(0,Dt.__)("Activating plugins","extendify"),isDismissible:!1,children:(0,Gt.jsx)(Rt.Button,{style:{width:"100%"},disabled:!0,isPrimary:!0,isBusy:!0,onClick:function(){},children:(0,Dt.__)("Activating...","extendify")})})}function zr(e){var t,n,r,i,a,s=Sr((function(e){return e.wantedTemplate})),l=(null==s||null===(t=s.fields)||void 0===t?void 0:t.required_plugins)||[];return null!==(n=K.getState())&&void 0!==n&&n.canActivatePlugins?(0,Gt.jsx)(Rt.Modal,{title:(0,Dt.__)("Activate required plugins","extendify"),isDismissible:!1,children:(0,Gt.jsxs)("div",{children:[(0,Gt.jsx)("p",{style:{maxWidth:"400px"},children:null!==(r=e.message)&&void 0!==r?r:(0,Dt.__)((0,Dt.sprintf)("There is just one more step. This %s requires the following plugins to be installed and activated:",null!==(i=null==s||null===(a=s.fields)||void 0===a?void 0:a.type)&&void 0!==i?i:"template"),"extendify")}),(0,Gt.jsx)("ul",{children:l.filter((function(e){return"editorplus"!==e})).map((function(e){return(0,Gt.jsx)("li",{children:Or(e)},e)}))}),(0,Gt.jsxs)(Rt.ButtonGroup,{children:[(0,Gt.jsx)(Rt.Button,{isPrimary:!0,onClick:function(){return(0,o.render)((0,Gt.jsx)(Br,{}),document.getElementById("extendify-root"))},children:(0,Dt.__)("Activate Plugins","extendify")}),e.showClose&&(0,Gt.jsx)(Rt.Button,{isTertiary:!0,onClick:function(){return(0,o.render)((0,Gt.jsx)(ca,{show:!0}),document.getElementById("extendify-root"))},style:{boxShadow:"none",margin:"0 4px"},children:(0,Dt.__)("No thanks, return to library","extendify")})]})]})}):(0,Gt.jsx)(Ar,{})}function Ur(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}var Vr=function(){var e,t=(e=k().mark((function e(t){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,jr(t);case 2:return e.t0=!e.sent,e.t1=function(){},e.t2=function(){return new Promise((function(){(0,o.render)((0,Gt.jsx)(zr,{showClose:!0}),document.getElementById("extendify-root"))}))},e.abrupt("return",{id:"hasPluginsActivated",pass:e.t0,allow:e.t1,deny:e.t2});case 6:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Ur(i,r,o,a,s,"next",e)}function s(e){Ur(i,r,o,a,s,"throw",e)}a(void 0)}))});return function(e){return t.apply(this,arguments)}}();function Hr(e){var t=e.msg;return(0,Gt.jsxs)(Rt.Modal,{style:{maxWidth:"500px"},title:(0,Dt.__)("Error installing plugins","extendify"),isDismissible:!1,children:[(0,Dt.__)("You have encountered an error that we cannot recover from. Please try again.","extendify"),(0,Gt.jsx)("br",{}),(0,Gt.jsx)(Rt.Notice,{isDismissible:!1,status:"error",children:t}),(0,Gt.jsx)(Rt.Button,{isPrimary:!0,onClick:function(){return(0,o.render)((0,Gt.jsx)(Gr,{}),document.getElementById("extendify-root"))},children:(0,Dt.__)("Go back","extendify")})]})}function Wr(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return qr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return qr(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function qr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function $r(e){var t,n=e.requiredPlugins,r=Wr((0,o.useState)(""),2),i=r[0],a=r[1],s=Sr((function(e){return e.wantedTemplate})),l=null!=n?n:null==s||null===(t=s.fields)||void 0===t?void 0:t.required_plugins.filter((function(e){return"editorplus"!==e}));return Zt(l).then((function(){Sr.setState({importOnLoad:!0}),(0,o.render)((0,Gt.jsx)(Ir,{}),document.getElementById("extendify-root"))})).catch((function(e){var t=e.message;a(t)})),i?(0,Gt.jsx)(Hr,{msg:i}):(0,Gt.jsx)(Rt.Modal,{title:(0,Dt.__)("Installing plugins","extendify"),isDismissible:!1,children:(0,Gt.jsx)(Rt.Button,{style:{width:"100%"},disabled:!0,isPrimary:!0,isBusy:!0,onClick:function(){},children:(0,Dt.__)("Installing...","extendify")})})}function Gr(e){var t,n,r,i,a,s=e.forceOpen,l=e.buttonLabel,c=e.title,u=e.message,d=e.requiredPlugins,f=Sr((function(e){return e.wantedTemplate}));d=null!==(t=d)&&void 0!==t?t:null==f||null===(n=f.fields)||void 0===n?void 0:n.required_plugins;return null!==(r=K.getState())&&void 0!==r&&r.canInstallPlugins?(0,Gt.jsxs)(Rt.Modal,{title:null!=c?c:(0,Dt.__)("Install required plugins","extendify"),isDismissible:!1,children:[(0,Gt.jsx)("p",{style:{maxWidth:"400px"},children:null!=u?u:(0,Dt.__)((0,Dt.sprintf)("There is just one more step. This %s requires the following to be automatically installed and activated:",null!==(i=null==f||null===(a=f.fields)||void 0===a?void 0:a.type)&&void 0!==i?i:"template"),"extendify")}),(null==u?void 0:u.length)>0||(0,Gt.jsx)("ul",{children:d.filter((function(e){return"editorplus"!==e})).map((function(e){return(0,Gt.jsx)("li",{children:Or(e)},e)}))}),(0,Gt.jsxs)(Rt.ButtonGroup,{children:[(0,Gt.jsx)(Rt.Button,{isPrimary:!0,onClick:function(){return(0,o.render)((0,Gt.jsx)($r,{requiredPlugins:d}),document.getElementById("extendify-root"))},children:null!=l?l:(0,Dt.__)("Install Plugins","extendify")}),s||(0,Gt.jsx)(Rt.Button,{isTertiary:!0,onClick:function(){s||(0,o.render)((0,Gt.jsx)(ca,{show:!0}),document.getElementById("extendify-root"))},style:{boxShadow:"none",margin:"0 4px"},children:(0,Dt.__)("No thanks, take me back","extendify")})]})]}):(0,Gt.jsx)(Ar,{})}function Jr(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}var Kr=function(){var e,t=(e=k().mark((function e(t){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,br(t);case 2:return e.t0=!e.sent,e.t1=function(){},e.t2=function(){return new Promise((function(){(0,o.render)((0,Gt.jsx)(Gr,{}),document.getElementById("extendify-root"))}))},e.abrupt("return",{id:"hasRequiredPlugins",pass:e.t0,allow:e.t1,deny:e.t2});case 6:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Jr(i,r,o,a,s,"next",e)}function s(e){Jr(i,r,o,a,s,"throw",e)}a(void 0)}))});return function(e){return t.apply(this,arguments)}}();function Xr(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Zr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Zr(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function Zr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Yr(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Qr(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Yr(i,r,o,a,s,"next",e)}function s(e){Yr(i,r,o,a,s,"throw",e)}a(void 0)}))}}function eo(e){return new ro(e)}function to(e){return function(){return new no(e.apply(this,arguments))}}function no(e){var t,n;function r(t,n){try{var i=e[t](n),a=i.value,s=a instanceof ro;Promise.resolve(s?a.wrapped:a).then((function(e){s?r("return"===t?"return":"next",e):o(i.done?"return":"normal",e)}),(function(e){r("throw",e)}))}catch(e){o("throw",e)}}function o(e,o){switch(e){case"return":t.resolve({value:o,done:!0});break;case"throw":t.reject(o);break;default:t.resolve({value:o,done:!1})}(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,o){return new Promise((function(i,a){var s={key:e,arg:o,resolve:i,reject:a,next:null};n?n=n.next=s:(t=n=s,r(e,o))}))},"function"!=typeof e.return&&(this.return=void 0)}function ro(e){this.wrapped=e}no.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},no.prototype.next=function(e){return this._invoke("next",e)},no.prototype.throw=function(e){return this._invoke("throw",e)},no.prototype.return=function(e){return this._invoke("return",e)};function oo(e){return io.apply(this,arguments)}function io(){return(io=Qr(k().mark((function e(t){var n,r;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=ao(t.stack);case 1:return r=void 0,e.prev=3,e.next=6,n.next();case 6:r=e.sent,e.next=13;break;case 9:throw e.prev=9,e.t0=e.catch(3),t.reset(),"Middleware exited";case 13:if(!r.done){e.next=15;break}return e.abrupt("break",17);case 15:e.next=1;break;case 17:case"end":return e.stop()}}),e,null,[[3,9]])})))).apply(this,arguments)}function ao(e){return so.apply(this,arguments)}function so(){return(so=to(k().mark((function e(t){var n,r,o;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=Xr(t),e.prev=1,n.s();case 3:if((r=n.n()).done){e.next=11;break}return o=r.value,e.next=7,eo(o());case 7:return e.next=9,e.sent;case 9:e.next=3;break;case 11:e.next=16;break;case 13:e.prev=13,e.t0=e.catch(1),n.e(e.t0);case 16:return e.prev=16,n.f(),e.finish(16);case 19:case"end":return e.stop()}}),e,null,[[1,13,16,19]])})))).apply(this,arguments)}function lo(e,t){var n=(0,Nr.dispatch)("core/block-editor"),r=n.insertBlocks,o=n.replaceBlock,i=(0,Nr.select)("core/block-editor"),a=i.getSelectedBlock,s=i.getBlockHierarchyRootClientId,l=i.getBlockIndex,c=i.getGlobalBlockCount,u=a()||{},d=u.clientId,f=u.name,p=u.attributes,h=d?s(d):"",m=(h?l(h):c())+1;return("core/paragraph"===f&&""===(null==p?void 0:p.content)?o(d,e):r(e,m)).then((function(){return window.dispatchEvent(new CustomEvent("extendify::template-inserted",{detail:{template:t},bubbles:!0}))}))}var co=n(306);function uo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return fo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return fo(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function fo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var po=function(e){var t,n,r,i,a,s=e.template,l=null!=s&&null!==(t=s.fields)&&void 0!==t&&null!==(n=t.basePattern)&&void 0!==n&&n.length?null==s||null===(r=s.fields)||void 0===r?void 0:r.basePattern[0]:"",c=uo((0,o.useState)(l),2),u=c[0],d=c[1];return(0,o.useEffect)((function(){null!=l&&l.length&&u!==l&&setTimeout((function(){return d(l)}),1e3)}),[u,l]),l?(0,Gt.jsxs)("div",{className:"absolute bottom-0 left-0 z-50 mb-4 ml-4 flex items-center space-x-2 opacity-0 transition duration-100 group-hover:opacity-100 space-x-0.5",children:[(0,Gt.jsx)(co.CopyToClipboard,{text:null==s||null===(i=s.fields)||void 0===i?void 0:i.basePattern,onCopy:function(){return d((0,Dt.__)("Copied!","extendify"))},children:(0,Gt.jsx)("button",{className:"text-sm rounded-md border border-black bg-white py-1 px-2.5 font-medium text-black no-underline m-0 cursor-pointer",children:(0,Dt.sprintf)((0,Dt.__)("Base: %s","extendify"),u)})}),(0,Gt.jsx)("a",{target:"_blank",className:"text-sm rounded-md border border-black bg-white py-1 px-2.5 font-medium text-black no-underline m-0",href:null==s||null===(a=s.fields)||void 0===a?void 0:a.editURL,rel:"noreferrer",children:(0,Dt.__)("Edit","extendify")})]}):null};function ho(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function mo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ho(Object(n),!0).forEach((function(t){xo(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ho(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function xo(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var yo=(0,o.forwardRef)((function(e,t){var n,r=e.isOpen,i=e.heading,a=e.onClose,s=e.children,l=(0,o.useRef)(null),c=w((function(e){return e.removeAllModals}));return a=null!==(n=a)&&void 0!==n?n:c,(0,Gt.jsx)(Ke,{appear:!0,show:r,as:o.Fragment,className:"extendify",children:(0,Gt.jsx)(Mt,{initialFocus:null!=t?t:l,onClose:a,children:(0,Gt.jsxs)("div",{className:"fixed inset-0 z-high flex",children:[(0,Gt.jsx)(Ke.Child,{as:o.Fragment,enter:"ease-out duration-200 transition",enterFrom:"opacity-0",enterTo:"opacity-100",children:(0,Gt.jsx)(Mt.Overlay,{className:"fixed inset-0 bg-black bg-opacity-40"})}),(0,Gt.jsx)(Ke.Child,{as:o.Fragment,enter:"ease-out duration-300 translate transform",enterFrom:"opacity-0 translate-y-4 sm:translate-y-5",enterTo:"opacity-100 translate-y-0",children:(0,Gt.jsx)("div",{className:"relative m-auto w-full",children:(0,Gt.jsxs)("div",{className:"relative m-auto w-full max-w-lg items-center justify-center rounded-sm bg-white shadow-modal",children:[i?(0,Gt.jsxs)("div",{className:"flex items-center justify-between border-b py-2 pl-6 pr-3 leading-none",children:[(0,Gt.jsx)("span",{className:"whitespace-nowrap text-base text-extendify-black",children:i}),(0,Gt.jsx)(vo,{onClick:a})]}):(0,Gt.jsx)("div",{className:"absolute top-0 right-0 block px-4 py-4 ",children:(0,Gt.jsx)(vo,{ref:l,onClick:a})}),(0,Gt.jsx)("div",{children:s})]})})})]})})})})),vo=(0,o.forwardRef)((function(e,t){return(0,Gt.jsx)(Rt.Button,mo(mo({},e),{},{icon:(0,Gt.jsx)(Ft,{icon:On}),ref:t,className:"text-extendify-black opacity-75 hover:opacity-100",showTooltip:!1,label:(0,Dt.__)("Close dialog","extendify")}))}));function go(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function bo(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){go(i,r,o,a,s,"next",e)}function s(e){go(i,r,o,a,s,"throw",e)}a(void 0)}))}}function wo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return jo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return jo(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function jo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var ko=function(){var e=wo((0,o.useState)(!1),2),t=e[0],n=e[1],r=wo((0,o.useState)(!1),2),i=r[0],a=r[1],s=Vn(),l=function(){var e=bo(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=2;break}return e.abrupt("return");case 2:if(n(!0),!i){e.next=10;break}return a(!1),K.setState({participatingTestsGroups:[]}),e.next=8,K.persist.rehydrate();case 8:return n(!1),e.abrupt("return");case 10:return K.persist.clearStorage(),e.next=13,new Promise((function(e){return setTimeout(e,1e3)}));case 13:a(!0),n(!1);case 15:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),c=function(){var e=bo(k().mark((function e(){var t;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(t=new URLSearchParams(window.location.search)).delete("LOCALMODE",1),t[t.has("DEVMODE")||s?"delete":"append"]("DEVMODE",1),window.history.replaceState(null,null,window.location.pathname+"?"+t.toString()),e.next=6,new Promise((function(e){return setTimeout(e,500)}));case 6:window.dispatchEvent(new Event("popstate")),ce.getState().resetTemplates(),ce.getState().updateSearchParams({}),te.persist.clearStorage(),te.persist.rehydrate(),ce.setState({taxonomyDefaultState:{}}),te.getState().fetchTaxonomies().then((function(){ce.getState().setupDefaultTaxonomies()}));case 13:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return window.extendifyData.devbuild?(0,Gt.jsxs)("section",{className:"p-6 flex flex-col space-y-6 border-l-8 border-extendify-secondary",children:[(0,Gt.jsxs)("div",{children:[(0,Gt.jsx)("p",{className:"text-base m-0 text-extendify-black",children:"Development Settings"}),(0,Gt.jsx)("p",{className:"text-sm italic m-0 text-gray-500",children:"Only available on dev builds"})]}),(0,Gt.jsxs)("div",{className:"flex space-x-2",children:[(0,Gt.jsxs)(Rt.Button,{isSecondary:!0,onClick:c,children:["Switch to ",s?"Live":"Dev"," Server"]}),(0,Gt.jsx)(Rt.Button,{isSecondary:!0,onClick:l,children:t?"Processing...":i?"OK! Press to rehydrate app":"Reset User Data"})]})]}):null};function So(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Co(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){So(i,r,o,a,s,"next",e)}function s(e){So(i,r,o,a,s,"throw",e)}a(void 0)}))}}function _o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Oo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Oo(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Oo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Eo(e){var t=e.actionCallback,n=e.initialFocus,r=K((function(e){return e.apiKey.length})),i=_o((0,o.useState)(""),2),a=i[0],s=i[1],l=_o((0,o.useState)(""),2),c=l[0],u=l[1],d=_o((0,o.useState)(""),2),f=d[0],p=d[1],h=_o((0,o.useState)("info"),2),m=h[0],x=h[1],y=_o((0,o.useState)(!1),2),v=y[0],g=y[1],b=_o((0,o.useState)(!1),2),w=b[0],j=b[1],S=(0,o.useRef)(null),C=(0,o.useRef)(null),_=Vn();(0,o.useEffect)((function(){return s(K.getState().email),function(){return x("info")}}),[]),(0,o.useEffect)((function(){var e;w&&(null==S||null===(e=S.current)||void 0===e||e.focus())}),[w]);var O=function(){var e=Co(k().mark((function e(t){var n,r,o,i,s;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.preventDefault(),g(!0),p(""),e.next=5,N(a,c);case 5:if(n=e.sent,r=n.token,o=n.error,i=n.exception,void 0===(s=n.message)){e.next=15;break}return x("error"),g(!1),p(null!=s&&s.length?s:"Error: Are you interacting with the wrong server?"),e.abrupt("return");case 15:if(!o&&!i){e.next=20;break}return x("error"),g(!1),p(null!=o&&o.length?o:i),e.abrupt("return");case 20:if(r&&"string"==typeof r){e.next=25;break}return x("error"),g(!1),p((0,Dt.__)("Something went wrong","extendify")),e.abrupt("return");case 25:x("success"),p("Success!"),j(!0),g(!1),K.setState({email:a,apiKey:r});case 30:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return w?(0,Gt.jsxs)("section",{className:"space-y-6 p-6 text-center flex flex-col items-center",children:[(0,Gt.jsx)(Ft,{icon:kn,size:148}),(0,Gt.jsx)("p",{className:"text-center text-lg font-semibold m-0 text-extendify-black",children:(0,Dt.__)("You've signed in to Extendify","extendify")}),(0,Gt.jsx)(Rt.Button,{ref:S,className:"cursor-pointer rounded bg-extendify-main p-2 px-4 text-center text-white",onClick:t,children:(0,Dt.__)("View patterns","extendify")})]}):r?(0,Gt.jsxs)("section",{className:"w-full space-y-6 p-6",children:[(0,Gt.jsx)("p",{className:"text-base m-0 text-extendify-black",children:(0,Dt.__)("Account","extendify")}),(0,Gt.jsxs)("div",{className:"flex items-center justify-between",children:[(0,Gt.jsxs)("div",{className:"-ml-2 flex items-center space-x-2",children:[(0,Gt.jsx)(Ft,{icon:_n,size:48}),(0,Gt.jsx)("p",{className:"text-extendify-black",children:null!=a&&a.length?a:(0,Dt.__)("Logged In","extendify")})]}),_&&(0,Gt.jsx)(Rt.Button,{className:"cursor-pointer rounded bg-extendify-main px-4 py-3 text-center text-white hover:bg-extendify-main-dark",onClick:function(){u(""),K.setState({apiKey:""}),setTimeout((function(){var e;null==C||null===(e=C.current)||void 0===e||e.focus()}),0)},children:(0,Dt.__)("Sign out","extendify")})]})]}):(0,Gt.jsxs)("section",{className:"space-y-6 p-6 text-left",children:[(0,Gt.jsxs)("div",{children:[(0,Gt.jsx)("p",{className:"text-center text-lg font-semibold m-0 text-extendify-black",children:(0,Dt.__)("Sign in to Extendify","extendify")}),(0,Gt.jsxs)("p",{className:"space-x-1 text-center text-sm m-0 text-extendify-gray",children:[(0,Gt.jsx)("span",{children:(0,Dt.__)("Don't have an account?","extendify")}),(0,Gt.jsx)("a",{href:"https://extendify.com/pricing?utm_source=".concat(window.extendifyData.sdk_partner,"&utm_medium=library&utm_campaign=sign-in-form&utm_content=sign-up&utm_group=").concat(K.getState().activeTestGroupsUtmValue()),target:"_blank",onClick:Co(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,de("sign-up-link-from-login-modal-click");case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),className:"underline hover:no-underline text-extendify-gray",rel:"noreferrer",children:(0,Dt.__)("Sign up","extendify")})]})]}),(0,Gt.jsxs)("form",{onSubmit:O,className:"flex flex-col items-center justify-center space-y-2",children:[(0,Gt.jsxs)("div",{className:"flex items-center",children:[(0,Gt.jsx)("label",{className:"sr-only",htmlFor:"extendify-login-email",children:(0,Dt.__)("Email address","extendify")}),(0,Gt.jsx)("input",{ref:n,id:"extendify-login-email",name:"extendify-login-email",style:{minWidth:"320px"},type:"email",className:"w-full rounded border-2 p-2",placeholder:(0,Dt.__)("Email address","extendify"),value:a.length?a:"",onChange:function(e){return s(e.target.value)}})]}),(0,Gt.jsxs)("div",{className:"flex items-center",children:[(0,Gt.jsx)("label",{className:"sr-only",htmlFor:"extendify-login-license",children:(0,Dt.__)("License key","extendify")}),(0,Gt.jsx)("input",{ref:C,id:"extendify-login-license",name:"extendify-login-license",style:{minWidth:"320px"},type:"text",className:"w-full rounded border-2 p-2",placeholder:(0,Dt.__)("License key","extendify"),value:c,onChange:function(e){return u(e.target.value)}})]}),(0,Gt.jsx)("div",{className:"flex justify-center pt-2",children:(0,Gt.jsxs)("button",{type:"submit",className:"relative flex w-72 max-w-full cursor-pointer justify-center rounded bg-extendify-main p-2 py-3 text-center text-base text-white hover:bg-extendify-main-dark ",children:[(0,Gt.jsx)("span",{children:(0,Dt.__)("Sign In","extendify")}),v&&(0,Gt.jsx)("div",{className:"absolute right-2.5",children:(0,Gt.jsx)(Rt.Spinner,{})})]})}),f&&(0,Gt.jsx)("div",{className:zt()({"border-gray-900 text-gray-900":"info"===m,"border-wp-alert-red text-wp-alert-red":"error"===m,"border-extendify-main text-extendify-main":"success"===m}),children:f}),(0,Gt.jsx)("div",{className:"pt-4 text-center",children:(0,Gt.jsx)("a",{target:"_blank",rel:"noreferrer",href:"https://extendify.com/guides/sign-in?utm_source=".concat(window.extendifyData.sdk_partner,"&utm_medium=library&utm_campaign=sign-in-form&utm_content=need-help&utm_group=").concat(K.getState().activeTestGroupsUtmValue()),onClick:Co(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,de("need-help-link-from-login-modal-click");case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),className:"underline hover:no-underline text-sm text-extendify-gray",children:(0,Dt.__)("Need Help?","extendify")})})]})]})}var Ao=function(){var e=(0,o.useRef)(null),t=w((function(e){return e.removeAllModals}));return(0,Gt.jsx)(yo,{heading:(0,Dt.__)("Settings","extendify"),isOpen:!0,ref:e,children:(0,Gt.jsxs)("div",{className:"flex justify-center flex-col divide-y",children:[(0,Gt.jsx)(ko,{}),(0,Gt.jsx)(Eo,{initialFocus:e,actionCallback:t})]})})};function No(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Po(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){No(i,r,o,a,s,"next",e)}function s(e){No(i,r,o,a,s,"throw",e)}a(void 0)}))}}var To=function(){var e=w((function(e){return e.pushModal})),t=(0,o.useRef)(null);return(0,Gt.jsxs)(En,{isOpen:!0,ref:t,leftContainerBgColor:"bg-white",children:[(0,Gt.jsxs)("div",{children:[(0,Gt.jsx)("div",{className:"mb-5 flex items-center space-x-2 text-extendify-black",children:mn}),(0,Gt.jsx)("h3",{className:"mt-0 text-xl",children:(0,Dt.__)("You're out of imports","extendify")}),(0,Gt.jsx)("p",{className:"text-sm text-black",children:(0,Dt.__)("Sign up today and get unlimited access to our entire collection of patterns and page layouts.","extendify")}),(0,Gt.jsxs)("div",{children:[(0,Gt.jsxs)("a",{target:"_blank",ref:t,className:"button-extendify-main button-focus mt-2 inline-flex justify-center px-4 py-3",style:{minWidth:"225px"},href:"https://extendify.com/pricing/?utm_source=".concat(window.extendifyData.sdk_partner,"&utm_medium=library&utm_campaign=no-imports-modal&utm_content=get-unlimited-imports&utm_group=").concat(K.getState().activeTestGroupsUtmValue()),onClick:Po(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,de("no-imports-modal-click");case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),rel:"noreferrer",children:[(0,Dt.__)("Get Unlimited Imports","extendify"),(0,Gt.jsx)(Rt.Icon,{icon:bn,size:24,className:"-mr-1"})]}),(0,Gt.jsxs)("p",{className:"mb-0 text-left text-sm text-extendify-gray",children:[(0,Dt.__)("Have an account?","extendify"),(0,Gt.jsx)(Rt.Button,{onClick:function(){return e((0,Gt.jsx)(Ao,{}))},className:"pl-2 text-sm text-extendify-gray underline hover:no-underline",children:(0,Dt.__)("Sign in","extendify")})]})]})]}),(0,Gt.jsxs)("div",{className:"flex h-full flex-col justify-center space-y-2 p-10 text-black",children:[(0,Gt.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,Gt.jsx)(Rt.Icon,{icon:jn,size:24}),(0,Gt.jsx)("span",{className:"text-sm leading-none",children:(0,Dt.__)("Access to 100's of Patterns","extendify")})]}),(0,Gt.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,Gt.jsx)(Rt.Icon,{icon:xn,size:24}),(0,Gt.jsx)("span",{className:"text-sm leading-none",children:(0,Dt.__)('Access to "Pro" catalog',"extendify")})]}),(0,Gt.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,Gt.jsx)(Rt.Icon,{icon:wn,size:24}),(0,Gt.jsx)("span",{className:"text-sm leading-none",children:(0,Dt.__)("Beautiful full page layouts","extendify")})]}),(0,Gt.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,Gt.jsx)(Rt.Icon,{icon:Sn,size:24}),(0,Gt.jsx)("span",{className:"text-sm leading-none",children:(0,Dt.__)("Fast and friendly support","extendify")})]}),(0,Gt.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,Gt.jsx)(Rt.Icon,{icon:Cn,size:24}),(0,Gt.jsx)("span",{className:"text-sm leading-none",children:(0,Dt.__)("14-Day guarantee","extendify")})]})]})]})};function Io(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Lo(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Io(i,r,o,a,s,"next",e)}function s(e){Io(i,r,o,a,s,"throw",e)}a(void 0)}))}}var Mo=function(){var e=(0,o.useRef)(null);return(0,Gt.jsxs)(En,{isOpen:!0,invertedButtonColor:!0,ref:e,children:[(0,Gt.jsxs)("div",{children:[(0,Gt.jsx)("div",{className:"mb-5 flex items-center space-x-2 text-extendify-black",children:mn}),(0,Gt.jsx)("h3",{className:"mt-0 text-xl",children:(0,Dt.__)("Get unlimited access to all our Pro patterns & layouts","extendify")}),(0,Gt.jsx)("p",{className:"text-sm text-black",children:(0,Dt.__)("Upgrade to Extendify Pro and use all the patterns and layouts you'd like, including our exclusive Pro catalog.","extendify")}),(0,Gt.jsx)("div",{children:(0,Gt.jsxs)("a",{target:"_blank",ref:e,className:"button-extendify-main button-focus mt-2 inline-flex justify-center px-4 py-3",style:{minWidth:"225px"},href:"https://extendify.com/pricing/?utm_source=".concat(window.extendifyData.sdk_partner,"&utm_medium=library&utm_campaign=pro-modal&utm_content=upgrade-now&utm_group=").concat(K.getState().activeTestGroupsUtmValue()),onClick:Lo(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,de("pro-modal-click");case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),rel:"noreferrer",children:[(0,Dt.__)("Upgrade Now","extendify"),(0,Gt.jsx)(Rt.Icon,{icon:bn,size:24,className:"-mr-1"})]})})]}),(0,Gt.jsx)("div",{className:"justify-endrounded-tr-sm flex w-full rounded-br-sm bg-black",children:(0,Gt.jsx)("img",{alt:(0,Dt.__)("Upgrade Now","extendify"),className:"max-w-full rounded-tr-sm rounded-br-sm",src:window.extendifyData.asset_path+"/modal-extendify-black.png"})})]})};function Ro(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Do(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Fo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Bo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Bo(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Bo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var zo=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{hasRequiredPlugins:Kr,hasPluginsActivated:Vr,stack:[],check:function(t){var n=this;return Qr(k().mark((function r(){var o,i,a,s;return k().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:o=Xr(e),r.prev=1,o.s();case 3:if((i=o.n()).done){r.next=11;break}return a=i.value,r.next=7,n["".concat(a)](t);case 7:s=r.sent,n.stack.push(s.pass?s.allow:s.deny);case 9:r.next=3;break;case 11:r.next=16;break;case 13:r.prev=13,r.t0=r.catch(1),o.e(r.t0);case 16:return r.prev=16,o.f(),r.finish(16);case 19:case"end":return r.stop()}}),r,null,[[1,13,16,19]])})))()},reset:function(){this.stack=[]}}}(["hasRequiredPlugins","hasPluginsActivated"]);function Uo(e){var t,n,i,a,s=e.template,l=e.maxHeight,c=(0,o.useRef)(null),u=(0,o.useRef)(!1),d=K((function(e){return e.hasAvailableImports})),f=K((function(e){return e.apiKey.length})),p=w((function(e){return e.setOpen})),h=w((function(e){return e.pushModal})),m=w((function(e){return e.removeAllModals})),x=(0,o.useMemo)((function(){return(0,r.rawHandler)({HTML:s.fields.code})}),[s.fields.code]),y=Fo((0,o.useState)(!1),2),v=y[0],g=y[1],b=Vn(),j=Fo((0,o.useState)(0),2),S=j[0],C=j[1],_=function(){var e,t=(e=k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,zo.check(s);case 2:oo(zo).then((function(){setTimeout((function(){lo(x,s).then((function(){return m()})).then((function(){return p(!1)})).then((function(){return zo.reset()}))}),100)})).catch((function(){}));case 3:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Do(i,r,o,a,s,"next",e)}function s(e){Do(i,r,o,a,s,"throw",e)}a(void 0)}))});return function(){return t.apply(this,arguments)}}(),O=function(){var e;fr(s),null==s||null===(e=s.fields)||void 0===e||!e.pro||f?d()?_():h((0,Gt.jsx)(To,{})):h((0,Gt.jsx)(Mo,{}))};return(0,o.useEffect)((function(){var e,t,n,r,o=[],i=[];return e=window.requestAnimationFrame((function(){t=window.requestAnimationFrame((function(){c.current.querySelectorAll("iframe").forEach((function(e){var t=e.contentWindow.document.body,n=window.requestAnimationFrame((function(){var n=t.querySelector(".is-root-container");if(n&&(null==n?void 0:n.offsetHeight)){r=window.requestAnimationFrame((function(){e.contentWindow.dispatchEvent(new Event("resize"))}));var o=window.setTimeout((function(){e.contentWindow.dispatchEvent(new Event("resize"))}),2e3);i.push(o)}e.contentWindow.dispatchEvent(new Event("resize"))}));o.push(n)})),n=window.requestAnimationFrame((function(){window.dispatchEvent(new Event("resize")),g(!0)}))}))})),function(){[].concat(o,[e,t,n,r]).forEach((function(e){return window.cancelAnimationFrame(e)})),i.forEach((function(e){return window.clearTimeout(e)}))}}),[]),(0,o.useEffect)((function(){if(Number.isInteger(l)){var e=c.current,t=function(){var t=e.offsetHeight;e.style.transitionDuration=1.5*t+"ms",C(-1*Math.abs(t-l))},n=function(){var t=e.offsetHeight;e.style.transitionDuration=t/1.5+"ms",C(0)};return e.addEventListener("focus",t),e.addEventListener("mouseenter",t),e.addEventListener("blur",n),e.addEventListener("mouseleave",n),function(){e.removeEventListener("focus",t),e.removeEventListener("mouseenter",t),e.removeEventListener("blur",n),e.removeEventListener("mouseleave",n)}}}),[l]),(0,Gt.jsxs)("div",{className:"group relative",children:[(0,Gt.jsx)("div",{role:"button",tabIndex:"0","aria-label":(0,Dt.sprintf)((0,Dt.__)("Press to import %s","extendify"),null==s||null===(t=s.fields)||void 0===t?void 0:t.type),style:{maxHeight:l},className:"button-focus relative m-0 cursor-pointer overflow-hidden bg-gray-100 ease-in-out",onFocus:function(){u.current||(u.current=!0,Array.from(c.current.querySelectorAll('a, button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])')).forEach((function(e){return e.setAttribute("tabIndex","-1")})))},onClick:O,onKeyDown:function(e){["Enter","Space"," "].includes(e.key)&&(e.stopPropagation(),e.preventDefault(),O())},children:(0,Gt.jsx)("div",{ref:c,style:{top:S,transitionProperty:"all"},className:zt()("with-light-shadow relative",(i={},Ro(i,"is-template--".concat(s.fields.status),(null==s||null===(n=s.fields)||void 0===n?void 0:n.status)&&b),Ro(i,"p-6 md:p-8",Number.isInteger(l)),i)),children:(0,Gt.jsx)(mr.BlockPreview,{blocks:x,live:!1,viewportWidth:1400})})}),b&&v&&(0,Gt.jsx)(po,{template:s}),(null==s||null===(a=s.fields)||void 0===a?void 0:a.pro)&&(0,Gt.jsx)("div",{className:"pointer-events-none absolute top-4 right-4 z-20 rounded-md border border-none bg-white bg-wp-theme-500 py-1 px-2.5 font-medium text-white no-underline shadow-sm",children:(0,Dt.__)("Pro","extendify")})]})}function Vo(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Ho(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ho(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ho(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Wo=(0,o.memo)((function(){var e=Un(),t=ce((function(e){return e.templates})),n=ce((function(e){return e.appendTemplates})),r=Vo((0,o.useState)(""),2),a=r[0],s=r[1],l=Vo((0,o.useState)(!1),2),c=l[0],u=l[1],d=Vo((0,o.useState)(!1),2),f=d[0],p=d[1],h=function(e){var t=void 0===e?{}:e,n=t.threshold,r=t.delay,o=t.trackVisibility,a=t.rootMargin,s=t.root,l=t.triggerOnce,c=t.skip,u=t.initialInView,d=t.fallbackInView,f=i.useRef(),p=i.useState({inView:!!u}),h=p[0],m=p[1],x=i.useCallback((function(e){void 0!==f.current&&(f.current(),f.current=void 0),c||e&&(f.current=Xn(e,(function(e,t){m({inView:e,entry:t}),t.isIntersecting&&l&&f.current&&(f.current(),f.current=void 0)}),{root:s,rootMargin:a,threshold:n,trackVisibility:o,delay:r},d))}),[Array.isArray(n)?n.toString():n,s,a,l,c,o,d,r]);(0,i.useEffect)((function(){f.current||!h.entry||l||c||m({inView:!!u})}));var y=[x,h.inView,h.entry];return y.ref=y[0],y.inView=y[1],y.entry=y[2],y}(),m=Vo(h,2),x=m[0],y=m[1],v=ce((function(e){return e.searchParams})),g=w((function(e){return e.currentType})),b=ce((function(e){return e.resetTemplates})),j=w((function(e){return e.open})),k=te((function(e){return e.taxonomies})),S=ce((function(e){return e.updateType})),C=ce((function(e){return e.updateTaxonomies})),_=(0,o.useRef)(ce.getState().nextPage),O=(0,o.useRef)(ce.getState().searchParams),E="pattern"===O.current.type?"patternType":"layoutType",A=O.current.taxonomies[E];(0,o.useEffect)((function(){return ce.subscribe((function(e){return e.nextPage}),(function(e){return _.current=e}))}),[]),(0,o.useEffect)((function(){return ce.subscribe((function(e){return e.searchParams}),(function(e){return O.current=e}))}),[]);var N,P=(0,o.useCallback)((function(){s(""),u(!1);var t=(0,Dt.__)("Unknown error occured. Check browser console or contact support.","extendify"),r={offset:_.current};dr(O.current,r).then((function(t){var r,o,i,a;e.current&&(null!=t&&null!==(r=t.error)&&void 0!==r&&r.length?s(null==t?void 0:t.error):(null==t||null===(o=t.records)||void 0===o?void 0:o.length)<=0?u(!0):v===O.current&&null!=t&&null!==(i=t.records)&&void 0!==i&&i.length&&(ce.setState({nextPage:null!==(a=null==t?void 0:t.offset)&&void 0!==a?a:""}),n(t.records),p(!1)))})).catch((function(n){e.current&&(console.error(n),s(t))}))}),[n,e,v]);return(0,o.useEffect)((function(){0!==(null==t?void 0:t.length)||p(!0)}),[null==t?void 0:t.length,v]),(0,o.useEffect)((function(){var e;if(j&&null!=k&&null!==(e=k.patternType)&&void 0!==e&&e.length){var t=new URLSearchParams(window.location.search);if(t.has("ext-patternType")){var n=t.get("ext-patternType");t.delete("ext-patternType"),window.history.replaceState(null,null,window.location.pathname+"?"+t.toString());var r=k.patternType.find((function(e){return e.slug===n}));r&&(C({patternType:r}),S("pattern"))}}}),[j,k,S,C]),(0,o.useEffect)((function(){var e,t;if(null!==(e=Object.keys(null===(t=O.current)||void 0===t?void 0:t.taxonomies))&&void 0!==e&&e.length){if(!ce.getState().skipNextFetch)return P(),function(){return b()};ce.setState({skipNextFetch:!1})}}),[P,O,b]),(0,o.useEffect)((function(){_.current&&y&&P()}),[y,P,t]),a.length?(0,Gt.jsxs)("div",{className:"text-left",children:[(0,Gt.jsx)("h2",{className:"text-left",children:(0,Dt.__)("Server error","extendify")}),(0,Gt.jsx)("code",{className:"mb-4 block max-w-xl p-4",style:{minHeight:"10rem"},children:a}),(0,Gt.jsx)(Rt.Button,{isTertiary:!0,onClick:function(){return b()&&P()},children:(0,Dt.__)("Press here to reload")})]}):c?(0,Gt.jsx)("div",{className:"-mt-2 flex h-full w-full items-center justify-center sm:mt-0",children:(0,Gt.jsx)("h2",{className:"text-sm font-normal text-extendify-gray",children:(0,Dt.sprintf)("template"===O.current.type?(0,Dt.__)('We couldn\'t find any layouts in the "%s" category.',"extendify"):(0,Dt.__)('We couldn\'t find any patterns in the "%s" category.',"extendify"),null!==(N=null==A?void 0:A.title)&&void 0!==N?N:A.slug)})}):(0,Gt.jsxs)(Gt.Fragment,{children:[f&&(0,Gt.jsx)("div",{className:"-mt-2 flex h-full w-full items-center justify-center sm:mt-0",children:(0,Gt.jsx)(Rt.Spinner,{})}),(0,Gt.jsx)(qo,{type:g,templates:t,children:t.map((function(e){return(0,Gt.jsx)(Uo,{maxHeight:"template"===g?520:"none",template:e},e.id)}))}),_.current&&(0,Gt.jsxs)(Gt.Fragment,{children:[(0,Gt.jsx)("div",{className:"my-20",children:(0,Gt.jsx)(Rt.Spinner,{})}),(0,Gt.jsx)("div",{className:"relative flex -translate-y-full transform flex-col items-end justify-end",ref:x,style:{zIndex:-1,marginBottom:"-100%",height:"template"===g?"150vh":"75vh"}})]})]})})),qo=function(e){var t=e.type,n=e.children,r="relative min-h-screen z-10 pb-40 pt-0.5";if("template"===t)return(0,Gt.jsx)("div",{className:"grid gap-6 md:gap-8 lg:grid-cols-2 ".concat(r),children:n});return(0,Gt.jsx)(sr,{breakpointCols:{default:3,1600:2,860:1,599:2,400:1},className:"-ml-6 flex w-auto px-0.5 md:-ml-8 ".concat(r),columnClassName:"pl-6 md:pl-8 bg-clip-padding space-y-6 md:space-y-8",children:n})};function $o(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Go(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){$o(i,r,o,a,s,"next",e)}function s(e){$o(i,r,o,a,s,"throw",e)}a(void 0)}))}}function Jo(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ko=(0,o.memo)((function(){var e,t=K((function(e){return e.remainingImports})),n=K((function(e){return e.allowedImports})),r=t(),i=r>0?"has-imports":"no-imports",a=(0,o.useRef)(),s=Fn("import-counter-color",["A","B"]);return(0,o.useEffect)((function(){if(n<1||!n){I().then((function(e){e=/^[1-9]\d*$/.test(e)?e:5,K.setState({allowedImports:e})})).catch((function(){return K.setState({allowedImports:5})}))}}),[n]),n?(0,Gt.jsxs)("div",{tabIndex:"0",className:"group relative",children:[(0,Gt.jsxs)("a",{target:"_blank",ref:a,rel:"noreferrer",className:zt()("button-focus hidden w-full justify-between rounded py-3 px-4 text-sm text-white no-underline sm:flex",(e={},Jo(e,"B"===s?"bg-wp-theme-500 hover:bg-wp-theme-600":"bg-extendify-main hover:bg-extendify-main-dark",r>0),Jo(e,"bg-extendify-alert",!r),e)),onClick:Go(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,de("import-counter-click");case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),href:"https://www.extendify.com/pricing/?utm_source=".concat(encodeURIComponent(window.extendifyData.sdk_partner),"&utm_medium=library&utm_campaign=import-counter&utm_content=get-more&utm_term=").concat(i,"&utm_group=").concat(K.getState().activeTestGroupsUtmValue()),children:[(0,Gt.jsxs)("span",{className:"flex items-center space-x-2 text-xs no-underline",children:[(0,Gt.jsx)(Ft,{icon:r>0?yn:fn,size:14}),(0,Gt.jsx)("span",{children:(0,Dt.sprintf)((0,Dt._n)("%s Import","%s Imports",r,"extendify"),r)})]}),(0,Gt.jsxs)("span",{className:"outline-none flex items-center text-sm font-medium text-white no-underline",children:[(0,Dt.__)("Get more","extendify"),(0,Gt.jsx)(Ft,{icon:bn,size:24,className:"-mr-1.5"})]})]}),(0,Gt.jsx)("div",{className:"extendify-bottom-arrow invisible absolute top-0 w-full -translate-y-full transform opacity-0 shadow-md transition-all delay-200 duration-300 ease-in-out group-hover:visible group-hover:-top-2.5 group-hover:opacity-100 group-focus:visible group-focus:-top-2.5 group-focus:opacity-100",tabIndex:"-1",children:(0,Gt.jsx)("a",{href:"https://www.extendify.com/pricing/?utm_source=".concat(encodeURIComponent(window.extendifyData.sdk_partner),"&utm_medium=library&utm_campaign=import-counter-tooltip&utm_content=get-50-off&utm_term=").concat(i,"&utm_group=").concat(K.getState().activeTestGroupsUtmValue()),className:"block bg-gray-900 text-white p-4 no-underline rounded bg-cover",onClick:Go(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,de("import-counter-tooltip-click");case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)}))),style:{backgroundImage:"url(".concat(window.extendifyData.asset_path,"/logo-tips.png)"),backgroundSize:"100% 100%"},children:(0,Gt.jsx)("span",{dangerouslySetInnerHTML:{__html:dn((0,Dt.sprintf)((0,Dt.__)("%1$sGet %2$s off%3$s Extendify Pro when you upgrade today!","extendify"),"<strong>","50%","</strong>"))}})})})]}):null}));function Xo(e){return Array.isArray?Array.isArray(e):"[object Array]"===ri(e)}function Zo(e){return"string"==typeof e}function Yo(e){return"number"==typeof e}function Qo(e){return!0===e||!1===e||function(e){return ei(e)&&null!==e}(e)&&"[object Boolean]"==ri(e)}function ei(e){return"object"==typeof e}function ti(e){return null!=e}function ni(e){return!e.trim().length}function ri(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const oi=Object.prototype.hasOwnProperty;class ii{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach((e=>{let n=ai(e);t+=n.weight,this._keys.push(n),this._keyMap[n.id]=n,t+=n.weight})),this._keys.forEach((e=>{e.weight/=t}))}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function ai(e){let t=null,n=null,r=null,o=1;if(Zo(e)||Xo(e))r=e,t=si(e),n=li(e);else{if(!oi.call(e,"name"))throw new Error((e=>`Missing ${e} property in key`)("name"));const i=e.name;if(r=i,oi.call(e,"weight")&&(o=e.weight,o<=0))throw new Error((e=>`Property 'weight' in key '${e}' must be a positive integer`)(i));t=si(i),n=li(i)}return{path:t,id:n,weight:o,src:r}}function si(e){return Xo(e)?e:e.split(".")}function li(e){return Xo(e)?e.join("."):e}var ci={isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1,includeMatches:!1,findAllMatches:!1,minMatchCharLength:1,location:0,threshold:.6,distance:100,...{useExtendedSearch:!1,getFn:function(e,t){let n=[],r=!1;const o=(e,t,i)=>{if(ti(e))if(t[i]){const a=e[t[i]];if(!ti(a))return;if(i===t.length-1&&(Zo(a)||Yo(a)||Qo(a)))n.push(function(e){return null==e?"":function(e){if("string"==typeof e)return e;let t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(e)}(a));else if(Xo(a)){r=!0;for(let e=0,n=a.length;e<n;e+=1)o(a[e],t,i+1)}else t.length&&o(a,t,i+1)}else n.push(e)};return o(e,Zo(t)?t.split("."):t,0),r?n:n[0]},ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}};const ui=/[^ ]+/g;class di{constructor({getFn:e=ci.getFn,fieldNormWeight:t=ci.fieldNormWeight}={}){this.norm=function(e=1,t=3){const n=new Map,r=Math.pow(10,t);return{get(t){const o=t.match(ui).length;if(n.has(o))return n.get(o);const i=1/Math.pow(o,.5*e),a=parseFloat(Math.round(i*r)/r);return n.set(o,a),a},clear(){n.clear()}}}(t,3),this.getFn=e,this.isCreated=!1,this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach(((e,t)=>{this._keysMap[e.id]=t}))}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,Zo(this.docs[0])?this.docs.forEach(((e,t)=>{this._addString(e,t)})):this.docs.forEach(((e,t)=>{this._addObject(e,t)})),this.norm.clear())}add(e){const t=this.size();Zo(e)?this._addString(e,t):this._addObject(e,t)}removeAt(e){this.records.splice(e,1);for(let t=e,n=this.size();t<n;t+=1)this.records[t].i-=1}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_addString(e,t){if(!ti(e)||ni(e))return;let n={v:e,i:t,n:this.norm.get(e)};this.records.push(n)}_addObject(e,t){let n={i:t,$:{}};this.keys.forEach(((t,r)=>{let o=this.getFn(e,t.path);if(ti(o))if(Xo(o)){let e=[];const t=[{nestedArrIndex:-1,value:o}];for(;t.length;){const{nestedArrIndex:n,value:r}=t.pop();if(ti(r))if(Zo(r)&&!ni(r)){let t={v:r,i:n,n:this.norm.get(r)};e.push(t)}else Xo(r)&&r.forEach(((e,n)=>{t.push({nestedArrIndex:n,value:e})}))}n.$[r]=e}else if(!ni(o)){let e={v:o,n:this.norm.get(o)};n.$[r]=e}})),this.records.push(n)}toJSON(){return{keys:this.keys,records:this.records}}}function fi(e,t,{getFn:n=ci.getFn,fieldNormWeight:r=ci.fieldNormWeight}={}){const o=new di({getFn:n,fieldNormWeight:r});return o.setKeys(e.map(ai)),o.setSources(t),o.create(),o}function pi(e,{errors:t=0,currentLocation:n=0,expectedLocation:r=0,distance:o=ci.distance,ignoreLocation:i=ci.ignoreLocation}={}){const a=t/e.length;if(i)return a;const s=Math.abs(r-n);return o?a+s/o:s?1:a}const hi=32;function mi(e,t,n,{location:r=ci.location,distance:o=ci.distance,threshold:i=ci.threshold,findAllMatches:a=ci.findAllMatches,minMatchCharLength:s=ci.minMatchCharLength,includeMatches:l=ci.includeMatches,ignoreLocation:c=ci.ignoreLocation}={}){if(t.length>hi)throw new Error(`Pattern length exceeds max of ${hi}.`);const u=t.length,d=e.length,f=Math.max(0,Math.min(r,d));let p=i,h=f;const m=s>1||l,x=m?Array(d):[];let y;for(;(y=e.indexOf(t,h))>-1;){let e=pi(t,{currentLocation:y,expectedLocation:f,distance:o,ignoreLocation:c});if(p=Math.min(e,p),h=y+u,m){let e=0;for(;e<u;)x[y+e]=1,e+=1}}h=-1;let v=[],g=1,b=u+d;const w=1<<u-1;for(let r=0;r<u;r+=1){let i=0,s=b;for(;i<s;){pi(t,{errors:r,currentLocation:f+s,expectedLocation:f,distance:o,ignoreLocation:c})<=p?i=s:b=s,s=Math.floor((b-i)/2+i)}b=s;let l=Math.max(1,f-s+1),y=a?d:Math.min(f+s,d)+u,j=Array(y+2);j[y+1]=(1<<r)-1;for(let i=y;i>=l;i-=1){let a=i-1,s=n[e.charAt(a)];if(m&&(x[a]=+!!s),j[i]=(j[i+1]<<1|1)&s,r&&(j[i]|=(v[i+1]|v[i])<<1|1|v[i+1]),j[i]&w&&(g=pi(t,{errors:r,currentLocation:a,expectedLocation:f,distance:o,ignoreLocation:c}),g<=p)){if(p=g,h=a,h<=f)break;l=Math.max(1,2*f-h)}}if(pi(t,{errors:r+1,currentLocation:f,expectedLocation:f,distance:o,ignoreLocation:c})>p)break;v=j}const j={isMatch:h>=0,score:Math.max(.001,g)};if(m){const e=function(e=[],t=ci.minMatchCharLength){let n=[],r=-1,o=-1,i=0;for(let a=e.length;i<a;i+=1){let a=e[i];a&&-1===r?r=i:a||-1===r||(o=i-1,o-r+1>=t&&n.push([r,o]),r=-1)}return e[i-1]&&i-r>=t&&n.push([r,i-1]),n}(x,s);e.length?l&&(j.indices=e):j.isMatch=!1}return j}function xi(e){let t={};for(let n=0,r=e.length;n<r;n+=1){const o=e.charAt(n);t[o]=(t[o]||0)|1<<r-n-1}return t}class yi{constructor(e,{location:t=ci.location,threshold:n=ci.threshold,distance:r=ci.distance,includeMatches:o=ci.includeMatches,findAllMatches:i=ci.findAllMatches,minMatchCharLength:a=ci.minMatchCharLength,isCaseSensitive:s=ci.isCaseSensitive,ignoreLocation:l=ci.ignoreLocation}={}){if(this.options={location:t,threshold:n,distance:r,includeMatches:o,findAllMatches:i,minMatchCharLength:a,isCaseSensitive:s,ignoreLocation:l},this.pattern=s?e:e.toLowerCase(),this.chunks=[],!this.pattern.length)return;const c=(e,t)=>{this.chunks.push({pattern:e,alphabet:xi(e),startIndex:t})},u=this.pattern.length;if(u>hi){let e=0;const t=u%hi,n=u-t;for(;e<n;)c(this.pattern.substr(e,hi),e),e+=hi;if(t){const e=u-hi;c(this.pattern.substr(e),e)}}else c(this.pattern,0)}searchIn(e){const{isCaseSensitive:t,includeMatches:n}=this.options;if(t||(e=e.toLowerCase()),this.pattern===e){let t={isMatch:!0,score:0};return n&&(t.indices=[[0,e.length-1]]),t}const{location:r,distance:o,threshold:i,findAllMatches:a,minMatchCharLength:s,ignoreLocation:l}=this.options;let c=[],u=0,d=!1;this.chunks.forEach((({pattern:t,alphabet:f,startIndex:p})=>{const{isMatch:h,score:m,indices:x}=mi(e,t,f,{location:r+p,distance:o,threshold:i,findAllMatches:a,minMatchCharLength:s,includeMatches:n,ignoreLocation:l});h&&(d=!0),u+=m,h&&x&&(c=[...c,...x])}));let f={isMatch:d,score:d?u/this.chunks.length:1};return d&&n&&(f.indices=c),f}}class vi{constructor(e){this.pattern=e}static isMultiMatch(e){return gi(e,this.multiRegex)}static isSingleMatch(e){return gi(e,this.singleRegex)}search(){}}function gi(e,t){const n=e.match(t);return n?n[1]:null}class bi extends vi{constructor(e,{location:t=ci.location,threshold:n=ci.threshold,distance:r=ci.distance,includeMatches:o=ci.includeMatches,findAllMatches:i=ci.findAllMatches,minMatchCharLength:a=ci.minMatchCharLength,isCaseSensitive:s=ci.isCaseSensitive,ignoreLocation:l=ci.ignoreLocation}={}){super(e),this._bitapSearch=new yi(e,{location:t,threshold:n,distance:r,includeMatches:o,findAllMatches:i,minMatchCharLength:a,isCaseSensitive:s,ignoreLocation:l})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class wi extends vi{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let t,n=0;const r=[],o=this.pattern.length;for(;(t=e.indexOf(this.pattern,n))>-1;)n=t+o,r.push([t,n-1]);const i=!!r.length;return{isMatch:i,score:i?0:1,indices:r}}}const ji=[class extends vi{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){const t=e===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}},wi,class extends vi{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){const t=e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}},class extends vi{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){const t=!e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}},class extends vi{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){const t=!e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}},class extends vi{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){const t=e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[e.length-this.pattern.length,e.length-1]}}},class extends vi{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){const t=-1===e.indexOf(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}},bi],ki=ji.length,Si=/ +(?=([^\"]*\"[^\"]*\")*[^\"]*$)/;const Ci=new Set([bi.type,wi.type]);class _i{constructor(e,{isCaseSensitive:t=ci.isCaseSensitive,includeMatches:n=ci.includeMatches,minMatchCharLength:r=ci.minMatchCharLength,ignoreLocation:o=ci.ignoreLocation,findAllMatches:i=ci.findAllMatches,location:a=ci.location,threshold:s=ci.threshold,distance:l=ci.distance}={}){this.query=null,this.options={isCaseSensitive:t,includeMatches:n,minMatchCharLength:r,findAllMatches:i,ignoreLocation:o,location:a,threshold:s,distance:l},this.pattern=t?e:e.toLowerCase(),this.query=function(e,t={}){return e.split("|").map((e=>{let n=e.trim().split(Si).filter((e=>e&&!!e.trim())),r=[];for(let e=0,o=n.length;e<o;e+=1){const o=n[e];let i=!1,a=-1;for(;!i&&++a<ki;){const e=ji[a];let n=e.isMultiMatch(o);n&&(r.push(new e(n,t)),i=!0)}if(!i)for(a=-1;++a<ki;){const e=ji[a];let n=e.isSingleMatch(o);if(n){r.push(new e(n,t));break}}}return r}))}(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){const t=this.query;if(!t)return{isMatch:!1,score:1};const{includeMatches:n,isCaseSensitive:r}=this.options;e=r?e:e.toLowerCase();let o=0,i=[],a=0;for(let r=0,s=t.length;r<s;r+=1){const s=t[r];i.length=0,o=0;for(let t=0,r=s.length;t<r;t+=1){const r=s[t],{isMatch:l,indices:c,score:u}=r.search(e);if(!l){a=0,o=0,i.length=0;break}if(o+=1,a+=u,n){const e=r.constructor.type;Ci.has(e)?i=[...i,...c]:i.push(c)}}if(o){let e={isMatch:!0,score:a/o};return n&&(e.indices=i),e}}return{isMatch:!1,score:1}}}const Oi=[];function Ei(e,t){for(let n=0,r=Oi.length;n<r;n+=1){let r=Oi[n];if(r.condition(e,t))return new r(e,t)}return new yi(e,t)}const Ai="$and",Ni="$or",Pi="$path",Ti="$val",Ii=e=>!(!e[Ai]&&!e[Ni]),Li=e=>({[Ai]:Object.keys(e).map((t=>({[t]:e[t]})))});function Mi(e,t,{auto:n=!0}={}){const r=e=>{let o=Object.keys(e);const i=(e=>!!e[Pi])(e);if(!i&&o.length>1&&!Ii(e))return r(Li(e));if((e=>!Xo(e)&&ei(e)&&!Ii(e))(e)){const r=i?e[Pi]:o[0],a=i?e[Ti]:e[r];if(!Zo(a))throw new Error((e=>`Invalid value for key ${e}`)(r));const s={keyId:li(r),pattern:a};return n&&(s.searcher=Ei(a,t)),s}let a={children:[],operator:o[0]};return o.forEach((t=>{const n=e[t];Xo(n)&&n.forEach((e=>{a.children.push(r(e))}))})),a};return Ii(e)||(e=Li(e)),r(e)}function Ri(e,t){const n=e.matches;t.matches=[],ti(n)&&n.forEach((e=>{if(!ti(e.indices)||!e.indices.length)return;const{indices:n,value:r}=e;let o={indices:n,value:r};e.key&&(o.key=e.key.src),e.idx>-1&&(o.refIndex=e.idx),t.matches.push(o)}))}function Di(e,t){t.score=e.score}class Fi{constructor(e,t={},n){this.options={...ci,...t},this.options.useExtendedSearch,this._keyStore=new ii(this.options.keys),this.setCollection(e,n)}setCollection(e,t){if(this._docs=e,t&&!(t instanceof di))throw new Error("Incorrect 'index' type");this._myIndex=t||fi(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){ti(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=(()=>!1)){const t=[];for(let n=0,r=this._docs.length;n<r;n+=1){const o=this._docs[n];e(o,n)&&(this.removeAt(n),n-=1,r-=1,t.push(o))}return t}removeAt(e){this._docs.splice(e,1),this._myIndex.removeAt(e)}getIndex(){return this._myIndex}search(e,{limit:t=-1}={}){const{includeMatches:n,includeScore:r,shouldSort:o,sortFn:i,ignoreFieldNorm:a}=this.options;let s=Zo(e)?Zo(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return function(e,{ignoreFieldNorm:t=ci.ignoreFieldNorm}){e.forEach((e=>{let n=1;e.matches.forEach((({key:e,norm:r,score:o})=>{const i=e?e.weight:null;n*=Math.pow(0===o&&i?Number.EPSILON:o,(i||1)*(t?1:r))})),e.score=n}))}(s,{ignoreFieldNorm:a}),o&&s.sort(i),Yo(t)&&t>-1&&(s=s.slice(0,t)),function(e,t,{includeMatches:n=ci.includeMatches,includeScore:r=ci.includeScore}={}){const o=[];return n&&o.push(Ri),r&&o.push(Di),e.map((e=>{const{idx:n}=e,r={item:t[n],refIndex:n};return o.length&&o.forEach((t=>{t(e,r)})),r}))}(s,this._docs,{includeMatches:n,includeScore:r})}_searchStringList(e){const t=Ei(e,this.options),{records:n}=this._myIndex,r=[];return n.forEach((({v:e,i:n,n:o})=>{if(!ti(e))return;const{isMatch:i,score:a,indices:s}=t.searchIn(e);i&&r.push({item:e,idx:n,matches:[{score:a,value:e,norm:o,indices:s}]})})),r}_searchLogical(e){const t=Mi(e,this.options),n=(e,t,r)=>{if(!e.children){const{keyId:n,searcher:o}=e,i=this._findMatches({key:this._keyStore.get(n),value:this._myIndex.getValueForItemAtKeyId(t,n),searcher:o});return i&&i.length?[{idx:r,item:t,matches:i}]:[]}const o=[];for(let i=0,a=e.children.length;i<a;i+=1){const a=e.children[i],s=n(a,t,r);if(s.length)o.push(...s);else if(e.operator===Ai)return[]}return o},r=this._myIndex.records,o={},i=[];return r.forEach((({$:e,i:r})=>{if(ti(e)){let a=n(t,e,r);a.length&&(o[r]||(o[r]={idx:r,item:e,matches:[]},i.push(o[r])),a.forEach((({matches:e})=>{o[r].matches.push(...e)})))}})),i}_searchObjectList(e){const t=Ei(e,this.options),{keys:n,records:r}=this._myIndex,o=[];return r.forEach((({$:e,i:r})=>{if(!ti(e))return;let i=[];n.forEach(((n,r)=>{i.push(...this._findMatches({key:n,value:e[r],searcher:t}))})),i.length&&o.push({idx:r,item:e,matches:i})})),o}_findMatches({key:e,value:t,searcher:n}){if(!ti(t))return[];let r=[];if(Xo(t))t.forEach((({v:t,i:o,n:i})=>{if(!ti(t))return;const{isMatch:a,score:s,indices:l}=n.searchIn(t);a&&r.push({score:s,key:e,value:t,idx:o,norm:i,indices:l})}));else{const{v:o,n:i}=t,{isMatch:a,score:s,indices:l}=n.searchIn(o);a&&r.push({score:s,key:e,value:o,norm:i,indices:l})}return r}}function Bi(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return zi(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return zi(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function zi(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}Fi.version="6.5.3",Fi.createIndex=fi,Fi.parseIndex=function(e,{getFn:t=ci.getFn,fieldNormWeight:n=ci.fieldNormWeight}={}){const{keys:r,records:o}=e,i=new di({getFn:t,fieldNormWeight:n});return i.setKeys(r),i.setIndexRecords(o),i},Fi.config=ci,Fi.parseQuery=Mi,function(...e){Oi.push(...e)}(_i);var Ui=new Map,Vi=function(e){var t,n,r=e.value,i=e.setValue,a=e.terms,s=K((function(e){var t,n,r;return null!==(t=null===(n=e.preferredOptionsHistory)||void 0===n||null===(r=n.siteType)||void 0===r?void 0:r.filter((function(e){return e.slug})))&&void 0!==t?t:{}})),l=ce((function(e){return e.searchParams})),c=Bi((0,o.useState)(!1),2),u=c[0],d=c[1],f=(0,o.useRef)(),p=Bi((0,o.useState)({}),2),h=p[0],m=p[1],x=Bi((0,o.useState)(""),2),y=x[0],v=x[1],g=Bi((0,o.useState)([]),2),b=g[0],w=g[1],j=(0,o.useMemo)((function(){return a.filter((function(e){return null==e?void 0:e.featured})).sort((function(e,t){return e.slug<t.slug?-1:e.slug>t.slug?1:0}))}),[a]),k=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(Ui.has(e))w(Ui.get(e));else{var t=h.search(e);Ui.set(e,null!=t&&t.length?t.map((function(e){return e.item})):j),w(Ui.get(e))}},S="unknown"===r.slug||!(null!=r&&r.slug);(0,o.useEffect)((function(){m(new Fi(a,{keys:["slug","title","keywords"],minMatchCharLength:2,threshold:.3}))}),[a]),(0,o.useEffect)((function(){null!=y&&y.length||w(j)}),[j,y]),(0,o.useEffect)((function(){u&&f.current.focus()}),[u]);var C,_=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,Dt.__)("Suggestions","extendify");return e===j&&(t=(0,Dt.__)("Examples","extendify")),(0,Gt.jsxs)(Gt.Fragment,{children:[(0,Gt.jsx)("h4",{className:"mt-4 mb-2 text-left text-xss font-medium uppercase text-gray-700",children:t}),(0,Gt.jsx)("ul",{className:"m-0",children:e.map((function(e){var t,n,r,o=null!==(t=null==e?void 0:e.title)&&void 0!==t?t:e.slug,a=(null==l||null===(n=l.taxonomies)||void 0===n||null===(r=n.siteType)||void 0===r?void 0:r.slug)===e.slug;return(0,Gt.jsx)("li",{className:"m-0 mb-1",children:(0,Gt.jsx)("button",{type:"button",className:zt()("m-0 w-full cursor-pointer bg-transparent pl-0 text-left text-sm hover:text-wp-theme-500",{"text-gray-800":!a}),onClick:function(){d(!1),i(e)},children:o})},e.slug+(null==e?void 0:e.title))}))})]})};return(0,Gt.jsxs)("div",{className:"w-full rounded bg-extendify-transparent-black",children:[(0,Gt.jsx)("button",{type:"button",onClick:function(){return d((function(e){return!e}))},className:"button-focus m-0 flex w-full cursor-pointer items-center justify-between rounded bg-transparent p-4 text-gray-800 hover:bg-extendify-transparent-black-100",children:(C=u?(0,Dt.__)("What kind of site is this?","extendify"):null!==(t=null!==(n=null==r?void 0:r.title)&&void 0!==n?n:r.slug)&&void 0!==t?t:"Unknown",(0,Gt.jsxs)(Gt.Fragment,{children:[(0,Gt.jsxs)("span",{className:"flex flex-col text-left",children:[(0,Gt.jsx)("span",{className:"mb-1 text-sm",children:(0,Dt.__)("Site Type","extendify")}),(0,Gt.jsx)("span",{className:"text-xs font-light",children:C})]}),(0,Gt.jsxs)("span",{className:"flex items-center space-x-4",children:[S&&!u&&(0,Gt.jsxs)("svg",{className:"text-wp-alert-red","aria-hidden":"true",focusable:"false",width:"21",height:"21",viewBox:"0 0 21 21",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,Gt.jsx)("path",{className:"stroke-current",d:"M10.9982 4.05371C7.66149 4.05371 4.95654 6.75866 4.95654 10.0954C4.95654 13.4321 7.66149 16.137 10.9982 16.137C14.3349 16.137 17.0399 13.4321 17.0399 10.0954C17.0399 6.75866 14.3349 4.05371 10.9982 4.05371V4.05371Z",strokeWidth:"1.25"}),(0,Gt.jsx)("path",{className:"fill-current",d:"M10.0205 12.8717C10.0205 12.3287 10.4508 11.8881 10.9938 11.8881C11.5368 11.8881 11.9774 12.3287 11.9774 12.8717C11.9774 13.4147 11.5368 13.8451 10.9938 13.8451C10.4508 13.8451 10.0205 13.4147 10.0205 12.8717Z"}),(0,Gt.jsx)("path",{className:"fill-current",d:"M11.6495 10.2591C11.6086 10.6177 11.3524 10.9148 10.9938 10.9148C10.625 10.9148 10.3791 10.6074 10.3483 10.2591L10.0205 7.31855C9.95901 6.81652 10.4918 6.34521 10.9938 6.34521C11.4959 6.34521 12.0286 6.81652 11.9774 7.31855L11.6495 10.2591Z"})]}),(0,Gt.jsx)("svg",{className:zt()("stroke-current text-gray-700",{"-translate-x-1 rotate-90 transform":u}),"aria-hidden":"true",focusable:"false",width:"8",height:"13",viewBox:"0 0 8 13",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,Gt.jsx)("path",{d:"M1.24194 11.5952L6.24194 6.09519L1.24194 0.595215",strokeWidth:"1.5"})})]})]}))}),u&&(0,Gt.jsxs)("div",{className:"max-h-96 overflow-y-auto p-4 pt-0",children:[(0,Gt.jsxs)("div",{className:"relative my-2",children:[(0,Gt.jsx)("label",{htmlFor:"site-type-search",className:"sr-only",children:(0,Dt.__)("Search","extendify")}),(0,Gt.jsx)("input",{ref:f,id:"site-type-search",value:null!=y?y:"",onChange:function(e){return t=e.target.value,v(t),void k(t);var t},type:"text",className:"button-focus m-0 w-full rounded border-0 bg-white p-3.5 py-2.5 text-sm",placeholder:(0,Dt.__)("Search","extendify")}),(0,Gt.jsx)("svg",{className:"pointer-events-none absolute top-2 right-2 hidden lg:block",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",role:"img","aria-hidden":"true",focusable:"false",children:(0,Gt.jsx)("path",{d:"M13.5 6C10.5 6 8 8.5 8 11.5c0 1.1.3 2.1.9 3l-3.4 3 1 1.1 3.4-2.9c1 .9 2.2 1.4 3.6 1.4 3 0 5.5-2.5 5.5-5.5C19 8.5 16.5 6 13.5 6zm0 9.5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z"})})]}),(null==y?void 0:y.length)>1&&b===j&&(0,Gt.jsx)("p",{className:"text-left",children:(0,Dt.__)("Nothing found...","extendify")}),b===j&&Object.keys(s).length>0&&(0,Gt.jsx)("div",{className:"mb-8",children:_(s,(0,Dt.__)("Recent","extendify"))}),(null==b?void 0:b.length)>0&&(0,Gt.jsx)("div",{children:_(b)}),S?null:(0,Gt.jsx)("button",{type:"button",className:"mt-4 w-full cursor-pointer bg-transparent pl-0 text-left text-sm text-wp-theme-500 hover:text-wp-theme-500",onClick:function(){d(!1),i("Unknown")},children:(0,Dt.__)("Reset","extendify")})]})]})};function Hi(e){var t=e.taxType,n=e.taxonomies,r=ce((function(e){return e.updateTaxonomies})),o=ce((function(e){return e.searchParams}));return!(null!=n&&n.length)>0?null:(0,Gt.jsx)(Rt.PanelBody,{title:Er(t),className:"ext-type-control p-0",initialOpen:!0,children:(0,Gt.jsx)(Rt.PanelRow,{children:(0,Gt.jsx)("div",{className:"relative w-full overflow-hidden",children:(0,Gt.jsx)("ul",{className:"m-0 w-full px-5 py-1",children:n.map((function(e){var n,i,a=(null==o||null===(n=o.taxonomies[t])||void 0===n?void 0:n.slug)===(null==e?void 0:e.slug);return(0,Gt.jsx)("li",{className:"m-0 w-full",children:(0,Gt.jsx)("button",{type:"button",className:"button-focus m-0 flex w-full cursor-pointer items-center justify-between bg-transparent px-0 py-2 text-left text-sm leading-none transition duration-200 hover:text-wp-theme-500",onClick:function(){return r((i=e,(o=t)in(n={})?Object.defineProperty(n,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[o]=i,n));var n,o,i},children:(0,Gt.jsx)("span",{className:zt()({"text-wp-theme-500":a}),children:null!==(i=null==e?void 0:e.title)&&void 0!==i?i:e.slug})})},e.slug)}))})})})})}var Wi=(0,o.memo)((function(){var e,t,n,r,o,i=te((function(e){return e.taxonomies})),a=ce((function(e){return e.searchParams})),s=K((function(e){return e.updatePreferredSiteType})),l=ce((function(e){return e.updateTaxonomies})),c=K((function(e){return e.apiKey})),u="pattern"===a.type?"patternType":"layoutType",d=!(null!=a&&null!==(e=a.taxonomies[u])&&void 0!==e&&null!==(t=e.slug)&&void 0!==t&&t.length);return(0,Gt.jsxs)(Gt.Fragment,{children:[(0,Gt.jsx)("div",{className:"-ml-1.5 hidden px-5 text-extendify-black sm:flex",children:(0,Gt.jsx)(Ft,{icon:hn,size:40})}),(0,Gt.jsx)("div",{className:"px-5",children:(0,Gt.jsxs)("button",{onClick:function(){return l((n={slug:"",title:"Featured"},(t=u)in(e={})?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e));var e,t,n},className:zt()("button-focus m-0 flex w-full cursor-pointer items-center space-x-1 bg-transparent px-0 py-2 text-left text-sm leading-none transition duration-200 hover:text-wp-theme-500",{"text-wp-theme-500":d}),children:[(0,Gt.jsx)(Ft,{icon:gn,size:24}),(0,Gt.jsx)("span",{className:"text-sm",children:(0,Dt.__)("Featured","extendify")})]})}),(0,Gt.jsx)("div",{className:"mx-6 px-5 pt-0.5 sm:mx-0 sm:mb-8 sm:mt-0",children:Object.keys(null!==(n=null==i?void 0:i.siteType)&&void 0!==n?n:{}).length>0&&(0,Gt.jsx)(Vi,{value:null!==(r=null==a||null===(o=a.taxonomies)||void 0===o?void 0:o.siteType)&&void 0!==r?r:"",setValue:function(e){s(e),l({siteType:e})},terms:i.siteType})}),(0,Gt.jsx)("div",{className:"mt-px hidden flex-grow overflow-y-auto pb-32 pt-px sm:block",children:(0,Gt.jsx)(Rt.Panel,{className:"bg-transparent",children:(0,Gt.jsx)(Hi,{taxType:u,taxonomies:i[u]})})}),!c.length&&(0,Gt.jsx)("div",{className:"px-5",children:(0,Gt.jsx)(Ko,{})})]})}));function qi(e){var t=e.children,n=w((function(e){return e.ready}));return(0,Gt.jsxs)(Gt.Fragment,{children:[(0,Gt.jsx)("aside",{className:"relative flex-shrink-0 border-r border-extendify-transparent-black-100 bg-extendify-transparent-white py-0 backdrop-blur-xl backdrop-saturate-200 backdrop-filter sm:py-5",children:(0,Gt.jsx)("div",{className:"flex h-full flex-col py-6 sm:w-64 sm:space-y-6 sm:py-0",children:n?t[0]:null})}),(0,Gt.jsx)("main",{id:"extendify-templates",className:"h-full w-full overflow-hidden bg-gray-50 pt-6 sm:pt-0",children:n?t[1]:null})]})}var $i=function(e){var t=e.className,n=ce((function(e){return e.updateType})),r=w((function(e){var t;return null!==(t=null==e?void 0:e.currentType)&&void 0!==t?t:"pattern"}));return(0,Gt.jsxs)("div",{className:t,children:[(0,Gt.jsx)("h4",{className:"sr-only",children:(0,Dt.__)("Type select","extendify")}),(0,Gt.jsx)("button",{type:"button",className:zt()({"button-focus m-0 min-w-sm cursor-pointer rounded-tl-sm rounded-bl-sm border border-black py-2.5 px-4 text-xs leading-none":!0,"bg-gray-900 text-white":"pattern"===r,"bg-transparent text-black":"pattern"!==r}),onClick:function(){return n("pattern")},children:(0,Gt.jsx)("span",{className:"",children:(0,Dt.__)("Patterns","extendify")})}),(0,Gt.jsx)("button",{type:"button",className:zt()({"outline-none button-focus m-0 -ml-px min-w-sm cursor-pointer items-center rounded-tr-sm rounded-br-sm border border-black py-2.5 px-4 text-xs leading-none":!0,"bg-gray-900 text-white":"template"===r,"bg-transparent text-black":"template"!==r}),onClick:function(){return n("template")},children:(0,Gt.jsx)("span",{className:"",children:(0,Dt.__)("Page Layouts","extendify")})})]})},Gi=(0,o.memo)((function(e){var t=e.className,n=w((function(e){return e.setOpen})),r=w((function(e){return e.pushModal})),o=K((function(e){return e.apiKey.length}));return(0,Gt.jsx)("div",{className:t,children:(0,Gt.jsxs)("div",{className:"flex h-full items-center justify-between",children:[(0,Gt.jsx)("div",{className:"flex-1"}),(0,Gt.jsx)($i,{className:"flex flex-1 items-center justify-center"}),(0,Gt.jsxs)("div",{className:"flex flex-1 items-center justify-end",children:[(0,Gt.jsx)(Rt.Button,{onClick:function(){return r((0,Gt.jsx)(Ao,{}))},icon:(0,Gt.jsx)(Ft,{icon:_n,size:24}),label:(0,Dt.__)("Login and settings area","extendify"),children:o?"":(0,Dt.__)("Sign in","extendify")}),(0,Gt.jsx)(Rt.Button,{onClick:function(){return n(!1)},icon:(0,Gt.jsx)(Ft,{icon:On,size:24}),label:(0,Dt.__)("Close library","extendify")})]})]})})}));function Ji(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Ki(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ki(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ki(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Xi=function(e){var t=e.setOpen,n=(0,o.useRef)(),r=ce((function(e){return e.searchParams})),i=Ji((0,o.useState)(!1),2),a=i[0],s=i[1],l=ce((function(e){return e.resetTemplates})),c=function(e){var t=Bn((0,o.useState)(!0),2),n=t[0],r=t[1],i=Bn((0,o.useState)(!1),2),a=i[0],s=i[1],l=Un(),c=(0,o.useRef)();return(0,o.useEffect)((function(){var e=function(){return r(!0)},t={passive:!0};return window.addEventListener("keydown",e,t),window.addEventListener("mousemove",e,t),window.addEventListener("touchmove",e,t),function(){window.removeEventListener("keydown",e),window.removeEventListener("mousemove",e),window.removeEventListener("touchmove",e)}}),[]),(0,o.useEffect)((function(){n&&(r(!1),s(!1),window.clearTimeout(c.current),c.current=window.setTimeout((function(){l.current&&s(!0)}),e))}),[n,e,l]),a}(3e5),u=(0,o.useCallback)((function(){s(!1),l()}),[l]);return(0,o.useEffect)((function(){c&&s(!0)}),[c]),(0,o.useEffect)((function(){s(!1)}),[r]),(0,o.useEffect)((function(){n.current&&(n.current.scrollTop=0)}),[r]),(0,Gt.jsx)("div",{className:"relative mx-auto flex h-full max-w-screen-4xl flex-col items-center",children:(0,Gt.jsxs)("div",{className:"w-full flex-grow overflow-hidden",children:[(0,Gt.jsx)("button",{onClick:function(){return document.getElementById("extendify-templates").querySelector("button").focus()},className:"extendify-skip-to-sr-link sr-only focus:not-sr-only focus:text-blue-500",children:(0,Dt.__)("Skip to templates","extendify")}),(0,Gt.jsx)("div",{className:"relative mx-auto h-full sm:flex",children:(0,Gt.jsxs)(qi,{children:[(0,Gt.jsx)(Wi,{}),(0,Gt.jsxs)("div",{className:"relative z-30 flex h-full flex-col",children:[(0,Gt.jsx)(Gi,{className:"hidden h-20 w-full flex-shrink-0 px-6 sm:block md:px-8",hideLibrary:function(){return t(!1)}}),(0,Gt.jsx)("div",{ref:n,className:"z-20 flex-grow overflow-y-auto px-6 md:px-8",children:a?(0,Gt.jsx)(Zi,{callback:u}):(0,Gt.jsx)(Wo,{})})]})]})})]})})},Zi=function(e){var t=e.callback;return(0,Gt.jsxs)("div",{className:"flex h-full flex-col items-center justify-center",children:[(0,Gt.jsx)("p",{className:"mb-6 text-sm font-normal text-extendify-gray",children:(0,Dt.__)("We've added new stuff while you were away.","extendify")}),(0,Gt.jsx)(Rt.Button,{className:"components-button border-color-wp-theme-500 bg-wp-theme-500 text-white hover:bg-wp-theme-600",onClick:t,children:(0,Dt.__)("Reload")})]})};function Yi(){var e=(0,o.useRef)(null),t=w((function(e){return e.open})),n=w((function(e){return e.setOpen})),r=function(){var e=Ln((0,o.useState)(null),2),t=e[0],n=e[1],r=w((function(e){return e.open})),i=w((function(e){return e.pushModal})),a=w((function(e){return e.removeAllModals}));return(0,o.useEffect)((function(){return w.subscribe((function(e){return e.modals}),(function(e){return n((null==e?void 0:e.length)>0?e[0]:null)}))}),[]),(0,o.useEffect)((function(){var e;if(r){var t={standalone:In},n=t[null!==(e=Object.keys(t).find((function(e){return"standalone"===e?!window.extendifyData.standalone&&!K.getState().modalNoticesDismissedAt[e]:!K.getState().modalNoticesDismissedAt[e]})))&&void 0!==e?e:null];n&&i((0,Gt.jsx)(n,{}))}else a()}),[r,i,a]),t}(),i=w((function(e){return e.ready})),a=Fn("notice-position",["A","B"]);return(0,Gt.jsx)(Ke,{appear:!0,show:t,as:o.Fragment,children:(0,Gt.jsx)(Mt,{as:"div",static:!0,className:"extendify",initialFocus:e,onClose:function(){return n(!1)},children:(0,Gt.jsx)("div",{className:"fixed inset-0 z-high m-auto h-screen w-screen overflow-y-auto sm:h-auto sm:w-auto",children:(0,Gt.jsxs)("div",{className:"flex min-h-screen items-end justify-center px-4 pt-4 pb-20 text-center sm:block sm:p-0",children:[(0,Gt.jsx)(Ke.Child,{as:o.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",children:(0,Gt.jsx)(Mt.Overlay,{className:"fixed inset-0 bg-black bg-opacity-40 transition-opacity"})}),(0,Gt.jsx)(Ke.Child,{as:o.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-5",enterTo:"opacity-100 translate-y-0",children:(0,Gt.jsxs)("div",{ref:e,tabIndex:"0",onClick:function(e){return e.target===e.currentTarget&&n(!1)},className:"fixed inset-0 transform p-2 transition-all lg:absolute lg:overflow-hidden lg:p-16",children:["B"===a&&(0,Gt.jsx)(un,{className:"-mt-6"}),(0,Gt.jsx)(Xi,{}),i?(0,Gt.jsxs)(Gt.Fragment,{children:["A"===a&&(0,Gt.jsx)(un,{}),r]}):null]})})]})})})})}const Qi=wp.compose,ea=wp.hooks,ta=JSON.parse('{"t":["ext-absolute","ext-relative","ext-top-base","ext-top-lg","ext--top-base","ext--top-lg","ext-right-base","ext-right-lg","ext--right-base","ext--right-lg","ext-bottom-base","ext-bottom-lg","ext--bottom-base","ext--bottom-lg","ext-left-base","ext-left-lg","ext--left-base","ext--left-lg","ext-order-1","ext-order-2","ext-col-auto","ext-col-span-1","ext-col-span-2","ext-col-span-3","ext-col-span-4","ext-col-span-5","ext-col-span-6","ext-col-span-7","ext-col-span-8","ext-col-span-9","ext-col-span-10","ext-col-span-11","ext-col-span-12","ext-col-span-full","ext-col-start-1","ext-col-start-2","ext-col-start-3","ext-col-start-4","ext-col-start-5","ext-col-start-6","ext-col-start-7","ext-col-start-8","ext-col-start-9","ext-col-start-10","ext-col-start-11","ext-col-start-12","ext-col-start-13","ext-col-start-auto","ext-col-end-1","ext-col-end-2","ext-col-end-3","ext-col-end-4","ext-col-end-5","ext-col-end-6","ext-col-end-7","ext-col-end-8","ext-col-end-9","ext-col-end-10","ext-col-end-11","ext-col-end-12","ext-col-end-13","ext-col-end-auto","ext-row-auto","ext-row-span-1","ext-row-span-2","ext-row-span-3","ext-row-span-4","ext-row-span-5","ext-row-span-6","ext-row-span-full","ext-row-start-1","ext-row-start-2","ext-row-start-3","ext-row-start-4","ext-row-start-5","ext-row-start-6","ext-row-start-7","ext-row-start-auto","ext-row-end-1","ext-row-end-2","ext-row-end-3","ext-row-end-4","ext-row-end-5","ext-row-end-6","ext-row-end-7","ext-row-end-auto","ext-m-0","ext-m-auto","ext-m-base","ext-m-lg","ext--m-base","ext--m-lg","ext-mx-0","ext-mx-auto","ext-mx-base","ext-mx-lg","ext--mx-base","ext--mx-lg","ext-my-0","ext-my-auto","ext-my-base","ext-my-lg","ext--my-base","ext--my-lg","ext-mt-0","ext-mt-auto","ext-mt-base","ext-mt-lg","ext--mt-base","ext--mt-lg","ext-mr-0","ext-mr-auto","ext-mr-base","ext-mr-lg","ext--mr-base","ext--mr-lg","ext-mb-0","ext-mb-auto","ext-mb-base","ext-mb-lg","ext--mb-base","ext--mb-lg","ext-ml-0","ext-ml-auto","ext-ml-base","ext-ml-lg","ext--ml-base","ext--ml-lg","ext-block","ext-inline-block","ext-inline","ext-flex","ext-inline-flex","ext-grid","ext-inline-grid","ext-hidden","ext-w-auto","ext-w-full","ext-max-w-full","ext-flex-1","ext-flex-auto","ext-flex-initial","ext-flex-none","ext-flex-shrink-0","ext-flex-shrink","ext-flex-grow-0","ext-flex-grow","ext-list-none","ext-grid-cols-1","ext-grid-cols-2","ext-grid-cols-3","ext-grid-cols-4","ext-grid-cols-5","ext-grid-cols-6","ext-grid-cols-7","ext-grid-cols-8","ext-grid-cols-9","ext-grid-cols-10","ext-grid-cols-11","ext-grid-cols-12","ext-grid-cols-none","ext-grid-rows-1","ext-grid-rows-2","ext-grid-rows-3","ext-grid-rows-4","ext-grid-rows-5","ext-grid-rows-6","ext-grid-rows-none","ext-flex-row","ext-flex-row-reverse","ext-flex-col","ext-flex-col-reverse","ext-flex-wrap","ext-flex-wrap-reverse","ext-flex-nowrap","ext-items-start","ext-items-end","ext-items-center","ext-items-baseline","ext-items-stretch","ext-justify-start","ext-justify-end","ext-justify-center","ext-justify-between","ext-justify-around","ext-justify-evenly","ext-justify-items-start","ext-justify-items-end","ext-justify-items-center","ext-justify-items-stretch","ext-gap-0","ext-gap-base","ext-gap-lg","ext-gap-x-0","ext-gap-x-base","ext-gap-x-lg","ext-gap-y-0","ext-gap-y-base","ext-gap-y-lg","ext-justify-self-auto","ext-justify-self-start","ext-justify-self-end","ext-justify-self-center","ext-justify-self-stretch","ext-rounded-none","ext-rounded-full","ext-rounded-t-none","ext-rounded-t-full","ext-rounded-r-none","ext-rounded-r-full","ext-rounded-b-none","ext-rounded-b-full","ext-rounded-l-none","ext-rounded-l-full","ext-rounded-tl-none","ext-rounded-tl-full","ext-rounded-tr-none","ext-rounded-tr-full","ext-rounded-br-none","ext-rounded-br-full","ext-rounded-bl-none","ext-rounded-bl-full","ext-border-0","ext-border-t-0","ext-border-r-0","ext-border-b-0","ext-border-l-0","ext-p-0","ext-p-base","ext-p-lg","ext-px-0","ext-px-base","ext-px-lg","ext-py-0","ext-py-base","ext-py-lg","ext-pt-0","ext-pt-base","ext-pt-lg","ext-pr-0","ext-pr-base","ext-pr-lg","ext-pb-0","ext-pb-base","ext-pb-lg","ext-pl-0","ext-pl-base","ext-pl-lg","ext-text-left","ext-text-center","ext-text-right","ext-leading-none","ext-leading-tight","ext-leading-snug","ext-leading-normal","ext-leading-relaxed","ext-leading-loose","clip-path--rhombus","clip-path--diamond","clip-path--rhombus-alt","wp-block-columns[class*=\\"fullwidth-cols\\"]\\n","tablet\\\\:fullwidth-cols","desktop\\\\:fullwidth-cols","direction-rtl","direction-ltr","bring-to-front","text-stroke","text-stroke--primary","text-stroke--secondary","editor\\\\:no-caption","editor\\\\:no-inserter","editor\\\\:no-resize","editor\\\\:pointer-events-none","tablet\\\\:ext-absolute","tablet\\\\:ext-relative","tablet\\\\:ext-top-base","tablet\\\\:ext-top-lg","tablet\\\\:ext--top-base","tablet\\\\:ext--top-lg","tablet\\\\:ext-right-base","tablet\\\\:ext-right-lg","tablet\\\\:ext--right-base","tablet\\\\:ext--right-lg","tablet\\\\:ext-bottom-base","tablet\\\\:ext-bottom-lg","tablet\\\\:ext--bottom-base","tablet\\\\:ext--bottom-lg","tablet\\\\:ext-left-base","tablet\\\\:ext-left-lg","tablet\\\\:ext--left-base","tablet\\\\:ext--left-lg","tablet\\\\:ext-order-1","tablet\\\\:ext-order-2","tablet\\\\:ext-m-0","tablet\\\\:ext-m-auto","tablet\\\\:ext-m-base","tablet\\\\:ext-m-lg","tablet\\\\:ext--m-base","tablet\\\\:ext--m-lg","tablet\\\\:ext-mx-0","tablet\\\\:ext-mx-auto","tablet\\\\:ext-mx-base","tablet\\\\:ext-mx-lg","tablet\\\\:ext--mx-base","tablet\\\\:ext--mx-lg","tablet\\\\:ext-my-0","tablet\\\\:ext-my-auto","tablet\\\\:ext-my-base","tablet\\\\:ext-my-lg","tablet\\\\:ext--my-base","tablet\\\\:ext--my-lg","tablet\\\\:ext-mt-0","tablet\\\\:ext-mt-auto","tablet\\\\:ext-mt-base","tablet\\\\:ext-mt-lg","tablet\\\\:ext--mt-base","tablet\\\\:ext--mt-lg","tablet\\\\:ext-mr-0","tablet\\\\:ext-mr-auto","tablet\\\\:ext-mr-base","tablet\\\\:ext-mr-lg","tablet\\\\:ext--mr-base","tablet\\\\:ext--mr-lg","tablet\\\\:ext-mb-0","tablet\\\\:ext-mb-auto","tablet\\\\:ext-mb-base","tablet\\\\:ext-mb-lg","tablet\\\\:ext--mb-base","tablet\\\\:ext--mb-lg","tablet\\\\:ext-ml-0","tablet\\\\:ext-ml-auto","tablet\\\\:ext-ml-base","tablet\\\\:ext-ml-lg","tablet\\\\:ext--ml-base","tablet\\\\:ext--ml-lg","tablet\\\\:ext-block","tablet\\\\:ext-inline-block","tablet\\\\:ext-inline","tablet\\\\:ext-flex","tablet\\\\:ext-inline-flex","tablet\\\\:ext-grid","tablet\\\\:ext-inline-grid","tablet\\\\:ext-hidden","tablet\\\\:ext-w-auto","tablet\\\\:ext-w-full","tablet\\\\:ext-max-w-full","tablet\\\\:ext-flex-1","tablet\\\\:ext-flex-auto","tablet\\\\:ext-flex-initial","tablet\\\\:ext-flex-none","tablet\\\\:ext-flex-shrink-0","tablet\\\\:ext-flex-shrink","tablet\\\\:ext-flex-grow-0","tablet\\\\:ext-flex-grow","tablet\\\\:ext-list-none","tablet\\\\:ext-grid-cols-1","tablet\\\\:ext-grid-cols-2","tablet\\\\:ext-grid-cols-3","tablet\\\\:ext-grid-cols-4","tablet\\\\:ext-grid-cols-5","tablet\\\\:ext-grid-cols-6","tablet\\\\:ext-grid-cols-7","tablet\\\\:ext-grid-cols-8","tablet\\\\:ext-grid-cols-9","tablet\\\\:ext-grid-cols-10","tablet\\\\:ext-grid-cols-11","tablet\\\\:ext-grid-cols-12","tablet\\\\:ext-grid-cols-none","tablet\\\\:ext-flex-row","tablet\\\\:ext-flex-row-reverse","tablet\\\\:ext-flex-col","tablet\\\\:ext-flex-col-reverse","tablet\\\\:ext-flex-wrap","tablet\\\\:ext-flex-wrap-reverse","tablet\\\\:ext-flex-nowrap","tablet\\\\:ext-items-start","tablet\\\\:ext-items-end","tablet\\\\:ext-items-center","tablet\\\\:ext-items-baseline","tablet\\\\:ext-items-stretch","tablet\\\\:ext-justify-start","tablet\\\\:ext-justify-end","tablet\\\\:ext-justify-center","tablet\\\\:ext-justify-between","tablet\\\\:ext-justify-around","tablet\\\\:ext-justify-evenly","tablet\\\\:ext-justify-items-start","tablet\\\\:ext-justify-items-end","tablet\\\\:ext-justify-items-center","tablet\\\\:ext-justify-items-stretch","tablet\\\\:ext-justify-self-auto","tablet\\\\:ext-justify-self-start","tablet\\\\:ext-justify-self-end","tablet\\\\:ext-justify-self-center","tablet\\\\:ext-justify-self-stretch","tablet\\\\:ext-p-0","tablet\\\\:ext-p-base","tablet\\\\:ext-p-lg","tablet\\\\:ext-px-0","tablet\\\\:ext-px-base","tablet\\\\:ext-px-lg","tablet\\\\:ext-py-0","tablet\\\\:ext-py-base","tablet\\\\:ext-py-lg","tablet\\\\:ext-pt-0","tablet\\\\:ext-pt-base","tablet\\\\:ext-pt-lg","tablet\\\\:ext-pr-0","tablet\\\\:ext-pr-base","tablet\\\\:ext-pr-lg","tablet\\\\:ext-pb-0","tablet\\\\:ext-pb-base","tablet\\\\:ext-pb-lg","tablet\\\\:ext-pl-0","tablet\\\\:ext-pl-base","tablet\\\\:ext-pl-lg","tablet\\\\:ext-text-left","tablet\\\\:ext-text-center","tablet\\\\:ext-text-right","desktop\\\\:ext-absolute","desktop\\\\:ext-relative","desktop\\\\:ext-top-base","desktop\\\\:ext-top-lg","desktop\\\\:ext--top-base","desktop\\\\:ext--top-lg","desktop\\\\:ext-right-base","desktop\\\\:ext-right-lg","desktop\\\\:ext--right-base","desktop\\\\:ext--right-lg","desktop\\\\:ext-bottom-base","desktop\\\\:ext-bottom-lg","desktop\\\\:ext--bottom-base","desktop\\\\:ext--bottom-lg","desktop\\\\:ext-left-base","desktop\\\\:ext-left-lg","desktop\\\\:ext--left-base","desktop\\\\:ext--left-lg","desktop\\\\:ext-order-1","desktop\\\\:ext-order-2","desktop\\\\:ext-m-0","desktop\\\\:ext-m-auto","desktop\\\\:ext-m-base","desktop\\\\:ext-m-lg","desktop\\\\:ext--m-base","desktop\\\\:ext--m-lg","desktop\\\\:ext-mx-0","desktop\\\\:ext-mx-auto","desktop\\\\:ext-mx-base","desktop\\\\:ext-mx-lg","desktop\\\\:ext--mx-base","desktop\\\\:ext--mx-lg","desktop\\\\:ext-my-0","desktop\\\\:ext-my-auto","desktop\\\\:ext-my-base","desktop\\\\:ext-my-lg","desktop\\\\:ext--my-base","desktop\\\\:ext--my-lg","desktop\\\\:ext-mt-0","desktop\\\\:ext-mt-auto","desktop\\\\:ext-mt-base","desktop\\\\:ext-mt-lg","desktop\\\\:ext--mt-base","desktop\\\\:ext--mt-lg","desktop\\\\:ext-mr-0","desktop\\\\:ext-mr-auto","desktop\\\\:ext-mr-base","desktop\\\\:ext-mr-lg","desktop\\\\:ext--mr-base","desktop\\\\:ext--mr-lg","desktop\\\\:ext-mb-0","desktop\\\\:ext-mb-auto","desktop\\\\:ext-mb-base","desktop\\\\:ext-mb-lg","desktop\\\\:ext--mb-base","desktop\\\\:ext--mb-lg","desktop\\\\:ext-ml-0","desktop\\\\:ext-ml-auto","desktop\\\\:ext-ml-base","desktop\\\\:ext-ml-lg","desktop\\\\:ext--ml-base","desktop\\\\:ext--ml-lg","desktop\\\\:ext-block","desktop\\\\:ext-inline-block","desktop\\\\:ext-inline","desktop\\\\:ext-flex","desktop\\\\:ext-inline-flex","desktop\\\\:ext-grid","desktop\\\\:ext-inline-grid","desktop\\\\:ext-hidden","desktop\\\\:ext-w-auto","desktop\\\\:ext-w-full","desktop\\\\:ext-max-w-full","desktop\\\\:ext-flex-1","desktop\\\\:ext-flex-auto","desktop\\\\:ext-flex-initial","desktop\\\\:ext-flex-none","desktop\\\\:ext-flex-shrink-0","desktop\\\\:ext-flex-shrink","desktop\\\\:ext-flex-grow-0","desktop\\\\:ext-flex-grow","desktop\\\\:ext-list-none","desktop\\\\:ext-grid-cols-1","desktop\\\\:ext-grid-cols-2","desktop\\\\:ext-grid-cols-3","desktop\\\\:ext-grid-cols-4","desktop\\\\:ext-grid-cols-5","desktop\\\\:ext-grid-cols-6","desktop\\\\:ext-grid-cols-7","desktop\\\\:ext-grid-cols-8","desktop\\\\:ext-grid-cols-9","desktop\\\\:ext-grid-cols-10","desktop\\\\:ext-grid-cols-11","desktop\\\\:ext-grid-cols-12","desktop\\\\:ext-grid-cols-none","desktop\\\\:ext-flex-row","desktop\\\\:ext-flex-row-reverse","desktop\\\\:ext-flex-col","desktop\\\\:ext-flex-col-reverse","desktop\\\\:ext-flex-wrap","desktop\\\\:ext-flex-wrap-reverse","desktop\\\\:ext-flex-nowrap","desktop\\\\:ext-items-start","desktop\\\\:ext-items-end","desktop\\\\:ext-items-center","desktop\\\\:ext-items-baseline","desktop\\\\:ext-items-stretch","desktop\\\\:ext-justify-start","desktop\\\\:ext-justify-end","desktop\\\\:ext-justify-center","desktop\\\\:ext-justify-between","desktop\\\\:ext-justify-around","desktop\\\\:ext-justify-evenly","desktop\\\\:ext-justify-items-start","desktop\\\\:ext-justify-items-end","desktop\\\\:ext-justify-items-center","desktop\\\\:ext-justify-items-stretch","desktop\\\\:ext-justify-self-auto","desktop\\\\:ext-justify-self-start","desktop\\\\:ext-justify-self-end","desktop\\\\:ext-justify-self-center","desktop\\\\:ext-justify-self-stretch","desktop\\\\:ext-p-0","desktop\\\\:ext-p-base","desktop\\\\:ext-p-lg","desktop\\\\:ext-px-0","desktop\\\\:ext-px-base","desktop\\\\:ext-px-lg","desktop\\\\:ext-py-0","desktop\\\\:ext-py-base","desktop\\\\:ext-py-lg","desktop\\\\:ext-pt-0","desktop\\\\:ext-pt-base","desktop\\\\:ext-pt-lg","desktop\\\\:ext-pr-0","desktop\\\\:ext-pr-base","desktop\\\\:ext-pr-lg","desktop\\\\:ext-pb-0","desktop\\\\:ext-pb-base","desktop\\\\:ext-pb-lg","desktop\\\\:ext-pl-0","desktop\\\\:ext-pl-base","desktop\\\\:ext-pl-lg","desktop\\\\:ext-text-left","desktop\\\\:ext-text-center","desktop\\\\:ext-text-right"]}');function na(e){return function(e){if(Array.isArray(e))return ra(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ra(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ra(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ra(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function oa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ia(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oa(Object(n),!0).forEach((function(t){aa(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oa(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function aa(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var sa=(0,Qi.createHigherOrderComponent)((function(e){return function(t){var n,r,o=null!==(n=null==t||null===(r=t.attributes)||void 0===r?void 0:r.extUtilities)&&void 0!==n?n:[],i=ta.t.map((function(e){return e.replace(".","").replace(new RegExp("\\\\","g"),"")}));return(0,Gt.jsxs)(Gt.Fragment,{children:[(0,Gt.jsx)(e,ia({},t)),o&&(0,Gt.jsx)(mr.InspectorAdvancedControls,{children:(0,Gt.jsx)(Rt.FormTokenField,{label:(0,Dt.__)("Extendify Utilities","extendify"),tokenizeOnSpace:!0,value:o,suggestions:i,onChange:function(e){t.setAttributes({extUtilities:e})}})})]})}}),"utilityClassEdit");function la(e,t,n){var r,o,i,a=null!==(r=null==e?void 0:e.className)&&void 0!==r?r:[],s=null!==(o=null==n?void 0:n.extUtilities)&&void 0!==o?o:[],l=null!==(i=null==n?void 0:n.className)&&void 0!==i?i:[];if(!s||!Object.keys(s).length)return e;var c=function(e){switch(Object.prototype.toString.call(e)){case"[object String]":return e.split(" ");case"[object Array]":return e;default:return[]}},u=new Set([].concat(na(c(l)),na(c(a)),na(c(s))));return Object.assign({},e,{className:na(u).join(" ")})}function ca(e){var t=e.show,n=void 0!==t&&t,r=w((function(e){return e.open})),i=w((function(e){return e.setReady})),a=w((function(e){return e.setOpen})),s=(0,o.useCallback)((function(){return a(!0)}),[a]),l=(0,o.useCallback)((function(){return a(!1)}),[a]),c=ce((function(e){return e.initTemplateData})),u=te((function(e){return e.fetchTaxonomies})),d=K((function(e){return e._hasHydrated})),f=ce((function(e){return Object.keys(e.taxonomyDefaultState).length>0}));return(0,o.useEffect)((function(){r&&u().then((function(){ce.getState().setupDefaultTaxonomies()}))}),[r,u]),(0,o.useEffect)((function(){d&&f&&(c(),i(!0))}),[d,f,c,i]),(0,o.useEffect)((function(){n&&a(!0)}),[n,a]),(0,o.useEffect)((function(){ue().then((function(e){w.setState({metaData:e})}))}),[]),(0,o.useEffect)((function(){return window.addEventListener("extendify::open-library",s),window.addEventListener("extendify::close-library",l),function(){window.removeEventListener("extendify::open-library",s),window.removeEventListener("extendify::close-library",l)}}),[l,s]),(0,Gt.jsx)(Yi,{})}(0,ea.addFilter)("blocks.registerBlockType","extendify/utilities/attributes",(function(e){return ia(ia({},e),{},{attributes:ia(ia({},e.attributes),{},{extUtilities:{type:"array",default:[]}})})})),(0,ea.addFilter)("blocks.registerBlockType","extendify/utilities/addEditProps",(function(e){var t=e.getEditWrapperProps;return e.getEditWrapperProps=function(n){var r={};return t&&(r=t(n)),la(r,e,n)},e})),(0,ea.addFilter)("editor.BlockEdit","extendify/utilities/advancedClassControls",sa),(0,ea.addFilter)("blocks.getSaveContent.extraProps","extendify/utilities/extra-props",la),(0,r.registerBlockCollection)("extendify",{title:"Extendify",icon:(0,Gt.jsx)(Rt.Icon,{icon:pn})});const ua=(0,o.createElement)(qt,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,o.createElement)(Ht,{d:"M20.2 8v11c0 .7-.6 1.2-1.2 1.2H6v1.5h13c1.5 0 2.7-1.2 2.7-2.8V8h-1.5zM18 16.4V4.6c0-.9-.7-1.6-1.6-1.6H4.6C3.7 3 3 3.7 3 4.6v11.8c0 .9.7 1.6 1.6 1.6h11.8c.9 0 1.6-.7 1.6-1.6zM4.5 4.6c0-.1.1-.1.1-.1h11.8c.1 0 .1.1.1.1V12l-2.3-1.7c-.3-.2-.6-.2-.9 0l-2.9 2.1L8 11.3c-.2-.1-.5-.1-.7 0l-2.9 1.5V4.6zm0 11.8v-1.8l3.2-1.7 2.4 1.2c.2.1.5.1.8-.1l2.8-2 2.8 2v2.5c0 .1-.1.1-.1.1H4.6c0-.1-.1-.2-.1-.2z"})),da=(0,o.createElement)(qt,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,o.createElement)(Ht,{d:"M10 4.5a1 1 0 11-2 0 1 1 0 012 0zm1.5 0a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm2.25 7.5v-1A2.75 2.75 0 0011 8.25H7A2.75 2.75 0 004.25 11v1h1.5v-1c0-.69.56-1.25 1.25-1.25h4c.69 0 1.25.56 1.25 1.25v1h1.5zM4 20h9v-1.5H4V20zm16-4H4v-1.5h16V16z",fillRule:"evenodd",clipRule:"evenodd"})),fa=(0,o.createElement)(qt,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(Ht,{d:"M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h6.2v8.9l2.5-3.1 2.5 3.1V4.5h2.2c.4 0 .8.4.8.8v13.4z"})),pa=(0,o.createElement)(qt,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(Ht,{d:"M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12-9.8c.4 0 .8-.3.9-.7l1.1-3h3.6l.5 1.7h1.9L13 9h-2.2l-3.4 9.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12H20V6c0-1.1-.9-2-2-2zm-6 7l1.4 3.9h-2.7L12 11z"})),ha=(0,o.createElement)(qt,{xmlns:"https://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(Ht,{d:"M12 9c-.8 0-1.5.7-1.5 1.5S11.2 12 12 12s1.5-.7 1.5-1.5S12.8 9 12 9zm0-5c-3.6 0-6.5 2.8-6.5 6.2 0 .8.3 1.8.9 3.1.5 1.1 1.2 2.3 2 3.6.7 1 3 3.8 3.2 3.9l.4.5.4-.5c.2-.2 2.6-2.9 3.2-3.9.8-1.2 1.5-2.5 2-3.6.6-1.3.9-2.3.9-3.1C18.5 6.8 15.6 4 12 4zm4.3 8.7c-.5 1-1.1 2.2-1.9 3.4-.5.7-1.7 2.2-2.4 3-.7-.8-1.9-2.3-2.4-3-.8-1.2-1.4-2.3-1.9-3.3-.6-1.4-.7-2.2-.7-2.5 0-2.6 2.2-4.7 5-4.7s5 2.1 5 4.7c0 .2-.1 1-.7 2.4z"})),ma=(0,o.createElement)(qt,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,o.createElement)(Ht,{d:"M19 6.5H5c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v7zM8 12.8h8v-1.5H8v1.5z"})),xa=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"extendify/library","title":"Pattern Library","description":"Add block patterns and full page layouts with the Extendify Library.","keywords":["template","layouts"],"textdomain":"extendify","attributes":{"preview":{"type":"string"},"search":{"type":"string"}}}');(0,r.registerBlockType)(xa,{icon:pn,category:"extendify",example:{attributes:{preview:window.extendifyData.asset_path+"/preview.png"}},variations:[{name:"gallery",icon:(0,Gt.jsx)(Ft,{icon:ua}),category:"extendify",attributes:{search:"gallery"},title:(0,Dt.__)("Gallery Patterns","extendify"),description:(0,Dt.__)("Add gallery patterns and layouts.","extendify"),keywords:[(0,Dt.__)("slideshow","extendify"),(0,Dt.__)("images","extendify")]},{name:"team",icon:(0,Gt.jsx)(Ft,{icon:da}),category:"extendify",attributes:{search:"team"},title:(0,Dt.__)("Team Patterns","extendify"),description:(0,Dt.__)("Add team patterns and layouts.","extendify"),keywords:[(0,Dt._x)("crew","As in team","extendify"),(0,Dt.__)("colleagues","extendify"),(0,Dt.__)("members","extendify")]},{name:"hero",icon:(0,Gt.jsx)(Ft,{icon:fa}),category:"extendify",attributes:{search:"hero"},title:(0,Dt._x)("Hero Patterns","Hero being a hero/top section of a webpage","extendify"),description:(0,Dt.__)("Add hero patterns and layouts.","extendify"),keywords:[(0,Dt.__)("heading","extendify"),(0,Dt.__)("headline","extendify")]},{name:"text",icon:(0,Gt.jsx)(Ft,{icon:pa}),category:"extendify",attributes:{search:"text"},title:(0,Dt._x)("Text Patterns","Relating to patterns that feature text only","extendify"),description:(0,Dt.__)("Add text patterns and layouts.","extendify"),keywords:[(0,Dt.__)("simple","extendify"),(0,Dt.__)("paragraph","extendify")]},{name:"about",icon:(0,Gt.jsx)(Ft,{icon:ha}),category:"extendify",attributes:{search:"about"},title:(0,Dt._x)("About Page Patterns","Add patterns relating to an about us page","extendify"),description:(0,Dt.__)("About patterns and layouts.","extendify"),keywords:[(0,Dt.__)("who we are","extendify"),(0,Dt.__)("team","extendify")]},{name:"call-to-action",icon:(0,Gt.jsx)(Ft,{icon:ma}),category:"extendify",attributes:{search:"call-to-action"},title:(0,Dt.__)("Call to Action Patterns","extendify"),description:(0,Dt.__)("Add call to action patterns and layouts.","extendify"),keywords:[(0,Dt._x)("cta","Initialism for call to action","extendify"),(0,Dt.__)("callout","extendify"),(0,Dt.__)("buttons","extendify")]}],edit:function(e){var t=e.clientId,n=e.attributes,r=(0,Nr.useDispatch)("core/block-editor").removeBlock;return(0,o.useEffect)((function(){n.preview||(n.search&&ya(n.search),_r("library-block","open"),r(t))}),[t,n,r]),(0,Gt.jsx)("img",{style:{display:"block",maxWidth:"100%"},src:n.preview,alt:(0,Dt.sprintf)((0,Dt.__)("%s Pattern Library","extendify"),"Extendify")})}});var ya=function(e){var t=new URLSearchParams(window.location.search);t.append("ext-patternType",e),window.history.replaceState(null,null,window.location.pathname+"?"+t.toString())};const va=wp.editPost,ga=wp.plugins;var ba=function(){return X.get("site-settings")},wa=function(e){var t=new FormData;return t.append("data",JSON.stringify(e)),X.post("site-settings",t,{headers:{"Content-Type":"multipart/form-data"}})};function ja(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function ka(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){ja(i,r,o,a,s,"next",e)}function s(e){ja(i,r,o,a,s,"throw",e)}a(void 0)}))}}var Sa={getItem:function(){var e=ka(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ba();case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),setItem:function(){var e=ka(k().mark((function e(t,n){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,wa(n);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),removeItem:function(){}},Ca=c(v((function(){return{enabled:!0}}),{name:"extendify-sitesettings",getStorage:function(){return Sa}}));function _a(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Oa(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){_a(i,r,o,a,s,"next",e)}function s(e){_a(i,r,o,a,s,"throw",e)}a(void 0)}))}}function Ea(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Aa(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Aa(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Aa(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}const Na=function(){var e=(0,Nr.useSelect)((function(e){return e("core").canUser("create","users")})),t=Ea((0,o.useState)(K((function(e){return e.enabled}))),2),n=t[0],r=t[1],i=Ea((0,o.useState)(Ca((function(e){return e.enabled}))),2),a=i[0],s=i[1];function l(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=document.getElementById("extendify-templates-inserter-btn");t&&(e?t.classList.add("invisible"):t.classList.remove("invisible"))}function c(e){return u.apply(this,arguments)}function u(){return(u=Oa(k().mark((function e(t){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,K.setState({enabled:t});case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function d(e){return f.apply(this,arguments)}function f(){return(f=Oa(k().mark((function e(t){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Ca.setState({enabled:t});case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function p(e,t){return h.apply(this,arguments)}function h(){return h=Oa(k().mark((function e(t,n){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("global"!==n){e.next=5;break}return e.next=3,d(t);case 3:e.next=7;break;case 5:return e.next=7,c(t);case 7:case"end":return e.stop()}}),e)}))),h.apply(this,arguments)}function m(e){"global"===e?s((function(t){return p(!t,e),!t})):r((function(t){return l(!t),p(!t,e),!t}))}return(0,o.useEffect)((function(){l(!n)}),[n]),(0,Gt.jsxs)(Rt.Modal,{title:(0,Dt.__)("Extendify Settings","extendify"),onRequestClose:function(){var e=document.getElementById("extendify-util");(0,o.unmountComponentAtNode)(e)},children:[(0,Gt.jsx)(Rt.ToggleControl,{label:e?(0,Dt.__)("Enable the library for myself","extendify"):(0,Dt.__)("Enable the library","extendify"),help:(0,Dt.__)("Publish with hundreds of patterns & page layouts","extendify"),checked:n,onChange:function(){return m("user")}}),e&&(0,Gt.jsxs)(Gt.Fragment,{children:[(0,Gt.jsx)("br",{}),(0,Gt.jsx)(Rt.ToggleControl,{label:(0,Dt.__)("Allow all users to publish with the library"),help:(0,Dt.__)("Everyone publishes with patterns & page layouts","extendify"),checked:a,onChange:function(){return m("global")}})]})]})};var Pa=function(e){var t=e.anchorRef,n=e.onPressX,r=e.onClick,o=e.onClickOutside;return t.current?(0,Gt.jsx)(Rt.Popover,{anchorRef:t.current,shouldAnchorIncludePadding:!0,className:"extendify-tooltip-default",focusOnMount:!1,onFocusOutside:o,onClick:r,position:"bottom center",noArrow:!1,children:(0,Gt.jsxs)(Gt.Fragment,{children:[(0,Gt.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"0.5rem"},children:[(0,Gt.jsx)("span",{style:{textTransform:"uppercase",color:"#8b8b8b"},children:(0,Dt.__)("Monthly Imports","extendify")}),(0,Gt.jsx)(Rt.Button,{style:{color:"white",position:"relative",right:"-5px",padding:"0",minWidth:"0",height:"20px",width:"20px"},onClick:function(e){e.stopPropagation(),n()},icon:(0,Gt.jsx)(Ft,{icon:On,size:12}),showTooltip:!1,label:(0,Dt.__)("Close callout","extendify")})]}),(0,Gt.jsx)("div",{dangerouslySetInnerHTML:{__html:dn((0,Dt.sprintf)((0,Dt.__)("%1$sGood news!%2$s We've added more imports to your library. Enjoy!","extendify"),"<strong>","</strong>"))}})]})}):null};function Ta(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function Ia(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Ta(i,r,o,a,s,"next",e)}function s(e){Ta(i,r,o,a,s,"throw",e)}a(void 0)}))}}function La(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Ma(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ma(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ma(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Ra,Da,Fa=function(){var e=La((0,o.useState)(!1),2),t=e[0],n=e[1],r=(0,o.useRef)(!1),i=(0,o.useRef)(),a=K((function(e){return e.apiKey.length})),s=K((function(e){return e.imports>0})),l=w((function(e){return e.open})),c=K((function(e){return 0===e.allowedImports})),u=Fn("main-button-text",["A","B","C"]),d=function(){var e=Ia(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,de("mb-tooltip-closed");case 2:n(!1),K.setState({allowedImports:-1});case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,o.useEffect)((function(){l&&(n(!1),r.current=!0),!a&&c&&s&&(r.current||n(!0),r.current=!0)}),[a,c,s,l]),(0,Gt.jsxs)(Gt.Fragment,{children:[(0,Gt.jsx)(Rt.Button,{isPrimary:!0,ref:i,style:{padding:"12px"},onClick:function(){return Cr("main-button")},id:"extendify-templates-inserter-btn",icon:(0,Gt.jsx)(Ft,{style:{marginRight:"4px"},icon:hn,size:24}),children:function(){switch(u){case"B":return(0,Dt.__)("Add section","extendify");case"C":return(0,Dt.__)("Add template","extendify");default:return(0,Dt.__)("Library","extendify")}}()}),t&&(0,Gt.jsx)(Pa,{anchorRef:i,onClick:Ia(k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,de("mb-tooltip-pressed");case 2:Cr("main-button-tooltip");case 3:case"end":return e.stop()}}),e)}))),onPressX:d})]})},Ba=function(){return(0,Gt.jsx)(Rt.Button,{id:"extendify-cta-button",style:{margin:"1rem 1rem 0",width:"calc(100% - 2rem)",justifyContent:" center"},onClick:function(){return Cr("patterns-cta")},isSecondary:!0,children:(0,Dt.__)("Discover patterns in Extendify Library","extendify")})},za=null===(Ra=window.extendifyData)||void 0===Ra||null===(Da=Ra.user)||void 0===Da?void 0:Da.state,Ua=function(){return null===window.extendifyData.user||(null==za?void 0:za.isAdmin)},Va=function(){var e,t,n;return null===window.extendifyData.sitesettings||(null===(e=window.extendifyData)||void 0===e||null===(t=e.sitesettings)||void 0===t||null===(n=t.state)||void 0===n?void 0:n.enabled)};if(window._wpLoadBlockEditor)var Ha=window.wp.data.subscribe((function(){requestAnimationFrame((function(){if((Va()||Ua())&&!document.getElementById("extendify-templates-inserter")&&document.querySelector(".edit-post-header-toolbar")){var e=Object.assign(document.createElement("div"),{id:"extendify-templates-inserter"});document.querySelector(".edit-post-header-toolbar").append(e),(0,o.render)((0,Gt.jsx)(Fa,{}),e),(null===window.extendifyData.user?Va():null==za?void 0:za.enabled)||document.getElementById("extendify-templates-inserter-btn").classList.add("invisible"),Ha()}}))}));window._wpLoadBlockEditor&&window.wp.data.subscribe((function(){requestAnimationFrame((function(){if((Va()||Ua())&&document.querySelector("[id$=patterns-view]")&&!document.getElementById("extendify-cta-button")){var e=Object.assign(document.createElement("div"),{id:"extendify-cta-button-container"});document.querySelector("[id$=patterns-view]").prepend(e),(0,o.render)((0,Gt.jsx)(Ba,{}),e)}}))}));window._wpLoadBlockEditor&&(0,ga.registerPlugin)("extendify-settings-enable-disable",{render:function(){return(0,Gt.jsx)(Gt.Fragment,{children:(0,Gt.jsxs)(va.PluginSidebarMoreMenuItem,{onClick:function(){var e=document.getElementById("extendify-util");(0,o.render)((0,Gt.jsx)(Na,{}),e)},icon:(0,Gt.jsx)(Ft,{icon:hn,size:24}),children:[" ",(0,Dt.__)("Extendify","extendify")]})})}}),[{register:function(){var e=(0,Nr.dispatch)("core/notices").createNotice,t=K.getState().incrementImports;window.addEventListener("extendify::template-inserted",(function(n){e("info",(0,Dt.__)("Page layout added"),{isDismissible:!0,type:"snackbar"}),setTimeout((function(){var e;t(),pr(null===(e=n.detail)||void 0===e?void 0:e.template)}),0)}))}},{register:function(){var e=this;window.addEventListener("extendify::softerror-encountered",(function(t){e[(0,_.camelCase)(t.detail.type)](t.detail)}))},versionOutdated:function(e){(0,o.render)((0,Gt.jsx)(Gr,{title:e.data.title,requiredPlugins:["extendify"],message:e.data.message,buttonLabel:e.data.buttonLabel,forceOpen:!0}),document.getElementById("extendify-root"))}}].forEach((function(e){return e.register()})),window._wpLoadBlockEditor&&window.wp.domReady((function(){var e=Object.assign(document.createElement("div"),{id:"extendify-root"});if(document.body.append(e),(0,o.render)((0,Gt.jsx)(ca,{}),e),e.parentNode.insertBefore(Object.assign(document.createElement("div"),{id:"extendify-util"}),e.nextSibling),Sr.getState().importOnLoad){var t=Sr.getState().wantedTemplate;setTimeout((function(){lo((0,r.rawHandler)({HTML:t.fields.code}),t)}),0)}Sr.setState({importOnLoad:!1,wantedTemplate:{}})}))},42:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var i=typeof n;if("string"===i||"number"===i)e.push(n);else if(Array.isArray(n)){if(n.length){var a=o.apply(null,n);a&&e.push(a)}}else if("object"===i)if(n.toString===Object.prototype.toString)for(var s in n)r.call(n,s)&&n[s]&&e.push(s);else e.push(n.toString())}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},12:(e,t,n)=>{"use strict";var r=n(185),o={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,i,a,s,l,c,u=!1;t||(t={}),n=t.debug||!1;try{if(a=r(),s=document.createRange(),l=document.getSelection(),(c=document.createElement("span")).textContent=e,c.style.all="unset",c.style.position="fixed",c.style.top=0,c.style.clip="rect(0, 0, 0, 0)",c.style.whiteSpace="pre",c.style.webkitUserSelect="text",c.style.MozUserSelect="text",c.style.msUserSelect="text",c.style.userSelect="text",c.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),void 0===r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=o[t.format]||o.default;window.clipboardData.setData(i,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(c),s.selectNodeContents(c),l.addRange(s),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(r){n&&console.error("unable to copy using execCommand: ",r),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(r){n&&console.error("unable to copy using clipboardData: ",r),n&&console.error("falling back to prompt"),i=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(s):l.removeAllRanges()),c&&document.body.removeChild(c),a()}return u}},716:()=>{},965:()=>{},525:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,i){for(var a,s,l=o(e),c=1;c<arguments.length;c++){for(var u in a=Object(arguments[c]))n.call(a,u)&&(l[u]=a[u]);if(t){s=t(a);for(var d=0;d<s.length;d++)r.call(a,s[d])&&(l[s[d]]=a[s[d]])}}return l}},61:e=>{var t,n,r=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===o||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:o}catch(e){t=o}try{n="function"==typeof clearTimeout?clearTimeout:i}catch(e){n=i}}();var s,l=[],c=!1,u=-1;function d(){c&&s&&(c=!1,s.length?l=s.concat(l):u=-1,l.length&&f())}function f(){if(!c){var e=a(d);c=!0;for(var t=l.length;t;){for(s=l,l=[];++u<t;)s&&s[u].run();u=-1,t=l.length}s=null,c=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===i||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function p(e,t){this.fun=e,this.array=t}function h(){}r.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new p(e,t)),1!==l.length||c||a(f)},p.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=h,r.addListener=h,r.once=h,r.off=h,r.removeListener=h,r.removeAllListeners=h,r.emit=h,r.prependListener=h,r.prependOnceListener=h,r.listeners=function(e){return[]},r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},218:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var r=i(n(363)),o=i(n(12));function i(e){return e&&e.__esModule?e:{default:e}}function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function d(e,t){return!t||"object"!==a(t)&&"function"!=typeof t?p(e):t}function f(e){return f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},f(e)}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(e,t)}function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var x=function(e){function t(){var e,n;c(this,t);for(var i=arguments.length,a=new Array(i),s=0;s<i;s++)a[s]=arguments[s];return m(p(n=d(this,(e=f(t)).call.apply(e,[this].concat(a)))),"onClick",(function(e){var t=n.props,i=t.text,a=t.onCopy,s=t.children,l=t.options,c=r.default.Children.only(s),u=(0,o.default)(i,l);a&&a(i,u),c&&c.props&&"function"==typeof c.props.onClick&&c.props.onClick(e)})),n}var n,i,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(t,e),n=t,i=[{key:"render",value:function(){var e=this.props,t=(e.text,e.onCopy,e.options,e.children),n=l(e,["text","onCopy","options","children"]),o=r.default.Children.only(t);return r.default.cloneElement(o,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(n,!0).forEach((function(t){m(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},n,{onClick:this.onClick}))}}],i&&u(n.prototype,i),a&&u(n,a),t}(r.default.PureComponent);t.CopyToClipboard=x,m(x,"defaultProps",{onCopy:void 0,options:void 0})},306:(e,t,n)=>{"use strict";var r=n(218).CopyToClipboard;r.CopyToClipboard=r,e.exports=r},426:(e,t,n)=>{"use strict";n(525);var r=n(363),o=60103;if(t.Fragment=60107,"function"==typeof Symbol&&Symbol.for){var i=Symbol.for;o=i("react.element"),t.Fragment=i("react.fragment")}var a=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s=Object.prototype.hasOwnProperty,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,i={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)s.call(t,r)&&!l.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===i[r]&&(i[r]=t[r]);return{$$typeof:o,type:e,key:c,ref:u,props:i,_owner:a.current}}t.jsx=c,t.jsxs=c},246:(e,t,n)=>{"use strict";e.exports=n(426)},248:e=>{var t=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var o=t&&t.prototype instanceof x?t:x,i=Object.create(o.prototype),a=new E(r||[]);return i._invoke=function(e,t,n){var r=d;return function(o,i){if(r===p)throw new Error("Generator is already running");if(r===h){if("throw"===o)throw i;return N()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var s=C(a,n);if(s){if(s===m)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===d)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var l=u(e,t,n);if("normal"===l.type){if(r=n.done?h:f,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=h,n.method="throw",n.arg=l.arg)}}}(e,n,a),i}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var d="suspendedStart",f="suspendedYield",p="executing",h="completed",m={};function x(){}function y(){}function v(){}var g={};l(g,i,(function(){return this}));var b=Object.getPrototypeOf,w=b&&b(b(A([])));w&&w!==n&&r.call(w,i)&&(g=w);var j=v.prototype=x.prototype=Object.create(g);function k(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(o,i,a,s){var l=u(e[o],e,i);if("throw"!==l.type){var c=l.arg,d=c.value;return d&&"object"==typeof d&&r.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(d).then((function(e){c.value=e,a(c)}),(function(e){return n("throw",e,a,s)}))}s(l.arg)}var o;this._invoke=function(e,r){function i(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(i,i):i()}}function C(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,C(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var o=u(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,m;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function _(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function O(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(_,this),this.reset(!0)}function A(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function n(){for(;++o<e.length;)if(r.call(e,o))return n.value=e[o],n.done=!1,n;return n.value=t,n.done=!0,n};return a.next=a}}return{next:N}}function N(){return{value:t,done:!0}}return y.prototype=v,l(j,"constructor",v),l(v,"constructor",y),y.displayName=l(v,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,l(e,s,"GeneratorFunction")),e.prototype=Object.create(j),e},e.awrap=function(e){return{__await:e}},k(S.prototype),l(S.prototype,a,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,r,o,i){void 0===i&&(i=Promise);var a=new S(c(t,n,r,o),i);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},k(j),l(j,s,"Generator"),l(j,i,(function(){return this})),l(j,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=A,E.prototype={constructor:E,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(O),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function o(r,o){return s.type="throw",s.arg=e,n.next=r,o&&(n.method="next",n.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(l&&c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;O(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:A(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}},185:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}},363:e=>{"use strict";e.exports=React}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var i=n[e]={exports:{}};return t[e](i,i.exports,r),i.exports}r.m=t,e=[],r.O=(t,n,o,i)=>{if(!n){var a=1/0;for(u=0;u<e.length;u++){for(var[n,o,i]=e[u],s=!0,l=0;l<n.length;l++)(!1&i||a>=i)&&Object.keys(r.O).every((e=>r.O[e](n[l])))?n.splice(l--,1):(s=!1,i<a&&(a=i));if(s){e.splice(u--,1);var c=o();void 0!==c&&(t=c)}}return t}i=i||0;for(var u=e.length;u>0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,o,i]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={245:0,506:0,551:0};r.O.j=t=>0===e[t];var t=(t,n)=>{var o,i,[a,s,l]=n,c=0;if(a.some((t=>0!==e[t]))){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(l)var u=l(r)}for(t&&t(n);c<a.length;c++)i=a[c],r.o(e,i)&&e[i]&&e[i][0](),e[a[c]]=0;return r.O(u)},n=self.webpackChunk=self.webpackChunk||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),r.O(void 0,[506,551],(()=>r(165))),r.O(void 0,[506,551],(()=>r(716)));var o=r.O(void 0,[506,551],(()=>r(965)));o=r.O(o)})();
readme.txt CHANGED
@@ -1,13 +1,17 @@
1
- === Extendify ===
2
  Contributors: extendify, richtabor, kbat82, clubkert, arturgrabo
3
- Tags: page builder, editor, patterns, drag-and-drop, blocks, visual editor, wysiwyg, design, website builder, landing page builder, front-end builder
4
  Requires at least: 5.4
5
  Tested up to: 5.9.0
6
- Stable tag: 0.4.0
7
  Requires PHP: 5.6
8
  License: GPLv2
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
 
 
 
 
 
11
  Extendify is the platform of site design and creation tools for people that want to build a beautiful WordPress website with a library of patterns and full page layouts for the Gutenberg block editor.
12
 
13
  Make a beautiful WordPress website easier and faster than ever before with Extendify's library of Gutenberg block patterns, templates, and page layouts for Gutenberg.
@@ -120,6 +124,11 @@ Nope! Extendify imports lightweight block-based content that is served directly
120
 
121
  == Changelog ==
122
 
 
 
 
 
 
123
  = 0.4.0 - 2022-02-08 =
124
  - Enhance layout view with autoscroll
125
  - Improve modal layout design consistency
1
+ === Extendify — Gutenberg Patterns and Templates ===
2
  Contributors: extendify, richtabor, kbat82, clubkert, arturgrabo
3
+ Tags: templates, patterns, layouts, blocks, gutenberg
4
  Requires at least: 5.4
5
  Tested up to: 5.9.0
6
+ Stable tag: 0.5.0
7
  Requires PHP: 5.6
8
  License: GPLv2
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
 
11
+ The best WordPress templates, pattern, and layout library with 1,000+ designs built for the Gutenberg block editor.
12
+
13
+ == Description ==
14
+
15
  Extendify is the platform of site design and creation tools for people that want to build a beautiful WordPress website with a library of patterns and full page layouts for the Gutenberg block editor.
16
 
17
  Make a beautiful WordPress website easier and faster than ever before with Extendify's library of Gutenberg block patterns, templates, and page layouts for Gutenberg.
124
 
125
  == Changelog ==
126
 
127
+ = 0.5.0 - 2022-02-22 =
128
+ - Add support for inverted style patterns
129
+ - Improve library loading time
130
+ - Add pattern library variants to open the library
131
+
132
  = 0.4.0 - 2022-02-08 =
133
  - Enhance layout view with autoscroll
134
  - Improve modal layout design consistency
routes/api.php CHANGED
@@ -31,6 +31,7 @@ use Extendify\Library\Controllers\TemplateController;
31
 
32
  ApiRouter::get('/user', [UserController::class, 'show']);
33
  ApiRouter::post('/user', [UserController::class, 'store']);
 
34
  ApiRouter::get('/user-meta', [UserController::class, 'meta']);
35
  ApiRouter::get('/max-free-imports', [UserController::class, 'maxImports']);
36
 
31
 
32
  ApiRouter::get('/user', [UserController::class, 'show']);
33
  ApiRouter::post('/user', [UserController::class, 'store']);
34
+ ApiRouter::post('/clear-user', [UserController::class, 'delete']);
35
  ApiRouter::get('/user-meta', [UserController::class, 'meta']);
36
  ApiRouter::get('/max-free-imports', [UserController::class, 'maxImports']);
37
 
src/ExtendifyLibrary.js CHANGED
@@ -1,37 +1,44 @@
1
- import { useEffect, useCallback, useState } from '@wordpress/element'
2
- import { useGlobalStore } from './state/GlobalState'
3
- import { useUserStore } from './state/User'
4
- import { useTemplatesStore } from './state/Templates'
5
- import MainWindow from './pages/MainWindow'
6
- import './utility-control'
7
- import useTaxonomies from './hooks/useTaxonomies'
8
- import { General as GeneralApi } from './api/General'
9
 
10
  export default function ExtendifyLibrary({ show = false }) {
11
  const open = useGlobalStore((state) => state.open)
 
12
  const setOpen = useGlobalStore((state) => state.setOpen)
13
- const [ready, setReady] = useState(false)
14
  const showLibrary = useCallback(() => setOpen(true), [setOpen])
15
  const hideLibrary = useCallback(() => setOpen(false), [setOpen])
16
  const initTemplateData = useTemplatesStore(
17
  (state) => state.initTemplateData,
18
  )
 
19
 
20
  // When the uuid of the user comes back from the database, we can
21
  // assume that the state object is ready. This is important to check
22
  // as the library may be "open" when loaded, but not ready.
23
- const userStoreReady = useUserStore((state) => state.uuid.length > 0)
24
- const templatesStoreReady = useTemplatesStore(
25
  (state) => Object.keys(state.taxonomyDefaultState).length > 0,
26
  )
27
- useTaxonomies(open)
28
 
29
  useEffect(() => {
30
- if (userStoreReady && templatesStoreReady) {
 
 
 
 
 
 
 
31
  initTemplateData()
32
  setReady(true)
33
  }
34
- }, [userStoreReady, templatesStoreReady, initTemplateData])
35
 
36
  useEffect(() => {
37
  show && setOpen(true)
@@ -55,8 +62,5 @@ export default function ExtendifyLibrary({ show = false }) {
55
  }
56
  }, [hideLibrary, showLibrary])
57
 
58
- if (!ready) {
59
- return null
60
- }
61
  return <MainWindow />
62
  }
1
+ import { useEffect, useCallback } from '@wordpress/element'
2
+ import { General as GeneralApi } from '@extendify/api/General'
3
+ import MainWindow from '@extendify/pages/MainWindow'
4
+ import { useGlobalStore } from '@extendify/state/GlobalState'
5
+ import { useTemplatesStore } from '@extendify/state/Templates'
6
+ import { useUserStore } from '@extendify/state/User'
7
+ import '@extendify/utility-control'
8
+ import { useTaxonomyStore } from './state/Taxonomies'
9
 
10
  export default function ExtendifyLibrary({ show = false }) {
11
  const open = useGlobalStore((state) => state.open)
12
+ const setReady = useGlobalStore((state) => state.setReady)
13
  const setOpen = useGlobalStore((state) => state.setOpen)
 
14
  const showLibrary = useCallback(() => setOpen(true), [setOpen])
15
  const hideLibrary = useCallback(() => setOpen(false), [setOpen])
16
  const initTemplateData = useTemplatesStore(
17
  (state) => state.initTemplateData,
18
  )
19
+ const fetchTaxonomies = useTaxonomyStore((state) => state.fetchTaxonomies)
20
 
21
  // When the uuid of the user comes back from the database, we can
22
  // assume that the state object is ready. This is important to check
23
  // as the library may be "open" when loaded, but not ready.
24
+ const userHasHydrated = useUserStore((state) => state._hasHydrated)
25
+ const taxonomiesReady = useTemplatesStore(
26
  (state) => Object.keys(state.taxonomyDefaultState).length > 0,
27
  )
 
28
 
29
  useEffect(() => {
30
+ if (!open) return
31
+ fetchTaxonomies().then(() => {
32
+ useTemplatesStore.getState().setupDefaultTaxonomies()
33
+ })
34
+ }, [open, fetchTaxonomies])
35
+
36
+ useEffect(() => {
37
+ if (userHasHydrated && taxonomiesReady) {
38
  initTemplateData()
39
  setReady(true)
40
  }
41
+ }, [userHasHydrated, taxonomiesReady, initTemplateData, setReady])
42
 
43
  useEffect(() => {
44
  show && setOpen(true)
62
  }
63
  }, [hideLibrary, showLibrary])
64
 
 
 
 
65
  return <MainWindow />
66
  }
src/api/General.js CHANGED
@@ -1,4 +1,5 @@
1
- import { useUserStore } from '../state/User'
 
2
  import { Axios as api } from './axios'
3
 
4
  export const General = {
@@ -6,8 +7,12 @@ export const General = {
6
  return api.get('meta-data')
7
  },
8
  ping(action) {
 
 
9
  return api.post('simple-ping', {
10
  action,
 
 
11
  sdk_partner: useUserStore.getState()?.sdkPartner ?? '',
12
  })
13
  },
1
+ import { useTemplatesStore } from '@extendify/state/Templates'
2
+ import { useUserStore } from '@extendify/state/User'
3
  import { Axios as api } from './axios'
4
 
5
  export const General = {
7
  return api.get('meta-data')
8
  },
9
  ping(action) {
10
+ const categories =
11
+ useTemplatesStore.getState()?.searchParams?.taxonomies ?? []
12
  return api.post('simple-ping', {
13
  action,
14
+ categories,
15
+ group: useUserStore.getState()?.group ?? 0,
16
  sdk_partner: useUserStore.getState()?.sdkPartner ?? '',
17
  })
18
  },
src/api/Templates.js CHANGED
@@ -1,5 +1,6 @@
 
 
1
  import { Axios as api } from './axios'
2
- import { useUserStore } from '../state/User'
3
 
4
  let count = 0
5
 
@@ -22,7 +23,8 @@ export const Templates = {
22
  offset: '',
23
  initial: count === 1,
24
  request_count: count,
25
- sdk_partner: useUserStore.getState()?.sdkPartner ?? '',
 
26
  },
27
  options,
28
  )
@@ -31,23 +33,33 @@ export const Templates = {
31
 
32
  // TODO: Refactor this later to combine the following three
33
  maybeImport(template) {
 
 
34
  return api.post(`templates/${template.id}`, {
35
  template_id: template?.id,
 
36
  maybe_import: true,
37
  type: template.fields?.type,
 
 
38
  pageSize: '1',
39
  template_name: template.fields?.title,
40
  })
41
  },
42
  import(template) {
 
 
43
  return api.post(`templates/${template.id}`, {
44
  template_id: template.id,
 
45
  imported: true,
46
  basePattern:
47
  template.fields?.basePattern ??
48
  template.fields?.baseLayout ??
49
  '',
50
  type: template.fields.type,
 
 
51
  pageSize: '1',
52
  template_name: template.fields?.title,
53
  })
1
+ import { useTemplatesStore } from '@extendify/state/Templates'
2
+ import { useUserStore } from '@extendify/state/User'
3
  import { Axios as api } from './axios'
 
4
 
5
  let count = 0
6
 
23
  offset: '',
24
  initial: count === 1,
25
  request_count: count,
26
+ group: useUserStore.getState()?.group ?? 0,
27
+ sdk_partner: useUserStore.getState().sdkPartner ?? '',
28
  },
29
  options,
30
  )
33
 
34
  // TODO: Refactor this later to combine the following three
35
  maybeImport(template) {
36
+ const categories =
37
+ useTemplatesStore.getState()?.searchParams?.taxonomies ?? []
38
  return api.post(`templates/${template.id}`, {
39
  template_id: template?.id,
40
+ categories,
41
  maybe_import: true,
42
  type: template.fields?.type,
43
+ sdk_partner: useUserStore.getState().sdkPartner ?? '',
44
+ group: useUserStore.getState()?.group ?? 0,
45
  pageSize: '1',
46
  template_name: template.fields?.title,
47
  })
48
  },
49
  import(template) {
50
+ const categories =
51
+ useTemplatesStore.getState()?.searchParams?.taxonomies ?? []
52
  return api.post(`templates/${template.id}`, {
53
  template_id: template.id,
54
+ categories,
55
  imported: true,
56
  basePattern:
57
  template.fields?.basePattern ??
58
  template.fields?.baseLayout ??
59
  '',
60
  type: template.fields.type,
61
+ sdk_partner: useUserStore.getState().sdkPartner ?? '',
62
+ group: useUserStore.getState()?.group ?? 0,
63
  pageSize: '1',
64
  template_name: template.fields?.title,
65
  })
src/api/User.js CHANGED
@@ -1,8 +1,18 @@
1
  import { Axios as api } from './axios'
2
 
3
  export const User = {
4
- getData() {
5
- return api.get('user')
 
 
 
 
 
 
 
 
 
 
6
  },
7
  getMeta(key) {
8
  return api.get('user-meta', {
@@ -39,6 +49,9 @@ export const User = {
39
  },
40
  })
41
  },
 
 
 
42
  registerMailingList(email) {
43
  const formData = new FormData()
44
  formData.append('email', email)
1
  import { Axios as api } from './axios'
2
 
3
  export const User = {
4
+ async getData() {
5
+ // Zustand changed their persist middleware to bind to the store
6
+ // so api was undefined here. That's why using fetch for this one request.
7
+ const data = await fetch(`${window.extendifyData.root}/user`, {
8
+ method: 'GET',
9
+ headers: {
10
+ 'X-WP-Nonce': window.extendifyData.nonce,
11
+ 'X-Requested-With': 'XMLHttpRequest',
12
+ 'X-Extendify': true,
13
+ },
14
+ })
15
+ return await data.json()
16
  },
17
  getMeta(key) {
18
  return api.get('user-meta', {
49
  },
50
  })
51
  },
52
+ deleteData() {
53
+ return api.post('clear-user')
54
+ },
55
  registerMailingList(email) {
56
  const formData = new FormData()
57
  formData.append('email', email)
src/api/axios.js CHANGED
@@ -1,5 +1,5 @@
1
  import axios from 'axios'
2
- import { useUserStore } from '../state/User'
3
 
4
  const Axios = axios.create({
5
  baseURL: window.extendifyData.root,
@@ -32,8 +32,9 @@ function addDefaults(request) {
32
  : userState.remainingImports()
33
  if (request.data) {
34
  request.data.remaining_imports = remainingImports
35
- request.data.entry_point = useUserStore.getState().entryPoint
36
- request.data.total_imports = useUserStore.getState().imports
 
37
  }
38
  return request
39
  }
1
  import axios from 'axios'
2
+ import { useUserStore } from '@extendify/state/User'
3
 
4
  const Axios = axios.create({
5
  baseURL: window.extendifyData.root,
32
  : userState.remainingImports()
33
  if (request.data) {
34
  request.data.remaining_imports = remainingImports
35
+ request.data.entry_point = userState.entryPoint
36
+ request.data.total_imports = userState.imports
37
+ request.data.participating_tests = userState.activeTestGroups()
38
  }
39
  return request
40
  }
src/app.css CHANGED
@@ -17,19 +17,19 @@
17
  border: 0 solid #e5e7eb;
18
  }
19
  .extendify .button-focus {
20
- @apply focus:ring-wp focus:ring-wp-theme-500 outline-none focus:shadow-none;
21
  }
22
  .extendify select.button-focus,
23
  .extendify input.button-focus {
24
- @apply focus:border-transparent focus:outline-none focus:shadow-none;
25
  }
26
 
27
  div.extendify button.extendify-skip-to-sr-link:focus {
28
- @apply fixed z-high top-0 bg-white p-4;
29
  }
30
 
31
  .button-extendify-main {
32
- @apply bg-extendify-main button-focus cursor-pointer transition duration-200 p-1.5 px-3 text-white hover:text-white no-underline hover:bg-extendify-main-dark active:bg-gray-900 active:text-white focus:text-white whitespace-nowrap rounded text-base;
33
  }
34
  #extendify-search-input:focus ~ svg,
35
  #extendify-search-input:not(:placeholder-shown) ~ svg {
@@ -128,7 +128,7 @@ div.extendify button.extendify-skip-to-sr-link:focus {
128
  .components-panel__body.ext-type-control
129
  .components-panel__body-title
130
  .components-button {
131
- @apply m-0 border-b-0 text-extendify-gray py-2 uppercase font-medium text-xss;
132
  }
133
 
134
  .components-panel__body.ext-type-control
@@ -154,7 +154,7 @@ div.extendify button.extendify-skip-to-sr-link:focus {
154
  .is-template--inactive::before,
155
  .is-template--in-review::before {
156
  content: "";
157
- @apply absolute w-full h-full top-0 left-0 bottom-0 right-0 z-40 border-solid border-8 border-extendify-secondary;
158
  }
159
 
160
  .is-template--inactive::before {
@@ -169,11 +169,11 @@ div.extendify button.extendify-skip-to-sr-link:focus {
169
  }
170
  .extendify-tooltip-default:not(.is-without-arrow) .components-popover__content {
171
  min-width: 250px;
172
- @apply border-transparent bg-gray-900 text-white p-4;
173
  }
174
  .extendify-bottom-arrow::after {
175
  content: "";
176
  bottom: -15px;
177
- @apply border-8 border-transparent w-0 h-0 inline-block absolute transform -translate-y-px;
178
  border-top-color: #1e1e1e !important;
179
  }
17
  border: 0 solid #e5e7eb;
18
  }
19
  .extendify .button-focus {
20
+ @apply outline-none focus:shadow-none focus:ring-wp focus:ring-wp-theme-500;
21
  }
22
  .extendify select.button-focus,
23
  .extendify input.button-focus {
24
+ @apply focus:outline-none focus:border-transparent focus:shadow-none;
25
  }
26
 
27
  div.extendify button.extendify-skip-to-sr-link:focus {
28
+ @apply fixed top-0 z-high bg-white p-4;
29
  }
30
 
31
  .button-extendify-main {
32
+ @apply button-focus cursor-pointer whitespace-nowrap rounded bg-extendify-main p-1.5 px-3 text-base text-white no-underline transition duration-200 hover:bg-extendify-main-dark hover:text-white focus:text-white active:bg-gray-900 active:text-white;
33
  }
34
  #extendify-search-input:focus ~ svg,
35
  #extendify-search-input:not(:placeholder-shown) ~ svg {
128
  .components-panel__body.ext-type-control
129
  .components-panel__body-title
130
  .components-button {
131
+ @apply m-0 border-b-0 py-2 text-xss font-medium uppercase text-extendify-gray;
132
  }
133
 
134
  .components-panel__body.ext-type-control
154
  .is-template--inactive::before,
155
  .is-template--in-review::before {
156
  content: "";
157
+ @apply absolute top-0 left-0 bottom-0 right-0 z-40 h-full w-full border-8 border-solid border-extendify-secondary;
158
  }
159
 
160
  .is-template--inactive::before {
169
  }
170
  .extendify-tooltip-default:not(.is-without-arrow) .components-popover__content {
171
  min-width: 250px;
172
+ @apply border-transparent bg-gray-900 p-4 text-white;
173
  }
174
  .extendify-bottom-arrow::after {
175
  content: "";
176
  bottom: -15px;
177
+ @apply absolute inline-block h-0 w-0 -translate-y-px transform border-8 border-transparent;
178
  border-top-color: #1e1e1e !important;
179
  }
src/app.js CHANGED
@@ -1,11 +1,11 @@
1
- import ExtendifyLibrary from './ExtendifyLibrary'
2
- import { render } from '@wordpress/element'
3
- import { useWantedTemplateStore } from './state/Importing'
4
- import { injectTemplateBlocks } from './util/templateInjection'
5
  import { rawHandler } from '@wordpress/blocks'
6
- import './buttons'
7
- import './listeners'
8
- import './blocks/blocks'
 
 
 
 
9
 
10
  window._wpLoadBlockEditor &&
11
  window.wp.domReady(() => {
 
 
 
 
1
  import { rawHandler } from '@wordpress/blocks'
2
+ import { render } from '@wordpress/element'
3
+ import ExtendifyLibrary from '@extendify/ExtendifyLibrary'
4
+ import '@extendify/blocks/blocks'
5
+ import '@extendify/buttons'
6
+ import '@extendify/listeners'
7
+ import { useWantedTemplateStore } from '@extendify/state/Importing'
8
+ import { injectTemplateBlocks } from '@extendify/util/templateInjection'
9
 
10
  window._wpLoadBlockEditor &&
11
  window.wp.domReady(() => {
src/blocks/block-category.js ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { registerBlockCollection } from '@wordpress/blocks'
5
+ import { Icon } from '@wordpress/components'
6
+ import { brandBlockIcon } from '@extendify/components/icons'
7
+
8
+ /**
9
+ * Function to register a block collection for our block(s).
10
+ */
11
+ registerBlockCollection('extendify', {
12
+ title: 'Extendify',
13
+ icon: <Icon icon={brandBlockIcon} />,
14
+ })
src/blocks/blocks.js CHANGED
@@ -1 +1,2 @@
 
1
  import './library/block.js'
1
+ import './block-category.js'
2
  import './library/block.js'
src/blocks/library/block.js CHANGED
@@ -1,26 +1,118 @@
1
- import { __, sprintf } from '@wordpress/i18n'
2
  import { registerBlockType } from '@wordpress/blocks'
3
  import { useDispatch } from '@wordpress/data'
4
  import { useEffect } from '@wordpress/element'
5
- import { brandBlockIcon } from '../../components/icons'
6
- import { setModalVisibility } from '../../util/general'
 
 
 
 
 
 
 
 
 
 
7
  import metadata from './block.json'
8
 
9
  export const openModal = (source) => setModalVisibility(source, 'open')
10
 
11
  registerBlockType(metadata, {
12
  icon: brandBlockIcon,
 
13
  example: {
14
  attributes: {
15
  preview: window.extendifyData.asset_path + '/preview.png',
16
  },
17
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  edit: function Edit({ clientId, attributes }) {
19
  const { removeBlock } = useDispatch('core/block-editor')
20
  useEffect(() => {
21
  if (attributes.preview) {
22
  return
23
  }
 
 
 
24
  openModal('library-block')
25
  removeBlock(clientId)
26
  }, [clientId, attributes, removeBlock])
@@ -36,3 +128,13 @@ registerBlockType(metadata, {
36
  )
37
  },
38
  })
 
 
 
 
 
 
 
 
 
 
 
1
  import { registerBlockType } from '@wordpress/blocks'
2
  import { useDispatch } from '@wordpress/data'
3
  import { useEffect } from '@wordpress/element'
4
+ import { __, _x, sprintf } from '@wordpress/i18n'
5
+ import {
6
+ Icon,
7
+ gallery,
8
+ postAuthor,
9
+ mapMarker,
10
+ button,
11
+ cover,
12
+ overlayText,
13
+ } from '@wordpress/icons'
14
+ import { brandBlockIcon } from '@extendify/components/icons'
15
+ import { setModalVisibility } from '@extendify/util/general'
16
  import metadata from './block.json'
17
 
18
  export const openModal = (source) => setModalVisibility(source, 'open')
19
 
20
  registerBlockType(metadata, {
21
  icon: brandBlockIcon,
22
+ category: 'extendify',
23
  example: {
24
  attributes: {
25
  preview: window.extendifyData.asset_path + '/preview.png',
26
  },
27
  },
28
+ variations: [
29
+ {
30
+ name: 'gallery',
31
+ icon: <Icon icon={gallery} />,
32
+ category: 'extendify',
33
+ attributes: { search: 'gallery' },
34
+ title: __('Gallery Patterns', 'extendify'),
35
+ description: __('Add gallery patterns and layouts.', 'extendify'),
36
+ keywords: [__('slideshow', 'extendify'), __('images', 'extendify')],
37
+ },
38
+ {
39
+ name: 'team',
40
+ icon: <Icon icon={postAuthor} />,
41
+ category: 'extendify',
42
+ attributes: { search: 'team' },
43
+ title: __('Team Patterns', 'extendify'),
44
+ description: __('Add team patterns and layouts.', 'extendify'),
45
+ keywords: [
46
+ _x('crew', 'As in team', 'extendify'),
47
+ __('colleagues', 'extendify'),
48
+ __('members', 'extendify'),
49
+ ],
50
+ },
51
+ {
52
+ name: 'hero',
53
+ icon: <Icon icon={cover} />,
54
+ category: 'extendify',
55
+ attributes: { search: 'hero' },
56
+ title: _x(
57
+ 'Hero Patterns',
58
+ 'Hero being a hero/top section of a webpage',
59
+ 'extendify',
60
+ ),
61
+ description: __('Add hero patterns and layouts.', 'extendify'),
62
+ keywords: [__('heading', 'extendify'), __('headline', 'extendify')],
63
+ },
64
+ {
65
+ name: 'text',
66
+ icon: <Icon icon={overlayText} />,
67
+ category: 'extendify',
68
+ attributes: { search: 'text' },
69
+ title: _x(
70
+ 'Text Patterns',
71
+ 'Relating to patterns that feature text only',
72
+ 'extendify',
73
+ ),
74
+ description: __('Add text patterns and layouts.', 'extendify'),
75
+ keywords: [__('simple', 'extendify'), __('paragraph', 'extendify')],
76
+ },
77
+ {
78
+ name: 'about',
79
+ icon: <Icon icon={mapMarker} />,
80
+ category: 'extendify',
81
+ attributes: { search: 'about' },
82
+ title: _x(
83
+ 'About Page Patterns',
84
+ 'Add patterns relating to an about us page',
85
+ 'extendify',
86
+ ),
87
+ description: __('About patterns and layouts.', 'extendify'),
88
+ keywords: [__('who we are', 'extendify'), __('team', 'extendify')],
89
+ },
90
+ {
91
+ name: 'call-to-action',
92
+ icon: <Icon icon={button} />,
93
+ category: 'extendify',
94
+ attributes: { search: 'call-to-action' },
95
+ title: __('Call to Action Patterns', 'extendify'),
96
+ description: __(
97
+ 'Add call to action patterns and layouts.',
98
+ 'extendify',
99
+ ),
100
+ keywords: [
101
+ _x('cta', 'Initialism for call to action', 'extendify'),
102
+ __('callout', 'extendify'),
103
+ __('buttons', 'extendify'),
104
+ ],
105
+ },
106
+ ],
107
  edit: function Edit({ clientId, attributes }) {
108
  const { removeBlock } = useDispatch('core/block-editor')
109
  useEffect(() => {
110
  if (attributes.preview) {
111
  return
112
  }
113
+ if (attributes.search) {
114
+ addTermToSearchParams(attributes.search)
115
+ }
116
  openModal('library-block')
117
  removeBlock(clientId)
118
  }, [clientId, attributes, removeBlock])
128
  )
129
  },
130
  })
131
+
132
+ const addTermToSearchParams = (term) => {
133
+ const params = new URLSearchParams(window.location.search)
134
+ params.append('ext-patternType', term)
135
+ window.history.replaceState(
136
+ null,
137
+ null,
138
+ window.location.pathname + '?' + params.toString(),
139
+ )
140
+ }
src/blocks/library/block.json CHANGED
@@ -3,13 +3,15 @@
3
  "apiVersion": 2,
4
  "name": "extendify/library",
5
  "title": "Pattern Library",
6
- "category": "design",
7
  "description": "Add block patterns and full page layouts with the Extendify Library.",
8
- "keywords": ["pattern", "extendify", "library", "template", "layouts"],
9
  "textdomain": "extendify",
10
  "attributes": {
11
  "preview": {
12
  "type": "string"
 
 
 
13
  }
14
  }
15
  }
3
  "apiVersion": 2,
4
  "name": "extendify/library",
5
  "title": "Pattern Library",
 
6
  "description": "Add block patterns and full page layouts with the Extendify Library.",
7
+ "keywords": ["template", "layouts"],
8
  "textdomain": "extendify",
9
  "attributes": {
10
  "preview": {
11
  "type": "string"
12
+ },
13
+ "search": {
14
+ "type": "string"
15
  }
16
  }
17
  }
src/buttons.js CHANGED
@@ -1,11 +1,11 @@
1
- import { __ } from '@wordpress/i18n'
2
- import { render } from '@wordpress/element'
3
- import { registerPlugin } from '@wordpress/plugins'
4
  import { PluginSidebarMoreMenuItem } from '@wordpress/edit-post'
 
 
5
  import { Icon } from '@wordpress/icons'
6
- import { brandMark } from './components/icons/'
7
- import LibraryAccessModal from './components/LibraryAccessModal'
8
- import { CtaButton, MainButton } from './components/MainButtons'
 
9
 
10
  const userState = window.extendifyData?.user?.state
11
  const isAdmin = () => window.extendifyData.user === null || userState?.isAdmin
 
 
 
1
  import { PluginSidebarMoreMenuItem } from '@wordpress/edit-post'
2
+ import { render } from '@wordpress/element'
3
+ import { __ } from '@wordpress/i18n'
4
  import { Icon } from '@wordpress/icons'
5
+ import { registerPlugin } from '@wordpress/plugins'
6
+ import LibraryAccessModal from '@extendify/components/LibraryAccessModal'
7
+ import { CtaButton, MainButton } from '@extendify/components/MainButtons'
8
+ import { brandMark } from '@extendify/components/icons/'
9
 
10
  const userState = window.extendifyData?.user?.state
11
  const isAdmin = () => window.extendifyData.user === null || userState?.isAdmin
src/components/DevHelpers.js CHANGED
@@ -1,29 +1,34 @@
1
  import { useEffect, useState } from '@wordpress/element'
 
2
  import { CopyToClipboard } from 'react-copy-to-clipboard'
3
- import { __ } from '@wordpress/i18n'
4
 
5
  /** Overlay for pattern import button */
6
  export const DevButtonOverlay = ({ template }) => {
7
- const [idText, setIdText] = useState(template.id)
 
 
 
8
 
9
  useEffect(() => {
10
- if (idText === template.id) return
11
- setTimeout(() => setIdText(template.id), 1000)
12
- }, [idText, template.id])
 
 
13
 
14
  return (
15
- <div className="group-hover:opacity-90 opacity-0 flex space-x-2 items-center mb-2 ml-2 absolute bottom-0 left-0 transition duration-200 ease-in-out z-50">
16
  <CopyToClipboard
17
- text={template.id}
18
- onCopy={() => setIdText(__('Copied...', 'extendify'))}>
19
- <button className="bg-white border border-black p-2 rounded-md shadow-md cursor-pointer">
20
- {idText}
21
  </button>
22
  </CopyToClipboard>
23
  <a
24
  target="_blank"
25
- className="bg-white border font-semibold border-black p-2 rounded-md shadow-md no-underline text-black"
26
- href={`https://airtable.com/appn5PSl8wU6X70sG/tblviYevlV5fYAEH7/viwh0L1kHmXN7FIB9/${template.id}`}
27
  rel="noreferrer">
28
  {__('Edit', 'extendify')}
29
  </a>
1
  import { useEffect, useState } from '@wordpress/element'
2
+ import { __, sprintf } from '@wordpress/i18n'
3
  import { CopyToClipboard } from 'react-copy-to-clipboard'
 
4
 
5
  /** Overlay for pattern import button */
6
  export const DevButtonOverlay = ({ template }) => {
7
+ const basePatternId = template?.fields?.basePattern?.length
8
+ ? template?.fields?.basePattern[0]
9
+ : ''
10
+ const [idText, setIdText] = useState(basePatternId)
11
 
12
  useEffect(() => {
13
+ if (!basePatternId?.length || idText === basePatternId) return
14
+ setTimeout(() => setIdText(basePatternId), 1000)
15
+ }, [idText, basePatternId])
16
+
17
+ if (!basePatternId) return null
18
 
19
  return (
20
+ <div className="absolute bottom-0 left-0 z-50 mb-4 ml-4 flex items-center space-x-2 opacity-0 transition duration-100 group-hover:opacity-100 space-x-0.5">
21
  <CopyToClipboard
22
+ text={template?.fields?.basePattern}
23
+ onCopy={() => setIdText(__('Copied!', 'extendify'))}>
24
+ <button className="text-sm rounded-md border border-black bg-white py-1 px-2.5 font-medium text-black no-underline m-0 cursor-pointer">
25
+ {sprintf(__('Base: %s', 'extendify'), idText)}
26
  </button>
27
  </CopyToClipboard>
28
  <a
29
  target="_blank"
30
+ className="text-sm rounded-md border border-black bg-white py-1 px-2.5 font-medium text-black no-underline m-0"
31
+ href={template?.fields?.editURL}
32
  rel="noreferrer">
33
  {__('Edit', 'extendify')}
34
  </a>
src/components/ImportCounter.js CHANGED
@@ -1,24 +1,31 @@
1
- import classnames from 'classnames'
2
- import { Icon } from '@wordpress/icons'
3
- import { __, _n, sprintf } from '@wordpress/i18n'
4
  import { useEffect, memo, useRef } from '@wordpress/element'
5
- import { alert, download } from './icons/'
6
- import { useUserStore } from '../state/User'
7
- import { User as UserApi } from '../api/User'
 
 
 
 
8
  import { growthArrow } from './icons'
9
- import { safeHTML } from '@wordpress/dom'
10
 
11
  export const ImportCounter = memo(function ImportCounter() {
12
  const remainingImports = useUserStore((state) => state.remainingImports)
13
  const allowedImports = useUserStore((state) => state.allowedImports)
14
  const count = remainingImports()
15
  const status = count > 0 ? 'has-imports' : 'no-imports'
16
- const backgroundColor =
17
- status === 'has-imports'
18
- ? 'bg-extendify-main hover:bg-extendify-main-dark'
19
- : 'bg-extendify-alert'
20
- const icon = status === 'has-imports' ? download : alert
21
  const buttonRef = useRef()
 
 
 
 
 
 
 
 
 
 
22
 
23
  useEffect(() => {
24
  if (allowedImports < 1 || !allowedImports) {
@@ -48,14 +55,20 @@ export const ImportCounter = memo(function ImportCounter() {
48
  ref={buttonRef}
49
  rel="noreferrer"
50
  className={classnames(
51
- backgroundColor,
52
- 'hidden sm:flex w-full no-underline button-focus text-sm justify-between py-3 px-4 text-white rounded',
 
 
 
53
  )}
 
54
  href={`https://www.extendify.com/pricing/?utm_source=${encodeURIComponent(
55
  window.extendifyData.sdk_partner,
56
- )}&utm_medium=library&utm_campaign=import-counter&utm_content=get-more&utm_term=${status}`}>
57
- <span className="flex items-center space-x-2 no-underline text-xs">
58
- <Icon icon={icon} size={14} />
 
 
59
  <span>
60
  {sprintf(
61
  _n('%s Import', '%s Imports', count, 'extendify'),
@@ -63,21 +76,27 @@ export const ImportCounter = memo(function ImportCounter() {
63
  )}
64
  </span>
65
  </span>
66
- <span className="text-white text-sm no-underline font-medium outline-none flex items-center">
67
  {__('Get more', 'extendify')}
68
  <Icon icon={growthArrow} size={24} className="-mr-1.5" />
69
  </span>
70
  </a>
71
  <div
72
- className="invisible opacity-0 -translate-y-full absolute duration-300 delay-200 ease-in-out group-hover:-top-2.5 group-hover:opacity-100 group-hover:visible group-focus:-top-2.5 group-focus:opacity-100 group-focus:visible top-0 transform transition-all w-full extendify-bottom-arrow shadow-md"
73
  tabIndex="-1">
74
  <a
75
  href={`https://www.extendify.com/pricing/?utm_source=${encodeURIComponent(
76
  window.extendifyData.sdk_partner,
77
- )}&utm_medium=library&utm_campaign=import-counter-tooltip&utm_content=get-50-off&utm_term=${status}`}
 
 
78
  className="block bg-gray-900 text-white p-4 no-underline rounded bg-cover"
 
 
 
79
  style={{
80
  backgroundImage: `url(${window.extendifyData.asset_path}/logo-tips.png)`,
 
81
  }}>
82
  <span
83
  dangerouslySetInnerHTML={{
1
+ import { safeHTML } from '@wordpress/dom'
 
 
2
  import { useEffect, memo, useRef } from '@wordpress/element'
3
+ import { __, _n, sprintf } from '@wordpress/i18n'
4
+ import { Icon } from '@wordpress/icons'
5
+ import classnames from 'classnames'
6
+ import { General } from '@extendify/api/General'
7
+ import { User as UserApi } from '@extendify/api/User'
8
+ import { useTestGroup } from '@extendify/hooks/useTestGroup'
9
+ import { useUserStore } from '@extendify/state/User'
10
  import { growthArrow } from './icons'
11
+ import { alert, download } from './icons/'
12
 
13
  export const ImportCounter = memo(function ImportCounter() {
14
  const remainingImports = useUserStore((state) => state.remainingImports)
15
  const allowedImports = useUserStore((state) => state.allowedImports)
16
  const count = remainingImports()
17
  const status = count > 0 ? 'has-imports' : 'no-imports'
 
 
 
 
 
18
  const buttonRef = useRef()
19
+ const buttonColorGroup = useTestGroup('import-counter-color', ['A', 'B'])
20
+ const backgroundColor = () => {
21
+ switch (buttonColorGroup) {
22
+ // case 'A' is the default
23
+ case 'B':
24
+ return 'bg-wp-theme-500 hover:bg-wp-theme-600'
25
+ default:
26
+ return 'bg-extendify-main hover:bg-extendify-main-dark'
27
+ }
28
+ }
29
 
30
  useEffect(() => {
31
  if (allowedImports < 1 || !allowedImports) {
55
  ref={buttonRef}
56
  rel="noreferrer"
57
  className={classnames(
58
+ 'button-focus hidden w-full justify-between rounded py-3 px-4 text-sm text-white no-underline sm:flex',
59
+ {
60
+ [backgroundColor()]: count > 0,
61
+ 'bg-extendify-alert': !count,
62
+ },
63
  )}
64
+ onClick={async () => await General.ping('import-counter-click')}
65
  href={`https://www.extendify.com/pricing/?utm_source=${encodeURIComponent(
66
  window.extendifyData.sdk_partner,
67
+ )}&utm_medium=library&utm_campaign=import-counter&utm_content=get-more&utm_term=${status}&utm_group=${useUserStore
68
+ .getState()
69
+ .activeTestGroupsUtmValue()}`}>
70
+ <span className="flex items-center space-x-2 text-xs no-underline">
71
+ <Icon icon={count > 0 ? download : alert} size={14} />
72
  <span>
73
  {sprintf(
74
  _n('%s Import', '%s Imports', count, 'extendify'),
76
  )}
77
  </span>
78
  </span>
79
+ <span className="outline-none flex items-center text-sm font-medium text-white no-underline">
80
  {__('Get more', 'extendify')}
81
  <Icon icon={growthArrow} size={24} className="-mr-1.5" />
82
  </span>
83
  </a>
84
  <div
85
+ className="extendify-bottom-arrow invisible absolute top-0 w-full -translate-y-full transform opacity-0 shadow-md transition-all delay-200 duration-300 ease-in-out group-hover:visible group-hover:-top-2.5 group-hover:opacity-100 group-focus:visible group-focus:-top-2.5 group-focus:opacity-100"
86
  tabIndex="-1">
87
  <a
88
  href={`https://www.extendify.com/pricing/?utm_source=${encodeURIComponent(
89
  window.extendifyData.sdk_partner,
90
+ )}&utm_medium=library&utm_campaign=import-counter-tooltip&utm_content=get-50-off&utm_term=${status}&utm_group=${useUserStore
91
+ .getState()
92
+ .activeTestGroupsUtmValue()}`}
93
  className="block bg-gray-900 text-white p-4 no-underline rounded bg-cover"
94
+ onClick={async () =>
95
+ await General.ping('import-counter-tooltip-click')
96
+ }
97
  style={{
98
  backgroundImage: `url(${window.extendifyData.asset_path}/logo-tips.png)`,
99
+ backgroundSize: '100% 100%',
100
  }}>
101
  <span
102
  dangerouslySetInnerHTML={{
src/components/ImportTemplateBlock.js CHANGED
@@ -1,14 +1,14 @@
1
- import classNames from 'classnames'
2
- import { useEffect, useState, useRef, useMemo } from '@wordpress/element'
3
- import { __, sprintf } from '@wordpress/i18n'
4
  import { BlockPreview } from '@wordpress/block-editor'
5
  import { rawHandler } from '@wordpress/blocks'
6
- import { AuthorizationCheck, Middleware } from '../middleware'
7
- import { injectTemplateBlocks } from '../util/templateInjection'
8
- import { useUserStore } from '../state/User'
9
- import { useGlobalStore } from '../state/GlobalState'
10
- import { Templates as TemplatesApi } from '../api/Templates'
11
- import { useIsDevMode } from '../hooks/helpers'
 
 
 
12
  import { DevButtonOverlay } from './DevHelpers'
13
  import { NoImportModal } from './modals/NoImportModal'
14
  import { ProModal } from './modals/ProModal'
@@ -105,11 +105,15 @@ export function ImportTemplateBlock({ template, maxHeight }) {
105
  if (height) {
106
  rafId4 = window.requestAnimationFrame(
107
  () => {
108
- frame.style.height = height + 'px'
 
 
109
  },
110
  )
111
  const id = window.setTimeout(() => {
112
- frame.style.height = height + 'px'
 
 
113
  }, 2000)
114
  timeouts.push(id)
115
  }
@@ -161,7 +165,7 @@ export function ImportTemplateBlock({ template, maxHeight }) {
161
  }, [maxHeight])
162
 
163
  return (
164
- <div className="relative group">
165
  <div
166
  role="button"
167
  tabIndex="0"
@@ -170,7 +174,7 @@ export function ImportTemplateBlock({ template, maxHeight }) {
170
  template?.fields?.type,
171
  )}
172
  style={{ maxHeight }}
173
- className="m-0 cursor-pointer button-focus ease-in-out relative overflow-hidden bg-gray-100"
174
  onFocus={focusTrapInnerBlocks}
175
  onClick={importTemplate}
176
  onKeyDown={handleKeyDown}>
@@ -192,7 +196,7 @@ export function ImportTemplateBlock({ template, maxHeight }) {
192
  {/* Show dev info after the preview is loaded to trigger observer */}
193
  {devMode && loaded && <DevButtonOverlay template={template} />}
194
  {template?.fields?.pro && (
195
- <div className="bg-white bg-wp-theme-500 border font-medium border-none absolute z-20 top-4 right-4 py-1 px-2.5 rounded-md shadow-sm no-underline text-white pointer-events-none">
196
  {__('Pro', 'extendify')}
197
  </div>
198
  )}
 
 
 
1
  import { BlockPreview } from '@wordpress/block-editor'
2
  import { rawHandler } from '@wordpress/blocks'
3
+ import { useEffect, useState, useRef, useMemo } from '@wordpress/element'
4
+ import { __, sprintf } from '@wordpress/i18n'
5
+ import classNames from 'classnames'
6
+ import { Templates as TemplatesApi } from '@extendify/api/Templates'
7
+ import { useIsDevMode } from '@extendify/hooks/helpers'
8
+ import { AuthorizationCheck, Middleware } from '@extendify/middleware'
9
+ import { useGlobalStore } from '@extendify/state/GlobalState'
10
+ import { useUserStore } from '@extendify/state/User'
11
+ import { injectTemplateBlocks } from '@extendify/util/templateInjection'
12
  import { DevButtonOverlay } from './DevHelpers'
13
  import { NoImportModal } from './modals/NoImportModal'
14
  import { ProModal } from './modals/ProModal'
105
  if (height) {
106
  rafId4 = window.requestAnimationFrame(
107
  () => {
108
+ frame.contentWindow.dispatchEvent(
109
+ new Event('resize'),
110
+ )
111
  },
112
  )
113
  const id = window.setTimeout(() => {
114
+ frame.contentWindow.dispatchEvent(
115
+ new Event('resize'),
116
+ )
117
  }, 2000)
118
  timeouts.push(id)
119
  }
165
  }, [maxHeight])
166
 
167
  return (
168
+ <div className="group relative">
169
  <div
170
  role="button"
171
  tabIndex="0"
174
  template?.fields?.type,
175
  )}
176
  style={{ maxHeight }}
177
+ className="button-focus relative m-0 cursor-pointer overflow-hidden bg-gray-100 ease-in-out"
178
  onFocus={focusTrapInnerBlocks}
179
  onClick={importTemplate}
180
  onKeyDown={handleKeyDown}>
196
  {/* Show dev info after the preview is loaded to trigger observer */}
197
  {devMode && loaded && <DevButtonOverlay template={template} />}
198
  {template?.fields?.pro && (
199
+ <div className="pointer-events-none absolute top-4 right-4 z-20 rounded-md border border-none bg-white bg-wp-theme-500 py-1 px-2.5 font-medium text-white no-underline shadow-sm">
200
  {__('Pro', 'extendify')}
201
  </div>
202
  )}
src/components/LibraryAccessModal.js CHANGED
@@ -1,11 +1,10 @@
1
  import { Modal } from '@wordpress/components'
2
- import { unmountComponentAtNode, useState, useEffect } from '@wordpress/element'
3
  import { ToggleControl } from '@wordpress/components'
4
- import { __ } from '@wordpress/i18n'
5
  import { useSelect } from '@wordpress/data'
6
-
7
- import { useUserStore } from '../state/User'
8
- import { useSiteSettingsStore } from '../state/SiteSettings'
 
9
 
10
  const LibraryAccessModal = () => {
11
  const isAdmin = useSelect((select) =>
1
  import { Modal } from '@wordpress/components'
 
2
  import { ToggleControl } from '@wordpress/components'
 
3
  import { useSelect } from '@wordpress/data'
4
+ import { unmountComponentAtNode, useState, useEffect } from '@wordpress/element'
5
+ import { __ } from '@wordpress/i18n'
6
+ import { useSiteSettingsStore } from '@extendify/state/SiteSettings'
7
+ import { useUserStore } from '@extendify/state/User'
8
 
9
  const LibraryAccessModal = () => {
10
  const isAdmin = useSelect((select) =>
src/components/MainButtons.js CHANGED
@@ -1,12 +1,13 @@
1
  import { Button } from '@wordpress/components'
2
  import { useState, useEffect, useRef } from '@wordpress/element'
 
3
  import { Icon } from '@wordpress/icons'
 
 
 
 
 
4
  import { brandMark } from './icons'
5
- import { __ } from '@wordpress/i18n'
6
- import { openModal } from '../util/general'
7
- import { useUserStore } from '../state/User'
8
- import { useGlobalStore } from '../state/GlobalState'
9
- import { General } from '../api/General'
10
  import { NewImportsPopover } from './popovers/NewImportsPopover'
11
 
12
  export const MainButton = () => {
@@ -19,6 +20,7 @@ export const MainButton = () => {
19
  const hasPendingNewImports = useUserStore(
20
  (state) => state.allowedImports === 0,
21
  )
 
22
 
23
  const handleTooltipClose = async () => {
24
  await General.ping('mb-tooltip-closed')
@@ -30,6 +32,17 @@ export const MainButton = () => {
30
  allowedImports: -1,
31
  })
32
  }
 
 
 
 
 
 
 
 
 
 
 
33
 
34
  useEffect(() => {
35
  if (open) {
@@ -57,7 +70,7 @@ export const MainButton = () => {
57
  size={24}
58
  />
59
  }>
60
- {__('Library', 'extendify')}
61
  </Button>
62
 
63
  {showTooltip && (
1
  import { Button } from '@wordpress/components'
2
  import { useState, useEffect, useRef } from '@wordpress/element'
3
+ import { __ } from '@wordpress/i18n'
4
  import { Icon } from '@wordpress/icons'
5
+ import { General } from '@extendify/api/General'
6
+ import { useTestGroup } from '@extendify/hooks/useTestGroup'
7
+ import { useGlobalStore } from '@extendify/state/GlobalState'
8
+ import { useUserStore } from '@extendify/state/User'
9
+ import { openModal } from '@extendify/util/general'
10
  import { brandMark } from './icons'
 
 
 
 
 
11
  import { NewImportsPopover } from './popovers/NewImportsPopover'
12
 
13
  export const MainButton = () => {
20
  const hasPendingNewImports = useUserStore(
21
  (state) => state.allowedImports === 0,
22
  )
23
+ const buttonText = useTestGroup('main-button-text', ['A', 'B', 'C'])
24
 
25
  const handleTooltipClose = async () => {
26
  await General.ping('mb-tooltip-closed')
32
  allowedImports: -1,
33
  })
34
  }
35
+ const libraryButtonText = () => {
36
+ switch (buttonText) {
37
+ // case 'A' is the default
38
+ case 'B':
39
+ return __('Add section', 'extendify')
40
+ case 'C':
41
+ return __('Add template', 'extendify')
42
+ default:
43
+ return __('Library', 'extendify')
44
+ }
45
+ }
46
 
47
  useEffect(() => {
48
  if (open) {
70
  size={24}
71
  />
72
  }>
73
+ {libraryButtonText()}
74
  </Button>
75
 
76
  {showTooltip && (
src/components/SiteTypeSelector.js CHANGED
@@ -2,8 +2,8 @@ import { useEffect, useState, useRef, useMemo } from '@wordpress/element'
2
  import { __ } from '@wordpress/i18n'
3
  import classNames from 'classnames'
4
  import Fuse from 'fuse.js'
5
- import { useTemplatesStore } from '../state/Templates'
6
- import { useUserStore } from '../state/User'
7
 
8
  const searchMemo = new Map()
9
 
@@ -64,7 +64,7 @@ export const SiteTypeSelector = ({ value, setValue, terms }) => {
64
  }, [terms])
65
 
66
  useEffect(() => {
67
- if (!tempValue.length) setVisibleChoices(examples)
68
  }, [examples, tempValue])
69
 
70
  useEffect(() => {
@@ -75,10 +75,10 @@ export const SiteTypeSelector = ({ value, setValue, terms }) => {
75
  return (
76
  <>
77
  <span className="flex flex-col text-left">
78
- <span className="text-sm mb-1">
79
  {__('Site Type', 'extendify')}
80
  </span>
81
- <span className="font-light text-xs">{description}</span>
82
  </span>
83
  <span className="flex items-center space-x-4">
84
  {unknown && !expanded && (
@@ -107,8 +107,8 @@ export const SiteTypeSelector = ({ value, setValue, terms }) => {
107
  </svg>
108
  )}
109
  <svg
110
- className={classNames('text-gray-700 stroke-current', {
111
- 'transform rotate-90 -translate-x-1': expanded,
112
  })}
113
  aria-hidden="true"
114
  focusable="false"
@@ -133,7 +133,7 @@ export const SiteTypeSelector = ({ value, setValue, terms }) => {
133
  }
134
  return (
135
  <>
136
- <h4 className="mt-4 mb-2 text-left uppercase text-xss text-gray-700 font-medium">
137
  {title}
138
  </h4>
139
  <ul className="m-0">
@@ -149,7 +149,7 @@ export const SiteTypeSelector = ({ value, setValue, terms }) => {
149
  <button
150
  type="button"
151
  className={classNames(
152
- 'w-full text-left text-sm bg-transparent hover:text-wp-theme-500 m-0 pl-0 cursor-pointer',
153
  { 'text-gray-800': !current },
154
  )}
155
  onClick={() => {
@@ -167,11 +167,11 @@ export const SiteTypeSelector = ({ value, setValue, terms }) => {
167
  }
168
 
169
  return (
170
- <div className="w-full bg-extendify-transparent-black rounded">
171
  <button
172
  type="button"
173
  onClick={() => setExpanded((expanded) => !expanded)}
174
- className="flex items-center justify-between text-gray-800 button-focus w-full p-4 m-0 cursor-pointer bg-transparent hover:bg-extendify-transparent-black-100 rounded">
175
  {contentHeader(
176
  expanded
177
  ? __('What kind of site is this?', 'extendify')
@@ -179,7 +179,7 @@ export const SiteTypeSelector = ({ value, setValue, terms }) => {
179
  )}
180
  </button>
181
  {expanded && (
182
- <div className="p-4 pt-0 overflow-y-auto max-h-96">
183
  <div className="relative my-2">
184
  <label htmlFor="site-type-search" className="sr-only">
185
  {__('Search', 'extendify')}
@@ -192,11 +192,11 @@ export const SiteTypeSelector = ({ value, setValue, terms }) => {
192
  updateSearch(event.target.value)
193
  }
194
  type="text"
195
- className="button-focus bg-white border-0 m-0 p-3.5 py-2.5 rounded text-sm w-full"
196
  placeholder={__('Search', 'extendify')}
197
  />
198
  <svg
199
- className="absolute top-2 right-2 hidden lg:block pointer-events-none"
200
  xmlns="http://www.w3.org/2000/svg"
201
  viewBox="0 0 24 24"
202
  width="24"
@@ -207,7 +207,7 @@ export const SiteTypeSelector = ({ value, setValue, terms }) => {
207
  <path d="M13.5 6C10.5 6 8 8.5 8 11.5c0 1.1.3 2.1.9 3l-3.4 3 1 1.1 3.4-2.9c1 .9 2.2 1.4 3.6 1.4 3 0 5.5-2.5 5.5-5.5C19 8.5 16.5 6 13.5 6zm0 9.5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z"></path>
208
  </svg>
209
  </div>
210
- {tempValue.length > 1 && visibleChoices === examples && (
211
  <p className="text-left">
212
  {__('Nothing found...', 'extendify')}
213
  </p>
@@ -220,13 +220,13 @@ export const SiteTypeSelector = ({ value, setValue, terms }) => {
220
  )}
221
  </div>
222
  )}
223
- {visibleChoices.length > 0 && (
224
  <div>{choicesList(visibleChoices)}</div>
225
  )}
226
  {unknown ? null : (
227
  <button
228
  type="button"
229
- className="mt-4 w-full text-left text-sm bg-transparent hover:text-wp-theme-500 pl-0 cursor-pointer text-wp-theme-500"
230
  onClick={() => {
231
  setExpanded(false)
232
  setValue('Unknown')
2
  import { __ } from '@wordpress/i18n'
3
  import classNames from 'classnames'
4
  import Fuse from 'fuse.js'
5
+ import { useTemplatesStore } from '@extendify/state/Templates'
6
+ import { useUserStore } from '@extendify/state/User'
7
 
8
  const searchMemo = new Map()
9
 
64
  }, [terms])
65
 
66
  useEffect(() => {
67
+ if (!tempValue?.length) setVisibleChoices(examples)
68
  }, [examples, tempValue])
69
 
70
  useEffect(() => {
75
  return (
76
  <>
77
  <span className="flex flex-col text-left">
78
+ <span className="mb-1 text-sm">
79
  {__('Site Type', 'extendify')}
80
  </span>
81
+ <span className="text-xs font-light">{description}</span>
82
  </span>
83
  <span className="flex items-center space-x-4">
84
  {unknown && !expanded && (
107
  </svg>
108
  )}
109
  <svg
110
+ className={classNames('stroke-current text-gray-700', {
111
+ '-translate-x-1 rotate-90 transform': expanded,
112
  })}
113
  aria-hidden="true"
114
  focusable="false"
133
  }
134
  return (
135
  <>
136
+ <h4 className="mt-4 mb-2 text-left text-xss font-medium uppercase text-gray-700">
137
  {title}
138
  </h4>
139
  <ul className="m-0">
149
  <button
150
  type="button"
151
  className={classNames(
152
+ 'm-0 w-full cursor-pointer bg-transparent pl-0 text-left text-sm hover:text-wp-theme-500',
153
  { 'text-gray-800': !current },
154
  )}
155
  onClick={() => {
167
  }
168
 
169
  return (
170
+ <div className="w-full rounded bg-extendify-transparent-black">
171
  <button
172
  type="button"
173
  onClick={() => setExpanded((expanded) => !expanded)}
174
+ className="button-focus m-0 flex w-full cursor-pointer items-center justify-between rounded bg-transparent p-4 text-gray-800 hover:bg-extendify-transparent-black-100">
175
  {contentHeader(
176
  expanded
177
  ? __('What kind of site is this?', 'extendify')
179
  )}
180
  </button>
181
  {expanded && (
182
+ <div className="max-h-96 overflow-y-auto p-4 pt-0">
183
  <div className="relative my-2">
184
  <label htmlFor="site-type-search" className="sr-only">
185
  {__('Search', 'extendify')}
192
  updateSearch(event.target.value)
193
  }
194
  type="text"
195
+ className="button-focus m-0 w-full rounded border-0 bg-white p-3.5 py-2.5 text-sm"
196
  placeholder={__('Search', 'extendify')}
197
  />
198
  <svg
199
+ className="pointer-events-none absolute top-2 right-2 hidden lg:block"
200
  xmlns="http://www.w3.org/2000/svg"
201
  viewBox="0 0 24 24"
202
  width="24"
207
  <path d="M13.5 6C10.5 6 8 8.5 8 11.5c0 1.1.3 2.1.9 3l-3.4 3 1 1.1 3.4-2.9c1 .9 2.2 1.4 3.6 1.4 3 0 5.5-2.5 5.5-5.5C19 8.5 16.5 6 13.5 6zm0 9.5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z"></path>
208
  </svg>
209
  </div>
210
+ {tempValue?.length > 1 && visibleChoices === examples && (
211
  <p className="text-left">
212
  {__('Nothing found...', 'extendify')}
213
  </p>
220
  )}
221
  </div>
222
  )}
223
+ {visibleChoices?.length > 0 && (
224
  <div>{choicesList(visibleChoices)}</div>
225
  )}
226
  {unknown ? null : (
227
  <button
228
  type="button"
229
+ className="mt-4 w-full cursor-pointer bg-transparent pl-0 text-left text-sm text-wp-theme-500 hover:text-wp-theme-500"
230
  onClick={() => {
231
  setExpanded(false)
232
  setValue('Unknown')
src/components/TaxonomySection.js CHANGED
@@ -1,7 +1,7 @@
1
  import { PanelBody, PanelRow } from '@wordpress/components'
2
  import classNames from 'classnames'
3
- import { useTemplatesStore } from '../state/Templates'
4
- import { getTaxonomyName } from '../util/general'
5
 
6
  export default function TaxonomySection({ taxType, taxonomies }) {
7
  const updateTaxonomies = useTemplatesStore(
@@ -16,8 +16,8 @@ export default function TaxonomySection({ taxType, taxonomies }) {
16
  className="ext-type-control p-0"
17
  initialOpen={true}>
18
  <PanelRow>
19
- <div className="overflow-hidden w-full relative">
20
- <ul className="px-5 py-1 m-0 w-full">
21
  {taxonomies.map((tax) => {
22
  const isCurrentTax =
23
  searchParams?.taxonomies[taxType]?.slug ===
@@ -26,7 +26,7 @@ export default function TaxonomySection({ taxType, taxonomies }) {
26
  <li className="m-0 w-full" key={tax.slug}>
27
  <button
28
  type="button"
29
- className="text-left text-sm cursor-pointer w-full flex justify-between items-center px-0 py-2 m-0 leading-none bg-transparent hover:text-wp-theme-500 transition duration-200 button-focus"
30
  onClick={() =>
31
  updateTaxonomies({ [taxType]: tax })
32
  }>
1
  import { PanelBody, PanelRow } from '@wordpress/components'
2
  import classNames from 'classnames'
3
+ import { useTemplatesStore } from '@extendify/state/Templates'
4
+ import { getTaxonomyName } from '@extendify/util/general'
5
 
6
  export default function TaxonomySection({ taxType, taxonomies }) {
7
  const updateTaxonomies = useTemplatesStore(
16
  className="ext-type-control p-0"
17
  initialOpen={true}>
18
  <PanelRow>
19
+ <div className="relative w-full overflow-hidden">
20
+ <ul className="m-0 w-full px-5 py-1">
21
  {taxonomies.map((tax) => {
22
  const isCurrentTax =
23
  searchParams?.taxonomies[taxType]?.slug ===
26
  <li className="m-0 w-full" key={tax.slug}>
27
  <button
28
  type="button"
29
+ className="button-focus m-0 flex w-full cursor-pointer items-center justify-between bg-transparent px-0 py-2 text-left text-sm leading-none transition duration-200 hover:text-wp-theme-500"
30
  onClick={() =>
31
  updateTaxonomies({ [taxType]: tax })
32
  }>
src/components/TypeSelect.js CHANGED
@@ -1,7 +1,7 @@
1
  import { __ } from '@wordpress/i18n'
2
- import { useTemplatesStore } from '../state/Templates'
3
  import classNames from 'classnames'
4
- import { useGlobalStore } from '../state/GlobalState'
 
5
 
6
  export const TypeSelect = ({ className }) => {
7
  const updateType = useTemplatesStore((state) => state.updateType)
@@ -15,7 +15,7 @@ export const TypeSelect = ({ className }) => {
15
  <button
16
  type="button"
17
  className={classNames({
18
- 'cursor-pointer text-xs leading-none m-0 py-2.5 px-4 min-w-sm border rounded-tl-sm rounded-bl-sm border-black button-focus': true,
19
  'bg-gray-900 text-white': currentType === 'pattern',
20
  'bg-transparent text-black': currentType !== 'pattern',
21
  })}
@@ -25,7 +25,7 @@ export const TypeSelect = ({ className }) => {
25
  <button
26
  type="button"
27
  className={classNames({
28
- 'cursor-pointer text-xs leading-none m-0 py-2.5 px-4 min-w-sm items-center border rounded-tr-sm rounded-br-sm border-black outline-none -ml-px button-focus': true,
29
  'bg-gray-900 text-white': currentType === 'template',
30
  'bg-transparent text-black': currentType !== 'template',
31
  })}
1
  import { __ } from '@wordpress/i18n'
 
2
  import classNames from 'classnames'
3
+ import { useGlobalStore } from '@extendify/state/GlobalState'
4
+ import { useTemplatesStore } from '@extendify/state/Templates'
5
 
6
  export const TypeSelect = ({ className }) => {
7
  const updateType = useTemplatesStore((state) => state.updateType)
15
  <button
16
  type="button"
17
  className={classNames({
18
+ 'button-focus m-0 min-w-sm cursor-pointer rounded-tl-sm rounded-bl-sm border border-black py-2.5 px-4 text-xs leading-none': true,
19
  'bg-gray-900 text-white': currentType === 'pattern',
20
  'bg-transparent text-black': currentType !== 'pattern',
21
  })}
25
  <button
26
  type="button"
27
  className={classNames({
28
+ 'outline-none button-focus m-0 -ml-px min-w-sm cursor-pointer items-center rounded-tr-sm rounded-br-sm border border-black py-2.5 px-4 text-xs leading-none': true,
29
  'bg-gray-900 text-white': currentType === 'template',
30
  'bg-transparent text-black': currentType !== 'template',
31
  })}
src/components/modals/InstallStandaloneModal.js CHANGED
@@ -1,13 +1,13 @@
1
- import { useState, useRef } from '@wordpress/element'
2
  import { Icon } from '@wordpress/components'
 
 
3
  import { __, sprintf } from '@wordpress/i18n'
 
 
 
 
 
4
  import { SplitModal } from './SplitModal'
5
- import { download2, brandLogo } from '../icons'
6
- import { Plugins } from '../../api/Plugins'
7
- import { General } from '../../api/General'
8
- import { useUserStore } from '../../state/User'
9
- import { safeHTML } from '@wordpress/dom'
10
- import { useGlobalStore } from '../../state/GlobalState'
11
 
12
  export const InstallStandaloneModal = () => {
13
  const [text, setText] = useState(__('Install Extendify', 'extendify'))
@@ -48,7 +48,7 @@ export const InstallStandaloneModal = () => {
48
  return (
49
  <SplitModal ref={initialFocus} onClose={dismiss}>
50
  <div>
51
- <div className="flex space-x-2 items-center mb-10 text-extendify-black">
52
  {brandLogo}
53
  </div>
54
  <h3 className="text-xl">
@@ -77,23 +77,23 @@ export const InstallStandaloneModal = () => {
77
  onClick={installAndActivate}
78
  ref={initialFocus}
79
  disabled={disabled}
80
- className="button-extendify-main inline-flex mt-2 px-4 py-3 button-focus justify-center"
81
  style={{ minWidth: '225px' }}>
82
  {text}
83
  {success || (
84
  <Icon
85
  icon={download2}
86
  size={24}
87
- className="w-6 ml-2 flex-grow-0"
88
  />
89
  )}
90
  </button>
91
  </div>
92
  </div>
93
- <div className="w-full bg-extendify-secondary flex justify-end rounded-tr-sm rounded-br-sm">
94
  <img
95
  alt={__('Upgrade Now', 'extendify')}
96
- className="max-w-full rounded-tr-sm roudned-br-sm"
97
  src={
98
  window.extendifyData.asset_path +
99
  '/modal-extendify-purple.png'
 
1
  import { Icon } from '@wordpress/components'
2
+ import { safeHTML } from '@wordpress/dom'
3
+ import { useState, useRef } from '@wordpress/element'
4
  import { __, sprintf } from '@wordpress/i18n'
5
+ import { General } from '@extendify/api/General'
6
+ import { Plugins } from '@extendify/api/Plugins'
7
+ import { download2, brandLogo } from '@extendify/components/icons'
8
+ import { useGlobalStore } from '@extendify/state/GlobalState'
9
+ import { useUserStore } from '@extendify/state/User'
10
  import { SplitModal } from './SplitModal'
 
 
 
 
 
 
11
 
12
  export const InstallStandaloneModal = () => {
13
  const [text, setText] = useState(__('Install Extendify', 'extendify'))
48
  return (
49
  <SplitModal ref={initialFocus} onClose={dismiss}>
50
  <div>
51
+ <div className="mb-10 flex items-center space-x-2 text-extendify-black">
52
  {brandLogo}
53
  </div>
54
  <h3 className="text-xl">
77
  onClick={installAndActivate}
78
  ref={initialFocus}
79
  disabled={disabled}
80
+ className="button-extendify-main button-focus mt-2 inline-flex justify-center px-4 py-3"
81
  style={{ minWidth: '225px' }}>
82
  {text}
83
  {success || (
84
  <Icon
85
  icon={download2}
86
  size={24}
87
+ className="ml-2 w-6 flex-grow-0"
88
  />
89
  )}
90
  </button>
91
  </div>
92
  </div>
93
+ <div className="flex w-full justify-end rounded-tr-sm rounded-br-sm bg-extendify-secondary">
94
  <img
95
  alt={__('Upgrade Now', 'extendify')}
96
+ className="roudned-br-sm max-w-full rounded-tr-sm"
97
  src={
98
  window.extendifyData.asset_path +
99
  '/modal-extendify-purple.png'
src/components/modals/Modal.js CHANGED
@@ -1,9 +1,9 @@
1
- import { Dialog, Transition } from '@headlessui/react'
2
  import { Fragment, useRef, forwardRef } from '@wordpress/element'
3
  import { __ } from '@wordpress/i18n'
4
  import { Icon, close } from '@wordpress/icons'
5
- import { Button } from '@wordpress/components'
6
- import { useGlobalStore } from '../../state/GlobalState'
7
 
8
  export const Modal = forwardRef(
9
  ({ isOpen, heading, onClose, children }, initialFocus) => {
@@ -20,7 +20,7 @@ export const Modal = forwardRef(
20
  <Dialog
21
  initialFocus={initialFocus ?? focusBackup}
22
  onClose={onClose}>
23
- <div className="fixed z-high inset-0 flex">
24
  <Transition.Child
25
  as={Fragment}
26
  enter="ease-out duration-200 transition"
@@ -33,17 +33,17 @@ export const Modal = forwardRef(
33
  enter="ease-out duration-300 translate transform"
34
  enterFrom="opacity-0 translate-y-4 sm:translate-y-5"
35
  enterTo="opacity-100 translate-y-0">
36
- <div className="m-auto relative w-full">
37
- <div className="bg-white shadow-modal items-center justify-center m-auto max-w-lg relative rounded-sm w-full">
38
  {heading ? (
39
- <div className="border-b flex justify-between items-center leading-none pl-8 py-2 pr-3">
40
- <span className="text-base text-extendify-black whitespace-nowrap">
41
  {heading}
42
  </span>
43
  <CloseButton onClick={onClose} />
44
  </div>
45
  ) : (
46
- <div className="absolute block px-4 py-4 top-0 right-0 ">
47
  <CloseButton
48
  ref={focusBackup}
49
  onClick={onClose}
1
+ import { Button } from '@wordpress/components'
2
  import { Fragment, useRef, forwardRef } from '@wordpress/element'
3
  import { __ } from '@wordpress/i18n'
4
  import { Icon, close } from '@wordpress/icons'
5
+ import { Dialog, Transition } from '@headlessui/react'
6
+ import { useGlobalStore } from '@extendify/state/GlobalState'
7
 
8
  export const Modal = forwardRef(
9
  ({ isOpen, heading, onClose, children }, initialFocus) => {
20
  <Dialog
21
  initialFocus={initialFocus ?? focusBackup}
22
  onClose={onClose}>
23
+ <div className="fixed inset-0 z-high flex">
24
  <Transition.Child
25
  as={Fragment}
26
  enter="ease-out duration-200 transition"
33
  enter="ease-out duration-300 translate transform"
34
  enterFrom="opacity-0 translate-y-4 sm:translate-y-5"
35
  enterTo="opacity-100 translate-y-0">
36
+ <div className="relative m-auto w-full">
37
+ <div className="relative m-auto w-full max-w-lg items-center justify-center rounded-sm bg-white shadow-modal">
38
  {heading ? (
39
+ <div className="flex items-center justify-between border-b py-2 pl-6 pr-3 leading-none">
40
+ <span className="whitespace-nowrap text-base text-extendify-black">
41
  {heading}
42
  </span>
43
  <CloseButton onClick={onClose} />
44
  </div>
45
  ) : (
46
+ <div className="absolute top-0 right-0 block px-4 py-4 ">
47
  <CloseButton
48
  ref={focusBackup}
49
  onClick={onClose}
src/components/modals/NoImportModal.js CHANGED
@@ -1,9 +1,10 @@
1
  import { Icon } from '@wordpress/components'
2
  import { Button } from '@wordpress/components'
3
- import { __ } from '@wordpress/i18n'
4
  import { useRef } from '@wordpress/element'
5
- import { SplitModal } from './SplitModal'
6
- import SettingsModal from './SettingsModal'
 
 
7
  import {
8
  growthArrow,
9
  patterns,
@@ -13,7 +14,8 @@ import {
13
  brandLogo,
14
  diamond,
15
  } from '../icons'
16
- import { useGlobalStore } from '../../state/GlobalState'
 
17
 
18
  export const NoImportModal = () => {
19
  const pushModal = useGlobalStore((state) => state.pushModal)
@@ -24,11 +26,11 @@ export const NoImportModal = () => {
24
  ref={initialFocus}
25
  leftContainerBgColor="bg-white">
26
  <div>
27
- <div className="flex space-x-2 items-center mb-5 text-extendify-black">
28
  {brandLogo}
29
  </div>
30
 
31
- <h3 className="text-xl mt-0">
32
  {__("You're out of imports", 'extendify')}
33
  </h3>
34
  <p className="text-sm text-black">
@@ -41,24 +43,31 @@ export const NoImportModal = () => {
41
  <a
42
  target="_blank"
43
  ref={initialFocus}
44
- className="button-extendify-main inline-flex mt-2 px-4 py-3 button-focus justify-center"
45
  style={{ minWidth: '225px' }}
46
- href={`https://extendify.com/pricing/?utm_source=${window.extendifyData.sdk_partner}&utm_medium=library&utm_campaign=no-imports-modal&utm_content=get-unlimited-imports`}
 
 
 
 
 
 
 
47
  rel="noreferrer">
48
  {__('Get Unlimited Imports', 'extendify')}
49
  <Icon icon={growthArrow} size={24} className="-mr-1" />
50
  </a>
51
- <p className="text-sm text-extendify-gray mb-0 text-left">
52
  {__('Have an account?', 'extendify')}
53
  <Button
54
  onClick={() => pushModal(<SettingsModal />)}
55
- className="underline hover:no-underline text-sm text-extendify-gray pl-2">
56
  {__('Sign in', 'extendify')}
57
  </Button>
58
  </p>
59
  </div>
60
  </div>
61
- <div className="space-y-2 flex flex-col justify-center p-10 text-black h-full">
62
  <div className="flex items-center space-x-3">
63
  <Icon icon={patterns} size={24} />
64
  <span className="text-sm leading-none">
1
  import { Icon } from '@wordpress/components'
2
  import { Button } from '@wordpress/components'
 
3
  import { useRef } from '@wordpress/element'
4
+ import { __ } from '@wordpress/i18n'
5
+ import { General } from '@extendify/api/General'
6
+ import { useGlobalStore } from '@extendify/state/GlobalState'
7
+ import { useUserStore } from '@extendify/state/User'
8
  import {
9
  growthArrow,
10
  patterns,
14
  brandLogo,
15
  diamond,
16
  } from '../icons'
17
+ import { SplitModal } from './SplitModal'
18
+ import { SettingsModal } from './settings/SettingsModal'
19
 
20
  export const NoImportModal = () => {
21
  const pushModal = useGlobalStore((state) => state.pushModal)
26
  ref={initialFocus}
27
  leftContainerBgColor="bg-white">
28
  <div>
29
+ <div className="mb-5 flex items-center space-x-2 text-extendify-black">
30
  {brandLogo}
31
  </div>
32
 
33
+ <h3 className="mt-0 text-xl">
34
  {__("You're out of imports", 'extendify')}
35
  </h3>
36
  <p className="text-sm text-black">
43
  <a
44
  target="_blank"
45
  ref={initialFocus}
46
+ className="button-extendify-main button-focus mt-2 inline-flex justify-center px-4 py-3"
47
  style={{ minWidth: '225px' }}
48
+ href={`https://extendify.com/pricing/?utm_source=${
49
+ window.extendifyData.sdk_partner
50
+ }&utm_medium=library&utm_campaign=no-imports-modal&utm_content=get-unlimited-imports&utm_group=${useUserStore
51
+ .getState()
52
+ .activeTestGroupsUtmValue()}`}
53
+ onClick={async () =>
54
+ await General.ping('no-imports-modal-click')
55
+ }
56
  rel="noreferrer">
57
  {__('Get Unlimited Imports', 'extendify')}
58
  <Icon icon={growthArrow} size={24} className="-mr-1" />
59
  </a>
60
+ <p className="mb-0 text-left text-sm text-extendify-gray">
61
  {__('Have an account?', 'extendify')}
62
  <Button
63
  onClick={() => pushModal(<SettingsModal />)}
64
+ className="pl-2 text-sm text-extendify-gray underline hover:no-underline">
65
  {__('Sign in', 'extendify')}
66
  </Button>
67
  </p>
68
  </div>
69
  </div>
70
+ <div className="flex h-full flex-col justify-center space-y-2 p-10 text-black">
71
  <div className="flex items-center space-x-3">
72
  <Icon icon={patterns} size={24} />
73
  <span className="text-sm leading-none">
src/components/modals/ProModal.js CHANGED
@@ -1,18 +1,20 @@
1
  import { Icon } from '@wordpress/components'
2
  import { useRef } from '@wordpress/element'
3
  import { __ } from '@wordpress/i18n'
 
 
 
4
  import { SplitModal } from './SplitModal'
5
- import { growthArrow, brandLogo } from '../icons'
6
 
7
  export const ProModal = () => {
8
  const initialFocus = useRef(null)
9
  return (
10
  <SplitModal isOpen={true} invertedButtonColor={true} ref={initialFocus}>
11
  <div>
12
- <div className="flex space-x-2 items-center mb-5 text-extendify-black">
13
  {brandLogo}
14
  </div>
15
- <h3 className="text-xl mt-0">
16
  {__(
17
  'Get unlimited access to all our Pro patterns & layouts',
18
  'extendify',
@@ -28,16 +30,23 @@ export const ProModal = () => {
28
  <a
29
  target="_blank"
30
  ref={initialFocus}
31
- className="button-extendify-main inline-flex mt-2 px-4 py-3 button-focus justify-center"
32
  style={{ minWidth: '225px' }}
33
- href={`https://extendify.com/pricing/?utm_source=${window.extendifyData.sdk_partner}&utm_medium=library&utm_campaign=pro-modal&utm_content=upgrade-now`}
 
 
 
 
 
 
 
34
  rel="noreferrer">
35
  {__('Upgrade Now', 'extendify')}
36
  <Icon icon={growthArrow} size={24} className="-mr-1" />
37
  </a>
38
  </div>
39
  </div>
40
- <div className="w-full bg-black flex justify-endrounded-tr-sm rounded-br-sm">
41
  <img
42
  alt={__('Upgrade Now', 'extendify')}
43
  className="max-w-full rounded-tr-sm rounded-br-sm"
1
  import { Icon } from '@wordpress/components'
2
  import { useRef } from '@wordpress/element'
3
  import { __ } from '@wordpress/i18n'
4
+ import { General } from '@extendify/api/General'
5
+ import { growthArrow, brandLogo } from '@extendify/components/icons'
6
+ import { useUserStore } from '@extendify/state/User'
7
  import { SplitModal } from './SplitModal'
 
8
 
9
  export const ProModal = () => {
10
  const initialFocus = useRef(null)
11
  return (
12
  <SplitModal isOpen={true} invertedButtonColor={true} ref={initialFocus}>
13
  <div>
14
+ <div className="mb-5 flex items-center space-x-2 text-extendify-black">
15
  {brandLogo}
16
  </div>
17
+ <h3 className="mt-0 text-xl">
18
  {__(
19
  'Get unlimited access to all our Pro patterns & layouts',
20
  'extendify',
30
  <a
31
  target="_blank"
32
  ref={initialFocus}
33
+ className="button-extendify-main button-focus mt-2 inline-flex justify-center px-4 py-3"
34
  style={{ minWidth: '225px' }}
35
+ href={`https://extendify.com/pricing/?utm_source=${
36
+ window.extendifyData.sdk_partner
37
+ }&utm_medium=library&utm_campaign=pro-modal&utm_content=upgrade-now&utm_group=${useUserStore
38
+ .getState()
39
+ .activeTestGroupsUtmValue()}`}
40
+ onClick={async () =>
41
+ await General.ping('pro-modal-click')
42
+ }
43
  rel="noreferrer">
44
  {__('Upgrade Now', 'extendify')}
45
  <Icon icon={growthArrow} size={24} className="-mr-1" />
46
  </a>
47
  </div>
48
  </div>
49
+ <div className="justify-endrounded-tr-sm flex w-full rounded-br-sm bg-black">
50
  <img
51
  alt={__('Upgrade Now', 'extendify')}
52
  className="max-w-full rounded-tr-sm rounded-br-sm"
src/components/modals/SplitModal.js CHANGED
@@ -1,8 +1,8 @@
1
- import { Icon, close } from '@wordpress/icons'
2
  import { __ } from '@wordpress/i18n'
 
3
  import { Dialog, Transition } from '@headlessui/react'
4
- import { Fragment, forwardRef, useRef } from '@wordpress/element'
5
- import { useGlobalStore } from '../../state/GlobalState'
6
 
7
  export const SplitModal = forwardRef(
8
  (
@@ -29,7 +29,7 @@ export const SplitModal = forwardRef(
29
  className="extendify"
30
  initialFocus={initialFocus ?? focusBackup}
31
  onClose={onClose}>
32
- <div className="fixed z-high inset-0 flex">
33
  <Transition.Child
34
  as={Fragment}
35
  enter="ease-out duration-50 transition"
@@ -43,11 +43,11 @@ export const SplitModal = forwardRef(
43
  enterFrom="opacity-0 translate-y-4 sm:translate-y-5"
44
  enterTo="opacity-100 translate-y-0">
45
  <div className="m-auto">
46
- <div className="shadow-modal relative m-8 md:m-0 max-w-md rounded-sm md:flex justify-between md:max-w-2xl">
47
  <button
48
  onClick={onClose}
49
  ref={focusBackup}
50
- className="absolute bg-transparent block p-4 top-0 right-0 rounded-md cursor-pointer text-gray-700 opacity-30 hover:opacity-100"
51
  style={
52
  invertedButtonColor && {
53
  filter: 'invert(1)',
@@ -63,7 +63,7 @@ export const SplitModal = forwardRef(
63
  {children[0]}
64
  </div>
65
  <div
66
- className={`w-6/12 hidden md:block ${rightContainerBgColor}`}>
67
  {children[1]}
68
  </div>
69
  </div>
1
+ import { Fragment, forwardRef, useRef } from '@wordpress/element'
2
  import { __ } from '@wordpress/i18n'
3
+ import { Icon, close } from '@wordpress/icons'
4
  import { Dialog, Transition } from '@headlessui/react'
5
+ import { useGlobalStore } from '@extendify/state/GlobalState'
 
6
 
7
  export const SplitModal = forwardRef(
8
  (
29
  className="extendify"
30
  initialFocus={initialFocus ?? focusBackup}
31
  onClose={onClose}>
32
+ <div className="fixed inset-0 z-high flex">
33
  <Transition.Child
34
  as={Fragment}
35
  enter="ease-out duration-50 transition"
43
  enterFrom="opacity-0 translate-y-4 sm:translate-y-5"
44
  enterTo="opacity-100 translate-y-0">
45
  <div className="m-auto">
46
+ <div className="relative m-8 max-w-md justify-between rounded-sm shadow-modal md:m-0 md:flex md:max-w-2xl">
47
  <button
48
  onClick={onClose}
49
  ref={focusBackup}
50
+ className="absolute top-0 right-0 block cursor-pointer rounded-md bg-transparent p-4 text-gray-700 opacity-30 hover:opacity-100"
51
  style={
52
  invertedButtonColor && {
53
  filter: 'invert(1)',
63
  {children[0]}
64
  </div>
65
  <div
66
+ className={`hidden w-6/12 md:block ${rightContainerBgColor}`}>
67
  {children[1]}
68
  </div>
69
  </div>
src/components/modals/settings/DevSettings.js ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { Button } from '@wordpress/components'
2
+ import { useState } from '@wordpress/element'
3
+ import { useIsDevMode } from '@extendify/hooks/helpers'
4
+ import { useTaxonomyStore } from '@extendify/state/Taxonomies'
5
+ import { useTemplatesStore } from '@extendify/state/Templates'
6
+ import { useUserStore } from '@extendify/state/User'
7
+
8
+ export const DevSettings = () => {
9
+ const [processing, setProcessing] = useState(false)
10
+ const [canHydrate, setCanHydrate] = useState(false)
11
+ const devMode = useIsDevMode()
12
+
13
+ const handleReset = async () => {
14
+ if (processing) return
15
+ setProcessing(true)
16
+ if (canHydrate) {
17
+ setCanHydrate(false)
18
+ useUserStore.setState({
19
+ participatingTestsGroups: [],
20
+ })
21
+ await useUserStore.persist.rehydrate()
22
+ setProcessing(false)
23
+ return
24
+ }
25
+ useUserStore.persist.clearStorage()
26
+ await new Promise((resolve) => setTimeout(resolve, 1000))
27
+ setCanHydrate(true)
28
+ setProcessing(false)
29
+ }
30
+
31
+ const handleServerSwitch = async () => {
32
+ const params = new URLSearchParams(window.location.search)
33
+ params.delete('LOCALMODE', 1)
34
+ params[params.has('DEVMODE') || devMode ? 'delete' : 'append'](
35
+ 'DEVMODE',
36
+ 1,
37
+ )
38
+ window.history.replaceState(
39
+ null,
40
+ null,
41
+ window.location.pathname + '?' + params.toString(),
42
+ )
43
+ await new Promise((resolve) => setTimeout(resolve, 500))
44
+ window.dispatchEvent(new Event('popstate'))
45
+ useTemplatesStore.getState().resetTemplates()
46
+ useTemplatesStore.getState().updateSearchParams({})
47
+ useTaxonomyStore.persist.clearStorage()
48
+ useTaxonomyStore.persist.rehydrate()
49
+ useTemplatesStore.setState({
50
+ taxonomyDefaultState: {},
51
+ })
52
+ useTaxonomyStore
53
+ .getState()
54
+ .fetchTaxonomies()
55
+ .then(() => {
56
+ useTemplatesStore.getState().setupDefaultTaxonomies()
57
+ })
58
+ }
59
+
60
+ if (!window.extendifyData.devbuild) return null
61
+
62
+ return (
63
+ <section className="p-6 flex flex-col space-y-6 border-l-8 border-extendify-secondary">
64
+ <div>
65
+ <p className="text-base m-0 text-extendify-black">
66
+ Development Settings
67
+ </p>
68
+ <p className="text-sm italic m-0 text-gray-500">
69
+ Only available on dev builds
70
+ </p>
71
+ </div>
72
+ <div className="flex space-x-2">
73
+ <Button isSecondary onClick={handleServerSwitch}>
74
+ Switch to {devMode ? 'Live' : 'Dev'} Server
75
+ </Button>
76
+ <Button isSecondary onClick={handleReset}>
77
+ {processing
78
+ ? 'Processing...'
79
+ : canHydrate
80
+ ? 'OK! Press to rehydrate app'
81
+ : 'Reset User Data'}
82
+ </Button>
83
+ </div>
84
+ </section>
85
+ )
86
+ }
src/components/{LoginInterface.js → modals/settings/LoginInterface.js} RENAMED
@@ -1,14 +1,14 @@
1
- import { useUserStore } from '../state/User'
2
  import { useState, useEffect, useRef } from '@wordpress/element'
3
- import { User as UserApi } from '../api/User'
4
  import { __ } from '@wordpress/i18n'
5
- import classNames from 'classnames'
6
- import { Spinner, Button } from '@wordpress/components'
7
-
8
  import { Icon } from '@wordpress/icons'
9
- import { user } from './icons/'
10
- import { success as successIcon } from './icons/'
11
- import { useIsDevMode } from '../hooks/helpers'
 
 
 
 
12
 
13
  export default function LoginInterface({ actionCallback, initialFocus }) {
14
  const loggedIn = useUserStore((state) => state.apiKey.length)
@@ -53,7 +53,7 @@ export default function LoginInterface({ actionCallback, initialFocus }) {
53
  setFeedbackType('error')
54
  setIsWorking(false)
55
  setFeedback(
56
- message.length
57
  ? message
58
  : 'Error: Are you interacting with the wrong server?',
59
  )
@@ -63,7 +63,7 @@ export default function LoginInterface({ actionCallback, initialFocus }) {
63
  if (error || exception) {
64
  setFeedbackType('error')
65
  setIsWorking(false)
66
- setFeedback(error.length ? error : exception)
67
  return
68
  }
69
 
@@ -86,14 +86,14 @@ export default function LoginInterface({ actionCallback, initialFocus }) {
86
 
87
  if (success) {
88
  return (
89
- <section className="w-80 space-y-8 text-center pt-2 pb-4">
90
  <Icon icon={successIcon} size={148} />
91
- <p className="text-lg text-extendify-black text-center leading-extra-tight font-semibold">
92
  {__("You've signed in to Extendify", 'extendify')}
93
  </p>
94
  <Button
95
  ref={viewPatternsButtonRef}
96
- className="px-4 p-2 cursor-pointer text-center rounded bg-extendify-main text-white"
97
  onClick={actionCallback}>
98
  {__('View patterns', 'extendify')}
99
  </Button>
@@ -103,12 +103,12 @@ export default function LoginInterface({ actionCallback, initialFocus }) {
103
 
104
  if (loggedIn) {
105
  return (
106
- <section className="space-y-8 w-full pb-2">
107
- <p className="text-base text-extendify-black leading-extra-tight">
108
  {__('Account', 'extendify')}
109
  </p>
110
- <div className="flex justify-between items-center">
111
- <div className="flex items-center space-x-2 -ml-2">
112
  <Icon icon={user} size={48} />
113
  <p className="text-extendify-black">
114
  {email?.length
@@ -118,7 +118,7 @@ export default function LoginInterface({ actionCallback, initialFocus }) {
118
  </div>
119
  {devMode && (
120
  <Button
121
- className="px-4 py-3 cursor-pointer text-center rounded bg-extendify-main hover:bg-extendify-main-dark text-white"
122
  onClick={logout}>
123
  {__('Sign out', 'extendify')}
124
  </Button>
@@ -129,23 +129,34 @@ export default function LoginInterface({ actionCallback, initialFocus }) {
129
  }
130
 
131
  return (
132
- <section className="w-80 text-left space-y-8 pb-6">
133
  <div>
134
- <p className="text-lg text-extendify-black text-center leading-extra-tight font-semibold">
135
  {__('Sign in to Extendify', 'extendify')}
136
  </p>
137
- <p className="text-sm text-extendify-gray text-center space-x-1 leading-extra-tight">
138
  <span>{__("Don't have an account?", 'extendify')}</span>
139
  <a
140
- href={`https://extendify.com/pricing?utm_source=${window.extendifyData.sdk_partner}&utm_medium=library&utm_campaign=sign-in-form&utm_content=sign-up`}
 
 
 
 
141
  target="_blank"
 
 
 
 
 
142
  className="underline hover:no-underline text-extendify-gray"
143
  rel="noreferrer">
144
  {__('Sign up', 'extendify')}
145
  </a>
146
  </p>
147
  </div>
148
- <form onSubmit={confirmKey} className="space-y-2">
 
 
149
  <div className="flex items-center">
150
  <label className="sr-only" htmlFor="extendify-login-email">
151
  {__('Email address', 'extendify')}
@@ -154,8 +165,9 @@ export default function LoginInterface({ actionCallback, initialFocus }) {
154
  ref={initialFocus}
155
  id="extendify-login-email"
156
  name="extendify-login-email"
 
157
  type="email"
158
- className="border-2 p-2 w-full rounded"
159
  placeholder={__('Email address', 'extendify')}
160
  value={email.length ? email : ''}
161
  onChange={(event) => setEmail(event.target.value)}
@@ -171,17 +183,18 @@ export default function LoginInterface({ actionCallback, initialFocus }) {
171
  ref={licenseKeyRef}
172
  id="extendify-login-license"
173
  name="extendify-login-license"
 
174
  type="text"
175
- className="border-2 p-2 w-full rounded"
176
  placeholder={__('License key', 'extendify')}
177
  value={apiKey}
178
  onChange={(event) => setApiKey(event.target.value)}
179
  />
180
  </div>
181
- <div className="pt-2 flex justify-center">
182
  <button
183
  type="submit"
184
- className="relative p-2 py-3 w-72 max-w-full flex justify-center cursor-pointer text-center rounded bg-extendify-main hover:bg-extendify-main-dark text-base text-white ">
185
  <span>{__('Sign In', 'extendify')}</span>
186
  {isWorking && (
187
  <div className="absolute right-2.5">
@@ -203,11 +216,20 @@ export default function LoginInterface({ actionCallback, initialFocus }) {
203
  {feedback}
204
  </div>
205
  )}
206
- <div className="text-center pt-4">
207
  <a
208
  target="_blank"
209
  rel="noreferrer"
210
- href={`https://extendify.com/guides/sign-in?utm_source=${window.extendifyData.sdk_partner}&utm_medium=library&utm_campaign=sign-in-form&utm_content=need-help`}
 
 
 
 
 
 
 
 
 
211
  className="underline hover:no-underline text-sm text-extendify-gray">
212
  {__('Need Help?', 'extendify')}
213
  </a>
1
+ import { Spinner, Button } from '@wordpress/components'
2
  import { useState, useEffect, useRef } from '@wordpress/element'
 
3
  import { __ } from '@wordpress/i18n'
 
 
 
4
  import { Icon } from '@wordpress/icons'
5
+ import classNames from 'classnames'
6
+ import { General } from '@extendify/api/General'
7
+ import { User as UserApi } from '@extendify/api/User'
8
+ import { useIsDevMode } from '@extendify/hooks/helpers'
9
+ import { useUserStore } from '@extendify/state/User'
10
+ import { user } from '../../icons'
11
+ import { success as successIcon } from '../../icons'
12
 
13
  export default function LoginInterface({ actionCallback, initialFocus }) {
14
  const loggedIn = useUserStore((state) => state.apiKey.length)
53
  setFeedbackType('error')
54
  setIsWorking(false)
55
  setFeedback(
56
+ message?.length
57
  ? message
58
  : 'Error: Are you interacting with the wrong server?',
59
  )
63
  if (error || exception) {
64
  setFeedbackType('error')
65
  setIsWorking(false)
66
+ setFeedback(error?.length ? error : exception)
67
  return
68
  }
69
 
86
 
87
  if (success) {
88
  return (
89
+ <section className="space-y-6 p-6 text-center flex flex-col items-center">
90
  <Icon icon={successIcon} size={148} />
91
+ <p className="text-center text-lg font-semibold m-0 text-extendify-black">
92
  {__("You've signed in to Extendify", 'extendify')}
93
  </p>
94
  <Button
95
  ref={viewPatternsButtonRef}
96
+ className="cursor-pointer rounded bg-extendify-main p-2 px-4 text-center text-white"
97
  onClick={actionCallback}>
98
  {__('View patterns', 'extendify')}
99
  </Button>
103
 
104
  if (loggedIn) {
105
  return (
106
+ <section className="w-full space-y-6 p-6">
107
+ <p className="text-base m-0 text-extendify-black">
108
  {__('Account', 'extendify')}
109
  </p>
110
+ <div className="flex items-center justify-between">
111
+ <div className="-ml-2 flex items-center space-x-2">
112
  <Icon icon={user} size={48} />
113
  <p className="text-extendify-black">
114
  {email?.length
118
  </div>
119
  {devMode && (
120
  <Button
121
+ className="cursor-pointer rounded bg-extendify-main px-4 py-3 text-center text-white hover:bg-extendify-main-dark"
122
  onClick={logout}>
123
  {__('Sign out', 'extendify')}
124
  </Button>
129
  }
130
 
131
  return (
132
+ <section className="space-y-6 p-6 text-left">
133
  <div>
134
+ <p className="text-center text-lg font-semibold m-0 text-extendify-black">
135
  {__('Sign in to Extendify', 'extendify')}
136
  </p>
137
+ <p className="space-x-1 text-center text-sm m-0 text-extendify-gray">
138
  <span>{__("Don't have an account?", 'extendify')}</span>
139
  <a
140
+ href={`https://extendify.com/pricing?utm_source=${
141
+ window.extendifyData.sdk_partner
142
+ }&utm_medium=library&utm_campaign=sign-in-form&utm_content=sign-up&utm_group=${useUserStore
143
+ .getState()
144
+ .activeTestGroupsUtmValue()}`}
145
  target="_blank"
146
+ onClick={async () =>
147
+ await General.ping(
148
+ 'sign-up-link-from-login-modal-click',
149
+ )
150
+ }
151
  className="underline hover:no-underline text-extendify-gray"
152
  rel="noreferrer">
153
  {__('Sign up', 'extendify')}
154
  </a>
155
  </p>
156
  </div>
157
+ <form
158
+ onSubmit={confirmKey}
159
+ className="flex flex-col items-center justify-center space-y-2">
160
  <div className="flex items-center">
161
  <label className="sr-only" htmlFor="extendify-login-email">
162
  {__('Email address', 'extendify')}
165
  ref={initialFocus}
166
  id="extendify-login-email"
167
  name="extendify-login-email"
168
+ style={{ minWidth: '320px' }}
169
  type="email"
170
+ className="w-full rounded border-2 p-2"
171
  placeholder={__('Email address', 'extendify')}
172
  value={email.length ? email : ''}
173
  onChange={(event) => setEmail(event.target.value)}
183
  ref={licenseKeyRef}
184
  id="extendify-login-license"
185
  name="extendify-login-license"
186
+ style={{ minWidth: '320px' }}
187
  type="text"
188
+ className="w-full rounded border-2 p-2"
189
  placeholder={__('License key', 'extendify')}
190
  value={apiKey}
191
  onChange={(event) => setApiKey(event.target.value)}
192
  />
193
  </div>
194
+ <div className="flex justify-center pt-2">
195
  <button
196
  type="submit"
197
+ className="relative flex w-72 max-w-full cursor-pointer justify-center rounded bg-extendify-main p-2 py-3 text-center text-base text-white hover:bg-extendify-main-dark ">
198
  <span>{__('Sign In', 'extendify')}</span>
199
  {isWorking && (
200
  <div className="absolute right-2.5">
216
  {feedback}
217
  </div>
218
  )}
219
+ <div className="pt-4 text-center">
220
  <a
221
  target="_blank"
222
  rel="noreferrer"
223
+ href={`https://extendify.com/guides/sign-in?utm_source=${
224
+ window.extendifyData.sdk_partner
225
+ }&utm_medium=library&utm_campaign=sign-in-form&utm_content=need-help&utm_group=${useUserStore
226
+ .getState()
227
+ .activeTestGroupsUtmValue()}`}
228
+ onClick={async () =>
229
+ await General.ping(
230
+ 'need-help-link-from-login-modal-click',
231
+ )
232
+ }
233
  className="underline hover:no-underline text-sm text-extendify-gray">
234
  {__('Need Help?', 'extendify')}
235
  </a>
src/components/modals/{SettingsModal.js → settings/SettingsModal.js} RENAMED
@@ -1,10 +1,11 @@
1
  import { useRef } from '@wordpress/element'
2
  import { __ } from '@wordpress/i18n'
3
- import { useGlobalStore } from '../../state/GlobalState'
4
- import LoginInterface from '../LoginInterface'
5
- import { Modal } from './Modal'
 
6
 
7
- export default function SettingsModal() {
8
  const initialFocus = useRef(null)
9
  const actionCallback = useGlobalStore((state) => state.removeAllModals)
10
 
@@ -13,7 +14,8 @@ export default function SettingsModal() {
13
  heading={__('Settings', 'extendify')}
14
  isOpen={true}
15
  ref={initialFocus}>
16
- <div className="flex p-6 justify-center">
 
17
  <LoginInterface
18
  initialFocus={initialFocus}
19
  actionCallback={actionCallback}
1
  import { useRef } from '@wordpress/element'
2
  import { __ } from '@wordpress/i18n'
3
+ import { useGlobalStore } from '@extendify/state/GlobalState'
4
+ import { Modal } from '../Modal'
5
+ import { DevSettings } from './DevSettings'
6
+ import LoginInterface from './LoginInterface'
7
 
8
+ export const SettingsModal = () => {
9
  const initialFocus = useRef(null)
10
  const actionCallback = useGlobalStore((state) => state.removeAllModals)
11
 
14
  heading={__('Settings', 'extendify')}
15
  isOpen={true}
16
  ref={initialFocus}>
17
+ <div className="flex justify-center flex-col divide-y">
18
+ <DevSettings />
19
  <LoginInterface
20
  initialFocus={initialFocus}
21
  actionCallback={actionCallback}
src/components/notices/FeedbackNotice.js CHANGED
@@ -1,5 +1,7 @@
1
- import { __ } from '@wordpress/i18n'
2
  import { Button } from '@wordpress/components'
 
 
 
3
 
4
  export default function FeedbackNotice() {
5
  return (
@@ -13,11 +15,18 @@ export default function FeedbackNotice() {
13
  <span className="px-2 opacity-50" aria-hidden="true">
14
  &#124;
15
  </span>
16
- <div className="flex space-x-2 justify-center items-center">
17
  <Button
18
  variant="link"
19
- className="text-black underline hover:no-underline p-0 h-auto"
20
- href={`https://extendify.com/feedback/?utm_source=${window.extendifyData.sdk_partner}&utm_medium=library&utm_campaign=feedback-notice&utm_content=give-feedback`}
 
 
 
 
 
 
 
21
  target="_blank">
22
  {__('Give feedback', 'extendify')}
23
  </Button>
 
1
  import { Button } from '@wordpress/components'
2
+ import { __ } from '@wordpress/i18n'
3
+ import { General } from '@extendify/api/General'
4
+ import { useUserStore } from '@extendify/state/User'
5
 
6
  export default function FeedbackNotice() {
7
  return (
15
  <span className="px-2 opacity-50" aria-hidden="true">
16
  &#124;
17
  </span>
18
+ <div className="flex items-center justify-center space-x-2">
19
  <Button
20
  variant="link"
21
+ className="h-auto p-0 text-black underline hover:no-underline"
22
+ href={`https://extendify.com/feedback/?utm_source=${
23
+ window.extendifyData.sdk_partner
24
+ }&utm_medium=library&utm_campaign=feedback-notice&utm_content=give-feedback&utm_group=${useUserStore
25
+ .getState()
26
+ .activeTestGroupsUtmValue()}`}
27
+ onClick={async () =>
28
+ await General.ping('feedback-notice-click')
29
+ }
30
  target="_blank">
31
  {__('Give feedback', 'extendify')}
32
  </Button>
src/components/notices/FooterNotice.js CHANGED
@@ -1,23 +1,24 @@
 
 
1
  import { __ } from '@wordpress/i18n'
2
  import { Icon, closeSmall } from '@wordpress/icons'
3
- import { Button } from '@wordpress/components'
4
- import WelcomeNotice from './WelcomeNotice'
5
- import PromotionNotice from './PromotionNotice'
6
  import FeedbackNotice from './FeedbackNotice'
7
- import { useUserStore } from '../../state/User'
8
- import { useGlobalStore } from '../../state/GlobalState'
9
- import { useState, useEffect, useRef } from '@wordpress/element'
10
  import { InstallStandaloneNotice } from './InstallStandaloneNotice'
11
- import { General } from '../../api/General'
 
 
12
 
13
  const NoticesByPriority = {
14
- welcome: WelcomeNotice,
15
  promotion: PromotionNotice,
16
  feedback: FeedbackNotice,
17
  standalone: InstallStandaloneNotice,
18
  }
19
 
20
- export default function FooterNotice() {
21
  const [hasNotice, setHasNotice] = useState(null)
22
  const once = useRef(false)
23
  const promotionData = useGlobalStore(
@@ -90,12 +91,13 @@ export default function FooterNotice() {
90
  return null
91
  }
92
  return (
93
- <div className="bg-extendify-secondary hidden lg:flex space-x-4 py-3 px-5 justify-center items-center relative max-w-screen-4xl mx-auto">
 
94
  {/* Pass all data to all components and let them decide what they use */}
95
  <Notice promotionData={promotionData} />
96
  <div className="absolute right-1">
97
  <Button
98
- className="opacity-50 hover:opacity-100 focus:opacity-100 text-extendify-black"
99
  icon={<Icon icon={closeSmall} />}
100
  label={__('Dismiss this notice', 'extendify')}
101
  onClick={dismiss}
1
+ import { Button } from '@wordpress/components'
2
+ import { useState, useEffect, useRef } from '@wordpress/element'
3
  import { __ } from '@wordpress/i18n'
4
  import { Icon, closeSmall } from '@wordpress/icons'
5
+ import { General } from '@extendify/api/General'
6
+ import { useGlobalStore } from '@extendify/state/GlobalState'
7
+ import { useUserStore } from '@extendify/state/User'
8
  import FeedbackNotice from './FeedbackNotice'
 
 
 
9
  import { InstallStandaloneNotice } from './InstallStandaloneNotice'
10
+ import PromotionNotice from './PromotionNotice'
11
+
12
+ // import WelcomeNotice from './WelcomeNotice'
13
 
14
  const NoticesByPriority = {
15
+ // welcome: WelcomeNotice,
16
  promotion: PromotionNotice,
17
  feedback: FeedbackNotice,
18
  standalone: InstallStandaloneNotice,
19
  }
20
 
21
+ export default function FooterNotice({ className = '' }) {
22
  const [hasNotice, setHasNotice] = useState(null)
23
  const once = useRef(false)
24
  const promotionData = useGlobalStore(
91
  return null
92
  }
93
  return (
94
+ <div
95
+ className={`${className} relative mx-auto hidden max-w-screen-4xl items-center justify-center space-x-4 bg-extendify-secondary py-3 px-5 lg:flex`}>
96
  {/* Pass all data to all components and let them decide what they use */}
97
  <Notice promotionData={promotionData} />
98
  <div className="absolute right-1">
99
  <Button
100
+ className="text-extendify-black opacity-50 hover:opacity-100 focus:opacity-100"
101
  icon={<Icon icon={closeSmall} />}
102
  label={__('Dismiss this notice', 'extendify')}
103
  onClick={dismiss}
src/components/notices/InstallStandaloneNotice.js CHANGED
@@ -1,10 +1,10 @@
1
- import { __ } from '@wordpress/i18n'
2
  import { Button } from '@wordpress/components'
3
  import { useState } from '@wordpress/element'
4
- import { Plugins } from '../../api/Plugins'
5
  import classNames from 'classnames'
6
- import { General } from '../../api/General'
7
- import { useUserStore } from '../../state/User'
 
8
 
9
  export const InstallStandaloneNotice = () => {
10
  const [text, setText] = useState('')
@@ -40,11 +40,11 @@ export const InstallStandaloneNotice = () => {
40
  <span className="px-2 opacity-50" aria-hidden="true">
41
  &#124;
42
  </span>
43
- <div className="inline-flex space-x-2 items-center relative">
44
  <Button
45
  variant="link"
46
  className={classNames(
47
- 'text-black underline hover:no-underline p-0 h-auto',
48
  { 'opacity-0': text },
49
  )}
50
  onClick={installAndActivate}>
@@ -55,7 +55,7 @@ export const InstallStandaloneNotice = () => {
55
  <Button
56
  variant="link"
57
  disabled={true}
58
- className="text-black underline hover:no-underline p-0 h-auto absolute left-0 opacity-100"
59
  onClick={() => {}}>
60
  {text}
61
  </Button>
 
1
  import { Button } from '@wordpress/components'
2
  import { useState } from '@wordpress/element'
3
+ import { __ } from '@wordpress/i18n'
4
  import classNames from 'classnames'
5
+ import { General } from '@extendify/api/General'
6
+ import { Plugins } from '@extendify/api/Plugins'
7
+ import { useUserStore } from '@extendify/state/User'
8
 
9
  export const InstallStandaloneNotice = () => {
10
  const [text, setText] = useState('')
40
  <span className="px-2 opacity-50" aria-hidden="true">
41
  &#124;
42
  </span>
43
+ <div className="relative inline-flex items-center space-x-2">
44
  <Button
45
  variant="link"
46
  className={classNames(
47
+ 'h-auto p-0 text-black underline hover:no-underline',
48
  { 'opacity-0': text },
49
  )}
50
  onClick={installAndActivate}>
55
  <Button
56
  variant="link"
57
  disabled={true}
58
+ className="absolute left-0 h-auto p-0 text-black underline opacity-100 hover:no-underline"
59
  onClick={() => {}}>
60
  {text}
61
  </Button>
src/components/notices/PromotionNotice.js CHANGED
@@ -1,4 +1,6 @@
1
  import { Button } from '@wordpress/components'
 
 
2
 
3
  export default function PromotionNotice({ promotionData }) {
4
  return (
@@ -7,12 +9,19 @@ export default function PromotionNotice({ promotionData }) {
7
  <span className="px-2 opacity-50" aria-hidden="true">
8
  &#124;
9
  </span>
10
- <div className="flex space-x-2 justify-center items-center">
11
  {promotionData?.url && (
12
  <Button
13
  variant="link"
14
- className="text-black underline hover:no-underline p-0 h-auto"
15
- href={`${promotionData.url}&utm_source=${window.extendifyData.sdk_partner}`}
 
 
 
 
 
 
 
16
  target="_blank">
17
  {promotionData?.button_text}
18
  </Button>
1
  import { Button } from '@wordpress/components'
2
+ import { useUserStore } from '@extendify/state/User'
3
+ import { General } from '../../api/General'
4
 
5
  export default function PromotionNotice({ promotionData }) {
6
  return (
9
  <span className="px-2 opacity-50" aria-hidden="true">
10
  &#124;
11
  </span>
12
+ <div className="flex items-center justify-center space-x-2">
13
  {promotionData?.url && (
14
  <Button
15
  variant="link"
16
+ className="h-auto p-0 text-black underline hover:no-underline"
17
+ href={`${promotionData.url}&utm_source=${
18
+ window.extendifyData.sdk_partner
19
+ }&utm_group=${useUserStore
20
+ .getState()
21
+ .activeTestGroupsUtmValue()}`}
22
+ onClick={async () =>
23
+ await General.ping('promotion-notice-click')
24
+ }
25
  target="_blank">
26
  {promotionData?.button_text}
27
  </Button>
src/components/notices/WelcomeNotice.js CHANGED
@@ -1,7 +1,8 @@
1
- import { __ } from '@wordpress/i18n'
2
  import { Button } from '@wordpress/components'
3
- import { useUserStore } from '../../state/User'
4
- import { useGlobalStore } from '../../state/GlobalState'
 
 
5
 
6
  export default function WelcomeNotice() {
7
  const setOpen = useGlobalStore((state) => state.setOpen)
@@ -23,11 +24,18 @@ export default function WelcomeNotice() {
23
  <span className="px-2 opacity-50" aria-hidden="true">
24
  &#124;
25
  </span>
26
- <div className="flex space-x-2 justify-center items-center">
27
  <Button
28
  variant="link"
29
- className="text-black underline hover:no-underline p-0 h-auto"
30
- href={`https://extendify.com/welcome/?utm_source=${window.extendifyData.sdk_partner}&utm_medium=library&utm_campaign=welcome-notice&utm_content=tell-me-more`}
 
 
 
 
 
 
 
31
  target="_blank">
32
  {__('Tell me more', 'extendify')}
33
  </Button>
@@ -38,7 +46,7 @@ export default function WelcomeNotice() {
38
  </span>
39
  <Button
40
  variant="link"
41
- className="text-black underline hover:no-underline p-0 h-auto"
42
  onClick={disableLibrary}>
43
  {__('Turn off the library', 'extendify')}
44
  </Button>
 
1
  import { Button } from '@wordpress/components'
2
+ import { __ } from '@wordpress/i18n'
3
+ import { General } from '@extendify/api/General'
4
+ import { useGlobalStore } from '@extendify/state/GlobalState'
5
+ import { useUserStore } from '@extendify/state/User'
6
 
7
  export default function WelcomeNotice() {
8
  const setOpen = useGlobalStore((state) => state.setOpen)
24
  <span className="px-2 opacity-50" aria-hidden="true">
25
  &#124;
26
  </span>
27
+ <div className="flex items-center justify-center space-x-2">
28
  <Button
29
  variant="link"
30
+ className="h-auto p-0 text-black underline hover:no-underline"
31
+ href={`https://extendify.com/welcome/?utm_source=${
32
+ window.extendifyData.sdk_partner
33
+ }&utm_medium=library&utm_campaign=welcome-notice&utm_content=tell-me-more&utm_group=${useUserStore
34
+ .getState()
35
+ .activeTestGroupsUtmValue()}`}
36
+ onClick={async () =>
37
+ await General.ping('welcome-notice-tell-me-more-click')
38
+ }
39
  target="_blank">
40
  {__('Tell me more', 'extendify')}
41
  </Button>
46
  </span>
47
  <Button
48
  variant="link"
49
+ className="h-auto p-0 text-black underline hover:no-underline"
50
  onClick={disableLibrary}>
51
  {__('Turn off the library', 'extendify')}
52
  </Button>
src/components/popovers/NewImportsPopover.js CHANGED
@@ -1,7 +1,7 @@
1
  import { Button, Popover } from '@wordpress/components'
2
- import { Icon, close } from '@wordpress/icons'
3
- import { __, sprintf } from '@wordpress/i18n'
4
  import { safeHTML } from '@wordpress/dom'
 
 
5
 
6
  export const NewImportsPopover = ({
7
  anchorRef,
1
  import { Button, Popover } from '@wordpress/components'
 
 
2
  import { safeHTML } from '@wordpress/dom'
3
+ import { __, sprintf } from '@wordpress/i18n'
4
+ import { Icon, close } from '@wordpress/icons'
5
 
6
  export const NewImportsPopover = ({
7
  anchorRef,
src/hooks/helpers.js CHANGED
@@ -12,11 +12,15 @@ export function useIsMounted() {
12
 
13
  export const useIsDevMode = () => {
14
  const [devMode, setDevMode] = useState(false)
15
- const handle = () => {
16
- setDevMode(window.location.search.indexOf('DEVMODE') > -1)
 
 
 
17
  }
18
  useEffect(() => {
19
- setDevMode(window.location.search.indexOf('DEVMODE') > -1)
 
20
  window.addEventListener('popstate', handle)
21
  return () => {
22
  window.removeEventListener('popstate', handle)
12
 
13
  export const useIsDevMode = () => {
14
  const [devMode, setDevMode] = useState(false)
15
+ const check = () => {
16
+ return (
17
+ window.location.search.indexOf('DEVMODE') > -1 ||
18
+ window.location.search.indexOf('LOCALMODE') > -1
19
+ )
20
  }
21
  useEffect(() => {
22
+ const handle = () => setDevMode(check())
23
+ handle()
24
  window.addEventListener('popstate', handle)
25
  return () => {
26
  window.removeEventListener('popstate', handle)
src/hooks/useModal.js CHANGED
@@ -1,7 +1,7 @@
1
  import { useEffect, useState } from '@wordpress/element'
2
- import { InstallStandaloneModal } from '../components/modals/InstallStandaloneModal'
3
- import { useGlobalStore } from '../state/GlobalState'
4
- import { useUserStore } from '../state/User'
5
 
6
  /** Return any pending modals and check if any need to show */
7
  export const useModal = () => {
@@ -14,8 +14,8 @@ export const useModal = () => {
14
  useEffect(
15
  () =>
16
  useGlobalStore.subscribe(
17
- (value) => setModal(value?.length > 0 ? value[0] : null),
18
  (state) => state.modals,
 
19
  ),
20
  [],
21
  )
1
  import { useEffect, useState } from '@wordpress/element'
2
+ import { InstallStandaloneModal } from '@extendify/components/modals/InstallStandaloneModal'
3
+ import { useGlobalStore } from '@extendify/state/GlobalState'
4
+ import { useUserStore } from '@extendify/state/User'
5
 
6
  /** Return any pending modals and check if any need to show */
7
  export const useModal = () => {
14
  useEffect(
15
  () =>
16
  useGlobalStore.subscribe(
 
17
  (state) => state.modals,
18
+ (value) => setModal(value?.length > 0 ? value[0] : null),
19
  ),
20
  [],
21
  )
src/hooks/useTaxonomies.js DELETED
@@ -1,27 +0,0 @@
1
- import { useEffect, useCallback } from '@wordpress/element'
2
- import { Taxonomies as TaxonomiesApi } from '../api/Taxonomies'
3
- import { useTaxonomyStore } from '../state/Taxonomies'
4
- import { useTemplatesStore } from '../state/Templates'
5
-
6
- export default function useTaxonomies(fetchImmediately = false) {
7
- const setupDefaultTaxonomies = useTemplatesStore(
8
- (state) => state.setupDefaultTaxonomies,
9
- )
10
- const setTaxonomies = useTaxonomyStore((state) => state.setTaxonomies)
11
- const fetchTaxonomies = useCallback(async () => {
12
- let tax = await TaxonomiesApi.get()
13
- tax = Object.keys(tax).reduce((taxFiltered, key) => {
14
- taxFiltered[key] = tax[key]
15
- return taxFiltered
16
- }, {})
17
- if (!Object.keys(tax)?.length) {
18
- return
19
- }
20
- setTaxonomies(tax)
21
- setupDefaultTaxonomies()
22
- }, [setTaxonomies, setupDefaultTaxonomies])
23
-
24
- useEffect(() => {
25
- fetchImmediately && fetchTaxonomies()
26
- }, [fetchTaxonomies, fetchImmediately])
27
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/hooks/useTestGroup.js ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { useState, useLayoutEffect } from '@wordpress/element'
2
+ import { useUserStore } from '@extendify/state/User'
3
+
4
+ export const useTestGroup = (key, options) => {
5
+ const [group, setGroup] = useState()
6
+ const testGroup = useUserStore((state) => state.testGroup)
7
+
8
+ useLayoutEffect(() => {
9
+ // Let the devbuild reset this
10
+ if (!group || window.extendifyData.devbuild) {
11
+ setGroup(testGroup(key, options))
12
+ }
13
+ }, [key, options, group, testGroup])
14
+
15
+ return group
16
+ }
src/listeners/index.js CHANGED
@@ -1,3 +1,4 @@
1
- import { templateHandler } from './template-inserted'
2
  import { softErrorHandler } from './softerror-encountered'
 
 
3
  ;[templateHandler, softErrorHandler].forEach((listener) => listener.register())
 
1
  import { softErrorHandler } from './softerror-encountered'
2
+ import { templateHandler } from './template-inserted'
3
+
4
  ;[templateHandler, softErrorHandler].forEach((listener) => listener.register())
src/listeners/softerror-encountered.js CHANGED
@@ -1,6 +1,6 @@
1
- import { camelCase } from 'lodash'
2
  import { render } from '@wordpress/element'
3
- import RequiredPluginsModal from '../middleware/hasRequiredPlugins/RequiredPluginsModal'
 
4
 
5
  // use this to trigger an error from outside the application
6
  export const softErrorHandler = {
 
1
  import { render } from '@wordpress/element'
2
+ import { camelCase } from 'lodash'
3
+ import RequiredPluginsModal from '@extendify/middleware/hasRequiredPlugins/RequiredPluginsModal'
4
 
5
  // use this to trigger an error from outside the application
6
  export const softErrorHandler = {
src/listeners/template-inserted.js CHANGED
@@ -1,7 +1,7 @@
1
- import { Templates } from '../api/Templates'
2
- import { useUserStore } from '../state/User'
3
  import { dispatch } from '@wordpress/data'
4
  import { __ } from '@wordpress/i18n'
 
 
5
 
6
  // This fires after a template is inserted
7
  export const templateHandler = {
 
 
1
  import { dispatch } from '@wordpress/data'
2
  import { __ } from '@wordpress/i18n'
3
+ import { Templates } from '@extendify/api/Templates'
4
+ import { useUserStore } from '@extendify/state/User'
5
 
6
  // This fires after a template is inserted
7
  export const templateHandler = {
src/middleware/NeedsPermissionModal.js CHANGED
@@ -1,9 +1,9 @@
1
- import { __, sprintf } from '@wordpress/i18n'
2
  import { Modal, Button } from '@wordpress/components'
3
  import { render } from '@wordpress/element'
4
- import ExtendifyLibrary from '../ExtendifyLibrary'
5
- import { useWantedTemplateStore } from '../state/Importing'
6
- import { getPluginDescription } from '../util/general'
 
7
 
8
  export default function NeedsPermissionModal() {
9
  const wantedTemplate = useWantedTemplateStore(
 
1
  import { Modal, Button } from '@wordpress/components'
2
  import { render } from '@wordpress/element'
3
+ import { __, sprintf } from '@wordpress/i18n'
4
+ import ExtendifyLibrary from '@extendify/ExtendifyLibrary'
5
+ import { useWantedTemplateStore } from '@extendify/state/Importing'
6
+ import { getPluginDescription } from '@extendify/util/general'
7
 
8
  export default function NeedsPermissionModal() {
9
  const wantedTemplate = useWantedTemplateStore(
src/middleware/ReloadRequiredModal.js CHANGED
@@ -1,7 +1,7 @@
1
- import { __ } from '@wordpress/i18n'
2
  import { Modal, Button, ButtonGroup } from '@wordpress/components'
3
- import { useState } from '@wordpress/element'
4
  import { dispatch, select } from '@wordpress/data'
 
 
5
 
6
  export default function ReloadRequiredModal() {
7
  const [isSaving, setSaving] = useState(false)
 
1
  import { Modal, Button, ButtonGroup } from '@wordpress/components'
 
2
  import { dispatch, select } from '@wordpress/data'
3
+ import { useState } from '@wordpress/element'
4
+ import { __ } from '@wordpress/i18n'
5
 
6
  export default function ReloadRequiredModal() {
7
  const [isSaving, setSaving] = useState(false)
src/middleware/hasPluginsActivated/ActivatePluginsModal.js CHANGED
@@ -1,12 +1,12 @@
1
- import { __, sprintf } from '@wordpress/i18n'
2
  import { Modal, Button, ButtonGroup } from '@wordpress/components'
3
  import { render } from '@wordpress/element'
4
- import ActivatingModal from './ActivatingModal'
5
- import ExtendifyLibrary from '../../ExtendifyLibrary'
6
- import { useWantedTemplateStore } from '../../state/Importing'
7
- import { getPluginDescription } from '../../util/general'
8
- import { useUserStore } from '../../state/User'
9
  import NeedsPermissionModal from '../NeedsPermissionModal'
 
10
 
11
  export default function ActivatePluginsModal(props) {
12
  const wantedTemplate = useWantedTemplateStore(
 
1
  import { Modal, Button, ButtonGroup } from '@wordpress/components'
2
  import { render } from '@wordpress/element'
3
+ import { __, sprintf } from '@wordpress/i18n'
4
+ import ExtendifyLibrary from '@extendify/ExtendifyLibrary'
5
+ import { useWantedTemplateStore } from '@extendify/state/Importing'
6
+ import { useUserStore } from '@extendify/state/User'
7
+ import { getPluginDescription } from '@extendify/util/general'
8
  import NeedsPermissionModal from '../NeedsPermissionModal'
9
+ import ActivatingModal from './ActivatingModal'
10
 
11
  export default function ActivatePluginsModal(props) {
12
  const wantedTemplate = useWantedTemplateStore(
src/middleware/hasPluginsActivated/ActivatingModal.js CHANGED
@@ -1,10 +1,10 @@
1
- import { __ } from '@wordpress/i18n'
2
  import { Modal, Button } from '@wordpress/components'
3
  import { useState, render } from '@wordpress/element'
4
- import { Plugins } from '../../api/Plugins'
5
- import { useWantedTemplateStore } from '../../state/Importing'
6
- import ErrorActivating from './ErrorActivating'
7
  import ReloadRequiredModal from '../ReloadRequiredModal'
 
8
 
9
  export default function ActivatingModal() {
10
  const [errorMessage, setErrorMessage] = useState('')
 
1
  import { Modal, Button } from '@wordpress/components'
2
  import { useState, render } from '@wordpress/element'
3
+ import { __ } from '@wordpress/i18n'
4
+ import { Plugins } from '@extendify/api/Plugins'
5
+ import { useWantedTemplateStore } from '@extendify/state/Importing'
6
  import ReloadRequiredModal from '../ReloadRequiredModal'
7
+ import ErrorActivating from './ErrorActivating'
8
 
9
  export default function ActivatingModal() {
10
  const [errorMessage, setErrorMessage] = useState('')
src/middleware/hasPluginsActivated/ErrorActivating.js CHANGED
@@ -1,6 +1,6 @@
1
- import { __ } from '@wordpress/i18n'
2
  import { Modal, Button, Notice } from '@wordpress/components'
3
  import { render } from '@wordpress/element'
 
4
  import ActivatePluginsModal from './ActivatePluginsModal'
5
 
6
  export default function ErrorActivating({ msg }) {
 
1
  import { Modal, Button, Notice } from '@wordpress/components'
2
  import { render } from '@wordpress/element'
3
+ import { __ } from '@wordpress/i18n'
4
  import ActivatePluginsModal from './ActivatePluginsModal'
5
 
6
  export default function ErrorActivating({ msg }) {
src/middleware/hasPluginsActivated/index.js CHANGED
@@ -1,6 +1,6 @@
 
1
  import { checkIfUserNeedsToActivatePlugins } from '../helpers'
2
  import ActivatePluginsModal from './ActivatePluginsModal'
3
- import { render } from '@wordpress/element'
4
 
5
  export const hasPluginsActivated = async (template) => {
6
  return {
1
+ import { render } from '@wordpress/element'
2
  import { checkIfUserNeedsToActivatePlugins } from '../helpers'
3
  import ActivatePluginsModal from './ActivatePluginsModal'
 
4
 
5
  export const hasPluginsActivated = async (template) => {
6
  return {
src/middleware/hasRequiredPlugins/ErrorInstalling.js CHANGED
@@ -1,6 +1,6 @@
1
- import { __ } from '@wordpress/i18n'
2
  import { Modal, Button, Notice } from '@wordpress/components'
3
  import { render } from '@wordpress/element'
 
4
  import RequiredPluginsModal from './RequiredPluginsModal'
5
 
6
  export default function ErrorInstalling({ msg }) {
 
1
  import { Modal, Button, Notice } from '@wordpress/components'
2
  import { render } from '@wordpress/element'
3
+ import { __ } from '@wordpress/i18n'
4
  import RequiredPluginsModal from './RequiredPluginsModal'
5
 
6
  export default function ErrorInstalling({ msg }) {
src/middleware/hasRequiredPlugins/InstallingModal.js CHANGED
@@ -1,10 +1,10 @@
1
- import { __ } from '@wordpress/i18n'
2
  import { Modal, Button } from '@wordpress/components'
3
  import { useState, render } from '@wordpress/element'
4
- import { Plugins } from '../../api/Plugins'
5
- import { useWantedTemplateStore } from '../../state/Importing'
6
- import ErrorInstalling from './ErrorInstalling'
7
  import ReloadRequiredModal from '../ReloadRequiredModal'
 
8
 
9
  export default function InstallingModal({ requiredPlugins }) {
10
  const [errorMessage, setErrorMessage] = useState('')
 
1
  import { Modal, Button } from '@wordpress/components'
2
  import { useState, render } from '@wordpress/element'
3
+ import { __ } from '@wordpress/i18n'
4
+ import { Plugins } from '@extendify/api/Plugins'
5
+ import { useWantedTemplateStore } from '@extendify/state/Importing'
6
  import ReloadRequiredModal from '../ReloadRequiredModal'
7
+ import ErrorInstalling from './ErrorInstalling'
8
 
9
  export default function InstallingModal({ requiredPlugins }) {
10
  const [errorMessage, setErrorMessage] = useState('')
src/middleware/hasRequiredPlugins/RequiredPluginsModal.js CHANGED
@@ -1,12 +1,12 @@
1
- import { __, sprintf } from '@wordpress/i18n'
2
- import ExtendifyLibrary from '../../ExtendifyLibrary'
3
  import { Modal, Button, ButtonGroup } from '@wordpress/components'
4
  import { render } from '@wordpress/element'
5
- import InstallingModal from './InstallingModal'
6
- import { useWantedTemplateStore } from '../../state/Importing'
7
- import { getPluginDescription } from '../../util/general'
8
- import { useUserStore } from '../../state/User'
 
9
  import NeedsPermissionModal from '../NeedsPermissionModal'
 
10
 
11
  export default function RequiredPluginsModal({
12
  forceOpen,
 
 
1
  import { Modal, Button, ButtonGroup } from '@wordpress/components'
2
  import { render } from '@wordpress/element'
3
+ import { __, sprintf } from '@wordpress/i18n'
4
+ import ExtendifyLibrary from '@extendify/ExtendifyLibrary'
5
+ import { useWantedTemplateStore } from '@extendify/state/Importing'
6
+ import { useUserStore } from '@extendify/state/User'
7
+ import { getPluginDescription } from '@extendify/util/general'
8
  import NeedsPermissionModal from '../NeedsPermissionModal'
9
+ import InstallingModal from './InstallingModal'
10
 
11
  export default function RequiredPluginsModal({
12
  forceOpen,
src/middleware/hasRequiredPlugins/index.js CHANGED
@@ -1,6 +1,6 @@
 
1
  import { checkIfUserNeedsToInstallPlugins } from '../helpers'
2
  import RequiredPluginsModal from './RequiredPluginsModal'
3
- import { render } from '@wordpress/element'
4
 
5
  export const hasRequiredPlugins = async (template) => {
6
  return {
1
+ import { render } from '@wordpress/element'
2
  import { checkIfUserNeedsToInstallPlugins } from '../helpers'
3
  import RequiredPluginsModal from './RequiredPluginsModal'
 
4
 
5
  export const hasRequiredPlugins = async (template) => {
6
  return {
src/middleware/helpers.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Plugins } from '../api/Plugins'
2
 
3
  let installedPlugins = []
4
  let activatedPlugins = []
@@ -7,15 +7,15 @@ export async function checkIfUserNeedsToInstallPlugins(template) {
7
  let required = template?.fields?.required_plugins ?? []
8
  // Hardcoded temporarily to not force EP install
9
  required = required.filter((p) => p !== 'editorplus')
10
- if (!required.length) {
11
  return false
12
  }
13
 
14
- if (!installedPlugins.length) {
15
  installedPlugins = Object.keys(await Plugins.getInstalled())
16
  }
17
  // if no dependencies are required, then this will be false automatically
18
- const weNeedInstalls = required.length
19
  ? required.filter((plugin) => {
20
  // TODO: if we have better data to work with this can be more literal
21
  return !installedPlugins.some((k) => {
@@ -32,16 +32,16 @@ export async function checkIfUserNeedsToActivatePlugins(template) {
32
 
33
  // Hardcoded temporarily to not force EP install
34
  required = required.filter((p) => p !== 'editorplus')
35
- if (!required.length) {
36
  return false
37
  }
38
 
39
- if (!activatedPlugins.length) {
40
  activatedPlugins = Object.values(await Plugins.getActivated())
41
  }
42
 
43
  // if no dependencies are required, then this will be false automatically
44
- const weNeedActivations = required.length
45
  ? required.filter((plugin) => {
46
  // TODO: if we have better data to work with this can be more literal
47
  return !activatedPlugins.some((k) => {
@@ -57,5 +57,5 @@ export async function checkIfUserNeedsToActivatePlugins(template) {
57
  return false
58
  }
59
  }
60
- return weNeedActivations.length
61
  }
1
+ import { Plugins } from '@extendify/api/Plugins'
2
 
3
  let installedPlugins = []
4
  let activatedPlugins = []
7
  let required = template?.fields?.required_plugins ?? []
8
  // Hardcoded temporarily to not force EP install
9
  required = required.filter((p) => p !== 'editorplus')
10
+ if (!required?.length) {
11
  return false
12
  }
13
 
14
+ if (!installedPlugins?.length) {
15
  installedPlugins = Object.keys(await Plugins.getInstalled())
16
  }
17
  // if no dependencies are required, then this will be false automatically
18
+ const weNeedInstalls = required?.length
19
  ? required.filter((plugin) => {
20
  // TODO: if we have better data to work with this can be more literal
21
  return !installedPlugins.some((k) => {
32
 
33
  // Hardcoded temporarily to not force EP install
34
  required = required.filter((p) => p !== 'editorplus')
35
+ if (!required?.length) {
36
  return false
37
  }
38
 
39
+ if (!activatedPlugins?.length) {
40
  activatedPlugins = Object.values(await Plugins.getActivated())
41
  }
42
 
43
  // if no dependencies are required, then this will be false automatically
44
+ const weNeedActivations = required?.length
45
  ? required.filter((plugin) => {
46
  // TODO: if we have better data to work with this can be more literal
47
  return !activatedPlugins.some((k) => {
57
  return false
58
  }
59
  }
60
+ return weNeedActivations?.length
61
  }
src/middleware/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { hasRequiredPlugins } from './hasRequiredPlugins'
2
  import { hasPluginsActivated } from './hasPluginsActivated'
 
3
 
4
  export const Middleware = (middleware = []) => {
5
  return {
 
1
  import { hasPluginsActivated } from './hasPluginsActivated'
2
+ import { hasRequiredPlugins } from './hasRequiredPlugins'
3
 
4
  export const Middleware = (middleware = []) => {
5
  return {
src/pages/GridView.js CHANGED
@@ -1,4 +1,4 @@
1
- import Masonry from 'react-masonry-css'
2
  import {
3
  useEffect,
4
  useState,
@@ -6,14 +6,15 @@ import {
6
  useRef,
7
  memo,
8
  } from '@wordpress/element'
9
- import { Spinner, Button } from '@wordpress/components'
10
  import { __, sprintf } from '@wordpress/i18n'
11
- import { useTemplatesStore } from '../state/Templates'
12
- import { Templates as TemplatesApi } from '../api/Templates'
13
  import { useInView } from 'react-intersection-observer'
14
- import { useIsMounted } from '../hooks/helpers'
15
- import { ImportTemplateBlock } from '../components/ImportTemplateBlock'
16
- import { useGlobalStore } from '../state/GlobalState'
 
 
 
 
17
 
18
  export const GridView = memo(function GridView() {
19
  const isMounted = useIsMounted()
@@ -26,6 +27,12 @@ export const GridView = memo(function GridView() {
26
  const searchParamsRaw = useTemplatesStore((state) => state.searchParams)
27
  const currentType = useGlobalStore((state) => state.currentType)
28
  const resetTemplates = useTemplatesStore((state) => state.resetTemplates)
 
 
 
 
 
 
29
 
30
  // Store the next page in case we have pagination
31
  const nextPage = useRef(useTemplatesStore.getState().nextPage)
@@ -37,14 +44,14 @@ export const GridView = memo(function GridView() {
37
  // Subscribing to the store will keep these values updates synchronously
38
  useEffect(() => {
39
  return useTemplatesStore.subscribe(
40
- (n) => (nextPage.current = n),
41
  (state) => state.nextPage,
 
42
  )
43
  }, [])
44
  useEffect(() => {
45
  return useTemplatesStore.subscribe(
46
- (s) => (searchParams.current = s),
47
  (state) => state.searchParams,
 
48
  )
49
  }, [])
50
 
@@ -70,7 +77,7 @@ export const GridView = memo(function GridView() {
70
  }
71
  if (
72
  searchParamsRaw === searchParams.current &&
73
- response?.records.length
74
  ) {
75
  useTemplatesStore.setState({
76
  nextPage: response?.offset ?? '',
@@ -87,17 +94,38 @@ export const GridView = memo(function GridView() {
87
  }, [appendTemplates, isMounted, searchParamsRaw])
88
 
89
  useEffect(() => {
90
- if (templates.length === 0) {
91
  setLoading(true)
92
  return
93
  }
94
- }, [templates.length, searchParamsRaw])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95
 
96
  // This is the main driver for loading templates
97
  // This loads the initial batch of templates. But if we don't yet have taxonomies.
98
  // There's also an option to skip loading on first mount
99
  useEffect(() => {
100
- if (!Object.keys(searchParams.current.taxonomies).length) {
101
  return
102
  }
103
 
@@ -111,7 +139,8 @@ export const GridView = memo(function GridView() {
111
  return
112
  }
113
  fetchTemplates()
114
- }, [fetchTemplates, searchParams])
 
115
 
116
  // Fetches when the load more is in view
117
  useEffect(() => {
@@ -123,7 +152,7 @@ export const GridView = memo(function GridView() {
123
  <div className="text-left">
124
  <h2 className="text-left">{__('Server error', 'extendify')}</h2>
125
  <code
126
- className="block max-w-xl p-4 mb-4"
127
  style={{ minHeight: '10rem' }}>
128
  {serverError}
129
  </code>
@@ -138,8 +167,8 @@ export const GridView = memo(function GridView() {
138
 
139
  if (nothingFound) {
140
  return (
141
- <div className="flex h-full items-center justify-center w-full -mt-2 sm:mt-0">
142
- <h2 className="text-sm text-extendify-gray font-normal">
143
  {sprintf(
144
  searchParams.current.type === 'template'
145
  ? __(
@@ -160,7 +189,7 @@ export const GridView = memo(function GridView() {
160
  return (
161
  <>
162
  {loading && (
163
- <div className="flex h-full items-center justify-center w-full -mt-2 sm:mt-0">
164
  <Spinner />
165
  </div>
166
  )}
@@ -186,7 +215,7 @@ export const GridView = memo(function GridView() {
186
  </div>
187
  {/* This is a large div that, when in view, will trigger more patterns to load */}
188
  <div
189
- className="-translate-y-full flex flex-col items-end justify-end relative transform"
190
  ref={loadMoreRef}
191
  style={{
192
  zIndex: -1,
@@ -207,7 +236,7 @@ const Grid = ({ type, children }) => {
207
  case 'template':
208
  return (
209
  <div
210
- className={`grid lg:grid-cols-2 gap-6 md:gap-8 ${sharedClasses}`}>
211
  {children}
212
  </div>
213
  )
@@ -222,7 +251,7 @@ const Grid = ({ type, children }) => {
222
  return (
223
  <Masonry
224
  breakpointCols={breakpointColumnsObj}
225
- className={`flex -ml-6 md:-ml-8 w-auto px-0.5 ${sharedClasses}`}
226
  columnClassName="pl-6 md:pl-8 bg-clip-padding space-y-6 md:space-y-8">
227
  {children}
228
  </Masonry>
1
+ import { Spinner, Button } from '@wordpress/components'
2
  import {
3
  useEffect,
4
  useState,
6
  useRef,
7
  memo,
8
  } from '@wordpress/element'
 
9
  import { __, sprintf } from '@wordpress/i18n'
 
 
10
  import { useInView } from 'react-intersection-observer'
11
+ import Masonry from 'react-masonry-css'
12
+ import { Templates as TemplatesApi } from '@extendify/api/Templates'
13
+ import { ImportTemplateBlock } from '@extendify/components/ImportTemplateBlock'
14
+ import { useIsMounted } from '@extendify/hooks/helpers'
15
+ import { useGlobalStore } from '@extendify/state/GlobalState'
16
+ import { useTaxonomyStore } from '@extendify/state/Taxonomies'
17
+ import { useTemplatesStore } from '@extendify/state/Templates'
18
 
19
  export const GridView = memo(function GridView() {
20
  const isMounted = useIsMounted()
27
  const searchParamsRaw = useTemplatesStore((state) => state.searchParams)
28
  const currentType = useGlobalStore((state) => state.currentType)
29
  const resetTemplates = useTemplatesStore((state) => state.resetTemplates)
30
+ const open = useGlobalStore((state) => state.open)
31
+ const taxonomies = useTaxonomyStore((state) => state.taxonomies)
32
+ const updateType = useTemplatesStore((state) => state.updateType)
33
+ const updateTaxonomies = useTemplatesStore(
34
+ (state) => state.updateTaxonomies,
35
+ )
36
 
37
  // Store the next page in case we have pagination
38
  const nextPage = useRef(useTemplatesStore.getState().nextPage)
44
  // Subscribing to the store will keep these values updates synchronously
45
  useEffect(() => {
46
  return useTemplatesStore.subscribe(
 
47
  (state) => state.nextPage,
48
+ (n) => (nextPage.current = n),
49
  )
50
  }, [])
51
  useEffect(() => {
52
  return useTemplatesStore.subscribe(
 
53
  (state) => state.searchParams,
54
+ (s) => (searchParams.current = s),
55
  )
56
  }, [])
57
 
77
  }
78
  if (
79
  searchParamsRaw === searchParams.current &&
80
+ response?.records?.length
81
  ) {
82
  useTemplatesStore.setState({
83
  nextPage: response?.offset ?? '',
94
  }, [appendTemplates, isMounted, searchParamsRaw])
95
 
96
  useEffect(() => {
97
+ if (templates?.length === 0) {
98
  setLoading(true)
99
  return
100
  }
101
+ }, [templates?.length, searchParamsRaw])
102
+
103
+ useEffect(() => {
104
+ // This will check the URL for a pattern type and set that and remove it
105
+ // TODO: possibly refactor this if we exapnd it to support layouts
106
+ if (!open || !taxonomies?.patternType?.length) return
107
+ const search = new URLSearchParams(window.location.search)
108
+ if (!search.has('ext-patternType')) return
109
+ const term = search.get('ext-patternType')
110
+ // Delete it right away
111
+ search.delete('ext-patternType')
112
+ window.history.replaceState(
113
+ null,
114
+ null,
115
+ window.location.pathname + '?' + search.toString(),
116
+ )
117
+ // Search the slug in patternTypes
118
+ const tax = taxonomies.patternType.find((t) => t.slug === term)
119
+ if (!tax) return
120
+ updateTaxonomies({ patternType: tax })
121
+ updateType('pattern')
122
+ }, [open, taxonomies, updateType, updateTaxonomies])
123
 
124
  // This is the main driver for loading templates
125
  // This loads the initial batch of templates. But if we don't yet have taxonomies.
126
  // There's also an option to skip loading on first mount
127
  useEffect(() => {
128
+ if (!Object.keys(searchParams.current?.taxonomies)?.length) {
129
  return
130
  }
131
 
139
  return
140
  }
141
  fetchTemplates()
142
+ return () => resetTemplates()
143
+ }, [fetchTemplates, searchParams, resetTemplates])
144
 
145
  // Fetches when the load more is in view
146
  useEffect(() => {
152
  <div className="text-left">
153
  <h2 className="text-left">{__('Server error', 'extendify')}</h2>
154
  <code
155
+ className="mb-4 block max-w-xl p-4"
156
  style={{ minHeight: '10rem' }}>
157
  {serverError}
158
  </code>
167
 
168
  if (nothingFound) {
169
  return (
170
+ <div className="-mt-2 flex h-full w-full items-center justify-center sm:mt-0">
171
+ <h2 className="text-sm font-normal text-extendify-gray">
172
  {sprintf(
173
  searchParams.current.type === 'template'
174
  ? __(
189
  return (
190
  <>
191
  {loading && (
192
+ <div className="-mt-2 flex h-full w-full items-center justify-center sm:mt-0">
193
  <Spinner />
194
  </div>
195
  )}
215
  </div>
216
  {/* This is a large div that, when in view, will trigger more patterns to load */}
217
  <div
218
+ className="relative flex -translate-y-full transform flex-col items-end justify-end"
219
  ref={loadMoreRef}
220
  style={{
221
  zIndex: -1,
236
  case 'template':
237
  return (
238
  <div
239
+ className={`grid gap-6 md:gap-8 lg:grid-cols-2 ${sharedClasses}`}>
240
  {children}
241
  </div>
242
  )
251
  return (
252
  <Masonry
253
  breakpointCols={breakpointColumnsObj}
254
+ className={`-ml-6 flex w-auto px-0.5 md:-ml-8 ${sharedClasses}`}
255
  columnClassName="pl-6 md:pl-8 bg-clip-padding space-y-6 md:space-y-8">
256
  {children}
257
  </Masonry>
src/pages/MainWindow.js CHANGED
@@ -1,15 +1,18 @@
1
  import { Fragment, useRef } from '@wordpress/element'
2
  import { Dialog, Transition } from '@headlessui/react'
3
- import { useGlobalStore } from '../state/GlobalState'
 
 
 
4
  import { Layout } from './layout/Layout'
5
- import FooterNotice from '../components/notices/FooterNotice'
6
- import { useModal } from '../hooks/useModal'
7
 
8
  export default function MainWindow() {
9
  const containerRef = useRef(null)
10
  const open = useGlobalStore((state) => state.open)
11
  const setOpen = useGlobalStore((state) => state.setOpen)
12
  const modal = useModal(open)
 
 
13
 
14
  return (
15
  <Transition appear show={open} as={Fragment}>
@@ -19,8 +22,8 @@ export default function MainWindow() {
19
  className="extendify"
20
  initialFocus={containerRef}
21
  onClose={() => setOpen(false)}>
22
- <div className="h-screen w-screen sm:h-auto m-auto sm:w-auto fixed z-high inset-0 overflow-y-auto">
23
- <div className="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0">
24
  <Transition.Child
25
  as={Fragment}
26
  enter="ease-out duration-300"
@@ -40,10 +43,19 @@ export default function MainWindow() {
40
  e.target === e.currentTarget &&
41
  setOpen(false)
42
  }
43
- className="fixed lg:absolute inset-0 lg:overflow-hidden transform transition-all p-2 lg:p-16">
 
 
 
44
  <Layout />
45
- <FooterNotice />
46
- {modal}
 
 
 
 
 
 
47
  </div>
48
  </Transition.Child>
49
  </div>
1
  import { Fragment, useRef } from '@wordpress/element'
2
  import { Dialog, Transition } from '@headlessui/react'
3
+ import FooterNotice from '@extendify/components/notices/FooterNotice'
4
+ import { useModal } from '@extendify/hooks/useModal'
5
+ import { useTestGroup } from '@extendify/hooks/useTestGroup'
6
+ import { useGlobalStore } from '@extendify/state/GlobalState'
7
  import { Layout } from './layout/Layout'
 
 
8
 
9
  export default function MainWindow() {
10
  const containerRef = useRef(null)
11
  const open = useGlobalStore((state) => state.open)
12
  const setOpen = useGlobalStore((state) => state.setOpen)
13
  const modal = useModal(open)
14
+ const ready = useGlobalStore((state) => state.ready)
15
+ const footerNoticePosition = useTestGroup('notice-position', ['A', 'B'])
16
 
17
  return (
18
  <Transition appear show={open} as={Fragment}>
22
  className="extendify"
23
  initialFocus={containerRef}
24
  onClose={() => setOpen(false)}>
25
+ <div className="fixed inset-0 z-high m-auto h-screen w-screen overflow-y-auto sm:h-auto sm:w-auto">
26
+ <div className="flex min-h-screen items-end justify-center px-4 pt-4 pb-20 text-center sm:block sm:p-0">
27
  <Transition.Child
28
  as={Fragment}
29
  enter="ease-out duration-300"
43
  e.target === e.currentTarget &&
44
  setOpen(false)
45
  }
46
+ className="fixed inset-0 transform p-2 transition-all lg:absolute lg:overflow-hidden lg:p-16">
47
+ {footerNoticePosition === 'B' && (
48
+ <FooterNotice className="-mt-6" />
49
+ )}
50
  <Layout />
51
+ {ready ? (
52
+ <>
53
+ {footerNoticePosition === 'A' && (
54
+ <FooterNotice />
55
+ )}
56
+ {modal}
57
+ </>
58
+ ) : null}
59
  </div>
60
  </Transition.Child>
61
  </div>
src/pages/Sidebar.js CHANGED
@@ -1,16 +1,16 @@
1
- import { memo } from '@wordpress/element'
2
- import { useTemplatesStore } from '../state/Templates'
3
  import { Panel } from '@wordpress/components'
4
- import TaxonomySection from '../components/TaxonomySection'
5
- import { useTaxonomyStore } from '../state/Taxonomies'
6
- import { SiteTypeSelector } from '../components/SiteTypeSelector'
7
- import { useUserStore } from '../state/User'
8
- import { ImportCounter } from '../components/ImportCounter'
9
- import { brandMark } from '../components/icons/'
10
- import { Icon } from '@wordpress/icons'
11
- import { featured } from '../components/icons'
12
  import { __ } from '@wordpress/i18n'
 
13
  import classNames from 'classnames'
 
 
 
 
 
 
 
 
14
 
15
  export const Sidebar = memo(function Sidebar() {
16
  const taxonomies = useTaxonomyStore((state) => state.taxonomies)
@@ -28,7 +28,7 @@ export const Sidebar = memo(function Sidebar() {
28
 
29
  return (
30
  <>
31
- <div className="hidden sm:flex px-5 -ml-1.5 text-extendify-black">
32
  <Icon icon={brandMark} size={40} />
33
  </div>
34
  <div className="px-5">
@@ -39,7 +39,7 @@ export const Sidebar = memo(function Sidebar() {
39
  })
40
  }
41
  className={classNames(
42
- 'text-left text-sm cursor-pointer w-full flex items-center px-0 py-2 m-0 leading-none bg-transparent hover:text-wp-theme-500 transition duration-200 button-focus space-x-1',
43
  { 'text-wp-theme-500': isFeatured },
44
  )}>
45
  <Icon icon={featured} size={24} />
@@ -48,7 +48,7 @@ export const Sidebar = memo(function Sidebar() {
48
  </span>
49
  </button>
50
  </div>
51
- <div className="sm:mb-8 mx-6 sm:mx-0 sm:mt-0 pt-0.5 px-5">
52
  {Object.keys(taxonomies?.siteType ?? {}).length > 0 && (
53
  <SiteTypeSelector
54
  value={searchParams?.taxonomies?.siteType ?? ''}
@@ -60,7 +60,7 @@ export const Sidebar = memo(function Sidebar() {
60
  />
61
  )}
62
  </div>
63
- <div className="mt-px flex-grow hidden overflow-y-auto pb-32 pt-px sm:block">
64
  <Panel className="bg-transparent">
65
  <TaxonomySection
66
  taxType={taxonomyType}
 
 
1
  import { Panel } from '@wordpress/components'
2
+ import { memo } from '@wordpress/element'
 
 
 
 
 
 
 
3
  import { __ } from '@wordpress/i18n'
4
+ import { Icon } from '@wordpress/icons'
5
  import classNames from 'classnames'
6
+ import { ImportCounter } from '@extendify/components/ImportCounter'
7
+ import { SiteTypeSelector } from '@extendify/components/SiteTypeSelector'
8
+ import TaxonomySection from '@extendify/components/TaxonomySection'
9
+ import { featured } from '@extendify/components/icons'
10
+ import { brandMark } from '@extendify/components/icons/'
11
+ import { useTaxonomyStore } from '@extendify/state/Taxonomies'
12
+ import { useTemplatesStore } from '@extendify/state/Templates'
13
+ import { useUserStore } from '@extendify/state/User'
14
 
15
  export const Sidebar = memo(function Sidebar() {
16
  const taxonomies = useTaxonomyStore((state) => state.taxonomies)
28
 
29
  return (
30
  <>
31
+ <div className="-ml-1.5 hidden px-5 text-extendify-black sm:flex">
32
  <Icon icon={brandMark} size={40} />
33
  </div>
34
  <div className="px-5">
39
  })
40
  }
41
  className={classNames(
42
+ 'button-focus m-0 flex w-full cursor-pointer items-center space-x-1 bg-transparent px-0 py-2 text-left text-sm leading-none transition duration-200 hover:text-wp-theme-500',
43
  { 'text-wp-theme-500': isFeatured },
44
  )}>
45
  <Icon icon={featured} size={24} />
48
  </span>
49
  </button>
50
  </div>
51
+ <div className="mx-6 px-5 pt-0.5 sm:mx-0 sm:mb-8 sm:mt-0">
52
  {Object.keys(taxonomies?.siteType ?? {}).length > 0 && (
53
  <SiteTypeSelector
54
  value={searchParams?.taxonomies?.siteType ?? ''}
60
  />
61
  )}
62
  </div>
63
+ <div className="mt-px hidden flex-grow overflow-y-auto pb-32 pt-px sm:block">
64
  <Panel className="bg-transparent">
65
  <TaxonomySection
66
  taxType={taxonomyType}
src/pages/layout/HasSidebar.js CHANGED
@@ -1,15 +1,18 @@
 
 
1
  export default function HasSidebar({ children }) {
 
2
  return (
3
  <>
4
- <aside className="flex-shrink-0 py-0 sm:py-5 relative border-r border-extendify-transparent-black-100 bg-extendify-transparent-white backdrop-filter backdrop-blur-xl backdrop-saturate-200">
5
- <div className="flex flex-col h-full sm:w-64 py-6 sm:py-0 sm:space-y-6">
6
- {children[0]}
7
  </div>
8
  </aside>
9
  <main
10
  id="extendify-templates"
11
- className="bg-gray-50 w-full pt-6 sm:pt-0 h-full overflow-hidden">
12
- {children[1]}
13
  </main>
14
  </>
15
  )
1
+ import { useGlobalStore } from '@extendify/state/GlobalState'
2
+
3
  export default function HasSidebar({ children }) {
4
+ const ready = useGlobalStore((state) => state.ready)
5
  return (
6
  <>
7
+ <aside className="relative flex-shrink-0 border-r border-extendify-transparent-black-100 bg-extendify-transparent-white py-0 backdrop-blur-xl backdrop-saturate-200 backdrop-filter sm:py-5">
8
+ <div className="flex h-full flex-col py-6 sm:w-64 sm:space-y-6 sm:py-0">
9
+ {ready ? children[0] : null}
10
  </div>
11
  </aside>
12
  <main
13
  id="extendify-templates"
14
+ className="h-full w-full overflow-hidden bg-gray-50 pt-6 sm:pt-0">
15
+ {ready ? children[1] : null}
16
  </main>
17
  </>
18
  )
src/pages/layout/Layout.js CHANGED
@@ -1,19 +1,19 @@
 
 
1
  import { __ } from '@wordpress/i18n'
2
- import { Sidebar } from '../Sidebar'
 
 
 
3
  import HasSidebar from './HasSidebar'
4
  import { Toolbar } from './Toolbar'
5
- import { GridView } from '../GridView'
6
- import { Button } from '@wordpress/components'
7
- import { useRef, useEffect, useState, useCallback } from '@wordpress/element'
8
- import { useTemplatesStore } from '../../state/Templates'
9
- import { useWhenIdle } from '../../hooks/helpers'
10
 
11
  export const Layout = ({ setOpen }) => {
12
  const gridContainer = useRef()
13
  const searchParams = useTemplatesStore((state) => state.searchParams)
14
  const [showIdleScreen, setShowIdleScreen] = useState(false)
15
  const resetTemplates = useTemplatesStore((state) => state.resetTemplates)
16
- const idle = useWhenIdle(600_000) // 10 minutes
17
  const removeIdleScreen = useCallback(() => {
18
  setShowIdleScreen(false)
19
  resetTemplates()
@@ -26,10 +26,12 @@ export const Layout = ({ setOpen }) => {
26
  setShowIdleScreen(false)
27
  }, [searchParams])
28
  useEffect(() => {
 
29
  gridContainer.current.scrollTop = 0
30
  }, [searchParams])
 
31
  return (
32
- <div className="h-full flex flex-col items-center relative max-w-screen-4xl mx-auto">
33
  <div className="w-full flex-grow overflow-hidden">
34
  <button
35
  onClick={() =>
@@ -41,17 +43,17 @@ export const Layout = ({ setOpen }) => {
41
  className="extendify-skip-to-sr-link sr-only focus:not-sr-only focus:text-blue-500">
42
  {__('Skip to templates', 'extendify')}
43
  </button>
44
- <div className="sm:flex relative mx-auto h-full">
45
  <HasSidebar>
46
  <Sidebar />
47
- <div className="relative h-full z-30 flex flex-col">
48
  <Toolbar
49
- className="hidden sm:block w-full h-20 flex-shrink-0 px-6 md:px-8"
50
  hideLibrary={() => setOpen(false)}
51
  />
52
  <div
53
  ref={gridContainer}
54
- className="flex-grow z-20 overflow-y-auto px-6 md:px-8">
55
  {showIdleScreen ? (
56
  <IdleScreen callback={removeIdleScreen} />
57
  ) : (
@@ -67,12 +69,12 @@ export const Layout = ({ setOpen }) => {
67
  }
68
 
69
  const IdleScreen = ({ callback }) => (
70
- <div className="flex flex-col items-center justify-center h-full">
71
- <p className="text-sm text-extendify-gray font-normal mb-6">
72
  {__("We've added new stuff while you were away.", 'extendify')}
73
  </p>
74
  <Button
75
- className="components-button bg-wp-theme-500 hover:bg-wp-theme-600 border-color-wp-theme-500 text-white"
76
  onClick={callback}>
77
  {__('Reload')}
78
  </Button>
1
+ import { Button } from '@wordpress/components'
2
+ import { useRef, useEffect, useState, useCallback } from '@wordpress/element'
3
  import { __ } from '@wordpress/i18n'
4
+ import { useWhenIdle } from '@extendify/hooks/helpers'
5
+ import { GridView } from '@extendify/pages/GridView'
6
+ import { Sidebar } from '@extendify/pages/Sidebar'
7
+ import { useTemplatesStore } from '@extendify/state/Templates'
8
  import HasSidebar from './HasSidebar'
9
  import { Toolbar } from './Toolbar'
 
 
 
 
 
10
 
11
  export const Layout = ({ setOpen }) => {
12
  const gridContainer = useRef()
13
  const searchParams = useTemplatesStore((state) => state.searchParams)
14
  const [showIdleScreen, setShowIdleScreen] = useState(false)
15
  const resetTemplates = useTemplatesStore((state) => state.resetTemplates)
16
+ const idle = useWhenIdle(300_000) // 5 minutes
17
  const removeIdleScreen = useCallback(() => {
18
  setShowIdleScreen(false)
19
  resetTemplates()
26
  setShowIdleScreen(false)
27
  }, [searchParams])
28
  useEffect(() => {
29
+ if (!gridContainer.current) return
30
  gridContainer.current.scrollTop = 0
31
  }, [searchParams])
32
+
33
  return (
34
+ <div className="relative mx-auto flex h-full max-w-screen-4xl flex-col items-center">
35
  <div className="w-full flex-grow overflow-hidden">
36
  <button
37
  onClick={() =>
43
  className="extendify-skip-to-sr-link sr-only focus:not-sr-only focus:text-blue-500">
44
  {__('Skip to templates', 'extendify')}
45
  </button>
46
+ <div className="relative mx-auto h-full sm:flex">
47
  <HasSidebar>
48
  <Sidebar />
49
+ <div className="relative z-30 flex h-full flex-col">
50
  <Toolbar
51
+ className="hidden h-20 w-full flex-shrink-0 px-6 sm:block md:px-8"
52
  hideLibrary={() => setOpen(false)}
53
  />
54
  <div
55
  ref={gridContainer}
56
+ className="z-20 flex-grow overflow-y-auto px-6 md:px-8">
57
  {showIdleScreen ? (
58
  <IdleScreen callback={removeIdleScreen} />
59
  ) : (
69
  }
70
 
71
  const IdleScreen = ({ callback }) => (
72
+ <div className="flex h-full flex-col items-center justify-center">
73
+ <p className="mb-6 text-sm font-normal text-extendify-gray">
74
  {__("We've added new stuff while you were away.", 'extendify')}
75
  </p>
76
  <Button
77
+ className="components-button border-color-wp-theme-500 bg-wp-theme-500 text-white hover:bg-wp-theme-600"
78
  onClick={callback}>
79
  {__('Reload')}
80
  </Button>
src/pages/layout/Toolbar.js CHANGED
@@ -1,12 +1,12 @@
 
 
1
  import { __ } from '@wordpress/i18n'
2
  import { Icon, close } from '@wordpress/icons'
3
- import { memo } from '@wordpress/element'
4
- import { Button } from '@wordpress/components'
5
- import { TypeSelect } from '../../components/TypeSelect'
6
- import { useGlobalStore } from '../../state/GlobalState'
7
- import { user } from '../../components/icons/'
8
- import SettingsModal from '../../components/modals/SettingsModal'
9
- import { useUserStore } from '../../state/User'
10
 
11
  export const Toolbar = memo(function Toolbar({ className }) {
12
  const setOpen = useGlobalStore((state) => state.setOpen)
@@ -15,10 +15,10 @@ export const Toolbar = memo(function Toolbar({ className }) {
15
 
16
  return (
17
  <div className={className}>
18
- <div className="flex justify-between items-center h-full">
19
  <div className="flex-1"></div>
20
- <TypeSelect className="flex-1 flex items-center justify-center" />
21
- <div className="flex-1 flex justify-end items-center">
22
  <Button
23
  onClick={() => pushModal(<SettingsModal />)}
24
  icon={<Icon icon={user} size={24} />}
1
+ import { Button } from '@wordpress/components'
2
+ import { memo } from '@wordpress/element'
3
  import { __ } from '@wordpress/i18n'
4
  import { Icon, close } from '@wordpress/icons'
5
+ import { TypeSelect } from '@extendify/components/TypeSelect'
6
+ import { user } from '@extendify/components/icons/'
7
+ import { SettingsModal } from '@extendify/components/modals/settings/SettingsModal'
8
+ import { useGlobalStore } from '@extendify/state/GlobalState'
9
+ import { useUserStore } from '@extendify/state/User'
 
 
10
 
11
  export const Toolbar = memo(function Toolbar({ className }) {
12
  const setOpen = useGlobalStore((state) => state.setOpen)
15
 
16
  return (
17
  <div className={className}>
18
+ <div className="flex h-full items-center justify-between">
19
  <div className="flex-1"></div>
20
+ <TypeSelect className="flex flex-1 items-center justify-center" />
21
+ <div className="flex flex-1 items-center justify-end">
22
  <Button
23
  onClick={() => pushModal(<SettingsModal />)}
24
  icon={<Icon icon={user} size={24} />}
src/state/GlobalState.js CHANGED
@@ -1,35 +1,38 @@
1
  import create from 'zustand'
2
- import { persist } from 'zustand/middleware'
3
 
4
  export const useGlobalStore = create(
5
- persist(
6
- (set, get) => ({
7
- open: false,
8
- metaData: {},
9
- // These two are here just to persist their previous values,
10
- // but could be refactored to be the source instead.
11
- // It would require a refactor to state/Templates.js
12
- currentTaxonomies: {},
13
- currentType: 'pattern',
14
- modals: [],
15
- pushModal: (modal) => set({ modals: [modal, ...get().modals] }),
16
- popModal: () => set({ modals: get().modals.slice(1) }),
17
- removeAllModals: () => set({ modals: [] }),
18
- updateCurrentTaxonomies: (data) =>
19
- set({
20
- currentTaxonomies: Object.assign({}, data),
21
- }),
22
- updateCurrentType: (data) => set({ currentType: data }),
23
- setOpen: (value) => {
24
- set({ open: value })
 
 
 
 
 
 
 
 
 
 
25
  },
26
- }),
27
- {
28
- name: 'extendify-global-state',
29
- partialize: (state) => {
30
- delete state.modals
31
- return state
32
- },
33
- },
34
  ),
35
  )
1
  import create from 'zustand'
2
+ import { persist, subscribeWithSelector } from 'zustand/middleware'
3
 
4
  export const useGlobalStore = create(
5
+ subscribeWithSelector(
6
+ persist(
7
+ (set, get) => ({
8
+ open: false,
9
+ ready: false,
10
+ metaData: {},
11
+ // These two are here just to persist their previous values,
12
+ // but could be refactored to be the source instead.
13
+ // It would require a refactor to state/Templates.js
14
+ currentTaxonomies: {},
15
+ currentType: 'pattern',
16
+ modals: [],
17
+ pushModal: (modal) => set({ modals: [modal, ...get().modals] }),
18
+ popModal: () => set({ modals: get().modals.slice(1) }),
19
+ removeAllModals: () => set({ modals: [] }),
20
+ updateCurrentTaxonomies: (data) =>
21
+ set({
22
+ currentTaxonomies: Object.assign({}, data),
23
+ }),
24
+ updateCurrentType: (data) => set({ currentType: data }),
25
+ setOpen: (value) => set({ open: value }),
26
+ setReady: (value) => set({ ready: value }),
27
+ }),
28
+ {
29
+ name: 'extendify-global-state',
30
+ partialize: (state) => {
31
+ delete state.modals
32
+ delete state.ready
33
+ return state
34
+ },
35
  },
36
+ ),
 
 
 
 
 
 
 
37
  ),
38
  )
src/state/SiteSettings.js CHANGED
@@ -1,6 +1,6 @@
1
  import create from 'zustand'
2
  import { persist } from 'zustand/middleware'
3
- import { SiteSettings } from '../api/SiteSettings'
4
 
5
  const storage = {
6
  getItem: async () => await SiteSettings.getData(),
1
  import create from 'zustand'
2
  import { persist } from 'zustand/middleware'
3
+ import { SiteSettings } from '@extendify/api/SiteSettings'
4
 
5
  const storage = {
6
  getItem: async () => await SiteSettings.getData(),
src/state/Taxonomies.js CHANGED
@@ -1,11 +1,23 @@
1
  import create from 'zustand'
2
  import { persist } from 'zustand/middleware'
 
3
 
4
  export const useTaxonomyStore = create(
5
  persist(
6
- (set) => ({
7
  taxonomies: {},
8
  setTaxonomies: (taxonomies) => set({ taxonomies }),
 
 
 
 
 
 
 
 
 
 
 
9
  }),
10
  {
11
  name: 'extendify-taxonomies',
1
  import create from 'zustand'
2
  import { persist } from 'zustand/middleware'
3
+ import { Taxonomies as TaxonomiesApi } from '@extendify/api/Taxonomies'
4
 
5
  export const useTaxonomyStore = create(
6
  persist(
7
+ (set, get) => ({
8
  taxonomies: {},
9
  setTaxonomies: (taxonomies) => set({ taxonomies }),
10
+ fetchTaxonomies: async () => {
11
+ let tax = await TaxonomiesApi.get()
12
+ tax = Object.keys(tax).reduce((taxFiltered, key) => {
13
+ taxFiltered[key] = tax[key]
14
+ return taxFiltered
15
+ }, {})
16
+ if (!Object.keys(tax)?.length) {
17
+ return
18
+ }
19
+ get().setTaxonomies(tax)
20
+ },
21
  }),
22
  {
23
  name: 'extendify-taxonomies',
src/state/Templates.js CHANGED
@@ -1,121 +1,130 @@
1
  import create from 'zustand'
 
2
  import { useGlobalStore } from './GlobalState'
3
- import { useUserStore } from './User'
4
  import { useTaxonomyStore } from './Taxonomies'
 
5
 
6
  const defaultCategoryForType = (tax) =>
7
  tax === 'siteType'
8
  ? { slug: '', title: 'Unknown' }
9
  : { slug: '', title: 'Featured' }
10
 
11
- export const useTemplatesStore = create((set, get) => ({
12
- templates: [],
13
- skipNextFetch: false,
14
- fetchToken: null,
15
- taxonomyDefaultState: {},
16
- nextPage: '',
17
- searchParams: {
18
- taxonomies: {},
19
- type: 'pattern',
20
- },
21
- initTemplateData() {
22
- set({ activeTemplate: {} })
23
- get().setupDefaultTaxonomies()
24
- get().updateType(useGlobalStore.getState().currentType)
25
- },
26
- appendTemplates: (templates) =>
27
- set({
28
- templates: [
29
- ...new Map(
30
- [...get().templates, ...templates].map((item) => [
31
- item.id,
32
- item,
33
- ]),
34
- ).values(),
35
- ],
36
- }),
37
- setupDefaultTaxonomies: () => {
38
- const taxonomies = useTaxonomyStore.getState().taxonomies
39
- let taxonomyDefaultState = Object.entries(taxonomies).reduce(
40
- (state, current) => (
41
- (state[current[0]] = defaultCategoryForType(current[0])), state
42
- ),
43
- {},
44
- )
45
- const tax = {}
46
- let preferredTax =
47
- useUserStore.getState().preferredOptions?.taxonomies ?? {}
 
 
 
 
 
 
 
 
 
 
48
 
49
- // Check for old site type and set it if it exists
50
- if (preferredTax.tax_categories) {
51
- preferredTax = get().getLegacySiteType(preferredTax, taxonomies)
52
- }
53
- taxonomyDefaultState = Object.assign(
54
- {},
55
- taxonomyDefaultState,
56
 
57
- // Override with the user's preferred taxonomies
58
- preferredTax,
 
59
 
60
- // Override with the global state
61
- useGlobalStore.getState()?.currentTaxonomies ?? {},
62
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
 
64
- tax.taxonomies = Object.assign({}, taxonomyDefaultState)
65
 
66
- set({
67
- taxonomyDefaultState: taxonomyDefaultState,
68
- searchParams: {
69
- ...Object.assign(get().searchParams, tax),
70
- },
71
- })
72
- },
73
- updateTaxonomies: (params) => {
74
- const data = {}
75
- data.taxonomies = Object.assign(
76
- {},
77
- get().searchParams.taxonomies,
78
- params,
79
- )
80
- if (data?.taxonomies?.siteType) {
81
- // This is what the user "prefers", which may be used outside the library
82
- // which is persisted to the database, where as the global library state is in local storage
83
  useUserStore
84
  .getState()
85
- .updatePreferredOption('siteType', data?.taxonomies?.siteType)
86
- }
87
- useGlobalStore.getState().updateCurrentTaxonomies(data?.taxonomies)
88
- get().updateSearchParams(data)
89
- },
90
- updateType(type) {
91
- useGlobalStore.getState().updateCurrentType(type)
92
- get().updateSearchParams({ type })
93
- },
94
- updateSearchParams: (params) => {
95
- // If taxonomies are set to {}, lets use the default
96
- if (params?.taxonomies && !Object.keys(params.taxonomies).length) {
97
- params.taxonomies = get().taxonomyDefaultState
98
- }
99
-
100
- const searchParams = Object.assign({}, get().searchParams, params)
101
-
102
- // If the params are not the same, then update
103
- if (
104
- JSON.stringify(searchParams) !== JSON.stringify(get().searchParams)
105
- ) {
106
- set({ templates: [], nextPage: '', searchParams })
107
- }
108
- },
109
- resetTemplates: () => set({ templates: [], nextPage: '' }),
110
- getLegacySiteType: (preferredTax, taxonomies) => {
111
- const oldSiteType = taxonomies.siteType.find((t) =>
112
- [t.slug, t?.title].includes(preferredTax.tax_categories),
113
- )
114
- // TODO: This is kind of wonky, as we keep track of the state in two places.
115
- useUserStore.getState().updatePreferredSiteType(oldSiteType)
116
- get().updateTaxonomies({ siteType: oldSiteType })
117
- // Remove the legacy term so this only runs once
118
- useUserStore.getState().updatePreferredOption('tax_categories', null)
119
- return useUserStore.getState().preferredOptions.taxonomies
120
- },
121
- }))
1
  import create from 'zustand'
2
+ import { subscribeWithSelector } from 'zustand/middleware'
3
  import { useGlobalStore } from './GlobalState'
 
4
  import { useTaxonomyStore } from './Taxonomies'
5
+ import { useUserStore } from './User'
6
 
7
  const defaultCategoryForType = (tax) =>
8
  tax === 'siteType'
9
  ? { slug: '', title: 'Unknown' }
10
  : { slug: '', title: 'Featured' }
11
 
12
+ export const useTemplatesStore = create(
13
+ subscribeWithSelector((set, get) => ({
14
+ templates: [],
15
+ skipNextFetch: false,
16
+ fetchToken: null,
17
+ taxonomyDefaultState: {},
18
+ nextPage: '',
19
+ searchParams: {
20
+ taxonomies: {},
21
+ type: 'pattern',
22
+ },
23
+ initTemplateData() {
24
+ set({ activeTemplate: {} })
25
+ get().setupDefaultTaxonomies()
26
+ get().updateType(useGlobalStore.getState().currentType)
27
+ },
28
+ appendTemplates: (templates) =>
29
+ set({
30
+ templates: [
31
+ ...new Map(
32
+ [...get().templates, ...templates].map((item) => [
33
+ item.id,
34
+ item,
35
+ ]),
36
+ ).values(),
37
+ ],
38
+ }),
39
+ setupDefaultTaxonomies: () => {
40
+ const taxonomies = useTaxonomyStore.getState().taxonomies
41
+ let taxonomyDefaultState = Object.entries(taxonomies).reduce(
42
+ (state, current) => (
43
+ (state[current[0]] = defaultCategoryForType(current[0])),
44
+ state
45
+ ),
46
+ {},
47
+ )
48
+ const tax = {}
49
+ let preferredTax =
50
+ useUserStore.getState().preferredOptions?.taxonomies ?? {}
51
+
52
+ // Check for old site type and set it if it exists
53
+ if (preferredTax.tax_categories) {
54
+ preferredTax = get().getLegacySiteType(preferredTax, taxonomies)
55
+ }
56
+ taxonomyDefaultState = Object.assign(
57
+ {},
58
+ taxonomyDefaultState,
59
 
60
+ // Override with the user's preferred taxonomies
61
+ preferredTax,
 
 
 
 
 
62
 
63
+ // Override with the global state
64
+ useGlobalStore.getState()?.currentTaxonomies ?? {},
65
+ )
66
 
67
+ tax.taxonomies = Object.assign({}, taxonomyDefaultState)
68
+ set({
69
+ taxonomyDefaultState: taxonomyDefaultState,
70
+ searchParams: {
71
+ ...Object.assign(get().searchParams, tax),
72
+ },
73
+ })
74
+ },
75
+ updateTaxonomies: (params) => {
76
+ const data = {}
77
+ data.taxonomies = Object.assign(
78
+ {},
79
+ get().searchParams.taxonomies,
80
+ params,
81
+ )
82
+ if (data?.taxonomies?.siteType) {
83
+ // This is what the user "prefers", which may be used outside the library
84
+ // which is persisted to the database, where as the global library state is in local storage
85
+ useUserStore
86
+ .getState()
87
+ .updatePreferredOption(
88
+ 'siteType',
89
+ data?.taxonomies?.siteType,
90
+ )
91
+ }
92
+ useGlobalStore.getState().updateCurrentTaxonomies(data?.taxonomies)
93
+ get().updateSearchParams(data)
94
+ },
95
+ updateType(type) {
96
+ useGlobalStore.getState().updateCurrentType(type)
97
+ get().updateSearchParams({ type })
98
+ },
99
+ updateSearchParams: (params) => {
100
+ // If taxonomies are set to {}, lets use the default
101
+ if (params?.taxonomies && !Object.keys(params.taxonomies).length) {
102
+ params.taxonomies = get().taxonomyDefaultState
103
+ }
104
 
105
+ const searchParams = Object.assign({}, get().searchParams, params)
106
 
107
+ // If the params are not the same, then update
108
+ if (
109
+ JSON.stringify(searchParams) !==
110
+ JSON.stringify(get().searchParams)
111
+ ) {
112
+ set({ templates: [], nextPage: '', searchParams })
113
+ }
114
+ },
115
+ resetTemplates: () => set({ templates: [], nextPage: '' }),
116
+ getLegacySiteType: (preferredTax, taxonomies) => {
117
+ const oldSiteType = taxonomies.siteType.find((t) =>
118
+ [t.slug, t?.title].includes(preferredTax.tax_categories),
119
+ )
120
+ // TODO: This is kind of wonky, as we keep track of the state in two places.
121
+ useUserStore.getState().updatePreferredSiteType(oldSiteType)
122
+ get().updateTaxonomies({ siteType: oldSiteType })
123
+ // Remove the legacy term so this only runs once
124
  useUserStore
125
  .getState()
126
+ .updatePreferredOption('tax_categories', null)
127
+ return useUserStore.getState().preferredOptions.taxonomies
128
+ },
129
+ })),
130
+ )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/state/User.js CHANGED
@@ -1,24 +1,35 @@
 
1
  import create from 'zustand'
2
  import { persist } from 'zustand/middleware'
3
- import { User } from '../api/User'
4
 
5
  const storage = {
6
  getItem: async () => await User.getData(),
7
  setItem: async (_name, value) => await User.setData(value),
8
- removeItem: () => {},
9
  }
10
 
11
  const isGlobalLibraryEnabled = () =>
12
  window.extendifyData.sitesettings === null ||
13
  window.extendifyData?.sitesettings?.state?.enabled
14
 
 
 
 
 
 
 
 
 
15
  export const useUserStore = create(
16
  persist(
17
  (set, get) => ({
 
18
  firstLoadedOn: new Date().toISOString(),
19
  email: '',
20
  apiKey: '',
21
  uuid: '',
 
22
  sdkPartner: '',
23
  noticesDismissedAt: {},
24
  modalNoticesDismissedAt: {},
@@ -30,6 +41,7 @@ export const useUserStore = create(
30
  enabled: isGlobalLibraryEnabled(),
31
  canInstallPlugins: false,
32
  canActivatePlugins: false,
 
33
  preferredOptions: {
34
  taxonomies: {},
35
  type: '',
@@ -61,6 +73,36 @@ export const useUserStore = create(
61
  Number(get().allowedImports) + Number(get().freebieImports)
62
  )
63
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  hasAvailableImports: () => {
65
  return get().apiKey
66
  ? true
@@ -132,6 +174,13 @@ export const useUserStore = create(
132
  {
133
  name: 'extendify-user',
134
  getStorage: () => storage,
 
 
 
 
 
 
 
135
  },
136
  ),
137
  )
1
+ import { sample } from 'lodash'
2
  import create from 'zustand'
3
  import { persist } from 'zustand/middleware'
4
+ import { User } from '@extendify/api/User'
5
 
6
  const storage = {
7
  getItem: async () => await User.getData(),
8
  setItem: async (_name, value) => await User.setData(value),
9
+ removeItem: async () => await User.deleteData(),
10
  }
11
 
12
  const isGlobalLibraryEnabled = () =>
13
  window.extendifyData.sitesettings === null ||
14
  window.extendifyData?.sitesettings?.state?.enabled
15
 
16
+ // Keep track of active tests as some might be active
17
+ // but never rendered.
18
+ const activeTests = {
19
+ ['notice-position']: '0001',
20
+ ['main-button-text']: '0002',
21
+ ['import-counter-color']: '0003',
22
+ }
23
+
24
  export const useUserStore = create(
25
  persist(
26
  (set, get) => ({
27
+ _hasHydrated: false,
28
  firstLoadedOn: new Date().toISOString(),
29
  email: '',
30
  apiKey: '',
31
  uuid: '',
32
+ group: 0,
33
  sdkPartner: '',
34
  noticesDismissedAt: {},
35
  modalNoticesDismissedAt: {},
41
  enabled: isGlobalLibraryEnabled(),
42
  canInstallPlugins: false,
43
  canActivatePlugins: false,
44
+ participatingTestsGroups: {},
45
  preferredOptions: {
46
  taxonomies: {},
47
  type: '',
73
  Number(get().allowedImports) + Number(get().freebieImports)
74
  )
75
  },
76
+ testGroup(testKey, groupOptions) {
77
+ if (!get().uuid) return
78
+ if (!Object.keys(activeTests).includes(testKey)) return
79
+ const groups = get().participatingTestsGroups
80
+ // If the test is already in the group, don't add it again
81
+ if (!groups[testKey]) {
82
+ set({
83
+ participatingTestsGroups: Object.assign({}, groups, {
84
+ [testKey]: sample(groupOptions),
85
+ }),
86
+ })
87
+ }
88
+ return groups[testKey]
89
+ },
90
+ activeTestGroups() {
91
+ return Object.entries(get().participatingTestsGroups)
92
+ .filter(([key]) => Object.keys(activeTests).includes(key))
93
+ .reduce((obj, [key, value]) => {
94
+ obj[key] = value
95
+ return obj
96
+ }, {})
97
+ },
98
+ activeTestGroupsUtmValue() {
99
+ const active = Object.entries(get().activeTestGroups())
100
+ .map(([key, value]) => {
101
+ return `${activeTests[key]}=${value}`
102
+ }, '')
103
+ .join(':')
104
+ return encodeURIComponent(active)
105
+ },
106
  hasAvailableImports: () => {
107
  return get().apiKey
108
  ? true
174
  {
175
  name: 'extendify-user',
176
  getStorage: () => storage,
177
+ onRehydrateStorage: () => () => {
178
+ useUserStore.setState({ _hasHydrated: true })
179
+ },
180
+ partialize: (state) => {
181
+ delete state._hasHydrated
182
+ return state
183
+ },
184
  },
185
  ),
186
  )
src/util/general.js CHANGED
@@ -1,5 +1,5 @@
1
  import { isString, toLower } from 'lodash'
2
- import { useUserStore } from '../state/User'
3
 
4
  /**
5
  * Will check if the given string contains the search string
1
  import { isString, toLower } from 'lodash'
2
+ import { useUserStore } from '@extendify/state/User'
3
 
4
  /**
5
  * Will check if the given string contains the search string
src/utility-control/index.js CHANGED
@@ -1,9 +1,8 @@
1
- import { __ } from '@wordpress/i18n'
2
  import { InspectorAdvancedControls } from '@wordpress/block-editor'
 
3
  import { createHigherOrderComponent } from '@wordpress/compose'
4
  import { addFilter } from '@wordpress/hooks'
5
- import { FormTokenField } from '@wordpress/components'
6
-
7
  import suggestions from '../../utility-framework/suggestions.json'
8
 
9
  function addAttributes(settings) {
 
1
  import { InspectorAdvancedControls } from '@wordpress/block-editor'
2
+ import { FormTokenField } from '@wordpress/components'
3
  import { createHigherOrderComponent } from '@wordpress/compose'
4
  import { addFilter } from '@wordpress/hooks'
5
+ import { __ } from '@wordpress/i18n'
 
6
  import suggestions from '../../utility-framework/suggestions.json'
7
 
8
  function addAttributes(settings) {